reset upstream subtrees to yocto 2.6
Reset the following subtrees on thud HEAD:
poky: 87e3a9739d
meta-openembedded: 6094ae18c8
meta-security: 31dc4e7532
meta-raspberrypi: a48743dc36
meta-xilinx: c42016e2e6
Also re-apply backports that didn't make it into thud:
poky:
17726d0 systemd-systemctl-native: handle Install wildcards
meta-openembedded:
4321a5d libtinyxml2: update to 7.0.1
042f0a3 libcereal: Add native and nativesdk classes
e23284f libcereal: Allow empty package
030e8d4 rsyslog: curl-less build with fmhttp PACKAGECONFIG
179a1b9 gtest: update to 1.8.1
Squashed OpenBMC subtree compatibility updates:
meta-aspeed:
Brad Bishop (1):
aspeed: add yocto 2.6 compatibility
meta-ibm:
Brad Bishop (1):
ibm: prepare for yocto 2.6
meta-ingrasys:
Brad Bishop (1):
ingrasys: set layer compatibility to yocto 2.6
meta-openpower:
Brad Bishop (1):
openpower: set layer compatibility to yocto 2.6
meta-phosphor:
Brad Bishop (3):
phosphor: set layer compatibility to thud
phosphor: libgpg-error: drop patches
phosphor: react to fitimage artifact rename
Ed Tanous (4):
Dropbear: upgrade options for latest upgrade
yocto2.6: update openssl options
busybox: remove upstream watchdog patch
systemd: Rebase CONFIG_CGROUP_BPF patch
Change-Id: I7b1fe71cca880d0372a82d94b5fd785323e3a9e7
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-openembedded/README b/meta-openembedded/README
index 204966a..a716801 100644
--- a/meta-openembedded/README
+++ b/meta-openembedded/README
@@ -1,4 +1,7 @@
Collection of layers for the OE-core universe
-Please see the respective READMEs in the layer subdirectories
+Thud maintainer: Armin Kuster <akuster808@gmail.com>
+This repository is a collection of layers to suppliment OE-Core
+with additional packages, Each layer have designated maintainer
+Please see the respective READMEs in the layer subdirectories
diff --git a/meta-openembedded/meta-filesystems/README b/meta-openembedded/meta-filesystems/README
index 97d0e94..ac0035a 100644
--- a/meta-openembedded/meta-filesystems/README
+++ b/meta-openembedded/meta-filesystems/README
@@ -10,30 +10,30 @@
This layer depends on:
URI: git://git.openembedded.org/bitbake
- branch: master
+ branch: 1.40
URI: git://git.openembedded.org/openembedded-core
layers: meta
- branch: master
+ branch: thud
URI: git://git.openembedded.org/meta-openembedded
layers: meta-oe
- branch: master
+ branch: thud
Patches
=======
Please submit any patches against the filesystems layer to the
OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org)
-with '[meta-filesystems]' in the subject.
+with '[meta-filesystems][thud]' in the subject.
-Layer maintainer: Armin Kuster <akuster808@gmail.com>
+Thud maintainer: Armin Kuster <akuster808@gmail.com>
When sending single patches, please use something like:
git send-email -1 -M \
--to openembedded-devel@lists.openembedded.org \
- --subject-prefix=meta-filesystems][PATCH
+ --subject-prefix=meta-filesystems][thud][PATCH
Table of Contents
diff --git a/meta-openembedded/meta-filesystems/conf/layer.conf b/meta-openembedded/meta-filesystems/conf/layer.conf
index dbcff42..002f099 100644
--- a/meta-openembedded/meta-filesystems/conf/layer.conf
+++ b/meta-openembedded/meta-filesystems/conf/layer.conf
@@ -15,4 +15,4 @@
LAYERDEPENDS_filesystems-layer = "core openembedded-layer"
-LAYERSERIES_COMPAT_filesystems-layer = "sumo"
+LAYERSERIES_COMPAT_filesystems-layer = "thud"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch b/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch
new file mode 100644
index 0000000..86bb0b5
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch
@@ -0,0 +1,24 @@
+From 3b02acbb3d5bc93422a6821ce47568633ef4ae5e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 15:09:24 -0700
+Subject: [PATCH] include sys/sysmacros.h for major/minor definition
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mkfs.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mkfs.c b/mkfs.c
+index e612cbd..b6aa63d 100644
+--- a/mkfs.c
++++ b/mkfs.c
+@@ -21,6 +21,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #define __USE_UNIX98
+ #include <unistd.h>
+ #include <zlib.h>
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
index 1b4d97d..d9864ac 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
@@ -14,6 +14,7 @@
SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git \
file://0001-Add-LDFLAGS-to-linker-cmdline.patch \
file://0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch \
+ file://0001-include-sys-sysmacros.h-for-major-minor-definition.patch \
"
SRCREV = "45b72c81ce3c6fa17ca19bafc207ea93e76312f4"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb
index 9e77766..addb4d3 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb
@@ -13,6 +13,9 @@
SRC_URI[md5sum] = "d97474ae1954f772c6d2fa386a6f462c"
SRC_URI[sha256sum] = "3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5"
+UPSTREAM_CHECK_URI = "https://www.tuxera.com/community/open-source-ntfs-3g/"
+UPSTREAM_CHECK_REGEX = "ntfs-3g_ntfsprogs-(?P<pver>\d+(\.\d+)+)\.tgz"
+
inherit autotools pkgconfig
PACKAGECONFIG ??= ""
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch
new file mode 100644
index 0000000..0a990ac
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/0001-include-sys-sysmacros.h-for-major.patch
@@ -0,0 +1,46 @@
+From dd1af7541f18399bcdcb129a8b6618c18ebd9d63 Mon Sep 17 00:00:00 2001
+From: Tomasz Torcz <tomek@pipebreaker.pl>
+Date: Sat, 17 Mar 2018 12:56:04 +0100
+Subject: [PATCH] include <sys/sysmacros.h> for major()
+
+ Linux glibc ceased to include it in sys/types.h:
+https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ module/owlib/src/include/ow.h | 6 +++++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 86751bf7..d625d3f0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -180,7 +180,7 @@ m4_include([src/scripts/m4/acx_pthread.m4])
+ # Checks for header files.
+ AC_HEADER_DIRENT
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
++AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/sysmacros.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
+ AC_CHECK_HEADERS([linux/limits.h linux/types.h netdb.h dlfcn.h])
+ AC_CHECK_HEADERS(sys/event.h sys/inotify.h)
+
+diff --git a/module/owlib/src/include/ow.h b/module/owlib/src/include/ow.h
+index 9dbec5f3..0a310552 100644
+--- a/module/owlib/src/include/ow.h
++++ b/module/owlib/src/include/ow.h
+@@ -188,8 +188,12 @@
+ #include <netdb.h> /* for getaddrinfo */
+ #endif /* HAVE_NETDB_H */
+
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h> /* for major() */
++#endif /* HAVE_SYS_SYSMACROS_H */
++
+ #ifdef HAVE_SYS_MKDEV_H
+-#include <sys/mkdev.h> /* for major() */
++#include <sys/mkdev.h> /* for major() on Solaris */
+ #endif /* HAVE_SYS_MKDEV_H */
+
+ #include <stddef.h> // for offsetof()
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb
deleted file mode 100644
index 21fd7e9..0000000
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-SUMMARY = "1-Wire file system"
-DESCRIPTION = "OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim"
-HOMEPAGE = "http://www.owfs.org/"
-SECTION = "console/network"
-
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a0bc427f423a41220ab79a0b392218bd \
- file://COPYING.LIB;md5=865c4bd642d9e04f43925ad7e929ae87"
-
-DEPENDS = "fuse virtual/libusb0"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/owfs/owfs-${PV}.tar.gz \
- file://owhttpd \
- file://owserver "
-SRC_URI[md5sum] = "56ba145be208002e58775a7203369851"
-SRC_URI[sha256sum] = "9d22dbff72d235476688c02669f7171b23e21dffadf40bbdd3b8263908218424"
-
-inherit autotools-brokensep update-rc.d
-
-EXTRA_OECONF = " \
- --with-fuseinclude=${STAGING_INCDIR} \
- --with-fuselib=${STAGING_LIBDIR} \
- --enable-owfs \
- --enable-owhttpd \
- --enable-w1 \
- --disable-swig \
- --disable-owtcl \
- --disable-owphp \
- --disable-owpython \
- --disable-owperl \
-"
-
-do_install_prepend() {
- install -d ${D}${sysconfdir}/default/
- install -d ${D}${sysconfdir}/init.d/
- install -m 0755 ${WORKDIR}/owhttpd ${D}${sysconfdir}/init.d/owhttpd
- install -m 0755 ${WORKDIR}/owserver ${D}${sysconfdir}/init.d/owserver
-}
-
-PACKAGES =+ "owftpd owhttpd owserver owshell libowcapi libow libownet owmon owtap"
-
-DESCRIPTION_owftpd = "Anoymous FTP server for 1-wire access"
-DESCRIPTION_owhttpd = "Tiny webserver for 1-wire control"
-DESCRIPTION_owserver = "Backend server (daemon) for 1-wire control"
-DESCRIPTION_owshell = "owdir owread owwrite owpresent owget - lightweight owserver access"
-DESCRIPTION_libowcapi = "easy C-language 1-wire interface "
-DESCRIPTION_libow = "easy C-language 1-wire interface to the owserver protocol"
-DESCRIPTION_libownet = "easy C-language 1-wire interface to the owserver protocol"
-DESCRIPTION_owmon = "Monitor for owserver settings and statistics"
-DESCRIPTION_owtap = "Packet sniffer for the owserver protocol"
-
-FILES_owftpd = "${bindir}/owftpd"
-FILES_owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd"
-FILES_owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver"
-FILES_owshell = "${bindir}/owread ${bindir}/owwrite \
- ${bindir}/owdir ${bindir}/owpresent \
- ${bindir}/owget ${bindir}/owside"
-FILES_owmon = "${bindir}/owmon"
-FILES_owtap = "${bindir}/owtap"
-FILES_libowcapi = "${libdir}/libowcapi-*"
-FILES_libow = "${libdir}/libow-*"
-FILES_libownet = "${libdir}/libownet-*"
-
-INITSCRIPT_PACKAGES = "owhttpd owserver"
-INITSCRIPT_NAME_owserver = "owserver"
-INITSCRIPT_NAME_owhttpd = "owhttpd"
-INITSCRIPT_PARAMS_owserver = "defaults 20"
-INITSCRIPT_PARAMS_owhttpd = "defaults 21"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb
new file mode 100644
index 0000000..50865cc
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p2.bb
@@ -0,0 +1,71 @@
+SUMMARY = "1-Wire file system"
+DESCRIPTION = "OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim"
+HOMEPAGE = "http://www.owfs.org/"
+SECTION = "console/network"
+
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=12a64df1cc87275e940cab05ee75c37d \
+ file://COPYING.LIB;md5=16ff3ffebed582e19ea7a4f48ec77b42"
+
+DEPENDS = "fuse virtual/libusb0"
+# v3.2p2
+SRCREV = "93c1f36d9ac481075287da331d5184f590f8c0fa"
+SRC_URI = "git://github.com/owfs/owfs \
+ file://owhttpd \
+ file://owserver \
+ file://0001-include-sys-sysmacros.h-for-major.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep update-rc.d pkgconfig
+
+EXTRA_OECONF = " \
+ --with-fuseinclude=${STAGING_INCDIR} \
+ --with-fuselib=${STAGING_LIBDIR} \
+ --enable-owfs \
+ --enable-owhttpd \
+ --enable-w1 \
+ --disable-swig \
+ --disable-owtcl \
+ --disable-owphp \
+ --disable-owpython \
+ --disable-owperl \
+"
+
+do_install_prepend() {
+ install -d ${D}${sysconfdir}/default/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/owhttpd ${D}${sysconfdir}/init.d/owhttpd
+ install -m 0755 ${WORKDIR}/owserver ${D}${sysconfdir}/init.d/owserver
+}
+
+PACKAGES =+ "owftpd owhttpd owserver owshell libowcapi libow libownet owmon owtap"
+
+DESCRIPTION_owftpd = "Anoymous FTP server for 1-wire access"
+DESCRIPTION_owhttpd = "Tiny webserver for 1-wire control"
+DESCRIPTION_owserver = "Backend server (daemon) for 1-wire control"
+DESCRIPTION_owshell = "owdir owread owwrite owpresent owget - lightweight owserver access"
+DESCRIPTION_libowcapi = "easy C-language 1-wire interface "
+DESCRIPTION_libow = "easy C-language 1-wire interface to the owserver protocol"
+DESCRIPTION_libownet = "easy C-language 1-wire interface to the owserver protocol"
+DESCRIPTION_owmon = "Monitor for owserver settings and statistics"
+DESCRIPTION_owtap = "Packet sniffer for the owserver protocol"
+
+FILES_owftpd = "${bindir}/owftpd"
+FILES_owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd"
+FILES_owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver"
+FILES_owshell = "${bindir}/owread ${bindir}/owwrite \
+ ${bindir}/owdir ${bindir}/owpresent \
+ ${bindir}/owget ${bindir}/owside"
+FILES_owmon = "${bindir}/owmon"
+FILES_owtap = "${bindir}/owtap"
+FILES_libowcapi = "${libdir}/libowcapi-*"
+FILES_libow = "${libdir}/libow-*"
+FILES_libownet = "${libdir}/libownet-*"
+
+INITSCRIPT_PACKAGES = "owhttpd owserver"
+INITSCRIPT_NAME_owserver = "owserver"
+INITSCRIPT_NAME_owhttpd = "owhttpd"
+INITSCRIPT_PARAMS_owserver = "defaults 20"
+INITSCRIPT_PARAMS_owhttpd = "defaults 21"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
index 67c926b..6095e27 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
@@ -5,7 +5,9 @@
HOMEPAGE = "http://www.yaffs.net"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://utils/mkyaffs2image.c;beginline=12;endline=14;md5=5f5464f9b3e981ca574e65b00e438561"
+LIC_FILES_CHKSUM = "file://utils/mkyaffs2image.c;beginline=11;endline=13;md5=5f5464f9b3e981ca574e65b00e438561 \
+ file://utils/mkyaffsimage.c;beginline=10;endline=12;md5=5f5464f9b3e981ca574e65b00e438561 \
+ "
PV = "0.0+git${SRCPV}"
@@ -17,7 +19,10 @@
file://0001-define-loff_t-if-not-already-defined.patch \
"
-SRCREV = "bc76682d93955cfb33051beb503ad9f8a5450578"
+SRCREV = "3439fa4e60dd9799766b2c101f799ed9e565b632"
+
+UPSTREAM_CHECK_COMMITS = "1"
+
S = "${WORKDIR}/git"
CFLAGS_append = " -I.. -DCONFIG_YAFFS_UTIL -DCONFIG_YAFFS_DEFINES_TYPES"
diff --git a/meta-openembedded/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-1.patch b/meta-openembedded/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-1.patch
deleted file mode 100644
index 83bef30..0000000
--- a/meta-openembedded/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-1.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 28bdae3d113ef479c1660a581ef720cdc33bf466 Mon Sep 17 00:00:00 2001
-From: Jann Horn <jannh@google.com>
-Date: Fri, 13 Jul 2018 15:15:36 -0700
-Subject: [PATCH] fusermount: don't feed "escaped commas" into mount options
-
-The old code permits the following behavior:
-
-$ _FUSE_COMMFD=10000 priv_strace -etrace=mount -s200 fusermount -o 'foobar=\,allow_other' mount
-mount("/dev/fuse", ".", "fuse", MS_NOSUID|MS_NODEV, "foobar=\\,allow_other,fd=3,rootmode=40000,user_id=1000,group_id=1000") = -1 EINVAL (Invalid argument)
-
-However, backslashes do not have any special meaning for the kernel here.
-
-As it happens, you can't abuse this because there is no FUSE mount option
-that takes a string value that can contain backslashes; but this is very
-brittle. Don't interpret "escape characters" in places where they don't
-work.
-
-CVE: CVE-2018-10906
-Upstream-Status: Backport [https://github.com/libfuse/libfuse/commit/28bdae3d113ef479c1660a581ef720cdc33bf466]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
----
- util/fusermount.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/util/fusermount.c b/util/fusermount.c
-index 0e1d34d..143bd4a 100644
---- a/util/fusermount.c
-+++ b/util/fusermount.c
-@@ -29,6 +29,7 @@
- #include <sys/socket.h>
- #include <sys/utsname.h>
- #include <sched.h>
-+#include <stdbool.h>
-
- #define FUSE_COMMFD_ENV "_FUSE_COMMFD"
-
-@@ -754,8 +755,10 @@ static int do_mount(const char *mnt, char **typep, mode_t rootmode,
- unsigned len;
- const char *fsname_str = "fsname=";
- const char *subtype_str = "subtype=";
-+ bool escape_ok = begins_with(s, fsname_str) ||
-+ begins_with(s, subtype_str);
- for (len = 0; s[len]; len++) {
-- if (s[len] == '\\' && s[len + 1])
-+ if (escape_ok && s[len] == '\\' && s[len + 1])
- len++;
- else if (s[len] == ',')
- break;
---
-2.13.3
-
diff --git a/meta-openembedded/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-2.patch b/meta-openembedded/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-2.patch
deleted file mode 100644
index 104aa17..0000000
--- a/meta-openembedded/meta-filesystems/recipes-support/fuse/files/CVE-2018-10906-2.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 5018a0c016495155ee598b7e0167b43d5d902414 Mon Sep 17 00:00:00 2001
-From: Jann Horn <jannh@google.com>
-Date: Sat, 14 Jul 2018 03:47:50 -0700
-Subject: [PATCH] fusermount: refuse unknown options
-
-Blacklists are notoriously fragile; especially if the kernel wishes to add
-some security-critical mount option at a later date, all existing systems
-with older versions of fusermount installed will suddenly have a security
-problem.
-Additionally, if the kernel's option parsing became a tiny bit laxer, the
-blacklist could probably be bypassed.
-
-Whitelist known-harmless flags instead, even if it's slightly more
-inconvenient.
-
-CVE: CVE-2018-10906
-Upstream-Status: Backport [https://github.com/libfuse/libfuse/commit/5018a0c016495155ee598b7e0167b43d5d902414]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
----
- util/fusermount.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/util/fusermount.c b/util/fusermount.c
-index 4e0f51a..2792407 100644
---- a/util/fusermount.c
-+++ b/util/fusermount.c
-@@ -819,10 +819,16 @@ static int do_mount(const char *mnt, char **typep, mode_t rootmode,
- flags |= flag;
- else
- flags &= ~flag;
-- } else {
-+ } else if (opt_eq(s, len, "default_permissions") ||
-+ opt_eq(s, len, "allow_other") ||
-+ begins_with(s, "max_read=") ||
-+ begins_with(s, "blksize=")) {
- memcpy(d, s, len);
- d += len;
- *d++ = ',';
-+ } else {
-+ fprintf(stderr, "%s: unknown option '%.*s'\n", progname, len, s);
-+ exit(1);
- }
- }
- }
---
-2.13.3
-
diff --git a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
deleted file mode 100644
index 1eb9b70..0000000
--- a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "Implementation of a fully functional filesystem in a userspace program"
-DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \
- programs to export a virtual filesystem to the Linux kernel. FUSE \
- also aims to provide a secure method for non privileged users to \
- create and mount their own filesystem implementations. \
- "
-HOMEPAGE = "https://github.com/libfuse/libfuse"
-SECTION = "libs"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "https://github.com/libfuse/libfuse/releases/download/${BP}/${BP}.tar.gz \
- file://gold-unversioned-symbol.patch \
- file://aarch64.patch \
- file://0001-fuse-fix-the-return-value-of-help-option.patch \
- file://fuse.conf \
- file://CVE-2018-10906-1.patch \
- file://CVE-2018-10906-2.patch \
-"
-SRC_URI[md5sum] = "9bd4ce8184745fd3d000ca2692adacdb"
-SRC_URI[sha256sum] = "832432d1ad4f833c20e13b57cf40ce5277a9d33e483205fc63c78111b3358874"
-
-inherit autotools pkgconfig update-rc.d systemd
-
-INITSCRIPT_NAME = "fuse"
-INITSCRIPT_PARAMS = "start 3 S . stop 20 0 6 ."
-
-SYSTEMD_SERVICE_${PN} = ""
-
-DEPENDS = "gettext-native"
-
-PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg"
-
-RRECOMMENDS_${PN}_class-target = "kernel-module-fuse libulockmgr fuse-utils"
-
-FILES_${PN} += "${libdir}/libfuse.so.*"
-FILES_${PN}-dev += "${libdir}/libfuse*.la"
-
-FILES_libulockmgr = "${libdir}/libulockmgr.so.*"
-FILES_libulockmgr-dev += "${libdir}/libulock*.la"
-FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*"
-
-# Forbid auto-renaming to libfuse-utils
-FILES_fuse-utils = "${bindir} ${base_sbindir}"
-FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug"
-DEBIAN_NOAUTONAME_fuse-utils = "1"
-DEBIAN_NOAUTONAME_fuse-utils-dbg = "1"
-
-do_configure_prepend() {
- # Make this explicit so overriding base_sbindir propagates properly.
- export MOUNT_FUSE_PATH="${base_sbindir}"
-}
-
-do_install_append() {
- rm -rf ${D}${base_prefix}/dev
-
- # systemd class remove the sysv_initddir only if systemd_system_unitdir
- # contains anything, but it's not needed if sysvinit is not in DISTRO_FEATURES
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then
- rm -rf ${D}${sysconfdir}/init.d/
- fi
-
- # Install systemd related configuration file
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/modules-load.d
- install -m 0644 ${WORKDIR}/fuse.conf ${D}${sysconfdir}/modules-load.d
- fi
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.8.bb b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.8.bb
new file mode 100644
index 0000000..caa75c7
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.8.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Implementation of a fully functional filesystem in a userspace program"
+DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \
+ programs to export a virtual filesystem to the Linux kernel. FUSE \
+ also aims to provide a secure method for non privileged users to \
+ create and mount their own filesystem implementations. \
+ "
+HOMEPAGE = "https://github.com/libfuse/libfuse"
+SECTION = "libs"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "https://github.com/libfuse/libfuse/releases/download/${BP}/${BP}.tar.gz \
+ file://gold-unversioned-symbol.patch \
+ file://aarch64.patch \
+ file://0001-fuse-fix-the-return-value-of-help-option.patch \
+ file://fuse.conf \
+"
+SRC_URI[md5sum] = "f365e848a82504edb0b7a33df790ca78"
+SRC_URI[sha256sum] = "5e84f81d8dd527ea74f39b6bc001c874c02bad6871d7a9b0c14efb57430eafe3"
+
+UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases"
+UPSTREAM_CHECK_REGEX = "fuse\-(?P<pver>2(\.\d+)+).tar.gz"
+
+inherit autotools pkgconfig update-rc.d systemd
+
+INITSCRIPT_NAME = "fuse"
+INITSCRIPT_PARAMS = "start 3 S . stop 20 0 6 ."
+
+SYSTEMD_SERVICE_${PN} = ""
+
+DEPENDS = "gettext-native"
+
+PACKAGES =+ "fuse-utils libulockmgr libulockmgr-dev"
+
+RPROVIDES_${PN}-dbg += "fuse-utils-dbg libulockmgr-dbg"
+
+RRECOMMENDS_${PN}_class-target = "kernel-module-fuse libulockmgr fuse-utils"
+
+FILES_${PN} += "${libdir}/libfuse.so.*"
+FILES_${PN}-dev += "${libdir}/libfuse*.la"
+
+FILES_libulockmgr = "${libdir}/libulockmgr.so.*"
+FILES_libulockmgr-dev += "${libdir}/libulock*.la"
+
+# Forbid auto-renaming to libfuse-utils
+FILES_fuse-utils = "${bindir} ${base_sbindir}"
+DEBIAN_NOAUTONAME_fuse-utils = "1"
+DEBIAN_NOAUTONAME_${PN}-dbg = "1"
+
+do_configure_prepend() {
+ # Make this explicit so overriding base_sbindir propagates properly.
+ export MOUNT_FUSE_PATH="${base_sbindir}"
+}
+
+do_install_append() {
+ rm -rf ${D}${base_prefix}/dev
+
+ # systemd class remove the sysv_initddir only if systemd_system_unitdir
+ # contains anything, but it's not needed if sysvinit is not in DISTRO_FEATURES
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then
+ rm -rf ${D}${sysconfdir}/init.d/
+ fi
+
+ # Install systemd related configuration file
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/modules-load.d
+ install -m 0644 ${WORKDIR}/fuse.conf ${D}${sysconfdir}/modules-load.d
+ fi
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb b/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb
deleted file mode 100644
index dc2c106..0000000
--- a/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "PhysicsFS is a library to provide abstract access to various archives"
-HOMEAPAGE = "http://icculus.org/physfs"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5d94e3eaaa10b00ca803ba35a3e87cde"
-DEPENDS = "readline zlib"
-
-inherit cmake
-
-PE = "1"
-
-SRC_URI = "http://icculus.org/${BPN}/downloads/${BP}.tar.bz2"
-SRC_URI[md5sum] = "c2c727a8a8deb623b521b52d0080f613"
-SRC_URI[sha256sum] = "ca862097c0fb451f2cacd286194d071289342c107b6fe69079c079883ff66b69"
diff --git a/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb b/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb
new file mode 100644
index 0000000..cc97dea
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "PhysicsFS is a library to provide abstract access to various archives"
+HOMEAPAGE = "http://icculus.org/physfs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2668e2fb051c3e564198e146a9a2d9f0"
+DEPENDS = "readline zlib"
+
+inherit cmake
+
+PE = "1"
+
+SRC_URI = "http://icculus.org/${BPN}/downloads/${BP}.tar.bz2"
+SRC_URI[md5sum] = "359f102bcbd62accf84ef32f4863255d"
+SRC_URI[sha256sum] = "b77b9f853168d9636a44f75fca372b363106f52d789d18a2f776397bf117f2f1"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch b/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch
deleted file mode 100644
index 6732dc4..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From daf04dc9ca1f2e4c65ec338ab439e0a792e1a8ac Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 5 Sep 2017 10:36:52 -0700
-Subject: [PATCH] libau: Define STRIP weakly
-
-STRIP can be set on environment to use cross version of strip utility
-hardcoding to strip is not working in cross environment
-
-Upstream-Status: Submitted
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- libau/Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libau/Makefile b/libau/Makefile
-index 81520ac..c25eef2 100644
---- a/libau/Makefile
-+++ b/libau/Makefile
-@@ -25,6 +25,7 @@ LibSoHdr = libau.h rdu.h
- LibSoExport = $(addsuffix .exp, $(basename ${LibSoObj}))
- LibSoExportErr = $(addsuffix .err, ${LibSoExport})
- LibSoVerScript = verscript
-+STRIP ?= strip
-
- all: ${LibSo}
-
-@@ -77,7 +78,7 @@ ${LibSo}.${LibSoMajor}.${LibSoMinor}: ${LibSoObj}
- ${CC} --shared -Wl,-soname,${LibSo}.${LibSoMajor} \
- -Wl,--version-script,${LibSoVerScript} \
- ${LDFLAGS} -o $@ $^ ${LDLIBS}
-- strip -R EXP $@
-+ ${STRIP} -R EXP $@
- # readelf --syms --use-dynamic libau.so
-
- install_ulib: File = ${LibSo}.${LibSoMajor}.${LibSoMinor}
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb b/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
index 2e855e3..6d71fc0 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
@@ -7,17 +7,18 @@
DEPENDS = "coreutils-native aufs-util-native"
DEPENDS_class-native = ""
-SRCREV = "89afb1806c3d2eed8db2666ae254b77518ae3ceb"
-SRC_URI = "git://git.code.sf.net/p/aufs/aufs-util;protocol=git;branch=aufs4.4 \
- https://raw.githubusercontent.com/sfjro/aufs4-linux/aufs4.4/include/uapi/linux/aufs_type.h;name=aufs_type \
+SRCREV = "8f35db59ef83078f87879ec2828e0bb45719e0ef"
+SRC_URI = "git://git.code.sf.net/p/aufs/aufs-util;protocol=git;branch=aufs4.9 \
+ https://raw.githubusercontent.com/sfjro/aufs4-linux/aufs4.9/include/uapi/linux/aufs_type.h;name=aufs_type \
file://aufs-util-don-t-strip-executables.patch \
file://aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch \
- file://0001-libau-Define-STRIP-weakly.patch \
"
-SRC_URI[aufs_type.md5sum] = "f7b4a255dcb55fe7b0967f5f59b44f19"
-SRC_URI[aufs_type.sha256sum] = "85bc8e4c1a94a7d526c382e4b047b4256cab8c4a65fc0396291707ad9a327a18"
+SRC_URI[aufs_type.md5sum] = "b37129ef0703de72a852db7e48bdedc6"
+SRC_URI[aufs_type.sha256sum] = "7ff6566adb9c7a3b6862cdc85a690ab546f1d0bc81ddd595fd663c0a69031683"
-PV = "4.4+git${SRCPV}"
+UPSTREAM_CHECK_COMMITS = "1"
+
+PV = "4.9+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch
new file mode 100644
index 0000000..0a3261b
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch
@@ -0,0 +1,29 @@
+From 0fb9d6bc25e903f7831a38468845ea143fb5afd5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 18:49:03 -0700
+Subject: [PATCH] f2fs-tools: Use srcdir prefix to denote include path
+
+This helps builds when builddir != srcdir
+
+Upstream-Status: Submitted [https://lkml.org/lkml/2018/8/12/1]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/sg_write_buffer/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/sg_write_buffer/Makefile.am b/tools/sg_write_buffer/Makefile.am
+index 922c328..19c438d 100644
+--- a/tools/sg_write_buffer/Makefile.am
++++ b/tools/sg_write_buffer/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Makefile.am
+
+ if LINUX
+-AM_CPPFLAGS = -I./include
++AM_CPPFLAGS = -I$(srcdir)/include
+ AM_CFLAGS = -Wall
+ sbin_PROGRAMS = sg_write_buffer
+ sg_write_buffer_SOURCES = sg_write_buffer.c \
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch
deleted file mode 100644
index 9e561cb..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0731eefd389e01419f78a115e1363ed0c28cfd3a Mon Sep 17 00:00:00 2001
-From: "Yong, Jonathan" <jonathan.yong@intel.com>
-Date: Thu, 30 Mar 2017 08:03:37 +0000
-Subject: [PATCH] Fix mkfs out of tree builds
-
-Libraries are built in builddir, not srcdir, fix Makefile.am
-accordingly.
-
-Signed-off-by: Yong, Jonathan <jonathan.yong@intel.com>
-Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-
-The patch was imported from the f2fs-tools repo
-(git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git)
-commit ID 0731eefd389e01419f78a115e1363ed0c28cfd3a.
-
-Upstream-Status: Accepted, expected to be included in 1.9.0.
-
-Signed-off-by: Yong, Jonathan <jonathan.yong@intel.com>
-
----
- mkfs/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mkfs/Makefile.am b/mkfs/Makefile.am
-index 162a0cf..0ea8b49 100644
---- a/mkfs/Makefile.am
-+++ b/mkfs/Makefile.am
-@@ -10,5 +10,5 @@ lib_LTLIBRARIES = libf2fs_format.la
- libf2fs_format_la_SOURCES = f2fs_format_main.c f2fs_format.c f2fs_format_utils.c
- libf2fs_format_la_CFLAGS = -DWITH_BLKDISCARD
- libf2fs_format_la_CPPFLAGS = -I$(top_srcdir)/include
--libf2fs_format_la_LDFLAGS = -luuid -L$(top_srcdir)/lib -lf2fs \
-+libf2fs_format_la_LDFLAGS = -luuid -L$(top_builddir)/lib -lf2fs \
- -version-info $(FMT_CURRENT):$(FMT_REVISION):$(FMT_AGE)
---
-2.10.2
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb
new file mode 100644
index 0000000..2240049
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.11.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Tools for Flash-Friendly File System (F2FS)"
+HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
+
+# to provide libuuid
+DEPENDS = "util-linux"
+
+# v1.11.0
+SRCREV = "b98fab3666e498c2e27ad9dcda6874c9b683f06b"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \
+ file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch \
+ file://0001-f2fs-tools-Use-srcdir-prefix-to-denote-include-path.patch \
+ "
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb
deleted file mode 100644
index 691cb6e..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Tools for Flash-Friendly File System (F2FS)"
-HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
-
-# to provide libuuid
-DEPENDS = "util-linux"
-
-SRCREV = "1e7aedf99b85d16f94d1d8ad2fcf846403bb2174"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \
- file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch \
- file://0002-Fix-mkfs-out-of-tree-builds.patch"
-S = "${WORKDIR}/git"
-
-inherit pkgconfig autotools
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch
deleted file mode 100644
index 660468d..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 8cf48da5f645dd7bbb1ccbeab5bb0964f40f17f7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:18:47 -0700
-Subject: [PATCH 1/5] Include fcntl.h for O_EXCL
-
-Fix
-error: 'O_CREAT' undeclared (first use in this function)
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- invutil/invidx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/invutil/invidx.c b/invutil/invidx.c
-index 67efdf7..325a9a1 100644
---- a/invutil/invidx.c
-+++ b/invutil/invidx.c
-@@ -27,6 +27,7 @@
- #include <sys/stat.h>
- #include <string.h>
- #include <uuid/uuid.h>
-+#include <fcntl.h>
-
- #include "types.h"
- #include "mlog.h"
---
-2.13.2
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch
deleted file mode 100644
index 1fe1bde..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f1e822d546e08cc195eaeb38ca172bd0c3800aa9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 9 Sep 2017 07:48:48 -0700
-Subject: [PATCH] xfsdump: Use c99 defined int64_t instead of __int64_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- common/hsmapi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/common/hsmapi.c b/common/hsmapi.c
-index 6054773..0709dbe 100644
---- a/common/hsmapi.c
-+++ b/common/hsmapi.c
-@@ -585,7 +585,7 @@ HsmModifyExtentMap(
- struct getbmapx *bmap)
- {
- dmf_f_ctxt_t *dmf_f_ctxtp = (dmf_f_ctxt_t *)contextp;
-- __int64_t length;
-+ int64_t length;
-
- if (bmap[0].bmv_entries <= 0) {
- return 1; /* caller must already be at EOF */
---
-2.14.1
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch
deleted file mode 100644
index ed3e0a9..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From f76d2142905f0e5bd830d5d576c235af1171c6ac Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:23:31 -0700
-Subject: [PATCH 2/5] Replace __uint32_t with uint32_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- common/content_inode.h | 4 ++--
- doc/xfsdump.html | 8 ++++----
- inventory/inv_oref.h | 2 +-
- inventory/inv_priv.h | 4 ++--
- inventory/inventory.h | 2 +-
- 5 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/common/content_inode.h b/common/content_inode.h
-index a69a9a0..6936e05 100644
---- a/common/content_inode.h
-+++ b/common/content_inode.h
-@@ -191,10 +191,10 @@ typedef struct bstat bstat_t;
- * and using two 16bit values to hold new 32bit projid was choosen
- * to retain compatibility with "old" filesystems).
- */
--static inline __uint32_t
-+static inline uint32_t
- bstat_projid(struct bstat *bs)
- {
-- return (__uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo;
-+ return (uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo;
- }
-
-
-diff --git a/doc/xfsdump.html b/doc/xfsdump.html
-index 9c6722e..f85128f 100644
---- a/doc/xfsdump.html
-+++ b/doc/xfsdump.html
-@@ -1935,7 +1935,7 @@ The files are constructed like so:
- <pre>
- typedef struct invt_counter {
- INVT_COUNTER_FIELDS
-- __uint32_t ic_vernum;/* on disk version number for posterity */\
-+ uint32_t ic_vernum;/* on disk version number for posterity */\
- u_int ic_curnum;/* number of sessions/invindices recorded \
- so far */ \
- u_int ic_maxnum;/* maximum number of sessions/inv_indices \
-@@ -1975,7 +1975,7 @@ typedef struct invt_fstab {
- <pre>
- typedef struct invt_counter {
- INVT_COUNTER_FIELDS
-- __uint32_t ic_vernum;/* on disk version number for posterity */\
-+ uint32_t ic_vernum;/* on disk version number for posterity */\
- u_int ic_curnum;/* number of sessions/invindices recorded \
- so far */ \
- u_int ic_maxnum;/* maximum number of sessions/inv_indices \
-@@ -2012,7 +2012,7 @@ typedef struct invt_entry {
- <pre>
- typedef struct invt_sescounter {
- INVT_COUNTER_FIELDS
-- __uint32_t ic_vernum;/* on disk version number for posterity */\
-+ uint32_t ic_vernum;/* on disk version number for posterity */\
- u_int ic_curnum;/* number of sessions/invindices recorded \
- so far */ \
- u_int ic_maxnum;/* maximum number of sessions/inv_indices \
-@@ -2034,7 +2034,7 @@ typedef struct invt_seshdr {
- off64_t sh_streams_off; /* offset to start of the set of
- stream hdrs */
- time_t sh_time; /* time of the dump */
-- __uint32_t sh_flag; /* for misc flags */
-+ uint32_t sh_flag; /* for misc flags */
- u_char sh_level; /* dump level */
- u_char sh_pruned; /* pruned by invutil flag */
- char sh_padding[22];
-diff --git a/inventory/inv_oref.h b/inventory/inv_oref.h
-index e16684d..38303a4 100644
---- a/inventory/inv_oref.h
-+++ b/inventory/inv_oref.h
-@@ -46,7 +46,7 @@
-
-
-
--typedef __uint32_t invt_objtype_t;
-+typedef uint32_t invt_objtype_t;
-
- #define INVT_LOCKED 0x0001
-
-diff --git a/inventory/inv_priv.h b/inventory/inv_priv.h
-index 1690271..364ffbc 100644
---- a/inventory/inv_priv.h
-+++ b/inventory/inv_priv.h
-@@ -120,7 +120,7 @@ typedef struct invt_seshdr {
- off64_t sh_streams_off; /* offset to start of the set of
- stream hdrs */
- time32_t sh_time; /* time of the dump */
-- __uint32_t sh_flag; /* for misc flags */
-+ uint32_t sh_flag; /* for misc flags */
- u_char sh_level; /* dump level */
- u_char sh_pruned; /* pruned by invutil flag */
- char sh_padding[22];
-@@ -184,7 +184,7 @@ typedef struct invt_entry {
-
- /* Cheap Inheritance, and an attempt to avoid a nested type */
- #define INVT_COUNTER_FIELDS \
-- __uint32_t ic_vernum;/* on disk version number for posterity */\
-+ uint32_t ic_vernum;/* on disk version number for posterity */\
- uint ic_curnum;/* number of sessions/invindices recorded \
- so far */ \
- uint ic_maxnum;/* maximum number of sessions/inv_indices \
-diff --git a/inventory/inventory.h b/inventory/inventory.h
-index 134b9ba..c1d7403 100644
---- a/inventory/inventory.h
-+++ b/inventory/inventory.h
-@@ -43,7 +43,7 @@
- /* length of labels, mntpts, etc */
- #define INV_STRLEN GLOBAL_HDR_STRING_SZ
-
--typedef __uint32_t inv_version_t;
-+typedef uint32_t inv_version_t;
-
- /* This is the general inventory version.
- */
---
-2.13.2
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch
deleted file mode 100644
index 31303d8..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From fcc0cf15a309947103a0695b8a1f4865b820eb5c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:26:03 -0700
-Subject: [PATCH 3/5] replace use of SIGCLD with SIGCHLD
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- common/main.c | 2 +-
- doc/xfsdump.html | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/common/main.c b/common/main.c
-index 3848499..faa66ee 100644
---- a/common/main.c
-+++ b/common/main.c
-@@ -2225,7 +2225,7 @@ static sig_printmap_t sig_printmap[ ] = {
- {SIGTERM, "SIGTERM"},
- {SIGUSR1, "SIGUSR1"},
- {SIGUSR2, "SIGUSR2"},
-- {SIGCLD, "SIGCLD"},
-+ {SIGCHLD, "SIGCHLD"},
- {SIGPWR, "SIGPWR"},
- {SIGURG, "SIGURG"},
- {SIGPOLL, "SIGPOLL"},
-diff --git a/doc/xfsdump.html b/doc/xfsdump.html
-index f85128f..d96f037 100644
---- a/doc/xfsdump.html
-+++ b/doc/xfsdump.html
-@@ -334,7 +334,7 @@ the ring buffer. It ignores signals and does not terminate until it
- receives a RING_OP_DIE message. It then exits 0.
- <p>
- The main process sleeps waiting for any of its children to die
--(ie. waiting for a SIGCLD). All children that it cares about (stream
-+(ie. waiting for a SIGCHLD). All children that it cares about (stream
- managers and ring buffer slaves) are registered through the child
- manager abstraction. When a child dies wait status and other info is
- stored with its entry in the child manager. main() ignores the deaths
---
-2.13.2
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch
deleted file mode 100644
index 62ea15b..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 98c7d96f0f2c6eddf60aa4a1a08d7d4467645930 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:28:10 -0700
-Subject: [PATCH 4/5] include limit.h for PATH_MAX
-
-fixed
-var.c:42:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'RAND_MAX'?
- char path[PATH_MAX];`
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- dump/var.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/dump/var.c b/dump/var.c
-index 645caab..8156d37 100644
---- a/dump/var.c
-+++ b/dump/var.c
-@@ -16,6 +16,7 @@
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-+#include <limits.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <sys/stat.h>
---
-2.13.2
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch
deleted file mode 100644
index fb6e467..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From d95f494de1aa8123c74170ffebaed8ea89649da2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:33:44 -0700
-Subject: [PATCH 5/5] include sys/types.h for u_int32_t in attr/attributes.h
-
-error: unknown type name 'u_int32_t'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- restore/content.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/restore/content.c b/restore/content.c
-index 7c4a81f..1d5de1b 100644
---- a/restore/content.c
-+++ b/restore/content.c
-@@ -24,6 +24,7 @@
- #include <sys/param.h>
- #include <sys/stat.h>
- #include <sys/ioctl.h>
-+#include <sys/types.h>
- #include <attr/attributes.h>
- #include <xfs/handle.h>
- #include <time.h>
---
-2.13.2
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb
deleted file mode 100644
index 39f1189..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "XFS Filesystem Dump Utility"
-DESCRIPTION = "The xfsdump package contains xfsdump, xfsrestore and a \
- number of other utilities for administering XFS filesystems.\
- xfsdump examines files in a filesystem, determines which \
- need to be backed up, and copies those files to a \
- specified disk, tape or other storage medium."
-HOMEPAGE = "http://oss.sgi.com/projects/xfs"
-SECTION = "base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc"
-DEPENDS = "xfsprogs attr"
-
-SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \
- file://remove-install-as-user.patch \
- file://0001-Include-fcntl.h-for-O_EXCL.patch \
- file://0002-Replace-__uint32_t-with-uint32_t.patch \
- file://0003-replace-use-of-SIGCLD-with-SIGCHLD.patch \
- file://0004-include-limit.h-for-PATH_MAX.patch \
- file://0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch \
- file://0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch \
- "
-SRC_URI[md5sum] = "c6e91f2ac8b76c796db2d236f5ca5947"
-SRC_URI[sha256sum] = "99e6d4df257ebc6d29ca9e970ca20672c2ea03481ad949bc68f98de3e4d56dce"
-
-inherit autotools-brokensep
-
-PARALLEL_MAKE = ""
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext"
-
-CFLAGS += "-D_FILE_OFFSET_BITS=64"
-
-EXTRA_OEMAKE += "'LIBTOOL=${HOST_SYS}-libtool' V=1"
-
-do_configure () {
- export DEBUG="-DNDEBUG"
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
- oe_runconf
-}
-
-do_install () {
- export DIST_ROOT=${D}
- oe_runmake install
- oe_runmake install-dev
-}
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb
new file mode 100644
index 0000000..54ab30c
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb
@@ -0,0 +1,40 @@
+SUMMARY = "XFS Filesystem Dump Utility"
+DESCRIPTION = "The xfsdump package contains xfsdump, xfsrestore and a \
+ number of other utilities for administering XFS filesystems.\
+ xfsdump examines files in a filesystem, determines which \
+ need to be backed up, and copies those files to a \
+ specified disk, tape or other storage medium."
+HOMEPAGE = "http://oss.sgi.com/projects/xfs"
+SECTION = "base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc"
+DEPENDS = "xfsprogs attr"
+
+SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \
+ file://remove-install-as-user.patch \
+ "
+SRC_URI[md5sum] = "84d3bc287b4a2bb5d16b2320a47049a7"
+SRC_URI[sha256sum] = "ed14e67ae5b273c2698e767b43a46f033d361e540fe13feaaf9b110ee0edc585"
+
+inherit autotools-brokensep
+
+PARALLEL_MAKE = ""
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext"
+
+CFLAGS += "-D_FILE_OFFSET_BITS=64"
+
+EXTRA_OEMAKE += "'LIBTOOL=${HOST_SYS}-libtool' V=1"
+
+do_configure () {
+ export DEBUG="-DNDEBUG"
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+ oe_runconf
+}
+
+do_install () {
+ export DIST_ROOT=${D}
+ oe_runmake install
+ oe_runmake install-dev
+}
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch
new file mode 100644
index 0000000..75b227a
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch
@@ -0,0 +1,52 @@
+From f41ef1f06d428c81fcdef73d896dfc7ceda1809c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 Aug 2018 04:59:39 +0000
+Subject: [PATCH] Check for MAP_SYNC in sys/mman.h
+
+Not all arches have wired MAP_SYNC e.g. mips
+which have conflicts with definition, so checking
+a generic file is going to mis-configure xfsprogs
+for such arches.
+
+libc now has added the relevant macros to
+sys/mman.h, and returns the right values for arches
+where its implemented and nothing for others
+unlike asm-generic/mman.h which only checks
+for kernel headers and ignored arches
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/linux.h | 3 +--
+ m4/package_libcdev.m4 | 3 +--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/include/linux.h b/include/linux.h
+index 1998941..7e5c9ab 100644
+--- a/include/linux.h
++++ b/include/linux.h
+@@ -331,8 +331,7 @@ fsmap_advance(
+ #define MAP_SYNC 0
+ #define MAP_SHARED_VALIDATE 0
+ #else
+-#include <asm-generic/mman.h>
+-#include <asm-generic/mman-common.h>
++#include <sys/mman.h>
+ #endif /* HAVE_MAP_SYNC */
+
+ #endif /* __XFS_LINUX_H__ */
+diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4
+index 0a6b514..2b47d2f 100644
+--- a/m4/package_libcdev.m4
++++ b/m4/package_libcdev.m4
+@@ -335,8 +335,7 @@ AC_DEFUN([AC_HAVE_STATFS_FLAGS],
+ AC_DEFUN([AC_HAVE_MAP_SYNC],
+ [ AC_MSG_CHECKING([for MAP_SYNC])
+ AC_TRY_COMPILE([
+-#include <asm-generic/mman.h>
+-#include <asm-generic/mman-common.h>
++#include <sys/mman.h>
+ ], [
+ int flags = MAP_SYNC | MAP_SHARED_VALIDATE;
+ ], have_map_sync=yes
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch
index d8ff555..231da80 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch
@@ -1,14 +1,14 @@
-From ae7172194d3fbb563ff8bbe7c02d34f1bd0e5ec9 Mon Sep 17 00:00:00 2001
+From f8a22f16c03e51d3c779b12f37d362faaa0ecf31 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 31 Jan 2018 21:28:53 -0800
Subject: [PATCH] build: Check for sync_file_range libc function
glibc 2.27 now has sync_file_range()
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
include/builddefs.in | 1 +
io/Makefile | 5 ++++-
io/io.h | 2 +-
@@ -16,10 +16,10 @@
4 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/include/builddefs.in b/include/builddefs.in
-index 92d5076..504225a 100644
+index b895949..a388c83 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
-@@ -105,6 +105,7 @@ HAVE_FIEMAP = @have_fiemap@
+@@ -95,6 +95,7 @@ HAVE_FIEMAP = @have_fiemap@
HAVE_PREADV = @have_preadv@
HAVE_PWRITEV2 = @have_pwritev2@
HAVE_COPY_FILE_RANGE = @have_copy_file_range@
@@ -28,10 +28,10 @@
HAVE_SYNCFS = @have_syncfs@
HAVE_READDIR = @have_readdir@
diff --git a/io/Makefile b/io/Makefile
-index 6725936..1876e95 100644
+index 00ede48..dd001b0 100644
--- a/io/Makefile
+++ b/io/Makefile
-@@ -59,10 +59,13 @@ CFILES += inject.c resblks.c
+@@ -60,10 +60,13 @@ CFILES += inject.c resblks.c
LCFLAGS += -DHAVE_INJECT -DHAVE_RESBLKS
endif
@@ -47,10 +47,10 @@
ifeq ($(HAVE_SYNC_FILE_RANGE),yes)
CFILES += sync_file_range.c
diff --git a/io/io.h b/io/io.h
-index 3862985..79ddc7b 100644
+index e1f3d95..fe2e6a2 100644
--- a/io/io.h
+++ b/io/io.h
-@@ -158,7 +158,7 @@ extern void fiemap_init(void);
+@@ -151,7 +151,7 @@ extern void fiemap_init(void);
#define fiemap_init() do { } while (0)
#endif
@@ -60,23 +60,20 @@
#else
#define copy_range_init() do { } while (0)
diff --git a/io/sync_file_range.c b/io/sync_file_range.c
-index 7e4f3e6..aafea01 100644
+index 30bbc93..6c49d73 100644
--- a/io/sync_file_range.c
+++ b/io/sync_file_range.c
-@@ -16,6 +16,7 @@
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+@@ -4,6 +4,7 @@
+ * All Rights Reserved.
*/
+#ifndef HAVE_COPY_FILE_RANGE
#include "command.h"
#include "input.h"
#include "init.h"
-@@ -104,3 +105,5 @@ sync_range_init(void)
+@@ -92,3 +93,5 @@ sync_range_init(void)
add_command(&sync_range_cmd);
}
+
+#endif
---
-2.16.1
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch
new file mode 100644
index 0000000..f924cd1
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch
@@ -0,0 +1,33 @@
+From 11a42df394de3dc520e72a016296dcc6dea02a7a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 Aug 2018 05:33:57 +0000
+Subject: [PATCH] include include/xfs/linux.h after <sys/mman.h>
+
+This helps compiling with musl which goes ahead and undefines MAP_SYNC
+for mips and other architectures where its not wired in kernel
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ io/mmap.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/io/mmap.c b/io/mmap.c
+index dbfcca5..ca00df1 100644
+--- a/io/mmap.c
++++ b/io/mmap.c
+@@ -4,10 +4,11 @@
+ * All Rights Reserved.
+ */
+
+-#include "command.h"
+-#include "input.h"
+ #include <sys/mman.h>
+ #include <signal.h>
++
++#include "command.h"
++#include "input.h"
+ #include "init.h"
+ #include "io.h"
+
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/disable-xfs_scrub-build.patch b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/disable-xfs_scrub-build.patch
new file mode 100644
index 0000000..c07b4b5
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/disable-xfs_scrub-build.patch
@@ -0,0 +1,30 @@
+From 2bd40e5ed4df0b0a42beff8806b1ec5daa372c48 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 19 Jul 2018 16:49:41 +0800
+Subject: [PATCH] Disable xfs_scrub build
+
+Disable xfs_scrub build since it is experimental.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 7ddfa31..cd60319 100644
+--- a/Makefile
++++ b/Makefile
+@@ -48,7 +48,7 @@ LIBFROG_SUBDIR = libfrog
+ DLIB_SUBDIRS = libxlog libxcmd libhandle
+ LIB_SUBDIRS = libxfs $(DLIB_SUBDIRS)
+ TOOL_SUBDIRS = copy db estimate fsck growfs io logprint mkfs quota \
+- mdrestore repair rtcp m4 man doc debian spaceman scrub
++ mdrestore repair rtcp m4 man doc debian spaceman
+
+ ifneq ("$(PKG_PLATFORM)","darwin")
+ TOOL_SUBDIRS += fsr
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.14.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.14.0.bb
deleted file mode 100644
index 5d76afe..0000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.14.0.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "XFS Filesystem Utilities"
-HOMEPAGE = "http://oss.sgi.com/projects/xfs"
-SECTION = "base"
-LICENSE = "GPLv2 & LGPLv2.1"
-LICENSE_libhandle = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=102f7fec3d53c7c8f0b7baf9bf9d76a8"
-DEPENDS = "util-linux util-linux-native"
-SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \
- file://remove_flags_from_build_flags.patch \
- file://0001-build-Check-for-sync_file_range-libc-function.patch \
- "
-SRC_URI[md5sum] = "2d50e3751cc98e6c9364bc3d2297b9fd"
-SRC_URI[sha256sum] = "b1b710b268bc95d6f45eca06e1262c29eb38865a19cd4404e48ba446e043b7ec"
-
-inherit autotools-brokensep
-
-PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle"
-
-DEPENDS += "util-linux"
-
-RDEPENDS_${PN} = "${PN}-fsck ${PN}-mkfs ${PN}-repair"
-
-FILES_${PN}-fsck = "${base_sbindir}/fsck.xfs"
-FILES_${PN}-mkfs = "${base_sbindir}/mkfs.xfs"
-FILES_${PN}-repair = "${base_sbindir}/xfs_repair"
-
-FILES_libhandle = "${base_libdir}/libhandle${SOLIBS}"
-
-EXTRA_OECONF = "--enable-gettext=no \
- INSTALL_USER=root \
- INSTALL_GROUP=root \
- ac_cv_header_aio_h=yes \
- ac_cv_lib_rt_lio_listio=yes \
-"
-
-DISABLE_STATIC = ""
-EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader"
-
-PACKAGECONFIG ??= "readline blkid"
-
-PACKAGECONFIG[readline] = "--enable-readline=yes,--enable-readline=no,readline"
-PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux"
-
-export DEBUG="-DNDEBUG"
-export BUILD_VERBOSE="1"
-export tagname="CC"
-
-EXTRA_OEMAKE = "DIST_ROOT='${D}'"
-
-do_configure_prepend () {
- export BUILD_CC="${BUILD_CC} ${BUILD_CFLAGS}"
- # Prevent Makefile from calling configure without arguments,
- # when do_configure gets called for a second time.
- rm -f ${B}/include/builddefs ${B}/include/platform_defs.h ${B}/configure
- # Recreate configure script.
- oe_runmake configure
-}
-
-do_install_append() {
- oe_runmake 'DESTDIR=${D}' install-dev
- rm ${D}${libdir}/*.la
- rmdir --ignore-fail-on-non-empty ${D}${libdir}
-}
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.18.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.18.0.bb
new file mode 100644
index 0000000..0a1bacb
--- /dev/null
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.18.0.bb
@@ -0,0 +1,68 @@
+SUMMARY = "XFS Filesystem Utilities"
+HOMEPAGE = "http://oss.sgi.com/projects/xfs"
+SECTION = "base"
+LICENSE = "GPLv2 & LGPLv2.1"
+LICENSE_libhandle = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038 \
+ file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
+DEPENDS = "util-linux util-linux-native"
+SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \
+ file://remove_flags_from_build_flags.patch \
+ file://0001-build-Check-for-sync_file_range-libc-function.patch \
+ file://disable-xfs_scrub-build.patch \
+ file://0001-Check-for-MAP_SYNC-in-sys-mman.h.patch \
+ file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \
+ "
+SRC_URI[md5sum] = "5f80b631b68df89a8b9283307e96d2e8"
+SRC_URI[sha256sum] = "397dc96f51aeeff73d021d3418d3172377b2685f2740ca60525096c070aa3df1"
+
+inherit autotools-brokensep
+
+PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle"
+
+DEPENDS += "util-linux"
+
+RDEPENDS_${PN} = "${PN}-fsck ${PN}-mkfs ${PN}-repair"
+
+FILES_${PN}-fsck = "${base_sbindir}/fsck.xfs"
+FILES_${PN}-mkfs = "${base_sbindir}/mkfs.xfs"
+FILES_${PN}-repair = "${base_sbindir}/xfs_repair"
+
+FILES_libhandle = "${base_libdir}/libhandle${SOLIBS}"
+
+EXTRA_OECONF = "--enable-gettext=no \
+ INSTALL_USER=root \
+ INSTALL_GROUP=root \
+ ac_cv_header_aio_h=yes \
+ ac_cv_lib_rt_lio_listio=yes \
+"
+
+DISABLE_STATIC = ""
+EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader"
+
+PACKAGECONFIG ??= "readline blkid"
+
+PACKAGECONFIG[readline] = "--enable-readline=yes,--enable-readline=no,readline"
+PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux"
+
+export DEBUG="-DNDEBUG"
+export BUILD_VERBOSE="1"
+export tagname="CC"
+
+EXTRA_OEMAKE = "DIST_ROOT='${D}'"
+
+do_configure () {
+ export BUILD_CC="${BUILD_CC} ${BUILD_CFLAGS}"
+ # Prevent Makefile from calling configure without arguments,
+ # when do_configure gets called for a second time.
+ rm -f ${B}/include/builddefs ${B}/include/platform_defs.h ${B}/configure
+ # Recreate configure script.
+ oe_runmake configure
+ oe_runconf
+}
+
+do_install_append() {
+ oe_runmake 'DESTDIR=${D}' install-dev
+ rm ${D}${libdir}/*.la
+ rmdir --ignore-fail-on-non-empty ${D}${libdir}
+}
diff --git a/meta-openembedded/meta-gnome/README b/meta-openembedded/meta-gnome/README
index 2a682e7..84d4f73 100644
--- a/meta-openembedded/meta-gnome/README
+++ b/meta-openembedded/meta-gnome/README
@@ -23,16 +23,16 @@
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: thud
revision: HEAD
URI: git://github.com/openembedded/meta-oe.git
-branch: master
+branch: thud
revision: HEAD
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gnome]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gnome][thud]' in the subject'
When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-gnome][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-gnome][thud][PATCH'
-Layer maintainer: Andreas Müller <schnitzeltony@googlemail.com>
+Thud maintainer: Armin Kuster <akuster808@gmail.com>
diff --git a/meta-openembedded/meta-gnome/conf/layer.conf b/meta-openembedded/meta-gnome/conf/layer.conf
index e6e9532..e9d0785 100644
--- a/meta-openembedded/meta-gnome/conf/layer.conf
+++ b/meta-openembedded/meta-gnome/conf/layer.conf
@@ -14,7 +14,7 @@
LAYERDEPENDS_gnome-layer = "core openembedded-layer networking-layer"
-LAYERSERIES_COMPAT_gnome-layer = "sumo"
+LAYERSERIES_COMPAT_gnome-layer = "thud"
# Sanity check for meta-gnome layer.
# Setting SKIP_META_GNOME_SANITY_CHECK to "1" would skip the bbappend files check.
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.10.bb b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.10.bb
deleted file mode 100644
index dc2b964..0000000
--- a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.10.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "GTK+ applet for NetworkManager"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-DEPENDS = "gtk+3 libnotify libsecret networkmanager dbus-glib \
- gconf libgnome-keyring iso-codes nss \
- intltool-native \
-"
-
-inherit distro_features_check gnomebase gsettings gtk-icon-cache gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "eae3be75e77ff1a7ea3174be25e62d03"
-SRC_URI[archive.sha256sum] = "0adc4bfae8b49f7a1d929c22ef20933bd41fb4a8b458280f44c65f9e45b4c9c3"
-
-PACKAGECONFIG[modemmanager] = "--with-wwan,--without-wwan,modemmanager"
-PACKAGECONFIG ??= ""
-
-EXTRA_OECONF = " \
- --without-selinux \
-"
-
-do_configure_append() {
- # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror
- for i in $(find ${B} -name "Makefile") ; do
- sed -i -e s%-Werror[^[:space:]]*%%g $i
- done
-}
-
-# gobject-introspection related
-GI_DATA_ENABLED_libc-musl = "False"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/src/libnma/.libs:${B}/src/libnm-gtk/.libs"
-}
-
-RDEPENDS_${PN} =+ "networkmanager"
-
-FILES_${PN} += " \
- ${datadir}/appdata \
- ${datadir}/nm-applet/ \
- ${datadir}/libnm-gtk/wifi.ui \
- ${datadir}/libnma/wifi.ui \
-"
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.18.bb b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.18.bb
new file mode 100644
index 0000000..0184000
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.18.bb
@@ -0,0 +1,52 @@
+SUMMARY = "GTK+ applet for NetworkManager"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS = "gtk+3 libnotify libsecret networkmanager dbus-glib \
+ gconf libgnome-keyring iso-codes nss \
+ intltool-native \
+"
+
+GNOMEBASEBUILDCLASS = "autotools-brokensep"
+inherit distro_features_check gnomebase gsettings gtk-icon-cache gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.md5sum] = "34923579b39360db64649342ee6735d8"
+SRC_URI[archive.sha256sum] = "23dc1404f1e0622b7c4718b6d978b101d5e4d9be0b92133b3863a4dc29786178"
+
+PACKAGECONFIG[modemmanager] = "--with-wwan,--without-wwan,modemmanager"
+PACKAGECONFIG[mobile-provider-info] = "--enable-mobile-broadband-provider-info,--disable-mobile-broadband-provider-info,mobile-broadband-provider-info,mobile-broadband-provider-info"
+PACKAGECONFIG ??= ""
+
+EXTRA_OECONF = " \
+ --without-selinux \
+"
+
+do_configure_append() {
+ # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror
+ for i in $(find ${B} -name "Makefile") ; do
+ sed -i -e s%-Werror[^[:space:]]*%%g $i
+ done
+}
+
+# gobject-introspection related
+GI_DATA_ENABLED_libc-musl = "False"
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/src/libnma/.libs:${B}/src/libnm-gtk/.libs"
+}
+
+RDEPENDS_${PN} =+ "networkmanager"
+
+FILES_${PN} += " \
+ ${datadir}/nm-applet/ \
+ ${datadir}/libnm-gtk/wifi.ui \
+ ${datadir}/libnma/wifi.ui \
+ ${datadir}/metainfo \
+"
+
+# musl builds generate gir files which otherwise go un-packaged
+FILES_${PN}-dev += " \
+ ${datadir}/gir-1.0 \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/networkmanager/networkmanager_%.bbappend b/meta-openembedded/meta-gnome/recipes-connectivity/networkmanager/networkmanager_%.bbappend
new file mode 100644
index 0000000..291a616
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/networkmanager/networkmanager_%.bbappend
@@ -0,0 +1,3 @@
+# networkmanager-applet requires glib support
+PACKAGECONFIG_append = "glib"
+
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch b/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch
deleted file mode 100644
index 570cb9e..0000000
--- a/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From fb5056fea9559b3ec3bb61967a112b6c793b700d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Jan 2013 21:33:34 -0800
-Subject: [PATCH] include unistd.h to get ssize_t definitions
-
-Fixes errors like
-
-| In file included from plugins/mas.c:36:0:
-| ./src/obex.h:39:1: error: unknown type name 'ssize_t'
-| ./src/obex.h:49:1: error: unknown type name 'ssize_t'
-| ./src/obex.h:50:1: error: unknown type name 'ssize_t'
-| In file included from plugins/mas.c:38:0:
-| ./src/mimetype.h:36:2: error: expected specifier-qualifier-list before 'ssize_t'
-| In file included from plugins/mas.c:39:0:
-| plugins/filesystem.h:24:1: error: unknown type name 'ssize_t'
-| plugins/mas.c:550:1: error: unknown type name 'ssize_t'
-| plugins/mas.c:557:1: error: unknown type name 'ssize_t'
-| plugins/mas.c: In function 'any_read':
-| plugins/mas.c:560:2: error: unknown type name 'ssize_t'
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- plugins/mas.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/plugins/mas.c b/plugins/mas.c
-index 1b18059..b519507 100644
---- a/plugins/mas.c
-+++ b/plugins/mas.c
-@@ -30,6 +30,7 @@
- #include <glib.h>
- #include <fcntl.h>
- #include <inttypes.h>
-+#include <unistd.h>
-
- #include <gobex/gobex.h>
- #include <gobex/gobex-apparam.h>
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb b/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb
deleted file mode 100644
index 6096bed..0000000
--- a/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "OBEX Server and Client"
-# obexd was integrated into bluez5
-DEPENDS = "glib-2.0 dbus libical"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
-
-SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/obexd-${PV}.tar.gz \
- file://ssize_t_definition.patch \
-"
-SRC_URI[md5sum] = "d03cf9bad2983243837f4f6d76ef14a6"
-SRC_URI[sha256sum] = "eaa9d8d9542700e6750918d72a3ce00f8cf3a2771d3e2516efd1be5a05f78582"
-
-inherit autotools-brokensep pkgconfig
-
-PACKAGES =+ "obex-client obex-plugins"
-
-FILES_${PN} += "${datadir}/dbus-1/services/${PN}.service"
-FILES_obex-client = "${libexecdir}/obex-client \
- ${datadir}/dbus-1/services/obex-client.service"
-# currently the plugins are empty
-FILES_obex-plugins = "${libdir}/obex/plugins"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch b/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch
new file mode 100644
index 0000000..3731a23
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch
@@ -0,0 +1,180 @@
+From f6d0dc338fe867c1b064682ae7f15bffe019b306 Mon Sep 17 00:00:00 2001
+From: Hubert Figuiere <hub@figuiere.net>
+Date: Tue, 12 Apr 2016 02:55:47 +0000
+Subject: [PATCH] Bug 13770 - Require C++11 from now on.
+
+git-svn-id: svn+ssh://svn.abisource.com/svnroot/abiword/trunk@35197 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ax_cxx_compile_stdcxx_11.m4 | 133 +++++++++++++++++++++++++++++++++++
+ configure.ac | 1 +
+ src/wp/ap/gtk/ap_UnixApp.cpp | 2 +-
+ 3 files changed, 135 insertions(+), 1 deletion(-)
+ create mode 100644 ax_cxx_compile_stdcxx_11.m4
+
+diff --git a/ax_cxx_compile_stdcxx_11.m4 b/ax_cxx_compile_stdcxx_11.m4
+new file mode 100644
+index 0000000..af37acd
+--- /dev/null
++++ b/ax_cxx_compile_stdcxx_11.m4
+@@ -0,0 +1,133 @@
++# ============================================================================
++# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
++# ============================================================================
++#
++# SYNOPSIS
++#
++# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
++#
++# DESCRIPTION
++#
++# Check for baseline language coverage in the compiler for the C++11
++# standard; if necessary, add switches to CXXFLAGS to enable support.
++#
++# The first argument, if specified, indicates whether you insist on an
++# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
++# -std=c++11). If neither is specified, you get whatever works, with
++# preference for an extended mode.
++#
++# The second argument, if specified 'mandatory' or if left unspecified,
++# indicates that baseline C++11 support is required and that the macro
++# should error out if no mode with that support is found. If specified
++# 'optional', then configuration proceeds regardless, after defining
++# HAVE_CXX11 if and only if a supporting mode is found.
++#
++# LICENSE
++#
++# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
++# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
++# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
++#
++# Copying and distribution of this file, with or without modification, are
++# permitted in any medium without royalty provided the copyright notice
++# and this notice are preserved. This file is offered as-is, without any
++# warranty.
++
++#serial 3
++
++m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [
++ template <typename T>
++ struct check
++ {
++ static_assert(sizeof(int) <= sizeof(T), "not big enough");
++ };
++
++ typedef check<check<bool>> right_angle_brackets;
++
++ int a;
++ decltype(a) b;
++
++ typedef check<int> check_type;
++ check_type c;
++ check_type&& cr = static_cast<check_type&&>(c);
++
++ auto d = a;
++])
++
++AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl
++ m4_if([$1], [], [],
++ [$1], [ext], [],
++ [$1], [noext], [],
++ [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
++ m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
++ [$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
++ [$2], [optional], [ax_cxx_compile_cxx11_required=false],
++ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl
++ AC_LANG_PUSH([C++])dnl
++ ac_success=no
++ AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
++ ax_cv_cxx_compile_cxx11,
++ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
++ [ax_cv_cxx_compile_cxx11=yes],
++ [ax_cv_cxx_compile_cxx11=no])])
++ if test x$ax_cv_cxx_compile_cxx11 = xyes; then
++ ac_success=yes
++ fi
++
++ m4_if([$1], [noext], [], [dnl
++ if test x$ac_success = xno; then
++ for switch in -std=gnu++11 -std=gnu++0x; do
++ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
++ AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
++ $cachevar,
++ [ac_save_CXXFLAGS="$CXXFLAGS"
++ CXXFLAGS="$CXXFLAGS $switch"
++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
++ [eval $cachevar=yes],
++ [eval $cachevar=no])
++ CXXFLAGS="$ac_save_CXXFLAGS"])
++ if eval test x\$$cachevar = xyes; then
++ CXXFLAGS="$CXXFLAGS $switch"
++ ac_success=yes
++ break
++ fi
++ done
++ fi])
++
++ m4_if([$1], [ext], [], [dnl
++ if test x$ac_success = xno; then
++ for switch in -std=c++11 -std=c++0x; do
++ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
++ AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
++ $cachevar,
++ [ac_save_CXXFLAGS="$CXXFLAGS"
++ CXXFLAGS="$CXXFLAGS $switch"
++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
++ [eval $cachevar=yes],
++ [eval $cachevar=no])
++ CXXFLAGS="$ac_save_CXXFLAGS"])
++ if eval test x\$$cachevar = xyes; then
++ CXXFLAGS="$CXXFLAGS $switch"
++ ac_success=yes
++ break
++ fi
++ done
++ fi])
++ AC_LANG_POP([C++])
++ if test x$ax_cxx_compile_cxx11_required = xtrue; then
++ if test x$ac_success = xno; then
++ AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
++ fi
++ else
++ if test x$ac_success = xno; then
++ HAVE_CXX11=0
++ AC_MSG_NOTICE([No compiler with C++11 support was found])
++ else
++ HAVE_CXX11=1
++ AC_DEFINE(HAVE_CXX11,1,
++ [define if the compiler supports basic C++11 syntax])
++ fi
++
++ AC_SUBST(HAVE_CXX11)
++ fi
++])
+diff --git a/configure.ac b/configure.ac
+index 48228be..f7be7de 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -131,6 +131,7 @@ win_pkgs="$enchant_req"
+
+ AC_PROG_CC
+ AC_PROG_CXX
++AX_CXX_COMPILE_STDCXX_11(noext,mandatory)
+ #AC_PROG_OBJC
+ AC_PROG_INSTALL
+ # For libtool 1.5.x compatability (AC_PROG_LIBTOOL is deprecated version of LT_INIT)
+diff --git a/src/wp/ap/gtk/ap_UnixApp.cpp b/src/wp/ap/gtk/ap_UnixApp.cpp
+index 061a304..260f8e5 100644
+--- a/src/wp/ap/gtk/ap_UnixApp.cpp
++++ b/src/wp/ap/gtk/ap_UnixApp.cpp
+@@ -863,7 +863,7 @@ static bool is_so (const char *file) {
+ if (len < (strlen(G_MODULE_SUFFIX) + 2)) // this is ".so" and at least one char for the filename
+ return false;
+ const char *suffix = file+(len-3);
+- if(0 == strcmp (suffix, "."G_MODULE_SUFFIX))
++ if(0 == strcmp (suffix, "." G_MODULE_SUFFIX))
+ return true;
+ return false;
+ }
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb
index d2c0186..36b056f 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb
@@ -8,7 +8,7 @@
gtk+ \
gtkmathview \
wv \
- libfribidi \
+ fribidi \
jpeg \
libpng \
librsvg \
@@ -24,10 +24,10 @@
"
RCONFLICTS_${PN} = "${PN}-embedded"
-SRC_URI = " \
- http://www.abisource.com/downloads/${BPN}/${PV}/source/${BP}.tar.gz \
- file://0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch \
-"
+SRC_URI = "http://www.abisource.com/downloads/${BPN}/${PV}/source/${BP}.tar.gz \
+ file://0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch \
+ file://0001-Bug-13770-Require-C-11-from-now-on.patch \
+ "
LIC_FILES_CHKSUM = "file://COPYING;md5=c5edcc3ccd864b19004d14e9c1c9a26a"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.28.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.28.0.bb
new file mode 100644
index 0000000..70f917e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf-editor_3.28.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Configuration editor for dconf"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = "dconf gtk+3"
+
+inherit gnomebase vala gettext gsettings bash-completion
+
+SRC_URI[archive.md5sum] = "cc9eb8020cc848812972d8519c3d05cf"
+SRC_URI[archive.sha256sum] = "455b53d827820efd28a176ee52e13eda5cda8cdf4e31e0145cfdd69931bf0c5a"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb
deleted file mode 100644
index e24bde4..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "configuation database system"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-SECTION = "x11/gnome"
-
-inherit gnomebase gsettings
-SRC_URI[archive.md5sum] = "69a12ed68893f2e1e81ac4e531bc1515"
-SRC_URI[archive.sha256sum] = "109b1bc6078690af1ed88cb144ef5c5aee7304769d8bdc82ed48c3696f10c955"
-GNOME_COMPRESS_TYPE = "xz"
-
-DEPENDS = "dbus glib-2.0 libxml2 intltool-native"
-
-inherit vala gtk-doc distro_features_check
-
-PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "editor", "", d)}"
-
-#note: editor will be removed in version 0.23.1
-PACKAGECONFIG[editor] = "--enable-editor,--disable-editor,gtk+3"
-
-REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains("PACKAGECONFIG", "editor", "x11", "", d)}"
-
-EXTRA_OECONF += "--disable-man"
-
-PACKAGES =+ "${@bb.utils.contains("DISTRO_FEATURES", "x11", "dconf-editor", "", d)}"
-
-FILES_${PN} += " \
- ${datadir}/dbus-1 \
- ${libdir}/gio/modules/*.so \
- ${datadir}/bash-completion \
-"
-FILES_dconf-editor = " \
- ${bindir}/dconf-editor \
- ${datadir}/icons \
-"
-FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/libdconfsettings.so"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.28.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.28.0.bb
new file mode 100644
index 0000000..99292a8
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.28.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "configuation database system"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+SECTION = "x11/gnome"
+
+SRC_URI[archive.md5sum] = "81faa8e68e5ea71ff0ee75050fc0759c"
+SRC_URI[archive.sha256sum] = "61d3b3865ef58b729c3b39aa0979f886c014aa8362f93dcfc74bf5648ed9c742"
+
+DEPENDS = "dbus glib-2.0 intltool-native"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings bash-completion vala
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${libdir}/gio/modules/*.so \
+"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch
new file mode 100644
index 0000000..d3b0ac6
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch
@@ -0,0 +1,46 @@
+From 698a0e104dcbe4b630df848fd4af7c59f76cdc37 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 5 May 2018 17:46:52 -0700
+Subject: [PATCH] Use recommended way to handle the icu namespace
+
+Fixes build with icu >= 61
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libedataserver/e-alphabet-index-private.cpp | 2 ++
+ src/libedataserver/e-transliterator-private.cpp | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/src/libedataserver/e-alphabet-index-private.cpp b/src/libedataserver/e-alphabet-index-private.cpp
+index d3e44f4..ddffd99 100644
+--- a/src/libedataserver/e-alphabet-index-private.cpp
++++ b/src/libedataserver/e-alphabet-index-private.cpp
+@@ -33,9 +33,11 @@
+
+ /* ICU headers */
+ #include <unicode/alphaindex.h>
++#include <unicode/ustring.h>
+
+ using icu::AlphabeticIndex;
+ using icu::Locale;
++using U_ICU_NAMESPACE::UnicodeString;
+
+ struct _EAlphabetIndex {
+ AlphabeticIndex *priv;
+diff --git a/src/libedataserver/e-transliterator-private.cpp b/src/libedataserver/e-transliterator-private.cpp
+index bb15593..573446f 100644
+--- a/src/libedataserver/e-transliterator-private.cpp
++++ b/src/libedataserver/e-transliterator-private.cpp
+@@ -33,8 +33,10 @@
+
+ /* ICU headers */
+ #include <unicode/translit.h>
++#include <unicode/ustring.h>
+
+ using icu::Transliterator;
++using U_ICU_NAMESPACE::UnicodeString;
+
+ struct _ETransliterator {
+ Transliterator *priv;
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.3.bb
deleted file mode 100644
index 2303b8f..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.3.bb
+++ /dev/null
@@ -1,130 +0,0 @@
-SUMMARY = "Evolution database backend server"
-HOMEPAGE = "http://www.gnome.org/projects/evolution/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2 & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
- file://src/camel/camel.h;endline=24;md5=342fc5e9357254bc30c24e43ae47d9a1 \
- file://src/libedataserver/e-data-server-util.h;endline=20;md5=8f21a9c80ea82a4fb80b5f959f672543 \
- file://src/calendar/libecal/e-cal.h;endline=24;md5=e699ec3866f73f129f7a4ffffdcfc196"
-
-DEPENDS = " \
- intltool-native gperf-native \
- glib-2.0 gtk+3 gconf libgnome-keyring libgdata \
- dbus db virtual/libiconv zlib libsoup-2.4 libical nss libsecret \
-"
-
-inherit distro_features_check gnomebase cmake gtk-doc gettext gobject-introspection perlnative pythonnative
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += " \
- file://0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch \
- file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \
- file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \
- file://iconv-detect.h \
-"
-SRC_URI[archive.md5sum] = "568a21a4df4e0ec985c849b38fc66908"
-SRC_URI[archive.sha256sum] = "63b1ae5f76be818862f455bf841b5ebb1ec3e1f4df6d3a16dc2be348b7e0a1c5"
-
-LKSTRFTIME = "HAVE_LKSTRFTIME=ON"
-LKSTRFTIME_libc-musl = "HAVE_LKSTRFTIME=OFF"
-
-EXTRA_OECMAKE = " \
- -DWITH_KRB5=OFF \
- -DENABLE_GOA=OFF \
- -DENABLE_UOA=OFF \
- -DENABLE_GOOGLE_AUTH=OFF \
- -DENABLE_WEATHER=OFF \
- -D${LKSTRFTIME} \
-"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap"
-
-EXTRA_OECONF = "--with-libdb=${STAGING_DIR_HOST}${prefix} \
- --disable-nntp --disable-gtk-doc"
-
-# -ldb needs this on some platforms
-LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0"
-
-do_configure_append () {
- cp ${WORKDIR}/iconv-detect.h ${S}/src
-
- # fix native perl shebang
- sed -i 's:${STAGING_BINDIR_NATIVE}/perl-native:${bindir}:' ${B}/src/tools/addressbook-export/csv2vcard
-}
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs"
-}
-
-
-PACKAGES =+ "libcamel libcamel-dev libebook libebook-dev libecal libecal-dev \
- libedata-book libedata-book-dev libedata-cal libedata-cal-dev \
- libedataserver libedataserver-dev \
- libedataserverui libedataserverui-dev"
-
-FILES_${PN} =+ "${systemd_user_unitdir} \
- ${datadir}/dbus-1 \
- ${datadir}/evolution-data-server-*/ui/"
-RDEPENDS_${PN} += "perl"
-
-FILES_${PN}-dev =+ "${libdir}/pkgconfig/evolution-data-server-*.pc"
-FILES_${PN}-dbg =+ "${libdir}/evolution-data-server*/camel-providers/.debug \
- ${libdir}/evolution-data-server*/calendar-backends/.debug \
- ${libdir}/evolution-data-server*/addressbook-backends/.debug \
- ${libdir}/evolution-data-server*/extensions/.debug/"
-
-RRECOMMENDS_${PN}-dev += "libecal-dev libebook-dev"
-
-FILES_libcamel = "${libdir}/libcamel-*.so.* \
- ${libdir}/libcamel-provider-*.so.* \
- ${libdir}/evolution-data-server*/camel-providers/*.so \
- ${libdir}/evolution-data-server*/camel-providers/*.urls"
-FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so \
- ${libdir}/pkgconfig/camel*pc \
- ${libdir}/evolution-data-server*/camel-providers/*.la \
- ${includedir}/evolution-data-server*/camel"
-
-FILES_libebook = "${libdir}/libebook-*.so.*"
-FILES_libebook-dev = "${libdir}/libebook-1.2.so \
- ${libdir}/pkgconfig/libebook-*.pc \
- ${includedir}/evolution-data-server*/libebook/*.h"
-RRECOMMENDS_libebook = "libedata-book"
-
-FILES_libecal = "${libdir}/libecal-*.so.* \
- ${datadir}/evolution-data-server-1.4/zoneinfo"
-FILES_libecal-dev = "${libdir}/libecal-*.so ${libdir}/pkgconfig/libecal-*.pc \
- ${includedir}/evolution-data-server*/libecal/*.h \
- ${includedir}/evolution-data-server*/libical/*.h"
-RRECOMMENDS_libecal = "libedata-cal tzdata"
-
-FILES_libedata-book = "${libexecdir}/e-addressbook-factory \
- ${datadir}/dbus-1/services/*.AddressBook.service \
- ${libdir}/libedata-book-*.so.* \
- ${libdir}/evolution-data-server-*/extensions/libebook*.so \
- ${datadir}/evolution-data-server-1.4/weather/Locations.xml"
-FILES_libedata-book-dev = "${libdir}/libedata-book-*.so \
- ${libdir}/pkgconfig/libedata-book-*.pc \
- ${libdir}/evolution-data-server-*/extensions/libebook*.la \
- ${includedir}/evolution-data-server-*/libedata-book"
-
-FILES_libedata-cal = "${libexecdir}/e-calendar-factory \
- ${datadir}/dbus-1/services/*.Calendar.service \
- ${libdir}/libedata-cal-*.so.* \
- ${libdir}/evolution-data-server-*/extensions/libecal*.so"
-FILES_libedata-cal-dev = "${libdir}/libedata-cal-*.so \
- ${libdir}/pkgconfig/libedata-cal-*.pc \
- ${includedir}/evolution-data-server-*/libedata-cal \
- ${libdir}/evolution-data-server-*/extensions/libecal*.la"
-
-FILES_libedataserver = "${libdir}/libedataserver-*.so.*"
-FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \
- ${libdir}/pkgconfig/libedataserver-*.pc \
- ${includedir}/evolution-data-server-*/libedataserver/*.h"
-
-FILES_libedataserverui = "${libdir}/libedataserverui-*.so.* ${datadir}/evolution-data-server-1.4/glade/*.glade"
-FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \
- ${libdir}/pkgconfig/libedataserverui-*.pc \
- ${includedir}/evolution-data-server-*/libedataserverui/*.h"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb
new file mode 100644
index 0000000..db5dca9
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb
@@ -0,0 +1,131 @@
+SUMMARY = "Evolution database backend server"
+HOMEPAGE = "http://www.gnome.org/projects/evolution/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPLv2 & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
+ file://src/camel/camel.h;endline=24;md5=342fc5e9357254bc30c24e43ae47d9a1 \
+ file://src/libedataserver/e-data-server-util.h;endline=20;md5=8f21a9c80ea82a4fb80b5f959f672543 \
+ file://src/calendar/libecal/e-cal.h;endline=24;md5=e699ec3866f73f129f7a4ffffdcfc196"
+
+DEPENDS = " \
+ intltool-native gperf-native \
+ glib-2.0 gtk+3 gconf libgnome-keyring libgdata \
+ dbus db virtual/libiconv zlib libsoup-2.4 libical nss libsecret \
+"
+
+inherit distro_features_check gnomebase cmake gtk-doc gettext gobject-introspection perlnative pythonnative
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
+ file://0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch \
+ file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \
+ file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \
+ file://iconv-detect.h \
+ file://0004-Use-recommended-way-to-handle-the-icu-namespace.patch \
+ "
+SRC_URI[archive.md5sum] = "ae7bbf543b2c3ff79af27e0edea5d472"
+SRC_URI[archive.sha256sum] = "e43aa1847ddc02965f560261ef88d18fb8704eddaa55555bf96b884a33e510ec"
+
+LKSTRFTIME = "HAVE_LKSTRFTIME=ON"
+LKSTRFTIME_libc-musl = "HAVE_LKSTRFTIME=OFF"
+
+EXTRA_OECMAKE = " \
+ -DWITH_KRB5=OFF \
+ -DENABLE_GOA=OFF \
+ -DENABLE_UOA=OFF \
+ -DENABLE_GOOGLE_AUTH=OFF \
+ -DENABLE_WEATHER=OFF \
+ -D${LKSTRFTIME} \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap"
+
+EXTRA_OECONF = "--with-libdb=${STAGING_DIR_HOST}${prefix} \
+ --disable-nntp --disable-gtk-doc"
+
+# -ldb needs this on some platforms
+LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0"
+
+do_configure_append () {
+ cp ${WORKDIR}/iconv-detect.h ${S}/src
+
+ # fix native perl shebang
+ sed -i 's:${STAGING_BINDIR_NATIVE}/perl-native:${bindir}:' ${B}/src/tools/addressbook-export/csv2vcard
+}
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs"
+}
+
+
+PACKAGES =+ "libcamel libcamel-dev libebook libebook-dev libecal libecal-dev \
+ libedata-book libedata-book-dev libedata-cal libedata-cal-dev \
+ libedataserver libedataserver-dev \
+ libedataserverui libedataserverui-dev"
+
+FILES_${PN} =+ "${systemd_user_unitdir} \
+ ${datadir}/dbus-1 \
+ ${datadir}/evolution-data-server-*/ui/"
+RDEPENDS_${PN} += "perl"
+
+FILES_${PN}-dev =+ "${libdir}/pkgconfig/evolution-data-server-*.pc"
+FILES_${PN}-dbg =+ "${libdir}/evolution-data-server*/camel-providers/.debug \
+ ${libdir}/evolution-data-server*/calendar-backends/.debug \
+ ${libdir}/evolution-data-server*/addressbook-backends/.debug \
+ ${libdir}/evolution-data-server*/extensions/.debug/"
+
+RRECOMMENDS_${PN}-dev += "libecal-dev libebook-dev"
+
+FILES_libcamel = "${libdir}/libcamel-*.so.* \
+ ${libdir}/libcamel-provider-*.so.* \
+ ${libdir}/evolution-data-server*/camel-providers/*.so \
+ ${libdir}/evolution-data-server*/camel-providers/*.urls"
+FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so \
+ ${libdir}/pkgconfig/camel*pc \
+ ${libdir}/evolution-data-server*/camel-providers/*.la \
+ ${includedir}/evolution-data-server*/camel"
+
+FILES_libebook = "${libdir}/libebook-*.so.*"
+FILES_libebook-dev = "${libdir}/libebook-1.2.so \
+ ${libdir}/pkgconfig/libebook-*.pc \
+ ${includedir}/evolution-data-server*/libebook/*.h"
+RRECOMMENDS_libebook = "libedata-book"
+
+FILES_libecal = "${libdir}/libecal-*.so.* \
+ ${datadir}/evolution-data-server-1.4/zoneinfo"
+FILES_libecal-dev = "${libdir}/libecal-*.so ${libdir}/pkgconfig/libecal-*.pc \
+ ${includedir}/evolution-data-server*/libecal/*.h \
+ ${includedir}/evolution-data-server*/libical/*.h"
+RRECOMMENDS_libecal = "libedata-cal tzdata"
+
+FILES_libedata-book = "${libexecdir}/e-addressbook-factory \
+ ${datadir}/dbus-1/services/*.AddressBook.service \
+ ${libdir}/libedata-book-*.so.* \
+ ${libdir}/evolution-data-server-*/extensions/libebook*.so \
+ ${datadir}/evolution-data-server-1.4/weather/Locations.xml"
+FILES_libedata-book-dev = "${libdir}/libedata-book-*.so \
+ ${libdir}/pkgconfig/libedata-book-*.pc \
+ ${libdir}/evolution-data-server-*/extensions/libebook*.la \
+ ${includedir}/evolution-data-server-*/libedata-book"
+
+FILES_libedata-cal = "${libexecdir}/e-calendar-factory \
+ ${datadir}/dbus-1/services/*.Calendar.service \
+ ${libdir}/libedata-cal-*.so.* \
+ ${libdir}/evolution-data-server-*/extensions/libecal*.so"
+FILES_libedata-cal-dev = "${libdir}/libedata-cal-*.so \
+ ${libdir}/pkgconfig/libedata-cal-*.pc \
+ ${includedir}/evolution-data-server-*/libedata-cal \
+ ${libdir}/evolution-data-server-*/extensions/libecal*.la"
+
+FILES_libedataserver = "${libdir}/libedataserver-*.so.*"
+FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \
+ ${libdir}/pkgconfig/libedataserver-*.pc \
+ ${includedir}/evolution-data-server-*/libedataserver/*.h"
+
+FILES_libedataserverui = "${libdir}/libedataserverui-*.so.* ${datadir}/evolution-data-server-1.4/glade/*.glade"
+FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \
+ ${libdir}/pkgconfig/libedataserverui-*.pc \
+ ${includedir}/evolution-data-server-*/libedataserverui/*.h"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch
new file mode 100644
index 0000000..e87da90
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-add-a-formatting-attribute-check.patch
@@ -0,0 +1,34 @@
+From ef170dda7fbab53682c9bc287dec93fa86130bc9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 9 Sep 2018 21:49:59 -0700
+Subject: [PATCH] add a formatting attribute check
+
+Tell Clang that parameter is a printf style format using the
+attribute flag
+
+This helps in avoiding below warnings seen with clang
+
+unarr.c:106:22: error: format string is not a string literal
+[-Werror,-Wformat-nonliteral]
+| vfprintf(stderr, msg, args);
+| ^~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cut-n-paste/unarr/common/unarr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cut-n-paste/unarr/common/unarr.c b/cut-n-paste/unarr/common/unarr.c
+index 97ec92a..9e6e3ad 100644
+--- a/cut-n-paste/unarr/common/unarr.c
++++ b/cut-n-paste/unarr/common/unarr.c
+@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive *ar, void *buffer, size_t count)
+ return ar->get_comment(ar, buffer, count);
+ }
+
+-void ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
++void __attribute__((__format__ (__printf__, 4, 0))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
+ {
+ va_list args;
+ va_start(args, msg);
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.24.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.24.0.bb
deleted file mode 100644
index c7ecf2b..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.24.0.bb
+++ /dev/null
@@ -1,66 +0,0 @@
-SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
-SECTION = "x11/office"
-DEPENDS = "gtk+3 libsecret ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop3','',d)} poppler gstreamer1.0-plugins-base orc adwaita-icon-theme intltool-native gnome-common-native"
-PR = "r5"
-
-inherit gnome pkgconfig gtk-icon-cache gsettings gobject-introspection distro_features_check systemd
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
- file://0001-help-remove-YELP-macro.patch \
- file://0001-Add-format-attribute-to-_synctex_malloc.patch \
- "
-SRC_URI[archive.md5sum] = "3fb65ff46de191dc49c481f1fc66201c"
-SRC_URI[archive.sha256sum] = "043895af7bbd6f1b57f9ab8778e78cf9c0af5dfcc347eaa94a17bf864c04dc8f"
-
-EXTRA_OECONF = " --enable-thumbnailer \
-"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs"
-}
-
-
-do_install_append() {
- install -d ${D}${datadir}/pixmaps
- install -m 0755 ${S}/data/icons/48x48/apps/evince.png ${D}${datadir}/pixmaps/
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}
- then
- install -d ${D}${systemd_unitdir}/system
- mv ${D}${systemd_user_unitdir}/evince.service ${D}${systemd_system_unitdir}/evince.service
- else
- rm -rf ${D}${libdir}/systemd/user/evince.service
- fi
- rmdir --ignore-fail-on-non-empty ${D}${systemd_user_unitdir}
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus"
-PACKAGECONFIG[browser-plugin] = "--enable-browser-plugin,--disable-browser-plugin,"
-
-SYSTEMD_SERVICE_${PN} = "evince.service"
-
-RDEPENDS_${PN} += "glib-2.0-utils"
-RRECOMMMENDS_${PN} = "adwaita-icon-theme"
-
-PACKAGES =+ "${PN}-nautilus-extension"
-PACKAGES =+ "${PN}-browser-plugin"
-
-FILES_${PN} += "${datadir}/dbus-1 \
- ${datadir}/appdata \
- ${datadir}/thumbnailers \
- ${systemd_unitdir}/systemd/user/evince.service \
- "
-FILES_${PN}-dbg += "${libdir}/*/*/.debug \
- ${libdir}/*/*/*/.debug"
-FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \
- ${libdir}/evince/*/backends/*.la"
-FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \
- ${libdir}/evince/*/backends/*.a"
-FILES_${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
-FILES_${PN}-browser-plugin = "${libdir}/mozilla/*/*so"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb
new file mode 100644
index 0000000..8bf8a04
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
+SECTION = "x11/office"
+DEPENDS = "gtk+3 libsecret ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop3','',d)} poppler gstreamer1.0-plugins-base orc adwaita-icon-theme intltool-native gnome-common-native"
+
+inherit gnome pkgconfig gtk-icon-cache gsettings gobject-introspection distro_features_check systemd
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
+ file://0001-help-remove-YELP-macro.patch \
+ file://0001-Add-format-attribute-to-_synctex_malloc.patch \
+ file://0001-add-a-formatting-attribute-check.patch \
+ "
+SRC_URI[archive.md5sum] = "66aa1766eaaa37536e48def11a0e67a3"
+SRC_URI[archive.sha256sum] = "0955d22d85c9f6d322b6cbb464f1cc4c352db619017ec95dad4cc5c3440f73e1"
+
+EXTRA_OECONF = "--enable-thumbnailer"
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs"
+}
+
+
+do_install_append() {
+ install -d ${D}${datadir}/pixmaps
+ install -m 0755 ${S}/data/icons/48x48/apps/evince.png ${D}${datadir}/pixmaps/
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}
+ then
+ install -d ${D}${systemd_unitdir}/system
+ mv ${D}${systemd_user_unitdir}/evince.service ${D}${systemd_system_unitdir}/evince.service
+ else
+ rm -rf ${D}${libdir}/systemd/user/evince.service
+ fi
+ rmdir --ignore-fail-on-non-empty ${D}${systemd_user_unitdir}
+ rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd
+ rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus"
+PACKAGECONFIG[browser-plugin] = "--enable-browser-plugin,--disable-browser-plugin,"
+
+SYSTEMD_SERVICE_${PN} = "evince.service"
+
+RDEPENDS_${PN} += "glib-2.0-utils"
+RRECOMMMENDS_${PN} = "adwaita-icon-theme"
+
+PACKAGES =+ "${PN}-nautilus-extension"
+PACKAGES =+ "${PN}-browser-plugin"
+
+FILES_${PN} += "${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/thumbnailers \
+ ${systemd_unitdir}/systemd/user/evince.service \
+ "
+FILES_${PN}-dbg += "${libdir}/*/*/.debug \
+ ${libdir}/*/*/*/.debug"
+FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \
+ ${libdir}/evince/*/backends/*.la"
+FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \
+ ${libdir}/evince/*/backends/*.a"
+FILES_${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
+FILES_${PN}-browser-plugin = "${libdir}/mozilla/*/*so"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch
new file mode 100644
index 0000000..aa11e8a
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch
@@ -0,0 +1,45 @@
+From 96753d85d8b53dd8f87b8f444892efffdbfab388 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 5 Oct 2017 14:54:17 +0300
+Subject: [PATCH] Disable libseccomp (sycall filtering mechanism)
+
+Upstream forgot to make it optional, and it is not currently used in Yocto
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ configure.ac | 20 --------------------
+ 1 file changed, 20 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 118d04f..47c8894 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -151,26 +151,6 @@ fi
+
+ SECCOMP_PKG=""
+ enable_seccomp="no"
+-dnl Check for bubblewrap compatible platform
+-case $host_os in
+- linux*)
+- case $host_cpu in
+- alpha|ia64|m68k|sh4|sparc64)
+- enable_seccomp="no (not available on this architecture)"
+- AC_MSG_WARN("seccomp not available on this architecture")
+- ;;
+- *)
+- PKG_CHECK_MODULES(LIBSECCOMP, [libseccomp])
+- SECCOMP_PKG="libseccomp"
+- AC_DEFINE([ENABLE_SECCOMP], [1], [Define if using seccomp])
+- enable_seccomp="yes"
+- ;;
+- esac
+- AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define to include GNU extensions])
+- AC_DEFINE_UNQUOTED(HAVE_BWRAP, 1, [Define to 1 if Bubblewrap support is available])
+- AC_DEFINE_UNQUOTED(INSTALL_PREFIX, "$prefix", [Path to library install prefix])
+- ;;
+-esac
+
+ dnl pkg-config dependency checks
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch
new file mode 100644
index 0000000..fcc152f
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch
@@ -0,0 +1,61 @@
+From 9048939b76b3bd10783adb79ed0aaf6cd13895cc Mon Sep 17 00:00:00 2001
+From: Christopher Larson <chris_larson@mentor.com>
+Date: Tue, 13 Dec 2016 20:39:51 -0700
+Subject: [PATCH 1/2] gnome-desktop-thumbnail: don't convert time_t to long
+
+Explicitly use strftime+strptime rather than snprintf+atol. This fixes the
+build for X32, where long's size doesn't match that of time_t.
+
+Upstream-Status: Pending
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+
+
+Modify patch described above to eliminate replacement of
+
+g_snprintf (mtime_str, 21, "%" G_GINT64_FORMAT, (gint64) mtime)
+
+which is not necessary. Retain replacement of atol().
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+---
+ libgnome-desktop/gnome-desktop-thumbnail.c | 16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/libgnome-desktop/gnome-desktop-thumbnail.c b/libgnome-desktop/gnome-desktop-thumbnail.c
+index e56c3d7..5d96bf3 100644
+--- a/libgnome-desktop/gnome-desktop-thumbnail.c
++++ b/libgnome-desktop/gnome-desktop-thumbnail.c
+@@ -120,6 +120,8 @@
+ * Since: 2.2
+ */
+
++#define _XOPEN_SOURCE
++
+ #include <config.h>
+
+ #include <glib.h>
+@@ -1319,6 +1326,7 @@ gnome_desktop_thumbnail_is_valid (GdkPixbuf *pixbuf,
+ {
+ const char *thumb_uri, *thumb_mtime_str;
+ time_t thumb_mtime;
++ struct tm tmp_mtime;
+
+ thumb_uri = gdk_pixbuf_get_option (pixbuf, "tEXt::Thumb::URI");
+ if (g_strcmp0 (uri, thumb_uri) != 0)
+@@ -1327,7 +1335,11 @@ gnome_desktop_thumbnail_is_valid (GdkPixbuf *pixbuf,
+ thumb_mtime_str = gdk_pixbuf_get_option (pixbuf, "tEXt::Thumb::MTime");
+ if (!thumb_mtime_str)
+ return FALSE;
+- thumb_mtime = atol (thumb_mtime_str);
++ if (!strptime (thumb_mtime_str, "%s", &tmp_mtime))
++ return FALSE;
++ thumb_mtime = mktime (&tmp_mtime);
++ if (!thumb_mtime)
++ return FALSE;
+ if (mtime != thumb_mtime)
+ return FALSE;
+
+--
+2.14.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.28.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.28.1.bb
new file mode 100644
index 0000000..39b3491
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.28.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "GNOME library for reading .desktop files"
+SECTION = "x11/gnome"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+BPN = "gnome-desktop"
+
+inherit gnome pkgconfig upstream-version-is-even gobject-introspection
+SRC_URI[archive.md5sum] = "bcbf906d94eb08060c60a7364384d678"
+SRC_URI[archive.sha256sum] = "78a397a2be47586e6dc075d6a7fc5659aae3d10713d76994ce1b46086e7ecb9a"
+
+SRC_URI += " \
+ file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
+ file://0001-Disable-libseccomp-sycall-filtering-mechanism.patch \
+ "
+
+DEPENDS += "intltool-native gsettings-desktop-schemas gconf virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes udev"
+
+inherit distro_features_check gtk-doc
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF = "--disable-desktop-docs"
+
+PACKAGES =+ "libgnome-desktop3"
+FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml"
+
+RRECOMMENDS_libgnome-desktop3 += "gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb
index 82abe33..ba69e2e 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb
@@ -15,3 +15,15 @@
SRC_URI[archive.md5sum] = "6696e4f2e9aed4625cdc3af30bd8c238"
SRC_URI[archive.sha256sum] = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783"
+
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:823: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
+#| {standard input}:823: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#13'
+#| {standard input}:824: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#29'
+#| {standard input}:824: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#19'
+#| {standard input}:825: Error: lo register required -- `orr r10,r10,r10'
+ARM_INSTRUCTION_SET_armv5 = "arm"
+ARM_INSTRUCTION_SET_armv4 = "arm"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.6.bb
deleted file mode 100644
index 87e48ed..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.6.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Portable C library for multiline text editing"
-HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native"
-
-PNAME = "gtksourceview"
-
-S = "${WORKDIR}/${PNAME}-${PV}"
-
-inherit gnomebase lib_package gettext distro_features_check gtk-doc gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.24/${PNAME}-${PV}.tar.xz"
-SRC_URI[md5sum] = "c09ccfc80f78083841f8fe266c1ac52a"
-SRC_URI[sha256sum] = "7aa6bdfebcdc73a763dddeaa42f190c40835e6f8495bb9eb8f78587e2577c188"
-
-FILES_${PN} += " ${datadir}/gtksourceview-3.0"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.8.bb b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.8.bb
new file mode 100644
index 0000000..7cb8866
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.8.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Portable C library for multiline text editing"
+HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native"
+
+PNAME = "gtksourceview"
+
+S = "${WORKDIR}/${PNAME}-${PV}"
+
+inherit gnomebase lib_package gettext distro_features_check gtk-doc gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.24/${PNAME}-${PV}.tar.xz"
+SRC_URI[md5sum] = "52f8c83ad21ad75e9ee6cca03ce2e63f"
+SRC_URI[sha256sum] = "1e9bb8ff190db705deb916dd23ff681f0e8803aec407bf0fd64c7e615ac436fe"
+
+FILES_${PN} += " ${datadir}/gtksourceview-3.0"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.36.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.36.0.bb
deleted file mode 100644
index 5f73912..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.36.0.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-DESCRIPTION = "gvfs is a userspace virtual filesystem"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e"
-
-inherit gnome bash-completion gettext
-
-DEPENDS += "libsecret glib-2.0 gconf intltool-native libgudev udisks2 polkit shadow-native"
-
-SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
-
-SRC_URI[archive.md5sum] = "216d461c5e96e2cea74253be407af6dc"
-SRC_URI[archive.sha256sum] = "9ec388afeb373a213f2cc489184f76a17ae273a000e8a4ec720c1995943256bb"
-
-do_configure_prepend() {
- # make automake happy..
- touch ${S}/ABOUT-NLS
-}
-
-EXTRA_OECONF = " \
- --disable-gdu \
- --enable-udisks2 \
- --disable-documentation \
-"
-
-PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash"
-
-FILES_${PN} += " \
- ${datadir}/glib-2.0 \
- ${datadir}/GConf \
- ${datadir}/dbus-1/services \
- ${libdir}/gio/modules/*.so \
- ${libdir}/tmpfiles.d \
- ${systemd_user_unitdir} \
-"
-RDEPENDS_${PN} = "udisks2"
-
-FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*"
-FILES_${PN}-dev += "${libdir}/gio/modules/*.la"
-
-FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount"
-FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount"
-FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount"
-
-RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh"
-
-PACKAGECONFIG ?= "libgphoto2 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-PACKAGECONFIG[afc] = "--enable-afc, --disable-afc, libimobiledevice libplist"
-PACKAGECONFIG[archive] = "--enable-archive, --disable-archive, libarchive"
-PACKAGECONFIG[avahi] = "--enable-avahi, --disable-avahi, avahi"
-PACKAGECONFIG[gcr] = "--enable-gcr, --disable-gcr, gcr"
-PACKAGECONFIG[http] = "--enable-http, --disable-http, libsoup-2.4"
-PACKAGECONFIG[libmtp] = "--enable-libmtp, --disable-libmtp, libmtp"
-PACKAGECONFIG[libgphoto2] = "--enable-gphoto2, --disable-gphoto2, libgphoto2"
-PACKAGECONFIG[samba] = "--enable-samba, --disable-samba, samba"
-PACKAGECONFIG[systemd] = "--with-systemduserunitdir=${systemd_user_unitdir},--without-systemduserunitdir,systemd"
-
-# needs meta-filesystems
-PACKAGECONFIG[fuse] = "--enable-fuse, --disable-fuse, fuse"
-
-# libcdio-paranoia recipe doesn't exist yet
-PACKAGECONFIG[cdda] = "--enable-cdda, --disable-cdda, libcdio-paranoia"
-
-# Fix up permissions on polkit rules.d to work with rpm4 constraints
-do_install_append() {
- chmod 700 ${D}/${datadir}/polkit-1/rules.d
- chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
-}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.39.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.39.1.bb
new file mode 100644
index 0000000..ca1eb6a
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.39.1.bb
@@ -0,0 +1,70 @@
+DESCRIPTION = "gvfs is a userspace virtual filesystem"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e"
+
+GNOMEBASEBUILDCLASS = "meson"
+inherit gnome bash-completion gettext
+
+DEPENDS += "libsecret glib-2.0 gconf intltool-native libgudev udisks2 polkit shadow-native"
+
+SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
+
+SRC_URI[archive.md5sum] = "4c68899cfd80d57a153771534193bb9a"
+SRC_URI[archive.sha256sum] = "6e7213570389b17b67433695f515f3b17705ba976168a4c8828fc177cce50223"
+
+
+EXTRA_OEMESON = " \
+ -Dbluray=false \
+ -Dgdu=false \
+ -Dgoa=false \
+ -Dgoogle=false \
+ -Dnfs=false \
+ -Dudisks2=true \
+ -Ddocumentation=false \
+"
+
+PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash"
+
+FILES_${PN} += " \
+ ${datadir}/glib-2.0 \
+ ${datadir}/GConf \
+ ${datadir}/dbus-1/services \
+ ${libdir}/gio/modules/*.so \
+ ${libdir}/tmpfiles.d \
+ ${systemd_user_unitdir} \
+"
+RDEPENDS_${PN} = "udisks2"
+
+FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*"
+FILES_${PN}-dev += "${libdir}/gio/modules/*.la"
+
+FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount"
+FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount"
+FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount"
+
+RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh"
+
+PACKAGECONFIG ?= "libgphoto2 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+PACKAGECONFIG[afc] = "-Dafc=true, -Dafc=false, libimobiledevice libplist"
+PACKAGECONFIG[archive] = "-Darchive=true, -Darchive=false, libarchive"
+PACKAGECONFIG[dnssd] = "-Ddnssd=true, -Ddnssd=false, avahi"
+PACKAGECONFIG[gcr] = "-Dgcr=true, -Dgcr=false, gcr"
+PACKAGECONFIG[http] = "-Dhttp=true, -Dhttp=false, libsoup-2.4"
+PACKAGECONFIG[libmtp] = "-Dmtp=true, -Dmtp=false, libmtp"
+PACKAGECONFIG[logind] = "-Dlogind=true, -Dlogind=false, systemd"
+PACKAGECONFIG[libgphoto2] = "-Dgphoto2=true, -Dgphoto2=false, libgphoto2"
+PACKAGECONFIG[samba] = "-Dsmb=true, -Dsmb=false, samba"
+PACKAGECONFIG[systemd] = "-Dsystemduserunitdir=${systemd_user_unitdir} -Dtmpfilesdir=${libdir}/tmpfiles.d, -Dsystemduserunitdir=no -Dtmpfilesdir=no, systemd"
+
+# needs meta-filesystems
+PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse"
+
+# libcdio-paranoia recipe doesn't exist yet
+PACKAGECONFIG[cdda] = "-Dcdda=true, -Dcdda=false, libcdio-paranoia"
+
+# Fix up permissions on polkit rules.d to work with rpm4 constraints
+do_install_append() {
+ chmod 700 ${D}/${datadir}/polkit-1/rules.d
+ chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
+}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb
deleted file mode 100644
index 40249fd..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "GNOME keyboard library"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812"
-
-SECTION = "x11/gnome/libs"
-
-DEPENDS = "gconf glib-2.0 libxklavier gtk+3 intltool-native"
-
-inherit distro_features_check gnome gobject-introspection gettext
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-GNOME_COMPRESS_TYPE = "xz"
-
-SRC_URI[archive.md5sum] = "7b1ebf99f4254c99922163c262c7ff04"
-SRC_URI[archive.sha256sum] = "340b30dabfebbd4e0e6c0fe34a378966dd5640b5d44595ab8a19b0be255d77df"
-
-EXTRA_OECONF_remove = "--disable-schemas-install"
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.0.bb
new file mode 100644
index 0000000..456a744
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.26.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "GNOME keyboard library"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812"
+
+SECTION = "x11/gnome/libs"
+
+DEPENDS = "gconf glib-2.0 libxklavier gtk+3 intltool-native"
+
+inherit distro_features_check gnome gobject-introspection gettext
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+GNOME_COMPRESS_TYPE = "xz"
+
+SRC_URI[archive.md5sum] = "8b9d13d46255cde910b3db5a6ebb4727"
+SRC_URI[archive.sha256sum] = "ea3b418c57c30615f7ee5b6f718def7c9d09ce34637324361150744258968875"
+
+EXTRA_OECONF_remove = "--disable-schemas-install"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb
deleted file mode 100644
index 02149fb..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Window navigation construction toolkit"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-BPN = "libwnck"
-
-SECTION = "x11/libs"
-DEPENDS = "intltool-native gnome-common-native gtk+3 gdk-pixbuf-native libxres"
-
-PACKAGECONFIG ??= "startup-notification"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-
-inherit gnomebase gobject-introspection gtk-doc
-SRC_URI[archive.md5sum] = "487938d65d4bfae1f2501052b1bd7492"
-SRC_URI[archive.sha256sum] = "1cb03716bc477058dfdf3ebfa4f534de3b13b1aa067fcd064d0b7813291cba72"
-
-inherit distro_features_check
-# libxres means x11 only
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.30.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.30.0.bb
new file mode 100644
index 0000000..9cee9c9
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck3_3.30.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Window navigation construction toolkit"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+BPN = "libwnck"
+
+SECTION = "x11/libs"
+DEPENDS = "intltool-native gnome-common-native gtk+3 gdk-pixbuf-native libxres"
+
+PACKAGECONFIG ??= "startup-notification"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+
+inherit gnomebase gobject-introspection gtk-doc gettext
+
+SRC_URI[archive.md5sum] = "60109c2ab0b07da1099ee57980054de1"
+SRC_URI[archive.sha256sum] = "ac6d0d2646aa80676d3066651e73abb7bff7ed79be238c9b21a0083e2adc3439"
+
+inherit distro_features_check
+# libxres means x11 only
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.28.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.28.0.bb
new file mode 100644
index 0000000..189f6ec
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.28.0.bb
@@ -0,0 +1,41 @@
+SECTION = "x11/wm"
+SUMMARY = "Metacity is the boring window manager for the adult in you"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \
+ file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad"
+
+PE = "1"
+
+DEPENDS = "gsettings-desktop-schemas startup-notification \
+ gnome-doc-utils gdk-pixbuf-native \
+ gtk+3 glib-2.0 libcanberra libgtop intltool-native"
+
+inherit autotools gettext gnomebase distro_features_check
+# depends on startup-notification which depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "git://github.com/GNOME/metacity.git;branch=master \
+ file://0001-drop-zenity-detection.patch \
+"
+
+S = "${WORKDIR}/git"
+SRCREV = "c0d4b2fc0fcd6f2d3c37da935923f9e9ed5eb99f"
+
+EXTRA_OECONF += "--disable-xinerama"
+
+PACKAGECONFIG ?= ""
+
+# enable as neccessary until new warnings are dealt with
+PACKAGECONFIG[werror] = "--enable-Werror,--disable-Werror,,"
+
+do_configure_prepend() {
+ cd ${S}
+ aclocal --install || exit 1
+ autoreconf --verbose --force --install -Wno-portability || exit 1
+ cd -
+
+}
+
+FILES_${PN} += "${datadir}/themes ${datadir}/gnome-control-center ${datadir}/gnome"
+RDEPENDS_${PN} += "gsettings-desktop-schemas"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.38.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.38.0.bb
deleted file mode 100644
index 48fc914..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_3.38.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SECTION = "x11/wm"
-SUMMARY = "Metacity is the boring window manager for the adult in you"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \
- file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad"
-
-DEPENDS = "gsettings-desktop-schemas startup-notification \
- gnome-doc-utils gdk-pixbuf-native \
- gtk+3 glib-2.0 libcanberra libgtop intltool-native"
-
-inherit autotools gettext gnomebase distro_features_check
-# depends on startup-notification which depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "git://github.com/GNOME/metacity.git;branch=master \
- file://0001-drop-zenity-detection.patch \
-"
-
-S = "${WORKDIR}/git"
-SRCREV = "c0d4b2fc0fcd6f2d3c37da935923f9e9ed5eb99f"
-
-EXTRA_OECONF += "--disable-xinerama"
-
-do_configure_prepend() {
- cd ${S}
- aclocal --install || exit 1
- autoreconf --verbose --force --install -Wno-portability || exit 1
- cd -
-
-}
-
-FILES_${PN} += "${datadir}/themes ${datadir}/gnome-control-center ${datadir}/gnome"
-RDEPENDS_${PN} += "gsettings-desktop-schemas"
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch
new file mode 100644
index 0000000..f19eb49
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch
@@ -0,0 +1,40 @@
+From a4ed38e95cbe07f02028249b8b315565a5ac1e43 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 5 May 2018 22:32:45 -0700
+Subject: [PATCH] nautilus: drop gnome-desktop thumbnail API with new
+ gdk-pixbuf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If gdk-pixbuf >= 2.36.5 is available, its scaling API can do what we
+want, so we don’t need to use the deprecated gnome-desktop one.
+
+Also fixes compile errors seen on master
+nautilus-properties-window.c:5101: undefined reference to `gnome_desktop_thumbnail_scale_down_pixbuf'
+
+Upstream-Status: Backport
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/nautilus-properties-window.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
+index dea8b0f..fad9bd1 100644
+--- a/src/nautilus-properties-window.c
++++ b/src/nautilus-properties-window.c
+@@ -5098,10 +5098,11 @@ update_preview_callback (GtkFileChooser *icon_chooser,
+ scale = (double)gdk_pixbuf_get_height (pixbuf) /
+ gdk_pixbuf_get_width (pixbuf);
+
+- scaled_pixbuf = gnome_desktop_thumbnail_scale_down_pixbuf
++ scaled_pixbuf = gdk_pixbuf_scale_simple
+ (pixbuf,
+ PREVIEW_IMAGE_WIDTH,
+- scale * PREVIEW_IMAGE_WIDTH);
++ scale * PREVIEW_IMAGE_WIDTH,
++ GDK_INTERP_HYPER);
+ g_object_unref (pixbuf);
+ pixbuf = scaled_pixbuf;
+ }
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb
index 8fdbf6a..bdb2f3c 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb
@@ -6,14 +6,18 @@
file://COPYING.EXTENSIONS;md5=7579d6678402a1868631bf82c93ff0d4 \
file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a"
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/nautilus/3.18/nautilus-${PV}.tar.xz"
+inherit distro_features_check autotools pkgconfig gobject-introspection
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/nautilus/${MAJ_VER}/nautilus-${PV}.tar.xz \
+ file://0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch \
+ "
SRC_URI[md5sum] = "0f578bda5655c0ce204befafca5803d7"
SRC_URI[sha256sum] = "60a927c0522b4cced9d8f62baed2ee5e2fd4305be4523eb5bc44805971a6cc15"
DEPENDS = "gtk+3 gnome-desktop3 gsettings-desktop-schemas glib-2.0-native intltool-native pango"
-inherit distro_features_check autotools pkgconfig gobject-introspection
REQUIRED_DISTRO_FEATURES = "x11"
EXTRA_OECONF = " \
@@ -23,7 +27,7 @@
--enable-tracker=no \
--disable-schemas-compile \
--enable-xmp=no \
- --enable-libexif=no \
+ --enable-libexif=no \
"
FILES_${PN} += "${datadir}/*"
diff --git a/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch
new file mode 100644
index 0000000..79756b9
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch
@@ -0,0 +1,62 @@
+From d0537cb7f2dc5877700ad78dfd191515379d4edc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 7 Jan 2016 02:22:51 +0000
+Subject: [PATCH 1/2] Check for issetugid()
+
+If secure version of getenv is not there then we can use
+issetugid() as aid to call getenv()
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ configure.ac | 1 +
+ lib/config.c | 12 +++++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1ded1a2..ee19e1f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -125,6 +125,7 @@ AC_TYPE_OFF_T
+ AC_TYPE_SIZE_T
+
+ AC_CHECK_FUNCS([__secure_getenv secure_getenv])
++AC_CHECK_FUNCS([issetugid])
+
+ # Modify CFLAGS after all tests are run (some of them could fail because
+ # of the -Werror).
+diff --git a/lib/config.c b/lib/config.c
+index 29e7120..30f9daf 100644
+--- a/lib/config.c
++++ b/lib/config.c
+@@ -44,8 +44,10 @@
+ # define safe_getenv(string) secure_getenv(string)
+ #elif defined(HAVE___SECURE_GETENV)
+ # define safe_getenv(string) __secure_getenv(string)
++#elif defined(HAVE_ISSETUGID)
++# define safe_getenv(string) safe_getenv_issetugid(string)
+ #else
+-# error Neither secure_getenv not __secure_getenv are available
++# error None of secure_getenv, __secure_getenv, or issetugid is available
+ #endif
+
+ struct config_config {
+@@ -59,6 +61,14 @@ struct config_key {
+ GList *values;
+ };
+
++static const char*
++safe_getenv_issetugid(const char* name)
++{
++ if (issetugid ())
++ return 0;
++ return getenv (name);
++}
++
+ /* Compare two section names */
+ static int
+ compare_section_names(gconstpointer a, gconstpointer b)
+--
+2.7.0
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch
new file mode 100644
index 0000000..7c47df2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch
@@ -0,0 +1,34 @@
+From a4857911ece5ebfcdef42aee4c070eb216f39597 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
+Date: Fri, 13 May 2016 11:40:13 -0500
+Subject: [PATCH] modules/files.c: parse_field fix string formating in
+ g_warnings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+[YOCTO #9547]
+
+Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
+
+Upstream-Status: Pending
+---
+ modules/files.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/files.c b/modules/files.c
+index 4ef0a57..35eafc9 100644
+--- a/modules/files.c
++++ b/modules/files.c
+@@ -534,7 +534,7 @@ parse_field(const struct format_specifier *format, GValue *value,
+ string, &err);
+ if (ret == FALSE) {
+ g_assert(err != NULL);
+- g_warning(lu_strerror(err));
++ g_warning(lu_strerror(err), NULL);
+ lu_error_free(&err);
+ }
+ return ret;
+--
+2.1.4
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0002-remove-unused-execinfo.h.patch b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0002-remove-unused-execinfo.h.patch
new file mode 100644
index 0000000..4bc0219
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser/0002-remove-unused-execinfo.h.patch
@@ -0,0 +1,27 @@
+From 4b2f81f307ffeac12956e5c16e894e5ebb937ea5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 7 Jan 2016 02:26:00 +0000
+Subject: [PATCH 2/2] remove unused execinfo.h
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ lib/error.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/lib/error.c b/lib/error.c
+index a5ec30a..443e601 100644
+--- a/lib/error.c
++++ b/lib/error.c
+@@ -18,7 +18,6 @@
+ #include <config.h>
+ #include <sys/types.h>
+ #include <errno.h>
+-#include <execinfo.h>
+ #include <libintl.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
+--
+2.7.0
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb
new file mode 100644
index 0000000..7ec54eb
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/libuser/libuser_0.62.bb
@@ -0,0 +1,35 @@
+SUMMARY = "user and group account administration library"
+DESCRIPTION = "The libuser library implements a standardized interface for manipulating and administering user \
+and group accounts"
+HOMEPAGE = "https://pagure.io/libuser"
+BUGTRACKER = "https://pagure.io/libuser/issues"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+ file://lib/user.h;endline=19;md5=76b301f63c39fa992062395efbdc9558 \
+ file://samples/testuser.c;endline=19;md5=3b87fa660fa3f4a6bb31d624afe30ba1"
+
+SECTION = "base"
+
+SRC_URI = "https://releases.pagure.org/libuser/libuser-${PV}.tar.xz \
+ file://0001-Check-for-issetugid.patch \
+ file://0002-remove-unused-execinfo.h.patch \
+ file://0001-modules-files.c-parse_field-fix-string-formating-in-.patch \
+ "
+
+SRC_URI[md5sum] = "63e5e5c551e99dc5302b40b80bd6d4f2"
+SRC_URI[sha256sum] = "a58ff4fabb01a25043b142185a33eeea961109dd60d4b40b6a9df4fa3cace20b"
+
+DEPENDS = "popt libpam glib-2.0 python3"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+inherit autotools gettext python3native python3-dir pkgconfig gtk-doc
+
+EXTRA_OEMAKE = "PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
+
+PACKAGES += "${PN}-python "
+
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Include-sys-sysmacros.h-for-major-minor.patch b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Include-sys-sysmacros.h-for-major-minor.patch
new file mode 100644
index 0000000..277f6e2
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Include-sys-sysmacros.h-for-major-minor.patch
@@ -0,0 +1,25 @@
+From 75539659396b18110d5a52a8a32845254b4d8eca Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 18:25:47 -0700
+Subject: [PATCH] Include sys/sysmacros.h for major/minor
+
+usermount.c:238: undefined reference to `major'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ usermount.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/usermount.c b/usermount.c
+index 4107027..21ef77f 100644
+--- a/usermount.c
++++ b/usermount.c
+@@ -40,6 +40,7 @@
+ #include <sys/stat.h>
+ #include <sys/time.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <errno.h>
+ #include <glob.h>
+ #include <libintl.h>
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Missing-n-in-translated-string.patch b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Missing-n-in-translated-string.patch
new file mode 100644
index 0000000..9db700e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Missing-n-in-translated-string.patch
@@ -0,0 +1,28 @@
+From 7cbc6441cd06e0c0bb51ac37c8f22b0fd51f12f2 Mon Sep 17 00:00:00 2001
+From: Jiri Kucera <jkucera@redhat.com>
+Date: Wed, 11 Apr 2018 17:13:44 +0200
+Subject: [PATCH] Missing \n in translated string
+
+Upstream-Status: Backport
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ po/tr.po | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/po/tr.po b/po/tr.po
+index 84e5021..a28e947 100644
+--- a/po/tr.po
++++ b/po/tr.po
+@@ -408,7 +408,7 @@ msgstr "Grafik pencere açılamadı ve uçbirim denetimi bulunamadı.\n"
+ #: ../../po/../userpasswd.c:37
+ #, c-format
+ msgid "Unexpected command-line arguments\n"
+-msgstr "Beklenmeyen komut satırı argümanları"
++msgstr "Beklenmeyen komut satırı argümanları\n"
+
+ #: ../../po/../userinfo.c:411
+ #, c-format
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch
deleted file mode 100644
index 9d512d4..0000000
--- a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 7a316dad0697af2ef4e8079a5af51565a8195aa6 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 24 Jul 2017 01:42:30 -0400
-Subject: [PATCH] userhelper.c: fix formatting issues
-
-Fixed when compile with "-Wformat -Wformat-security -Werror=format-security":
-|../usermode-1.111/userhelper.c:585:4: error: format not a string
-literal and no format arguments [-Werror=format-security]
-| text = g_strdup_printf(dgettext(data->domain, data->banner));
-| ^~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- userhelper.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/userhelper.c b/userhelper.c
-index 76ad492..ee0da49 100644
---- a/userhelper.c
-+++ b/userhelper.c
-@@ -582,7 +582,7 @@ converse_console(int num_msg, const struct pam_message **msg,
-
- if (banner == 0) {
- if ((data->banner != NULL) && (data->domain != NULL)) {
-- text = g_strdup_printf(dgettext(data->domain, data->banner));
-+ text = g_strdup_printf("%s", dgettext(data->domain, data->banner));
- } else {
- if ((service != NULL) && (strlen(service) > 0)) {
- if (data->fallback_allowed) {
---
-2.8.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.111.bb b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.111.bb
deleted file mode 100644
index 3aea2e6..0000000
--- a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.111.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "The usermode contains the userhelper program, which can be used to allow configured \
-programs to be run with superuser privileges by ordinary users, and several \
-graphical tools for users: \
-* userinfo allows users to change their finger information. \
-* usermount lets users mount, unmount, and format filesystems. \
-* userpasswd allows users to change their passwords. \
-"
-HOMEPAGE = "https://pagure.io/usermode"
-LICENSE = "GPLv2+"
-DEPENDS = "libuser ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
- gtk+ desktop-file-utils-native \
- startup-notification intltool-native \
- util-linux \
-"
-
-SRC_URI = "https://releases.pagure.org/${BPN}/${BPN}-${PV}.tar.xz \
- file://0001-formatting-issues.patch \
- file://0001-fix-compile-failure-against-musl-C-library.patch \
- file://0001-Makefile.am-Link-with-libm-for-powl-API.patch \
- "
-SRC_URI[md5sum] = "28ba510fbd8da9f4e86e57d6c31cff29"
-SRC_URI[sha256sum] = "3dd0b9639b5bd396b7ea5fada6aaa694dbfdaa3ad06eb95a6eabcdfd02f875c6"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit distro_features_check autotools gettext pkgconfig
-
-EXTRA_OEMAKE += "INSTALL='install -p'"
-
-REQUIRED_DISTRO_FEATURES = "x11 pam"
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.112.bb b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.112.bb
new file mode 100644
index 0000000..82ccf3e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode_1.112.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "The usermode contains the userhelper program, which can be used to allow configured \
+programs to be run with superuser privileges by ordinary users, and several \
+graphical tools for users: \
+* userinfo allows users to change their finger information. \
+* usermount lets users mount, unmount, and format filesystems. \
+* userpasswd allows users to change their passwords. \
+"
+HOMEPAGE = "https://pagure.io/usermode"
+LICENSE = "GPLv2+"
+DEPENDS = "libuser ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
+ gtk+ desktop-file-utils-native \
+ startup-notification intltool-native \
+ util-linux \
+"
+
+SRC_URI = "https://releases.pagure.org/${BPN}/${BPN}-${PV}.tar.xz \
+ file://0001-fix-compile-failure-against-musl-C-library.patch \
+ file://0001-Makefile.am-Link-with-libm-for-powl-API.patch \
+ file://0001-Missing-n-in-translated-string.patch \
+ file://0001-Include-sys-sysmacros.h-for-major-minor.patch \
+ "
+SRC_URI[md5sum] = "a766a9f7600f573fb6de4655d4162196"
+SRC_URI[sha256sum] = "37c4d667209da14082c08df6e48fe955d1532efebd5322f13f94683c6cc10370"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit distro_features_check autotools gettext pkgconfig
+
+EXTRA_OEMAKE += "INSTALL='install -p'"
+
+REQUIRED_DISTRO_FEATURES = "x11 pam"
diff --git a/meta-openembedded/meta-initramfs/README b/meta-openembedded/meta-initramfs/README
index 7185383..ba2ba5f 100644
--- a/meta-openembedded/meta-initramfs/README
+++ b/meta-openembedded/meta-initramfs/README
@@ -12,7 +12,7 @@
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: thud
revision: HEAD
@@ -20,12 +20,12 @@
-----------
Send patches / pull requests to openembedded-devel@lists.openembedded.org
-with '[meta-initramfs]' in the subject.
+with '[meta-initramfs][thud]' in the subject.
When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-initramfs][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-initramfs][thud][PATCH'
-Interm layer maintainer: Armin Kuster <akuster808@gmail.com>
+Thud maintainer: Armin Kuster <akuster808@gmail.com>
License
diff --git a/meta-openembedded/meta-initramfs/conf/layer.conf b/meta-openembedded/meta-initramfs/conf/layer.conf
index 97afc93..bd92ddf 100644
--- a/meta-openembedded/meta-initramfs/conf/layer.conf
+++ b/meta-openembedded/meta-initramfs/conf/layer.conf
@@ -16,7 +16,7 @@
BBFILE_PRIORITY_meta-initramfs = "8"
LAYERDEPENDS_meta-initramfs = "core"
-LAYERSERIES_COMPAT_meta-initramfs = "sumo"
+LAYERSERIES_COMPAT_meta-initramfs = "thud"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
dracut->virtual/kernel \
diff --git a/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb b/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb
index 804ec32..f90e234 100644
--- a/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb
+++ b/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb
@@ -19,9 +19,15 @@
# Specify full kernel path on target.
KERNEL=/boot/${KERNEL_IMAGETYPE}
#
+# Specify which device tree blob to use
+# DTB=/boot/my-own-dtb
+#
# Append this tags to the kernel cmdline.
APPEND=${CMDLINE} ${CMDLINE_DEBUG}
#
+# Overwrite kernel command line instead of appending to it
+# CMDLINE=console=/dev/tty0 root=/dev/sdb1
+#
# Specify optional initrd/initramfs.
# INITRD=/boot/initramfs.cpio.gz
#
diff --git a/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb b/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
index 9f5dad7..6d79e8f 100644
--- a/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
+++ b/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
@@ -1,36 +1,3 @@
-###########################
-# Configure options:
-#
-# --enable-static-linking compile kexecboot as static executable [default=no]
-# --enable-fbui support framebuffer menu [default=yes]
-# --enable-fbui-width limit FB UI width to specified value [default=no]
-# --enable-fbui-height limit FB UI height to specified value [default=no]
-# --enable-textui support console text user interface [default=no]
-# --enable-cfgfiles support config files [default=yes]
-# --enable-icons support custom icons (depends on fbui) [default=yes]
-# --enable-zaurus compile Sharp Zaurus specific code [default=no]
-# --enable-zimage compile with zImage support [default=yes]
-# --enable-uimage compile with uImage support [default=no]
-# --enable-machine-kernel look for machine-specific zImage kernel [default=no]
-# --enable-devices-recreating
-# enable devices re-creating [default=yes]
-# --enable-debug enable debug output [default=no]
-# --enable-host-debug allow for non-destructive executing of kexecboot on
-# host system [default=no]
-# --enable-numkeys enable menu item selection by keys [0-9] [default=yes]
-# --enable-bg-buffer enable buffer for pre-drawed FB GUI background
-#
-# --enable-timeout allow to boot 1st kernel after timeout in seconds
-# [default=no]
-# --enable-delay specify delay before device scanning, allowing
-# initialization of old CF/SD cards [default=1]
-# --enable-bpp enable support of specified bpp modes
-# (all,32,24,18,16,4,2,1) [default=all]
-# --enable-evdev-rate change evdev (keyboard/mouse) repeat rate
-# in milliseconds e.g. "1000,250" [default=no]
-# --with-kexec-binary look for kexec binary at path
-# [default="/usr/sbin/kexec"]
-##########################
SUMMARY = "kexecboot linux-as-bootloader"
DESCRIPTION = "kexecboot is a graphical linux-as-bootloader implementation based on kexec."
HOMEPAGE = "http://kexecboot.org"
@@ -39,14 +6,13 @@
PV = "0.6+git${SRCPV}"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/kexecboot/kexecboot.git"
-SRCREV = "4c4f127e79ac5b8d6b6e2fbb938ccbf12b04c531"
+SRCREV = "4c01d6960aa6a9d03675605062469ab777fa2b01"
inherit autotools
EXTRA_OECONF = "--enable-textui --enable-delay=2 --enable-evdev-rate=1000,250"
do_install () {
- install -d ${D}${bindir}
- install -m 0755 kexecboot ${D}${bindir}
+ install -D -m 0755 ${B}/src/kexecboot ${D}${bindir}/kexecboot
install -d ${D}/proc
install -d ${D}/mnt
install -d ${D}/dev
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
index ccf9f6a..dd2e8bb 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
@@ -6,10 +6,10 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
PE = "1"
-PV = "046+git${SRCREV}"
+PV = "049"
-# v046 tag
-SRCREV = "a0799ffb554487a370c2a1adafaedd2021b6dc8c"
+# v048 tag
+SRCREV = "225e4b94cbdb702cf512490dcd2ad9ca5f5b22c1"
SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http \
file://0001-util.h-include-sys-reg.h-when-libc-glibc.patch \
"
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch
index 1b1a993..dfbe7ba 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch
@@ -1,26 +1,24 @@
-From 22afaa21b4b258082be591e54c99e1ba6fbd7748 Mon Sep 17 00:00:00 2001
+From b7b3caa9b5c8abcd3c371d0683001cd681e104b3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 15 Jul 2017 10:19:22 -0700
Subject: [PATCH 1/2] Add another variable LIBS to provides libraries from env
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index ac14404..92a8e73 100644
+index cc7e823..ae30a07 100644
--- a/Makefile
+++ b/Makefile
-@@ -27,7 +27,7 @@ RPM_OPT_FLAGS ?= -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector
- CFLAGS += $(RPM_OPT_FLAGS) -std=gnu99 -Wall -Werror -Wno-error=unused-function -Wno-unused-function -ggdb
- LDFLAGS :=
+@@ -31,7 +31,7 @@ ifneq ($(VERBOSE_TEST),)
+ VERBOSE_TEST="--verbose"
+ endif
-grubby_LIBS = -lblkid -lpopt
+grubby_LIBS = -lblkid -lpopt ${LIBS}
all: grubby
---
-2.13.3
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch
index d936249..e693916 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch
@@ -1,4 +1,4 @@
-From 0841706a5b5280e501c8e392c70c466c5fbcf0aa Mon Sep 17 00:00:00 2001
+From 15f0572f2f456c2c1b700bc790d9ce7a5c13cc74 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Tue, 4 Aug 2015 23:54:41 -0700
Subject: [PATCH] rename grub2-editenv to grub-editenv
@@ -8,38 +8,48 @@
Upstream-Status: Inappropriate
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
---
grubby.c | 4 ++--
- test.sh | 6 +++---
- 2 files changed, 5 insertions(+), 5 deletions(-)
+ test.sh | 8 ++++----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/grubby.c b/grubby.c
-index d4ebb86..47a1a15 100644
+index 396041a..3ceae69 100644
--- a/grubby.c
+++ b/grubby.c
-@@ -290,7 +290,7 @@ static char *grub2GetEnv(struct configFileInfo *info, char *name)
- char *s = NULL;
- char *ret = NULL;
- char *envFile = info->envFile ? info->envFile : "/boot/grub2/grubenv";
-- int rc = asprintf(&s, "grub2-editenv %s list | grep '^%s='", envFile, name);
-+ int rc = asprintf(&s, "grub-editenv %s list | grep '^%s='", envFile, name);
+@@ -301,7 +301,7 @@ static char *grub2GetEnv(struct configFileInfo *info, char *name)
+ char *ret = NULL;
+ char *envFile = info->envFile ? info->envFile : "/boot/grub2/grubenv";
+ int rc =
+- asprintf(&s, "grub2-editenv %s list | grep '^%s='", envFile, name);
++ asprintf(&s, "grub-editenv %s list | grep '^%s='", envFile, name);
- if (rc < 0)
- return NULL;
-@@ -361,7 +361,7 @@ static int grub2SetEnv(struct configFileInfo *info, char *name, char *value)
- if (!value)
- return -1;
+ if (rc < 0)
+ return NULL;
+@@ -373,7 +373,7 @@ static int grub2SetEnv(struct configFileInfo *info, char *name, char *value)
+ if (!value)
+ return -1;
-- rc = asprintf(&s, "grub2-editenv %s set '%s=%s'", envFile, name, value);
-+ rc = asprintf(&s, "grub-editenv %s set '%s=%s'", envFile, name, value);
- free(value);
- if (rc <0)
- return -1;
+- rc = asprintf(&s, "grub2-editenv %s set '%s=%s'", envFile, name, value);
++ rc = asprintf(&s, "grub-editenv %s set '%s=%s'", envFile, name, value);
+ free(value);
+ if (rc < 0)
+ return -1;
diff --git a/test.sh b/test.sh
-index 6379698..f738388 100755
+index 33d24cf..009479c 100755
--- a/test.sh
+++ b/test.sh
-@@ -574,7 +574,7 @@ if [ "$testgrub2" == "y" ]; then
+@@ -573,7 +573,7 @@ if [ "$testgrub2" == "y" ]; then
+ --remove-kernel=/boot/vmlinuz-2.6.38.2-9.fc15.x86_64 \
+ --boot-filesystem=/boot/
+ commandTest "saved_default output" \
+- "grub2-editenv test/grub2-support_files/env_temp list" \
++ "grub-editenv test/grub2-support_files/env_temp list" \
+ "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
+
+ # copy a stanza and add arguments as well, while using --set-index=
+@@ -627,7 +627,7 @@ if [ "$testgrub2" == "y" ]; then
--title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
--copy-default
commandTest "saved_default output" \
@@ -48,7 +58,7 @@
"saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
testing="GRUB2 add kernel with default=saved_entry and a terrible title"
-@@ -587,13 +587,13 @@ if [ "$testgrub2" == "y" ]; then
+@@ -640,13 +640,13 @@ if [ "$testgrub2" == "y" ]; then
testing="GRUB2 set default with default=saved_entry and a terrible name"
grub2Test grub2.9 add/g2-1.9 --env grubenv.1 --set-default-index=0
commandTest "saved_default output" \
@@ -64,6 +74,3 @@
"saved_entry=title"
testing="GRUB2 --default-index with default=saved_entry"
---
-2.3.5
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
new file mode 100644
index 0000000..8430b7e
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
@@ -0,0 +1,40 @@
+SUMMARY = "A command line tool for updating and displaying info about boot loaders"
+DESCRIPTION = "grubby is a command line tool for updating and displaying information \
+about the configuration files for the grub, lilo, elilo (ia64), yaboot (powerpc) and \
+zipl (s390) boot loaders. It is primarily designed to be used from scripts which install \
+new kernels and need to find information about the current boot environment. \
+"
+HOMEPAGE = "https://github.com/rhboot/grubby"
+LICENSE = "GPLv2+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
+
+DEPENDS = "popt util-linux"
+DEPENDS_append_libc-musl = " libexecinfo"
+
+S = "${WORKDIR}/git"
+SRCREV = "a1d2ae93408c3408e672d7eba4550fdf27fb0201"
+SRC_URI = "git://github.com/rhboot/grubby.git;protocol=https; \
+ file://grubby-rename-grub2-editenv-to-grub-editenv.patch \
+ file://run-ptest \
+ file://0001-Add-another-variable-LIBS-to-provides-libraries-from.patch \
+ file://0002-include-paths.h-for-_PATH_MOUNTED.patch \
+ "
+
+RDEPENDS_${PN} += "dracut"
+
+inherit autotools-brokensep ptest
+
+EXTRA_OEMAKE = "-e 'CC=${CC}' 'LDFLAGS=${LDFLAGS}' LIBS='${LIBS}'"
+
+LIBS_libc-musl = "-lexecinfo"
+LIBS ?= ""
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ cp -r ${S}/test ${S}/test.sh ${D}${PTEST_PATH}
+ sed -i 's|./grubby|grubby|' ${D}${PTEST_PATH}/test.sh
+}
+
+RDEPENDS_${PN}-ptest = "util-linux-getopt bash"
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)'
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch
new file mode 100644
index 0000000..94818e3
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch
@@ -0,0 +1,28 @@
+From cdc6edc2cfcd0ce88d6e66654d605dad303b1a75 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Sep 2018 17:03:36 -0700
+Subject: [PATCH] klibc/Kbuild: Accept EXTRA_KLIBCAFLAGS
+
+For passing additional assembler flags
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ usr/klibc/Kbuild | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/usr/klibc/Kbuild b/usr/klibc/Kbuild
+index 98caf2e9..b34521e0 100644
+--- a/usr/klibc/Kbuild
++++ b/usr/klibc/Kbuild
+@@ -168,7 +168,8 @@ $(SOHASH): $(SOLIB) $(SOLIB).hash
+ targets += interp.o
+
+ quiet_cmd_interp = BUILD $@
+- cmd_interp = $(KLIBCCC) $(klibccflags) -D__ASSEMBLY__ \
++ cmd_interp = $(KLIBCCC) $(klibccflags) $(EXTRA_KLIBCAFLAGS) \
++ -D__ASSEMBLY__ \
+ -DLIBDIR=\"$(SHLIBDIR)\" \
+ -DSOHASH=\"$(SOLIBHASH)\" \
+ -c -o $@ $<
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-add-getrandom-syscall.patch b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-add-getrandom-syscall.patch
new file mode 100644
index 0000000..0768f6d
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-add-getrandom-syscall.patch
@@ -0,0 +1,27 @@
+From e4d5d5224609d7d5c824dd231f5baec868befdfa Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 4 Sep 2018 23:56:00 +0200
+Subject: [PATCH 1/1] klibc: add getrandom() syscall
+
+needed by latest kexec-tools for qemuarm64 (kashan)
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ usr/klibc/SYSCALLS.def | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/usr/klibc/SYSCALLS.def b/usr/klibc/SYSCALLS.def
+index 6b3bf4c..d4184ba 100644
+--- a/usr/klibc/SYSCALLS.def
++++ b/usr/klibc/SYSCALLS.def
+@@ -274,6 +274,7 @@ int syslog::klogctl(int, char *, int);
+ int sysinfo(struct sysinfo *);
+ long kexec_load(void *, unsigned long, struct kexec_segment *, unsigned long);
+ <x86_64,ppc64,s390x> long kexec_file_load(int, int, unsigned long, const char *, unsigned long);
++ssize_t getrandom(void *, size_t, unsigned int);
+
+ /*
+ * Low-level I/O (generally architecture-specific);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-static-utils-do-not-build-shared-binaries.patch b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-static-utils-do-not-build-shared-binaries.patch
new file mode 100644
index 0000000..2f7cd35
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc-static-utils-do-not-build-shared-binaries.patch
@@ -0,0 +1,213 @@
+From c034dceae17b7d8d437871afe5eba55a55434222 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Wed, 10 Oct 2018 00:48:31 +0200
+Subject: [PATCH] klibc-static-utils: do not build shared binaries
+
+We were building some shared utilities and this was leading to linker errors
+for x86 with security flags enabled.
+
+Fix
+ i586-oe-linux-musl-ld.bfd: discarded output section: `.got.plt'
+
+Upstream-Status: Inappropriate [Embedded Specific]
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ usr/dash/Kbuild | 6 +-----
+ usr/kinit/Kbuild | 4 +---
+ usr/kinit/fstype/Kbuild | 4 +---
+ usr/kinit/ipconfig/Kbuild | 4 +---
+ usr/kinit/nfsmount/Kbuild | 4 +---
+ usr/kinit/resume/Kbuild | 5 +----
+ usr/kinit/run-init/Kbuild | 5 +----
+ usr/utils/Kbuild | 7 ++-----
+ 8 files changed, 9 insertions(+), 30 deletions(-)
+
+diff --git a/usr/dash/Kbuild b/usr/dash/Kbuild
+index 1a6920a..b3a4e64 100644
+--- a/usr/dash/Kbuild
++++ b/usr/dash/Kbuild
+@@ -25,12 +25,8 @@ gen-h-files := builtins.h nodes.h syntax.h token.h
+
+ static-y := sh
+
+-# The shared binary
+-shared-y := sh.shared
+-sh.shared-y := $(sh-y)
+-
+ # For cleaning
+-targets := sh sh.g sh.shared sh.shared.g $(gen-o-files)
++targets := sh sh.g $(gen-o-files)
+
+ # explicit dependency for all generated files
+ $(addprefix $(obj)/, $(sh-y)): $(addprefix $(obj)/, $(gen-h-files))
+diff --git a/usr/kinit/Kbuild b/usr/kinit/Kbuild
+index f7fdccd..8db06ab 100644
+--- a/usr/kinit/Kbuild
++++ b/usr/kinit/Kbuild
+@@ -18,8 +18,6 @@ kinit-y += fstype/
+ kinit-y += resume/
+
+ static-y := kinit
+-shared-y := kinit.shared
+-kinit.shared-y := $(kinit-y)
+
+ # Additional include paths files
+ KLIBCCFLAGS += -I$(srctree)/$(src)/fstype \
+@@ -29,7 +27,7 @@ KLIBCCFLAGS += -I$(srctree)/$(src)/fstype \
+ -I$(srctree)/$(src)/run-init
+
+ # Cleaning
+-targets += kinit kinit.g kinit.shared kinit.shared.g
++targets += kinit kinit.g
+ subdir- := fstype ipconfig nfsmount resume run-init
+
+
+diff --git a/usr/kinit/fstype/Kbuild b/usr/kinit/fstype/Kbuild
+index 367611d..8d453ea 100644
+--- a/usr/kinit/fstype/Kbuild
++++ b/usr/kinit/fstype/Kbuild
+@@ -3,7 +3,6 @@
+ #
+
+ static-y := static/fstype
+-shared-y := shared/fstype
+
+ # common .o files
+ objs := main.o fstype.o
+@@ -16,8 +15,7 @@ lib-y := $(objs)
+
+ # .o files used to built executables
+ static/fstype-y := $(objs)
+-shared/fstype-y := $(objs)
+
+ # Cleaning
+-clean-dirs := static shared
++clean-dirs := static
+
+diff --git a/usr/kinit/ipconfig/Kbuild b/usr/kinit/ipconfig/Kbuild
+index eb1d472..ef87e7e 100644
+--- a/usr/kinit/ipconfig/Kbuild
++++ b/usr/kinit/ipconfig/Kbuild
+@@ -3,7 +3,6 @@
+ #
+
+ static-y := static/ipconfig
+-shared-y := shared/ipconfig
+
+ # common .o files
+ objs := main.o netdev.o packet.o
+@@ -22,8 +21,7 @@ lib-y := $(objs)
+
+ # .o files used to built executables
+ static/ipconfig-y := $(objs)
+-shared/ipconfig-y := $(objs)
+
+ # Cleaning
+-clean-dirs := static shared
++clean-dirs := static
+
+diff --git a/usr/kinit/nfsmount/Kbuild b/usr/kinit/nfsmount/Kbuild
+index ba31708..01bedce 100644
+--- a/usr/kinit/nfsmount/Kbuild
++++ b/usr/kinit/nfsmount/Kbuild
+@@ -4,7 +4,6 @@
+
+ static-y := static/nfsmount
+ #FIXME - build is broken static-y := dummypmap
+-shared-y := shared/nfsmount
+
+ objs := main.o mount.o portmap.o dummypmap.o sunrpc.o
+
+@@ -13,7 +12,6 @@ lib-y := $(objs)
+
+ # .o files used for executables
+ static/nfsmount-y := $(objs)
+-shared/nfsmount-y := $(objs)
+
+ # dummypmap uses a single .o file (rename src file?)
+ dummypmap-y := dummypmap_test.o
+@@ -21,5 +19,5 @@ dummypmap-y := dummypmap_test.o
+ # TODO - do we want a stripped version
+ # TODO - do we want the static.g + shared.g directories?
+
+-clean-dirs := static shared
++clean-dirs := static
+
+diff --git a/usr/kinit/resume/Kbuild b/usr/kinit/resume/Kbuild
+index c1342e1..15b9590 100644
+--- a/usr/kinit/resume/Kbuild
++++ b/usr/kinit/resume/Kbuild
+@@ -3,7 +3,6 @@
+ #
+
+ static-y := static/resume
+-shared-y := shared/resume
+
+ # common .o files
+ objs := resume.o resumelib.o
+@@ -20,9 +19,7 @@ KLIBCCFLAGS += -I$(srctree)/$(src)/..
+ # .o files used to built executables
+ static/resume-y := $(objs)
+ static/resume-lib := ../lib.a
+-shared/resume-y := $(objs)
+-shared/resume-lib := ../lib.a
+
+ # Cleaning
+-clean-dirs := static shared
++clean-dirs := static
+
+diff --git a/usr/kinit/run-init/Kbuild b/usr/kinit/run-init/Kbuild
+index c153b0a..a1ea834 100644
+--- a/usr/kinit/run-init/Kbuild
++++ b/usr/kinit/run-init/Kbuild
+@@ -3,7 +3,6 @@
+ #
+
+ static-y := static/run-init
+-shared-y := shared/run-init
+
+ # common .o files
+ objs := run-init.o runinitlib.o
+@@ -24,9 +23,7 @@ KLIBCCFLAGS += -I$(srctree)/$(src)/..
+ # .o files used to built executables
+ static/run-init-y := $(objs)
+ static/run-init-lib := ../lib.a
+-shared/run-init-y := $(objs)
+-shared/run-init-lib := ../lib.a
+
+ # Cleaning
+-clean-dirs := static shared
++clean-dirs := static
+
+diff --git a/usr/utils/Kbuild b/usr/utils/Kbuild
+index 67d9486..1573363 100644
+--- a/usr/utils/Kbuild
++++ b/usr/utils/Kbuild
+@@ -7,7 +7,6 @@ progs += true false sleep ln mv nuke minips cat ls losetup
+ progs += uname halt kill readlink cpio sync dmesg
+
+ static-y := $(addprefix static/, $(progs))
+-shared-y := $(addprefix shared/, $(progs))
+
+ # The binary is placed in a subdir, so we need to tell kbuild this
+ static/chroot-y := chroot.o
+@@ -62,13 +61,11 @@ static/losetup-y := losetup.o
+ shared/losetup-y := losetup.o
+
+ # Additionally linked targets
+-always := static/reboot static/poweroff shared/reboot shared/poweroff
++always := static/reboot static/poweroff
+
+ $(obj)/static/reboot $(obj)/static/poweroff: $(obj)/static/halt
+ $(call cmd,ln)
+-$(obj)/shared/reboot $(obj)/shared/poweroff: $(obj)/shared/halt
+- $(call cmd,ln)
+
+ # Clean deletes the static and shared dir
+-clean-dirs := static shared
++clean-dirs := static
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch
new file mode 100644
index 0000000..3d8d987
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch
@@ -0,0 +1,27 @@
+From 90683d5eaabfa684a71411d6e3262153ac191ad8 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 4 Sep 2018 23:44:30 +0200
+Subject: [PATCH 1/1] klibc_2.0.4: add kexec_file_load syscall
+
+for supported archs only (matched in kexec-tools)
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ usr/klibc/SYSCALLS.def | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/usr/klibc/SYSCALLS.def b/usr/klibc/SYSCALLS.def
+index c56e8f9..6b3bf4c 100644
+--- a/usr/klibc/SYSCALLS.def
++++ b/usr/klibc/SYSCALLS.def
+@@ -273,6 +273,7 @@ int reboot::__reboot(int, int, int, void *);
+ int syslog::klogctl(int, char *, int);
+ int sysinfo(struct sysinfo *);
+ long kexec_load(void *, unsigned long, struct kexec_segment *, unsigned long);
++<x86_64,ppc64,s390x> long kexec_file_load(int, int, unsigned long, const char *, unsigned long);
+
+ /*
+ * Low-level I/O (generally architecture-specific);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-cross-accept-clang-options.patch b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-cross-accept-clang-options.patch
new file mode 100644
index 0000000..07703aa
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-cross-accept-clang-options.patch
@@ -0,0 +1,19 @@
+meta-clang passes this option to compiler defaults
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: git/klcc/klcc.in
+===================================================================
+--- git.orig/klcc/klcc.in
++++ git/klcc/klcc.in
+@@ -207,6 +207,9 @@ while ( defined($a = shift(@ARGV)) ) {
+ } elsif ( $a =~ /^--([sysroot=])(.*)$/ ) {
+ # Override gcc encoded sysroot
+ push(@ccopt, $a);
++ } elsif ( $a eq '-no-integrated-as' ) {
++ # Allow clang options
++ push(@ccopt, $a);
+ } else {
+ die "$0: unknown option: $a\n";
+ }
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb
index c835fd6..1677863 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb
@@ -10,3 +10,9 @@
require klibc-utils.inc
require klibc.inc
+
+SRC_URI += "file://0001-klibc-static-utils-do-not-build-shared-binaries.patch"
+
+# avoid textrel if linking with -pie
+SECURITY_CFLAGS = ""
+SECURITY_LDFLAGS = ""
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc
index 7df33d6..2aac9e6 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc
@@ -1,16 +1,16 @@
do_install() {
install -d ${D}${base_bindir}
install -d ${D}${base_sbindir}
- # debian packages kinit + kinit.shared but only sh.shared
if [ "${KLIBC_UTILS_VARIANT}" = "shared" ]; then
- install -m 755 usr/kinit/kinit ${D}${base_bindir}/kinit
install -m 755 usr/kinit/kinit.shared ${D}${base_bindir}/kinit.shared
install -m 755 usr/dash/sh.shared ${D}${base_bindir}/sh.shared
else
install -m 755 usr/dash/sh ${D}${base_bindir}/sh
install -m 755 usr/kinit/kinit ${D}${base_bindir}/kinit
+ install -m 755 usr/gzip/gzip ${D}${base_bindir}
+ ln -s gzip ${D}${base_bindir}/gunzip
+ ln -s gzip ${D}${base_bindir}/zcat
fi
- install -m 755 usr/gzip/gzip ${D}${base_bindir}
install -m 755 usr/kinit/fstype/${KLIBC_UTILS_VARIANT}/fstype ${D}${base_bindir}
install -m 755 usr/kinit/ipconfig/${KLIBC_UTILS_VARIANT}/ipconfig ${D}${base_bindir}
install -m 755 usr/kinit/nfsmount/${KLIBC_UTILS_VARIANT}/nfsmount ${D}${base_bindir}
@@ -44,8 +44,6 @@
install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/true ${D}${base_bindir}
install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/umount ${D}${base_bindir}
install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/uname ${D}${base_bindir}
- ln -s gzip ${D}${base_bindir}/gunzip
- ln -s gzip ${D}${base_bindir}/zcat
}
EXTRA_KLIBC_DEPS = "${@oe.utils.conditional('KLIBC_UTILS_VARIANT', 'shared', '${THIS_LIBKLIBC}', '', d)}"
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc
index 30294b1..be01c2f 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc
@@ -12,6 +12,7 @@
file://klibc-linux-libc-dev.patch \
file://staging.patch \
file://klcc-consider-sysroot.patch \
+ file://klcc-cross-accept-clang-options.patch \
file://0001-dash-Specify-format-string-in-fmtstr.patch \
file://0001-Define-in_-structs-for-non-glibc-system-libs.patch \
file://0001-include-linux-sysinfo.h-directly.patch \
@@ -20,7 +21,10 @@
file://0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch \
file://0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch \
file://0001-arm-Do-not-set-a-fallback-march-and-mtune.patch \
-"
+ file://0001-klibc_2.0.4-add-kexec_file_load-syscall.patch \
+ file://0001-klibc-add-getrandom-syscall.patch \
+ file://0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch \
+ "
ARMPATCHES ?= ""
@@ -28,7 +32,6 @@
file://armv4-fix-v4bx.patch \
"
-
S = "${WORKDIR}/git"
PARALLEL_MAKE = ""
@@ -44,6 +47,8 @@
'KLIBCOPTFLAGS=${TUNE_CCARGS} -Os' \
V=1 \
"
+EXTRA_OEMAKE += "'EXTRA_KLIBCAFLAGS=${SECURITY_CFLAGS} -Wa,--noexecstack' \
+ 'EXTRA_KLIBCLDFLAGS=${SECURITY_LDFLAGS} -z noexecstack'"
export FIX_ARMV4_EABI_BX = "${FIX_V4BX}"
KLIBCTHUMB = "${@['CONFIG_KLIBC_THUMB=n', 'CONFIG_KLIBC_THUMB=y'][(d.getVar('ARM_INSTRUCTION_SET') == 'thumb')]}"
@@ -70,5 +75,7 @@
KLIBC_ARCH_powerpc64 = "ppc64"
THIS_LIBKLIBC = "libklibc (= ${PV}-${PR})"
-SECURITY_CFLAGS = "-fno-PIE -no-pie"
-SECURITY_LDFLAGS = "-no-pie"
+GCCPIE ?= ""
+SECURITY_LDFLAGS = "${@'-z relro -z now -pie' if '${GCCPIE}' else ''}"
+SECURITY_LDFLAGS_mips = ""
+SECURITY_LDFLAGS_mips64 = ""
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch
deleted file mode 100644
index 6ac2cca..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0001-Makefile-build-ubi-utils-only.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 1c989e4c36d0bf76ab444f984bc73b98eeacd03f Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Sun, 29 Jun 2014 00:32:29 +0200
-Subject: [PATCH 1/9] Makefile: build ubi-utils only
-
-We build all the static ubi-utils but actually only ubiattach is needed in
-a minimalistic initramfs for the mount of ubi volumes.
-
-More fixes are needed in order to build the full mtd-utils.
-The first issue is:
-
-| mkfs.jffs2.c:64:20: fatal error: libgen.h: No such file or directory
-| #include <libgen.h>
-
-Removing the include then the second error is:
-
-| mkfs.jffs2.c:1570:22: error: '_SC_PAGESIZE' undeclared
-| (first use in this function)
-| page_size = sysconf(_SC_PAGESIZE);
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- Makefile | 26 ++------------------------
- 1 file changed, 2 insertions(+), 24 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 3ce8587..8b79f71 100644
---- a/Makefile
-+++ b/Makefile
-@@ -16,28 +16,11 @@ endif
-
- TESTS = tests
-
--MTD_BINS = \
-- ftl_format flash_erase nanddump doc_loadbios \
-- ftl_check mkfs.jffs2 flash_lock flash_unlock \
-- flash_otp_info flash_otp_dump flash_otp_lock flash_otp_write \
-- mtd_debug flashcp nandwrite nandtest mtdpart \
-- jffs2dump \
-- nftldump nftl_format docfdisk \
-- rfddump rfdformat \
-- serve_image recv_image \
-- sumtool jffs2reader
- UBI_BINS = \
- ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \
- ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol ubiblock
-
--BINS = $(MTD_BINS)
--BINS += mkfs.ubifs/mkfs.ubifs
--BINS += $(addprefix ubi-utils/,$(UBI_BINS))
--SCRIPTS = flash_eraseall
--
--TARGETS = $(BINS)
--TARGETS += lib/libmtd.a
--TARGETS += ubi-utils/libubi.a
-+BINS = $(addprefix ubi-utils/,$(UBI_BINS))
-
- OBJDEPS = $(BUILDDIR)/include/version.h
-
-@@ -61,12 +44,9 @@ endif
- rm -f $(BUILDDIR)/include/version.h
- $(MAKE) -C $(TESTS) clean
-
--install:: $(addprefix $(BUILDDIR)/,${BINS}) ${SCRIPTS}
-+install:: $(addprefix $(BUILDDIR)/,${BINS})
- mkdir -p ${DESTDIR}/${SBINDIR}
- install -m 0755 $^ ${DESTDIR}/${SBINDIR}/
-- mkdir -p ${DESTDIR}/${MANDIR}/man1
-- install -m 0644 mkfs.jffs2.1 ${DESTDIR}/${MANDIR}/man1/
-- -gzip -9f ${DESTDIR}/${MANDIR}/man1/*.1
-
- tests::
- $(MAKE) -C $(TESTS)
-@@ -91,8 +71,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS)
- LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS)
- LDLIBS_jffs2reader = -lz $(LZOLDLIBS)
-
--$(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v))))
--
- #
- # Common libmtd
- #
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch
deleted file mode 100644
index c23d11f..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0002-common.mk-for-klibc-CC-is-klcc.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 89c76bbe82a2029a25b0654eb0a1d0b22d6e6877 Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Sun, 29 Jun 2014 00:37:28 +0200
-Subject: [PATCH 2/9] common.mk: for klibc $(CC) is klcc
-
-Do not hardcode: assign the value to the variable if it is not already defined.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- common.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/common.mk b/common.mk
-index ba87377..126d11a 100644
---- a/common.mk
-+++ b/common.mk
-@@ -1,4 +1,4 @@
--CC := $(CROSS)gcc
-+CC ?= $(CROSS)gcc
- AR := $(CROSS)ar
- RANLIB := $(CROSS)ranlib
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch
deleted file mode 100644
index 9ad4a5b..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From fecbb7056d621a30f7106e67f5fe209763571b70 Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Sun, 29 Jun 2014 00:40:15 +0200
-Subject: [PATCH 3/9] libubi.c: add klibc specific fixes for ioctl
-
-First issue is that ioctl() in klibc doesn't expect a constant as arg3.
-Second issue is that arg3 in klibc ioctl() implementation is not optional.
-
-Fixes:
-
-| ubi-utils/libubi.c: In function 'do_attach':
-| ubi-utils/libubi.c:698:8: warning: passing argument 3 of 'ioctl' discards
-| 'const' qualifier from pointer target type
-| ret = ioctl(fd, UBI_IOCATT, r);
-| ^
-| In file included from ubi-utils/libubi.c:32:0:
-| .../lib/klibc/include/sys/ioctl.h:15:14: note: expected 'void *' but argument
-| is of type 'const struct ubi_attach_req *'
-| __extern int ioctl(int, int, void *);
-| ^
-
-| ubi-utils/libubi.c: In function 'ubi_vol_block_create':
-| ubi-utils/libubi.c:1118:9: error: too few arguments to function 'ioctl'
-| return ioctl(fd, UBI_IOCVOLCRBLK);
-| ^
-| In file included from ubi-utils/libubi.c:32:0:
-| .../lib/klibc/include/sys/ioctl.h:15:14: note: declared here
-| __extern int ioctl(int, int, void *);
-| ^
-| ubi-utils/libubi.c: In function 'ubi_vol_block_remove':
-| ubi-utils/libubi.c:1123:9: error: too few arguments to function 'ioctl'
-| return ioctl(fd, UBI_IOCVOLRMBLK);
-| ^
-| In file included from ubi-utils/libubi.c:32:0:
-| .../usr/lib/klibc/include/sys/ioctl.h:15:14: note: declared here
-| __extern int ioctl(int, int, void *);
-| ^
-
-Upstream-Status: Accepted
-
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- ubi-utils/libubi.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c
-index 97c0434..2b49833 100644
---- a/ubi-utils/libubi.c
-+++ b/ubi-utils/libubi.c
-@@ -687,7 +687,7 @@ void libubi_close(libubi_t desc)
- * success and %-1 in case of failure. @r->ubi_num contains newly created UBI
- * device number.
- */
--static int do_attach(const char *node, const struct ubi_attach_req *r)
-+static int do_attach(const char *node, struct ubi_attach_req *r)
- {
- int fd, ret;
-
-@@ -1115,12 +1115,12 @@ int ubi_rsvol(libubi_t desc, const char *node, int vol_id, long long bytes)
-
- int ubi_vol_block_create(int fd)
- {
-- return ioctl(fd, UBI_IOCVOLCRBLK);
-+ return ioctl(fd, UBI_IOCVOLCRBLK, NULL);
- }
-
- int ubi_vol_block_remove(int fd)
- {
-- return ioctl(fd, UBI_IOCVOLRMBLK);
-+ return ioctl(fd, UBI_IOCVOLRMBLK, NULL);
- }
-
- int ubi_update_start(libubi_t desc, int fd, long long bytes)
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch
deleted file mode 100644
index 2f31fb4..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From b668cb75cb7e72ff92055209130d4cd4b3cacbdb Mon Sep 17 00:00:00 2001
-From: Thorsten Glaser <tg@mirbsd.org>
-Date: Fri, 20 Jun 2014 10:56:27 +0000
-Subject: [PATCH 4/9] Restore compatibility to dietlibc, klibc, musl libc after
- commit 4f1b108
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Each C library has their own way to define off_t, and the <features.h>
-header is nonstandard and specific to the GNU libc and those that clone
-it (uClibc). Fefe’s dietlibc uses different flags, and klibc always uses
-a 64-bit off_t (like the BSDs); musl libc cannot be recognised using cpp
-instructions, so we assume 64 bit there (and on unknown C libraries) and
-leave it to the user to submit a follow-up fix if we guess wrong. I also
-added a static assertion to verify the 64 bit guess is correct.
-
-It would be really better using a configure script for this instead.
-
-Fixes:
-| CC lib/libmtd.o
-| In file included from ubi-utils/ubiutils-common.c:35:0:
-| ./include/common.h:29:22: fatal error: features.h: No such file or directory
-| #include <features.h>
-| ^
-| compilation terminated.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- include/common.h | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
-diff --git a/include/common.h b/include/common.h
-index fb0ca83..5a20964 100644
---- a/include/common.h
-+++ b/include/common.h
-@@ -26,7 +26,9 @@
- #include <string.h>
- #include <fcntl.h>
- #include <errno.h>
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- #include <features.h>
-+#endif
- #include <inttypes.h>
- #include "version.h"
-
-@@ -67,6 +69,21 @@ extern "C" {
- #endif
-
- /* define a print format specifier for off_t */
-+#if defined(__KLIBC__)
-+/* always 64 bit on klibc */
-+#define PRIxoff_t PRIx64
-+#define PRIdoff_t PRId64
-+#elif defined(__dietlibc__)
-+/* depends on compiler flags on dietlibc */
-+#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
-+#define PRIxoff_t PRIx64
-+#define PRIdoff_t PRId64
-+#else
-+#define PRIxoff_t "l"PRIx32
-+#define PRIdoff_t "l"PRId32
-+#endif
-+#elif defined(__GLIBC__) || defined(__UCLIBC__)
-+/* depends on compiler flags on glibc and uClibc */
- #ifdef __USE_FILE_OFFSET64
- #define PRIxoff_t PRIx64
- #define PRIdoff_t PRId64
-@@ -74,6 +91,13 @@ extern "C" {
- #define PRIxoff_t "l"PRIx32
- #define PRIdoff_t "l"PRId32
- #endif
-+#else
-+/* unknown libc or musl */
-+#define PRIxoff_t PRIx64
-+#define PRIdoff_t PRId64
-+/* verify our guess of 64 bit is correct */
-+static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1];
-+#endif
-
- /* Verbose messages */
- #define bareverbose(verbose, fmt, ...) do { \
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch
deleted file mode 100644
index 8309a72..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0005-common.h-more-workarounds-for-klibc-compatibility.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 5d4a66b502003ef385dab31a17012246407e7364 Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Sun, 29 Jun 2014 00:44:03 +0200
-Subject: [PATCH 5/9] common.h: more workarounds for klibc compatibility
-
-Patch is addressing two issues:
-* First, Klibc doesn't have rpmatch().
-* Second, Klibc lacks getline()
-
-Fixes:
-| LD ubi-utils/ubiformat
-| .../git/ubi-utils/ubiformat.o: In function `prompt':
-| .../git/./include/common.h:157: undefined reference to `getline'
-| .../git/./include/common.h:164: undefined reference to `rpmatch'
-| .../git/./include/common.h:157: undefined reference to `getline'
-| .../git/./include/common.h:164: undefined reference to `rpmatch'
-
-Upstream-Status: Submitted
-
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- include/common.h | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/include/common.h b/include/common.h
-index 5a20964..2f51e1c 100644
---- a/include/common.h
-+++ b/include/common.h
-@@ -161,15 +161,17 @@ static inline int __rpmatch(const char *resp)
- */
- static inline bool prompt(const char *msg, bool def)
- {
-- char *line = NULL;
-- size_t len;
-+ char *line;
- bool ret = def;
-
-+ const int sizeof_line = 2;
-+ line = malloc(sizeof_line);
-+
- do {
- normsg_cont("%s (%c/%c) ", msg, def ? 'Y' : 'y', def ? 'n' : 'N');
- fflush(stdout);
-
-- while (getline(&line, &len, stdin) == -1) {
-+ while (fgets(line, sizeof_line, stdin) == NULL) {
- printf("failed to read prompt; assuming '%s'\n",
- def ? "yes" : "no");
- break;
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch
deleted file mode 100644
index d046f95..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0006-libiniparser-remove-unused-function-needing-float.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 2af30e9b2988111e45ed6ea6af55e49ec7cb1cb1 Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Sun, 29 Jun 2014 00:44:57 +0200
-Subject: [PATCH 6/9] libiniparser: remove unused function needing float
-
-Fixes:
-| LD ubi-utils/ubiformat
-| .../git/ubi-utils/libiniparser.a(libiniparser.o): In function
-| ` LD ubi-utils/ubirename
-| iniparser_getdouble':
-| .../git/ubi-utils/libiniparser.c:336: undefined reference to `atof'
-
-Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so
-remove it: floating-point is not supported in klibc
-
-Upstream-Status: Accepted
-
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- ubi-utils/include/libiniparser.h | 15 ---------------
- ubi-utils/libiniparser.c | 22 ----------------------
- 2 files changed, 37 deletions(-)
-
-diff --git a/ubi-utils/include/libiniparser.h b/ubi-utils/include/libiniparser.h
-index be3c667..abd77aa 100644
---- a/ubi-utils/include/libiniparser.h
-+++ b/ubi-utils/include/libiniparser.h
-@@ -158,21 +158,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound);
-
- /*-------------------------------------------------------------------------*/
- /**
-- @brief Get the string associated to a key, convert to a double
-- @param d Dictionary to search
-- @param key Key string to look for
-- @param notfound Value to return in case of error
-- @return double
--
-- This function queries a dictionary for a key. A key as read from an
-- ini file is given as "section:key". If the key cannot be found,
-- the notfound value is returned.
-- */
--/*--------------------------------------------------------------------------*/
--double iniparser_getdouble(dictionary * d, char * key, double notfound);
--
--/*-------------------------------------------------------------------------*/
--/**
- @brief Get the string associated to a key, convert to a boolean
- @param d Dictionary to search
- @param key Key string to look for
-diff --git a/ubi-utils/libiniparser.c b/ubi-utils/libiniparser.c
-index 898f57f..ba70c08 100644
---- a/ubi-utils/libiniparser.c
-+++ b/ubi-utils/libiniparser.c
-@@ -316,28 +316,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound)
-
- /*-------------------------------------------------------------------------*/
- /**
-- @brief Get the string associated to a key, convert to a double
-- @param d Dictionary to search
-- @param key Key string to look for
-- @param notfound Value to return in case of error
-- @return double
--
-- This function queries a dictionary for a key. A key as read from an
-- ini file is given as "section:key". If the key cannot be found,
-- the notfound value is returned.
-- */
--/*--------------------------------------------------------------------------*/
--double iniparser_getdouble(dictionary * d, char * key, double notfound)
--{
-- char * str ;
--
-- str = iniparser_getstring(d, key, INI_INVALID_KEY);
-- if (str==INI_INVALID_KEY) return notfound ;
-- return atof(str);
--}
--
--/*-------------------------------------------------------------------------*/
--/**
- @brief Get the string associated to a key, convert to a boolean
- @param d Dictionary to search
- @param key Key string to look for
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch
deleted file mode 100644
index 36b012f..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 41e7c76b0853bf5241b38b8167dfd57c27fef1eb Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Sun, 28 Jan 2018 21:47:59 +0100
-Subject: [PATCH 7/9] mtd-utils: common.c: convert to integer arithmetic
-
-We use floating point just to print out KiB, MiB, GiB.
-Avoid that to be klibc friendly.
-
-Fixes compilation for aarch64 against klibc:
-
-error: '-mgeneral-regs-only' is incompatible with floating-point argument
-| printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024));
-etc.
-
-Note:
-* In the KiB case, we could apparently multiply by 100 before dividing
- without risking overflow. This code simply avoids multiplications.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- ubi-utils/ubiutils-common.c | 18 ++++++++++++------
- 1 file changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/ubi-utils/ubiutils-common.c b/ubi-utils/ubiutils-common.c
-index 6609a6b..0ded2a4 100644
---- a/ubi-utils/ubiutils-common.c
-+++ b/ubi-utils/ubiutils-common.c
-@@ -107,6 +107,9 @@ long long ubiutils_get_bytes(const char *str)
- void ubiutils_print_bytes(long long bytes, int bracket)
- {
- const char *p;
-+ int GiB = 1024 * 1024 * 1024;
-+ int MiB = 1024 * 1024;
-+ int KiB = 1024;
-
- if (bracket)
- p = " (";
-@@ -115,12 +118,15 @@ void ubiutils_print_bytes(long long bytes, int bracket)
-
- printf("%lld bytes", bytes);
-
-- if (bytes > 1024 * 1024 * 1024)
-- printf("%s%.1f GiB", p, (double)bytes / (1024 * 1024 * 1024));
-- else if (bytes > 1024 * 1024)
-- printf("%s%.1f MiB", p, (double)bytes / (1024 * 1024));
-- else if (bytes > 1024 && bytes != 0)
-- printf("%s%.1f KiB", p, (double)bytes / 1024);
-+ if (bytes > GiB)
-+ printf("%s%lld.%lld GiB", p,
-+ bytes / GiB, bytes % GiB / (GiB / 10));
-+ else if (bytes > MiB)
-+ printf("%s%lld.%lld MiB", p,
-+ bytes / MiB, bytes % MiB / (MiB / 10));
-+ else if (bytes > KiB && bytes != 0)
-+ printf("%s%lld.%lld KiB", p,
-+ bytes / KiB, bytes % KiB / (KiB / 10));
- else
- return;
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch
deleted file mode 100644
index 5bd0574..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From e6f1a85c0a3df24fe3ca9a520dc697105e75a80c Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Sat, 27 Jan 2018 09:39:26 +0100
-Subject: [PATCH 8/9] ubi-utils: ubiformat.c: convert to integer arithmetic
-
-Do not cast percent to double, it is just used as upper limit.
-Avoid floating point to fix compilation for aarch64 against klibc:
-
-error: '-mgeneral-regs-only' is incompatible with floating-point code
-| int percent = ((double)si->ok_cnt)/si->good_cnt * 100;
-| ^~~~~~~
-
-Notes:
-* The checks in the code above this line ensure that si->good_cnt is not 0.
-
-* The code assumes si->good_cnt * 100 will not overflow, then we can use
- (si->ok_cnt * 100) safely because the former is bigger.
-
-* The truncated result does not affect the logic:
- i.e. a value of 49.9 is truncated to 49 and is still <50.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- ubi-utils/ubiformat.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c
-index 21409ca..d93164a 100644
---- a/ubi-utils/ubiformat.c
-+++ b/ubi-utils/ubiformat.c
-@@ -843,7 +843,7 @@ int main(int argc, char * const argv[])
- }
-
- if (!args.override_ec && si->empty_cnt < si->good_cnt) {
-- int percent = ((double)si->ok_cnt)/si->good_cnt * 100;
-+ int percent = (si->ok_cnt * 100) / si->good_cnt;
-
- /*
- * Make sure the majority of eraseblocks have valid
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch
deleted file mode 100644
index 658246a..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-1.5.2/0009-Eliminate-warnings-about-implicit-non-const-casting-.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 2229f3b9fd4bad47794c28e558ad273173cea73d Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Sat, 27 Jan 2018 09:52:46 +0100
-Subject: [PATCH 9/9] Eliminate warnings about implicit non-const casting in
- libmtd
-
-The mtd_get_dev_info1 function reads (among other things) name and type
-string into coresponding struct mtd_dev_info fields.
-
-The struct mtd_dev_info has the string fields marked const, requiring
-them to be cast to non-const version during initialization.
-
-This cast was previously omitted from the dev_read_data calls,
-triggering warnings during compilation.
-
-Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-Signed-off-by: Richard Weinberger <richard@nod.at>
-
-Upstream-Status: Backport
-
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- lib/libmtd.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/libmtd.c b/lib/libmtd.c
-index 60b4782..5f0bcbc 100644
---- a/lib/libmtd.c
-+++ b/lib/libmtd.c
-@@ -746,13 +746,13 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd)
- if (dev_get_major(lib, mtd_num, &mtd->major, &mtd->minor))
- return -1;
-
-- ret = dev_read_data(lib->mtd_name, mtd_num, &mtd->name,
-+ ret = dev_read_data(lib->mtd_name, mtd_num, (char *)&mtd->name,
- MTD_NAME_MAX + 1);
- if (ret < 0)
- return -1;
- ((char *)mtd->name)[ret - 1] = '\0';
-
-- ret = dev_read_data(lib->mtd_type, mtd_num, &mtd->type_str,
-+ ret = dev_read_data(lib->mtd_type, mtd_num, (char *)&mtd->type_str,
- MTD_TYPE_MAX + 1);
- if (ret < 0)
- return -1;
---
-2.7.4
-
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-libmissing.h-fix-klibc-build-when-using-glibc-toolch.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-libmissing.h-fix-klibc-build-when-using-glibc-toolch.patch
new file mode 100644
index 0000000..4ee9bd9
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-libmissing.h-fix-klibc-build-when-using-glibc-toolch.patch
@@ -0,0 +1,40 @@
+From e596ae99059c28fa9bb3461e03e7ecaacbf41727 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Wed, 23 May 2018 15:34:59 +0200
+Subject: [PATCH] libmissing.h: fix klibc build when using glibc toolchain
+
+klibc lacks execinfo.h so adda guard around it.
+Note: build with musl toolchain is ok even without this patch.
+
+Fix build error:
+
+| In file included from ../git/lib/execinfo.c:1:0:
+| ../git/include/libmissing.h:7:10: fatal error: execinfo.h:
+ No such file or directory
+
+Upstream-Status: Inappropriate [klibc specific]
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ include/libmissing.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/libmissing.h b/include/libmissing.h
+index 0196033..832c372 100644
+--- a/include/libmissing.h
++++ b/include/libmissing.h
+@@ -3,9 +3,11 @@
+
+ #include "config.h"
+
++#ifndef __KLIBC__
+ #ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
+ #endif
++#endif
+
+ #ifndef HAVE_EXECINFO_H
+ int backtrace(void **buffer, int size);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch
new file mode 100644
index 0000000..5c6e097
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch
@@ -0,0 +1,326 @@
+From 01c98d5d5d044d9a125abcdbb2f3d771966365b0 Mon Sep 17 00:00:00 2001
+From: mirabilos <m@mirbsd.org>
+Date: Thu, 1 Feb 2018 15:34:07 +0100
+Subject: [PATCH] Instead of doing preprocessor magic, just output off_t as
+ long long
+
+Fix warnings abot PRIdoff_t in libmtd.c, in mtd_read (and mtd_write):
+
+In file included from ../git/lib/libmtd.c:40:0:
+../git/lib/libmtd.c: In function 'mtd_read':
+../git/include/common.h:110:18: warning: format '%ld' expects argument of
+ type 'long int', but argument 5 has type 'off_t {aka long long int}'
+ [-Wformat=]
+
+../git/include/common.h:120:2: note: in expansion of macro 'errmsg'
+ errmsg(fmt, ##__VA_ARGS__); \
+ ^~~~~~
+../git/lib/libmtd.c:1082:10: note: in expansion of macro 'sys_errmsg'
+ return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t,
+ ^~~~~~~~~~
+
+/usr/lib/klibc/include/inttypes.h:28:17: note: format string is defined here
+ #define PRId32 "d"
+
+Upstream-Status: Submitted
+
+Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
+---
+ include/common.h | 18 ------------------
+ jffsX-utils/mkfs.jffs2.c | 20 ++++++++++----------
+ lib/libmtd.c | 8 ++++----
+ misc-utils/flash_erase.c | 6 +++---
+ misc-utils/flash_otp_write.c | 2 +-
+ misc-utils/ftl_check.c | 2 +-
+ misc-utils/mtd_debug.c | 4 ++--
+ misc-utils/serve_image.c | 4 ++--
+ tests/fs-tests/integrity/integck.c | 4 ++--
+ tests/mtd-tests/nandpagetest.c | 4 ++--
+ tests/ubi-tests/integ.c | 6 +++---
+ ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 6 +++---
+ 12 files changed, 33 insertions(+), 51 deletions(-)
+
+diff --git a/include/common.h b/include/common.h
+index f8f72ea..642c212 100644
+--- a/include/common.h
++++ b/include/common.h
+@@ -70,24 +70,6 @@ extern "C" {
+ #define O_CLOEXEC 0
+ #endif
+
+-/* define a print format specifier for off_t */
+-#if (SIZEOF_OFF_T >= 8)
+-#define PRIxoff_t PRIx64
+-#define PRIdoff_t PRId64
+-#else
+-#define PRIxoff_t "l"PRIx32
+-#define PRIdoff_t "l"PRId32
+-#endif
+-
+-/* define a print format specifier for loff_t */
+-#if (SIZEOF_LOFF_T >= 8)
+-#define PRIxloff_t PRIx64
+-#define PRIdloff_t PRId64
+-#else
+-#define PRIxloff_t "l"PRIx32
+-#define PRIdloff_t "l"PRId32
+-#endif
+-
+ /* Verbose messages */
+ #define bareverbose(verbose, fmt, ...) do { \
+ if (verbose) \
+diff --git a/jffsX-utils/mkfs.jffs2.c b/jffsX-utils/mkfs.jffs2.c
+index 9aa6c39..0661786 100644
+--- a/jffsX-utils/mkfs.jffs2.c
++++ b/jffsX-utils/mkfs.jffs2.c
+@@ -1237,8 +1237,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir)
+ } else switch (e->sb.st_mode & S_IFMT) {
+ case S_IFDIR:
+ if (verbose) {
+- printf("\td %04o %9" PRIdoff_t " %5d:%-3d %s\n",
+- e->sb.st_mode & ~S_IFMT, e->sb.st_size,
++ printf("\td %04o %9lld %5d:%-3d %s\n",
++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size,
+ (int) (e->sb.st_uid), (int) (e->sb.st_gid),
+ e->name);
+ }
+@@ -1247,8 +1247,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir)
+ break;
+ case S_IFSOCK:
+ if (verbose) {
+- printf("\ts %04o %9" PRIdoff_t " %5d:%-3d %s\n",
+- e->sb.st_mode & ~S_IFMT, e->sb.st_size,
++ printf("\ts %04o %9lld %5d:%-3d %s\n",
++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size,
+ (int) e->sb.st_uid, (int) e->sb.st_gid, e->name);
+ }
+ write_pipe(e);
+@@ -1256,8 +1256,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir)
+ break;
+ case S_IFIFO:
+ if (verbose) {
+- printf("\tp %04o %9" PRIdoff_t " %5d:%-3d %s\n",
+- e->sb.st_mode & ~S_IFMT, e->sb.st_size,
++ printf("\tp %04o %9lld %5d:%-3d %s\n",
++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size,
+ (int) e->sb.st_uid, (int) e->sb.st_gid, e->name);
+ }
+ write_pipe(e);
+@@ -1285,8 +1285,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir)
+ break;
+ case S_IFLNK:
+ if (verbose) {
+- printf("\tl %04o %9" PRIdoff_t " %5d:%-3d %s -> %s\n",
+- e->sb.st_mode & ~S_IFMT, e->sb.st_size,
++ printf("\tl %04o %9lld %5d:%-3d %s -> %s\n",
++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size,
+ (int) e->sb.st_uid, (int) e->sb.st_gid, e->name,
+ e->link);
+ }
+@@ -1297,8 +1297,8 @@ static void recursive_populate_directory(struct filesystem_entry *dir)
+ wrote = write_regular_file(e);
+ write_xattr_entry(e);
+ if (verbose) {
+- printf("\tf %04o %9" PRIdoff_t " (%9u) %5d:%-3d %s\n",
+- e->sb.st_mode & ~S_IFMT, e->sb.st_size, wrote,
++ printf("\tf %04o %9lld (%9u) %5d:%-3d %s\n",
++ e->sb.st_mode & ~S_IFMT, (long long)e->sb.st_size, wrote,
+ (int) e->sb.st_uid, (int) e->sb.st_gid, e->name);
+ }
+ break;
+diff --git a/lib/libmtd.c b/lib/libmtd.c
+index 86c89ae..f375381 100644
+--- a/lib/libmtd.c
++++ b/lib/libmtd.c
+@@ -1079,8 +1079,8 @@ int mtd_read(const struct mtd_dev_info *mtd, int fd, int eb, int offs,
+ /* Seek to the beginning of the eraseblock */
+ seek = (off_t)eb * mtd->eb_size + offs;
+ if (lseek(fd, seek, SEEK_SET) != seek)
+- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t,
+- mtd->mtd_num, seek);
++ return sys_errmsg("cannot seek mtd%d to offset %lld",
++ mtd->mtd_num, (long long)seek);
+
+ while (rd < len) {
+ ret = read(fd, buf + rd, len - rd);
+@@ -1188,8 +1188,8 @@ int mtd_write(libmtd_t desc, const struct mtd_dev_info *mtd, int fd, int eb,
+ if (data) {
+ /* Seek to the beginning of the eraseblock */
+ if (lseek(fd, seek, SEEK_SET) != seek)
+- return sys_errmsg("cannot seek mtd%d to offset %"PRIdoff_t,
+- mtd->mtd_num, seek);
++ return sys_errmsg("cannot seek mtd%d to offset %lld",
++ mtd->mtd_num, (long long)seek);
+ ret = write(fd, data, len);
+ if (ret != len)
+ return sys_errmsg("cannot write %d bytes to mtd%d "
+diff --git a/misc-utils/flash_erase.c b/misc-utils/flash_erase.c
+index 0c9449f..ec4b2e1 100644
+--- a/misc-utils/flash_erase.c
++++ b/misc-utils/flash_erase.c
+@@ -53,8 +53,8 @@ int target_endian = __BYTE_ORDER;
+ static void show_progress(struct mtd_dev_info *mtd, off_t start, int eb,
+ int eb_start, int eb_cnt)
+ {
+- bareverbose(!quiet, "\rErasing %d Kibyte @ %"PRIxoff_t" -- %2i %% complete ",
+- mtd->eb_size / 1024, start, ((eb - eb_start) * 100) / eb_cnt);
++ bareverbose(!quiet, "\rErasing %d Kibyte @ %llx -- %2i %% complete ",
++ mtd->eb_size / 1024, (unsigned long long)start, ((eb - eb_start) * 100) / eb_cnt);
+ fflush(stdout);
+ }
+
+@@ -210,7 +210,7 @@ int main(int argc, char *argv[])
+ if (!noskipbad) {
+ int ret = mtd_is_bad(&mtd, fd, eb);
+ if (ret > 0) {
+- verbose(!quiet, "Skipping bad block at %08"PRIxoff_t, offset);
++ verbose(!quiet, "Skipping bad block at %08llx", (unsigned long long)offset);
+ continue;
+ } else if (ret < 0) {
+ if (errno == EOPNOTSUPP) {
+diff --git a/misc-utils/flash_otp_write.c b/misc-utils/flash_otp_write.c
+index b02d0b0..04c96c6 100644
+--- a/misc-utils/flash_otp_write.c
++++ b/misc-utils/flash_otp_write.c
+@@ -76,7 +76,7 @@ int main(int argc,char *argv[])
+ return errno;
+ }
+
+- printf("Writing OTP user data on %s at offset 0x%"PRIxoff_t"\n", argv[2], offset);
++ printf("Writing OTP user data on %s at offset 0x%llx\n", argv[2], (unsigned long long)offset);
+
+ if (mtd_type_is_nand_user(&mtdInfo))
+ len = mtdInfo.writesize;
+diff --git a/misc-utils/ftl_check.c b/misc-utils/ftl_check.c
+index a853cf4..e854922 100644
+--- a/misc-utils/ftl_check.c
++++ b/misc-utils/ftl_check.c
+@@ -131,7 +131,7 @@ static void check_partition(int fd)
+ perror("read failed");
+ break;
+ }
+- printf("\nErase unit %"PRIdoff_t":\n", i);
++ printf("\nErase unit %lld:\n", (long long)i);
+ if ((hdr2.FormattedSize != hdr.FormattedSize) ||
+ (hdr2.NumEraseUnits != hdr.NumEraseUnits) ||
+ (hdr2.SerialNumber != hdr.SerialNumber))
+diff --git a/misc-utils/mtd_debug.c b/misc-utils/mtd_debug.c
+index ac37e23..d65ad36 100644
+--- a/misc-utils/mtd_debug.c
++++ b/misc-utils/mtd_debug.c
+@@ -160,7 +160,7 @@ retry:
+ if (buf != NULL)
+ free(buf);
+ close(outfd);
+- printf("Copied %zu bytes from address 0x%.8"PRIxoff_t" in flash to %s\n", len, offset, filename);
++ printf("Copied %zu bytes from address 0x%.8llx in flash to %s\n", len, (unsigned long long)offset, filename);
+ return 0;
+
+ err2:
+@@ -225,7 +225,7 @@ retry:
+ if (buf != NULL)
+ free(buf);
+ fclose(fp);
+- printf("Copied %d bytes from %s to address 0x%.8"PRIxoff_t" in flash\n", len, filename, offset);
++ printf("Copied %d bytes from %s to address 0x%.8llx in flash\n", len, filename, (unsigned long long)offset);
+ return 0;
+ }
+
+diff --git a/misc-utils/serve_image.c b/misc-utils/serve_image.c
+index f2475d6..6c8c8fb 100644
+--- a/misc-utils/serve_image.c
++++ b/misc-utils/serve_image.c
+@@ -129,8 +129,8 @@ int main(int argc, char **argv)
+ }
+
+ if (st.st_size % erasesize) {
+- fprintf(stderr, "Image size %" PRIdoff_t " bytes is not a multiple of erasesize %d bytes\n",
+- st.st_size, erasesize);
++ fprintf(stderr, "Image size %lld bytes is not a multiple of erasesize %d bytes\n",
++ (long long)st.st_size, erasesize);
+ exit(1);
+ }
+ image = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, rfd, 0);
+diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c
+index 84753d6..0a7f142 100644
+--- a/tests/fs-tests/integrity/integck.c
++++ b/tests/fs-tests/integrity/integck.c
+@@ -897,8 +897,8 @@ static ssize_t file_write_data(struct file_info *file, int fd, off_t offset,
+ remains = size;
+ actual = 0;
+ written = IO_BUFFER_SIZE;
+- v("write %zd bytes, offset %"PRIdoff_t", file %s",
+- size, offset, get_file_name(file));
++ v("write %zd bytes, offset %lld, file %s",
++ size, (long long)offset, get_file_name(file));
+ while (remains) {
+ /* Fill up buffer with random data */
+ if (written < IO_BUFFER_SIZE) {
+diff --git a/tests/mtd-tests/nandpagetest.c b/tests/mtd-tests/nandpagetest.c
+index c6812df..465e548 100644
+--- a/tests/mtd-tests/nandpagetest.c
++++ b/tests/mtd-tests/nandpagetest.c
+@@ -232,8 +232,8 @@ static int verify_eraseblock(int ebnum)
+ return err;
+
+ if (lseek(fd, addr, SEEK_SET) != addr) {
+- fprintf(stderr, "cannot seek mtd%d to offset %"PRIdloff_t,
+- mtd.mtd_num, addr);
++ fprintf(stderr, "cannot seek mtd%d to offset %lld",
++ mtd.mtd_num, (long long)addr);
+ return -1;
+ }
+
+diff --git a/tests/ubi-tests/integ.c b/tests/ubi-tests/integ.c
+index 26c2ce5..1cd0649 100644
+--- a/tests/ubi-tests/integ.c
++++ b/tests/ubi-tests/integ.c
+@@ -243,7 +243,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd)
+ while (size)
+ if (read_buffer[--size] != 0xff) {
+ fprintf(stderr, "block no. = %d\n" , erase_block->block_number);
+- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start);
++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start);
+ fprintf(stderr, "size = %ld\n" , (long) bytes_read);
+ error_exit("verify 0xff failed");
+ }
+@@ -254,7 +254,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd)
+ errno = 0;
+ bytes_read = read(fd, read_buffer, w->size);
+ if (bytes_read != w->size) {
+- fprintf(stderr, "offset = %"PRIdoff_t"\n" , w->offset);
++ fprintf(stderr, "offset = %lld\n" , (long long)w->offset);
+ fprintf(stderr, "size = %ld\n" , (long) w->size);
+ fprintf(stderr, "bytes_read = %ld\n" , (long) bytes_read);
+ error_exit("read failed");
+@@ -279,7 +279,7 @@ static void check_erase_block(struct erase_block_info *erase_block, int fd)
+ while (size)
+ if (read_buffer[--size] != 0xff) {
+ fprintf(stderr, "block no. = %d\n" , erase_block->block_number);
+- fprintf(stderr, "offset = %"PRIdoff_t"\n" , gap_start);
++ fprintf(stderr, "offset = %lld\n" , (long long)gap_start);
+ fprintf(stderr, "size = %ld\n" , (long) bytes_read);
+ error_exit("verify 0xff failed!");
+ }
+diff --git a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
+index c916f48..f0237ab 100644
+--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
++++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
+@@ -772,11 +772,11 @@ int write_leb(int lnum, int len, void *buf)
+ return sys_err_msg("ubi_leb_change_start failed");
+
+ if (lseek(out_fd, pos, SEEK_SET) != pos)
+- return sys_err_msg("lseek failed seeking %"PRIdoff_t, pos);
++ return sys_err_msg("lseek failed seeking %lld", (long long)pos);
+
+ if (write(out_fd, buf, c->leb_size) != c->leb_size)
+- return sys_err_msg("write failed writing %d bytes at pos %"PRIdoff_t,
+- c->leb_size, pos);
++ return sys_err_msg("write failed writing %d bytes at pos %lld",
++ c->leb_size, (long long)pos);
+
+ return 0;
+ }
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch
new file mode 100644
index 0000000..38ab7a9
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0003-Makefile.am-only-build-ubi-utils.patch
@@ -0,0 +1,34 @@
+From 139d93bc405272a3261d57be26da842e737fe4d0 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Sun, 28 Jan 2018 23:10:34 +0100
+Subject: [PATCH] Makefile.am: only build ubi-utils
+
+We only target the ubi-utils, static, small.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ Makefile.am | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 5a6e77c..98715dd 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -34,9 +34,9 @@ EXTRA_DIST += $(GLOBAL_HEADER) $(GLOBAL_EXTRA)
+
+ include lib/Makemodule.am
+ include ubi-utils/Makemodule.am
+-include misc-utils/Makemodule.am
+-include nand-utils/Makemodule.am
+-include nor-utils/Makemodule.am
++#include misc-utils/Makemodule.am
++#include nand-utils/Makemodule.am
++#include nor-utils/Makemodule.am
+
+ if BUILD_UBIFS
+ include ubifs-utils/Makemodule.am
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch
new file mode 100644
index 0000000..2844a50
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch
@@ -0,0 +1,38 @@
+From ae1cf6d0eb1833e46549328a4473222c259723d7 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Thu, 1 Feb 2018 00:25:00 +0100
+Subject: [PATCH] mtd-utils: common.h: no features.h for klibc builds
+
+Add guard around features.h to fix missing include (here first error):
+
+ ../git/include/common.h:29:10:
+ fatal error: features.h: No such file or directory
+ #include <features.h>
+ ^~~~~~~~~~~~
+ compilation terminated
+
+Upstream-Status: Submitted
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ include/common.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/include/common.h b/include/common.h
+index 642c212..f7c71fe 100644
+--- a/include/common.h
++++ b/include/common.h
+@@ -26,7 +26,10 @@
+ #include <string.h>
+ #include <fcntl.h>
+ #include <errno.h>
++#if defined(__KLIBC__)
++#else
+ #include <features.h>
++#endif
+ #include <inttypes.h>
+ #include <unistd.h>
+ #include <sys/sysmacros.h>
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0005-common.h-replace-getline-with-fgets.patch b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0005-common.h-replace-getline-with-fgets.patch
new file mode 100644
index 0000000..a556ed3
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0005-common.h-replace-getline-with-fgets.patch
@@ -0,0 +1,56 @@
+From 2137eb1a6cd0326510bd3b9faf8037d9bf34ca3d Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Wed, 23 May 2018 15:52:34 +0200
+Subject: [PATCH] common.h: replace getline() with fgets
+
+There is an unofficial upstream patch adding a simple getline()
+to libmissing.h. Unfortunately the patch creates issues if the
+toolchain is using glibc (autotools cache?) so for the moment
+keep the old hack and wait for commits upstream.
+
+Fix:
+
+| ubi-utils/ubiformat.o: In function `prompt.constprop.4':
+| ubiformat.c:(.text+0x70): undefined reference to `getline'
+
+Upstream-Status: Inappropriate [klibc specific]
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ include/common.h | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/include/common.h b/include/common.h
+index a1d59d0..96b0bdb 100644
+--- a/include/common.h
++++ b/include/common.h
+@@ -126,15 +126,26 @@ extern "C" {
+ */
+ static inline bool prompt(const char *msg, bool def)
+ {
++
++#ifndef __KLIBC__
+ char *line = NULL;
+ size_t len;
++#else
++ char *line;
++ const int sizeof_line = 2;
++ line = malloc(sizeof_line);
++#endif
+ bool ret = def;
+
+ do {
+ normsg_cont("%s (%c/%c) ", msg, def ? 'Y' : 'y', def ? 'n' : 'N');
+ fflush(stdout);
+
++#ifndef __KLIBC__
+ while (getline(&line, &len, stdin) == -1) {
++#else
++ while (fgets(line, sizeof_line, stdin) == NULL) {
++#endif
+ printf("failed to read prompt; assuming '%s'\n",
+ def ? "yes" : "no");
+ break;
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb
deleted file mode 100644
index abb0d4b..0000000
--- a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "UBI utils statically compiled against klibc"
-DESCRIPTION = "Small sized tools from mtd-utils for use with initramfs."
-SECTION = "base"
-DEPENDS = "zlib lzo e2fsprogs util-linux"
-HOMEPAGE = "http://www.linux-mtd.infradead.org/"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
- file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"
-
-inherit klibc
-
-SRCREV = "aea36417067dade75192bafa03af70b6eb2677b1"
-SRC_URI = "git://git.infradead.org/mtd-utils.git \
- file://0001-Makefile-build-ubi-utils-only.patch \
- file://0002-common.mk-for-klibc-CC-is-klcc.patch \
- file://0003-libubi.c-add-klibc-specific-fixes-for-ioctl.patch \
- file://0004-Restore-compatibility-to-dietlibc-klibc-musl-libc-af.patch \
- file://0005-common.h-more-workarounds-for-klibc-compatibility.patch \
- file://0006-libiniparser-remove-unused-function-needing-float.patch \
- file://0007-mtd-utils-common.c-convert-to-integer-arithmetic.patch \
- file://0008-ubi-utils-ubiformat.c-convert-to-integer-arithmetic.patch \
- file://0009-Eliminate-warnings-about-implicit-non-const-casting-.patch \
- "
-
-S = "${WORKDIR}/git/"
-
-EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}include -DWITHOUT_XATTR' 'BUILDDIR=${S}'"
-
-do_install () {
- oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir}
-}
-
-PACKAGES = "ubi-utils-klibc-dbg"
-
-PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \
- ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \
- ubirmvol-klibc ubirsvol-klibc ubiupdatevol-klibc"
-
-FILES_mtdinfo-klibc = "${sbindir}/mtdinfo"
-FILES_ubiattach-klibc = "${sbindir}/ubiattach"
-FILES_ubiblock-klibc = "${sbindir}/ubiblock"
-FILES_ubicrc32-klibc = "${sbindir}/ubicrc32"
-FILES_ubidetach-klibc = "${sbindir}/ubidetach"
-FILES_ubiformat-klibc = "${sbindir}/ubiformat"
-FILES_ubimkvol-klibc = "${sbindir}/ubimkvol"
-FILES_ubinfo-klibc = "${sbindir}/ubinfo"
-FILES_ubinize-klibc = "${sbindir}/ubinize"
-FILES_ubirename-klibc = "${sbindir}/ubirename"
-FILES_ubirmvol-klibc = "${sbindir}/ubirmvol"
-FILES_ubirsvol-klibc = "${sbindir}/ubirsvol"
-FILES_ubiupdatevol-klibc = "${sbindir}/ubiupdatevol"
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb
new file mode 100644
index 0000000..0475cbe
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb
@@ -0,0 +1,52 @@
+SUMMARY = "UBI utils statically compiled against klibc"
+DESCRIPTION = "Small sized tools from mtd-utils for use with initramfs."
+SECTION = "base"
+DEPENDS = "zlib lzo e2fsprogs util-linux"
+HOMEPAGE = "http://www.linux-mtd.infradead.org/"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
+ file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"
+
+inherit autotools pkgconfig klibc
+
+SRCREV = "64f61a9dc71b158c7084006cbce4ea23886f0b47"
+SRC_URI = "git://git.infradead.org/mtd-utils.git \
+ file://0001-libmissing.h-fix-klibc-build-when-using-glibc-toolch.patch \
+ file://0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch \
+ file://0003-Makefile.am-only-build-ubi-utils.patch \
+ file://0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch \
+ file://0005-common.h-replace-getline-with-fgets.patch \
+ "
+
+S = "${WORKDIR}/git/"
+
+EXTRA_OECONF += "--disable-tests --without-jffs --without-ubifs"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)}"
+PACKAGECONFIG[xattr] = ",,acl,"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} ${@bb.utils.contains('PACKAGECONFIG', 'xattr', '', '-DWITHOUT_XATTR', d)} -I${S}/include' 'BUILDDIR=${S}'"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir}
+}
+
+PACKAGES = "ubi-utils-klibc-dbg ubi-utils-klibc-doc"
+
+PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \
+ ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \
+ ubirmvol-klibc ubirsvol-klibc ubiupdatevol-klibc"
+
+FILES_mtdinfo-klibc = "${sbindir}/mtdinfo"
+FILES_ubiattach-klibc = "${sbindir}/ubiattach"
+FILES_ubiblock-klibc = "${sbindir}/ubiblock"
+FILES_ubicrc32-klibc = "${sbindir}/ubicrc32"
+FILES_ubidetach-klibc = "${sbindir}/ubidetach"
+FILES_ubiformat-klibc = "${sbindir}/ubiformat"
+FILES_ubimkvol-klibc = "${sbindir}/ubimkvol"
+FILES_ubinfo-klibc = "${sbindir}/ubinfo"
+FILES_ubinize-klibc = "${sbindir}/ubinize"
+FILES_ubirename-klibc = "${sbindir}/ubirename"
+FILES_ubirmvol-klibc = "${sbindir}/ubirmvol"
+FILES_ubirsvol-klibc = "${sbindir}/ubirsvol"
+FILES_ubiupdatevol-klibc = "${sbindir}/ubiupdatevol"
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/0001-Adjust-the-order-of-headers-to-fix-build-for-musl.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/0001-Adjust-the-order-of-headers-to-fix-build-for-musl.patch
deleted file mode 100644
index a7600b3..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/0001-Adjust-the-order-of-headers-to-fix-build-for-musl.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 86b962e7c0de43b20b6210d059e4855ce87078bc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 16:20:08 -0700
-Subject: [PATCH] Adjust the order of headers to fix build for musl
-
-Fixes
-kexec/ifdown.c:33:16: error: storage size of 'ifc' isn't known
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- kexec/ifdown.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kexec/ifdown.c b/kexec/ifdown.c
-index 2215798..e13f777 100644
---- a/kexec/ifdown.c
-+++ b/kexec/ifdown.c
-@@ -16,8 +16,8 @@ char *v_ifdown = "@(#)ifdown.c 1.11 02-Jun-1998 miquels@cistron.nl";
- #include <sys/time.h>
- #include <errno.h>
-
--#include <net/if.h>
- #include <netinet/in.h>
-+#include <net/if.h>
-
- #define MAX_IFS 64
-
---
-2.13.2
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/arm_crashdump.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/arm_crashdump.patch
deleted file mode 100644
index 0ff61e5..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/arm_crashdump.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/kexec/arch/arm/crashdump-arm.c
-+++ b/kexec/arch/arm/crashdump-arm.c
-@@ -20,7 +20,7 @@
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
--#include <elf.h>
-+#include "../../../include/elf.h"
- #include <errno.h>
- #include <stdio.h>
- #include <stdlib.h>
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/cflags_static.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/cflags_static.patch
deleted file mode 100644
index 35100a3..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/cflags_static.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -46,7 +46,7 @@
- # where necessary.
- CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -I$(srcdir)/util_lib/include \
- -Iinclude/
--CFLAGS = @CFLAGS@ -fno-strict-aliasing -Wall -Wstrict-prototypes
-+CFLAGS = @CFLAGS@ -static -fno-strict-aliasing -Wall -Wstrict-prototypes
- PURGATORY_EXTRA_CFLAGS = @PURGATORY_EXTRA_CFLAGS@
- ASFLAGS = @ASFLAGS@
- LDFLAGS = @LDFLAGS@
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/fix-out-of-tree-build.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/fix-out-of-tree-build.patch
deleted file mode 100644
index ccbb24d..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/fix-out-of-tree-build.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 37737527725e465833be649101c4a6f8352c5d5e Mon Sep 17 00:00:00 2001
-From: Tyler Hall <tylerwhall@gmail.com>
-Date: Tue, 7 Feb 2012 18:50:05 -0500
-Subject: Fix out-of-tree build
-
-Use automatic variables for prerequisites when copying man pages and
-include a makefile relative to $(srcdir).
-
-Backported to 2.0.2-klibc
-
-Signed-off-by: Tyler Hall <tylerwhall@gmail.com>
-Signed-off-by: Simon Horman <horms@verge.net.au>
-
-diff --git a/kdump/Makefile b/kdump/Makefile
-index 1e2b72c..5dfa928 100644
---- a/kdump/Makefile
-+++ b/kdump/Makefile
-@@ -22,7 +22,7 @@ $(KDUMP): $(KDUMP_OBJS)
-
- $(KDUMP_MANPAGE): kdump/kdump.8
- $(MKDIR) -p $(MANDIR)/man8
-- cp kdump/kdump.8 $(KDUMP_MANPAGE)
-+ cp $^ $(KDUMP_MANPAGE)
- echo::
- @echo "KDUMP_SRCS $(KDUMP_SRCS)"
- @echo "KDUMP_DEPS $(KDUMP_DEPS)"
-diff --git a/kexec/Makefile b/kexec/Makefile
-index 2137cab..8c815b5 100644
---- a/kexec/Makefile
-+++ b/kexec/Makefile
-@@ -82,7 +82,7 @@ $(KEXEC): CPPFLAGS+=-I$(srcdir)/kexec/arch/$(ARCH)/include
-
- $(KEXEC_MANPAGE): kexec/kexec.8
- @$(MKDIR) -p $(MANDIR)/man8
-- cp kexec/kexec.8 $(KEXEC_MANPAGE)
-+ cp $^ $(KEXEC_MANPAGE)
- echo::
- @echo "KEXEC_SRCS $(KEXEC_SRCS)"
- @echo "KEXEC_DEPS $(KEXEC_DEPS)"
-diff --git a/kexec/arch/ppc/Makefile b/kexec/arch/ppc/Makefile
-index 3dba7cf..41242a5 100644
---- a/kexec/arch/ppc/Makefile
-+++ b/kexec/arch/ppc/Makefile
-@@ -1,7 +1,7 @@
- #
- # kexec ppc (linux booting linux)
- #
--include kexec/arch/ppc/libfdt/Makefile.libfdt
-+include $(srcdir)/kexec/arch/ppc/libfdt/Makefile.libfdt
-
- ppc_KEXEC_SRCS = kexec/arch/ppc/kexec-ppc.c
- ppc_KEXEC_SRCS += kexec/arch/ppc/kexec-elf-ppc.c
-
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ifdown_errno.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ifdown_errno.patch
deleted file mode 100644
index 7f8cddd..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ifdown_errno.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/kexec/ifdown.c
-+++ b/kexec/ifdown.c
-@@ -14,7 +14,7 @@
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/time.h>
--#include <sys/errno.h>
-+#include <errno.h>
-
- #include <net/if.h>
- #include <netinet/in.h>
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-elf-rel.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-elf-rel.patch
deleted file mode 100644
index c666afc..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-elf-rel.patch
+++ /dev/null
@@ -1,61 +0,0 @@
---- a/kexec/kexec-elf-rel.c
-+++ b/kexec/kexec-elf-rel.c
-@@ -4,7 +4,7 @@
- #include <stdio.h>
- #include <errno.h>
- #include <stdlib.h>
--#include "elf.h"
-+#include "../include/elf.h"
- #include <boot/elf_boot.h>
- #include "kexec.h"
- #include "kexec-elf.h"
-
---- a/kexec/arch/arm/kexec-elf-rel-arm.c
-+++ b/kexec/arch/arm/kexec-elf-rel-arm.c
-@@ -1,5 +1,5 @@
- #include <stdio.h>
--#include <elf.h>
-+#include "../../../include/elf.h"
- #include "../../kexec.h"
- #include "../../kexec-elf.h"
-
-
---- a/kexec/arch/i386/kexec-elf-rel-x86.c
-+++ b/kexec/arch/i386/kexec-elf-rel-x86.c
-@@ -1,5 +1,5 @@
- #include <stdio.h>
--#include <elf.h>
-+#include "../../../include/elf.h"
- #include "../../kexec.h"
- #include "../../kexec-elf.h"
-
-
---- a/kexec/arch/ppc/kexec-elf-rel-ppc.c
-+++ b/kexec/arch/ppc/kexec-elf-rel-ppc.c
-@@ -1,5 +1,5 @@
- #include <stdio.h>
--#include <elf.h>
-+#include "../../../include/elf.h"
- #include "../../kexec.h"
- #include "../../kexec-elf.h"
-
-
---- a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
-+++ b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
-@@ -1,5 +1,5 @@
- #include <stdio.h>
--#include <elf.h>
-+#include "../../../include/elf.h"
- #include <string.h>
- #include "../../kexec.h"
- #include "../../kexec-elf.h"
-
---- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
-+++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
-@@ -1,5 +1,5 @@
- #include <stdio.h>
--#include <elf.h>
-+#include "../../../include/elf.h"
- #include "../../kexec.h"
- #include "../../kexec-elf.h"
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-syscall.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-syscall.patch
deleted file mode 100644
index 081de1b..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-syscall.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- a/kexec/kexec-syscall.h
-+++ b/kexec/kexec-syscall.h
-@@ -2,7 +2,7 @@
- #define KEXEC_SYSCALL_H
-
- #define __LIBRARY__
--#include <syscall.h>
-+/*#include <syscall.h>*/
- #include <sys/syscall.h>
- #include <unistd.h>
-
-@@ -23,6 +23,7 @@
- #define LINUX_REBOOT_CMD_KEXEC 0x45584543
-
- #ifndef __NR_kexec_load
-+/*
- #ifdef __i386__
- #define __NR_kexec_load 283
- #endif
-@@ -61,19 +62,21 @@
- #ifndef __NR_kexec_load
- #error Unknown processor architecture. Needs a kexec_load syscall number.
- #endif
-+*/
- #endif /*ifndef __NR_kexec_load*/
-
- struct kexec_segment;
--
-+/*
- static inline long kexec_load(void *entry, unsigned long nr_segments,
- struct kexec_segment *segments, unsigned long flags)
- {
- return (long) syscall(__NR_kexec_load, entry, nr_segments, segments, flags);
- }
--
-+*/
- static inline long kexec_reboot(void)
- {
-- return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0);
-+ //return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0);
-+ return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0);
- }
-
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ppc__lshrdi3.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ppc__lshrdi3.patch
deleted file mode 100644
index 56cdfb0..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ppc__lshrdi3.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/purgatory/arch/ppc/crt.S
-+++ b/purgatory/arch/ppc/crt.S
-@@ -249,6 +249,7 @@
- *
- */
-
-+/* already defined in misc.S
- _GLOBAL(__lshrdi3)
- subfic 6,5,32
- srw 4,4,5 # LSW = count > 31 ? 0 : LSW >> count
-@@ -259,5 +260,7 @@
- srw 3,3,5 # MSW = MSW >> count
- or 4,4,7 # LSW |= t2
- blr
-+*/
-+
- #endif
- #endif
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_flags.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_flags.patch
deleted file mode 100644
index 41fc116..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_flags.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/purgatory/Makefile
-+++ b/purgatory/Makefile
-@@ -47,7 +47,7 @@
- $(PURGATORY): CC=$(TARGET_CC)
- $(PURGATORY): CFLAGS+=$(PURGATORY_EXTRA_CFLAGS) \
- $($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
-- -Os -fno-builtin -ffreestanding
-+ -Os -fno-builtin -ffreestanding -nostdinc
-
- $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
- -I$(srcdir)/purgatory/include \
-@@ -61,7 +61,8 @@
-
- $(PURGATORY): $(PURGATORY_OBJS)
- $(MKDIR) -p $(@D)
-- $(CC) $(LDFLAGS) -o $@ $^
-+# $(CC) $(LDFLAGS) -o $@ $^
-+ $(LD) $(LDFLAGS) -o $@ $^
-
- # $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB)
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_string.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_string.patch
deleted file mode 100644
index 5710561..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_string.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/purgatory/string.c
-+++ b/purgatory/string.c
-@@ -1,5 +1,5 @@
- #include <stddef.h>
--#include <string.h>
-+/* #include <string.h> */
-
- size_t strnlen(const char *s, size_t max)
- {
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sha256.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sha256.patch
deleted file mode 100644
index 85bf7aa..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sha256.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/util_lib/include/sha256.h
-+++ b/util_lib/include/sha256.h
-@@ -1,7 +1,8 @@
- #ifndef SHA256_H
- #define SHA256_H
-
--#include <sys/types.h>
-+//#include <sys/types.h>
-+#include <stddef.h>
- #include <stdint.h>
-
- typedef struct
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sysconf_nrprocessors.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sysconf_nrprocessors.patch
deleted file mode 100644
index 04a97e6..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sysconf_nrprocessors.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/kexec/crashdump-elf.c
-+++ b/kexec/crashdump-elf.c
-@@ -47,7 +47,8 @@
- if (xen_present())
- nr_cpus = xen_get_nr_phys_cpus();
- else
-- nr_cpus = sysconf(_SC_NPROCESSORS_CONF);
-+ /*nr_cpus = sysconf(_SC_NPROCESSORS_CONF);*/
-+ nr_cpus = 1;
-
- if (nr_cpus < 0) {
- return -1;
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_basename.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_basename.patch
deleted file mode 100644
index 77a1c01..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_basename.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/kexec/arch/i386/x86-linux-setup.c
-+++ b/kexec/arch/i386/x86-linux-setup.c
-@@ -280,9 +280,9 @@ static int add_edd_entry(struct x86_linu
- memset(edd_info, 0, sizeof(struct edd_info));
-
- /* extract the device number */
-- if (sscanf(basename(sysfs_name), "int13_dev%hhx", &devnum) != 1) {
-+ if (sscanf(strrchr(sysfs_name,'/') + 1, "int13_dev%hhx", &devnum) != 1) {
- fprintf(stderr, "Invalid format of int13_dev dir "
-- "entry: %s\n", basename(sysfs_name));
-+ "entry: %s\n", strrchr(sysfs_name,'/') + 1);
- return -1;
- }
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_kexec_test.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_kexec_test.patch
deleted file mode 100644
index 9500bd6..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_kexec_test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -106,8 +106,8 @@
-
- MAN_PAGES:= kexec/kexec.8
- MAN_PAGES+= kdump/kdump.8
--BINARIES_i386:= $(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test
--BINARIES_x86_64:=$(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test
-+BINARIES_i386:= $(SBINDIR)/kexec
-+BINARIES_x86_64:=$(SBINDIR)/kexec
- BINARIES:=$(SBINDIR)/kexec $(SBINDIR)/kdump $(BINARIES_$(ARCH))
-
- TARGETS:=$(BINARIES) $(MAN_PAGES)
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_sys_io.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_sys_io.patch
deleted file mode 100644
index a497c9a..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_sys_io.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/purgatory/arch/i386/pic.c
-+++ b/purgatory/arch/i386/pic.c
-@@ -16,7 +16,7 @@
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
--#include <sys/io.h>
-+#include "include/arch/io.h"
- #include <purgatory.h>
- #include "purgatory-x86.h"
-
-
---- a/purgatory/arch/i386/vga.c
-+++ b/purgatory/arch/i386/vga.c
-@@ -1,4 +1,4 @@
--#include <sys/io.h>
-+#include "include/arch/io.h"
- #include <purgatory.h>
- #include "purgatory-x86.h"
-
-
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_vfscanf.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_vfscanf.patch
deleted file mode 100644
index cad6951..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_vfscanf.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/kexec/arch/i386/x86-linux-setup.c
-+++ b/kexec/arch/i386/x86-linux-setup.c
-@@ -176,6 +176,8 @@ static int file_scanf(const char *dir, c
- FILE *fp;
- int retno;
- char filename[PATH_MAX];
-+ long line_size = MAX_LINE;
-+ char *line;
-
- snprintf(filename, PATH_MAX, "%s/%s", dir, file);
- filename[PATH_MAX-1] = 0;
-@@ -186,7 +188,14 @@ static int file_scanf(const char *dir, c
- }
-
- va_start(argptr, scanf_line);
-- retno = vfscanf(fp, scanf_line, argptr);
-+
-+ line = xmalloc(sizeof(line) * line_size);
-+ while(fgets(line, sizeof(line), fp) != NULL ) {
-+ line_size += MAX_LINE;
-+ line = xrealloc(line,line_size);
-+ }
-+ retno = vsscanf(line, scanf_line, argptr);
-+
- va_end(argptr);
-
- fclose(fp);
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch
new file mode 100644
index 0000000..4744e7a
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch
@@ -0,0 +1,25 @@
+From d6af515cfcc8185f423860f80ff28719975b701f Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 11 Apr 2018 22:51:00 +0200
+Subject: [PATCH] force static build
+
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 54c206f..79188d8 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -47,7 +47,7 @@ TARGET_CFLAGS = @TARGET_CFLAGS@
+ # where necessary.
+ CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -I$(srcdir)/util_lib/include \
+ -Iinclude/ $($(ARCH)_CPPFLAGS)
+-CFLAGS = @CFLAGS@ -fno-strict-aliasing -Wall -Wstrict-prototypes
++CFLAGS = @CFLAGS@ -static -fno-strict-aliasing -Wall -Wstrict-prototypes
+ PURGATORY_EXTRA_CFLAGS = @PURGATORY_EXTRA_CFLAGS@
+ ASFLAGS = @ASFLAGS@ $($(ARCH)_ASFLAGS)
+ LDFLAGS = @LDFLAGS@
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch
new file mode 100644
index 0000000..1d96a2b
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch
@@ -0,0 +1,29 @@
+From 0976d2d5be1ed44c2324b609c7d16c1e93181c4b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Jul 2017 16:20:08 -0700
+Subject: [PATCH] Adjust the order of headers to fix build for musl
+
+Fixes
+ kexec/ifdown.c:33:16: error: storage size of 'ifc' isn't known
+
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ kexec/ifdown.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kexec/ifdown.c b/kexec/ifdown.c
+index 9679ad7..82c6141 100644
+--- a/kexec/ifdown.c
++++ b/kexec/ifdown.c
+@@ -16,8 +16,8 @@ char *v_ifdown = "@(#)ifdown.c 1.11 02-Jun-1998 miquels@cistron.nl";
+ #include <sys/socket.h>
+ #include <sys/time.h>
+
+-#include <net/if.h>
+ #include <netinet/in.h>
++#include <net/if.h>
+
+ /*
+ * First, we find all shaper devices and down them. Then we
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch
new file mode 100644
index 0000000..ae9e7bb
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch
@@ -0,0 +1,92 @@
+From 7f91875d65778154709e4fa0ccb23f3b2a98b0dc Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 11 Apr 2018 22:51:00 +0200
+Subject: [PATCH] kexec-elf-rel: use our elf.h
+
+Fix:
+
+ kexec-elf-rel.c: In function 'elf_rel_load':
+ kexec-elf-rel.c:386:39: error: 'STT_NOTYPE' undeclared
+
+and similar.
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/arch/arm/kexec-elf-rel-arm.c | 2 +-
+ kexec/arch/i386/kexec-elf-rel-x86.c | 2 +-
+ kexec/arch/ppc/kexec-elf-rel-ppc.c | 2 +-
+ kexec/arch/ppc64/kexec-elf-rel-ppc64.c | 2 +-
+ kexec/arch/x86_64/kexec-elf-rel-x86_64.c | 2 +-
+ kexec/kexec-elf-rel.c | 2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/kexec/arch/arm/kexec-elf-rel-arm.c b/kexec/arch/arm/kexec-elf-rel-arm.c
+index a939cf4..2551dc0 100644
+--- a/kexec/arch/arm/kexec-elf-rel-arm.c
++++ b/kexec/arch/arm/kexec-elf-rel-arm.c
+@@ -1,5 +1,5 @@
+ #include <stdio.h>
+-#include <elf.h>
++#include "../../../include/elf.h"
+ #include "../../kexec.h"
+ #include "../../kexec-elf.h"
+
+diff --git a/kexec/arch/i386/kexec-elf-rel-x86.c b/kexec/arch/i386/kexec-elf-rel-x86.c
+index 55a214e..e7583d1 100644
+--- a/kexec/arch/i386/kexec-elf-rel-x86.c
++++ b/kexec/arch/i386/kexec-elf-rel-x86.c
+@@ -1,5 +1,5 @@
+ #include <stdio.h>
+-#include <elf.h>
++#include "../../../include/elf.h"
+ #include "../../kexec.h"
+ #include "../../kexec-elf.h"
+
+diff --git a/kexec/arch/ppc/kexec-elf-rel-ppc.c b/kexec/arch/ppc/kexec-elf-rel-ppc.c
+index 1acbd86..a60c66c 100644
+--- a/kexec/arch/ppc/kexec-elf-rel-ppc.c
++++ b/kexec/arch/ppc/kexec-elf-rel-ppc.c
+@@ -1,5 +1,5 @@
+ #include <stdio.h>
+-#include <elf.h>
++#include "../../../include/elf.h"
+ #include "../../kexec.h"
+ #include "../../kexec-elf.h"
+
+diff --git a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
+index 5f8e3f2..765bf6e 100644
+--- a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
++++ b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
+@@ -1,5 +1,5 @@
+ #include <stdio.h>
+-#include <elf.h>
++#include "../../../include/elf.h"
+ #include <string.h>
+ #include "../../kexec.h"
+ #include "../../kexec-elf.h"
+diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+index 7fdde73..cd5d729 100644
+--- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
++++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+@@ -1,5 +1,5 @@
+ #include <stdio.h>
+-#include <elf.h>
++#include "../../../include/elf.h"
+ #include "../../kexec.h"
+ #include "../../kexec-elf.h"
+
+diff --git a/kexec/kexec-elf-rel.c b/kexec/kexec-elf-rel.c
+index 9a6e63d..a856636 100644
+--- a/kexec/kexec-elf-rel.c
++++ b/kexec/kexec-elf-rel.c
+@@ -4,7 +4,7 @@
+ #include <stdio.h>
+ #include <errno.h>
+ #include <stdlib.h>
+-#include "elf.h"
++#include "../include/elf.h"
+ #include <boot/elf_boot.h>
+ #include "kexec.h"
+ #include "kexec-elf.h"
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch
new file mode 100644
index 0000000..1080e8b
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch
@@ -0,0 +1,30 @@
+From 8b9da93ac9a4ea79ae953f80f6fe6e4f080341f2 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 17 Apr 2018 10:57:23 +0200
+Subject: [PATCH] kexec-elf-exec.c: replace with our elf.h
+
+Fix
+
+ kexec-elf-exec.c: In function 'elf_exec_load':
+ error: 'EM_AARCH64' undeclared
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/kexec-elf-exec.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kexec/kexec-elf-exec.c b/kexec/kexec-elf-exec.c
+index a9329ac..0dd0700 100644
+--- a/kexec/kexec-elf-exec.c
++++ b/kexec/kexec-elf-exec.c
+@@ -4,7 +4,7 @@
+ #include <stdio.h>
+ #include <errno.h>
+ #include <stdlib.h>
+-#include "elf.h"
++#include "../include/elf.h"
+ #include <boot/elf_boot.h>
+ #include "kexec.h"
+ #include "kexec-elf.h"
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch
new file mode 100644
index 0000000..4f7506d
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch
@@ -0,0 +1,134 @@
+From 1cfee75d9662c3382bb7cb8f1c952333837598ae Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Wed, 18 Apr 2018 02:21:30 +0200
+Subject: [PATCH] crashdump-elf.c: work around for _SC_NPROCESSORS_CONF
+
+klibc sysconf lacks this so the implementation
+of Linus Torvalds was taken (simplified):
+
+https://sourceware.org/ml/libc-alpha/2011-06/msg00079.html
+
+Have fun reding the thread!
+
+Fix
+
+ crashdump-elf.c:117:21: error: '_SC_NPROCESSORS_CONF' undeclared
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/crashdump-elf.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 92 insertions(+)
+
+diff --git a/kexec/crashdump-elf.c b/kexec/crashdump-elf.c
+index b8bb686..7e6767c 100644
+--- a/kexec/crashdump-elf.c
++++ b/kexec/crashdump-elf.c
+@@ -25,6 +25,94 @@ do { \
+ } while(0)
+ #endif
+
++#ifdef __KLIBC__
++#ifndef KLIBC_SYSFS_CPU_H
++#define KLIBC_SYSFS_CPU_H
++
++
++static int __get_sysfs_cpus(const char *path);
++int __get_nprocs (void);
++int __get_nprocs_conf (void);
++
++
++
++static int __get_sysfs_cpus(const char *path)
++{
++ FILE *file;
++ int nr_cpus = 0;
++ int prev = -1;
++ char *p;
++ char line[10];
++
++
++ file = fopen(path, "r");
++ if (!file)
++ return -1;
++ for (;;) {
++ char sep;
++ int cpu;
++ int n;
++
++ /* int n = fscanf(file, "%u%c", &cpu, &sep); */
++ p = fgets(line, sizeof(line), file);
++ if (p == NULL)
++ return -1;
++ else
++ n = sscanf(line, "%u%c", &cpu, &sep);
++
++ if (n <= 0)
++ break;
++
++ /* EOF == EOLN */
++ if (n == 1)
++ sep = '\n';
++
++ /* Was the previous CPU a range? */
++ if (prev >= 0) {
++ nr_cpus += cpu - prev + 1;
++ prev = -1;
++ } else if (sep == '-')
++ prev = cpu;
++ else
++ nr_cpus++;
++
++ if (sep == '\n')
++ break;
++ }
++ fclose(file);
++ return nr_cpus;
++}
++
++int __get_nprocs ()
++{
++ long ret;
++ static int cached = -1;
++
++ ret = cached;
++ if (ret < 0)
++ {
++ ret = __get_sysfs_cpus("/sys/devices/system/cpu/online");
++ cached = ret;
++ }
++ return ret;
++}
++
++int __get_nprocs_conf ()
++{
++ long ret;
++ static int cached = -1;
++
++ ret = cached;
++ if (ret < 0)
++ {
++ ret = __get_sysfs_cpus("/sys/devices/system/cpu/possible");
++ cached = ret;
++ }
++ return ret;
++}
++#endif
++#endif
++
+ /* Prepares the crash memory headers and stores in supplied buffer. */
+ int FUNC(struct kexec_info *info,
+ struct crash_elf_info *elf_info,
+@@ -46,7 +134,11 @@ int FUNC(struct kexec_info *info,
+ if (xen_present())
+ nr_cpus = xen_get_nr_phys_cpus();
+ else
++#ifndef __KLIBC__
+ nr_cpus = sysconf(_SC_NPROCESSORS_CONF);
++#else
++ nr_cpus = __get_nprocs_conf();
++#endif
+
+ if (nr_cpus < 0) {
+ return -1;
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch
new file mode 100644
index 0000000..3020f76
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch
@@ -0,0 +1,71 @@
+From 45a80fe7d247898d83edfeabe32b9de80a50a6be Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Fri, 31 Aug 2018 11:33:51 +0200
+Subject: [PATCH] kexec-syscall.h: work around missing syscall() wrapper
+
+Fix
+
+ kexec-syscall.h: In function 'kexec_load':
+ kexec-syscall.h:80:16: warning: implicit declaration of function 'syscall'
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/kexec-syscall.h | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h
+index 33638c2..204007d 100644
+--- a/kexec/kexec-syscall.h
++++ b/kexec/kexec-syscall.h
+@@ -74,11 +74,16 @@
+
+ struct kexec_segment;
+
++#ifndef __KLIBC__
+ static inline long kexec_load(void *entry, unsigned long nr_segments,
+ struct kexec_segment *segments, unsigned long flags)
+ {
+ return (long) syscall(__NR_kexec_load, entry, nr_segments, segments, flags);
+ }
++#else
++extern long kexec_load(void *entry, unsigned long nr_segments,
++ struct kexec_segment *segments, unsigned long flags);
++#endif
+
+ static inline int is_kexec_file_load_implemented(void) {
+ if (__NR_kexec_file_load != 0xffffffff)
+@@ -86,6 +91,21 @@ static inline int is_kexec_file_load_implemented(void) {
+ return 0;
+ }
+
++#ifdef __KLIBC__
++/* Stub provided by klibc only for the following archs */
++#if defined (__x86_64__) || defined (__powerpc_64__) || defined (__s390x__)
++extern long kexec_file_load(int kernel_fd, int initrd_fd,
++ unsigned long cmdline_len, const char *cmdline_ptr,
++ unsigned long flags);
++#else
++static inline long kexec_file_load(int kernel_fd, int initrd_fd,
++ unsigned long cmdline_len, const char *cmdline_ptr,
++ unsigned long flags)
++{
++ return -1;
++}
++#endif
++#else
+ static inline long kexec_file_load(int kernel_fd, int initrd_fd,
+ unsigned long cmdline_len, const char *cmdline_ptr,
+ unsigned long flags)
+@@ -93,6 +113,7 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd,
+ return (long) syscall(__NR_kexec_file_load, kernel_fd, initrd_fd,
+ cmdline_len, cmdline_ptr, flags);
+ }
++#endif
+
+ #define KEXEC_ON_CRASH 0x00000001
+ #define KEXEC_PRESERVE_CONTEXT 0x00000002
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch
new file mode 100644
index 0000000..3d44683
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch
@@ -0,0 +1,37 @@
+From e6bd7a1bcfbd3e54efc81fbd7d60d915f9af0632 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 17 Apr 2018 11:35:14 +0200
+Subject: [PATCH] kexec.c: add guard around ENOTSUP
+
+Fix
+
+ kexec.c: In function 'main':
+ kexec.c:1515:11: error: 'ENOTSUP' undeclared
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/kexec.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/kexec/kexec.c b/kexec/kexec.c
+index 313d9fe..b5a8a1e 100644
+--- a/kexec/kexec.c
++++ b/kexec/kexec.c
+@@ -1501,6 +1501,7 @@ int main(int argc, char *argv[])
+ */
+ case -EINVAL:
+ case -ENOEXEC:
++#ifndef __KLIBC__
+ /*
+ * ENOTSUP can be unsupported image
+ * type or unsupported PE signature
+@@ -1513,6 +1514,7 @@ int main(int argc, char *argv[])
+ * kernel bug
+ */
+ case -ENOTSUP:
++#endif
+ do_kexec_file_syscall = 0;
+ break;
+ }
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch
new file mode 100644
index 0000000..cfc51cf
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch
@@ -0,0 +1,32 @@
+From 12c7b09c3152f2b3475d081691a26bd1a5633256 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 17 Apr 2018 11:38:42 +0200
+Subject: [PATCH] kexec.c: replace missing BLKGETSIZE64
+
+Fix
+
+ kexec.c: In function 'slurp_file_generic':
+ kexec.c:564:19: error: 'BLKGETSIZE64' undeclared
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/kexec.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/kexec/kexec.c b/kexec/kexec.c
+index b5a8a1e..7842f8b 100644
+--- a/kexec/kexec.c
++++ b/kexec/kexec.c
+@@ -54,6 +54,10 @@
+ #define KEXEC_LOADED_PATH "/sys/kernel/kexec_loaded"
+ #define KEXEC_CRASH_LOADED_PATH "/sys/kernel/kexec_crash_loaded"
+
++#ifndef BLKGETSIZE64
++#define BLKGETSIZE64 _IOR(0x12,114,size_t)
++#endif
++
+ unsigned long long mem_min = 0;
+ unsigned long long mem_max = ULONG_MAX;
+ static unsigned long kexec_flags = 0;
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch
new file mode 100644
index 0000000..df980b1
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch
@@ -0,0 +1,57 @@
+From ad598a71ffff6f86462211f252ac0c7b5de53869 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 17 Apr 2018 13:14:12 +0200
+Subject: [PATCH] vmcore-dmesg.c: work around missing imaxdiv()
+
+Convert to integer arithmetic for klibc.
+
+Fix
+
+ vmcore-dmesg.c: In function 'dump_dmesg_structured':
+ vmcore-dmesg.c:578:2: error: unknown type name 'imaxdiv_t'
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ vmcore-dmesg/vmcore-dmesg.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c
+index e340ef4..1b27b71 100644
+--- a/vmcore-dmesg/vmcore-dmesg.c
++++ b/vmcore-dmesg/vmcore-dmesg.c
+@@ -575,8 +575,11 @@ static void dump_dmesg_structured(int fd)
+ ssize_t ret;
+ char *msg;
+ uint16_t text_len;
++#ifndef __KLIBC__
+ imaxdiv_t imaxdiv_sec, imaxdiv_usec;
+-
++#else
++ int64_t imaxdiv_sec, imaxdiv_usec;
++#endif
+ if (!log_buf_vaddr) {
+ fprintf(stderr, "Missing the log_buf symbol\n");
+ exit(60);
+@@ -645,12 +648,20 @@ static void dump_dmesg_structured(int fd)
+ exit(65);
+ }
+ ts_nsec = struct_val_u64(buf, log_offset_ts_nsec);
++#ifndef __KLIBC__
+ imaxdiv_sec = imaxdiv(ts_nsec, 1000000000);
+ imaxdiv_usec = imaxdiv(imaxdiv_sec.rem, 1000);
+
+ len += sprintf(out_buf + len, "[%5llu.%06llu] ",
+ (long long unsigned int)imaxdiv_sec.quot,
+ (long long unsigned int)imaxdiv_usec.quot);
++#else
++ imaxdiv_sec = ts_nsec / 1000000000;
++ imaxdiv_usec = (ts_nsec % 1000000000) / 1000;
++ len += sprintf(out_buf + len, "[%5llu.%06llu] ",
++ (long long unsigned int)imaxdiv_sec,
++ (long long unsigned int)imaxdiv_usec);
++#endif
+
+ /* escape non-printable characters */
+ text_len = struct_val_u16(buf, log_offset_text_len);
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch
new file mode 100644
index 0000000..cff1485
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch
@@ -0,0 +1,47 @@
+From edefda702d906d472ee7a675f6b506d5cfca7ac8 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 17 Apr 2018 13:48:25 +0200
+Subject: [PATCH] fs2dt.c: work around missing getline()
+
+This simple case can be rewrtten with fgets()
+
+Fix
+
+ fs2dt.c: In function 'dt_copy_old_root_param':
+ fs2dt.c:541:6: warning: implicit declaration of function 'getline'
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/fs2dt.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/kexec/fs2dt.c b/kexec/fs2dt.c
+index 07a5e2f..d635636 100644
+--- a/kexec/fs2dt.c
++++ b/kexec/fs2dt.c
+@@ -531,6 +531,9 @@ static void dt_copy_old_root_param(void)
+ char *last_cmdline = NULL;
+ char *p, *old_param;
+ size_t len = 0;
++#ifdef __KLIBC__
++ char buf[512];
++#endif
+
+ strcpy(filename, pathname);
+ strcat(filename, "bootargs");
+@@ -538,8 +541,13 @@ static void dt_copy_old_root_param(void)
+ if (!fp)
+ return;
+
++#ifndef __KLIBC__
+ if (getline(&last_cmdline, &len, fp) == -1)
+ die("unable to read %s\n", filename);
++#else
++ last_cmdline = fgets(buf, 200, fp);
++ last_cmdline[strlen(last_cmdline) - 1] = '\0';
++#endif
+
+ p = strstr(last_cmdline, "root=");
+ if (p) {
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch
new file mode 100644
index 0000000..636151b
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch
@@ -0,0 +1,38 @@
+From 9b6866b106eb3ad11115bd591a23e65a68dd847d Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 21 Aug 2018 16:31:44 +0200
+Subject: [PATCH 11/11] purgatory Makefile: adapt to klcc
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ purgatory/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/purgatory/Makefile b/purgatory/Makefile
+index 49ce80a..72eefaa 100644
+--- a/purgatory/Makefile
++++ b/purgatory/Makefile
+@@ -47,7 +47,7 @@ purgatory/sha256.o: $(srcdir)/util_lib/sha256.c
+ $(PURGATORY): CC=$(TARGET_CC)
+ $(PURGATORY): CFLAGS+=$(PURGATORY_EXTRA_CFLAGS) \
+ $($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
+- -Os -fno-builtin -ffreestanding \
++ -Os -fno-builtin -ffreestanding -nostdinc \
+ -fno-zero-initialized-in-bss \
+ -fno-PIC -fno-PIE -fno-stack-protector
+
+@@ -59,8 +59,8 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
+ -Iinclude \
+ -I$(shell $(CC) -print-file-name=include)
+ $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\
+- -Wl,--no-undefined -nostartfiles -nostdlib \
+- -nodefaultlibs -e purgatory_start -r \
++ -Wl,--no-undefined -Wl,-no-pie -Wl,-nostartfiles -Wl,-nostdlib \
++ -Wl,-nodefaultlibs -Wl,--entry=purgatory_start -Wl,-r \
+ -Wl,-Map=$(PURGATORY_MAP)
+
+ $(PURGATORY): $(PURGATORY_OBJS)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch
new file mode 100644
index 0000000..20934da
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch
@@ -0,0 +1,31 @@
+From 2d2ad16f9328a7cbb3f5b8479ae93eb923a0727f Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Thu, 19 Apr 2018 00:28:14 +0200
+Subject: [PATCH] purgatory/string.c: avoid inclusion of string.h
+
+Fix
+
+ purgatory/string.c:39:5: error: conflicting types for 'memcmp'
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ purgatory/string.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/purgatory/string.c b/purgatory/string.c
+index f06c460..c5e978a 100644
+--- a/purgatory/string.c
++++ b/purgatory/string.c
+@@ -1,5 +1,7 @@
+ #include <stddef.h>
++#ifndef __KLIBC__
+ #include <string.h>
++#endif
+
+ size_t strnlen(const char *s, size_t max)
+ {
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch
new file mode 100644
index 0000000..5d1664f
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch
@@ -0,0 +1,36 @@
+From ec6000b9f287e62cb0746e26cfa4372c7ea528f4 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Thu, 19 Apr 2018 23:26:43 +0200
+Subject: [PATCH] sha256.h: avoid inclusion of sys/types.h
+
+Fix
+
+ purgatory/printf.c:2:10: fatal error: limits.h:
+ No such file or directory
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ util_lib/include/sha256.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/util_lib/include/sha256.h b/util_lib/include/sha256.h
+index 467fb22..40fd3ed 100644
+--- a/util_lib/include/sha256.h
++++ b/util_lib/include/sha256.h
+@@ -1,7 +1,11 @@
+ #ifndef SHA256_H
+ #define SHA256_H
+
++#ifndef __KLIBC__
+ #include <sys/types.h>
++#else
++#include <stddef.h>
++#endif
+ #include <stdint.h>
+
+ typedef struct
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch
new file mode 100644
index 0000000..ad21266
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch
@@ -0,0 +1,152 @@
+From b15e9610b4ab52c381e712241d50dea96d50d873 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Wed, 2 May 2018 23:14:19 +0200
+Subject: [PATCH 14/14] add if_nameindex from musl
+
+Taken from musl, minimal changes.
+klibc lacks struct and func
+
+Fix
+
+ ifdown.o: In function `ifdown':
+ ifdown.c (.text+0x30): undefined reference to `if_nameindex'
+
+While there add klibc-specific guard and include sys/types.h
+to fix :
+
+ /kexec/if_nameindex.c:2:
+ /usr/lib/klibc/include/linux/types.h:22:0:
+ warning: "__bitwise" redefined
+ #define __bitwise __bitwise__
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ kexec/Makefile | 2 +-
+ kexec/if_nameindex.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ kexec/if_nameindex.h | 15 ++++++++++++
+ kexec/ifdown.c | 3 +++
+ 4 files changed, 83 insertions(+), 1 deletion(-)
+ create mode 100644 kexec/if_nameindex.c
+ create mode 100644 kexec/if_nameindex.h
+
+diff --git a/kexec/Makefile b/kexec/Makefile
+index 4db84d8..fb7520b 100644
+--- a/kexec/Makefile
++++ b/kexec/Makefile
+@@ -11,7 +11,7 @@ KEXEC_SRCS = $(KEXEC_SRCS_base)
+ KEXEC_GENERATED_SRCS =
+
+ KEXEC_SRCS_base += kexec/kexec.c
+-KEXEC_SRCS_base += kexec/ifdown.c
++KEXEC_SRCS_base += kexec/if_nameindex kexec/ifdown.c
+ KEXEC_SRCS_base += kexec/kexec-elf.c
+ KEXEC_SRCS_base += kexec/kexec-elf-exec.c
+ KEXEC_SRCS_base += kexec/kexec-elf-core.c
+diff --git a/kexec/if_nameindex.c b/kexec/if_nameindex.c
+new file mode 100644
+index 0000000..e586e41
+--- /dev/null
++++ b/kexec/if_nameindex.c
+@@ -0,0 +1,64 @@
++#define _GNU_SOURCE
++#ifdef __KLIBC__
++#include <sys/types.h>
++#endif
++#include <netinet/in.h>
++#include <net/if.h>
++#include <stdlib.h>
++#include <sys/socket.h>
++#include <sys/ioctl.h>
++#include <errno.h>
++#include <sys/syscall.h>
++#include <stdio.h>
++#ifdef __KLIBC__
++#include "if_nameindex.h"
++#endif
++
++static void *do_nameindex(int s, size_t n)
++{
++ size_t i, len, k;
++ struct ifconf conf;
++ struct if_nameindex *idx;
++
++ idx = malloc(n * (sizeof(struct if_nameindex)+sizeof(struct ifreq)));
++ if (!idx) return 0;
++
++ conf.ifc_buf = (void *)&idx[n];
++ conf.ifc_len = len = n * sizeof(struct ifreq);
++ if (ioctl(s, SIOCGIFCONF, &conf) < 0) {
++ free(idx);
++ return 0;
++ }
++ if (conf.ifc_len == len) {
++ free(idx);
++ return (void *)-1;
++ }
++
++ n = conf.ifc_len / sizeof(struct ifreq);
++ for (i=k=0; i<n; i++) {
++ if (ioctl(s, SIOCGIFINDEX, &conf.ifc_req[i]) < 0) {
++ k++;
++ continue;
++ }
++ idx[i-k].if_index = conf.ifc_req[i].ifr_ifindex;
++ idx[i-k].if_name = conf.ifc_req[i].ifr_name;
++ }
++ idx[i-k].if_name = 0;
++ idx[i-k].if_index = 0;
++
++ return idx;
++}
++
++struct if_nameindex *if_nameindex()
++{
++ size_t n;
++ void *p = 0;
++ int s = socket(AF_UNIX, SOCK_DGRAM, 0);
++ if (s>=0) {
++ for (n=0; (p=do_nameindex(s, n)) == (void *)-1; n++);
++/* __syscall(SYS_close, s); */
++ close(s);
++ }
++ errno = ENOBUFS;
++ return p;
++}
+diff --git a/kexec/if_nameindex.h b/kexec/if_nameindex.h
+new file mode 100644
+index 0000000..1725fbd
+--- /dev/null
++++ b/kexec/if_nameindex.h
+@@ -0,0 +1,15 @@
++#ifndef _NET_IF__NAMEINDEX_H
++#define _NET_IF_NAMEINDEX_H
++
++struct if_nameindex
++{
++ unsigned int if_index;
++ char *if_name;
++};
++
++unsigned int if_nametoindex (const char *);
++char *if_indextoname (unsigned int, char *);
++struct if_nameindex *if_nameindex (void);
++void if_freenameindex (struct if_nameindex *);
++
++#endif
+diff --git a/kexec/ifdown.c b/kexec/ifdown.c
+index 82c6141..cc3ca9f 100644
+--- a/kexec/ifdown.c
++++ b/kexec/ifdown.c
+@@ -18,6 +18,9 @@ char *v_ifdown = "@(#)ifdown.c 1.11 02-Jun-1998 miquels@cistron.nl";
+
+ #include <netinet/in.h>
+ #include <net/if.h>
++#ifdef __KLIBC__
++#include "if_nameindex.h"
++#endif
+
+ /*
+ * First, we find all shaper devices and down them. Then we
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch
new file mode 100644
index 0000000..0b88b94
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch
@@ -0,0 +1,29 @@
+From 3294266c6a875c5009065c1ae5d0b86200c4147c Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Sun, 29 Apr 2018 00:52:31 +0200
+Subject: [PATCH 6/6] vmcore-dmesg: fix warning
+
+ # define __bitwise
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ vmcore-dmesg/vmcore-dmesg.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c
+index e340ef4..91e4789 100644
+--- a/vmcore-dmesg/vmcore-dmesg.c
++++ b/vmcore-dmesg/vmcore-dmesg.c
+@@ -2,6 +2,9 @@
+ #define _GNU_SOURCE
+ #define _LARGEFILE_SOURCE 1
+ #define _FILE_OFFSET_BITS 64
++#ifdef __KLIBC__
++#include <sys/types.h>
++#endif
+ #include <endian.h>
+ #include <byteswap.h>
+ #include <stdio.h>
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch
new file mode 100644
index 0000000..24be4dd
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch
@@ -0,0 +1,34 @@
+From 6f69f489a442b3a192e4c08748ee8c4d31c75dae Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Sun, 29 Apr 2018 00:46:16 +0200
+Subject: [PATCH 5/6] arm64: crashdump-arm64.c: fix warning
+
+ from ../git/kexec/kexec.h:6,
+ from ../git/kexec/arch/arm64/crashdump-arm64.c:18:
+/tmp/build/tmp-musl/work/aarch64-oe-linux-musl/kexec-tools-klibc/0.6+gitAUTOINC+
+0481e9ed61-r0/recipe-sysroot/usr/lib/klibc/include/klibc/compiler.h:144:0: warni
+ng: "__bitwise" redefined
+ # define __bitwise
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ kexec/arch/arm64/crashdump-arm64.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/kexec/arch/arm64/crashdump-arm64.c b/kexec/arch/arm64/crashdump-arm64.c
+index 4fd7aa8..890d88f 100644
+--- a/kexec/arch/arm64/crashdump-arm64.c
++++ b/kexec/arch/arm64/crashdump-arm64.c
+@@ -13,6 +13,9 @@
+ #define _GNU_SOURCE
+
+ #include <errno.h>
++#ifdef __KLIBC__
++#include <sys/types.h>
++#endif
+ #include <linux/elf.h>
+
+ #include "kexec.h"
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch
new file mode 100644
index 0000000..b22ac3a
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch
@@ -0,0 +1,61 @@
+From 10afeecd10499fbd64b2c68d3b076c6906df441f Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Wed, 5 Sep 2018 17:07:48 +0200
+Subject: [PATCH] kexec-arm64.c: workaround for getrandom() syscall
+
+The syscall was added to OE's klibc.
+Fix
+
+| ../git/kexec/arch/arm64/kexec-arm64.c:19:10: fatal error: syscall.h: No such file or directory
+| #include <syscall.h>
+
+and
+
+| ../git/kexec/arch/arm64/kexec-arm64.c: In function 'setup_2nd_dtb':
+| ../git/kexec/arch/arm64/kexec-arm64.c:499:12: warning: implicit declaration of function 'getrandom'; did you mean 'srandom'? [-Wimplicit-function-declaration]
+| result = getrandom(&fdt_val64,
+
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ kexec/arch/arm64/kexec-arm64.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c
+index 7a12479..8a7f5c5 100644
+--- a/kexec/arch/arm64/kexec-arm64.c
++++ b/kexec/arch/arm64/kexec-arm64.c
+@@ -16,7 +16,11 @@
+ #include <elf.h>
+
+ #include <unistd.h>
++
++#ifndef __KLIBC__
+ #include <syscall.h>
++#endif
++
+ #include <errno.h>
+ #include <linux/random.h>
+
+@@ -487,10 +491,16 @@ static int setup_2nd_dtb(struct dtb *dtb, char *command_line, int on_crash)
+ * have a valid random seed to pass to the
+ * secondary kernel.
+ */
++#ifndef __KLIBC__
+ result = syscall(SYS_getrandom, &fdt_val64,
+ sizeof(fdt_val64),
+ GRND_NONBLOCK);
+-
++#else
++ extern ssize_t getrandom(void *, size_t, unsigned int);
++ result = getrandom(&fdt_val64,
++ sizeof(fdt_val64),
++ GRND_NONBLOCK);
++#endif
+ if(result == -1) {
+ dbgprintf("%s: Reading random bytes failed.\n",
+ __func__);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch
new file mode 100644
index 0000000..7decbac
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch
@@ -0,0 +1,40 @@
+From af7d06a753a4c377b7ffe587da67a6ba56048bea Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Thu, 19 Apr 2018 10:47:17 +0200
+Subject: [PATCH 2/2] kexec/arm64: image-header.h: add macro for le64toh
+
+Fix
+
+ kexec-arm64.c:(.text+0x370): undefined reference to `le64toh'
+ kexec-arm64.c:(.text+0x380): undefined reference to `le64toh'
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/arch/arm64/image-header.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/kexec/arch/arm64/image-header.h b/kexec/arch/arm64/image-header.h
+index 158d411..10ed2d6 100644
+--- a/kexec/arch/arm64/image-header.h
++++ b/kexec/arch/arm64/image-header.h
+@@ -8,6 +8,15 @@
+ #include <endian.h>
+ #include <stdint.h>
+
++#ifdef __KLIBC__
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++#define le64toh(x) (x)
++#endif
++#if __BYTE_ORDER == __BIG_ENDIAN
++#define le64toh(x) __bswap_64(x)
++#endif
++#endif
++
+ /**
+ * struct arm64_image_header - arm64 kernel image header.
+ *
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch
new file mode 100644
index 0000000..c6afdfa
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch
@@ -0,0 +1,44 @@
+From 06b0d43c20f7c6200902d4c6db3d33416877f71c Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Sun, 26 Aug 2018 21:40:06 +0200
+Subject: [PATCH 1/1] arm- backport from oe-core
+
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ kexec/arch/arm/crashdump-arm.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c
+index 2530b29..af2600d 100644
+--- a/kexec/arch/arm/crashdump-arm.c
++++ b/kexec/arch/arm/crashdump-arm.c
+@@ -240,6 +240,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+ void *buf;
+ int err;
+ int last_ranges;
++ unsigned short align_bit_shift = 20;
+
+ /*
+ * First fetch all the memory (RAM) ranges that we are going to pass to
+@@ -281,6 +282,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+
+ /* for support LPAE enabled kernel*/
+ elf_info.class = ELFCLASS64;
++ align_bit_shift = 21;
+
+ err = crash_create_elf64_headers(info, &elf_info,
+ usablemem_rgns.ranges,
+@@ -302,8 +304,9 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+ * 1MB) so that available memory passed in kernel command line will be
+ * aligned to 1MB. This is because kernel create_mapping() wants memory
+ * regions to be aligned to SECTION_SIZE.
++ * The SECTION_SIZE of LPAE kernel is '1UL << 21' defined in pgtable-3level.h
+ */
+- elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << 20,
++ elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << align_bit_shift,
+ crash_kernel_mem.start,
+ crash_kernel_mem.end, -1, 0);
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch
new file mode 100644
index 0000000..9596263
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch
@@ -0,0 +1,31 @@
+From 6dae4752a53973c152b3e91e8a4ca74a486dae8b Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 11 Apr 2018 22:51:00 +0200
+Subject: [PATCH] use our elf.h header
+
+Fix
+
+ kexec/arch/arm/crashdump-arm.c:70:13: error: 'EM_ARM' undeclared here
+ (not in a function); did you mean 'EM_860'?
+ .machine = EM_ARM,
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/arch/arm/crashdump-arm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c
+index daa4788..2530b29 100644
+--- a/kexec/arch/arm/crashdump-arm.c
++++ b/kexec/arch/arm/crashdump-arm.c
+@@ -21,7 +21,7 @@
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ #include <limits.h>
+-#include <elf.h>
++#include "../../../include/elf.h"
+ #include <errno.h>
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch
new file mode 100644
index 0000000..26d18eb
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch
@@ -0,0 +1,88 @@
+x86_64: Add support to build kexec-tools with x32 ABI
+
+Summary of changes,
+
+configure.ac: Add test for detect x32 ABI.
+purgatory/arch/x86_64/Makefile: Not use mcmodel large when
+ x32 ABI is set.
+kexec/arch/x86_64/kexec-elf-rel-x86_64.c: When x32 ABI is set
+ use ELFCLASS32 instead of ELFCLASS64.
+kexec/kexec-syscall.h: Add correct syscall number for x32 ABI.
+
+Upstream-Status: Submitted
+
+Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
+Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
+
+---
+ configure.ac | 9 +++++++++
+ kexec/arch/x86_64/kexec-elf-rel-x86_64.c | 4 ++++
+ kexec/kexec-syscall.h | 4 ++++
+ purgatory/arch/x86_64/Makefile | 4 +++-
+ 4 files changed, 20 insertions(+), 1 deletion(-)
+
+Index: kexec-tools-2.0.10/configure.ac
+===================================================================
+--- kexec-tools-2.0.10.orig/configure.ac
++++ kexec-tools-2.0.10/configure.ac
+@@ -56,6 +56,15 @@ case $target_cpu in
+ ;;
+ ia64|x86_64|alpha|m68k )
+ ARCH="$target_cpu"
++
++ dnl ---Test for x32 ABI in x86_64
++ if test "x$ARCH" = "xx86_64" ; then
++ AC_EGREP_CPP(x32_test,
++ [#if defined(__x86_64__) && defined (__ILP32__)
++ x32_test
++ #endif
++ ], SUBARCH='x32', SUBARCH='64')
++ fi
+ ;;
+ * )
+ AC_MSG_ERROR([unsupported architecture $target_cpu])
+Index: kexec-tools-2.0.10/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+===================================================================
+--- kexec-tools-2.0.10.orig/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
++++ kexec-tools-2.0.10/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+@@ -8,7 +8,11 @@ int machine_verify_elf_rel(struct mem_eh
+ if (ehdr->ei_data != ELFDATA2LSB) {
+ return 0;
+ }
++#ifdef __ILP32__
++ if (ehdr->ei_class != ELFCLASS32) {
++#else
+ if (ehdr->ei_class != ELFCLASS64) {
++#endif
+ return 0;
+ }
+ if (ehdr->e_machine != EM_X86_64) {
+Index: kexec-tools-2.0.10/kexec/kexec-syscall.h
+===================================================================
+--- kexec-tools-2.0.10.orig/kexec/kexec-syscall.h
++++ kexec-tools-2.0.10/kexec/kexec-syscall.h
+@@ -31,8 +31,12 @@
+ #define __NR_kexec_load 268
+ #endif
+ #ifdef __x86_64__
++#ifdef __ILP32__
++#define __NR_kexec_load 528
++#else
+ #define __NR_kexec_load 246
+ #endif
++#endif
+ #ifdef __s390x__
+ #define __NR_kexec_load 277
+ #endif
+Index: kexec-tools-2.0.10/purgatory/arch/x86_64/Makefile
+===================================================================
+--- kexec-tools-2.0.10.orig/purgatory/arch/x86_64/Makefile
++++ kexec-tools-2.0.10/purgatory/arch/x86_64/Makefile
+@@ -23,4 +23,6 @@ x86_64_PURGATORY_SRCS += purgatory/arch/
+ x86_64_PURGATORY_SRCS += purgatory/arch/i386/vga.c
+ x86_64_PURGATORY_SRCS += purgatory/arch/i386/pic.c
+
+-x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large
++ifeq ($(SUBARCH),64)
++ x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large
++endif
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch
new file mode 100644
index 0000000..c3b2071
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch
@@ -0,0 +1,34 @@
+From 709dfe457c07aa0275f3da14634cbce5cf1029dc Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Thu, 19 Apr 2018 19:26:53 +0200
+Subject: [PATCH 3/3] powerpc/purgatory: Makefile: remove unknown flags for
+ powerpc
+
+Fix
+
+ powerpc-oe-linux-musl-ld: unrecognised emulation mode: soft-float
+ Supported emulations: elf32ppclinux elf32ppc elf32ppcsim elf32lppclinux
+ elf32lppc elf32lppcsim elf64ppc elf64lppc
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+---
+ purgatory/arch/ppc/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/purgatory/arch/ppc/Makefile b/purgatory/arch/ppc/Makefile
+index c85c58a..cd44a16 100644
+--- a/purgatory/arch/ppc/Makefile
++++ b/purgatory/arch/ppc/Makefile
+@@ -7,7 +7,7 @@ ppc_PURGATORY_SRCS += purgatory/arch/ppc/misc.S
+ ppc_PURGATORY_SRCS += purgatory/arch/ppc/purgatory-ppc.c
+ ppc_PURGATORY_SRCS += purgatory/arch/ppc/console-ppc.c
+
+-ppc_PURGATORY_EXTRA_CFLAGS += -msoft-float
++#ppc_PURGATORY_EXTRA_CFLAGS += -msoft-float
+
+ dist += purgatory/arch/ppc/Makefile $(ppc_PURGATORY_SRCS) \
+ purgatory/arch/ppc/purgatory-ppc.h purgatory/arch/ppc/ppc_asm.h
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch
new file mode 100644
index 0000000..dc97d93
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch
@@ -0,0 +1,35 @@
+From b19b68eab567aa534cf8dec79fe18e3dc0e14043 Mon Sep 17 00:00:00 2001
+From: Quanyang Wang <quanyang.wang@windriver.com>
+Date: Tue, 16 Jun 2015 12:59:57 +0800
+Subject: [PATCH] powerpc: change the memory size limit
+
+When run "kexec" in powerpc board, the kexec has a limit that
+the kernel text and bss size must be less than 24M. But now
+some kernel size exceed the limit. So we need to change the limit,
+else will get the error log as below:
+
+my_load:669: do
+Could not find a free area of memory of 0x12400 bytes...
+Could not find a free area of memory of 0x13000 bytes...
+locate_hole failed
+
+Upstream-Status: Pending
+
+Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com>
+---
+ kexec/arch/ppc/kexec-ppc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: kexec-tools-2.0.10/kexec/arch/ppc/kexec-ppc.h
+===================================================================
+--- kexec-tools-2.0.10.orig/kexec/arch/ppc/kexec-ppc.h
++++ kexec-tools-2.0.10/kexec/arch/ppc/kexec-ppc.h
+@@ -42,7 +42,7 @@ void dol_ppc_usage(void);
+ * During inital setup the kernel does not map the whole memory but a part of
+ * it. On Book-E that is 64MiB, 601 24MiB or 256MiB (if possible).
+ */
+-#define KERNEL_ACCESS_TOP (24 * 1024 * 1024)
++#define KERNEL_ACCESS_TOP (36 * 1024 * 1024)
+
+ /* boot block version 17 as defined by the linux kernel */
+ struct bootblock {
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch
new file mode 100644
index 0000000..0d0ed23
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch
@@ -0,0 +1,30 @@
+From 5f47c30759684cea9a7a409646686c1a358b78ac Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 11 Apr 2018 22:51:05 +0200
+Subject: [PATCH] replace basename() with sscanf()
+
+klibc lacks basename()
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/arch/i386/x86-linux-setup.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
+index 6c7d260..7850083 100644
+--- a/kexec/arch/i386/x86-linux-setup.c
++++ b/kexec/arch/i386/x86-linux-setup.c
+@@ -304,9 +304,9 @@ static int add_edd_entry(struct x86_linux_param_header *real_mode,
+ memset(edd_info, 0, sizeof(struct edd_info));
+
+ /* extract the device number */
+- if (sscanf(basename(sysfs_name), "int13_dev%hhx", &devnum) != 1) {
++ if (sscanf(strrchr(sysfs_name,'/') + 1, "int13_dev%hhx", &devnum) != 1) {
+ fprintf(stderr, "Invalid format of int13_dev dir "
+- "entry: %s\n", basename(sysfs_name));
++ "entry: %s\n", strrchr(sysfs_name,'/') + 1);
+ return -1;
+ }
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch
new file mode 100644
index 0000000..1c471f5
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch
@@ -0,0 +1,30 @@
+From 9de68ec5af8db2eff352f12da28145fe5e96244d Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 11 Apr 2018 22:51:05 +0200
+Subject: [PATCH] do not build test
+
+The purpose of this recipe is to build the smallest
+binaries. kexek klibc-static for armv5 is around 86 KiB
+
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index fb01134..440730d 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -173,8 +173,8 @@ PSRCS:=$(foreach s, $(SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s))
+ PGSRCS:=$(foreach s, $(GENERATED_SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s))
+
+ MAN_PAGES:=$(KEXEC_MANPAGE) $(VMCORE_DMESG_MANPAGE)
+-BINARIES_i386:=$(KEXEC_TEST)
+-BINARIES_x86_64:=$(KEXEC_TEST)
++#BINARIES_i386:=$(KEXEC_TEST)
++#BINARIES_x86_64:=$(KEXEC_TEST)
+ BINARIES:=$(KEXEC) $(VMCORE_DMESG) $(BINARIES_$(ARCH))
+
+ UNINSTALL_KDUMP = $(sbindir)/kdump
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch
new file mode 100644
index 0000000..493f298
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch
@@ -0,0 +1,36 @@
+From a992ee014efacdc98d5658be9930dcab0eaadfd7 Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 11 Apr 2018 22:51:04 +0200
+Subject: [PATCH] i386: replace with our io.h
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ purgatory/arch/i386/pic.c | 2 +-
+ purgatory/arch/i386/vga.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/purgatory/arch/i386/pic.c b/purgatory/arch/i386/pic.c
+index c23c459..c5f7046 100644
+--- a/purgatory/arch/i386/pic.c
++++ b/purgatory/arch/i386/pic.c
+@@ -16,7 +16,7 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+-#include <sys/io.h>
++#include "include/arch/io.h"
+ #include <purgatory.h>
+ #include "purgatory-x86.h"
+
+diff --git a/purgatory/arch/i386/vga.c b/purgatory/arch/i386/vga.c
+index e65976c..d079d96 100644
+--- a/purgatory/arch/i386/vga.c
++++ b/purgatory/arch/i386/vga.c
+@@ -1,4 +1,4 @@
+-#include <sys/io.h>
++#include "include/arch/io.h"
+ #include <purgatory.h>
+ #include "purgatory-x86.h"
+
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch
new file mode 100644
index 0000000..2f0ad2e
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch
@@ -0,0 +1,43 @@
+From 423c3f6f41fe04f4512e2a97a130f072d53dd4cf Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 11 Apr 2018 22:51:05 +0200
+Subject: [PATCH] x86-linux-setup.c: replace vfscanf() with vsscanf()
+
+klibc lacks vfscanf()
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/arch/i386/x86-linux-setup.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
+index 7850083..e190356 100644
+--- a/kexec/arch/i386/x86-linux-setup.c
++++ b/kexec/arch/i386/x86-linux-setup.c
+@@ -200,6 +200,8 @@ static int file_scanf(const char *dir, const char *file, const char *scanf_line,
+ FILE *fp;
+ int retno;
+ char filename[PATH_MAX];
++ long line_size = MAX_LINE;
++ char *line;
+
+ snprintf(filename, PATH_MAX, "%s/%s", dir, file);
+ filename[PATH_MAX-1] = 0;
+@@ -210,7 +212,14 @@ static int file_scanf(const char *dir, const char *file, const char *scanf_line,
+ }
+
+ va_start(argptr, scanf_line);
+- retno = vfscanf(fp, scanf_line, argptr);
++
++ line = xmalloc(sizeof(line) * line_size);
++ while(fgets(line, sizeof(line), fp) != NULL ) {
++ line_size += MAX_LINE;
++ line = xrealloc(line,line_size);
++ }
++ retno = vsscanf(line, scanf_line, argptr);
++
+ va_end(argptr);
+
+ fclose(fp);
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb
deleted file mode 100644
index 2e27033..0000000
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb
+++ /dev/null
@@ -1,69 +0,0 @@
-# the binaries are statically linked against klibc
-SUMMARY = "Kexec tools, statically compiled against klibc"
-AUTHOR = "Eric Biederman"
-HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
-SECTION = "kernel/userland"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \
- file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09"
-DEPENDS = "zlib xz"
-
-PR = "r1"
-
-inherit klibc autotools
-
-FILESPATH =. "${FILE_DIRNAME}/kexec-tools-${PV}:"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz"
-
-SRC_URI += " \
- file://kexec-elf-rel.patch \
- file://kexec-syscall.patch \
- file://cflags_static.patch \
- file://ifdown_errno.patch \
- file://purgatory_flags.patch \
- file://purgatory_string.patch \
- file://sha256.patch \
- file://sysconf_nrprocessors.patch \
- file://fix-out-of-tree-build.patch \
- file://0001-Adjust-the-order-of-headers-to-fix-build-for-musl.patch \
- "
-
-SRC_URI[md5sum] = "92eff93b097475b7767f8c98df84408a"
-SRC_URI[sha256sum] = "09e180ff36dee087182cdc939ba6c6917b6adbb5fc12d589f31fd3659b6471f2"
-
-SRC_URI_append_arm = " file://arm_crashdump.patch"
-SRC_URI_append_powerpc = " file://ppc__lshrdi3.patch"
-SRC_URI_append_x86 = " file://x86_sys_io.patch file://x86_basename.patch file://x86_vfscanf.patch file://x86_kexec_test.patch"
-SRC_URI_append_x86-64 = " file://x86_sys_io.patch file://x86_basename.patch file://x86_vfscanf.patch file://x86_kexec_test.patch"
-
-S = "${WORKDIR}/kexec-tools-${PV}"
-
-EXTRA_OECONF += "--without-zlib --without-lzma --without-xen"
-
-CFLAGS += "-I${STAGING_DIR_HOST}${libdir}/klibc/include -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
-CFLAGS_x86-64 += "-I${STAGING_DIR_HOST}${libdir}/klibc/include -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64"
-
-do_compile_prepend() {
- # Remove the prepackaged config.h from the source tree as it overrides
- # the same file generated by configure and placed in the build tree
- rm -f ${S}/include/config.h
-
- # Remove the '*.d' file to make sure the recompile is OK
- for dep in `find ${B} -type f -name '*.d'`; do
- dep_no_d="`echo $dep | sed 's#.d$##'`"
- # Remove file.d when there is a file.o
- if [ -f "$dep_no_d.o" ]; then
- rm -f $dep
- fi
- done
-}
-
-PACKAGES =+ "kexec-klibc kdump-klibc"
-
-FILES_kexec-klibc = "${sbindir}/kexec"
-FILES_kdump-klibc = "${sbindir}/kdump"
-
-INSANE_SKIP_${PN} = "arch"
-
-COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)'
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
new file mode 100644
index 0000000..25f5da4
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
@@ -0,0 +1,94 @@
+# the binaries are statically linked against klibc
+SUMMARY = "Kexec tools, statically compiled against klibc"
+AUTHOR = "Eric Biederman"
+HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
+SECTION = "kernel/userland"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \
+ file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09"
+PV = "2.0.17+git${SRCPV}"
+
+DEPENDS = "zlib xz"
+
+inherit klibc autotools
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git"
+SRCREV = "b9de21ef51a7ceab7122a707c188602eae22c4ee"
+
+BUILD_PATCHES = "file://0001-force-static-build.patch \
+ file://0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch"
+
+KLIBC_PATCHES += " \
+ file://0003-kexec-elf-rel-use-our-elf.h.patch \
+ file://0004-kexec-elf-exec.c-replace-with-our-err.h.patch \
+ file://0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch \
+ file://0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch \
+ file://0007-kexec.c-add-guard-around-ENOTSUP.patch \
+ file://0008-kexec.c-replace-mising-BLKGETSIZE64.patch \
+ file://0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch \
+ file://0010-fs2dt.c-work-around-missing-getline.patch \
+ file://0011-purgatory-Makefile-adapt-to-klcc.patch \
+ file://0012-purgatory-string.c-avoid-inclusion-of-string.h.patch \
+ file://0013-sha256.h-avoid-inclusion-of-sys-types.h.patch \
+ file://0014-add-if_nameindex-from-musl.patch \
+ file://0015-vmcore-dmesg-fix-warning.patch"
+
+WARNING_FIXES = ""
+FROM_OE_CORE = "file://arm_crashdump-fix-buffer-align.patch \
+ file://powerpc_change-the-memory-size-limit.patch \
+ file://kexec-x32.patch"
+
+SRC_URI += "${BUILD_PATCHES} ${KLIBC_PATCHES} ${WARNING_FIXES} ${FROM_OE_CORE}"
+
+SRC_URI_append_arm = " file://arm_crashdump.patch"
+
+SRC_URI_append_x86 = " file://x86_sys_io.patch file://x86_basename.patch \
+ file://x86_vfscanf.patch file://x86_kexec_test.patch"
+
+SRC_URI_append_x86-64 = " file://x86_sys_io.patch file://x86_basename.patch \
+ file://x86_vfscanf.patch file://x86_kexec_test.patch"
+
+SRC_URI_append_aarch64 = " file://arm64_kexec-image-header.h-add-missing-le64toh.patch \
+ file://arm64-crashdump-arm64.c-fix-warning.patch \
+ file://arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch"
+
+SRC_URI_append_powerpc = " file://powerpc-purgatory-Makefile-remove-unknown-flags.patch"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "--without-zlib --without-lzma --without-xen"
+
+# fix purgatory/printf.c:2:10: fatal error: limits.h: No such file or directory
+# fix include/limits.h:42:10: fatal error: bitsize/limits.h: No such file or directory
+COMMON_CFLAGS += "-O2 -I${STAGING_DIR_HOST}${libdir}/klibc/include -I${S}/purgatory/include"
+CFLAGS_x86_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
+CFLAGS_x86-64_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64"
+CFLAGS_arm_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
+CFLAGS_aarch64_append = "${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64"
+CFLAGS_mips_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
+CFLAGS_mips64_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64"
+CFLAGS_powerpc_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
+
+do_compile_prepend() {
+ # Remove the prepackaged config.h from the source tree as it overrides
+ # the same file generated by configure and placed in the build tree
+ rm -f ${S}/include/config.h
+
+ # Remove the '*.d' file to make sure the recompile is OK
+ for dep in `find ${B} -type f -name '*.d'`; do
+ dep_no_d="`echo $dep | sed 's#.d$##'`"
+ # Remove file.d when there is a file.o
+ if [ -f "$dep_no_d.o" ]; then
+ rm -f $dep
+ fi
+ done
+}
+
+PACKAGES =+ "kexec-klibc vmcore-dmesg-klibc"
+
+FILES_kexec-klibc = "${sbindir}/kexec"
+FILES_vmcore-dmesg-klibc = "${sbindir}/vmcore-dmesg"
+
+INSANE_SKIP_${PN} = "arch"
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)'
diff --git a/meta-openembedded/meta-multimedia/README b/meta-openembedded/meta-multimedia/README
index 20f4fb8..050392d 100644
--- a/meta-openembedded/meta-multimedia/README
+++ b/meta-openembedded/meta-multimedia/README
@@ -1,19 +1,19 @@
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: thud
revision: HEAD
URI: git://github.com/openembedded/meta-oe.git
layers: meta-oe
-branch: master
+branch: thud
revision: HEAD
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-multimedia]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-multimedia][thud]' in the subject'
When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-multimedia][PATCH
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-multimedia][thud][PATCH
You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
-Layer maintainer: Andreas Müller <schnitzeltony@googlemail.com>
+Thud maintainer: Armin Kuster <akuster808@gmail.com>
diff --git a/meta-openembedded/meta-multimedia/conf/layer.conf b/meta-openembedded/meta-multimedia/conf/layer.conf
index a1dfed4..e2a7701 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 openembedded-layer"
+LAYERDEPENDS_multimedia-layer = "core"
-LAYERSERIES_COMPAT_multimedia-layer = "sumo"
+LAYERSERIES_COMPAT_multimedia-layer = "thud"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb
index f13f5ce..21331ff 100644
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb
@@ -8,7 +8,7 @@
LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 gstreamer1.0-plugins-base ossp-uuid libgee libsoup-2.4 libmediaart-2.0 libunistring sqlite3 intltool-native"
+DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 gstreamer1.0-plugins-base libgee libsoup-2.4 libmediaart-2.0 libunistring sqlite3 intltool-native"
RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info"
RRECOMMENDS_${PN} = "rygel-plugin-media-export"
diff --git a/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch b/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch
new file mode 100644
index 0000000..d3d89e3
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch
@@ -0,0 +1,26 @@
+From a372fe467495a674ad6244b67e83dfbfa8455f51 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 13:54:32 -0700
+Subject: [PATCH] include sys/sysmacros.h for major/minor definitions
+
+csctapi/ifd_db2com.c:27: undefined reference to `minor'
+collect2: error: ld returned 1 exit status
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ globals.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/globals.h b/globals.h
+index bd12244..9e10225 100644
+--- a/globals.h
++++ b/globals.h
+@@ -36,6 +36,7 @@
+ #include <termios.h>
+ #include <inttypes.h>
+ #include <sys/utsname.h>
++#include <sys/sysmacros.h>
+
+ /*
+ * The following hack is taken from Linux: include/linux/kconfig.h
diff --git a/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch b/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch
deleted file mode 100644
index 179d04a..0000000
--- a/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Upstream-Status: Backport
-http://www.streamboard.tv/oscam/changeset/10068
-http://www.streamboard.tv/oscam/changeset/10070
-
-Index: /CMakeLists.txt
-===================================================================
---- a/CMakeLists.txt (revision 10067)
-+++ b/CMakeLists.txt (revision 10068)
-@@ -625,8 +625,8 @@
- list(GET GCC_VERSION_COMPONENTS 0 GCC_MINOR)
- add_definitions ("-W -Wall ")
-- set (CMAKE_C_FLAGS "-Wall -O2")
-- set (CMAKE_CXX_FLAGS "-Wall -O2")
-- set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb")
-- set (CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
-+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2")
-+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2")
-+ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb")
-+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb")
- endif (CMAKE_COMPILER_IS_GNUCC)
- # some optimisations
-Index: /csctapi/CMakeLists.txt
-===================================================================
---- a/csctapi/CMakeLists.txt (revision 10069)
-+++ b/csctapi/CMakeLists.txt (revision 10070)
-@@ -6,8 +6,8 @@
- list(GET GCC_VERSION_COMPONENTS 0 GCC_MINOR)
- add_definitions ("-W -Wall ")
-- set (CMAKE_C_FLAGS "-Wall -O2")
-- set (CMAKE_CXX_FLAGS "-Wall -O2")
-- set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb")
-- set (CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
-+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2")
-+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2")
-+ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb")
-+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb")
- endif (CMAKE_COMPILER_IS_GNUCC)
- # Mac extra removes to avoid ranlib warnings in some situations
diff --git a/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb b/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
index cac517f..a8aec11 100644
--- a/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
+++ b/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
@@ -4,12 +4,12 @@
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "libusb1 openssl pcsc-lite"
+DEPENDS = "libusb1 openssl10 pcsc-lite"
SRC_URI = "svn://www.streamboard.tv/svn/oscam;module=trunk;protocol=http \
- file://respect-cflags.patch \
-"
-SRCREV = "9164"
+ file://0001-include-sys-sysmacros.h-for-major-minor-definitions.patch \
+ "
+SRCREV = "11431"
PV = "1.10+${SRCPV}"
S = "${WORKDIR}/trunk"
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/jsonschemabuilder-native.bb b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/jsonschemabuilder-native.bb
deleted file mode 100644
index fdb7699..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/jsonschemabuilder-native.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Kodi Media Center"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://JsonSchemaBuilder.cpp;beginline=2;endline=18;md5=1f67721215c03f66545390f6e45b99c7"
-
-SRCREV = "661dd08d221f5b2bf509a696a6aca5ee7d45bb27"
-
-PV = "17.1+gitr${SRCPV}"
-SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Krypton"
-
-inherit autotools-brokensep gettext native
-
-S = "${WORKDIR}/git/tools/depends/native/JsonSchemaBuilder/src"
-
-do_compile_prepend() {
- for i in $(find . -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
- done
-
- for i in $(find . -name "*.mak*" -o -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
- done
-}
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-Fix-file_Emu-on-musl.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-Fix-file_Emu-on-musl.patch
deleted file mode 100644
index 20b6377..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-Fix-file_Emu-on-musl.patch
+++ /dev/null
@@ -1,496 +0,0 @@
-From 7ae4fcf290ffb0b76374efafeaee575456ac9023 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 6 Nov 2016 23:08:27 -0800
-Subject: [PATCH 01/10] Fix file_Emu on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- xbmc/cores/DllLoader/exports/emu_msvcrt.cpp | 28 ++--
- xbmc/cores/DllLoader/exports/emu_msvcrt.h | 2 +-
- .../DllLoader/exports/util/EmuFileWrapper.cpp | 172 +++++++++------------
- xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h | 27 ++--
- xbmc/cores/DllLoader/exports/wrapper.c | 4 +-
- 5 files changed, 99 insertions(+), 134 deletions(-)
-
-diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
-index ab14942..a39014a 100644
---- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
-+++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
-@@ -51,6 +51,7 @@
- #include <fcntl.h>
- #include <time.h>
- #include <signal.h>
-+#include <paths.h>
- #ifdef TARGET_POSIX
- #include "PlatformDefs.h" // for __stat64
- #include "XFileUtils.h"
-@@ -476,13 +477,10 @@ extern "C"
- EmuFileObject* o = g_emuFileWrapper.GetFileObjectByDescriptor(fd);
- if (o)
- {
-- if(!o->used)
-- return NULL;
--
- int nmode = convert_fmode(mode);
- if( (o->mode & nmode) != nmode)
- CLog::Log(LOGWARNING, "dll_fdopen - mode 0x%x differs from fd mode 0x%x", nmode, o->mode);
-- return &o->file_emu;
-+ return g_emuFileWrapper.GetStreamByFileObject(o);
- }
- else if (!IS_STD_DESCRIPTOR(fd))
- {
-@@ -545,7 +543,7 @@ extern "C"
- return -1;
- }
- object->mode = iMode;
-- return g_emuFileWrapper.GetDescriptorByStream(&object->file_emu);
-+ return g_emuFileWrapper.GetDescriptorByFileObject(object);
- }
- delete pFile;
- return -1;
-@@ -1214,8 +1212,8 @@ extern "C"
- {
- FILE* file = NULL;
- #if defined(TARGET_LINUX) && !defined(TARGET_ANDROID)
-- if (strcmp(filename, MOUNTED) == 0
-- || strcmp(filename, MNTTAB) == 0)
-+ if (strcmp(filename, _PATH_MOUNTED) == 0
-+ || strcmp(filename, _PATH_MNTTAB) == 0)
- {
- CLog::Log(LOGINFO, "%s - something opened the mount file, let's hope it knows what it's doing", __FUNCTION__);
- return fopen(filename, mode);
-@@ -1622,7 +1620,7 @@ extern "C"
- int ret;
-
- ret = dll_fgetpos64(stream, &tmpPos);
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
- *pos = (fpos_t)tmpPos;
- #else
- pos->__pos = (off_t)tmpPos.__pos;
-@@ -1635,8 +1633,9 @@ extern "C"
- CFile* pFile = g_emuFileWrapper.GetFileXbmcByStream(stream);
- if (pFile != NULL)
- {
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-- *pos = pFile->GetPosition();
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+ uint64_t *ppos = (uint64_t *) pos;
-+ *ppos = pFile->GetPosition();
- #else
- pos->__pos = pFile->GetPosition();
- #endif
-@@ -1657,8 +1656,9 @@ extern "C"
- int fd = g_emuFileWrapper.GetDescriptorByStream(stream);
- if (fd >= 0)
- {
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-- if (dll_lseeki64(fd, *pos, SEEK_SET) >= 0)
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+ const uint64_t *ppos = (const uint64_t *) pos;
-+ if (dll_lseeki64(fd, *ppos, SEEK_SET) >= 0)
- #else
- if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0)
- #endif
-@@ -1674,7 +1674,7 @@ extern "C"
- {
- // it might be something else than a file, or the file is not emulated
- // let the operating system handle it
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
- return fsetpos(stream, pos);
- #else
- return fsetpos64(stream, pos);
-@@ -1690,7 +1690,7 @@ extern "C"
- if (fd >= 0)
- {
- fpos64_t tmpPos;
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
- tmpPos= *pos;
- #else
- tmpPos.__pos = (off64_t)(pos->__pos);
-diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.h b/xbmc/cores/DllLoader/exports/emu_msvcrt.h
-index 3294d9a..c7c483f 100644
---- a/xbmc/cores/DllLoader/exports/emu_msvcrt.h
-+++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.h
-@@ -24,7 +24,7 @@
- #define _onexit_t void*
- #endif
-
--#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- typedef off_t __off_t;
- typedef int64_t off64_t;
- typedef off64_t __off64_t;
-diff --git a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp
-index 8927d41..e9a2ab0 100644
---- a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp
-+++ b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp
-@@ -52,16 +52,7 @@ constexpr bool isValidFilePtr(FILE* f)
- }
- CEmuFileWrapper::CEmuFileWrapper()
- {
-- // since we always use dlls we might just initialize it directly
-- for (int i = 0; i < MAX_EMULATED_FILES; i++)
-- {
-- memset(&m_files[i], 0, sizeof(EmuFileObject));
-- m_files[i].used = false;
--#if defined(TARGET_WINDOWS) && (_MSC_VER >= 1900)
-- m_files[i].file_emu._Placeholder = new kodi_iobuf();
--#endif
-- FileDescriptor(m_files[i].file_emu)->_file = -1;
-- }
-+ memset(m_files, 0, sizeof(m_files));
- }
-
- CEmuFileWrapper::~CEmuFileWrapper()
-@@ -73,29 +64,7 @@ void CEmuFileWrapper::CleanUp()
- {
- CSingleLock lock(m_criticalSection);
- for (int i = 0; i < MAX_EMULATED_FILES; i++)
-- {
-- if (m_files[i].used)
-- {
-- m_files[i].file_xbmc->Close();
-- delete m_files[i].file_xbmc;
--
-- if (m_files[i].file_lock)
-- {
-- delete m_files[i].file_lock;
-- m_files[i].file_lock = nullptr;
-- }
--#if !defined(TARGET_WINDOWS)
-- //Don't memset on Windows as it overwrites our pointer
-- memset(&m_files[i], 0, sizeof(EmuFileObject));
--#endif
-- m_files[i].used = false;
-- FileDescriptor(m_files[i].file_emu)->_file = -1;
-- }
--#if defined(TARGET_WINDOWS) && (_MSC_VER >= 1900)
-- delete static_cast<kodi_iobuf*>(m_files[i].file_emu._Placeholder);
-- m_files[i].file_emu._Placeholder = nullptr;
--#endif
-- }
-+ UnRegisterFileObject(&m_files[i], true);
- }
-
- EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile)
-@@ -106,13 +75,11 @@ EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile)
-
- for (int i = 0; i < MAX_EMULATED_FILES; i++)
- {
-- if (!m_files[i].used)
-+ if (!m_files[i].file_xbmc)
- {
- // found a free location
- object = &m_files[i];
-- object->used = true;
- object->file_xbmc = pFile;
-- FileDescriptor(object->file_emu)->_file = (i + FILE_WRAPPER_OFFSET);
- object->file_lock = new CCriticalSection();
- break;
- }
-@@ -121,82 +88,74 @@ EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile)
- return object;
- }
-
--void CEmuFileWrapper::UnRegisterFileObjectByDescriptor(int fd)
-+void CEmuFileWrapper::UnRegisterFileObject(EmuFileObject *object, bool free_file)
-+
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-- if (! (i >= 0 && i < MAX_EMULATED_FILES))
-- return;
-+ if (object && object->file_xbmc)
-+ {
-+ if (object->file_xbmc && free_file)
-+ {
-+ object->file_xbmc->Close();
-+ delete object->file_xbmc;
-+ }
-+ if (object->file_lock)
-+ {
-+ delete object->file_lock;
-+ }
-
-- if (!m_files[i].used)
-- return;
-+ memset(object, 0, sizeof(*object));
-+ }
-+}
-
-+void CEmuFileWrapper::UnRegisterFileObjectByDescriptor(int fd)
-+{
- CSingleLock lock(m_criticalSection);
--
-- // we assume the emulated function alreay deleted the CFile object
-- if (m_files[i].file_lock)
-- {
-- delete m_files[i].file_lock;
-- m_files[i].file_lock = nullptr;
-- }
--#if !defined(TARGET_WINDOWS)
-- //Don't memset on Windows as it overwrites our pointer
-- memset(&m_files[i], 0, sizeof(EmuFileObject));
--#endif
-- m_files[i].used = false;
-- FileDescriptor(m_files[i].file_emu)->_file = -1;
-+ UnRegisterFileObject(GetFileObjectByDescriptor(fd), false);
- }
-
- void CEmuFileWrapper::UnRegisterFileObjectByStream(FILE* stream)
- {
- if (isValidFilePtr(stream))
- {
-- return UnRegisterFileObjectByDescriptor(FileDescriptor(*stream)->_file);
-+ CSingleLock lock(m_criticalSection);
-+ UnRegisterFileObject(GetFileObjectByStream(stream), false);
- }
- }
-
- void CEmuFileWrapper::LockFileObjectByDescriptor(int fd)
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-- if (i >= 0 && i < MAX_EMULATED_FILES)
-+ EmuFileObject* object = GetFileObjectByDescriptor(fd);
-+ if (object && object->file_xbmc)
- {
-- if (m_files[i].used)
-- {
-- m_files[i].file_lock->lock();
-- }
-+ object->file_lock->lock();
- }
- }
-
- bool CEmuFileWrapper::TryLockFileObjectByDescriptor(int fd)
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-- if (i >= 0 && i < MAX_EMULATED_FILES)
-+ EmuFileObject* object = GetFileObjectByDescriptor(fd);
-+ if (object && object->file_xbmc)
- {
-- if (m_files[i].used)
-- {
-- return m_files[i].file_lock->try_lock();
-- }
-+ return object->file_lock->try_lock();
- }
- return false;
- }
-
- void CEmuFileWrapper::UnlockFileObjectByDescriptor(int fd)
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-- if (i >= 0 && i < MAX_EMULATED_FILES)
-+ EmuFileObject* object = GetFileObjectByDescriptor(fd);
-+ if (object && object->file_xbmc)
- {
-- if (m_files[i].used)
-- {
-- m_files[i].file_lock->unlock();
-- }
-+ object->file_lock->unlock();
- }
- }
-
- EmuFileObject* CEmuFileWrapper::GetFileObjectByDescriptor(int fd)
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-+ int i = fd - 0x7000000;
- if (i >= 0 && i < MAX_EMULATED_FILES)
- {
-- if (m_files[i].used)
-+ if (m_files[i].file_xbmc)
- {
- return &m_files[i];
- }
-@@ -204,20 +163,39 @@ EmuFileObject* CEmuFileWrapper::GetFileObjectByDescriptor(int fd)
- return nullptr;
- }
-
-+int CEmuFileWrapper::GetDescriptorByFileObject(EmuFileObject *object)
-+{
-+ int i = object - m_files;
-+ if (i >= 0 && i < MAX_EMULATED_FILES)
-+ {
-+ return 0x7000000 + i;
-+ }
-+
-+ return -1;
-+}
-+
- EmuFileObject* CEmuFileWrapper::GetFileObjectByStream(FILE* stream)
- {
-- if (isValidFilePtr(stream))
-+ EmuFileObject *object = (EmuFileObject*) stream;
-+ if (object >= &m_files[0] || object < &m_files[MAX_EMULATED_FILES])
- {
-- return GetFileObjectByDescriptor(FileDescriptor(*stream)->_file);
-+ if (object->file_xbmc)
-+ {
-+ return object;
-+ }
- }
-+ return NULL;
-+}
-
-- return nullptr;
-+FILE* CEmuFileWrapper::GetStreamByFileObject(EmuFileObject *object)
-+{
-+ return (FILE*) object;
- }
-
- XFILE::CFile* CEmuFileWrapper::GetFileXbmcByDescriptor(int fd)
- {
- auto object = GetFileObjectByDescriptor(fd);
-- if (object != nullptr && object->used)
-+ if (object != nullptr)
- {
- return object->file_xbmc;
- }
-@@ -228,8 +206,9 @@ XFILE::CFile* CEmuFileWrapper::GetFileXbmcByStream(FILE* stream)
- {
- if (isValidFilePtr(stream))
- {
-- auto object = GetFileObjectByDescriptor(FileDescriptor(*stream)->_file);
-- if (object != nullptr && object->used)
-+ EmuFileObject* object = GetFileObjectByStream(stream);
-+ if (object != NULL)
-+
- {
- return object->file_xbmc;
- }
-@@ -239,32 +218,21 @@ XFILE::CFile* CEmuFileWrapper::GetFileXbmcByStream(FILE* stream)
-
- int CEmuFileWrapper::GetDescriptorByStream(FILE* stream)
- {
-- if (isValidFilePtr(stream))
-- {
-- int i = FileDescriptor(*stream)->_file - FILE_WRAPPER_OFFSET;
-- if (i >= 0 && i < MAX_EMULATED_FILES)
-- {
-- return i + FILE_WRAPPER_OFFSET;
-- }
-- }
-- return -1;
-+ return GetDescriptorByFileObject(GetFileObjectByStream(stream));
- }
-
- FILE* CEmuFileWrapper::GetStreamByDescriptor(int fd)
- {
-- auto object = GetFileObjectByDescriptor(fd);
-- if (object != nullptr && object->used)
-- {
-- return &object->file_emu;
-- }
-- return nullptr;
-+ return GetStreamByFileObject(GetFileObjectByDescriptor(fd));
-+}
-+
-+bool CEmuFileWrapper::DescriptorIsEmulatedFile(int fd)
-+{
-+ return GetFileObjectByDescriptor(fd) != NULL;
- }
-
- bool CEmuFileWrapper::StreamIsEmulatedFile(FILE* stream)
- {
-- if (isValidFilePtr(stream))
-- {
-- return DescriptorIsEmulatedFile(FileDescriptor(*stream)->_file);
-- }
-- return false;
-+ return GetFileObjectByStream(stream) != NULL;
- }
-+
-diff --git a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h
-index 786fa85..311a5cf 100644
---- a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h
-+++ b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h
-@@ -25,14 +25,14 @@
- #include "system.h"
- #include "threads/CriticalSection.h"
-
--#if defined(TARGET_POSIX) && !defined(TARGET_DARWIN) && !defined(TARGET_FREEBSD) && !defined(TARGET_ANDROID) && !defined(__UCLIBC__)
--#define _file _fileno
--#elif defined(__UCLIBC__)
--#define _file __filedes
--#endif
-+//#if defined(TARGET_POSIX) && !defined(TARGET_DARWIN) && !defined(TARGET_FREEBSD) && !defined(TARGET_ANDROID) && !defined(__UCLIBC__)
-+//#define _file _fileno
-+//#elif defined(__UCLIBC__)
-+//#define _file __filedes
-+//#endif
-
- #define MAX_EMULATED_FILES 50
--#define FILE_WRAPPER_OFFSET 0x00000200
-+//#define FILE_WRAPPER_OFFSET 0x00000200
-
- namespace XFILE
- {
-@@ -47,12 +47,9 @@ struct kodi_iobuf {
-
- typedef struct stEmuFileObject
- {
-- FILE file_emu;
- XFILE::CFile* file_xbmc;
- CCriticalSection *file_lock;
- int mode;
-- //Stick this last to avoid 3-7 bytes of padding
-- bool used;
- } EmuFileObject;
-
- class CEmuFileWrapper
-@@ -67,22 +64,22 @@ public:
- void CleanUp();
-
- EmuFileObject* RegisterFileObject(XFILE::CFile* pFile);
-+ void UnRegisterFileObject(EmuFileObject*, bool free_file);
- void UnRegisterFileObjectByDescriptor(int fd);
- void UnRegisterFileObjectByStream(FILE* stream);
- void LockFileObjectByDescriptor(int fd);
- bool TryLockFileObjectByDescriptor(int fd);
- void UnlockFileObjectByDescriptor(int fd);
- EmuFileObject* GetFileObjectByDescriptor(int fd);
-+ int GetDescriptorByFileObject(EmuFileObject*);
- EmuFileObject* GetFileObjectByStream(FILE* stream);
-+ FILE* GetStreamByFileObject(EmuFileObject*);
- XFILE::CFile* GetFileXbmcByDescriptor(int fd);
- XFILE::CFile* GetFileXbmcByStream(FILE* stream);
-- static int GetDescriptorByStream(FILE* stream);
-+ int GetDescriptorByStream(FILE* stream);
- FILE* GetStreamByDescriptor(int fd);
-- static constexpr bool DescriptorIsEmulatedFile(int fd)
-- {
-- return fd >= FILE_WRAPPER_OFFSET && fd < FILE_WRAPPER_OFFSET + MAX_EMULATED_FILES;
-- }
-- static bool StreamIsEmulatedFile(FILE* stream);
-+ bool DescriptorIsEmulatedFile(int fd);
-+ bool StreamIsEmulatedFile(FILE* stream);
- private:
- EmuFileObject m_files[MAX_EMULATED_FILES];
- CCriticalSection m_criticalSection;
-diff --git a/xbmc/cores/DllLoader/exports/wrapper.c b/xbmc/cores/DllLoader/exports/wrapper.c
-index e363662..07825f3 100644
---- a/xbmc/cores/DllLoader/exports/wrapper.c
-+++ b/xbmc/cores/DllLoader/exports/wrapper.c
-@@ -39,13 +39,13 @@
- #endif
- #include <dlfcn.h>
-
--#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- typedef off_t __off_t;
- typedef int64_t off64_t;
- typedef off64_t __off64_t;
- typedef fpos_t fpos64_t;
- #define stat64 stat
--#if defined(TARGET_DARWIN) || defined(TARGET_ANDROID)
-+#if defined(TARGET_DARWIN) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- #define _G_va_list va_list
- #endif
- #endif
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch
deleted file mode 100644
index 12a6c06..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 21524598110e7a55113205dda4bc1a6d5987111c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 9 May 2017 06:41:33 +0000
-Subject: [PATCH] change order of detecting libegl and libgles2
-
-This actually helps building it on rpi/userland
-where libEGL depends on few functions from libGLESv2
-see
-https://www.raspberrypi.org/forums/viewtopic.php?t=7090
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index b9e4240..1ca0297 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -951,8 +951,8 @@ if test "$use_gles" = "yes"; then
- AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
- LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm -lmmal -lmmal_core -lmmal_util -lvcsm"
- else
-- AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
- AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
-+ AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
- fi
- fi
- else
---
-1.9.1
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch
deleted file mode 100644
index 463a5c4..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From ad1977a358319093b305df6d84be6db676ef1e4a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 6 Nov 2016 22:35:16 -0800
-Subject: [PATCH 02/10] Remove FILEWRAP
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- xbmc/utils/posix/PosixInterfaceForCLog.cpp | 6 +-----
- xbmc/utils/posix/PosixInterfaceForCLog.h | 4 +---
- 2 files changed, 2 insertions(+), 8 deletions(-)
-
-Index: git/xbmc/utils/posix/PosixInterfaceForCLog.cpp
-===================================================================
---- git.orig/xbmc/utils/posix/PosixInterfaceForCLog.cpp
-+++ git/xbmc/utils/posix/PosixInterfaceForCLog.cpp
-@@ -29,10 +29,6 @@
- #include "platform/android/activity/XBMCApp.h"
- #endif // TARGET_ANDROID
-
--struct FILEWRAP : public FILE
--{};
--
--
- CPosixInterfaceForCLog::CPosixInterfaceForCLog() :
- m_file(NULL)
- { }
-@@ -52,7 +48,7 @@ bool CPosixInterfaceForCLog::OpenLogFile
- (void)remove(backupOldLogToFilename.c_str()); // if it's failed, try to continue
- (void)rename(logFilename.c_str(), backupOldLogToFilename.c_str()); // if it's failed, try to continue
-
-- m_file = (FILEWRAP*)fopen(logFilename.c_str(), "wb");
-+ m_file = fopen(logFilename.c_str(), "wb");
- if (!m_file)
- return false; // error, can't open log file
-
-Index: git/xbmc/utils/posix/PosixInterfaceForCLog.h
-===================================================================
---- git.orig/xbmc/utils/posix/PosixInterfaceForCLog.h
-+++ git/xbmc/utils/posix/PosixInterfaceForCLog.h
-@@ -34,5 +34,5 @@ public:
- void PrintDebugString(const std::string& debugString);
- static void GetCurrentLocalTime(int& hour, int& minute, int& second, double& millisecond);
- private:
-- FILEWRAP* m_file;
-+ FILE* m_file;
- };
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch
deleted file mode 100644
index 49217a4..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a91a3ba229dc5903935f7dd98dd03bbb4fe5ac1f Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sat, 6 Feb 2016 15:43:01 +0100
-Subject: [PATCH 03/10] configure: don't try to run stuff to find tinyxml
-
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 34fe643..3132dc1 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1043,7 +1043,7 @@ fi
- AC_LANG_PUSH([C++])
- PKG_CHECK_MODULES([TINYXML], [tinyxml >= 2.6.2],
- [INCLUDES="$INCLUDES $TINYXML_CFLAGS"; LIBS="$LIBS $TINYXML_LIBS"],
-- [AC_RUN_IFELSE(
-+ [AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE([[
- #include <stdlib.h>
- #include <tinyxml.h>
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch
deleted file mode 100644
index dc37439..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 49046c1685465a5486fe9e1c04b99c585aab6862 Mon Sep 17 00:00:00 2001
-From: Stefan Saraev <stefan@saraev.ca>
-Date: Wed, 2 Nov 2016 11:28:34 -0700
-Subject: [PATCH 04/10] handle SIGTERM
-
-0. CApplication::Stop cant be trusted. (deadlocks crashes and boo)
-
-so, when shutdown/reboot is requested:
-
-1. save an exit code (for CEC...)
-2. call CPowerManager::{Reboot,PowerDown}
-3. ... then systemd sends TERM and waits xx seconds before sending KILL
-4. CApplication::Stop has xx seconds to save guisettings.xml and boo
-5. CEC thread has xx seconds to switch off after it received OnQuit
-6. addons / pvrmanager / cec / everything else.. are free to deadlock / crash now, we dont care
-7. KILL
-
-Signed-off-by: Stefan Saraev <stefan@saraev.ca>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- xbmc/Application.cpp | 17 ++++++++++++-----
- xbmc/Application.h | 1 +
- xbmc/XBApplicationEx.cpp | 1 +
- xbmc/XBApplicationEx.h | 1 +
- xbmc/platform/posix/main.cpp | 15 +++++++++++++++
- 5 files changed, 30 insertions(+), 5 deletions(-)
-
-diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
-index 100a2f2..fda892d 100644
---- a/xbmc/Application.cpp
-+++ b/xbmc/Application.cpp
-@@ -2426,12 +2426,12 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
- switch (pMsg->dwMessage)
- {
- case TMSG_POWERDOWN:
-- Stop(EXITCODE_POWERDOWN);
-+ SetExitCode(EXITCODE_POWERDOWN);
- g_powerManager.Powerdown();
- break;
-
- case TMSG_QUIT:
-- Stop(EXITCODE_QUIT);
-+ SetExitCode(EXITCODE_QUIT);
- break;
-
- case TMSG_SHUTDOWN:
-@@ -2452,12 +2452,13 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
-
- case TMSG_RESTART:
- case TMSG_RESET:
-- Stop(EXITCODE_REBOOT);
-+ SetExitCode(EXITCODE_REBOOT);
- g_powerManager.Reboot();
- break;
-
- case TMSG_RESTARTAPP:
- #if defined(TARGET_WINDOWS) || defined(TARGET_LINUX)
-+ SetExitCode(EXITCODE_RESTARTAPP);
- Stop(EXITCODE_RESTARTAPP);
- #endif
- break;
-@@ -2881,6 +2882,13 @@ bool CApplication::Cleanup()
- }
- }
-
-+void CApplication::SetExitCode(int exitCode)
-+{
-+ // save it for CEC
-+ m_ExitCode = exitCode;
-+ m_ExitCodeSet = true;
-+}
-+
- void CApplication::Stop(int exitCode)
- {
- try
-@@ -2888,7 +2896,7 @@ void CApplication::Stop(int exitCode)
- m_frameMoveGuard.unlock();
-
- CVariant vExitCode(CVariant::VariantTypeObject);
-- vExitCode["exitcode"] = exitCode;
-+ vExitCode["exitcode"] = m_ExitCode;
- CAnnouncementManager::GetInstance().Announce(System, "xbmc", "OnQuit", vExitCode);
-
- // Abort any active screensaver
-@@ -2922,7 +2930,6 @@ void CApplication::Stop(int exitCode)
-
- m_bStop = true;
- m_AppFocused = false;
-- m_ExitCode = exitCode;
- CLog::Log(LOGNOTICE, "stop all");
-
- // cancel any jobs from the jobmanager
-diff --git a/xbmc/Application.h b/xbmc/Application.h
-index a9d9bf5..e536deb 100644
---- a/xbmc/Application.h
-+++ b/xbmc/Application.h
-@@ -159,6 +159,7 @@ public:
- void StopPVRManager();
- void ReinitPVRManager();
- bool IsCurrentThread() const;
-+ void SetExitCode(int exitCode);
- void Stop(int exitCode);
- void RestartApp();
- void UnloadSkin(bool forReload = false);
-diff --git a/xbmc/XBApplicationEx.cpp b/xbmc/XBApplicationEx.cpp
-index 035aed2..34102f5 100644
---- a/xbmc/XBApplicationEx.cpp
-+++ b/xbmc/XBApplicationEx.cpp
-@@ -46,6 +46,7 @@ CXBApplicationEx::CXBApplicationEx()
- m_bStop = false;
- m_AppFocused = true;
- m_ExitCode = EXITCODE_QUIT;
-+ m_ExitCodeSet = false;
- m_renderGUI = false;
- }
-
-diff --git a/xbmc/XBApplicationEx.h b/xbmc/XBApplicationEx.h
-index 9bc14fa..f696b89 100644
---- a/xbmc/XBApplicationEx.h
-+++ b/xbmc/XBApplicationEx.h
-@@ -42,6 +42,7 @@ public:
- // Variables for timing
- bool m_bStop;
- int m_ExitCode;
-+ bool m_ExitCodeSet;
- bool m_AppFocused;
- bool m_renderGUI;
-
-diff --git a/xbmc/platform/posix/main.cpp b/xbmc/platform/posix/main.cpp
-index a8b64e5..3d80032 100644
---- a/xbmc/platform/posix/main.cpp
-+++ b/xbmc/platform/posix/main.cpp
-@@ -41,12 +41,27 @@
- #include "input/linux/LIRC.h"
- #endif
- #include "platform/XbmcContext.h"
-+#include "Application.h"
-+
-+void xbmc_term_handler(int signum)
-+{
-+ CLog::Log(LOGINFO, "Received SIGTERM...");
-+ if (!g_application.m_ExitCodeSet)
-+ g_application.SetExitCode(EXITCODE_RESTARTAPP);
-+ g_application.Stop(EXITCODE_RESTARTAPP);
-+}
-
- #ifdef __cplusplus
- extern "C"
- #endif
- int main(int argc, char* argv[])
- {
-+ // SIGTERM handler
-+ struct sigaction action;
-+ memset(&action, 0, sizeof(struct sigaction));
-+ action.sa_handler = xbmc_term_handler;
-+ sigaction(SIGTERM, &action, NULL);
-+
- // set up some xbmc specific relationships
- XBMC::Context context;
-
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch
deleted file mode 100644
index ee10c40..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 4d1368d20f04216aec9551d9845b305f96a21015 Mon Sep 17 00:00:00 2001
-From: Stephan Raue <stephan@openelec.tv>
-Date: Mon, 1 Sep 2014 03:16:37 +0200
-Subject: [PATCH 05/10] add support to read frequency output if using intel's
- pstate driver
-
----
- xbmc/utils/CPUInfo.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/xbmc/utils/CPUInfo.cpp b/xbmc/utils/CPUInfo.cpp
-index 5e2ebbd..fd04d5a 100644
---- a/xbmc/utils/CPUInfo.cpp
-+++ b/xbmc/utils/CPUInfo.cpp
-@@ -274,6 +274,8 @@ CCPUInfo::CCPUInfo(void)
- m_fProcTemperature = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); // On Raspberry PIs
-
- m_fCPUFreq = fopen ("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r");
-+ if (m_fCPUFreq == NULL)
-+ m_fCPUFreq = fopen ("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq", "r");
- if (!m_fCPUFreq)
- {
- m_cpuInfoForFreq = true;
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch
deleted file mode 100644
index 08dfac3..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 3d3ec391038c6ee73897a7fab753b11b589de1ed Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 2 Nov 2016 12:39:20 -0700
-Subject: [PATCH 06/10] Disable DVD support
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.in | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 0d70e9b..050c7ca 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -10,8 +10,7 @@ EC_DIRS= \
- tools/EventClients
-
- DVDPCODECS_DIRS= \
-- lib \
-- lib/libdvd
-+ lib
-
- VideoPlayer_ARCHIVES=xbmc/cores/VideoPlayer/VideoPlayer.a \
- xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecs.a \
-@@ -347,7 +346,6 @@ libaddon: exports
- $(MAKE) -C lib/addons/library.xbmc.pvr
- $(MAKE) -C lib/addons/library.kodi.inputstream
- dvdpcodecs: dllloader
-- $(MAKE) -C lib/libdvd
-
- dvdpextcodecs:
-
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch
deleted file mode 100644
index 8fd7ece..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d989cbdb7686c3b95dc749967f89b93e47f955a6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 3 Nov 2016 13:10:00 -0700
-Subject: [PATCH 07/10] Always compile libcpluff as PIC
-
-Fixes errors e.g.
-
-ld: lib/cpluff/libcpluff/.libs/libcpluff.a(pcontrol.o): relocation R_X86_64_PC32 against symbol `cp_stop_plugins' can not be used when making a shared object; recompile with -fPIC
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 3132dc1..ab4eea3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2385,7 +2385,7 @@ XB_CONFIG_MODULE([lib/cpluff], [
- --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
- --host=$host_alias \
- --build=$build_alias \
-- --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
-+ --target=$target_alias --with-pic=yes CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
- #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
- ], [0])
-
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch
deleted file mode 100644
index 9390144..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 51cd8d5f084013360b29fe497193288ebde2f4f9 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Wed, 29 Jul 2015 23:13:33 +0200
-Subject: [PATCH 08/10] kodi-config.cmake: use CMAKE_FIND_ROOT_PATH to fix
- cross-compilation
-
-When cross-compiling, the location at build time of the libraries is
-not the same as the one at run-time. The CMAKE_FIND_ROOT_PATH variable
-is here to handle this difference, so use it in kodi-config.cmake.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- project/cmake/KodiConfig.cmake.in | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/project/cmake/KodiConfig.cmake.in b/project/cmake/KodiConfig.cmake.in
-index c02a680..9d6a566 100644
---- a/project/cmake/KodiConfig.cmake.in
-+++ b/project/cmake/KodiConfig.cmake.in
-@@ -7,10 +7,10 @@ if(NOT @APP_NAME_UC@_PREFIX)
- set(@APP_NAME_UC@_PREFIX @APP_PREFIX@)
- endif()
- if(NOT @APP_NAME_UC@_INCLUDE_DIR)
-- set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@)
-+ set(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@)
- endif()
- if(NOT @APP_NAME_UC@_LIB_DIR)
-- set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@)
-+ set(@APP_NAME_UC@_LIB_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@)
- endif()
- if(NOT @APP_NAME_UC@_DATA_DIR)
- set(@APP_NAME_UC@_DATA_DIR @APP_DATA_DIR@)
-@@ -19,6 +19,7 @@ if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@")
- endif()
- list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake)
-+list(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@ ${CMAKE_FIND_ROOT_PATH}/@APP_DATA_DIR@/cmake)
-
- string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@")
- add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON)
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch
deleted file mode 100644
index f3e739a..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From 8b2bad58585af0f829fb06e19c9bd2b6caf30808 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 6 Nov 2016 11:54:41 -0800
-Subject: [PATCH 09/10] build: Add support for musl triplets
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 12 ++++++------
- m4/xbmc_arch.m4 | 22 +++++++++++-----------
- tools/depends/configure.ac | 12 ++++++------
- 3 files changed, 23 insertions(+), 23 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ab4eea3..925466a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -526,7 +526,7 @@ case $host in
- use_x11=no
- build_shared_lib=yes
- ;;
-- i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="i486-linux"
-@@ -549,7 +549,7 @@ case $host in
- fi
- fi
- ;;
-- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="x86_64-linux"
-@@ -601,17 +601,17 @@ case $host in
- DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
- AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
- ;;
-- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
-+ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="powerpc-linux"
- ;;
-- powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*)
-+ powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*|powerpc64*-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="powerpc64-linux"
- ;;
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="arm"
-@@ -621,7 +621,7 @@ case $host in
- use_gl=no
- USE_STATIC_FFMPEG=1
- ;;
-- aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*)
-+ aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*|aarch64*-*-linux-musl*)
- target_platform=target_linux
- ARCH="aarch64"
- use_arch="aarch64"
-diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
-index d28f263..ff5dc20 100644
---- a/m4/xbmc_arch.m4
-+++ b/m4/xbmc_arch.m4
-@@ -2,10 +2,10 @@ AC_DEFUN([XBMC_SETUP_ARCH_DEFINES],[
-
- # build detection and setup - this is the native arch
- case $build in
-- i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
-- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- i386-*-freebsd*)
-@@ -17,13 +17,13 @@ case $build in
- *86*-apple-darwin*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
- ;;
-- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
-+ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
- ;;
-- powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
-+ powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*|powerpc64-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
- ;;
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- *)
-@@ -33,10 +33,10 @@ esac
-
- # host detection and setup - this is the target arch
- case $host in
-- i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
-- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- i386-*-freebsd*)
-@@ -54,16 +54,16 @@ case $host in
- powerpc-apple-darwin*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
- ;;
-- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
-+ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
- ;;
-- powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*)
-+ powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*|powerpc64*-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
- ;;
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*|aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*|aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*|aarch64*-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
-- mips*-*-linux-gnu*|mips*-*-linux-uclibc*)
-+ mips*-*-linux-gnu*|mips*-*-linux-uclibc*|mips*-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- *-*linux-android*)
-diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac
-index f438e5d..409f4d7 100644
---- a/tools/depends/configure.ac
-+++ b/tools/depends/configure.ac
-@@ -120,13 +120,13 @@ platform_cc=gcc
- platform_cxx=g++
-
- case $build in
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*)
- build_os="linux"
- ;;
-- *i686*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ *i686*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- build_os="linux"
- ;;
-- x86_64*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- build_os="linux"
- ;;
- *darwin*)
-@@ -186,7 +186,7 @@ case $host in
- #android builds are always cross
- cross_compiling="yes"
- ;;
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*)
- if test "$use_platform" = "auto"; then
- if test "x$use_cpu" = "xauto"; then
- use_cpu=$host_cpu
-@@ -210,12 +210,12 @@ case $host in
- platform_os="linux"
- fi
- ;;
-- *i686*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ *i686*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- use_cpu=$host_cpu
- use_toolchain="${use_toolchain:-/usr}"
- platform_os="linux"
- ;;
-- x86_64*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- use_cpu=$host_cpu
- use_toolchain="${use_toolchain:-/usr}"
- platform_cflags="-fPIC -DPIC"
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch
deleted file mode 100644
index e34a5b7..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 55233024648b5673dbf223586968e71cc4c70711 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 16 Nov 2016 18:49:36 -0800
-Subject: [PATCH 10/10] RssReader: Fix compiler warning comparing pointer to
- zero
-
-Clang finds this warning
-RssReader.cpp:272:19: error: ordered comparison between pointer and zero ('TiXmlElement *' and 'int')
- while (itemNode > 0)
- ~~~~~~~~ ^ ~
-RssReader.cpp:276:22: error: ordered comparison between pointer and zero ('TiXmlNode *' and 'int')
- while (childNode > 0)
- ~~~~~~~~~ ^ ~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- xbmc/utils/RssReader.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xbmc/utils/RssReader.cpp b/xbmc/utils/RssReader.cpp
-index 9186f56..2494dc8 100644
---- a/xbmc/utils/RssReader.cpp
-+++ b/xbmc/utils/RssReader.cpp
-@@ -269,11 +269,11 @@ void CRssReader::GetNewsItems(TiXmlElement* channelXmlNode, int iFeed)
- if (m_tagSet.empty())
- AddTag("title");
-
-- while (itemNode > 0)
-+ while (itemNode != NULL)
- {
- TiXmlNode* childNode = itemNode->FirstChild();
- mTagElements.clear();
-- while (childNode > 0)
-+ while (childNode != NULL)
- {
- std::string strName = childNode->ValueStr();
-
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch
deleted file mode 100644
index 7ee44f1..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 19a1ffc1450bd3ecfb7419d74c733b2e16bf47f3 Mon Sep 17 00:00:00 2001
-From: Balint Reczey <balint@balintreczey.hu>
-Date: Wed, 26 Aug 2015 08:14:41 +0200
-Subject: [PATCH 11/12] Let configure pass on unknown architectures setting
- sane defaults
-
-This helps porting Kodi to new architectures while emitting warnings about
-entering uncharted territory.
----
- configure.ac | 3 ++-
- m4/xbmc_arch.m4 | 6 ++++--
- 2 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 925466a..8369615 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -658,7 +658,8 @@ case $host in
- USE_STATIC_FFMPEG=1
- ;;
- *)
-- AC_MSG_ERROR(unsupported host ($host))
-+ ARCH=$host_cpu"-"$host_os
-+ AC_MSG_WARN([unsupported host ($host), guessing ARCH as $ARCH.])
- esac
- AC_SUBST([ARCH])
-
-diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
-index ff5dc20..dfb45fd 100644
---- a/m4/xbmc_arch.m4
-+++ b/m4/xbmc_arch.m4
-@@ -27,7 +27,8 @@ case $build in
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- *)
-- AC_MSG_ERROR(unsupported native build platform: $build)
-+ AC_MSG_WARN([unsupported native build platform: $build])
-+ AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- esac
-
-
-@@ -70,7 +71,8 @@ case $host in
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID")
- ;;
- *)
-- AC_MSG_ERROR(unsupported build target: $host)
-+ AC_MSG_WARN([unsupported native build platform: $build])
-+ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- esac
-
- if test "$target_platform" = "target_android" ; then
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch
deleted file mode 100644
index 8d70b3f..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 9e88aa086083b80c05b2bf057b92682186c4e6dc Mon Sep 17 00:00:00 2001
-From: Balint Reczey <balint@balintreczey.hu>
-Date: Thu, 6 Oct 2016 18:12:18 +0200
-Subject: [PATCH 12/12] Revert "[droid] fix builds with AML disabled"
-
-This reverts commit 4733383b8f1c1dd0b95e9e5358425d8a0b7ba8fc.
----
- xbmc/utils/SystemInfo.cpp | 4 ----
- xbmc/windowing/egl/EGLWrapper.cpp | 16 ++++++----------
- 2 files changed, 6 insertions(+), 14 deletions(-)
-
-diff --git a/xbmc/utils/SystemInfo.cpp b/xbmc/utils/SystemInfo.cpp
-index fcc6733..52e7fa3 100644
---- a/xbmc/utils/SystemInfo.cpp
-+++ b/xbmc/utils/SystemInfo.cpp
-@@ -57,10 +57,8 @@
- #include "utils/XMLUtils.h"
- #if defined(TARGET_ANDROID)
- #include "platform/android/jni/Build.h"
--#if defined(HAS_LIBAMCODEC)
- #include "utils/AMLUtils.h"
- #endif
--#endif
-
- /* Platform identification */
- #if defined(TARGET_DARWIN)
-@@ -873,11 +871,9 @@ bool CSysInfo::IsAeroDisabled()
- bool CSysInfo::HasHW3DInterlaced()
- {
- #if defined(TARGET_ANDROID)
--#if defined(HAS_LIBAMCODEC)
- if (aml_hw3d_present())
- return true;
- #endif
--#endif
- return false;
- }
-
-diff --git a/xbmc/windowing/egl/EGLWrapper.cpp b/xbmc/windowing/egl/EGLWrapper.cpp
-index 30f5757..583d43a 100644
---- a/xbmc/windowing/egl/EGLWrapper.cpp
-+++ b/xbmc/windowing/egl/EGLWrapper.cpp
-@@ -24,19 +24,15 @@
- #include <assert.h>
- #if defined(TARGET_ANDROID)
- #include "EGLNativeTypeAndroid.h"
--#if defined(HAS_LIBAMCODEC)
- #include "EGLNativeTypeAmlAndroid.h"
- #endif
--#endif
- #if defined(TARGET_RASPBERRY_PI)
- #include "EGLNativeTypeRaspberryPI.h"
- #endif
- #if defined(HAS_IMXVPU)
- #include "EGLNativeTypeIMX.h"
- #endif
--#if defined(TARGET_LINUX) && defined(HAS_LIBAMCODEC)
- #include "EGLNativeTypeAmlogic.h"
--#endif
- #include "EGLWrapper.h"
-
- #define CheckError() m_result = eglGetError(); if(m_result != EGL_SUCCESS) CLog::Log(LOGERROR, "EGL error in %s: %x",__FUNCTION__, m_result);
-@@ -91,15 +87,15 @@ bool CEGLWrapper::Initialize(const std::string &implementation)
- // Try to create each backend in sequence and go with the first one
- // that we know will work
- if (
--#if defined(TARGET_ANDROID) && defined(HAS_LIBAMCODEC)
-- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAmlAndroid>(implementation))
--#elif defined(TARGET_ANDROID)
-- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAndroid>(implementation))
--#elif defined(TARGET_RASPBERRY_PI)
-+#if defined(TARGET_ANDROID)
-+ (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAmlAndroid>(implementation)) ||
-+ (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAndroid>(implementation)) ||
-+#endif
-+#if defined(TARGET_RASPBERRY_PI)
- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeRaspberryPI>(implementation))
- #elif defined(HAS_IMXVPU)
- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeIMX>(implementation))
--#elif defined(TARGET_LINUX) && defined(HAS_LIBAMCODEC)
-+#else
- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAmlogic>(implementation))
- #endif
- )
---
-2.10.2
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch
deleted file mode 100644
index c9c9066..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 5fa10ff6b1b60abee172296d9c1dec8dfc10615c Mon Sep 17 00:00:00 2001
-From: Stefan Saraev <stefan@saraev.ca>
-Date: Sun, 7 May 2017 17:30:47 +0300
-Subject: [PATCH] FTPParse.cpp: use std::string
-
-Fixes build with newer gcc versions.
-
-Taken from [1]
-
-Upstream-Status: Backport [2]
-
-[1] https://git.busybox.net/buildroot/plain/package/kodi/0003-FTPParse.cpp-use-std-string.patch?id=e2f03a6bde19766a1ac047c5ccfb049b5c4f61ca
-[2] https://github.com/xbmc/xbmc/commit/5fa10ff6b1b60abee172296d9c1dec8dfc10615c
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- xbmc/filesystem/FTPParse.cpp | 44 ++++++++++++++++++++++----------------------
- 1 file changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/xbmc/filesystem/FTPParse.cpp b/xbmc/filesystem/FTPParse.cpp
-index cfcc7c64ed..b0f676ae1a 100644
---- a/xbmc/filesystem/FTPParse.cpp
-+++ b/xbmc/filesystem/FTPParse.cpp
-@@ -34,7 +34,7 @@ CFTPParse::CFTPParse()
- m_time = 0;
- }
-
--string CFTPParse::getName()
-+std::string CFTPParse::getName()
- {
- return m_name;
- }
-@@ -59,16 +59,16 @@ time_t CFTPParse::getTime()
- return m_time;
- }
-
--void CFTPParse::setTime(string str)
-+void CFTPParse::setTime(std::string str)
- {
- /* Variables used to capture patterns via the regexes */
-- string month;
-- string day;
-- string year;
-- string hour;
-- string minute;
-- string second;
-- string am_or_pm;
-+ std::string month;
-+ std::string day;
-+ std::string year;
-+ std::string hour;
-+ std::string minute;
-+ std::string second;
-+ std::string am_or_pm;
-
- /* time struct used to set the time_t variable */
- struct tm time_struct = {};
-@@ -338,21 +338,21 @@ int CFTPParse::getDayOfWeek(int month, int date, int year)
- return day_of_week;
- }
-
--int CFTPParse::FTPParse(string str)
-+int CFTPParse::FTPParse(std::string str)
- {
- /* Various variable to capture patterns via the regexes */
-- string permissions;
-- string link_count;
-- string owner;
-- string group;
-- string size;
-- string date;
-- string name;
-- string type;
-- string stuff;
-- string facts;
-- string version;
-- string file_id;
-+ std::string permissions;
-+ std::string link_count;
-+ std::string owner;
-+ std::string group;
-+ std::string size;
-+ std::string date;
-+ std::string name;
-+ std::string type;
-+ std::string stuff;
-+ std::string facts;
-+ std::string version;
-+ std::string file_id;
-
- /* Regex for standard Unix listing formats */
- pcrecpp::RE unix_re("^([-bcdlps])" // type
---
-2.11.0
-
-
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service
deleted file mode 100644
index 29d0394..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Kodi media thing
-
-[Service]
-User=root
-Type=simple
-SuccessExitStatus=0 1
-IOSchedulingClass=realtime
-IOSchedulingPriority=0
-
-ExecStart=/usr/bin/xinit /usr/bin/kodi-standalone -- /usr/bin/X :0
-
-[Install]
-WantedBy=basic.target
diff --git a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb b/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb
deleted file mode 100644
index 2956189..0000000
--- a/meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb
+++ /dev/null
@@ -1,216 +0,0 @@
-SUMMARY = "Kodi Media Center"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=930e2a5f63425d8dd72dbd7391c43c46"
-
-FILESPATH =. "${FILE_DIRNAME}/kodi-17:"
-
-DEPENDS = " \
- cmake-native \
- curl-native \
- gperf-native \
- jsonschemabuilder-native \
- nasm-native \
- swig-native \
- unzip-native \
- yasm-native \
- zip-native \
- avahi \
- boost \
- bzip2 \
- crossguid \
- curl \
- dcadec \
- enca \
- expat \
- faad2 \
- ffmpeg \
- fontconfig \
- fribidi \
- giflib \
- jasper \
- libass \
- libcdio \
- libcec \
- libmad \
- libmicrohttpd \
- libmms \
- libmms \
- libmodplug \
- libpcre \
- libplist \
- libsamplerate0 \
- libsdl-image \
- libsdl-mixer \
- libsquish \
- libssh \
- libtinyxml \
- libusb1 \
- libxslt \
- lzo \
- mpeg2dec \
- python \
- sqlite3 \
- taglib \
- virtual/egl \
- virtual/libsdl \
- wavpack \
- yajl \
- zlib \
- ${@enable_glew(bb, d)} \
-"
-
-PROVIDES = "xbmc"
-
-SRCREV = "6abeebd5ba371547c8f04272296433f5e4e28e86"
-PV = "17.3+gitr${SRCPV}"
-ADDONSPV = "17.1"
-SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Krypton \
- https://repo.voidlinux.eu/distfiles/${BPN}-${ADDONSPV}-generated-addons.tar.xz;name=addons;unpack=0 \
- file://0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch \
- file://0004-handle-SIGTERM.patch \
- file://0005-add-support-to-read-frequency-output-if-using-intel-.patch \
- file://0006-Disable-DVD-support.patch \
- file://0007-Always-compile-libcpluff-as-PIC.patch \
- file://0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch \
- file://0009-build-Add-support-for-musl-triplets.patch \
- file://0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch \
- file://0011-Let-configure-pass-on-unknown-architectures-setting-.patch \
- file://0012-Revert-droid-fix-builds-with-AML-disabled.patch \
- file://0001-change-order-of-detecting-libegl-and-libgles2.patch \
- file://0013-FTPParse.cpp-use-std-string.patch \
-"
-
-SRC_URI_append_libc-musl = " \
- file://0001-Fix-file_Emu-on-musl.patch \
- file://0002-Remove-FILEWRAP.patch \
-"
-SRC_URI[addons.md5sum] = "719614fa764011a18665d08af5c8c92f"
-SRC_URI[addons.sha256sum] = "350da57408c27473eaf40e7f544bc94841bf101dc4346085260c5c4af0adac97"
-
-inherit autotools-brokensep gettext pythonnative distro_features_check
-
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-S = "${WORKDIR}/git"
-
-# breaks compilation
-ASNEEDED = ""
-
-ACCEL ?= ""
-ACCEL_x86 = "vaapi vdpau"
-ACCEL_x86-64 = "vaapi vdpau"
-
-PACKAGECONFIG ??= "${ACCEL} opengl \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'openglesv2', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'samba', '', d)} \
-"
-
-PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,"
-PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl,virtual/egl"
-PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
-PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
-PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxinerama libxmu libxrandr libxtst"
-PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
-PACKAGECONFIG[lcms] = "--enable-lcms2,--disable-lcms2,lcms"
-PACKAGECONFIG[samba] = "--enable-samba,--disable-samba,samba"
-
-EXTRA_OECONF = " \
- --disable-debug \
- --disable-libcap \
- --disable-ccache \
- --disable-mid \
- --enable-libusb \
- --enable-alsa \
- --enable-airplay \
- --disable-optical-drive \
- --with-ffmpeg=shared \
- --enable-texturepacker=no \
- ac_cv_path_JAVA_EXE=/bin/true \
-"
-
-FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O3 -ffast-math"
-FULL_OPTIMIZATION_armv7ve = "-fexpensive-optimizations -fomit-frame-pointer -O3 -ffast-math"
-BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
-
-LDFLAGS_append_mips = " -latomic"
-LDFLAGS_append_mipsel = " -latomic"
-LDFLAGS_append_powerpc = " -latomic"
-LDFLAGS_append_arm = " -latomic"
-
-EXTRA_OECONF_append = " LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
-
-# for python modules
-export HOST_SYS
-export BUILD_SYS
-export STAGING_LIBDIR
-export STAGING_INCDIR
-export PYTHON_DIR
-
-def enable_glew(bb, d):
- if bb.utils.contains('PACKAGECONFIG', 'x11', True, False, d) and bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d):
- return "glew"
- return ""
-
-do_configure() {
- tar xf ${WORKDIR}/${BPN}-${ADDONSPV}-generated-addons.tar.xz -C ${S}/
-
- ( for i in $(find ${S} -name configure.ac -or -name configure.in|grep -v ".pc") ; do
- cd $(dirname $i) && gnu-configize --force || true
- done )
- ( for f in ${S}/xbmc/interfaces/python/generated/*.cpp; do
- touch `echo $f|sed -e 's/.cpp$/.xml/g'`
- done )
-
- BOOTSTRAP_STANDALONE=1 make -f bootstrap.mk JSON_BUILDER="${STAGING_BINDIR_NATIVE}/JsonSchemaBuilder"
- BOOTSTRAP_STANDALONE=1 make JAVA=/bin/true -f codegenerator.mk JSON_BUILDER="${STAGING_BINDIR_NATIVE}/JsonSchemaBuilder"
- oe_runconf
-}
-
-do_compile_prepend() {
- for i in $(find . -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
- done
-
- for i in $(find . -name "*.mak*" -o -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
- done
-}
-
-INSANE_SKIP_${PN} = "rpaths"
-
-FILES_${PN} += "${datadir}/xsessions ${datadir}/icons ${libdir}/xbmc ${datadir}/xbmc"
-FILES_${PN}-dbg += "${libdir}/kodi/.debug ${libdir}/kodi/*/.debug ${libdir}/kodi/*/*/.debug ${libdir}/kodi/*/*/*/.debug"
-
-# kodi uses some kind of dlopen() method for libcec so we need to add it manually
-# OpenGL builds need glxinfo, that's in mesa-demos
-RRECOMMENDS_${PN}_append = " \
- libcec \
- python \
- python-ctypes \
- python-lang \
- python-re \
- python-netclient \
- python-html \
- python-difflib \
- python-json \
- python-zlib \
- python-shell \
- python-sqlite3 \
- python-compression \
- libcurl \
- ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'xrandr xdpyinfo', '', d)} \
-"
-RRECOMMENDS_${PN}_append_libc-glibc = " \
- glibc-charmap-ibm850 \
- glibc-gconv-ibm850 \
- glibc-gconv-unicode \
- glibc-gconv-utf-32 \
- glibc-charmap-utf-8 \
- glibc-localedata-en-us \
-"
-
-RPROVIDES_${PN} += "xbmc"
-
-TOOLCHAIN = "gcc"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb
index 4765c6c..d36f2f4 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb
@@ -1,9 +1,12 @@
SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)"
SECTION = "libs"
LICENSE = "LGPLv2+"
+HOMEPAGE = "http://www.audiocoding.com/faac.html"
LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0"
+LICENSE_FLAGS = "commercial"
+
inherit autotools
SRC_URI = " \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.10.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.10.bb
deleted file mode 100644
index 0ec4c49..0000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.10.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Fluidsynth is a software synthesizer"
-HOMEPAGE = "http://www.fluidsynth.org/"
-SECTION = "libs/multimedia"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
-
-DEPENDS = "alsa-lib ncurses glib-2.0"
-
-SRC_URI = " \
- git://github.com/FluidSynth/fluidsynth.git;branch=1.1.x \
- file://0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \
-"
-SRCREV = "f5a0fee6f7f2b2ab4c866df1acb649333464b3fd"
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig lib_package
-
-EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
-PACKAGECONFIG[sndfile] = "-Denable-libsndfile-support=ON,-Denable-libsndfile-support=OFF,libsndfile1"
-PACKAGECONFIG[jack] = "-Denable-jack-support=ON,-Denable-jack-support=OFF,jack"
-PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,--Denable-pulseaudio=OFF,pulseaudio"
-PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb
new file mode 100644
index 0000000..4df3102
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Fluidsynth is a software synthesizer"
+HOMEPAGE = "http://www.fluidsynth.org/"
+SECTION = "libs/multimedia"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
+
+DEPENDS = "alsa-lib ncurses glib-2.0"
+
+SRC_URI = " \
+ git://github.com/FluidSynth/fluidsynth.git;branch=1.1.x \
+ file://0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \
+"
+SRCREV = "f65c6ba25fb2c7e37c89fc6a4afc5aa645e208c2"
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig lib_package
+
+EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
+PACKAGECONFIG[sndfile] = "-Denable-libsndfile-support=ON,-Denable-libsndfile-support=OFF,libsndfile1"
+PACKAGECONFIG[jack] = "-Denable-jack-support=ON,-Denable-jack-support=OFF,jack"
+PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio"
+PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb
index 5f97a20..56d8220 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb
@@ -45,9 +45,6 @@
# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/
#}
-RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-
FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so"
FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb
new file mode 100644
index 0000000..5409f32
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Gst-Shark Tracers"
+DESCRIPTION = "Benchmarks and profiling tools for GStreamer"
+HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark"
+SECTION = "multimedia"
+LICENSE = "GPLv2+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97"
+
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad "
+
+SRCBRANCH ?= "master"
+
+SRCREV_base = "a60b3996fe3376d42334fc89014e9d6f6af62899"
+SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
+
+SRC_URI = " \
+ git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \
+ git://anongit.freedesktop.org/git/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \
+ "
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG_CONFARGS = " \
+ --disable-graphviz \
+ --enable-gtk-doc=no \
+"
+
+FILES_${PN} += "\
+ ${libdir}/gstreamer-1.0/libgstsharktracers.so \
+ ${libdir}/gstreamer-1.0/libgstsharktracers.la \
+"
+
+inherit autotools gettext
+
+do_configure() {
+ ${S}/autogen.sh --noconfigure
+ oe_runconf
+}
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc
index 10ee5bc..455d896 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc
@@ -7,19 +7,15 @@
DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon"
SRCBRANCH ?= "master"
-SRCREV = "097a086a8606dcb368c7d38c7ec4fefc2497401b"
+SRCREV = "3526d0ffdbccc375db7d5fe33a72c68b134657c2"
SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \
- file://0001-gstd-yocto-compatibility.patch"
-
+ file://0001-gstd-yocto-compatibility.patch \
+ file://0001-Look-for-gtk-doc.make-in-builddir.patch \
+ "
S = "${WORKDIR}/git"
-PACKAGECONFIG_CONFARGS = " \
- --disable-gtk-doc \
-"
+inherit autotools pkgconfig gettext gtk-doc
-inherit autotools pkgconfig gettext
-
-do_configure() {
-${S}/autogen.sh
-oe_runconf
+do_configure_prepend() {
+ sed -i -e "s|include \$(top_builddir)/docs/gtk-doc.make||g" ${S}/docs/reference/gstd/Makefile.am
}
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch
new file mode 100644
index 0000000..5a28616
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch
@@ -0,0 +1,32 @@
+From a84e9a6e1dca685eda072d58b58556b5b35cb4c8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 10 Sep 2018 21:16:50 -0700
+Subject: [PATCH] Look for gtk-doc.make in builddir
+
+this is evident when S != B because gtkdocize
+generates this file and its actually built into
+build area
+
+Upstream-Status: Submitted [https://github.com/RidgeRun/gstd-1.x/pull/39]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ docs/reference/gstd/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/docs/reference/gstd/Makefile.am b/docs/reference/gstd/Makefile.am
+index f860fa1..62870da 100644
+--- a/docs/reference/gstd/Makefile.am
++++ b/docs/reference/gstd/Makefile.am
+@@ -66,7 +66,7 @@ GTKDOC_LIBS=$(top_builddir)/gstd/libgstd-core.la
+
+
+ # This includes the standard gtk-doc make rules, copied by gtkdocize.
+-include $(top_srcdir)/docs/gtk-doc.make
++include $(top_builddir)/docs/gtk-doc.make
+
+ # Comment this out if you want 'make check' to test you doc status
+ # and run some sanity checks
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
index ddc1831..ffcc6ea 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
@@ -4,47 +4,9 @@
Subject: [PATCH] gstd:yocto compatibility
---
- autogen.sh | 8 +++++++-
- docs/reference/gstd/Makefile.am | 2 +-
gstd/Makefile.am | 2 +-
3 files changed, 9 insertions(+), 3 deletions(-)
-diff --git a/autogen.sh b/autogen.sh
-index 66dbd42..793ee2f 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -21,7 +21,11 @@
- # ACLOCAL, AUTOPOINT and/or LIBTOOLIZE to the right versions, or leave them
- # unset and get the defaults
-
--gtkdocize || exit 1
-+test -n "$srcdir" || srcdir=`dirname "$0"`
-+test -n "$srcdir" || srcdir=.
-+
-+olddir=`pwd`
-+cd "$srcdir"
-
- autoreconf --verbose --force --install || {
- echo 'autogen.sh failed';
-@@ -31,3 +35,5 @@ autoreconf --verbose --force --install || {
- echo
- echo "Now run './configure' with your system settings followed by 'make' to compile this module."
- echo
-+
-+cd "$olddir"
-diff --git a/docs/reference/gstd/Makefile.am b/docs/reference/gstd/Makefile.am
-index f860fa1..153a13b 100644
---- a/docs/reference/gstd/Makefile.am
-+++ b/docs/reference/gstd/Makefile.am
-@@ -66,7 +66,7 @@ GTKDOC_LIBS=$(top_builddir)/gstd/libgstd-core.la
-
-
- # This includes the standard gtk-doc make rules, copied by gtkdocize.
--include $(top_srcdir)/docs/gtk-doc.make
-+# include $(top_srcdir)/docs/gtk-doc.make
-
- # Comment this out if you want 'make check' to test you doc status
- # and run some sanity checks
diff --git a/gstd/Makefile.am b/gstd/Makefile.am
index 13c551d..11fe202 100644
--- a/gstd/Makefile.am
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb
index 8a9e9a1..b6bb447 100755
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb
@@ -7,7 +7,8 @@
# libsdl to provide sdl.m4 with AM_PATH_SDL
DEPENDS += "libusb1 libraw1394 libsdl \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl libglu', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'libglu', '', d)} \
"
PV = "2.2.5+gitr${SRCPV}"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest b/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest
new file mode 100644
index 0000000..84981b2
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+./libopenmpttest >/dev/null 2>&1
+
+if [ $? -eq 0 ]; then
+ echo "PASS: libopenmpttest"
+else
+ echo "FAIL: libopenmpttest"
+fi
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb
new file mode 100644
index 0000000..d14246f
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb
@@ -0,0 +1,104 @@
+SUMMARY = "C and C++ cross-platform library for decoding tracked music files (modules)"
+DESCRIPTION = "libopenmpt is a cross-platform C++ and C library to decode tracked \
+music files (modules) into a raw PCM audio stream. It also comes with openmpt123, a \
+cross-platform command-line or terminal based module file player, and libopenmpt_modplug, \
+a wrapper around libopenmpt that provides an interface that is ABI compatile with \
+libmodplug. libopenmpt is based on the player code of the OpenMPT project."
+HOMEPAGE = "https://lib.openmpt.org/libopenmpt/"
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e804150573f149befef6c07e173f20c3"
+
+DEPENDS = "virtual/libiconv"
+
+SRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \
+ file://run-ptest \
+ "
+SRC_URI[md5sum] = "66bbc6fbb5f27a554cb145d805e9ef9d"
+SRC_URI[sha256sum] = "14a137b8d1a20e1b6a5e67cbc9467ab7e5e4e67d5aa38a247afc825685c53939"
+
+S = "${WORKDIR}/libopenmpt-${PV}+release.autotools"
+
+inherit autotools pkgconfig ptest
+
+PACKAGECONFIG ??= " \
+ libopenmpt-modplug openmpt123 \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+ flac mpg123 ogg sndfile vorbis vorbisfile zlib \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
+"
+
+# libopenmpt_modplug is a library that wraps libopenmpt calls into
+# functions that are ABI compatible with libmodplug. This allows for
+# using modplug headers and linking against libopenmpt_modplug
+# instead of against the original libmodplug library.
+# NOTE: The wrapper is compatible to the ABI from libmodplug version
+# 0.8.8 and newer.
+PACKAGECONFIG[libopenmpt-modplug] = "--enable-libopenmpt_modplug,--disable-libopenmpt_modplug"
+PACKAGECONFIG[openmpt123] = "--enable-openmpt123,--disable-openmpt123"
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests"
+
+# These packageconfigs affect openmpt123
+PACKAGECONFIG[flac] = "--with-flac,--without-flac,flac"
+PACKAGECONFIG[mpg123] = "--with-mpg123,--without-mpg123,mpg123"
+PACKAGECONFIG[ogg] = "--with-ogg,--without-ogg,libogg"
+PACKAGECONFIG[portaudio] = "--with-portaudio,--without-portaudio,portaudio-v19"
+PACKAGECONFIG[pulseaudio] = "--with-pulseaudio,--without-pulseaudio,pulseaudio"
+PACKAGECONFIG[sdl] = "--with-sdl,--without-sdl,virtual/libsdl"
+PACKAGECONFIG[sdl2] = "--with-sdl2,--without-sdl2,virtual/libsdl2"
+PACKAGECONFIG[sndfile] = "--with-sndfile,--without-sndfile,libsndfile1"
+PACKAGECONFIG[vorbis] = "--with-vorbis,--without-vorbis,libvorbis"
+PACKAGECONFIG[vorbisfile] = "--with-vorbisfile,--without-vorbisfile,libvorbis"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+
+# --disable-libmodplug is necessary, since otherwise we'd
+# have a collision with the libmodplug package, because of the
+# libmodplug.so file. (libmodplug.so from libopenmpt isintended
+# to be used as a drop-in replacement, and according to the
+# documentation, is not complete.)
+EXTRA_OECONF += " \
+ --disable-doxygen-doc \
+ --disable-examples \
+ --disable-libmodplug \
+ --without-portaudiocpp \
+"
+
+do_compile_ptest() {
+ oe_runmake ${PARALLEL_MAKE} libopenmpttest
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ install -m 0755 ${B}/libopenmpttest ${D}${PTEST_PATH}
+ install -m 0644 ${S}/test/test.mptm ${D}${PTEST_PATH}/test
+ install -m 0644 ${S}/test/test.s3m ${D}${PTEST_PATH}/test
+ install -m 0644 ${S}/test/test.xm ${D}${PTEST_PATH}/test
+
+ install -d ${D}${PTEST_PATH}/libopenmpt
+ install -m 0644 ${S}/libopenmpt/libopenmpt_version.mk ${D}${PTEST_PATH}/libopenmpt
+}
+
+python __anonymous() {
+ packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
+ if ("sdl" in packageconfig) and ("sdl2" in packageconfig):
+ bb.error("sdl and sdl2 packageconfigs cannot be both enabled")
+}
+
+PACKAGES =+ "${PN}-modplug ${PN}-openmpt123 ${PN}-openmpt123-doc"
+FILES_${PN}-modplug = "${libdir}/libopenmpt_modplug.so.*"
+FILES_${PN}-openmpt123 = "${bindir}/openmpt123"
+FILES_${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*"
+
+# Since version 0.3, libopenmpt uses SemVer 2.0.0 versioning.
+# The SemVer versioning scheme is incompatible with Debian/Ubuntu
+# package version names.
+DEBIAN_NOAUTONAME_${PN} = "1"
+DEBIAN_NOAUTONAME_${PN}-modplug = "1"
+
+RDEPENDS_${PN}_libc-glibc = " \
+ glibc-gconv-cp1252 \
+ glibc-gconv-ibm437 \
+ glibc-gconv-iso8859-1 \
+ glibc-gconv-iso8859-15 \
+"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc
new file mode 100644
index 0000000..187ff53
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc
@@ -0,0 +1,41 @@
+DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \
+being fully compliant with DLNA/UPnP-AV clients."
+LICENSE = "GPL-2.0|BSD"
+DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis"
+
+# because it depends on libav which has commercial flag
+LICENSE_FLAGS = "commercial"
+
+inherit gettext autotools-brokensep update-rc.d systemd
+
+SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \
+ file://minidlna-daemon.init.d \
+ file://minidlna.service \
+ file://0001-Update-Gettext-version.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+# This remove "--exclude=autopoint" option from autoreconf argument to avoid
+# configure.ac:30: error: required file './ABOUT-NLS' not found
+EXTRA_AUTORECONF = ""
+
+do_install_append(){
+ install -d ${D}${sysconfdir}
+ install -m 0755 minidlna.conf ${D}${sysconfdir}
+
+# Systemd script
+ install -d ${D}${nonarch_base_libdir}/systemd/system
+ install -m 0755 ${WORKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system
+
+# Sysvinit script
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna
+
+}
+
+SYSTEMD_SERVICE_${PN} = "minidlna.service"
+
+INITSCRIPT_NAME = "minidlna"
+INITSCRIPT_PARAMS = "defaults 90"
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch
new file mode 100644
index 0000000..c18095d
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch
@@ -0,0 +1,34 @@
+From a4290bf1887f9203288858ca76bdd20b2edf337a Mon Sep 17 00:00:00 2001
+From: Baptiste Durand <baptiste.durand@gmail.com>
+Date: Sun, 9 Sep 2018 20:50:41 +0200
+Subject: [PATCH] Update Gettext version
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Baptiste Durand <baptiste.durand@gmail.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f343d21..a556b33 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -14,7 +14,7 @@
+ # License along with MiniDLNA; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ # USA.
+-AC_INIT(MiniDLNA,1.1.3,,minidlna)
++AC_INIT(MiniDLNA,1.2.1,,minidlna)
+ #LT_INIT
+
+ AC_CANONICAL_TARGET
+@@ -28,7 +28,7 @@ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_USE_SYSTEM_EXTENSIONS])
+
+ AM_ICONV
+ AM_GNU_GETTEXT([external])
+-AM_GNU_GETTEXT_VERSION(0.18)
++AM_GNU_GETTEXT_VERSION(0.19)
+
+ # Checks for programs.
+ AC_PROG_AWK
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d
rename to meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service
rename to meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb
new file mode 100644
index 0000000..999d85c
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb
@@ -0,0 +1,4 @@
+require ${BPN}.inc
+
+SRCREV = "c760a338e07ebd11d62fef701e3de824a91f8625"
+LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
index 16e5213..ca9d94a 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
@@ -22,10 +22,12 @@
git clean -dfx -e /.pc/ -e /patches/ .
mkdir build-native
cd build-native
- cmake -DCMAKE_C_FLAGS=${BUILD_CFLAGS} \
+ LDFLAGS="${BUILD_LDFLAGS}" \
+ cmake -DCMAKE_C_FLAGS=${BUILD_CFLAGS} \
-DCMAKE_C_COMPILER=${BUILD_CC} \
-DCMAKE_CXX_FLAGS=${BUILD_CXXFLAGS} \
-DCMAKE_CXX_COMPILER=${BUILD_CXX} \
+ -DCMAKE_EXE_LINKER_FLAGS=${BUILD_LDFLAGS} \
..
make make-c-interface
cd ..
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb
new file mode 100644
index 0000000..455e76f
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb
@@ -0,0 +1,22 @@
+SUMMARY = "C client library for the Music Player Daemon"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=06b9dfd2f197dc514d8ef06549684b77"
+HOMEPAGE = "https://www.musicpd.org/libs/libmpdclient/"
+
+inherit meson
+
+SRC_URI = " \
+ git://github.com/MusicPlayerDaemon/libmpdclient \
+"
+SRCREV = "4e8d990eb5239566ee948f1cd79b7248e008620a"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "tcp"
+PACKAGECONFIG[tcp] = "-Dtcp=true,-Dtcp=false"
+
+do_install_append() {
+ # libmpdclient's Vala bindings are outdated and unmaintained; it
+ # is likely that nobody will ever use them, so let's not install
+ # them
+ rm -rf ${D}${datadir}/vala
+}
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb
new file mode 100644
index 0000000..41abe71
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A minimalist command line interface to the Music Player Daemon"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+HOMEPAGE = "https://www.musicpd.org/clients/mpc/"
+
+inherit meson
+
+DEPENDS += " \
+ libmpdclient \
+"
+
+SRC_URI = " \
+ git://github.com/MusicPlayerDaemon/mpc \
+"
+SRCREV = "59875acdf34e5f0eac0c11453c49daef54f78413"
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.18.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.18.bb
deleted file mode 100644
index 6754f34..0000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.18.bb
+++ /dev/null
@@ -1,100 +0,0 @@
-SUMMARY = "Music Player Daemon"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-HOMEPAGE ="http://www.musicpd.org"
-
-inherit autotools useradd systemd pkgconfig
-
-DEPENDS += " \
- alsa-lib \
- libsamplerate0 \
- libsndfile1 \
- libvorbis \
- libogg \
- faad2 \
- ffmpeg \
- curl \
- sqlite \
- bzip2 \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
- tcp-wrappers \
- openal-soft \
- yajl \
- jack \
- faad2 \
- flac \
- libao \
- fluidsynth \
- libcdio \
- wavpack \
- libopus \
- mpg123 \
- libmms \
- libmodplug \
- boost \
- icu \
- dbus \
- expat \
- zlib \
- libupnp \
-"
-
-# While this item does not require it, it depends on mpg123 which does
-LICENSE_FLAGS = "commercial"
-
-SRC_URI = " \
- http://www.musicpd.org/download/${BPN}/0.20/${BP}.tar.xz \
- file://mpd.conf.in \
-"
-SRC_URI[md5sum] = "8dc87ba95473fd738f2aff9bd69cc212"
-SRC_URI[sha256sum] = "6a582dc2ae90b94ff3853f9ffd7d80b2c2b5fe2e2c35cb1da0b36f3f3dfad434"
-
-EXTRA_OECONF = "enable_bzip2=yes"
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
-
-PACKAGECONFIG[audiofile] = "--enable-audiofile,--disable-audiofile,audiofile"
-PACKAGECONFIG[cdioparanoia] = "--enable-cdio-paranoia,--disable-cdio-paranoia,libcdio-paranoia"
-PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
-PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag"
-PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame"
-PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba"
-
-do_configure_prepend() {
- sed -i -e 's|libsystemd-daemon|libsystemd|' ${S}/configure.ac
-}
-
-do_install_append() {
- install -d ${D}/${localstatedir}/lib/mpd/music
- chmod 775 ${D}/${localstatedir}/lib/mpd/music
- install -d ${D}/${localstatedir}/lib/mpd/playlists
- chown -R mpd ${D}/${localstatedir}/lib/mpd
- chown mpd:mpd ${D}/${localstatedir}/lib/mpd/music
-
- install -d ${D}/${sysconfdir}
- install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf
- sed -i \
- -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \
- -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \
- -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \
- -e 's|%log_file%|${localstatedir}/log/mpd.log|' \
- -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \
- ${D}/${sysconfdir}/mpd.conf
-
- if [ -e ${D}/${systemd_unitdir}/system/mpd.service ] ; then
- sed -i \
- 's|^ExecStart=.*|ExecStart=${bindir}/mpd --no-daemon|' \
- ${D}/${systemd_unitdir}/system/mpd.service
- fi
-}
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "mpd.socket"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = " \
- --system --no-create-home \
- --home ${localstatedir}/lib/mpd \
- --groups audio \
- --user-group mpd"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb
new file mode 100644
index 0000000..6c6ad42
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb
@@ -0,0 +1,99 @@
+SUMMARY = "Music Player Daemon"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+HOMEPAGE ="http://www.musicpd.org"
+
+inherit autotools useradd systemd pkgconfig
+
+DEPENDS += " \
+ curl \
+ sqlite3 \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
+ yajl \
+ boost \
+ icu \
+ dbus \
+ expat \
+"
+
+SRC_URI = " \
+ git://github.com/MusicPlayerDaemon/MPD;branch=v0.20.x \
+ file://mpd.conf.in \
+"
+SRCREV = "9274bc15bc41bbe490fde847f8422468cc20375d"
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
+
+PACKAGECONFIG ??= "alsa ao bzip2 daemon ffmpeg fifo flac fluidsynth iso9660 jack libsamplerate libwrap httpd mms mpg123 modplug sndfile upnp openal opus oss recorder vorbis wavpack zlib"
+PACKAGECONFIG += "${@bb.utils.contains('LICENSE_FLAGS', 'commercial', 'aac', '', d)}"
+
+PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,faad2"
+PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
+PACKAGECONFIG[ao] = "--enable-ao,--disable-ao,libao"
+PACKAGECONFIG[audiofile] = "--enable-audiofile,--disable-audiofile,audiofile"
+PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2"
+PACKAGECONFIG[cdioparanoia] = "--enable-cdio-paranoia,--disable-cdio-paranoia,libcdio-paranoia"
+PACKAGECONFIG[daemon] = "--enable-daemon,--disable-daemon"
+PACKAGECONFIG[ffmpeg] = "--enable-ffmpeg,--disable-ffmpeg,ffmpeg"
+PACKAGECONFIG[fifo] = "--enable-fifo,--disable-fifo"
+PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac"
+PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
+PACKAGECONFIG[httpd] = "--enable-httpd-output,--disable-httpd-output"
+PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag"
+PACKAGECONFIG[iso9660] = "--enable-iso9660,--disable-iso9660,libcdio"
+PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
+PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame"
+PACKAGECONFIG[libsamplerate] = "--enable-lsr,--disable-lsr,libsamplerate0"
+PACKAGECONFIG[libwrap] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
+PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
+PACKAGECONFIG[mms] = "--enable-mms,--disable-mms,libmms"
+PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
+PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123"
+PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
+PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus libogg"
+PACKAGECONFIG[oss] = "--enable-oss,--disable-oss,"
+PACKAGECONFIG[recorder] = "--enable-recorder-output,--disable-recorder-output"
+PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba"
+PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1"
+PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp"
+PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg"
+PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
+PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
+
+do_configure_prepend() {
+ sed -i -e 's|libsystemd-daemon|libsystemd|' ${S}/configure.ac
+}
+
+do_install_append() {
+ install -o mpd -d \
+ ${D}/${localstatedir}/lib/mpd \
+ ${D}/${localstatedir}/lib/mpd/playlists
+ install -m775 -o mpd -g mpd -d \
+ ${D}/${localstatedir}/lib/mpd/music
+
+ install -d ${D}/${sysconfdir}
+ install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf
+ sed -i \
+ -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \
+ -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \
+ -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \
+ -e 's|%log_file%|${localstatedir}/log/mpd.log|' \
+ -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \
+ ${D}/${sysconfdir}/mpd.conf
+
+ # we don't need the icon
+ rm -rf ${D}${datadir}/icons
+}
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "mpd.socket"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = " \
+ --system --no-create-home \
+ --home ${localstatedir}/lib/mpd \
+ --groups audio \
+ --user-group mpd"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb
new file mode 100644
index 0000000..8468d12
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb
@@ -0,0 +1,37 @@
+SUMMARY = "A curses client for the Music Player Daemon"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+HOMEPAGE = "https://www.musicpd.org/clients/ncmpc/"
+
+inherit meson
+
+DEPENDS += " \
+ boost \
+ ncurses \
+ libmpdclient \
+"
+
+PACKAGECONFIG ??= "colors locale mouse nls regex help_screen artist_screen search_screen song_screen key_screen lyrics_screen outputs_screen"
+
+PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false"
+PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc"
+PACKAGECONFIG[locale] = "-Dlocale=enabled,-Dlocale=disabled"
+PACKAGECONFIG[mini] = "-Dmini=true,-Dmini=false"
+PACKAGECONFIG[mouse] = "-Dmouse=enabled,-Dmouse=disabled"
+PACKAGECONFIG[nls] = "-Dnls=enabled,-Dnls=disabled,gettext-native"
+PACKAGECONFIG[regex] = "-Dregex=enabled,-Dregex=disabled,pcre"
+
+PACKAGECONFIG[help_screen] = "-Dhelp_screen=true,-Dhelp_screen=false"
+PACKAGECONFIG[artist_screen] = "-Dartist_screen=true,-Dartist_screen=false"
+PACKAGECONFIG[search_screen] = "-Dsearch_screen=true,-Dsearch_screen=false"
+PACKAGECONFIG[song_screen] = "-Dsong_screen=true,-Dsong_screen=false"
+PACKAGECONFIG[key_screen] = "-Dkey_screen=true,-Dkey_screen=false"
+PACKAGECONFIG[lyrics_screen] = "-Dlyrics_screen=true,-Dlyrics_screen=false"
+PACKAGECONFIG[outputs_screen] = "-Doutputs_screen=true,-Doutputs_screen=false"
+PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false"
+
+SRC_URI = " \
+ git://github.com/MusicPlayerDaemon/ncmpc \
+"
+SRCREV = "8e98f89ff07b140e6357dab2a9a9f6432ae0e521"
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch
index bb3d8b0..6e11c97 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch
@@ -8,11 +8,11 @@
===================================================================
--- git.orig/librtmp/Makefile
+++ git/librtmp/Makefile
-@@ -107,6 +107,7 @@ install_base: librtmp.a librtmp.pc
+@@ -115,6 +115,7 @@ install_base: librtmp.a librtmp.pc
cp librtmp.3 $(MANDIR)/man3
- install_so: librtmp.$(SO_EXT)
+ install_so: librtmp$(SO_EXT)
+ -mkdir -p $(SODIR)
- cp librtmp.$(SO_EXT) $(SODIR)
- cd $(SODIR); ln -sf librtmp.$(SO_EXT) librtmp.$(SOX)
-
+ cp librtmp$(SO_EXT) $(SODIR)
+ $(INSTALL_IMPLIB)
+ cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX)
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
index c5513b0..a72b0d6 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
@@ -5,9 +5,9 @@
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "openssl zlib"
+DEPENDS = "openssl10 zlib"
-SRCREV = "3121324046e4ca1934e7e28293fc8326475d5053"
+SRCREV = "fa8646daeb19dfd12c181f7d19de708d623704c0"
SRC_URI = " \
git://git.ffmpeg.org/rtmpdump \
file://fix-racing-build-issue.patch"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
new file mode 100644
index 0000000..157e4c9
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "TinyALSA is a small library to interface with ALSA in \
+the Linux kernel. It is a lightweight alternative to libasound."
+HOMEPAGE = "https://github.com/tinyalsa/tinyalsa"
+SECTION = "libs/multimedia"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b"
+
+SRCREV = "67b9210d344c34e8d1aa0cfe638abce71c5221ca"
+SRC_URI = "git://github.com/tinyalsa/tinyalsa"
+PV = "1.1.1+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# tinyalsa is built as a static library. Enable PIC to avoid relocation
+# errors like these:
+#
+# unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17'
+CFLAGS += " -fPIC -DPIC "
+
+PACKAGES =+ "${PN}-tools"
+FILES_${PN}-tools = "${bindir}/*"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_1.1.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_1.1.1.bb
deleted file mode 100644
index 66b95db..0000000
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_1.1.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESCRIPTION = "TinyALSA is a small library to interface with ALSA in \
-the Linux kernel. It is a lightweight alternative to libasound."
-HOMEPAGE = "https://github.com/tinyalsa/tinyalsa"
-SECTION = "libs/multimedia"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b"
-
-S = "${WORKDIR}/git"
-SRCREV = "df11091086b56e5fb71887f2fa320e1d2ffeff58"
-SRC_URI = "git://github.com/tinyalsa/tinyalsa.git;protocol=https;"
-
-do_configure() {
- :
-}
-
-do_compile() {
- oe_runmake CC='${CC}' LD='${CC}' AR='${AR}'
-}
-
-do_install() {
- oe_runmake install \
- PREFIX="${prefix}" DESTDIR="${D}" INCDIR="${includedir}/tinyalsa" \
- LIBDIR="${libdir}" BINDIR="${bindir}" MANDIR="${mandir}"
-}
-
-PACKAGES =+ "${PN}-tools"
-FILES_${PN}-tools = "${bindir}/*"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc
index 8e82b3b..f13c0ea 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc
@@ -5,7 +5,7 @@
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "libfribidi libtool libgcrypt libgcrypt-native \
+DEPENDS = "fribidi libtool libgcrypt libgcrypt-native \
dbus dbus-glib libxml2 gnutls \
tremor faad2 ffmpeg flac fluidsynth alsa-lib \
lua-native lua libidn \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb
index e43cb40..8e9914b 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb
@@ -8,7 +8,7 @@
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "libogg libvorbis curl libao"
+DEPENDS = "libogg libvorbis"
SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \
file://0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch \
@@ -20,6 +20,7 @@
inherit autotools pkgconfig gettext
-PACKAGECONFIG ??= "flac"
+PACKAGECONFIG ??= "flac ogg123"
PACKAGECONFIG[flac] = ",--without-flac,flac,libflac"
PACKAGECONFIG[speex] = ",--without-speex,speex,speex"
+PACKAGECONFIG[ogg123] = "--enable-ogg123,--disable-ogg123,libao curl"
diff --git a/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_0.2.3.bb b/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_0.2.3.bb
deleted file mode 100644
index 07d0c55..0000000
--- a/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_0.2.3.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Profiling utilities for GStreamer 1.0 pipelines"
-HOMEPAGE = "https://github.com/kirushyk/gst-instruments"
-SECTION = "multimedia"
-
-LICENSE = "LGPL-3.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-DEPENDS = "gstreamer1.0"
-
-S = "${WORKDIR}/git"
-SRCREV = "4ce8092636ee6572148b5fa044080734cf5a6b8d"
-SRC_URI = "git://github.com/kirushyk/gst-instruments.git;protocol=https;"
-
-FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*a"
-FILES_${PN} += "${libdir}/*"
-
-INSANE_SKIP_${PN} = "dev-so"
-
-inherit autotools pkgconfig
-
diff --git a/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb b/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
new file mode 100644
index 0000000..feffa9f
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Profiling utilities for GStreamer 1.0 pipelines"
+HOMEPAGE = "https://github.com/kirushyk/gst-instruments"
+SECTION = "multimedia"
+
+LICENSE = "LGPL-3.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+DEPENDS = "gstreamer1.0"
+
+S = "${WORKDIR}/git"
+SRCREV = "3b862e52e5c53ad1023dc6808effa4cb75572c4b"
+SRC_URI = "git://github.com/kirushyk/gst-instruments.git;protocol=https;"
+
+FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*a"
+FILES_${PN} += "${libdir}/*"
+
+INSANE_SKIP_${PN} = "dev-so"
+
+inherit autotools pkgconfig
+
diff --git a/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb b/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb
deleted file mode 100644
index ee8c68b..0000000
--- a/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "library implementing Secure RTP (RFC 3711)"
-HOMEPAGE = "https://github.com/cisco/libsrtp"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=15bc16b9d2e305974dde47e733883714"
-
-S = "${WORKDIR}/git"
-SRCREV = "e806a66bad35f4b215b7a825c24ef0ec4cc19569"
-SRC_URI = "git://github.com/cisco/libsrtp.git;protocol=https; \
- file://0001-Rename-conflicting-variable-mips.patch \
- "
-
-inherit autotools
-
-do_install[postfuncs] += " rm_unused_bindir "
-
-rm_unused_bindir() {
- rmdir ${D}/${bindir}
-}
-
-ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.6.0.bb b/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.6.0.bb
new file mode 100644
index 0000000..d3ab5b7
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.6.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "library implementing Secure RTP (RFC 3711)"
+HOMEPAGE = "https://github.com/cisco/libsrtp"
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=15bc16b9d2e305974dde47e733883714"
+
+S = "${WORKDIR}/git"
+SRCREV = "2b091a4fb21c9b06fc5d4b5763bdaec97542fcd7"
+SRC_URI = "git://github.com/cisco/libsrtp.git;protocol=https;branch=1_6_x_throttle; \
+ file://0001-Rename-conflicting-variable-mips.patch \
+ "
+
+inherit autotools
+
+ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-openembedded/meta-networking/MAINTAINERS b/meta-openembedded/meta-networking/MAINTAINERS
index bbb2d1b..945ee86 100644
--- a/meta-openembedded/meta-networking/MAINTAINERS
+++ b/meta-openembedded/meta-networking/MAINTAINERS
@@ -2,34 +2,12 @@
Please submit any patches against meta-networking to the OpenEmbedded
development mailing list (openembedded-devel@lists.openembedded.org) with
-'[meta-networking]' in the subject.
+'[meta-networking][thud]' in the subject.
When sending single patches, please use something like:
git send-email -1 -M \
--to openembedded-devel@lists.openembedded.org \
- --subject-prefix=meta-networking][PATCH
+ --subject-prefix=meta-networking][thud][PATCH
-You may also contact the maintainers directly.
-
-Descriptions of section entries:
-
- M: Mail patches to: FullName <address@domain>
- F: Files and directories with wildcard patterns.
- A trailing slash includes all files and subdirectory files.
- F: recipes-devtools/ all files in and below recipes-devtools
- F: recipes-selinux/* all files in recipes-selinux, but not below
- One pattern per line. Multiple F: lines acceptable.
-
-Please keep this list in alphabetical order.
-
-Maintainers List (try to look for most precise areas first)
-
-COMMON
-M: Joe MacDonald <joe_macdonald@mentor.com>
-F: conf
-F: recipes-*
-
-NETKIT
-M: Armin Kuster <akuster808@gmail.com>
-F: recipes-netkit
+Thud Maintainer: Armin Kuster <akuster808@gmail.com>
diff --git a/meta-openembedded/meta-networking/README b/meta-openembedded/meta-networking/README
index e1ba27d..7a4aca4 100644
--- a/meta-openembedded/meta-networking/README
+++ b/meta-openembedded/meta-networking/README
@@ -18,19 +18,19 @@
This layer depends on:
URI: git://github.com/openembedded/openembedded-core.git
-branch: master
+branch: thud
revision: HEAD
For some recipes, the meta-oe layer is required:
URI: git://github.com/openembedded/meta-openembedded.git
subdirectory: meta-oe
-branch: master
+branch: thud
revision: HEAD
URI: git://github.com/openembedded/meta-openembedded.git
subdirectory: meta-python
-branch: master
+branch: thud
revision: HEAD
Maintenance
diff --git a/meta-openembedded/meta-networking/classes/kernel_wireless_regdb.bbclass b/meta-openembedded/meta-networking/classes/kernel_wireless_regdb.bbclass
new file mode 100644
index 0000000..1238172
--- /dev/null
+++ b/meta-openembedded/meta-networking/classes/kernel_wireless_regdb.bbclass
@@ -0,0 +1,20 @@
+# Linux kernels before v4.15, allowed to be compiled with static
+# regulatory database if it was put under net/wireless/db.txt.
+#
+# This class copies the regulatory plaintext database to kernel sources before
+# compiling.
+#
+# Usage:
+# 1. The class should be inherited by kernel recipe (e.g. in
+# linux-yocto_%.bbappend).
+# 2. For Linux kernels up to v4.14, build kernel with CONFIG_EXPERT and
+# CONFIG_CFG80211_INTERNAL_REGDB.
+
+DEPENDS += "wireless-regdb-native"
+
+SRCTREECOVEREDTASKS += "do_kernel_add_regdb"
+do_kernel_add_regdb() {
+ cp ${STAGING_LIBDIR_NATIVE}/crda/db.txt ${S}/net/wireless/db.txt
+}
+do_kernel_add_regdb[dirs] = "${S}"
+addtask kernel_add_regdb before do_build after do_configure
diff --git a/meta-openembedded/meta-networking/conf/layer.conf b/meta-openembedded/meta-networking/conf/layer.conf
index e594b7b..d36ff5b 100644
--- a/meta-openembedded/meta-networking/conf/layer.conf
+++ b/meta-openembedded/meta-networking/conf/layer.conf
@@ -17,7 +17,7 @@
LAYERDEPENDS_networking-layer += "openembedded-layer"
LAYERDEPENDS_networking-layer += "meta-python"
-LAYERSERIES_COMPAT_networking-layer = "sumo"
+LAYERSERIES_COMPAT_networking-layer = "thud"
LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
new file mode 100644
index 0000000..a5cd998
--- /dev/null
+++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
@@ -0,0 +1,40 @@
+Checking uname sysname type: "Linux"
+Checking uname version type: "# Wed May 20 10:34:39 UTC 2015"
+Checking simple C program: "hello world"
+rpath library support: OK
+-Wl,--version-script support: OK
+Checking getconf LFS_CFLAGS: NO
+Checking correct behavior of strtoll: NO
+Checking for working strptime: OK
+Checking for C99 vsnprintf: "1"
+Checking for HAVE_SHARED_MMAP: OK
+Checking for HAVE_MREMAP: OK
+Checking for HAVE_SECURE_MKSTEMP: OK
+Checking for HAVE_IFACE_GETIFADDRS: NO
+Checking for HAVE_IFACE_IFCONF: NO
+Checking for HAVE_IFACE_IFREQ: NO
+Checking for large file support without additional flags: NO
+Checking for -D_FILE_OFFSET_BITS=64: OK
+Checking for HAVE_INCOHERENT_MMAP: NO
+Checking value of NSIG: "65"
+Checking value of _NSIG: "65"
+Checking value of SIGRTMAX: "64"
+Checking value of SIGRTMIN: "34"
+Checking whether the WRFILE -keytab is supported: OK
+Checking for kernel change notify support: OK
+Checking for Linux kernel oplocks: OK
+Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
+Checking if can we convert from CP850 to UCS-2LE: OK
+Checking if can we convert from UTF-8 to UCS-2LE: OK
+vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
+Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
+Checking whether fcntl locking is available: OK
+Checking for the maximum value of the 'time_t' type: NO
+Checking whether the realpath function allows a NULL argument: OK
+Checking for ftruncate extend: OK
+getcwd takes a NULL argument: OK
+Checking for small off_t: NO
+Checking whether blkcnt_t is 32 bit: NO
+Checking whether blkcnt_t is 64 bit: OK
+Checking whether fcntl lock supports open file description locks: OK
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch
new file mode 100644
index 0000000..269174b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch
@@ -0,0 +1,31 @@
+From 77db892cdee265e971270c06ca1ffbaeea6449a3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 26 Jun 2018 00:27:40 +0200
+Subject: [PATCH] Search for cython3
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 727089d1..6b565cdc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,7 +58,7 @@ AC_SUBST([PYGOBJECT_LIBS])
+
+ AC_ARG_VAR([CYTHONEXEC], [Cython compiler])
+ if test "x$CYTHONEXEC" = "x"; then
+- AC_PATH_PROG([CYTHONEXEC],[cython])
++ AC_PATH_PROG([CYTHONEXEC],[cython3])
+ fi
+ AC_SUBST([CYTHONEXEC])
+ AC_MSG_CHECKING([for cython executable])
+--
+2.14.3
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb
new file mode 100644
index 0000000..947db78
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "bluez5 python3-pygobject python3-cython-native python3-setuptools-native intltool-native"
+
+inherit autotools systemd gsettings python3native gtk-icon-cache
+
+SRC_URI = " \
+ git://github.com/blueman-project/blueman.git \
+ file://0001-Search-for-cython3.patch \
+"
+SRCREV = "c4a03417e81e21543d4568e8e7f7de307582eb50"
+PV = "2.0.5+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = " \
+ --disable-runtime-deps-check \
+ --disable-schemas-compile \
+"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}-mechanism.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+RRECOMENDS_${PN} += "adwaita-icon-theme"
+RDEPENDS_${PN} += " \
+ python3-dbus \
+ packagegroup-tools-bluetooth \
+"
+
+PACKAGECONFIG[thunar] = "--enable-thunar-sendto,--disable-thunar-sendto,,thunar"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/Thunar \
+ ${systemd_user_unitdir} \
+ ${exec_prefix}${systemd_system_unitdir} \
+ ${PYTHON_SITEPACKAGES_DIR} \
+"
+
+FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/_blueman.a"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch
new file mode 100644
index 0000000..eecbc14
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch
@@ -0,0 +1,40 @@
+From 21e9a4bb214648ffd43c66b535fbf096bfcc9f4f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 24 Jun 2018 00:04:37 -0700
+Subject: [PATCH] Unittest: Link librt and libm using -l option
+
+cmake'ry forces full path to .so files when found using
+find_package and since we have proper sysrooted toolchain
+-lm and -lrt is all we need
+
+Upstream-Status: Inappropriate [Cross compile specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ unittest/CMakeLists.txt | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
+index c4cdf229..e1b63caf 100644
+--- a/unittest/CMakeLists.txt
++++ b/unittest/CMakeLists.txt
+@@ -57,14 +57,8 @@ elseif (WIN32)
+ else()
+ set(CHECK_LIBRARIES "${CHECK_INSTALL_DIR}/lib/libcheck.a")
+ endif()
+-find_package(LibM)
+-if (LIBM_FOUND)
+- set(CHECK_LIBRARIES "${CHECK_LIBRARIES};LIBM::LIBM")
+-endif()
+-find_package(LibRt)
+-if (LIBRT_FOUND)
+- set(CHECK_LIBRARIES "${CHECK_LIBRARIES};LIBRT::LIBRT")
+-endif()
++set(CHECK_LIBRARIES "${CHECK_LIBRARIES};-lm")
++set(CHECK_LIBRARIES "${CHECK_LIBRARIES};-lrt")
+
+ # Build the C unit tests
+ add_library(shared-c-unit-tests STATIC shared.c)
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch
new file mode 100644
index 0000000..8653302
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch
@@ -0,0 +1,26 @@
+From 59f65235a7a690f50d1686e9977908c053697d8c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 28 Aug 2018 22:59:13 -0700
+Subject: [PATCH] undefine macro before redefining
+
+Fixes
+src/main.c:89:9: error: 'printf' macro redefined [-Werror,-Wmacro-redefined]
+
+Upstream-Stats: Submitted [https://github.com/civetweb/civetweb/pull/649]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/main.c b/src/main.c
+index bbcb0aec..01191a3c 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -86,6 +86,7 @@
+
+ #include "civetweb.h"
+
++#undef printf
+ #define printf \
+ DO_NOT_USE_THIS_FUNCTION__USE_fprintf /* Required for unit testing */
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
new file mode 100644
index 0000000..d681f7f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Civetweb embedded web server"
+HOMEPAGE = "https://github.com/civetweb/civetweb"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6f28fdcba0dda735eed62bac6a397562"
+
+SRCREV = "19f31ba8dd8443e86c7028a4b4c37f4b299aa68c"
+PV = "1.10+git${SRCPV}"
+SRC_URI = "git://github.com/civetweb/civetweb.git \
+ file://0001-Unittest-Link-librt-and-libm-using-l-option.patch \
+ file://0001-undefine-macro-before-redefining.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+# civetweb supports building with make or cmake (although cmake lacks few features)
+inherit cmake
+
+# Disable Lua and Duktape because they do not compile from CMake (as of v1.8, v1.9 and v1.10).
+# Disable ASAN as it is included only in Debug build.
+EXTRA_OECMAKE = " \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCIVETWEB_ENABLE_DUKTAPE=OFF \
+ -DCIVETWEB_ENABLE_LUA=OFF \
+ -DCIVETWEB_ENABLE_ASAN=OFF \
+ -DCIVETWEB_BUILD_TESTING=OFF \
+"
+
+# Building with ninja fails on missing third_party/lib/libcheck.a (which
+# should come from external CMake project)
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+PACKAGECONFIG ??= "caching ipv6 server ssl websockets"
+PACKAGECONFIG[caching] = "-DCIVETWEB_DISABLE_CACHING=OFF,-DCIVETWEB_DISABLE_CACHING=ON,"
+PACKAGECONFIG[cgi] = "-DCIVETWEB_DISABLE_CGI=OFF,-DCIVETWEB_DISABLE_CGI=ON,"
+PACKAGECONFIG[cpp] = "-DCIVETWEB_ENABLE_CXX=ON,-DCIVETWEB_ENABLE_CXX=OFF,"
+PACKAGECONFIG[debug] = "-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=ON,-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=OFF,"
+PACKAGECONFIG[ipv6] = "-DCIVETWEB_ENABLE_IPV6=ON,-DCIVETWEB_ENABLE_IPV6=OFF,"
+PACKAGECONFIG[server] = "-DCIVETWEB_INSTALL_EXECUTABLE=ON,-DCIVETWEB_INSTALL_EXECUTABLE=OFF,"
+PACKAGECONFIG[ssl] = "-DCIVETWEB_ENABLE_SSL=ON -DCIVETWEB_SSL_OPENSSL_API_1_1=OFF -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF,-DCIVETWEB_ENABLE_SSL=OFF,openssl (=1.0.2%),"
+PACKAGECONFIG[websockets] = "-DCIVETWEB_ENABLE_WEBSOCKETS=ON,-DCIVETWEB_ENABLE_WEBSOCKETS=OFF,"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb b/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb
index 82a297b..d5d2ab6 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb
@@ -4,7 +4,10 @@
LICENSE = "copyleft-next-0.3.0"
LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe"
-DEPENDS = "python-m2crypto-native python-typing-native python-native libgcrypt libnl openssl"
+DEPENDS = "python-m2crypto-native python-typing-native python-native libnl \
+ ${@oe.utils.conditional("DEFAULT_CRYPT", "gcrypt", "libgcrypt", "", d)} \
+ ${@oe.utils.conditional("DEFAULT_CRYPT", "openssl", "openssl10", "", d)} \
+ "
SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \
file://do-not-run-ldconfig-if-destdir-is-set.patch \
@@ -18,10 +21,15 @@
SRC_URI[md5sum] = "0431fef3067bf503dfb464069f06163a"
SRC_URI[sha256sum] = "43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf"
-inherit python-dir pythonnative
+inherit python-dir pythonnative siteinfo
+
+# "gcrypt" or "openssl"
+DEFAULT_CRYPT ??= "gcrypt"
+
# Recursive make problem
-EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg'"
-EXTRA_OEMAKE_append = " USE_OPENSSL=1"
+EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg' \
+ UDEV_RULE_DIR=${nonarch_libdir}/udev/rules.d/"
+EXTRA_OEMAKE_append = " ${@oe.utils.conditional("DEFAULT_CRYPT", "openssl", "USE_OPENSSL=1", "", d)}"
TARGET_BITS = "${SITEINFO_BITS}"
export TARGET_BITS
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb
index ec35175..42ffb17 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb
@@ -6,7 +6,7 @@
PARALLEL_MAKE = ""
-DEPENDS = "libpcap libpcre libdnet"
+DEPENDS = "libpcap libpcre libdnet bison-native"
SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \
file://disable-run-test-program-while-cross-compiling.patch \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-freeradius-correct-version-number-of-libssl-defect.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-freeradius-correct-version-number-of-libssl-defect.patch
new file mode 100644
index 0000000..9e1f5b2
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-freeradius-correct-version-number-of-libssl-defect.patch
@@ -0,0 +1,44 @@
+From fecf974b63f72eeb12d3b43522e948ca2bc704d4 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 11 Oct 2018 09:45:52 +0800
+Subject: [PATCH] freeradius: correct version number of libssl defect
+
+Upstream-Status: Backport [https://github.com/FreeRADIUS/freeradius-server
+ /commit/ad039347beca4ded297813a1da6eabb61fcf2ddd]
+
+upstream have refactored this part code into
+src/lib/tls/base.c, and problem also have fixed
+by commit ad039347beca
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ src/main/tls.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/main/tls.c b/src/main/tls.c
+index acbfe79..d9c91f1 100644
+--- a/src/main/tls.c
++++ b/src/main/tls.c
+@@ -72,15 +72,15 @@ typedef struct libssl_defect {
+ static libssl_defect_t libssl_defects[] =
+ {
+ {
+- .low = 0x01010101f, /* 1.1.0a */
+- .high = 0x01010101f, /* 1.1.0a */
++ .low = 0x01010001f, /* 1.1.0a */
++ .high = 0x01010001f, /* 1.1.0a */
+ .id = "CVE-2016-6309",
+ .name = "OCSP status request extension",
+ .comment = "For more information see https://www.openssl.org/news/secadv/20160926.txt"
+ },
+ {
+- .low = 0x01010100f, /* 1.1.0 */
+- .high = 0x01010100f, /* 1.1.0 */
++ .low = 0x010100000f, /* 1.1.0 */
++ .high = 0x01010000f, /* 1.1.0 */
+ .id = "CVE-2016-6304",
+ .name = "OCSP status request extension",
+ .comment = "For more information see https://www.openssl.org/news/secadv/20160922.txt"
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch
index 30497a6..38e7c36 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch
@@ -1,3 +1,6 @@
+From 0780b7053fb0d33d721aa70ab2ecd75299e5ba31 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 15:03:39 +0800
Subject: [PATCH] configure.ac: allow cross-compilation
The checking OpenSSL library and header version consistency will
@@ -8,17 +11,20 @@
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+update to new version 3.0.17 to fix patch warning
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
src/modules/rlm_krb5/configure.ac | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/modules/rlm_krb5/configure.ac b/src/modules/rlm_krb5/configure.ac
-index eb43534..113a079 100644
+index efc9f29..98a97e4 100644
--- a/src/modules/rlm_krb5/configure.ac
+++ b/src/modules/rlm_krb5/configure.ac
@@ -137,7 +137,8 @@ if test x$with_[]modname != xno; then
FR_SMART_CHECK_LIB(krb5, krb5_is_thread_safe)
- if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" == xyes; then
+ if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" = xyes; then
AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]], [[return krb5_is_thread_safe() ? 0 : 1]])],
- [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])])
+ [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])],
@@ -27,5 +33,5 @@
else
krb5threadsafe=""
--
-2.10.2
+2.7.4
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch
index d29b2ac..638d950 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch
@@ -1,32 +1,33 @@
-From d8e251ef97869ab2c1c82bd374016f402083997c Mon Sep 17 00:00:00 2001
-From: Jorge Pereira <jpereiran@gmail.com>
-Date: Mon, 7 Dec 2015 16:51:07 -0200
-Subject: [PATCH] Fixing issues related to m4 include path
+From 69cb6d4bb5dd56a48695c0581a7d853e427b0ea3 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 14:54:41 +0800
+Subject: [PATCH] freeradius: Fixing issues related to m4 include path
Upstream-Status: Submitted [1]
[1]: https://github.com/FreeRADIUS/freeradius-server/pull/1428
Submmited by: Jorge Pereira <jpereiran@gmail.com>
+
+Update to version 3.0.17
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- src/modules/rlm_example/config.h.in | 39 ++--------------------
- src/modules/rlm_ldap/configure | 2 +-
- src/modules/rlm_pam/config.h.in | 3 ++
- src/modules/rlm_perl/config.h.in | 3 ++
- src/modules/rlm_perl/configure.ac | 2 +-
- src/modules/rlm_radutmp/config.h.in | 3 ++
- src/modules/rlm_ruby/configure | 1 +
- src/modules/rlm_ruby/configure.ac | 9 ++---
- src/modules/rlm_smsotp/config.h.in | 3 ++
- .../rlm_sql/drivers/rlm_sql_mysql/config.h.in | 3 ++
- src/modules/rlm_unix/config.h.in | 6 ++++
- 11 files changed, 32 insertions(+), 42 deletions(-)
+ src/modules/rlm_example/config.h.in | 35 +++--------------------------------
+ src/modules/rlm_pam/config.h.in | 3 +++
+ src/modules/rlm_perl/config.h.in | 3 +++
+ src/modules/rlm_perl/configure.ac | 2 +-
+ src/modules/rlm_radutmp/config.h.in | 3 +++
+ src/modules/rlm_ruby/configure.ac | 8 ++++----
+ src/modules/rlm_smsotp/config.h.in | 3 +++
+ src/modules/rlm_unix/config.h.in | 3 +++
+ 8 files changed, 23 insertions(+), 37 deletions(-)
diff --git a/src/modules/rlm_example/config.h.in b/src/modules/rlm_example/config.h.in
-index 2a81ef5..f80de9c 100644
+index 2a81ef5..4dbb8f4 100644
--- a/src/modules/rlm_example/config.h.in
+++ b/src/modules/rlm_example/config.h.in
-@@ -1,38 +1,5 @@
+@@ -1,37 +1,5 @@
/* config.h.in. Generated from configure.ac by autoheader. */
-/* Define to 1 if you have the <inttypes.h> header file. */
@@ -61,11 +62,10 @@
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
--
+
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
-
-@@ -45,8 +12,8 @@
+@@ -45,6 +13,9 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
@@ -74,22 +74,7 @@
+
/* Define to the version of this package. */
#undef PACKAGE_VERSION
--
--/* Define to 1 if you have the ANSI C header files. */
--#undef STDC_HEADERS
-diff --git a/src/modules/rlm_ldap/configure b/src/modules/rlm_ldap/configure
-index e0c15d9..cdf96d5 100755
---- a/src/modules/rlm_ldap/configure
-+++ b/src/modules/rlm_ldap/configure
-@@ -3992,7 +3992,7 @@ smart_prefix=
- $as_echo "#define WITH_SASL 1" >>confdefs.h
- SASL=sasl.c
-- fi
-+ fi
- fi
-
- targetname=rlm_ldap
diff --git a/src/modules/rlm_pam/config.h.in b/src/modules/rlm_pam/config.h.in
index 32ef6ff..1ad20c5 100644
--- a/src/modules/rlm_pam/config.h.in
@@ -118,7 +103,7 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
diff --git a/src/modules/rlm_perl/configure.ac b/src/modules/rlm_perl/configure.ac
-index 44c5fc9..6b2a043 100644
+index 4b3ff42..69c79cb 100644
--- a/src/modules/rlm_perl/configure.ac
+++ b/src/modules/rlm_perl/configure.ac
@@ -3,7 +3,7 @@ AC_INIT(rlm_perl.c)
@@ -144,23 +129,11 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-diff --git a/src/modules/rlm_ruby/configure b/src/modules/rlm_ruby/configure
-index 15868ab..c728af2 100755
---- a/src/modules/rlm_ruby/configure
-+++ b/src/modules/rlm_ruby/configure
-@@ -1875,6 +1875,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-+
- # ===========================================================================
- # http://www.gnu.org/software/autoconf-archive/ax_compare_version.html
- # ===========================================================================
diff --git a/src/modules/rlm_ruby/configure.ac b/src/modules/rlm_ruby/configure.ac
-index 9306382..f1c8118 100644
+index 9306382..ae86a14 100644
--- a/src/modules/rlm_ruby/configure.ac
+++ b/src/modules/rlm_ruby/configure.ac
-@@ -3,15 +3,16 @@ AC_INIT(rlm_ruby.c)
+@@ -3,15 +3,15 @@ AC_INIT(rlm_ruby.c)
AC_REVISION($Revision: 1.9 $)
AC_DEFUN(modname,[rlm_ruby])
@@ -174,7 +147,6 @@
-m4_include([ax_compare_version.m4])
-m4_include([ax_prog_ruby_version.m4])
-m4_include([ax_ruby_devel.m4])
-+
+m4_include([m4/ax_compare_version.m4])
+m4_include([m4/ax_prog_ruby_version.m4])
+m4_include([m4/ax_ruby_devel.m4])
@@ -195,33 +167,11 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in b/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in
-index e03d1a9..6262c48 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in
-@@ -18,5 +18,8 @@
- /* Define to the one symbol short name of this package. */
- #undef PACKAGE_TARNAME
-
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
- /* Define to the version of this package. */
- #undef PACKAGE_VERSION
diff --git a/src/modules/rlm_unix/config.h.in b/src/modules/rlm_unix/config.h.in
-index dcb9aa2..70b4680 100644
+index dcb9aa2..16107b8 100644
--- a/src/modules/rlm_unix/config.h.in
+++ b/src/modules/rlm_unix/config.h.in
-@@ -1,5 +1,8 @@
- /* config.h.in. Generated from configure.ac by autoheader. */
-
-+/* Define to 1 if you have the `getpwnam' function. */
-+#undef HAVE_GETPWNAM
-+
- /* Define to 1 if you have the `getspnam' function. */
- #undef HAVE_GETSPNAM
-
-@@ -54,6 +57,9 @@
+@@ -54,6 +54,9 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
@@ -232,5 +182,5 @@
#undef PACKAGE_VERSION
--
-2.3.5
+2.7.4
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb
deleted file mode 100644
index 4155a40..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb
+++ /dev/null
@@ -1,222 +0,0 @@
-DESCRIPTION = "FreeRADIUS is an Internet authentication daemon, which implements the RADIUS \
-protocol, as defined in RFC 2865 (and others). It allows Network Access \
-Servers (NAS boxes) to perform authentication for dial-up users. There are \
-also RADIUS clients available for Web servers, firewalls, Unix logins, and \
-more. Using RADIUS allows authentication and authorization for a network to \
-be centralized, and minimizes the amount of re-configuration which has to be \
-done when adding or deleting new users."
-
-SUMMARY = "High-performance and highly configurable RADIUS server"
-HOMEPAGE = "http://www.freeradius.org/"
-SECTION = "System/Servers"
-LICENSE = "GPLv2 & LGPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
-DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc"
-
-SRC_URI = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${PV}.tar.bz2 \
- file://freeradius \
- file://volatiles.58_radiusd \
- file://freeradius-enble-user-in-conf.patch \
- file://freeradius-configure.ac-allow-cross-compilation.patch \
- file://freeradius-fix-issues-related-to-m4-include-path.patch \
- file://freeradius-libtool-detection.patch \
- file://freeradius-configure.ac-add-option-for-libcap.patch \
- file://freeradius-avoid-searching-host-dirs.patch \
- file://freeradius-rlm_python-add-PY_INC_DIR.patch \
- file://freeradius-libtool-do-not-use-jlibtool.patch \
- file://freeradius-fix-quoting-for-BUILT_WITH.patch \
- file://freeradius-fix-error-for-expansion-of-macro.patch \
- file://0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \
- file://radiusd.service \
- file://radiusd-volatiles.conf \
-"
-SRC_URI[md5sum] = "0c81a4464ccf1d04f7ef1218a029d37a"
-SRC_URI[sha256sum] = "23267d8505e7b2909f5bdbf3938ca077c1fe122290dc969304d4f3b594f7e3ba"
-
-PARALLEL_MAKE = ""
-
-S = "${WORKDIR}/freeradius-server-${PV}"
-
-EXTRA_OECONF = " --enable-strict-dependencies \
- --with-docdir=${docdir}/freeradius-${PV} \
- --with-openssl-includes=${STAGING_INCDIR} \
- --with-openssl-libraries=${STAGING_LIBDIR} \
- --without-rlm_ippool \
- --without-rlm_cache_memcached \
- --without-rlm_counter \
- --without-rlm_couchbase \
- --without-rlm_dbm \
- --without-rlm_eap_tnc \
- --without-rlm_eap_ikev2 \
- --without-rlm_opendirectory \
- --without-rlm_redis \
- --without-rlm_rediswho \
- --without-rlm_sql_db2 \
- --without-rlm_sql_firebird \
- --without-rlm_sql_freetds \
- --without-rlm_sql_iodbc \
- --without-rlm_sql_oracle \
- --without-rlm_sql_sybase \
- --without-rlm_sqlhpwippool \
- ac_cv_path_PERL=${bindir}/perl \
- ax_cv_cc_builtin_choose_expr=no \
- ax_cv_cc_builtin_types_compatible_p=no \
- ax_cv_cc_builtin_bswap64=no \
- ax_cv_cc_bounded_attribute=no \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
- pcre libcap \
-"
-
-PACKAGECONFIG[krb5] = "--with-rlm_krb5,--without-rlm_krb5,krb5"
-PACKAGECONFIG[pam] = "--with-rlm_pam,--without-rlm_pam,libpam"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[ldap] = "--with-rlm_ldap,--without-rlm_ldap,openldap"
-PACKAGECONFIG[mysql] = "--with-rlm_sql_mysql,--without-rlm_sql_mysql,mysql5"
-PACKAGECONFIG[sqlite] = "--with-rlm_sql_sqlite,--without-rlm_sql_sqlite,sqlite3"
-PACKAGECONFIG[unixodbc] = "--with-rlm_sql_unixodbc,--without-rlm_sql_unixodbc,unixodbc"
-PACKAGECONFIG[postgresql] = "--with-rlm_sql_postgresql,--without-rlm_sql_postgresql,postgresql"
-PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre"
-PACKAGECONFIG[perl] = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --with-rlm_perl,--without-rlm_perl,perl-native perl,perl"
-PACKAGECONFIG[python] = "--with-rlm_python --with-rlm-python-bin=${STAGING_BINDIR_NATIVE}/python-native/python --with-rlm-python-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python,python-native python"
-PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c"
-PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby"
-
-inherit useradd autotools-brokensep update-rc.d systemd
-
-# This is not a cpan or python based package, but it needs some definitions
-# from cpan-base and python-dir bbclasses for building rlm_perl and rlm_python
-# correctly.
-inherit cpan-base python-dir
-
-# The modules subdirs also need to be processed by autoreconf. Use autogen.sh
-# in order to handle the subdirs correctly.
-do_configure () {
- ./autogen.sh
-
- # the configure of rlm_perl needs this to get correct
- # mod_cflags and mod_ldflags
- if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then
- export PERL5LIB="${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
- fi
-
- oe_runconf
-
- # we don't need dhcpclient
- sed -i -e 's/dhcpclient.mk//' ${S}/src/modules/proto_dhcp/all.mk
-}
-
-INITSCRIPT_NAME = "radiusd"
-
-SYSTEMD_SERVICE_${PN} = "radiusd.service"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false --user-group radiusd"
-
-do_install() {
- rm -rf ${D}
- mkdir -p ${D}/${sysconfdir}/logrotate.d
- mkdir -p ${D}/${sysconfdir}/pam.d
- mkdir -p ${D}/${sysconfdir}/init.d
- mkdir -p ${D}/${localstatedir}/lib/radiusd
- mkdir -p ${D}${sysconfdir}/default/volatiles
-
- export LD_LIBRARY_PATH=${D}/${libdir}
- oe_runmake install R=${D} INSTALLSTRIP=""
-
- # remove unsupported config files
- rm -f ${D}/${sysconfdir}/raddb/experimental.conf
-
- # remove scripts that required Perl(DBI)
- rm -rf ${D}/${bindir}/radsqlrelay
-
- cp -f ${WORKDIR}/freeradius ${D}/etc/init.d/radiusd
- rm -f ${D}/${sbindir}/rc.radiusd
- chmod +x ${D}/${sysconfdir}/init.d/radiusd
- rm -rf ${D}/${localstatedir}/run/
- install -m 0644 ${WORKDIR}/volatiles.58_radiusd ${D}${sysconfdir}/default/volatiles/58_radiusd
-
- chown -R radiusd:radiusd ${D}/${sysconfdir}/raddb/
- chown -R radiusd:radiusd ${D}/${localstatedir}/lib/radiusd
-
- # For systemd
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/radiusd.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- -e 's,@STATEDIR@,${localstatedir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- ${D}${systemd_unitdir}/system/radiusd.service
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/
- fi
-}
-
-# This is only needed when we install/update on a running target.
-#
-pkg_postinst_${PN} () {
- if [ -z "$D" ]; then
- if command -v systemd-tmpfiles >/dev/null; then
- # create /var/log/radius, /var/run/radiusd
- systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/radiusd-volatiles.conf
- elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
-
- # Fix ownership for /etc/raddb/*, /var/lib/radiusd
- chown -R radiusd:radiusd ${sysconfdir}/raddb
- chown -R radiusd:radiusd ${localstatedir}/lib/radiusd
- fi
-}
-
-# We really need the symlink :(
-INSANE_SKIP_${PN} = "dev-so"
-INSANE_SKIP_${PN}-krb5 = "dev-so"
-INSANE_SKIP_${PN}-ldap = "dev-so"
-INSANE_SKIP_${PN}-mysql = "dev-so"
-INSANE_SKIP_${PN}-perl = "dev-so"
-INSANE_SKIP_${PN}-postgresql = "dev-so"
-INSANE_SKIP_${PN}-python = "dev-so"
-INSANE_SKIP_${PN}-unixodbc = "dev-so"
-
-PACKAGES =+ "${PN}-utils ${PN}-ldap ${PN}-krb5 ${PN}-perl \
- ${PN}-python ${PN}-mysql ${PN}-postgresql ${PN}-unixodbc"
-
-FILES_${PN}-utils = "${bindir}/*"
-
-FILES_${PN}-ldap = "${libdir}/rlm_ldap.so* \
- ${sysconfdir}/raddb/mods-available/ldap \
-"
-
-FILES_${PN}-krb5 = "${libdir}/rlm_krb5.so* \
- ${sysconfdir}/raddb/mods-available/krb5 \
-"
-
-FILES_${PN}-perl = "${libdir}/rlm_perl.so* \
- ${sysconfdir}/raddb/mods-config/perl \
- ${sysconfdir}/raddb/mods-available/perl \
-"
-
-FILES_${PN}-python = "${libdir}/rlm_python.so* \
- ${sysconfdir}/raddb/mods-config/python \
- ${sysconfdir}/raddb/mods-available/python \
-"
-
-FILES_${PN}-mysql = "${libdir}/rlm_sql_mysql.so* \
- ${sysconfdir}/raddb/mods-config/sql/*/mysql \
- ${sysconfdir}/raddb/mods-available/sql \
-"
-
-FILES_${PN}-postgresql = "${libdir}/rlm_sql_postgresql.so* \
- ${sysconfdir}/raddb/mods-config/sql/*/postgresql \
-"
-
-FILES_${PN}-unixodbc = "${libdir}/rlm_sql_unixodbc.so*"
-
-FILES_${PN} =+ "${libdir}/rlm_*.so* ${libdir}/proto_*so*"
-
-RDEPENDS_${PN} += "perl"
-RDEPENDS_${PN}-utils = "${PN}"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb
new file mode 100644
index 0000000..c17d56d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb
@@ -0,0 +1,223 @@
+DESCRIPTION = "FreeRADIUS is an Internet authentication daemon, which implements the RADIUS \
+protocol, as defined in RFC 2865 (and others). It allows Network Access \
+Servers (NAS boxes) to perform authentication for dial-up users. There are \
+also RADIUS clients available for Web servers, firewalls, Unix logins, and \
+more. Using RADIUS allows authentication and authorization for a network to \
+be centralized, and minimizes the amount of re-configuration which has to be \
+done when adding or deleting new users."
+
+SUMMARY = "High-performance and highly configurable RADIUS server"
+HOMEPAGE = "http://www.freeradius.org/"
+SECTION = "System/Servers"
+LICENSE = "GPLv2 & LGPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
+DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc"
+
+SRC_URI = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${PV}.tar.bz2 \
+ file://freeradius \
+ file://volatiles.58_radiusd \
+ file://freeradius-enble-user-in-conf.patch \
+ file://freeradius-configure.ac-allow-cross-compilation.patch \
+ file://freeradius-fix-issues-related-to-m4-include-path.patch \
+ file://freeradius-libtool-detection.patch \
+ file://freeradius-configure.ac-add-option-for-libcap.patch \
+ file://freeradius-avoid-searching-host-dirs.patch \
+ file://freeradius-rlm_python-add-PY_INC_DIR.patch \
+ file://freeradius-libtool-do-not-use-jlibtool.patch \
+ file://freeradius-fix-quoting-for-BUILT_WITH.patch \
+ file://freeradius-fix-error-for-expansion-of-macro.patch \
+ file://0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \
+ file://radiusd.service \
+ file://radiusd-volatiles.conf \
+ file://0001-freeradius-correct-version-number-of-libssl-defect.patch \
+"
+SRC_URI[md5sum] = "1f4ad38f32101a7d50d818afa6f17339"
+SRC_URI[sha256sum] = "3f03404b6e4a4f410e1f15ea2ababfec7f8a7ae8a49836d8a0c137436d913b96"
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/freeradius-server-${PV}"
+
+EXTRA_OECONF = " --enable-strict-dependencies \
+ --with-docdir=${docdir}/freeradius-${PV} \
+ --with-openssl-includes=${STAGING_INCDIR} \
+ --with-openssl-libraries=${STAGING_LIBDIR} \
+ --without-rlm_ippool \
+ --without-rlm_cache_memcached \
+ --without-rlm_counter \
+ --without-rlm_couchbase \
+ --without-rlm_dbm \
+ --without-rlm_eap_tnc \
+ --without-rlm_eap_ikev2 \
+ --without-rlm_opendirectory \
+ --without-rlm_redis \
+ --without-rlm_rediswho \
+ --without-rlm_sql_db2 \
+ --without-rlm_sql_firebird \
+ --without-rlm_sql_freetds \
+ --without-rlm_sql_iodbc \
+ --without-rlm_sql_oracle \
+ --without-rlm_sql_sybase \
+ --without-rlm_sqlhpwippool \
+ ac_cv_path_PERL=${bindir}/perl \
+ ax_cv_cc_builtin_choose_expr=no \
+ ax_cv_cc_builtin_types_compatible_p=no \
+ ax_cv_cc_builtin_bswap64=no \
+ ax_cv_cc_bounded_attribute=no \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+ pcre libcap \
+"
+
+PACKAGECONFIG[krb5] = "--with-rlm_krb5,--without-rlm_krb5,krb5"
+PACKAGECONFIG[pam] = "--with-rlm_pam,--without-rlm_pam,libpam"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[ldap] = "--with-rlm_ldap,--without-rlm_ldap,openldap"
+PACKAGECONFIG[mysql] = "--with-rlm_sql_mysql,--without-rlm_sql_mysql,mysql5"
+PACKAGECONFIG[sqlite] = "--with-rlm_sql_sqlite,--without-rlm_sql_sqlite,sqlite3"
+PACKAGECONFIG[unixodbc] = "--with-rlm_sql_unixodbc,--without-rlm_sql_unixodbc,unixodbc"
+PACKAGECONFIG[postgresql] = "--with-rlm_sql_postgresql,--without-rlm_sql_postgresql,postgresql"
+PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre"
+PACKAGECONFIG[perl] = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --with-rlm_perl,--without-rlm_perl,perl-native perl,perl"
+PACKAGECONFIG[python] = "--with-rlm_python --with-rlm-python-bin=${STAGING_BINDIR_NATIVE}/python-native/python --with-rlm-python-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python,python-native python"
+PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c"
+PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby"
+
+inherit useradd autotools-brokensep update-rc.d systemd
+
+# This is not a cpan or python based package, but it needs some definitions
+# from cpan-base and python-dir bbclasses for building rlm_perl and rlm_python
+# correctly.
+inherit cpan-base python-dir
+
+# The modules subdirs also need to be processed by autoreconf. Use autogen.sh
+# in order to handle the subdirs correctly.
+do_configure () {
+ ./autogen.sh
+
+ # the configure of rlm_perl needs this to get correct
+ # mod_cflags and mod_ldflags
+ if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then
+ export PERL5LIB="${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
+ fi
+
+ oe_runconf
+
+ # we don't need dhcpclient
+ sed -i -e 's/dhcpclient.mk//' ${S}/src/modules/proto_dhcp/all.mk
+}
+
+INITSCRIPT_NAME = "radiusd"
+
+SYSTEMD_SERVICE_${PN} = "radiusd.service"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false --user-group radiusd"
+
+do_install() {
+ rm -rf ${D}
+ mkdir -p ${D}/${sysconfdir}/logrotate.d
+ mkdir -p ${D}/${sysconfdir}/pam.d
+ mkdir -p ${D}/${sysconfdir}/init.d
+ mkdir -p ${D}/${localstatedir}/lib/radiusd
+ mkdir -p ${D}${sysconfdir}/default/volatiles
+
+ export LD_LIBRARY_PATH=${D}/${libdir}
+ oe_runmake install R=${D} INSTALLSTRIP=""
+
+ # remove unsupported config files
+ rm -f ${D}/${sysconfdir}/raddb/experimental.conf
+
+ # remove scripts that required Perl(DBI)
+ rm -rf ${D}/${bindir}/radsqlrelay
+
+ cp -f ${WORKDIR}/freeradius ${D}/etc/init.d/radiusd
+ rm -f ${D}/${sbindir}/rc.radiusd
+ chmod +x ${D}/${sysconfdir}/init.d/radiusd
+ rm -rf ${D}/${localstatedir}/run/
+ install -m 0644 ${WORKDIR}/volatiles.58_radiusd ${D}${sysconfdir}/default/volatiles/58_radiusd
+
+ chown -R radiusd:radiusd ${D}/${sysconfdir}/raddb/
+ chown -R radiusd:radiusd ${D}/${localstatedir}/lib/radiusd
+
+ # For systemd
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/radiusd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@STATEDIR@,${localstatedir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${systemd_unitdir}/system/radiusd.service
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d/
+ install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/
+ fi
+}
+
+# This is only needed when we install/update on a running target.
+#
+pkg_postinst_${PN} () {
+ if [ -z "$D" ]; then
+ if command -v systemd-tmpfiles >/dev/null; then
+ # create /var/log/radius, /var/run/radiusd
+ systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/radiusd-volatiles.conf
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+
+ # Fix ownership for /etc/raddb/*, /var/lib/radiusd
+ chown -R radiusd:radiusd ${sysconfdir}/raddb
+ chown -R radiusd:radiusd ${localstatedir}/lib/radiusd
+ fi
+}
+
+# We really need the symlink :(
+INSANE_SKIP_${PN} = "dev-so"
+INSANE_SKIP_${PN}-krb5 = "dev-so"
+INSANE_SKIP_${PN}-ldap = "dev-so"
+INSANE_SKIP_${PN}-mysql = "dev-so"
+INSANE_SKIP_${PN}-perl = "dev-so"
+INSANE_SKIP_${PN}-postgresql = "dev-so"
+INSANE_SKIP_${PN}-python = "dev-so"
+INSANE_SKIP_${PN}-unixodbc = "dev-so"
+
+PACKAGES =+ "${PN}-utils ${PN}-ldap ${PN}-krb5 ${PN}-perl \
+ ${PN}-python ${PN}-mysql ${PN}-postgresql ${PN}-unixodbc"
+
+FILES_${PN}-utils = "${bindir}/*"
+
+FILES_${PN}-ldap = "${libdir}/rlm_ldap.so* \
+ ${sysconfdir}/raddb/mods-available/ldap \
+"
+
+FILES_${PN}-krb5 = "${libdir}/rlm_krb5.so* \
+ ${sysconfdir}/raddb/mods-available/krb5 \
+"
+
+FILES_${PN}-perl = "${libdir}/rlm_perl.so* \
+ ${sysconfdir}/raddb/mods-config/perl \
+ ${sysconfdir}/raddb/mods-available/perl \
+"
+
+FILES_${PN}-python = "${libdir}/rlm_python.so* \
+ ${sysconfdir}/raddb/mods-config/python \
+ ${sysconfdir}/raddb/mods-available/python \
+"
+
+FILES_${PN}-mysql = "${libdir}/rlm_sql_mysql.so* \
+ ${sysconfdir}/raddb/mods-config/sql/*/mysql \
+ ${sysconfdir}/raddb/mods-available/sql \
+"
+
+FILES_${PN}-postgresql = "${libdir}/rlm_sql_postgresql.so* \
+ ${sysconfdir}/raddb/mods-config/sql/*/postgresql \
+"
+
+FILES_${PN}-unixodbc = "${libdir}/rlm_sql_unixodbc.so*"
+
+FILES_${PN} =+ "${libdir}/rlm_*.so* ${libdir}/proto_*so*"
+
+RDEPENDS_${PN} += "perl"
+RDEPENDS_${PN}-utils = "${PN}"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb
index 190cd5f..a27dbae 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb
@@ -4,7 +4,7 @@
talkd, telnet, telnetd, tftp, tftpd, and uucpd."
HOMEPAGE = "http://www.gnu.org/software/inetutils"
SECTION = "net"
-DEPENDS = "ncurses netbase readline"
+DEPENDS = "ncurses netbase readline virtual/crypt"
LICENSE = "GPLv3"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch
new file mode 100644
index 0000000..fb16ecb
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch
@@ -0,0 +1,89 @@
+From 8ea2ee451a1af7c5b5c8f4b36c1f77d44442064d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Sep 2018 13:02:35 -0700
+Subject: [PATCH] Fix error: call of overloaded distance is ambiguous
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The boost::iterators::distance function template is an adapted version
+of std::distance for the Boost iterator traversal in 2.68 it has started
+to fail with argument dependent lookup and compiler is erroring out
+
+with
+
+error: call of overloaded ‘distance'
+
+boost implementation of distance is protected against being found by ADL
+
+The way function is called in libdhcp means it will be found via ADL and
+all namespaces will be considered which is providing problematic since
+its getting it from both std:: and boost:: namespaces
+
+so let it not rely on ADL by qualifying then calls with std:: namespace
+
+Upstream-Status: Submitted [https://github.com/isc-projects/kea/pull/103]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/dhcp/libdhcp++.cc | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/lib/dhcp/libdhcp++.cc b/src/lib/dhcp/libdhcp++.cc
+index 330c02b..ced705d 100644
+--- a/src/lib/dhcp/libdhcp++.cc
++++ b/src/lib/dhcp/libdhcp++.cc
+@@ -419,14 +419,14 @@ size_t LibDHCP::unpackOptions6(const OptionBuffer& buf,
+ // We previously did the lookup only for dhcp6 option space, but with the
+ // addition of S46 options, we now do it for every space.
+ range = idx.equal_range(opt_type);
+- num_defs = distance(range.first, range.second);
++ num_defs = std::distance(range.first, range.second);
+
+ // Standard option definitions do not include the definition for
+ // our option or we're searching for non-standard option. Try to
+ // find the definition among runtime option definitions.
+ if (num_defs == 0) {
+ range = runtime_idx.equal_range(opt_type);
+- num_defs = distance(range.first, range.second);
++ num_defs = std::distance(range.first, range.second);
+ }
+
+ OptionPtr opt;
+@@ -538,14 +538,14 @@ size_t LibDHCP::unpackOptions4(const OptionBuffer& buf,
+ // may be standard options in other spaces (e.g. radius). So we now do
+ // the lookup for every space.
+ range = idx.equal_range(opt_type);
+- num_defs = distance(range.first, range.second);
++ num_defs = std::distance(range.first, range.second);
+
+ // Standard option definitions do not include the definition for
+ // our option or we're searching for non-standard option. Try to
+ // find the definition among runtime option definitions.
+ if (num_defs == 0) {
+ range = runtime_idx.equal_range(opt_type);
+- num_defs = distance(range.first, range.second);
++ num_defs = std::distance(range.first, range.second);
+ }
+
+ // Check if option unpacking must be deferred
+@@ -638,7 +638,7 @@ size_t LibDHCP::unpackVendorOptions6(const uint32_t vendor_id,
+ idx->equal_range(opt_type);
+ // Get the number of returned option definitions for the
+ // option code.
+- size_t num_defs = distance(range.first, range.second);
++ size_t num_defs = std::distance(range.first, range.second);
+
+ if (num_defs > 1) {
+ // Multiple options of the same code are not supported
+@@ -746,7 +746,7 @@ size_t LibDHCP::unpackVendorOptions4(const uint32_t vendor_id, const OptionBuffe
+ idx->equal_range(opt_type);
+ // Get the number of returned option definitions for
+ // the option code.
+- size_t num_defs = distance(range.first, range.second);
++ size_t num_defs = std::distance(range.first, range.second);
+
+ if (num_defs > 1) {
+ // Multiple options of the same code are not
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0003-Makefile.am-update-hooksdir-for-lease_cmds.patch b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0003-Makefile.am-update-hooksdir-for-lease_cmds.patch
new file mode 100644
index 0000000..381a3a7
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0003-Makefile.am-update-hooksdir-for-lease_cmds.patch
@@ -0,0 +1,31 @@
+From cd902b8b588681a27d5321f1ee078a1c8f6e6935 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Wed, 21 Mar 2018 06:01:38 +0000
+Subject: [PATCH 3/3] Makefile.am: update hooksdir for lease_cmds
+
+update hooksdir for lease_cmds
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+
+---
+ src/hooks/dhcp/lease_cmds/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/hooks/dhcp/lease_cmds/Makefile.am b/src/hooks/dhcp/lease_cmds/Makefile.am
+index cfd6779..22cc4a9 100644
+--- a/src/hooks/dhcp/lease_cmds/Makefile.am
++++ b/src/hooks/dhcp/lease_cmds/Makefile.am
+@@ -37,7 +37,7 @@ liblease_cmds_la_CXXFLAGS = $(AM_CXXFLAGS)
+ liblease_cmds_la_CPPFLAGS = $(AM_CPPFLAGS)
+
+ # install the shared object into $(libdir)/hooks
+-lib_hooksdir = $(libdir)/hooks
++lib_hooksdir = $(libdir)/kea/hooks
+ lib_hooks_LTLIBRARIES = libdhcp_lease_cmds.la
+
+ libdhcp_lease_cmds_la_SOURCES =
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service
new file mode 100644
index 0000000..91aa2eb
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Kea DHCP-DDNS Server
+Wants=network-online.target
+After=network-online.target
+After=time-sync.target
+
+[Service]
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
+ExecStart=@SBINDIR@/kea-dhcp-ddns -c @SYSCONFDIR@/kea/kea-dhcp-ddns.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service
new file mode 100644
index 0000000..f32edcb
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Kea DHCPv4 Server
+Wants=network-online.target
+After=network-online.target
+After=time-sync.target
+
+[Service]
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
+ExecStart=@SBINDIR@/kea-dhcp4 -c @SYSCONFDIR@/kea/kea-dhcp4.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service
new file mode 100644
index 0000000..26d2205
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Kea DHCPv6 Server
+Wants=network-online.target
+After=network-online.target
+After=time-sync.target
+
+[Service]
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
+ExecStart=@SBINDIR@/kea-dhcp6 -c @SYSCONFDIR@/kea/kea-dhcp6.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.4.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.4.0.bb
new file mode 100644
index 0000000..67de07b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.4.0.bb
@@ -0,0 +1,52 @@
+SUMMARY = "ISC Kea DHCP Server"
+DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It supports both DHCPv4 and DHCPv6 protocols along with their extensions, e.g. prefix delegation and dynamic updates to DNS."
+HOMEPAGE = "http://kea.isc.org"
+SECTION = "connectivity"
+LICENSE = "MPL-2.0 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1666a9c4bb55adbc8939d85643096bd3"
+
+DEPENDS += "kea-native"
+
+SRC_URI = "\
+ http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \
+ file://0003-Makefile.am-update-hooksdir-for-lease_cmds.patch \
+ file://0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch \
+ file://kea-dhcp4.service \
+ file://kea-dhcp6.service \
+ file://kea-dhcp-ddns.service \
+"
+SRC_URI[md5sum] = "26eedd749101642757d788431605aaa5"
+SRC_URI[sha256sum] = "c0f8ecb93657adfc5ab970c91706754e601084828493f053f159661d21b31128"
+
+inherit autotools systemd
+
+SYSTEMD_SERVICE_${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_configure_prepend_class-target() {
+ mkdir -p ${B}/src/lib/log/compiler/
+ ln -sf ${STAGING_BINDIR_NATIVE}/kea-msg-compiler ${B}/src/lib/log/compiler/kea-msg-compiler
+}
+
+do_install_append_class-target() {
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir}
+ sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${systemd_system_unitdir}/kea-dhcp*service
+}
+
+do_install_append() {
+ rm -rf "${D}${localstatedir}"
+}
+
+PACKAGECONFIG ??= "openssl log4cplus boost"
+
+PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_TARGET}${prefix},,openssl,openssl"
+PACKAGECONFIG[log4cplus] = "--with-log4cplus=${STAGING_DIR_TARGET}${prefix},,log4cplus,log4cplus"
+PACKAGECONFIG[boost] = "--with-boost-include=${STAGING_INCDIR} --with-boost-lib-dir=${STAGING_LIBDIR} --with-boost-libs=-lboost_system,,boost,boost"
+
+FILES_${PN}-staticdev += "${libdir}/kea/hooks/*.a ${libdir}/hooks/*.a"
+FILES_${PN} += "${libdir}/hooks/*.so"
+
+BBCLASSEXTEND += "native"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb b/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb
deleted file mode 100644
index b6b65da..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-DESCRIPTION = "LFTP is a sophisticated file transfer program with \
- command line interface. It supports FTP, HTTP, \
- FISH, SFTP, HTTPS and FTPS protocols"
-HOMEPAGE = "http://lftp.yar.ru/"
-SECTION = "console/network"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2 \
- file://fix-gcc-6-conflicts-signbit.patch \
- "
-SRC_URI[md5sum] = "3701e7675baa5619c92622eb141c8301"
-SRC_URI[sha256sum] = "fe441f20a9a317cfb99a8b8e628ba0457df472b6d93964d17374d5b5ebdf9280"
-
-inherit autotools gettext pkgconfig
-
-acpaths = "-I ./m4"
-
-EXTRA_OECONF += "--with-modules"
-
-PACKAGECONFIG ??= "libidn openssl zlib gnutls readline expat"
-PACKAGECONFIG[libidn] = "--with-libidn, --without-libidn, libidn"
-PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl"
-PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_INCDIR}/.., --without-zlib, zlib"
-PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls"
-PACKAGECONFIG[readline] = "--with-readline=${STAGING_INCDIR}/.. --with-readline-inc=${STAGING_INCDIR} --with-readline-lib=-lreadline, --with-readline=no, readline"
-PACKAGECONFIG[expat] = "--with-expat=${STAGING_INCDIR}/.. --with-expat-inc=${STAGING_INCDIR} --with-expat-lib=-lexpat, , expat"
-
-do_install_append() {
- rm -rf ${D}${libdir}/charset.alias
-}
-
-FILES_${PN}-dbg += "${libdir}/lftp/${PV}/.debug"
-RDEPENDS_${PN} = "perl bash readline"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.8.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.8.4.bb
new file mode 100644
index 0000000..bf793d9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.8.4.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "LFTP is a sophisticated file transfer program with \
+ command line interface. It supports FTP, HTTP, \
+ FISH, SFTP, HTTPS and FTPS protocols"
+HOMEPAGE = "http://lftp.yar.ru/"
+SECTION = "console/network"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2 \
+ file://fix-gcc-6-conflicts-signbit.patch \
+ "
+SRC_URI[md5sum] = "a56b5047dbfda052df4c1dfd197aa092"
+SRC_URI[sha256sum] = "a853edbd075b008c315679c7882b6dcc6821ed2365d2ed843a412acd3d40da0e"
+
+inherit autotools gettext pkgconfig
+
+acpaths = "-I ./m4"
+
+EXTRA_OECONF += "--with-modules --disable-rpath"
+
+PACKAGECONFIG ??= "openssl zlib gnutls readline expat"
+PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl"
+PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_INCDIR}/.., --without-zlib, zlib"
+PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls"
+PACKAGECONFIG[readline] = "--with-readline=${STAGING_INCDIR}/.. --with-readline-inc=${STAGING_INCDIR} --with-readline-lib=-lreadline, --with-readline=no, readline"
+PACKAGECONFIG[expat] = "--with-expat=${STAGING_INCDIR}/.. --with-expat-inc=${STAGING_INCDIR} --with-expat-lib=-lexpat, , expat"
+
+do_install_append() {
+ rm -rf ${D}${libdir}/charset.alias
+}
+FILES_${PN} += "${datadir}/icons/hicolor"
+FILES_${PN}-dbg += "${libdir}/lftp/${PV}/.debug"
+RDEPENDS_${PN} = "perl bash readline"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
index e579de5..53ba25e 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
@@ -7,6 +7,8 @@
SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1"
SRCREV = "12fca29a6d4e99d1b923d6820887fe7b24226904"
+UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)"
+
S = "${WORKDIR}/git"
inherit autotools
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb
new file mode 100644
index 0000000..ff3f7f0
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Lightweight crypto and SSL/TLS library"
+DESCRIPTION = "mbedtls is a lean open source crypto library \
+for providing SSL and TLS support in your programs. It offers \
+an intuitive API and documented header files, so you can actually \
+understand what the code does. It features: \
+ \
+ - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \
+ Camellia and XTEA \
+ - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \
+ - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \
+ - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \
+ ECDSA and ECDH \
+ - SSL v3 and TLS 1.0, 1.1 and 1.2 \
+ - Abstraction layers for ciphers, hashes, public key operations, \
+ platform abstraction and threading \
+"
+
+HOMEPAGE = "https://tls.mbed.org/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=302d50a6369f5f22efdb674db908167a"
+
+SECTION = "libs"
+
+SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-apache.tgz"
+
+SRC_URI[md5sum] = "659d96bb03012ca6db414a9137fcdbd6"
+SRC_URI[sha256sum] = "593b4e4d2e1629fc407ab4750d69fa309a0ddb66565dc3deb5b60eddbdeb06da"
+
+inherit cmake
+
+PACKAGECONFIG ??= "shared-libs programs"
+PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-USE_SHARED_MBEDTLS_LIBRARY=OFF"
+PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
+
+EXTRA_OECMAKE = "-DENABLE_TESTING=OFF -DLIB_INSTALL_DIR:STRING=${libdir}"
+
+PROVIDES += "polarssl"
+RPROVIDES_${PN} = "polarssl"
+
+PACKAGES =+ "${PN}-programs"
+FILES_${PN}-programs = "${bindir}/"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.8.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.8.0.bb
deleted file mode 100644
index 736cce1..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.8.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Lightweight crypto and SSL/TLS library"
-DESCRIPTION = "mbedtls is a lean open source crypto library \
-for providing SSL and TLS support in your programs. It offers \
-an intuitive API and documented header files, so you can actually \
-understand what the code does. It features: \
- \
- - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \
- Camellia and XTEA \
- - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \
- - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \
- - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \
- ECDSA and ECDH \
- - SSL v3 and TLS 1.0, 1.1 and 1.2 \
- - Abstraction layers for ciphers, hashes, public key operations, \
- platform abstraction and threading \
-"
-
-HOMEPAGE = "https://tls.mbed.org/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=302d50a6369f5f22efdb674db908167a"
-
-SECTION = "libdevel"
-
-SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-apache.tgz"
-
-SRC_URI[md5sum] = "2d4b0e2cb844efde1e73d3bcd9731fef"
-SRC_URI[sha256sum] = "ab8b62b995781bcf22e87a265ed06267f87c3041198e996b44441223d19fa9c3"
-
-inherit cmake
-
-PACKAGECONFIG ??= "shared-libs programs"
-PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-USE_SHARED_MBEDTLS_LIBRARY=OFF"
-PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
-
-EXTRA_OECMAKE = "-DENABLE_TESTING=OFF -DLIB_INSTALL_DIR:STRING=${libdir}"
-
-PROVIDES += "polarssl"
-RPROVIDES_${PN} = "polarssl"
-
-PACKAGES =+ "${PN}-programs"
-FILES_${PN}-programs = "${bindir}/"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/miniupnpd.service b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/miniupnpd.service
new file mode 100644
index 0000000..e7bfad0
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/miniupnpd.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Lightweight UPnP IGD daemon
+Documentation=man:miniupnpd(8)
+After=network.target
+
+[Service]
+Type=forking
+ExecStartPre=/etc/miniupnpd/iptables_init.sh
+ExecStart=/usr/sbin/miniupnpd -f /etc/miniupnpd/miniupnpd.conf
+ExecStopPost=/etc/miniupnpd/iptables_removeall.sh
+PIDFile=/run/miniupnpd.pid
+
+[Install]
+WantedBy=network.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb
new file mode 100644
index 0000000..04b5cd5
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Lightweight UPnP IGD daemon"
+DESCRIPTION = "The miniUPnP daemon is an UPnP IGD (internet gateway device) \
+which provide NAT traversal services to any UPnP enabled client on \
+the network."
+
+SECTION = "networking"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=91ac00c6b9f5c106e89291e196fe0234"
+
+inherit autotools gettext pkgconfig systemd
+
+DEPENDS += "iptables net-tools util-linux libmnl libnetfilter-conntrack"
+
+SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${P}.tar.gz;downloadfilename=${P}.tar.gz \
+ file://miniupnpd.service"
+
+SRC_URI[md5sum] = "b4c7c938915edeee6ca4c65dd021f212"
+SRC_URI[sha256sum] = "860c15f2f8340fd69546b01cffe4c7fcff3e63a7bdfe5a2af6b2346f0e074bb6"
+
+IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}"
+
+do_compile() {
+ cd ${S}
+ CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux
+}
+
+do_install() {
+ install -d ${D}/${sbindir}
+ install ${S}/miniupnpd ${D}/${sbindir}
+ install -d ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/iptables_init.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/iptables_removeall.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/ip6tables_init.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/ip6tables_removeall.sh ${D}/${sysconfdir}/${BPN}
+ install -m 0644 -b ${S}/miniupnpd.conf ${D}/${sysconfdir}/${BPN}
+ install -d ${D}/${sysconfdir}/init.d
+ install ${S}/linux/miniupnpd.init.d.script ${D}/${sysconfdir}/init.d/miniupnpd
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/miniupnpd.service ${D}${systemd_unitdir}/system/
+}
+
+SYSTEMD_SERVICE_${PN} = "miniupnpd.service"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb
deleted file mode 100644
index c6f36e1..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Lightweight UPnP IGD daemon"
-DESCRIPTION = "The miniUPnP daemon is an UPnP IGD (internet gateway device) \
-which provide NAT traversal services to any UPnP enabled client on \
-the network."
-
-SECTION = "networking"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=aa71c78c373ccfe0ff207af0cd966d91"
-
-inherit autotools gettext pkgconfig
-
-DEPENDS += "iptables net-tools util-linux libmnl libnetfilter-conntrack"
-
-SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${P}.tar.gz;downloadfilename=${P}.tar.gz \
-"
-SRC_URI[md5sum] = "1c07a215dd9b362e75a9efc05e2fb3b4"
-SRC_URI[sha256sum] = "d96aa3a00e0f5490826bba3cb97e68cd27479e5839adac4b9bcb66eae786bfb7"
-
-IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}"
-
-do_compile() {
- cd ${S}
- CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux
-}
-
-do_install() {
- install -d ${D}/${sbindir}
- install ${S}/miniupnpd ${D}/${sbindir}
- install -d ${D}/${sysconfdir}/${BPN}
- install ${S}/netfilter/iptables_init.sh ${D}/${sysconfdir}/${BPN}
- install ${S}/netfilter/iptables_removeall.sh ${D}/${sysconfdir}/${BPN}
- install ${S}/netfilter/ip6tables_init.sh ${D}/${sysconfdir}/${BPN}
- install ${S}/netfilter/ip6tables_removeall.sh ${D}/${sysconfdir}/${BPN}
- install -m 0644 -b ${S}/miniupnpd.conf ${D}/${sysconfdir}/${BPN}
- install -d ${D}/${sysconfdir}/init.d
- install ${S}/linux/miniupnpd.init.d.script ${D}/${sysconfdir}/init.d/miniupnpd
-}
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
new file mode 100644
index 0000000..6a0c127
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
@@ -0,0 +1,89 @@
+#! /bin/sh
+
+# Based on the Debian initscript for mosquitto
+
+### BEGIN INIT INFO
+# Provides: mosquitto
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: mosquitto MQTT message broker
+# Description:
+# This is a message broker that supports version 3.1/3.1.1 of the MQ Telemetry
+# Transport (MQTT) protocol.
+#
+# MQTT provides a method of carrying out messaging using a publish/subscribe
+# model. It is lightweight, both in terms of bandwidth usage and ease of
+# implementation. This makes it particularly useful at the edge of the network
+# where a sensor or other simple device may be implemented using an arduino for
+# example.
+### END INIT INFO
+
+set -e
+
+PIDFILE=@LOCALSTATEDIR@/run/mosquitto.pid
+DAEMON=@SBINDIR@/mosquitto
+
+# start and stop the mosquitto MQTT message broker
+
+test -x ${DAEMON} || exit 0
+
+umask 022
+
+. @SYSCONFDIR@/init.d/functions
+
+export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@"
+
+case "$1" in
+ start)
+ echo "Starting Mosquitto message broker" "mosquitto"
+ if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then
+ exit 0
+ else
+ exit 1
+ fi
+ ;;
+ stop)
+ echo "Stopping Mosquitto message broker" "mosquitto"
+ if start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE}; then
+ rm -f ${PIDFILE}
+ exit 0
+ else
+ exit 1
+ fi
+ ;;
+
+
+ reload|force-reload)
+ if [ -f ${PIDFILE} ] ; then
+ echo "Reloading configuration for mosquitto"
+ pid=`cat ${PIDFILE}`
+ kill -HUP $pid
+ else
+ echo "mosquitto does not seem to be running"
+ fi
+ ;;
+
+ restart)
+ echo "Restarting Mosquitto message broker" "mosquitto"
+ if start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${PIDFILE}; then
+ rm -f ${PIDFILE}
+ fi
+ if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then
+ exit 0
+ else
+ exit 1
+ fi
+ ;;
+
+ status)
+ status ${DAEMON} && exit 0 || exit $?
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop|reload|force-reload|restart|status}"
+ exit 1
+esac
+
+exit 0
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb
new file mode 100644
index 0000000..b4adfda
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb
@@ -0,0 +1,96 @@
+SUMMARY = "Open source MQTT v3.1/3.1.1 implemention"
+DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker that implements the MQ Telemetry Transport protocol version 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. "
+HOMEPAGE = "http://mosquitto.org/"
+SECTION = "console/network"
+LICENSE = "EPL-1.0 | EDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62ddc846179e908dc0c8efec4a42ef20 \
+ file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \
+ file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \
+ file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
+"
+DEPENDS = "uthash"
+
+SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
+ file://0002-uthash-remove-in-tree-version.patch \
+ file://mosquitto.init \
+"
+
+SRC_URI[md5sum] = "f98c99998a36a234f3a9d9b402b991db"
+SRC_URI[sha256sum] = "8557bc7ae34dfaf32a0fb56d2491b7a7f731269c88337227233013502df4d5b0"
+
+inherit systemd update-rc.d useradd
+
+PACKAGECONFIG ??= "ssl uuid \
+ ${@bb.utils.filter('DISTRO_FEATURES','systemd', d)} \
+ "
+
+PACKAGECONFIG[dns-srv] = ",,c-ares"
+PACKAGECONFIG[ssl] = ",,openssl"
+PACKAGECONFIG[uuid] = ",,util-linux"
+PACKAGECONFIG[systemd] = "WITH_SYSTEMD=yes,WITH_SYSTEMD=no,systemd"
+PACKAGECONFIG[websockets] = ",,libwebsockets"
+
+EXTRA_OEMAKE = " \
+ prefix=${prefix} \
+ mandir=${mandir} \
+ localedir=${localedir} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'dns-srv', 'WITH_SRV=yes', 'WITH_SRV=no', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'ssl', 'WITH_TLS=yes WITH_TLS_PSK=yes', 'WITH_TLS=no WITH_TLS_PSK=no', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'uuid', 'WITH_UUID=yes', 'WITH_UUID=no', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'websockets', 'WITH_WEBSOCKETS=yes', 'WITH_WEBSOCKETS=no', d)} \
+ STRIP=/bin/true \
+ WITH_DOCS=no \
+"
+
+export LIB_SUFFIX = "${@d.getVar('baselib', True).replace('lib', '')}"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${S}/service/systemd/mosquitto.service.notify ${D}${systemd_unitdir}/system/mosquitto.service
+
+ install -d ${D}${sysconfdir}/mosquitto
+ install -m 0644 ${D}${sysconfdir}/mosquitto/mosquitto.conf.example \
+ ${D}${sysconfdir}/mosquitto/mosquitto.conf
+
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto
+ sed -i -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
+ -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${sysconfdir}/init.d/mosquitto
+}
+
+PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients"
+
+PACKAGE_BEFORE_PN = "${PN}-examples"
+
+FILES_${PN} = "${sbindir}/mosquitto \
+ ${bindir}/mosquitto_passwd \
+ ${sysconfdir}/mosquitto \
+ ${sysconfdir}/init.d \
+ ${systemd_unitdir}/system/mosquitto.service \
+"
+
+CONFFILES_${PN} += "${sysconfdir}/mosquitto/mosquitto.conf"
+
+FILES_libmosquitto1 = "${libdir}/libmosquitto.so.1"
+
+FILES_libmosquittopp1 = "${libdir}/libmosquittopp.so.1"
+
+FILES_${PN}-clients = "${bindir}/mosquitto_pub \
+ ${bindir}/mosquitto_sub \
+"
+
+FILES_${PN}-examples = "${sysconfdir}/mosquitto/*.example"
+
+SYSTEMD_SERVICE_${PN} = "mosquitto.service"
+
+INITSCRIPT_NAME = "mosquitto"
+INITSCRIPT_PARAMS = "defaults 30"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false \
+ --user-group mosquitto"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.4.bb
new file mode 100644
index 0000000..fa6b43a
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.4.bb
@@ -0,0 +1,28 @@
+SUMMARY = "nanomsg socket library"
+DESCRIPTION = "nanomsg is a socket library that provides several common \
+communication patterns. It aims to make the networking layer fast, scalable, \
+and easy to use. Implemented in C, it works on a wide range of operating \
+systems with no further dependencies."
+HOMEPAGE = "https://nanomsg.org/"
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://COPYING;md5=587b3fd7fd291e418ff4d2b8f3904755"
+
+SECTION = "libs/networking"
+
+SRC_URI = "git://github.com/nanomsg/nanomsg.git;protocol=https"
+SRCREV = "e7f8a751316b942d8962cd0232c2d606c1d9a9db"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+# nanomsg documentation generation requires asciidoctor,
+# not asciidoc, and currently there's no asciidoctor-native
+# recipe anywhere in openembedded-core or meta-openembedded
+EXTRA_OECMAKE = " -DNN_ENABLE_DOC=OFF "
+
+# we don't want nanomsg-tools to be renamed to libnanomsg-tools
+DEBIAN_NOAUTONAME_${PN}-tools = "1"
+
+PACKAGES =+ "${PN}-tools"
+FILES_${PN}-tools = "${bindir}/*"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.10.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.10.bb
new file mode 100644
index 0000000..9159fcb
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.10.bb
@@ -0,0 +1,40 @@
+SUMMARY = "NetworkManager-openvpn-plugin"
+SECTION = "net/misc"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=100d5a599bead70ddcd70dcd73f2e29c"
+
+DEPENDS = "dbus dbus-glib networkmanager openvpn intltool-native glib-2.0-native"
+
+inherit gnomebase useradd gettext systemd
+
+SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "f118226ed2bfbacfd64ac4d1e0bd0383"
+SRC_URI[sha256sum] = "ac86a7a539d78df90095676e9183f2d422fb93dbfe4b3afef22f81825d303d61"
+
+S = "${WORKDIR}/NetworkManager-openvpn-${PV}"
+
+PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome"
+
+do_install_append () {
+ rm -rf ${D}${libdir}/NetworkManager/*.la
+}
+
+# Create user and group nm-openvpn that are needed since version 1.0.6
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system nm-openvpn"
+
+FILES_${PN} += " \
+ ${libdir}/NetworkManager/*.so \
+ ${nonarch_libdir}/NetworkManager/VPN/nm-openvpn-service.name \
+"
+
+FILES_${PN}-staticdev += " \
+ ${libdir}/NetworkManager/*.a \
+"
+
+RDEPENDS_${PN} = " \
+ networkmanager \
+ openvpn \
+"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb
deleted file mode 100644
index 1b604ad..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "NetworkManager-openvpn-plugin"
-SECTION = "net/misc"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=100d5a599bead70ddcd70dcd73f2e29c"
-
-DEPENDS = "dbus dbus-glib networkmanager openvpn intltool-native glib-2.0-native"
-
-inherit gnomebase useradd gettext systemd
-
-SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz"
-SRC_URI[md5sum] = "9f325be386aa906ff9b0b7c0bdf2a59a"
-SRC_URI[sha256sum] = "3e0b4007f248d96df4b8eb5d0f937536044af7053debbbf525e67c9bc5d30654"
-
-S = "${WORKDIR}/NetworkManager-openvpn-${PV}"
-
-PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome"
-
-do_install_append () {
- rm -rf ${D}${libdir}/NetworkManager/*.la
-}
-
-# Create user and group nm-openvpn that are needed since version 1.0.6
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system nm-openvpn"
-
-FILES_${PN} += " \
- ${libdir}/NetworkManager/*.so \
- ${nonarch_libdir}/NetworkManager/VPN/nm-openvpn-service.name \
-"
-
-FILES_${PN}-staticdev += " \
- ${libdir}/NetworkManager/*.a \
-"
-
-RDEPENDS_${PN} = " \
- networkmanager \
- openvpn \
-"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
new file mode 100644
index 0000000..0c415bc
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
@@ -0,0 +1,53 @@
+From 3f4b6319701834182304c4079119780f4ae5b49b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Nov 2018 11:30:44 -0800
+Subject: [PATCH] Do not include net/ethernet.h and linux/if_ether.h
+
+They conflict when used together especially with musl
+removing them still keeps it working so it seems they are redundant
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ shared/n-acd/src/n-acd.c | 1 -
+ src/platform/wpan/nm-wpan-utils.h | 2 --
+ src/settings/nm-settings-connection.h | 2 --
+ 3 files changed, 5 deletions(-)
+
+diff --git a/shared/n-acd/src/n-acd.c b/shared/n-acd/src/n-acd.c
+index 9164f95..9538e50 100644
+--- a/shared/n-acd/src/n-acd.c
++++ b/shared/n-acd/src/n-acd.c
+@@ -23,7 +23,6 @@
+ #include <errno.h>
+ #include <limits.h>
+ #include <linux/filter.h>
+-#include <linux/if_ether.h>
+ #include <linux/if_packet.h>
+ #include <net/ethernet.h>
+ #include <netinet/if_ether.h>
+diff --git a/src/platform/wpan/nm-wpan-utils.h b/src/platform/wpan/nm-wpan-utils.h
+index f7d0c03..e1c81f5 100644
+--- a/src/platform/wpan/nm-wpan-utils.h
++++ b/src/platform/wpan/nm-wpan-utils.h
+@@ -20,8 +20,6 @@
+ #ifndef __WPAN_UTILS_H__
+ #define __WPAN_UTILS_H__
+
+-#include <net/ethernet.h>
+-
+ #include "nm-dbus-interface.h"
+ #include "platform/nm-netlink.h"
+
+diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h
+index e796b71..c01fef6 100644
+--- a/src/settings/nm-settings-connection.h
++++ b/src/settings/nm-settings-connection.h
+@@ -22,8 +22,6 @@
+ #ifndef __NETWORKMANAGER_SETTINGS_CONNECTION_H__
+ #define __NETWORKMANAGER_SETTINGS_CONNECTION_H__
+
+-#include <net/ethernet.h>
+-
+ #include "nm-dbus-object.h"
+ #include "nm-connection.h"
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
index 7194423..49a0735 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
@@ -1,8 +1,7 @@
From 18f71c1b48730b8602826517f2b5b088283ae948 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 31 Mar 2017 16:48:00 -0700
-Subject: [PATCH 5/7] sd-lldp.h: Remove net/ethernet.h seems to be over
- specified
+Subject: [PATCH] sd-lldp.h: Remove net/ethernet.h seems to be over specified
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
@@ -14,7 +13,7 @@
index 31e2448..7721cc2 100644
--- a/src/systemd/src/libsystemd-network/sd-lldp.c
+++ b/src/systemd/src/libsystemd-network/sd-lldp.c
-@@ -21,6 +21,7 @@
+@@ -3,6 +3,7 @@
#include "nm-sd-adapt.h"
#include <arpa/inet.h>
@@ -26,7 +25,7 @@
index 3f35eeb..61b0e45 100644
--- a/src/systemd/src/systemd/sd-lldp.h
+++ b/src/systemd/src/systemd/sd-lldp.h
-@@ -22,7 +22,7 @@
+@@ -18,7 +18,7 @@
***/
#include <inttypes.h>
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
index 28848d3..351f264 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
@@ -1,7 +1,7 @@
From 583f0448fb7e9aba2b410c06eec6f420b41a6a0c Mon Sep 17 00:00:00 2001
From: Pablo Saavedra <psaavedra@igalia.com>
Date: Tue, 13 Mar 2018 17:36:20 +0100
-Subject: [PATCH 7/7] Fixed configure.ac: Fix pkgconfig sysroot locations
+Subject: [PATCH] Fixed configure.ac: Fix pkgconfig sysroot locations
---
configure.ac | 2 +-
@@ -11,7 +11,7 @@
index 51e5eb6..c9d3e56 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -669,7 +669,7 @@ else
+@@ -572,7 +572,7 @@ if test "$have_jansson" = "yes"; then
AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled])
AC_CHECK_TOOLS(READELF, [eu-readelf readelf])
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch
index 92485f0..c50293c 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch
@@ -13,15 +13,15 @@
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
- Makefile.am | 18 ++----------------
- configure.ac | 4 ----
- 2 files changed, 2 insertions(+), 20 deletions(-)
+ Makefile.am | 20 --------------------
+ configure.ac | 5 -----
+ 2 files changed, 25 deletions(-)
diff --git a/Makefile.am b/Makefile.am
-index 639921d..314a61d 100644
+index 1e100f6..d31e3c1 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -961,9 +961,7 @@ endif
+@@ -1115,9 +1115,7 @@ EXTRA_DIST += \
if HAVE_INTROSPECTION
libnm_noinst_data = \
@@ -31,37 +31,39 @@
libnm/nm-settings-keyfile-docs.xml \
libnm/nm-settings-ifcfg-rh-docs.xml
-@@ -3317,23 +3315,11 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+@@ -3692,27 +3690,9 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums)
$(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp
- clients_common_settings_doc_c = clients/common/settings-docs.c
+ clients_common_settings_doc_h = clients/common/settings-docs.h
-if HAVE_INTROSPECTION
--$(clients_common_settings_doc_c): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
+-$(clients_common_settings_doc_h): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
- $(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
--DISTCLEANFILES += $(clients_common_settings_doc_c)
--check-local-settings-docs: $(clients_common_settings_doc_c)
-- @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
-- if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)" ; then \
-- echo "The generated file \"$(builddir)/$(clients_common_settings_doc_c)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_c).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes"; \
-- false; \
+-DISTCLEANFILES += $(clients_common_settings_doc_h)
+-check-local-settings-docs: $(clients_common_settings_doc_h)
+- @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
+- if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)" ; then \
+- if test "$$NM_TEST_REGENERATE" == 1 ; then \
+- cp -f "$(builddir)/$(clients_common_settings_doc_h)" "$(srcdir)/$(clients_common_settings_doc_h).in"; \
+- else \
+- echo "The generated file \"$(builddir)/$(clients_common_settings_doc_h)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_h).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes". You can also automatically copy the file by rerunning the test with \$$NM_TEST_REGENERATE=1 ; \
+- false; \
+- fi; \
- fi;\
- fi
-check_local += check-local-settings-docs
-else
-+
- $(clients_common_settings_doc_c): $(clients_common_settings_doc_c).in clients/common/.dirstamp
- $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)"
+ $(clients_common_settings_doc_h): $(clients_common_settings_doc_h).in clients/common/.dirstamp
+ $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)"
check-local-settings-docs:
-endif
-+
EXTRA_DIST += \
- $(clients_common_settings_doc_c) \
- $(clients_common_settings_doc_c).in
+ $(clients_common_settings_doc_h) \
+ $(clients_common_settings_doc_h).in
diff --git a/configure.ac b/configure.ac
-index c9d3e56..407222e 100644
+index 79dc3b9..23d14a6 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1286,10 +1286,6 @@ GTK_DOC_CHECK(1.0)
+@@ -1195,11 +1195,6 @@ GTK_DOC_CHECK(1.0)
# check if we can build setting property documentation
build_docs=no
if test -n "$INTROSPECTION_MAKEFILE"; then
@@ -69,9 +71,10 @@
- if ! "$PYTHON" -c 'from gi.repository import GObject' >& /dev/null; then
- AC_MSG_ERROR(["--enable-introspection aims to build the settings documentation. This requires GObject introspection for python (pygobject)])
- fi
-
+-
AC_PATH_PROG(PERL, perl)
if test -z "$PERL"; then
+ AC_MSG_ERROR([--enable-introspection requires perl])
--
-2.14.3
+2.14.5
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch
index 9d208e1..00dda5b 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch
@@ -1,7 +1,7 @@
From e92de7409a3e107f90d108a9c5d49bd0418296dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 22 Mar 2018 17:54:10 +0100
-Subject: [PATCH 1/4] Usual fix for musl libc
+Subject: [PATCH] Usual fix for musl libc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -13,18 +13,19 @@
[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
---
src/systemd/src/basic/stdio-util.h | 2 ++
src/systemd/src/basic/util.h | 5 +++++
2 files changed, 7 insertions(+)
diff --git a/src/systemd/src/basic/stdio-util.h b/src/systemd/src/basic/stdio-util.h
-index bd1144b..9eafacb 100644
+index 73c0327..e1ce64f 100644
--- a/src/systemd/src/basic/stdio-util.h
+++ b/src/systemd/src/basic/stdio-util.h
-@@ -19,7 +19,9 @@
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
+@@ -1,7 +1,9 @@
+ /* SPDX-License-Identifier: LGPL-2.1+ */
+ #pragma once
+#if defined(__GLIBC__)
#include <printf.h>
@@ -36,7 +37,7 @@
index b31dfd1..9b7032c 100644
--- a/src/systemd/src/basic/util.h
+++ b/src/systemd/src/basic/util.h
-@@ -46,6 +46,11 @@
+@@ -28,6 +28,11 @@
#include "missing.h"
#include "time-util.h"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch
index 548cccb..c162c1d 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch
@@ -1,7 +1,7 @@
From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 22 Mar 2018 18:18:06 +0100
-Subject: [PATCH 2/4] musl: dlopen is included so LD_LIBS="" instead of
+Subject: [PATCH] musl: dlopen is included so LD_LIBS="" instead of
LD_LIBS="none required"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -22,7 +22,7 @@
index 487a266..96ae4f7 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -305,6 +305,7 @@ dnl
+@@ -235,6 +235,7 @@ dnl
dnl Checks for libdl - on certain platforms its part of libc
dnl
AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=])
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch
index 5dd17b6..9a58c0e 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch
@@ -1,7 +1,7 @@
From 714b4731a238653e9c7d885c0dee10677b0a4df3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 22 Mar 2018 18:24:07 +0100
-Subject: [PATCH 3/4] musl: network support
+Subject: [PATCH] musl: network support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -15,7 +15,7 @@
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
libnm-core/nm-utils.h | 4 ++++
- src/platform/wifi/wifi-utils.h | 4 ++++
+ src/platform/wifi/nm-wifi-utils.h | 4 ++++
src/systemd/src/basic/socket-util.h | 5 +++++
3 files changed, 13 insertions(+)
@@ -35,10 +35,10 @@
#include <linux/if_infiniband.h>
#include "nm-core-enum-types.h"
-diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h
+diff --git a/src/platform/wifi/nm-wifi-utils.h b/src/platform/wifi/nm-wifi-utils.h
index 705717b..da3edc4 100644
---- a/src/platform/wifi/wifi-utils.h
-+++ b/src/platform/wifi/wifi-utils.h
+--- a/src/platform/wifi/nm-wifi-utils.h
++++ b/src/platform/wifi/nm-wifi-utils.h
@@ -22,7 +22,11 @@
#ifndef __WIFI_UTILS_H__
#define __WIFI_UTILS_H__
@@ -50,12 +50,12 @@
+#endif
#include "nm-dbus-interface.h"
-
+ #include "nm-setting-wireless.h"
diff --git a/src/systemd/src/basic/socket-util.h b/src/systemd/src/basic/socket-util.h
index d7e2d85..d109c84 100644
--- a/src/systemd/src/basic/socket-util.h
+++ b/src/systemd/src/basic/socket-util.h
-@@ -29,6 +29,11 @@
+@@ -11,6 +11,11 @@
#include <linux/netlink.h>
#include <linux/if_infiniband.h>
#include <linux/if_packet.h>
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch
index fc55ce8..9e5c943 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch
@@ -1,7 +1,7 @@
From d513c8bfc982dbd976617178b040c512c95710b6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 18:29:00 +0100
-Subject: [PATCH 4/4] musl: process-util
+Date: Thu, 25 Oct 2018 09:57:07 +0200
+Subject: [PATCH] musl: process-util
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -18,10 +18,10 @@
1 file changed, 9 insertions(+)
diff --git a/src/systemd/src/basic/process-util.c b/src/systemd/src/basic/process-util.c
-index 272030d..485f1db 100644
+index 1412f03..45f5049 100644
--- a/src/systemd/src/basic/process-util.c
+++ b/src/systemd/src/basic/process-util.c
-@@ -36,6 +36,9 @@
+@@ -21,6 +21,9 @@
#include <sys/wait.h>
#include <syslog.h>
#include <unistd.h>
@@ -31,7 +31,7 @@
#if 0 /* NM_IGNORED */
#if HAVE_VALGRIND_VALGRIND_H
#include <valgrind/valgrind.h>
-@@ -1015,11 +1018,13 @@ static void reset_cached_pid(void) {
+@@ -1153,11 +1156,13 @@ void reset_cached_pid(void) {
cached_pid = CACHED_PID_UNSET;
}
@@ -39,24 +39,24 @@
/* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
* headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
* libpthread, as it is part of glibc anyway. */
- extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle);
+ extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle);
extern void* __dso_handle __attribute__ ((__weak__));
+#endif
pid_t getpid_cached(void) {
- pid_t current_value;
-@@ -1042,7 +1047,11 @@ pid_t getpid_cached(void) {
-
- new_pid = getpid();
+ static bool installed = false;
+@@ -1186,7 +1191,11 @@ pid_t getpid_cached(void) {
+ * only half-documented (glibc doesn't document it but LSB does — though only superficially)
+ * we'll check for errors only in the most generic fashion possible. */
+#ifdef __GLIBC__
- if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) {
+ if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) {
+#else
-+ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) {
++ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) {
+#endif
- /* OOM? Let's try again later */
- cached_pid = CACHED_PID_UNSET;
- return new_pid;
+ /* OOM? Let's try again later */
+ cached_pid = CACHED_PID_UNSET;
+ return new_pid;
--
-2.14.3
+2.14.5
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch
index 752fe4f..6bca95e 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch
@@ -17,10 +17,10 @@
4 files changed, 8 insertions(+)
diff --git a/src/systemd/src/systemd/sd-dhcp-client.h b/src/systemd/src/systemd/sd-dhcp-client.h
-index 5e46d8d..18a613f 100644
+index e388552..9c4dde8 100644
--- a/src/systemd/src/systemd/sd-dhcp-client.h
+++ b/src/systemd/src/systemd/sd-dhcp-client.h
-@@ -21,7 +21,9 @@
+@@ -20,7 +20,9 @@
***/
#include <inttypes.h>
@@ -31,10 +31,10 @@
#include <sys/types.h>
diff --git a/src/systemd/src/systemd/sd-dhcp-lease.h b/src/systemd/src/systemd/sd-dhcp-lease.h
-index 7ab99cc..85acdf2 100644
+index 2a60145..19d1814 100644
--- a/src/systemd/src/systemd/sd-dhcp-lease.h
+++ b/src/systemd/src/systemd/sd-dhcp-lease.h
-@@ -22,7 +22,9 @@
+@@ -19,7 +19,9 @@
***/
#include <inttypes.h>
@@ -45,24 +45,24 @@
#include <sys/types.h>
diff --git a/src/systemd/src/systemd/sd-dhcp6-client.h b/src/systemd/src/systemd/sd-dhcp6-client.h
-index 7819f0d..35f30ee 100644
+index fa36dca..2d25010 100644
--- a/src/systemd/src/systemd/sd-dhcp6-client.h
+++ b/src/systemd/src/systemd/sd-dhcp6-client.h
-@@ -21,7 +21,9 @@
+@@ -20,7 +20,9 @@
***/
#include <inttypes.h>
+#if defined(__GLIBC__)
#include <net/ethernet.h>
+#endif
+ #include <stdbool.h>
#include <sys/types.h>
- #include "sd-dhcp6-lease.h"
diff --git a/src/systemd/src/systemd/sd-ipv4ll.h b/src/systemd/src/systemd/sd-ipv4ll.h
-index 5ba9208..c90eca6 100644
+index 71bd4cf..1c667ba 100644
--- a/src/systemd/src/systemd/sd-ipv4ll.h
+++ b/src/systemd/src/systemd/sd-ipv4ll.h
-@@ -20,7 +20,9 @@
+@@ -19,7 +19,9 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
@@ -73,5 +73,5 @@
#include "sd-event.h"
--
-2.14.3
+2.14.5
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch
index 8ed7ee6..023a4d9 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch
@@ -18,7 +18,7 @@
index 2a02d90..a57c360 100644
--- a/src/systemd/src/basic/in-addr-util.c
+++ b/src/systemd/src/basic/in-addr-util.c
-@@ -30,6 +30,7 @@
+@@ -13,6 +13,7 @@
#include "in-addr-util.h"
#include "macro.h"
#include "parse-util.h"
@@ -30,7 +30,7 @@
index 4c94b18..a6dc446 100644
--- a/src/systemd/src/basic/string-util.h
+++ b/src/systemd/src/basic/string-util.h
-@@ -44,6 +44,11 @@
+@@ -26,6 +26,11 @@
#define strcaseeq(a,b) (strcasecmp((a),(b)) == 0)
#define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0)
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb
deleted file mode 100644
index 09c5dbd..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb
+++ /dev/null
@@ -1,143 +0,0 @@
-SUMMARY = "NetworkManager"
-HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
-SECTION = "net/misc"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \
- file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \
- file://docs/api/html/license.html;md5=77b9e362690c149da196aefe7712db30 \
-"
-
-DEPENDS = " \
- intltool-native \
- libxslt-native \
- libnl \
- dbus \
- dbus-glib \
- dbus-glib-native \
- libgudev \
- util-linux \
- libndp \
- libnewt \
- polkit \
- jansson \
- curl \
-"
-
-inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection gtk-doc
-
-SRC_URI = " \
- ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
- file://0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
- file://0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
- file://0003-Do-not-create-settings-settings-property-documentati.patch \
- file://musl/0001-musl-basic.patch \
- file://musl/0002-musl-dlopen-configure-ac.patch \
- file://musl/0003-musl-network-support.patch \
- file://musl/0004-musl-process-util.patch \
- file://musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch \
- file://musl/0006-Add-a-strndupa-replacement-for-musl.patch \
-"
-SRC_URI[md5sum] = "de3c7147a693da6f80eb22f126086a14"
-SRC_URI[sha256sum] = "6af0b1e856a3725f88791f55c4fbb04105dc0b20dbf182aaec8aad16481fac76"
-
-S = "${WORKDIR}/NetworkManager-${PV}"
-
-EXTRA_OECONF = " \
- --disable-ifcfg-rh \
- --disable-ifnet \
- --disable-ifcfg-suse \
- --disable-more-warnings \
- --with-iptables=${sbindir}/iptables \
- --with-tests \
- --with-nmtui=yes \
-"
-
-# gobject-introspection related
-GI_DATA_ENABLED_libc-musl = "False"
-
-# stolen from https://github.com/voidlinux/void-packages/blob/master/srcpkgs/NetworkManager/template
-CFLAGS_libc-musl_append = " \
- -DHAVE_SECURE_GETENV -Dsecure_getenv=getenv \
- -D__USE_POSIX199309 -DRTLD_DEEPBIND=0 \
-"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs"
-}
-
-PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \
-"
-PACKAGECONFIG[systemd] = " \
- --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \
- --without-systemdsystemunitdir, \
- polkit \
-"
-PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
-# consolekit is not picked by shlibs, so add it to RDEPENDS too
-PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
-PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
-PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
-# Use full featured dhcp client instead of internal one
-PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
-PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
-PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
-PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
-PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,wireless-tools,wpa-supplicant wireless-tools"
-PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
-PACKAGECONFIG[netconfig] = "--with-netconfig=yes,--with-netconfig=no"
-PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
-
-PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \
- ${PN}-nmtui ${PN}-nmtui-doc \
- ${PN}-adsl \
-"
-
-FILES_libnmutil += "${libdir}/libnm-util.so.*"
-FILES_libnmglib += "${libdir}/libnm-glib.so.*"
-FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*"
-
-FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so"
-
-FILES_${PN} += " \
- ${libexecdir} \
- ${libdir}/pppd/*/nm-pppd-plugin.so \
- ${libdir}/NetworkManager/*.so \
- ${nonarch_libdir}/NetworkManager/VPN \
- ${nonarch_libdir}/NetworkManager/conf.d \
- ${datadir}/polkit-1 \
- ${datadir}/dbus-1 \
- ${base_libdir}/udev/* \
- ${systemd_unitdir}/system \
-"
-
-RRECOMMENDS_${PN} += "iptables \
- ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
-"
-RCONFLICTS_${PN} = "connman"
-
-FILES_${PN}-dev += " \
- ${datadir}/NetworkManager/gdb-cmd \
- ${libdir}/pppd/*/*.la \
- ${libdir}/NetworkManager/*.la \
-"
-
-FILES_${PN}-nmtui = " \
- ${bindir}/nmtui \
- ${bindir}/nmtui-edit \
- ${bindir}/nmtui-connect \
- ${bindir}/nmtui-hostname \
-"
-
-FILES_${PN}-nmtui-doc = " \
- ${mandir}/man1/nmtui* \
-"
-
-SYSTEMD_SERVICE_${PN} = "NetworkManager.service NetworkManager-dispatcher.service"
-
-do_install_append() {
- rm -rf ${D}/run ${D}${localstatedir}/run
-}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb
new file mode 100644
index 0000000..4cc4dba
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb
@@ -0,0 +1,142 @@
+SUMMARY = "NetworkManager"
+HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
+SECTION = "net/misc"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \
+ file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \
+ file://docs/api/html/license.html;md5=2d56a1b0c42e388aa86aef59b154e8c3 \
+"
+
+DEPENDS = " \
+ intltool-native \
+ libxslt-native \
+ libnl \
+ libgudev \
+ util-linux \
+ libndp \
+ libnewt \
+ polkit \
+ jansson \
+ curl \
+"
+
+inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection gtk-doc
+
+SRC_URI = " \
+ ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
+ file://0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
+ file://0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
+ file://0003-Do-not-create-settings-settings-property-documentati.patch \
+ file://0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch \
+ file://musl/0001-musl-basic.patch \
+ file://musl/0002-musl-dlopen-configure-ac.patch \
+ file://musl/0003-musl-network-support.patch \
+ file://musl/0004-musl-process-util.patch \
+ file://musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch \
+ file://musl/0006-Add-a-strndupa-replacement-for-musl.patch \
+"
+SRC_URI[md5sum] = "54ce62f0aa18ef6c5e754eaac47494ac"
+SRC_URI[sha256sum] = "35a3ede4c7d12d6212033c9e44cb82b7692f38063b53a067567f02f5937c8c18"
+
+UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.10/"
+UPSTREAM_CHECK_REGEX = "NetworkManager\-(?P<pver>1\.10(\.\d+)+).tar.xz"
+
+S = "${WORKDIR}/NetworkManager-${PV}"
+
+EXTRA_OECONF = " \
+ --disable-ifcfg-rh \
+ --disable-more-warnings \
+ --with-iptables=${sbindir}/iptables \
+ --with-tests \
+ --with-nmtui=yes \
+"
+
+# gobject-introspection related
+GI_DATA_ENABLED_libc-musl = "False"
+
+# stolen from https://github.com/voidlinux/void-packages/blob/master/srcpkgs/NetworkManager/template
+CFLAGS_libc-musl_append = " \
+ -DHAVE_SECURE_GETENV -Dsecure_getenv=getenv \
+ -D__USE_POSIX199309 -DRTLD_DEEPBIND=0 \
+"
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs"
+}
+
+PACKAGECONFIG ??= "nss ifupdown dhclient dnsmasq \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \
+"
+PACKAGECONFIG[systemd] = " \
+ --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \
+ --without-systemdsystemunitdir, \
+ polkit \
+"
+PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
+# consolekit is not picked by shlibs, so add it to RDEPENDS too
+PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
+PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
+PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
+# Use full featured dhcp client instead of internal one
+PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
+PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
+PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
+PACKAGECONFIG[glib] = "--with-libnm-glib,,dbus-glib-native dbus-glib"
+PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
+PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,,wpa-supplicant"
+PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
+PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
+
+PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \
+ ${PN}-nmtui ${PN}-nmtui-doc \
+ ${PN}-adsl \
+"
+
+FILES_libnmutil += "${libdir}/libnm-util.so.*"
+FILES_libnmglib += "${libdir}/libnm-glib.so.*"
+FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*"
+
+FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so"
+
+FILES_${PN} += " \
+ ${libexecdir} \
+ ${libdir}/NetworkManager/${PV}/*.so \
+ ${nonarch_libdir}/NetworkManager/VPN \
+ ${nonarch_libdir}/NetworkManager/conf.d \
+ ${datadir}/polkit-1 \
+ ${datadir}/dbus-1 \
+ ${base_libdir}/udev/* \
+ ${systemd_unitdir}/system \
+"
+
+RRECOMMENDS_${PN} += "iptables \
+ ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
+"
+RCONFLICTS_${PN} = "connman"
+
+FILES_${PN}-dev += " \
+ ${datadir}/NetworkManager/gdb-cmd \
+ ${libdir}/pppd/*/*.la \
+ ${libdir}/NetworkManager/*.la \
+ ${libdir}/NetworkManager/${PV}/*.la \
+"
+
+FILES_${PN}-nmtui = " \
+ ${bindir}/nmtui \
+ ${bindir}/nmtui-edit \
+ ${bindir}/nmtui-connect \
+ ${bindir}/nmtui-hostname \
+"
+
+FILES_${PN}-nmtui-doc = " \
+ ${mandir}/man1/nmtui* \
+"
+
+SYSTEMD_SERVICE_${PN} = "NetworkManager.service NetworkManager-dispatcher.service"
+
+do_install_append() {
+ rm -rf ${D}/run ${D}${localstatedir}/run
+}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb
index cea1f08..4fe6893 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb
@@ -30,8 +30,14 @@
file://rdist-6.1.5-makefile-add-ldflags.patch \
"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/rdist/files/rdist/"
+UPSTREAM_CHECK_REGEX = "/rdist/(?P<pver>\d+(\.\d+)+)"
+
DEPENDS = "bison-native"
inherit autotools-brokensep
EXTRA_OEMAKE = "BIN_GROUP=root MAN_GROUP=root RDIST_MODE=755 RDISTD_MODE=755 MAN_MODE=644"
+
+# http://errors.yoctoproject.org/Errors/Details/186972/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch
new file mode 100644
index 0000000..4c94831
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch
@@ -0,0 +1,86 @@
+From 0bc8bc4143a58f91f6d7ce228b6763f377fdf45a Mon Sep 17 00:00:00 2001
+From: Andrew Bartlett <abartlet@samba.org>
+Date: Thu, 12 Jul 2018 12:34:56 +1200
+Subject: [PATCH] ldb: Refuse to build Samba against a newer minor version of
+ ldb
+
+Samba is not compatible with new versions of ldb (except release versions)
+
+Other users would not notice the breakages, but Samba makes many
+more assuptions about the LDB internals than any other package.
+
+(Specifically, LDB 1.2 and 1.4 broke builds against released
+Samba versions)
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=13519
+
+Signed-off-by: Andrew Bartlett <abartlet@samba.org>
+Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
+(cherry picked from commit 52efa796538ae004ca62ea32fc8c833472991be6)
+---
+ lib/ldb/wscript | 32 ++++++++++++++++++++++----------
+ 1 file changed, 22 insertions(+), 10 deletions(-)
+
+diff --git a/lib/ldb/wscript b/lib/ldb/wscript
+index d94086b..2bb0832 100644
+--- a/lib/ldb/wscript
++++ b/lib/ldb/wscript
+@@ -62,23 +62,33 @@ def configure(conf):
+ conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()
+
+ if not conf.env.standalone_ldb:
++ max_ldb_version = [int(x) for x in VERSION.split(".")]
++ max_ldb_version[2] = 999
++ max_ldb_version_dots = "%d.%d.%d" % tuple(max_ldb_version)
++
+ if conf.env.disable_python:
+- if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION,
+- onlyif='talloc tdb tevent',
+- implied_deps='replace talloc tdb tevent'):
++ if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb',
++ minversion=VERSION,
++ maxversion=max_ldb_version_dots,
++ onlyif='talloc tdb tevent',
++ implied_deps='replace talloc tdb tevent'):
+ conf.define('USING_SYSTEM_LDB', 1)
+ else:
+ using_system_pyldb_util = True
+- if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=VERSION,
+- onlyif='talloc tdb tevent',
+- implied_deps='replace talloc tdb tevent ldb'):
++ if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util',
++ minversion=VERSION,
++ maxversion=max_ldb_version_dots,
++ onlyif='talloc tdb tevent',
++ implied_deps='replace talloc tdb tevent ldb'):
+ using_system_pyldb_util = False
+
+ # We need to get a pyldb-util for all the python versions
+ # we are building for
+ if conf.env['EXTRA_PYTHON']:
+ name = 'pyldb-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG']
+- if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION,
++ if not conf.CHECK_BUNDLED_SYSTEM_PKG(name,
++ minversion=VERSION,
++ maxversion=max_ldb_version_dots,
+ onlyif='talloc tdb tevent',
+ implied_deps='replace talloc tdb tevent ldb'):
+ using_system_pyldb_util = False
+@@ -86,9 +96,11 @@ def configure(conf):
+ if using_system_pyldb_util:
+ conf.define('USING_SYSTEM_PYLDB_UTIL', 1)
+
+- if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION,
+- onlyif='talloc tdb tevent pyldb-util',
+- implied_deps='replace talloc tdb tevent'):
++ if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb',
++ minversion=VERSION,
++ maxversion=max_ldb_version_dots,
++ onlyif='talloc tdb tevent pyldb-util',
++ implied_deps='replace talloc tdb tevent'):
+ conf.define('USING_SYSTEM_LDB', 1)
+
+ if conf.CONFIG_SET('USING_SYSTEM_LDB'):
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch
deleted file mode 100644
index 0e89a9b..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Submitted [https://github.com/samba-team/samba/pull/70]
-
-Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
-
-From 50eac4fd30944e5e1d83060757633fe0ed572723 Mon Sep 17 00:00:00 2001
-From: Andreas Oberritter <obi@opendreambox.org>
-Date: Wed, 30 Nov 2016 16:25:06 +0100
-Subject: [PATCH] packaging: Avoid timeout for nmbd if started offline with
- systemd
-
-If no network connection appears within DefaultTimeoutStartSec
-(~ 90s) after startup, nmbd fails to notify systemd and will
-therefore get killed.
-
-Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
-
----
- packaging/systemd/nmb.service | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/packaging/systemd/nmb.service b/packaging/systemd/nmb.service
-index 71c93d6..f3d2fc2 100644
---- a/packaging/systemd/nmb.service
-+++ b/packaging/systemd/nmb.service
-@@ -10,6 +10,7 @@ EnvironmentFile=-/etc/sysconfig/samba
- ExecStart=/usr/sbin/nmbd --foreground --no-process-group $NMBDOPTIONS
- ExecReload=/usr/bin/kill -HUP $MAINPID
- LimitCORE=infinity
-+TimeoutStartSec=0
-
- [Install]
- WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch
deleted file mode 100644
index cdf7a38..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 5413f97290d3126262eb309ecbcf7769509f2a11 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Tue, 10 Nov 2015 00:48:35 -0500
-Subject: [PATCH 6/7] avoid using colon in the checking msg
-
-Upstream-Status: Pending
-
-colon is used as the separator when parse from
-a answers file, the colon here makes it never
-get the right answer.
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- wscript_configure_system_mitkrb5 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5
-index a62d00b..a2d89f0 100644
---- a/wscript_configure_system_mitkrb5
-+++ b/wscript_configure_system_mitkrb5
-@@ -240,7 +240,7 @@ conf.CHECK_CODE('''
- ''',
- 'HAVE_WRFILE_KEYTAB',
- headers='krb5.h', lib='krb5', execute=True,
-- msg="Checking whether the WRFILE:-keytab is supported");
-+ msg="Checking whether the WRFILE -keytab is supported");
- # Check for KRB5_DEPRECATED handling
- conf.CHECK_CODE('''#define KRB5_DEPRECATED 1
- #include <krb5.h>''',
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch
index 71db99c..a75ac2b 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch
@@ -1,15 +1,23 @@
-Musl does not have _r versions of getent() and getpwent() APIs
+From 02e0b14d8fa025a5db410d60a7c0dfebd536aaeb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 6 Nov 2016 23:40:54 -0800
+Subject: [PATCH] Musl does not have _r versions of getent() and getpwent()
+ APIs
Taken from gentoo
http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.3.9-remove-getpwent_r.patch
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: samba-4.4.5/source4/torture/local/nss_tests.c
-===================================================================
---- samba-4.4.5.orig/source4/torture/local/nss_tests.c
-+++ samba-4.4.5/source4/torture/local/nss_tests.c
-@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct tortu
+---
+ source4/torture/local/nss_tests.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c
+index 2cd6122..04f13c6 100644
+--- a/source4/torture/local/nss_tests.c
++++ b/source4/torture/local/nss_tests.c
+@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct torture_context *tctx,
return true;
}
@@ -17,7 +25,7 @@
static bool test_getgrgid(struct torture_context *tctx,
gid_t gid,
struct group *grp_p)
-@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct tort
+@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct torture_context *tctx,
return true;
}
@@ -25,7 +33,7 @@
static bool test_enum_r_passwd(struct torture_context *tctx,
struct passwd **pwd_array_p,
size_t *num_pwd_p)
-@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct to
+@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,
return true;
}
@@ -33,7 +41,7 @@
static bool torture_assert_passwd_equal(struct torture_context *tctx,
const struct passwd *p1,
-@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture
+@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture_context *tctx)
struct passwd *pwd, pwd1, pwd2;
size_t num_pwd;
@@ -42,7 +50,7 @@
"failed to enumerate passwd");
for (i=0; i < num_pwd; i++) {
-@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct t
+@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx)
struct passwd *pwd, pwd1, pwd2, pwd3, pwd4;
size_t num_pwd;
@@ -51,7 +59,7 @@
"failed to enumerate passwd");
for (i=0; i < num_pwd; i++) {
-@@ -531,6 +532,7 @@ static bool test_enum_group(struct tortu
+@@ -531,6 +532,7 @@ static bool test_enum_group(struct torture_context *tctx,
return true;
}
@@ -59,7 +67,7 @@
static bool test_enum_r_group(struct torture_context *tctx,
struct group **grp_array_p,
size_t *num_grp_p)
-@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct tor
+@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct torture_context *tctx,
return true;
}
@@ -67,7 +75,7 @@
static bool torture_assert_group_equal(struct torture_context *tctx,
const struct group *g1,
-@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_
+@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_context *tctx)
struct group *grp, grp1, grp2;
size_t num_grp;
@@ -76,7 +84,7 @@
"failed to enumerate group");
for (i=0; i < num_grp; i++) {
-@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct to
+@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct torture_context *tctx)
struct group *grp, grp1, grp2, grp3, grp4;
size_t num_grp;
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
index 0cbacb6..27b40f2 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
@@ -1,14 +1,21 @@
-Lifted from gentoo and ported to 4.4.5
+From 54a5279cb33abd23ef7c094d51f16078ece2da0c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 6 Nov 2016 23:40:54 -0800
+Subject: [PATCH] Lifted from gentoo and ported to 4.4.5
http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.2.7-pam.patch
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: samba-4.7.0/source3/wscript
-===================================================================
---- samba-4.7.0.orig/source3/wscript
-+++ samba-4.7.0/source3/wscript
-@@ -875,7 +875,7 @@ msg.msg_accrightslen = sizeof(fd);
+---
+ source3/wscript | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/source3/wscript b/source3/wscript
+index 5436db2..864f614 100644
+--- a/source3/wscript
++++ b/source3/wscript
+@@ -879,7 +879,7 @@ msg.msg_accrightslen = sizeof(fd);
if conf.env.with_iconv:
conf.DEFINE('HAVE_ICONV', 1)
@@ -17,7 +24,7 @@
use_pam=True
conf.CHECK_HEADERS('security/pam_appl.h pam/pam_appl.h')
if not conf.CONFIG_SET('HAVE_SECURITY_PAM_APPL_H') and not conf.CONFIG_SET('HAVE_PAM_PAM_APPL_H'):
-@@ -952,6 +952,17 @@ int i; i = PAM_RADIO_TYPE;
+@@ -956,6 +956,17 @@ int i; i = PAM_RADIO_TYPE;
"or headers not found. Use --without-pam to disable "
"PAM support.");
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf
new file mode 100644
index 0000000..a0b87c3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf
@@ -0,0 +1,254 @@
+#
+# Sample configuration file for the Samba suite for Debian GNU/Linux.
+#
+#
+# This is the main Samba configuration file. You should read the
+# smb.conf(5) manual page in order to understand the options listed
+# here. Samba has a huge number of configurable options most of which
+# are not shown in this example
+#
+# Some options that are often worth tuning have been included as
+# commented-out examples in this file.
+# - When such options are commented with ";", the proposed setting
+# differs from the default Samba behaviour
+# - When commented with "#", the proposed setting is the default
+# behaviour of Samba but the option is considered important
+# enough to be mentioned here
+#
+# NOTE: Whenever you modify this file you should run the command
+# "testparm" to check that you have not made any basic syntactic
+# errors.
+
+#======================= Global Settings =======================
+
+[global]
+
+## Browsing/Identification ###
+
+# Change this to the workgroup/NT-domain name your Samba server will part of
+ workgroup = WORKGROUP
+
+# Windows Internet Name Serving Support Section:
+# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
+# wins support = no
+
+# WINS Server - Tells the NMBD components of Samba to be a WINS Client
+# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
+; wins server = w.x.y.z
+
+# This will prevent nmbd to search for NetBIOS names through DNS.
+ dns proxy = no
+
+#### Networking ####
+
+# The specific set of interfaces / networks to bind to
+# This can be either the interface name or an IP address/netmask;
+# interface names are normally preferred
+; interfaces = 127.0.0.0/8 eth0
+
+# Only bind to the named interfaces and/or networks; you must use the
+# 'interfaces' option above to use this.
+# It is recommended that you enable this feature if your Samba machine is
+# not protected by a firewall or is a firewall itself. However, this
+# option cannot handle dynamic or non-broadcast interfaces correctly.
+; bind interfaces only = yes
+
+
+
+#### Debugging/Accounting ####
+
+# This tells Samba to use a separate log file for each machine
+# that connects
+ log file = /var/log/samba/log.%m
+
+# Cap the size of the individual log files (in KiB).
+ max log size = 1000
+
+# If you want Samba to only log through syslog then set the following
+# parameter to 'yes'.
+# syslog only = no
+
+# We want Samba to log a minimum amount of information to syslog. Everything
+# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
+# through syslog you should set the following parameter to something higher.
+ syslog = 0
+
+# Do something sensible when Samba crashes: mail the admin a backtrace
+ panic action = /usr/share/samba/panic-action %d
+
+
+####### Authentication #######
+
+# Server role. Defines in which mode Samba will operate. Possible
+# values are "standalone server", "member server", "classic primary
+# domain controller", "classic backup domain controller", "active
+# directory domain controller".
+#
+# Most people will want "standalone server" or "member server".
+# Running as "active directory domain controller" will require first
+# running "samba-tool domain provision" to wipe databases and create a
+# new domain.
+ server role = standalone server
+
+# If you are using encrypted passwords, Samba will need to know what
+# password database type you are using.
+ passdb backend = tdbsam
+
+ obey pam restrictions = yes
+
+# This boolean parameter controls whether Samba attempts to sync the Unix
+# password with the SMB password when the encrypted SMB password in the
+# passdb is changed.
+ unix password sync = yes
+
+# For Unix password sync to work on a Debian GNU/Linux system, the following
+# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
+# sending the correct chat script for the passwd program in Debian Sarge).
+ passwd program = /usr/bin/passwd %u
+ passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
+
+# This boolean controls whether PAM will be used for password changes
+# when requested by an SMB client instead of the program listed in
+# 'passwd program'. The default is 'no'.
+ pam password change = yes
+
+# This option controls how unsuccessful authentication attempts are mapped
+# to anonymous connections
+ map to guest = bad user
+
+########## Domains ###########
+
+#
+# The following settings only takes effect if 'server role = primary
+# classic domain controller', 'server role = backup domain controller'
+# or 'domain logons' is set
+#
+
+# It specifies the location of the user's
+# profile directory from the client point of view) The following
+# required a [profiles] share to be setup on the samba server (see
+# below)
+; logon path = \\%N\profiles\%U
+# Another common choice is storing the profile in the user's home directory
+# (this is Samba's default)
+# logon path = \\%N\%U\profile
+
+# The following setting only takes effect if 'domain logons' is set
+# It specifies the location of a user's home directory (from the client
+# point of view)
+; logon drive = H:
+# logon home = \\%N\%U
+
+# The following setting only takes effect if 'domain logons' is set
+# It specifies the script to run during logon. The script must be stored
+# in the [netlogon] share
+# NOTE: Must be store in 'DOS' file format convention
+; logon script = logon.cmd
+
+# This allows Unix users to be created on the domain controller via the SAMR
+# RPC pipe. The example command creates a user account with a disabled Unix
+# password; please adapt to your needs
+; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
+
+# This allows machine accounts to be created on the domain controller via the
+# SAMR RPC pipe.
+# The following assumes a "machines" group exists on the system
+; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
+
+# This allows Unix groups to be created on the domain controller via the SAMR
+# RPC pipe.
+; add group script = /usr/sbin/addgroup --force-badname %g
+
+############ Misc ############
+
+# Using the following line enables you to customise your configuration
+# on a per machine basis. The %m gets replaced with the netbios name
+# of the machine that is connecting
+; include = /home/samba/etc/smb.conf.%m
+
+# Some defaults for winbind (make sure you're not using the ranges
+# for something else.)
+; idmap uid = 10000-20000
+; idmap gid = 10000-20000
+; template shell = /bin/bash
+
+# Setup usershare options to enable non-root users to share folders
+# with the net usershare command.
+
+# Maximum number of usershare. 0 (default) means that usershare is disabled.
+; usershare max shares = 100
+
+# Allow users who've been granted usershare privileges to create
+# public shares, not just authenticated ones
+ usershare allow guests = yes
+
+#======================= Share Definitions =======================
+
+[homes]
+ comment = Home Directories
+ browseable = no
+
+# By default, the home directories are exported read-only. Change the
+# next parameter to 'no' if you want to be able to write to them.
+ read only = yes
+
+# File creation mask is set to 0700 for security reasons. If you want to
+# create files with group=rw permissions, set next parameter to 0775.
+ create mask = 0700
+
+# Directory creation mask is set to 0700 for security reasons. If you want to
+# create dirs. with group=rw permissions, set next parameter to 0775.
+ directory mask = 0700
+
+# By default, \\server\username shares can be connected to by anyone
+# with access to the samba server.
+# The following parameter makes sure that only "username" can connect
+# to \\server\username
+# This might need tweaking when using external authentication schemes
+ valid users = %S
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+# (you need to configure Samba to act as a domain controller too.)
+;[netlogon]
+; comment = Network Logon Service
+; path = /home/samba/netlogon
+; guest ok = yes
+; read only = yes
+
+# Un-comment the following and create the profiles directory to store
+# users profiles (see the "logon path" option above)
+# (you need to configure Samba to act as a domain controller too.)
+# The path below should be writable by all users so that their
+# profile directory may be created the first time they log on
+;[profiles]
+; comment = Users profiles
+; path = /home/samba/profiles
+; guest ok = no
+; browseable = no
+; create mask = 0600
+; directory mask = 0700
+
+[printers]
+ comment = All Printers
+ browseable = no
+ path = /var/spool/samba
+ printable = yes
+ guest ok = no
+ read only = yes
+ create mask = 0700
+
+# Windows clients look for this share name as a source of downloadable
+# printer drivers
+[print$]
+ comment = Printer Drivers
+ path = /var/lib/samba/printers
+ browseable = yes
+ read only = yes
+ guest ok = no
+# Uncomment to allow remote administration of Windows print drivers.
+# You may need to replace 'lpadmin' with the name of the group your
+# admin users are members of.
+# Please note that you also need to set appropriate Unix permissions
+# to the drivers directory for these users to have write rights in it
+; write list = root, @lpadmin
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch
index 77c8b36..6ae2928 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch
@@ -1,4 +1,7 @@
-samba: correct log files location
+From f99b6a8617df6a46f41fb68ffafb2608dbb6681e Mon Sep 17 00:00:00 2001
+From: Joe Slater <joe.slater@windriver.com>
+Date: Wed, 8 Nov 2017 11:58:05 -0800
+Subject: [PATCH] samba: correct log files location
We use /var/log/samba.
@@ -6,9 +9,15 @@
Signed-off-by: Joe Slater <joe.slater@windriver.com>
---- a/packaging/RHEL/setup/smb.conf
-+++ b/packaging/RHEL/setup/smb.conf
-@@ -63,7 +63,7 @@
+---
+ examples/smb.conf.default | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/examples/smb.conf.default b/examples/smb.conf.default
+index 2f20720..44c1aa8 100644
+--- a/examples/smb.conf.default
++++ b/examples/smb.conf.default
+@@ -52,7 +52,7 @@
# this tells Samba to use a separate log file for each machine
# that connects
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.7.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.7.6.bb
deleted file mode 100644
index a8517c5..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.7.6.bb
+++ /dev/null
@@ -1,318 +0,0 @@
-HOMEPAGE = "https://www.samba.org/"
-SECTION = "console/network"
-
-LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \
- file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 "
-
-SAMBA_MIRROR = "http://samba.org/samba/ftp"
-MIRRORS += "\
-${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \
-${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \
-"
-
-SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
- file://16-do-not-check-xsltproc-manpages.patch \
- file://20-do-not-import-target-module-while-cross-compile.patch \
- file://21-add-config-option-without-valgrind.patch \
- file://0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch \
- file://0006-avoid-using-colon-in-the-checking-msg.patch \
- file://netdb_defines.patch \
- file://glibc_only.patch \
- file://iconv-4.7.0.patch \
- file://dnsserver-4.7.0.patch \
- file://smb_conf-4.7.0.patch \
- file://volatiles.03_samba \
- "
-SRC_URI_append_libc-musl = " \
- file://samba-pam.patch \
- file://samba-4.3.9-remove-getpwent_r.patch \
- "
-
-SRC_URI[md5sum] = "0253021a45c479cec1e135b004a0177a"
-SRC_URI[sha256sum] = "1eede30fc8ef6504e24602fb72b00baa0a7b73b59f16d25cb0771dc8c7c57d6e"
-
-inherit systemd waf-samba cpan-base perlnative update-rc.d
-# remove default added RDEPENDS on perl
-RDEPENDS_${PN}_remove = "perl"
-
-DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libbsd libaio libpam"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-DEPENDS_append_libc-musl = " libtirpc"
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS_append_libc-musl = " -ltirpc"
-
-LSB = ""
-LSB_linuxstdbase = "lsb"
-
-INITSCRIPT_NAME = "samba"
-INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ."
-
-SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind"
-SYSTEMD_SERVICE_${PN}-base = "nmb.service smb.service"
-SYSTEMD_SERVICE_${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}"
-SYSTEMD_SERVICE_winbind = "winbind.service"
-
-# There are prerequisite settings to enable ad-dc, so disable the service by default.
-# Reference:
-# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
-SYSTEMD_AUTO_ENABLE_${PN}-ad-dc = "disable"
-
-# Use krb5. Build active domain controller.
-#
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
- acl ad-dc cups gnutls ldap mitkrb5 \
-"
-
-RDEPENDS_${PN}-base += "${LSB}"
-RDEPENDS_${PN}-ctdb-tests += "bash util-linux-getopt"
-
-PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl"
-PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin"
-PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups"
-PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
-PACKAGECONFIG[sasl] = ",,cyrus-sasl"
-PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
-PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi"
-PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi"
-PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind,"
-PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust"
-PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
-
-# Building the AD (Active Directory) DC (Domain Controller) requires GnuTLS,
-# And ad-dc doesn't work with mitkrb5 for versions prior to 4.7.0 according to:
-# http://samba.2283325.n4.nabble.com/samba-4-6-6-Unknown-dependency-kdc-in-service-kdc-objlist-td4722096.html
-# So the working combination is:
-# 1) ad-dc: enable, gnutls: enable, mitkrb5: disable
-# 2) ad-dc: disable, gnutls: enable/disable, mitkrb5: enable
-#
-# We are now at 4.7.0, so take the above with a grain of salt. We do not need to know where
-# krb5kdc is unless ad-dc is enabled, but we tell configure anyhow.
-#
-PACKAGECONFIG[ad-dc] = ",--without-ad-dc,,"
-PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
-PACKAGECONFIG[mitkrb5] = "--with-system-mitkrb5 --with-system-mitkdc=/usr/sbin/krb5kdc,,krb5,"
-
-SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2"
-SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4"
-SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4"
-SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}"
-
-# These libraries are supposed to replace others supplied by packages, but decorate the names of
-# .so files so there will not be a conflict. This is not done consistantly, so be very careful
-# when adding to this list.
-#
-SAMBA4_LIBS="heimdal,cmocka,NONE"
-
-EXTRA_OECONF += "--enable-fhs \
- --with-piddir=/run \
- --with-sockets-dir=/run/samba \
- --with-modulesdir=${libdir}/samba \
- --with-lockdir=${localstatedir}/lib/samba \
- --with-cachedir=${localstatedir}/lib/samba \
- --disable-rpath-install \
- --with-shared-modules=${SAMBA4_MODULES} \
- --bundled-libraries=${SAMBA4_LIBS} \
- ${@oe.utils.conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \
- --with-cluster-support \
- --with-profiling-data \
- --with-libiconv=${STAGING_DIR_HOST}${prefix} \
- --with-pam --with-pammodulesdir=${base_libdir}/security \
- "
-
-LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-
-do_install_append() {
- for section in 1 5 7; do
- install -d ${D}${mandir}/man$section
- install -m 0644 ctdb/doc/*.$section ${D}${mandir}/man$section
- done
- for section in 1 5 7 8; do
- install -d ${D}${mandir}/man$section
- install -m 0644 docs/manpages/*.$section ${D}${mandir}/man$section
- done
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 packaging/systemd/*.service ${D}${systemd_system_unitdir}
- sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \
- -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \
- -i ${D}${systemd_system_unitdir}/*.service
-
- if [ "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'yes', 'no', d)}" = "no" ]; then
- rm -f ${D}${systemd_system_unitdir}/samba.service
- fi
-
- install -d ${D}${sysconfdir}/tmpfiles.d
- install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf
- echo "d ${localstatedir}/log/samba 0755 root root -" \
- >> ${D}${sysconfdir}/tmpfiles.d/samba.conf
- if [ "${LSB}" = "lsb" ]; then
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 packaging/LSB/samba.sh ${D}${sysconfdir}/init.d/samba
- else
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba
- sed -e 's,/opt/samba/bin,${sbindir},g' \
- -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \
- -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \
- -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \
- -e 's,/usr/bin,${base_bindir},g' \
- -i ${D}${sysconfdir}/init.d/samba
- fi
-
- install -d ${D}${sysconfdir}/samba
- echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts
- install -m644 packaging/RHEL/setup/smb.conf ${D}${sysconfdir}/samba/smb.conf
- install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba
-
- install -d ${D}${sysconfdir}/default
- install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba
-
- # install ctdb config file and test cases
- install -D -m 0644 ${S}/ctdb/tests/onnode/nodes ${D}${sysconfdir}/ctdb/nodes
- # the items are from ctdb/tests/run_tests.sh
- for d in onnode takeover tool eventscripts cunit simple complex; do
- testdir=${D}${datadir}/ctdb-tests/$d
- install -d $testdir
- cp ${S}/ctdb/tests/$d/*.sh $testdir
- cp -r ${S}/ctdb/tests/$d/scripts ${S}/ctdb/tests/$d/stubs $testdir || true
- done
-
- # fix file-rdeps qa warning
- if [ -f ${D}${bindir}/onnode ]; then
- sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode
- fi
-
- chmod 0750 ${D}${sysconfdir}/sudoers.d
- rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
-}
-
-PACKAGES =+ "${PN}-python ${PN}-pidl \
- ${PN}-dsdb-modules ${PN}-testsuite registry-tools \
- winbind \
- ${PN}-common ${PN}-base ${PN}-ad-dc ${PN}-ctdb-tests \
- smbclient ${PN}-client ${PN}-server ${PN}-test"
-
-python samba_populate_packages() {
- def module_hook(file, pkg, pattern, format, basename):
- pn = d.getVar('PN', True)
- d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg)
-
- mlprefix = d.getVar('MLPREFIX', True) or ''
- pam_libdir = d.expand('${base_libdir}/security')
- pam_pkgname = mlprefix + 'pam-plugin%s'
- do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
-
- libdir = d.getVar('libdir', True)
- do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
- pkglibdir = '%s/samba' % libdir
- do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
- moduledir = '%s/samba/auth' % libdir
- do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True)
- moduledir = '%s/samba/pdb' % libdir
- do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True)
-}
-
-PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
-
-RDEPENDS_${PN} += "${PN}-base ${PN}-python ${PN}-dsdb-modules"
-RDEPENDS_${PN}-python += "pytalloc python-tdb"
-
-FILES_${PN}-base = "${sbindir}/nmbd \
- ${sbindir}/smbd \
- ${sysconfdir}/init.d \
- ${localstatedir}/lib/samba \
- ${localstatedir}/nmbd \
- ${localstatedir}/spool/samba \
- ${systemd_system_unitdir}/nmb.service \
- ${systemd_system_unitdir}/smb.service"
-
-FILES_${PN}-ad-dc = "${sbindir}/samba \
- ${systemd_system_unitdir}/samba.service \
- ${libdir}/krb5/plugins/kdb/samba.so \
- "
-RDEPENDS_${PN}-ad-dc = "krb5-kdc"
-
-FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \
- ${bindir}/ctdb_run_cluster_tests \
- ${sysconfdir}/ctdb/nodes \
- ${datadir}/ctdb-tests \
- ${datadir}/ctdb/tests \
- "
-
-FILES_${BPN}-common = "${sysconfdir}/default \
- ${sysconfdir}/samba \
- ${sysconfdir}/tmpfiles.d \
-"
-
-FILES_${PN} += "${libdir}/vfs/*.so \
- ${libdir}/charset/*.so \
- ${libdir}/*.dat \
- ${libdir}/auth/*.so \
-"
-
-FILES_${PN}-dsdb-modules = "${libdir}/samba/ldb"
-
-FILES_${PN}-testsuite = "${bindir}/gentest \
- ${bindir}/locktest \
- ${bindir}/masktest \
- ${bindir}/ndrdump \
- ${bindir}/smbtorture"
-
-FILES_registry-tools = "${bindir}/regdiff \
- ${bindir}/regpatch \
- ${bindir}/regshell \
- ${bindir}/regtree"
-
-FILES_winbind = "${sbindir}/winbindd \
- ${bindir}/wbinfo \
- ${bindir}/ntlm_auth \
- ${libdir}/samba/idmap \
- ${libdir}/samba/nss_info \
- ${libdir}/winbind_krb5_locator.so \
- ${sysconfdir}/init.d/winbind \
- ${systemd_system_unitdir}/winbind.service"
-
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES_smbclient = "${bindir}/cifsdd \
- ${bindir}/rpcclient \
- ${bindir}/smbcacls \
- ${bindir}/smbclient \
- ${bindir}/smbcquotas \
- ${bindir}/smbget \
- ${bindir}/smbspool \
- ${bindir}/smbtar \
- ${bindir}/smbtree \
- ${libdir}/samba/smbspool_krb5_wrapper"
-
-RDEPENDS_${PN}-pidl_append = " perl"
-FILES_${PN}-pidl = "${bindir}/pidl ${datadir}/perl5/Parse"
-
-RDEPENDS_${PN}-client = "\
- smbclient \
- winbind \
- registry-tools \
- ${PN}-pidl \
- "
-
-ALLOW_EMPTY_${PN}-client = "1"
-
-RDEPENDS_${PN}-server = "\
- ${PN} \
- winbind \
- registry-tools \
- "
-
-ALLOW_EMPTY_${PN}-server = "1"
-
-RDEPENDS_${PN}-test = "\
- ${PN}-ctdb-tests \
- ${PN}-testsuite \
- "
-
-ALLOW_EMPTY_${PN}-test = "1"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb
new file mode 100644
index 0000000..da0ac32
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb
@@ -0,0 +1,313 @@
+HOMEPAGE = "https://www.samba.org/"
+SECTION = "console/network"
+
+LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \
+ file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 "
+
+SAMBA_MIRROR = "http://samba.org/samba/ftp"
+MIRRORS += "\
+${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \
+${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \
+"
+
+SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
+ file://smb.conf \
+ file://16-do-not-check-xsltproc-manpages.patch \
+ file://20-do-not-import-target-module-while-cross-compile.patch \
+ file://21-add-config-option-without-valgrind.patch \
+ file://netdb_defines.patch \
+ file://glibc_only.patch \
+ file://iconv-4.7.0.patch \
+ file://dnsserver-4.7.0.patch \
+ file://smb_conf-4.7.0.patch \
+ file://volatiles.03_samba \
+ file://0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch \
+ "
+SRC_URI_append_libc-musl = " \
+ file://samba-pam.patch \
+ file://samba-4.3.9-remove-getpwent_r.patch \
+ "
+
+SRC_URI[md5sum] = "ca5bfbebd8d9eb95506e16594b2bbee2"
+SRC_URI[sha256sum] = "f5044d149e01894a08b1d114b8b69aed78171a7bb19608bd1fd771453b9a5406"
+
+UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.8(\.\d+)+).tar.gz"
+
+inherit systemd waf-samba cpan-base perlnative update-rc.d
+# remove default added RDEPENDS on perl
+RDEPENDS_${PN}_remove = "perl"
+
+DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libbsd libaio libpam"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+DEPENDS_append_libc-musl = " libtirpc"
+CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
+LDFLAGS_append_libc-musl = " -ltirpc"
+
+INITSCRIPT_NAME = "samba"
+INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ."
+
+SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind"
+SYSTEMD_SERVICE_${PN}-base = "nmb.service smb.service"
+SYSTEMD_SERVICE_${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}"
+SYSTEMD_SERVICE_winbind = "winbind.service"
+
+# There are prerequisite settings to enable ad-dc, so disable the service by default.
+# Reference:
+# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
+SYSTEMD_AUTO_ENABLE_${PN}-ad-dc = "disable"
+
+# Use krb5. Build active domain controller.
+#
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
+ acl ad-dc cups gnutls ldap mitkrb5 \
+"
+
+RDEPENDS_${PN}-ctdb-tests += "bash util-linux-getopt"
+
+PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl"
+PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin"
+PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
+PACKAGECONFIG[sasl] = ",,cyrus-sasl"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
+PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi"
+PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi"
+PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind,"
+PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust"
+PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
+
+# Building the AD (Active Directory) DC (Domain Controller) requires GnuTLS,
+# And ad-dc doesn't work with mitkrb5 for versions prior to 4.7.0 according to:
+# http://samba.2283325.n4.nabble.com/samba-4-6-6-Unknown-dependency-kdc-in-service-kdc-objlist-td4722096.html
+# So the working combination is:
+# 1) ad-dc: enable, gnutls: enable, mitkrb5: disable
+# 2) ad-dc: disable, gnutls: enable/disable, mitkrb5: enable
+#
+# We are now at 4.7.0, so take the above with a grain of salt. We do not need to know where
+# krb5kdc is unless ad-dc is enabled, but we tell configure anyhow.
+#
+PACKAGECONFIG[ad-dc] = ",--without-ad-dc,,"
+PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
+PACKAGECONFIG[mitkrb5] = "--with-system-mitkrb5 --with-system-mitkdc=/usr/sbin/krb5kdc,,krb5,"
+
+SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2"
+SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4"
+SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4"
+SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}"
+
+# These libraries are supposed to replace others supplied by packages, but decorate the names of
+# .so files so there will not be a conflict. This is not done consistantly, so be very careful
+# when adding to this list.
+#
+SAMBA4_LIBS="heimdal,cmocka,ldb,pyldb-util,NONE"
+
+EXTRA_OECONF += "--enable-fhs \
+ --with-piddir=/run \
+ --with-sockets-dir=/run/samba \
+ --with-modulesdir=${libdir}/samba \
+ --with-lockdir=${localstatedir}/lib/samba \
+ --with-cachedir=${localstatedir}/lib/samba \
+ --disable-rpath-install \
+ --with-shared-modules=${SAMBA4_MODULES} \
+ --bundled-libraries=${SAMBA4_LIBS} \
+ ${@oe.utils.conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \
+ --with-cluster-support \
+ --with-profiling-data \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix} \
+ --with-pam --with-pammodulesdir=${base_libdir}/security \
+ "
+
+LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+do_install_append() {
+ for section in 1 5 7; do
+ install -d ${D}${mandir}/man$section
+ install -m 0644 ctdb/doc/*.$section ${D}${mandir}/man$section
+ done
+ for section in 1 5 7 8; do
+ install -d ${D}${mandir}/man$section
+ install -m 0644 docs/manpages/*.$section ${D}${mandir}/man$section
+ done
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${S}/bin/default/packaging/systemd/*.service ${D}${systemd_system_unitdir}/
+ sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \
+ -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \
+ -i ${D}${systemd_system_unitdir}/*.service
+
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'yes', 'no', d)}" = "no" ]; then
+ rm -f ${D}${systemd_system_unitdir}/samba.service
+ fi
+
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf
+ echo "d ${localstatedir}/log/samba 0755 root root -" \
+ >> ${D}${sysconfdir}/tmpfiles.d/samba.conf
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba
+ sed -e 's,/opt/samba/bin,${sbindir},g' \
+ -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \
+ -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \
+ -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \
+ -e 's,/usr/bin,${base_bindir},g' \
+ -i ${D}${sysconfdir}/init.d/samba
+
+ install -d ${D}${sysconfdir}/samba
+ echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts
+ install -m644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
+ install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba
+
+ install -d ${D}${sysconfdir}/default
+ install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba
+
+ # install ctdb config file and test cases
+ install -D -m 0644 ${S}/ctdb/tests/onnode/nodes ${D}${sysconfdir}/ctdb/nodes
+ # the items are from ctdb/tests/run_tests.sh
+ for d in onnode takeover tool eventscripts cunit simple complex; do
+ testdir=${D}${datadir}/ctdb-tests/$d
+ install -d $testdir
+ cp ${S}/ctdb/tests/$d/*.sh $testdir
+ cp -r ${S}/ctdb/tests/$d/scripts ${S}/ctdb/tests/$d/stubs $testdir || true
+ done
+
+ # fix file-rdeps qa warning
+ if [ -f ${D}${bindir}/onnode ]; then
+ sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode
+ fi
+
+ chmod 0750 ${D}${sysconfdir}/sudoers.d
+ rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
+}
+
+PACKAGES =+ "${PN}-python ${PN}-pidl \
+ ${PN}-dsdb-modules ${PN}-testsuite registry-tools \
+ winbind \
+ ${PN}-common ${PN}-base ${PN}-ad-dc ${PN}-ctdb-tests \
+ smbclient ${PN}-client ${PN}-server ${PN}-test"
+
+python samba_populate_packages() {
+ def module_hook(file, pkg, pattern, format, basename):
+ pn = d.getVar('PN', True)
+ d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg)
+
+ mlprefix = d.getVar('MLPREFIX', True) or ''
+ pam_libdir = d.expand('${base_libdir}/security')
+ pam_pkgname = mlprefix + 'pam-plugin%s'
+ do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
+
+ libdir = d.getVar('libdir', True)
+ do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
+ pkglibdir = '%s/samba' % libdir
+ do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
+ moduledir = '%s/samba/auth' % libdir
+ do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True)
+ moduledir = '%s/samba/pdb' % libdir
+ do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True)
+}
+
+PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
+PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
+
+RDEPENDS_${PN} += "${PN}-base ${PN}-python ${PN}-dsdb-modules"
+RDEPENDS_${PN}-python += "pytalloc python-tdb"
+
+FILES_${PN}-base = "${sbindir}/nmbd \
+ ${sbindir}/smbd \
+ ${sysconfdir}/init.d \
+ ${localstatedir}/lib/samba \
+ ${localstatedir}/nmbd \
+ ${localstatedir}/spool/samba \
+ ${systemd_system_unitdir}/nmb.service \
+ ${systemd_system_unitdir}/smb.service"
+
+FILES_${PN}-ad-dc = "${sbindir}/samba \
+ ${systemd_system_unitdir}/samba.service \
+ ${libdir}/krb5/plugins/kdb/samba.so \
+ "
+RDEPENDS_${PN}-ad-dc = "krb5-kdc"
+
+FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \
+ ${bindir}/ctdb_run_cluster_tests \
+ ${sysconfdir}/ctdb/nodes \
+ ${datadir}/ctdb-tests \
+ ${datadir}/ctdb/tests \
+ "
+
+FILES_${BPN}-common = "${sysconfdir}/default \
+ ${sysconfdir}/samba \
+ ${sysconfdir}/tmpfiles.d \
+"
+
+FILES_${PN} += "${libdir}/vfs/*.so \
+ ${libdir}/charset/*.so \
+ ${libdir}/*.dat \
+ ${libdir}/auth/*.so \
+"
+
+FILES_${PN}-dsdb-modules = "${libdir}/samba/ldb"
+
+FILES_${PN}-testsuite = "${bindir}/gentest \
+ ${bindir}/locktest \
+ ${bindir}/masktest \
+ ${bindir}/ndrdump \
+ ${bindir}/smbtorture"
+
+FILES_registry-tools = "${bindir}/regdiff \
+ ${bindir}/regpatch \
+ ${bindir}/regshell \
+ ${bindir}/regtree"
+
+FILES_winbind = "${sbindir}/winbindd \
+ ${bindir}/wbinfo \
+ ${bindir}/ntlm_auth \
+ ${libdir}/samba/idmap \
+ ${libdir}/samba/nss_info \
+ ${libdir}/winbind_krb5_locator.so \
+ ${libdir}/winbind-krb5-localauth.so \
+ ${sysconfdir}/init.d/winbind \
+ ${systemd_system_unitdir}/winbind.service"
+
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
+FILES_smbclient = "${bindir}/cifsdd \
+ ${bindir}/rpcclient \
+ ${bindir}/smbcacls \
+ ${bindir}/smbclient \
+ ${bindir}/smbcquotas \
+ ${bindir}/smbget \
+ ${bindir}/smbspool \
+ ${bindir}/smbtar \
+ ${bindir}/smbtree \
+ ${libdir}/samba/smbspool_krb5_wrapper"
+
+RDEPENDS_${PN}-pidl_append = " perl"
+FILES_${PN}-pidl = "${bindir}/pidl ${datadir}/perl5/Parse"
+
+RDEPENDS_${PN}-client = "\
+ smbclient \
+ winbind \
+ registry-tools \
+ ${PN}-pidl \
+ "
+
+ALLOW_EMPTY_${PN}-client = "1"
+
+RDEPENDS_${PN}-server = "\
+ ${PN} \
+ winbind \
+ registry-tools \
+ "
+
+ALLOW_EMPTY_${PN}-server = "1"
+
+RDEPENDS_${PN}-test = "\
+ ${PN}-ctdb-tests \
+ ${PN}-testsuite \
+ "
+
+ALLOW_EMPTY_${PN}-test = "1"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch
deleted file mode 100644
index 047caec..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 4335c4c61877c0b65ff4ec767e8ad3ad8c73c32d Mon Sep 17 00:00:00 2001
-From: Zhiquan Li <zhiquan.li@windriver.com>
-Date: Fri, 13 Nov 2015 17:40:24 +0800
-Subject: [PATCH] fix do_package failed since snort 2.9.7.0
-
-Remove redundant '/' as a workround for below error:
-/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character
-
-It's a rpm debugedit bug:
-* http://sourceforge.net/p/snort/mailman/message/34130268/
-* https://bugzilla.redhat.com/show_bug.cgi?id=304121
-
-Upstream-Status:Inappropriate [embedded specific]
-
-Signed-off-by: Zhiquan Li <zhiquan.li@windriver.com>
-
----
- src/snort.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/snort.h b/src/snort.h
-index 8308e57..499d157 100644
---- a/src/snort.h
-+++ b/src/snort.h
-@@ -39,7 +39,7 @@
- #include "sfdaq.h"
- #include "sf_types.h"
- #include "sfutil/sflsq.h"
--#include "sfutil//sfActionQueue.h"
-+#include "sfutil/sfActionQueue.h"
- #include "profiler.h"
- #include "rules.h"
- #include "treenodes.h"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch
deleted file mode 100644
index 6aa0b73..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 5a53260a819e2873f58165e96852529719101c53 Mon Sep 17 00:00:00 2001
-From: Chunrong Guo <B40290@freescale.com>
-Date: Mon, 4 Nov 2013 10:39:56 +0800
-Subject: [PATCH] snort: add recipe
-
-Upstream-Status:Inappropriate [embedded specific]
-
-fix the below error:
-checking for dap address space id... configure:
-configure: error: cannot run test program while cross compiling
-
-Signed-off-by: Chunrong Guo <B40290@freescale.com>
-
----
- configure.in | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 6fe5d68..e7636ce 100644
---- a/configure.in
-+++ b/configure.in
-@@ -698,23 +698,23 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then
-
- fi
-
--AC_MSG_CHECKING([for daq address space ID])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <daq.h>
--]],
--[[
-- DAQ_PktHdr_t hdr;
-- hdr.address_space_id = 0;
--]])],
--[have_daq_address_space_id="yes"],
--[have_daq_address_space_id="no"])
--AC_MSG_RESULT($have_daq_address_space_id)
--if test "x$have_daq_address_space_id" = "xyes"; then
-- AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
-- [DAQ version supports address space ID in header.])
--fi
-+#AC_MSG_CHECKING([for daq address space ID])
-+#AC_RUN_IFELSE(
-+#[AC_LANG_PROGRAM(
-+#[[
-+##include <daq.h>
-+#]],
-+#[[
-+# DAQ_PktHdr_t hdr;
-+# hdr.address_space_id = 0;
-+#]])],
-+have_daq_address_space_id="yes"
-+#[have_daq_address_space_id="no"])
-+#AC_MSG_RESULT($have_daq_address_space_id)
-+#if test "x$have_daq_address_space_id" = "xyes"; then
-+# AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
-+# [DAQ version supports address space ID in header.])
-+#fi
-
- AC_MSG_CHECKING([for daq flow ID])
- AC_RUN_IFELSE(
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch
deleted file mode 100644
index 04df37c..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 5aa42a3137c657b5eddd4608343aa1854bd7cd27 Mon Sep 17 00:00:00 2001
-From: Zhiquan Li <zhiquan.li@windriver.com>
-Date: Mon, 16 Nov 2015 10:23:00 +0800
-Subject: [PATCH] snort: 2.9.6.0 -> 2.9.7.5
-
-Upstream-Status:Inappropriate [embedded specific]
-
-fix the below error:
-checking for daq flow ID... configure:
-configure: error: cannot run test program while cross compiling
-
----
- configure.in | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index e7636ce..2fbd298 100644
---- a/configure.in
-+++ b/configure.in
-@@ -716,23 +716,23 @@ have_daq_address_space_id="yes"
- # [DAQ version supports address space ID in header.])
- #fi
-
--AC_MSG_CHECKING([for daq flow ID])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <daq.h>
--]],
--[[
-- DAQ_PktHdr_t hdr;
-- hdr.flow_id = 0;
--]])],
--[have_daq_flow_id="yes"],
--[have_daq_flow_id="no"])
--AC_MSG_RESULT($have_daq_flow_id)
--if test "x$have_daq_flow_id" = "xyes"; then
-- AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
-- [DAQ version supports flow ID in header.])
--fi
-+#AC_MSG_CHECKING([for daq flow ID])
-+#AC_RUN_IFELSE(
-+#[AC_LANG_PROGRAM(
-+#[[
-+##include <daq.h>
-+#]],
-+#[[
-+# DAQ_PktHdr_t hdr;
-+# hdr.flow_id = 0;
-+#]])],
-+have_daq_flow_id="yes"
-+#[have_daq_flow_id="no"])
-+#AC_MSG_RESULT($have_daq_flow_id)
-+#if test "x$have_daq_flow_id" = "xyes"; then
-+# AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
-+# [DAQ version supports flow ID in header.])
-+#fi
-
- AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
- AC_RUN_IFELSE(
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch
deleted file mode 100644
index 15958a7..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b916443d43f2e1eeacfbed0033274a0270ef634d Mon Sep 17 00:00:00 2001
-From: Zhiquan Li <zhiquan.li@windriver.com>
-Date: Mon, 16 Nov 2015 10:23:00 +0800
-Subject: [PATCH] snort: 2.9.6.0 -> 2.9.7.5
-
-Upstream-Status:Inappropriate [embedded specific]
-
-fix the below error:
-checking for DAQ_VERDICT_RETRY... configure:
-configure: error: cannot run test program while cross compiling
-
----
- configure.in | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 2fbd298..62573a8 100644
---- a/configure.in
-+++ b/configure.in
-@@ -734,23 +734,23 @@ have_daq_flow_id="yes"
- # [DAQ version supports flow ID in header.])
- #fi
-
--AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <daq.h>
--]],
--[[
-- DAQ_Verdict verdict;
-- verdict = DAQ_VERDICT_RETRY;
--]])],
--[have_daq_verdict_retry="yes"],
--[have_daq_verdict_retry="no"])
--AC_MSG_RESULT($have_daq_verdict_retry)
--if test "x$have_daq_verdict_retry" = "xyes"; then
-- AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1],
-- [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.])
--fi
-+#AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
-+#AC_RUN_IFELSE(
-+#[AC_LANG_PROGRAM(
-+#[[
-+##include <daq.h>
-+#]],
-+#[[
-+# DAQ_Verdict verdict;
-+# verdict = DAQ_VERDICT_RETRY;
-+#]])],
-+have_daq_verdict_retry="yes"
-+#[have_daq_verdict_retry="no"])
-+#AC_MSG_RESULT($have_daq_verdict_retry)
-+#if test "x$have_daq_verdict_retry" = "xyes"; then
-+# AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1],
-+# [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.])
-+#fi
-
- # any sparc platform has to have this one defined.
- AC_MSG_CHECKING(for sparc)
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch
deleted file mode 100644
index 79e9f07..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From a1fdbced4166cb0f35d23b63a59312d86860485a Mon Sep 17 00:00:00 2001
-From: Chunrong Guo <B40290@freescale.com>
-Date: Mon, 4 Nov 2013 10:39:56 +0800
-Subject: [PATCH] snort: add recipe
-
-Upstream-Status: Inappropriate [embedded specific]
-
-fix the below error:
-checking for INADDR_NONE... configure:
-configure: error: cannot run test program while cross compiling
-
-Signed-off-by: Chunrong Guo <B40290@freescale.com>
-
----
- configure.in | 50 ++++++++++++++++----------------------------------
- 1 file changed, 16 insertions(+), 34 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 20d15eb..6fe5d68 100644
---- a/configure.in
-+++ b/configure.in
-@@ -274,25 +274,7 @@ AC_CHECK_TYPES([int8_t,int16_t,int32_t,int64_t])
- AC_CHECK_TYPES([boolean])
-
- # In case INADDR_NONE is not defined (like on Solaris)
--have_inaddr_none="no"
--AC_MSG_CHECKING([for INADDR_NONE])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <sys/types.h>
--#include <netinet/in.h>
--#include <arpa/inet.h>
--]],
--[[
-- if (inet_addr("10,5,2") == INADDR_NONE);
-- return 0;
--]])],
--[have_inaddr_none="yes"],
--[have_inaddr_none="no"])
--AC_MSG_RESULT($have_inaddr_none)
--if test "x$have_inaddr_none" = "xno"; then
-- AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition])
--fi
-+have_inaddr_none="yes"
-
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include <stdio.h>
-@@ -421,21 +403,21 @@ if test "x$LPCAP" = "xno"; then
- fi
- fi
-
--AC_MSG_CHECKING([for pcap_lex_destroy])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <pcap.h>
--]],
--[[
-- pcap_lex_destroy();
--]])],
--[have_pcap_lex_destroy="yes"],
--[have_pcap_lex_destroy="no"])
--AC_MSG_RESULT($have_pcap_lex_destroy)
--if test "x$have_pcap_lex_destroy" = "xyes"; then
-- AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
--fi
-+#AC_MSG_CHECKING([for pcap_lex_destroy])
-+#AC_RUN_IFELSE(
-+#[AC_LANG_PROGRAM(
-+#[[
-+##include <pcap.h>
-+#]],
-+#[[
-+# pcap_lex_destroy();
-+#]])],
-+have_pcap_lex_destroy="yes"
-+#[have_pcap_lex_destroy="no"])
-+#AC_MSG_RESULT($have_pcap_lex_destroy)
-+#if test "x$have_pcap_lex_destroy" = "xyes"; then
-+# AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
-+#fi
-
- AC_MSG_CHECKING([for pcap_lib_version])
- AC_LINK_IFELSE(
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch
new file mode 100644
index 0000000..037962f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch
@@ -0,0 +1,254 @@
+From dc390837bc7adc205bb955d0922040a7e365d8dd Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Mon, 23 Jul 2018 13:54:07 +0800
+Subject: [PATCH] Disable run test program while cross compiling
+
+fix configure error:
+configure: error: cannot run test program while cross compiling
+
+Upstream-Status:Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ configure.in | 148 +++++------------------------------------------------------
+ 1 file changed, 12 insertions(+), 136 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 4b3a5db..a6c5498 100644
+--- a/configure.in
++++ b/configure.in
+@@ -284,19 +284,7 @@ AC_CHECK_TYPES([boolean])
+ # In case INADDR_NONE is not defined (like on Solaris)
+ have_inaddr_none="no"
+ AC_MSG_CHECKING([for INADDR_NONE])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <sys/types.h>
+-#include <netinet/in.h>
+-#include <arpa/inet.h>
+-]],
+-[[
+- if (inet_addr("10,5,2") == INADDR_NONE);
+- return 0;
+-]])],
+-[have_inaddr_none="yes"],
+-[have_inaddr_none="no"])
++have_inaddr_none="yes"
+ AC_MSG_RESULT($have_inaddr_none)
+ if test "x$have_inaddr_none" = "xno"; then
+ AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition])
+@@ -429,16 +417,7 @@ if test "x$LPCAP" = "xno"; then
+ fi
+
+ AC_MSG_CHECKING([for pcap_lex_destroy])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <pcap.h>
+-]],
+-[[
+- pcap_lex_destroy();
+-]])],
+-[have_pcap_lex_destroy="yes"],
+-[have_pcap_lex_destroy="no"])
++have_pcap_lex_destroy="yes"
+ AC_MSG_RESULT($have_pcap_lex_destroy)
+ if test "x$have_pcap_lex_destroy" = "xyes"; then
+ AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
+@@ -716,17 +695,7 @@ fi
+ AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta] [daq_dp_add_dc])
+
+ AC_MSG_CHECKING([for daq real addresses])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.n_real_dPort = 0;
+-]])],
+-[have_daq_real_addresses="yes"],
+-[have_daq_real_addresses="no"])
++have_daq_real_addresses="no"
+ AC_MSG_RESULT($have_daq_real_addresses)
+ if test "x$have_daq_real_addresses" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_REAL_ADDRESSES],[1],
+@@ -754,17 +723,7 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq address space ID])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.address_space_id = 0;
+-]])],
+-[have_daq_address_space_id="yes"],
+-[have_daq_address_space_id="no"])
++have_daq_address_space_id="yes"
+ AC_MSG_RESULT($have_daq_address_space_id)
+ if test "x$have_daq_address_space_id" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
+@@ -772,17 +731,7 @@ if test "x$have_daq_address_space_id" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq flow ID])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.flow_id = 0;
+-]])],
+-[have_daq_flow_id="yes"],
+-[have_daq_flow_id="no"])
++have_daq_flow_id="yes"
+ AC_MSG_RESULT($have_daq_flow_id)
+ if test "x$have_daq_flow_id" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
+@@ -790,19 +739,7 @@ if test "x$have_daq_flow_id" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq extended flow modifiers])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_ModFlow_t mod;
+- mod.type = 0;
+- mod.length = 0;
+- mod.value = NULL;
+-]])],
+-[have_daq_ext_modflow="yes"],
+-[have_daq_ext_modflow="no"])
++have_daq_ext_modflow="no"
+ AC_MSG_RESULT($have_daq_ext_modflow)
+ if test "x$have_daq_ext_modflow" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_EXT_MODFLOW"
+@@ -811,19 +748,7 @@ if test "x$have_daq_ext_modflow" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq query flow])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_QueryFlow_t mod;
+- mod.type = 0;
+- mod.length = 0;
+- mod.value = NULL;
+-]])],
+-[have_daq_queryflow="yes"],
+-[have_daq_queryflow="no"])
++have_daq_queryflow="no"
+ AC_MSG_RESULT($have_daq_queryflow)
+ if test "x$have_daq_queryflow" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_QUERYFLOW"
+@@ -832,16 +757,7 @@ if test "x$have_daq_queryflow" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq data channel flags])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_Data_Channel_Params_t params;
+-]])],
+-[have_daq_data_channel_flags="yes"],
+-[have_daq_data_channel_flags="no"])
++have_daq_data_channel_flags="no"
+ AC_MSG_RESULT($have_daq_data_channel_flags)
+ if test "x$have_daq_data_channel_flags" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_PARAMS"
+@@ -850,17 +766,7 @@ if test "x$have_daq_data_channel_flags" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for separate IP versions on pinhole endpoints])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_DP_key_t dpKey;
+- dpKey.src_af = 0;
+-]])],
+-[have_daq_data_channel_separate_ip_versions="yes"],
+-[have_daq_data_channel_separate_ip_versions="no"])
++have_daq_data_channel_separate_ip_versions="no"
+ AC_MSG_RESULT($have_daq_data_channel_separate_ip_versions)
+ if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_SEPARATE_IP_VERSIONS"
+@@ -869,17 +775,7 @@ if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_Verdict verdict;
+- verdict = DAQ_VERDICT_RETRY;
+-]])],
+-[have_daq_verdict_retry="yes"],
+-[have_daq_verdict_retry="no"])
++have_daq_verdict_retry="yes"
+ AC_MSG_RESULT($have_daq_verdict_retry)
+ if test "x$have_daq_verdict_retry" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1],
+@@ -887,17 +783,7 @@ if test "x$have_daq_verdict_retry" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq packet trace])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.flags = DAQ_PKT_FLAG_TRACE_ENABLED;
+-]])],
+-[have_daq_packet_trace="yes"],
+-[have_daq_packet_trace="no"])
++have_daq_packet_trace="yes"
+ AC_MSG_RESULT($have_daq_packet_trace)
+ if test "x$have_daq_packet_trace" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_PKT_TRACE],[1],
+@@ -907,17 +793,7 @@ else
+ fi
+
+ AC_MSG_CHECKING([for daq verdict reason])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_ModFlow_t fl;
+- fl.type = DAQ_MODFLOW_TYPE_VER_REASON;
+-]])],
+-[have_daq_verdict_reason="yes"],
+-[have_daq_verdict_reason="no"])
++have_daq_verdict_reason="yes"
+ AC_MSG_RESULT($have_daq_verdict_reason)
+ if test "x$have_daq_verdict_reason" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_VERDICT_REASON],[1],
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb
new file mode 100644
index 0000000..a99138d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb
@@ -0,0 +1,103 @@
+DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
+HOMEPAGE = "http://www.snort.org/"
+SECTION = "net"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
+
+DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-native"
+
+SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
+ file://snort.init \
+ file://0001-libpcap-search-sysroot-for-headers.patch \
+ file://fix-host-contamination-when-enable-static-daq.patch \
+ file://disable-run-test-program-while-cross-compiling.patch \
+"
+
+SRC_URI[md5sum] = "378e3938b2b5c8e358f942d0ffce18cc"
+SRC_URI[sha256sum] = "9f6b3aeac5a109f55504bd370564ac431cb1773507929dc461626898f33f46cd"
+
+UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
+UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit autotools gettext update-rc.d pkgconfig
+
+INITSCRIPT_NAME = "snort"
+INITSCRIPT_PARAMS = "defaults"
+
+EXTRA_OECONF = " \
+ --enable-gre \
+ --enable-linux-smp-stats \
+ --enable-reload \
+ --enable-reload-error-restart \
+ --enable-targetbased \
+ --enable-static-daq \
+ --with-dnet-includes=${STAGING_INCDIR} \
+ --with-dnet-libraries=${STAGING_LIBDIR} \
+ --with-libpcre-includes=${STAGING_INCDIR} \
+ --with-libpcre-libraries=${STAGING_LIBDIR} \
+ --with-daq-includes=${STAGING_INCDIR} \
+ --with-daq-libraries=${STAGING_LIBDIR} \
+"
+
+# if you want to disable it, you need to patch configure.in first
+# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
+# is called even with --without-openssl-includes
+PACKAGECONFIG ?= "openssl lzma"
+PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
+PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"
+
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LDFLAGS += " -ltirpc"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/snort/rules
+ install -d ${D}${sysconfdir}/snort/preproc_rules
+ install -d ${D}${sysconfdir}/init.d
+ for i in map config conf dtd; do
+ cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
+ done
+
+ # fix the hardcoded path and lib name
+ # comment out the rules that are not provided
+ sed -i -e 's#/usr/local/lib#${libdir}#' \
+ -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
+ -e 's#\(libsf_engine.so\)#\1.0#' \
+ -e 's/^\(include $RULE_PATH\)/#\1/' \
+ -e 's/^\(dynamicdetection\)/#\1/' \
+ -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
+ ${D}${sysconfdir}/snort/snort.conf
+
+ cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
+ install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
+ mkdir -p ${D}${localstatedir}/log/snort
+ install -d ${D}/var/log/snort
+
+ sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc
+}
+
+FILES_${PN} += " \
+ ${libdir}/snort_dynamicengine/*.so.* \
+ ${libdir}/snort_dynamicpreprocessor/*.so.* \
+ ${libdir}/snort_dynamicrules/*.so.* \
+"
+FILES_${PN}-dbg += " \
+ ${libdir}/snort_dynamicengine/.debug \
+ ${libdir}/snort_dynamicpreprocessor/.debug \
+ ${libdir}/snort_dynamicrules/.debug \
+"
+FILES_${PN}-staticdev += " \
+ ${libdir}/snort_dynamicengine/*.a \
+ ${libdir}/snort_dynamicpreprocessor/*.a \
+ ${libdir}/snort_dynamicrules/*.a \
+ ${libdir}/snort/dynamic_preproc/*.a \
+ ${libdir}/snort/dynamic_output/*.a \
+"
+FILES_${PN}-dev += " \
+ ${libdir}/snort_dynamicengine/*.la \
+ ${libdir}/snort_dynamicpreprocessor/*.la \
+ ${libdir}/snort_dynamicrules/*.la \
+ ${libdir}/snort_dynamicengine/*.so \
+ ${libdir}/snort_dynamicpreprocessor/*.so \
+ ${libdir}/snort_dynamicrules/*.so \
+ ${prefix}/src/snort_dynamicsrc \
+"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb
deleted file mode 100644
index 2034b85..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb
+++ /dev/null
@@ -1,105 +0,0 @@
-DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
-HOMEPAGE = "http://www.snort.org/"
-SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
-
-DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native"
-DEPENDS_append_libc-musl = " libtirpc"
-
-SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \
- file://snort.init \
- file://disable-inaddr-none.patch \
- file://disable-dap-address-space-id.patch \
- file://disable-daq-flow-id.patch \
- file://disable-daq-verdict-retry.patch \
- file://0001-libpcap-search-sysroot-for-headers.patch \
- file://0001-fix-do_package-failed-since-snort-2.9.7.0.patch \
- file://fix-host-contamination-when-enable-static-daq.patch \
-"
-
-SRC_URI[tarball.md5sum] = "fd271788c0f8876be87a858a9142f202"
-SRC_URI[tarball.sha256sum] = "ad03f11b5301b16642199a86aa90388eaa53f5003f83b0c5595745a490047be1"
-
-inherit autotools gettext update-rc.d pkgconfig
-
-INITSCRIPT_NAME = "snort"
-INITSCRIPT_PARAMS = "defaults"
-
-EXTRA_OECONF = " \
- --enable-gre \
- --enable-linux-smp-stats \
- --enable-reload \
- --enable-reload-error-restart \
- --enable-targetbased \
- --enable-static-daq \
- --with-dnet-includes=${STAGING_INCDIR} \
- --with-dnet-libraries=${STAGING_LIBDIR} \
- --with-libpcre-includes=${STAGING_INCDIR} \
- --with-libpcre-libraries=${STAGING_LIBDIR} \
- --with-daq-includes=${STAGING_INCDIR} \
- --with-daq-libraries=${STAGING_LIBDIR} \
-"
-
-# if you want to disable it, you need to patch configure.in first
-# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
-# is called even with --without-openssl-includes
-PACKAGECONFIG ?= "openssl lzma"
-PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
-PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"
-
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS_append_libc-musl = " -ltirpc"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/snort/rules
- install -d ${D}${sysconfdir}/snort/preproc_rules
- install -d ${D}${sysconfdir}/init.d
- for i in map config conf dtd; do
- cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
- done
-
- # fix the hardcoded path and lib name
- # comment out the rules that are not provided
- sed -i -e 's#/usr/local/lib#${libdir}#' \
- -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
- -e 's#\(libsf_engine.so\)#\1.0#' \
- -e 's/^\(include $RULE_PATH\)/#\1/' \
- -e 's/^\(dynamicdetection\)/#\1/' \
- -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
- ${D}${sysconfdir}/snort/snort.conf
-
- cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
- install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
- mkdir -p ${D}${localstatedir}/log/snort
- install -d ${D}/var/log/snort
-
- sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc
-}
-
-FILES_${PN} += " \
- ${libdir}/snort_dynamicengine/*.so.* \
- ${libdir}/snort_dynamicpreprocessor/*.so.* \
- ${libdir}/snort_dynamicrules/*.so.* \
-"
-FILES_${PN}-dbg += " \
- ${libdir}/snort_dynamicengine/.debug \
- ${libdir}/snort_dynamicpreprocessor/.debug \
- ${libdir}/snort_dynamicrules/.debug \
-"
-FILES_${PN}-staticdev += " \
- ${libdir}/snort_dynamicengine/*.a \
- ${libdir}/snort_dynamicpreprocessor/*.a \
- ${libdir}/snort_dynamicrules/*.a \
- ${libdir}/snort/dynamic_preproc/*.a \
- ${libdir}/snort/dynamic_output/*.a \
-"
-FILES_${PN}-dev += " \
- ${libdir}/snort_dynamicengine/*.la \
- ${libdir}/snort_dynamicpreprocessor/*.la \
- ${libdir}/snort_dynamicrules/*.la \
- ${libdir}/snort_dynamicengine/*.so \
- ${libdir}/snort_dynamicpreprocessor/*.so \
- ${libdir}/snort_dynamicrules/*.so \
- ${prefix}/src/snort_dynamicsrc \
-"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-Add-format-string-to-fprintf-call.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-Add-format-string-to-fprintf-call.patch
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch
new file mode 100644
index 0000000..153bced
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch
@@ -0,0 +1,38 @@
+From f567740cf64978ac9db014c786b6d0267b244f33 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 4 Mar 2018 22:30:30 -0800
+Subject: [PATCH 1/2] replace SIGCLD with SIGCHLD and include sys/types.h
+
+Fixes
+main.c:129:10: error: 'SIGCLD' undeclared (first use in this function); did you mean 'SIGCHLD'?
+ signal(SIGCLD, sig_child);
+ ^~~~~~
+ SIGCHLD
+
+main.c:125:2: warning: implicit declaration of function 'umask' [-Wimplicit-function-declaration]
+ umask(0);
+ ^~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/main.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+Index: git/src/main.c
+===================================================================
+--- git.orig/src/main.c
++++ git/src/main.c
+@@ -133,9 +133,9 @@ static void daemon_start(int ignsigcld)
+
+ if (ignsigcld) {
+ #ifdef SIGTSTP
+- signal(SIGCLD, sig_child);
++ signal(SIGCHLD, sig_child);
+ #else
+- signal(SIGCLD, SIG_IGN);
++ signal(SIGCHLD, SIG_IGN);
+ #endif
+ }
+ }
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-support-openssl-1.1.x.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-support-openssl-1.1.x.patch
new file mode 100644
index 0000000..d8355e2
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-support-openssl-1.1.x.patch
@@ -0,0 +1,88 @@
+From 62784e8b6df8ff3a907c1f816154808bea9d7064 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 25 Sep 2018 14:38:14 +0800
+Subject: [PATCH] support openssl 1.1.x
+
+Long time no maintain from upstream since 2013
+(git://git.umip.org/umip/umip.git), backport a
+fix from openSUSE
+
+Upstream-Status: Backport [openSUSE]
+http://ftp.gwdg.de/pub/opensuse/source/distribution/leap/15.0/repo/oss/src/mipv6d-2.0.2.umip.0.4-lp150.1.2.src.rpm
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/keygen.c | 12 ++++++++++++
+ src/mh.c | 17 ++++++++++++++++-
+ 2 files changed, 28 insertions(+), 1 deletion(-)
+
+diff --git a/src/keygen.c b/src/keygen.c
+index e434a38..b902644 100644
+--- a/src/keygen.c
++++ b/src/keygen.c
+@@ -172,6 +172,7 @@ static void build_kgen_token(struct in6_addr *addr, uint8_t *nonce,
+ uint8_t tmp[20];
+ #ifdef HAVE_LIBCRYPTO
+ unsigned int len = 20;
++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL
+ HMAC_CTX ctx;
+
+ HMAC_CTX_init(&ctx);
+@@ -182,6 +183,17 @@ static void build_kgen_token(struct in6_addr *addr, uint8_t *nonce,
+ HMAC_Final(&ctx, tmp, &len);
+ HMAC_CTX_cleanup(&ctx);
+ #else
++ HMAC_CTX *ctx;
++ ctx = HMAC_CTX_new();
++ HMAC_Init_ex(ctx, key_cn, sizeof(key_cn), EVP_sha1(), NULL);
++ HMAC_Update(ctx, (unsigned char *)addr, sizeof(*addr));
++ HMAC_Update(ctx, nonce, NONCE_LENGTH);
++ HMAC_Update(ctx, &id, sizeof(id));
++ HMAC_Final(ctx, tmp, &len);
++ HMAC_CTX_free(ctx);
++#endif // End of defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL
++
++#else
+ HMAC_SHA1_CTX ctx;
+
+ HMAC_SHA1_init(&ctx, key_cn, sizeof(key_cn));
+diff --git a/src/mh.c b/src/mh.c
+index cba9a33..212eb5a 100644
+--- a/src/mh.c
++++ b/src/mh.c
+@@ -518,9 +518,10 @@ static int calculate_auth_data(const struct iovec *iov, int iovlen,
+
+ #ifdef HAVE_LIBCRYPTO
+ unsigned int len = HMAC_SHA1_HASH_LEN;
+- HMAC_CTX ctx;
+ const EVP_MD *evp_md = EVP_sha1();
+
++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL
++ HMAC_CTX ctx;
+ HMAC_CTX_init(&ctx);
+ HMAC_Init_ex(&ctx, key, HMAC_SHA1_KEY_SIZE, evp_md, NULL);
+
+@@ -532,6 +533,20 @@ static int calculate_auth_data(const struct iovec *iov, int iovlen,
+ HMAC_Final(&ctx, buf, &len);
+ HMAC_CTX_cleanup(&ctx);
+ #else
++ HMAC_CTX *ctx;
++ ctx = HMAC_CTX_new();
++ HMAC_Init_ex(ctx, key, HMAC_SHA1_KEY_SIZE, evp_md, NULL);
++
++ HMAC_Update(ctx, (uint8_t *)coa, sizeof(*coa));
++ HMAC_Update(ctx, (uint8_t *)cn, sizeof(*coa));
++ for (i = 0; i < iovlen; i++) {
++ HMAC_Update(ctx, (uint8_t *)iov[i].iov_base, iov[i].iov_len);
++ }
++ HMAC_Final(ctx, buf, &len);
++ HMAC_CTX_free(ctx);
++#endif
++
++#else
+ HMAC_SHA1_CTX ctx;
+
+ HMAC_SHA1_init(&ctx, key, HMAC_SHA1_KEY_SIZE);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/add-dependency-to-support-parallel-compilation.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/umip/umip/add-dependency-to-support-parallel-compilation.patch
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d
rename to meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d.service b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d.service
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d.service
rename to meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d.service
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/umip/umip_1.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip_1.0.bb
new file mode 100644
index 0000000..e2abc02
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip_1.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Mobile IPv6 and NEMO for Linux"
+DESCRIPTION = "UMIP is an open source implementation of Mobile IPv6 and NEMO \
+Basic Support for Linux. It is released under the GPLv2 license. It supports \
+the following IETF RFC: RFC6275 (Mobile IPv6), RFC3963 (NEMO), RFC3776 and \
+RFC4877 (IPsec and IKEv2)."
+HOMEPAGE = "http://umip.org/"
+SECTION = "System Environment/Base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=073dc31ccb2ebed70db54f1e8aeb4c33"
+DEPENDS = "openssl ipsec-tools radvd indent-native bison-native"
+
+SRC_URI = "git://git.umip.org/umip/umip.git \
+ file://add-dependency-to-support-parallel-compilation.patch \
+ file://mip6d \
+ file://mip6d.service \
+ file://0001-Add-format-string-to-fprintf-call.patch \
+ file://0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch \
+ file://0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch \
+ file://0001-support-openssl-1.1.x.patch \
+ "
+SRCREV = "cbd441c5db719db554ff2b4fcb02fef88ae2f791"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--enable-vt"
+
+inherit autotools-brokensep systemd update-rc.d
+
+INITSCRIPT_NAME = "mip6d"
+INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE_${PN} = "mip6d.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install_append() {
+ install -D -m 0755 ${WORKDIR}/mip6d ${D}${sysconfdir}/init.d/mip6d
+ install -D -m 0644 ${WORKDIR}/mip6d.service ${D}${systemd_system_unitdir}/mip6d.service
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${systemd_system_unitdir}/mip6d.service
+}
+
+RRECOMMENDS_${PN} = "kernel-module-mip6 kernel-module-ipv6"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb b/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
index 7eea5d1..4c3d95b 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
@@ -4,7 +4,7 @@
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://vconfig.c;beginline=1;endline=19;md5=094ca47de36c20c598b15b32c270ce0a"
-SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV}.orig.tar.gz \
+SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/vlan/1.9-3ubuntu10.6/${BPN}_${PV}.orig.tar.gz \
file://no-HOME-includes.patch \
file://0001-Add-printf-format-and-silence-format-security-warnin.patch \
"
@@ -12,6 +12,9 @@
SRC_URI[md5sum] = "5f0c6060b33956fb16e11a15467dd394"
SRC_URI[sha256sum] = "3b8f0a1bf0d3642764e5f646e1f3bbc8b1eeec474a77392d9aeb4868842b4cca"
+UPSTREAM_CHECK_URI = "http://vlan.sourcearchive.com/"
+UPSTREAM_CHECK_REGEX = "/(?P<pver>\d+(\.\d+)+)/"
+
S = "${WORKDIR}/${BPN}"
inherit update-alternatives
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb b/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb
deleted file mode 100644
index 64e9401..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Wireless Central Regulatory Domain Database"
-HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA"
-SECTION = "net"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
-
-SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "d282cce92b6e692e8673e2bd97adf33b"
-SRC_URI[sha256sum] = "cfedf1c3521b3c8f32602f25ed796e96e687c3441a00e7c050fedf7fd4f1b8b7"
-
-inherit bin_package
-
-do_install() {
- install -d -m0755 ${D}${libdir}/crda
- install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys
- install -m 0644 regulatory.bin ${D}${libdir}/crda/regulatory.bin
- install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem
-}
-
-RSUGGESTS_${PN} = "crda"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb b/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb
new file mode 100644
index 0000000..2b990db
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Wireless Central Regulatory Domain Database"
+HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA"
+SECTION = "net"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
+
+SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
+SRC_URI[md5sum] = "0cbbdc21186c76cf58aba01b03f3dc5b"
+SRC_URI[sha256sum] = "e1dfbc3b97771373077f430c3c05082fae883145b37db5b2cfd12c56676fbe7b"
+
+inherit bin_package allarch
+
+do_install() {
+ install -d -m0755 ${D}${nonarch_libdir}/crda
+ install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys
+ install -m 0644 regulatory.bin ${D}${nonarch_libdir}/crda/regulatory.bin
+ install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem
+
+ install -m 0644 -D regulatory.db ${D}${nonarch_base_libdir}/firmware/regulatory.db
+ install -m 0644 regulatory.db.p7s ${D}${nonarch_base_libdir}/firmware/regulatory.db.p7s
+}
+
+# Install static regulatory DB in /lib/firmware for kernel to load.
+# This requires Linux kernel >= v4.15.
+# For kernel <= v4.14, inherit the kernel_wireless_regdb.bbclass in kernel's recipe.
+PACKAGES =+ "${PN}-static"
+RCONFLICTS_${PN} = "${PN}-static"
+
+FILES_${PN}-static = " \
+ ${nonarch_base_libdir}/firmware/regulatory.db \
+ ${nonarch_base_libdir}/firmware/regulatory.db.p7s \
+"
+
+# Native users might want to use the source of regulatory DB.
+# This is for example used by Linux kernel <= v4.14 and kernel_wireless_regdb.bbclass.
+do_install_append_class-native() {
+ install -m 0644 -D db.txt ${D}${libdir}/crda/db.txt
+}
+
+RSUGGESTS_${PN} = "crda"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb
deleted file mode 100644
index 9290651..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "wolfSSL Lightweight, Embedded SSL Library"
-DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written in C and \
- optimized for embedded and RTOS environments. It can be \
- Up to 20 times smaller than OpenSSL while still supporting \
- a full TLS 1.2 client and server."
-HOMEPAGE = "http://www.wolfssl.com/yaSSL/Products-wolfssl.html"
-BUGTRACKER = "http://github.com/wolfssl/wolfssl/issues"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-PROVIDES += "cyassl"
-RPROVIDES_${PN} = "cyassl"
-
-S = "${WORKDIR}/git"
-SRCREV = "d195009dcb62d8712195661bd1d50f8dd6831044"
-SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https; \
- file://0001-fix-no-rule-to-make-cyassl-options.h.patch \
- "
-
-inherit autotools
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb
new file mode 100644
index 0000000..dc9094d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb
@@ -0,0 +1,24 @@
+SUMMARY = "wolfSSL Lightweight, Embedded SSL Library"
+DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written in C and \
+ optimized for embedded and RTOS environments. It can be \
+ Up to 20 times smaller than OpenSSL while still supporting \
+ a full TLS 1.2 client and server."
+HOMEPAGE = "http://www.wolfssl.com/yaSSL/Products-wolfssl.html"
+BUGTRACKER = "http://github.com/wolfssl/wolfssl/issues"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PROVIDES += "cyassl"
+RPROVIDES_${PN} = "cyassl"
+
+S = "${WORKDIR}/git"
+SRCREV = "1196a3b64d9fabffc8273b87f6f69ac0e75d2eb7"
+SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https; \
+ file://0001-fix-no-rule-to-make-cyassl-options.h.patch \
+ "
+
+inherit autotools
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
new file mode 100644
index 0000000..f3f25f4
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
@@ -0,0 +1,28 @@
+From 6d24365f0828185fd1bb4d199209ca07eb95c41d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 24 Aug 2018 06:24:36 +0000
+Subject: [PATCH] Do not hardcode path for pkg.m4
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index 50aed15..f81767c 100644
+--- a/configure.in
++++ b/configure.in
+@@ -12,7 +12,7 @@ define([AC_CACHE_SAVE], )dnl
+ AC_INIT(.autofs-5.1.4)
+
+ # for pkg-config macros
+-m4_include([/usr/share/aclocal/pkg.m4])
++m4_include([pkg.m4])
+
+ #
+ # autofs installs by default in /usr
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch
deleted file mode 100644
index 18ce193..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From b31decac4acb194b020c621d2d11019f636a45e0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 24 Apr 2017 20:41:25 -0700
-Subject: [PATCH] autofs: Upgrade to 5.1.2 release
-
-Make configure compatible with -Wl,--as-needed following
-https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Failure_in_..2Fconfigure
-
-2016-07-05 Martin von Gagern
-
----
- aclocal.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 0e4a624..2e620cd 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -415,9 +415,9 @@ AC_DEFUN([AF_CHECK_LIBTIRPC],
- [
- # save current flags
- af_check_libtirpc_save_cflags="$CFLAGS"
--af_check_libtirpc_save_ldflags="$LDFLAGS"
-+af_check_libtirpc_save_libs="$LIBS"
- CFLAGS="$CFLAGS -I=/usr/include/tirpc"
--LDFLAGS="$LDFLAGS -ltirpc"
-+LIBS="$LIBS -ltirpc"
-
- AC_TRY_LINK(
- [ #include <rpc/rpc.h> ],
-@@ -440,7 +440,7 @@ AC_CHECK_FUNCS([getrpcbyname getservbyname])
-
- # restore flags
- CFLAGS="$af_check_libtirpc_save_cflags"
--LDFLAGS="$af_check_libtirpc_save_ldflags"
-+LIBS="$af_check_libtirpc_save_libs"
- ])
-
- AC_DEFUN([AF_WITH_LIBTIRPC],
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch
deleted file mode 100644
index 0a2d502..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From cb6a4f61adb027f2366318f2c08c8264ebf39218 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 5 Jan 2013 19:53:10 -0800
-
----
- Makefile.rules | 2 +-
- aclocal.m4 | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.rules b/Makefile.rules
-index 6fa3e02..709dd04 100644
---- a/Makefile.rules
-+++ b/Makefile.rules
-@@ -46,7 +46,7 @@ CFLAGS += -D_REENTRANT -D_FILE_OFFSET_BITS=64
- LIBS += -lpthread
-
- ifdef TIRPCLIB
--CFLAGS += -I/usr/include/tirpc
-+CFLAGS += -I=/usr/include/tirpc
- LIBS += $(TIRPCLIB)
- endif
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 2a9a802..0e4a624 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -416,7 +416,7 @@ AC_DEFUN([AF_CHECK_LIBTIRPC],
- # save current flags
- af_check_libtirpc_save_cflags="$CFLAGS"
- af_check_libtirpc_save_ldflags="$LDFLAGS"
--CFLAGS="$CFLAGS -I/usr/include/tirpc"
-+CFLAGS="$CFLAGS -I=/usr/include/tirpc"
- LDFLAGS="$LDFLAGS -ltirpc"
-
- AC_TRY_LINK(
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb
deleted file mode 100644
index 68c64fd..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-SUMMARY = "Kernel based automounter for linux"
-SECTION = "utils"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2"
-
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-
-inherit autotools-brokensep systemd update-rc.d pkgconfig
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
- file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \
- file://no-bash.patch \
- file://cross.patch \
- file://libtirpc.patch \
- file://autofs-5.0.7-do-not-check-for-modprobe.patch \
- file://fix_disable_ldap.patch \
- file://autofs-5.0.7-fix-lib-deps.patch \
- file://add-the-needed-stdarg.h.patch \
- file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \
- file://force-STRIP-to-emtpy.patch \
- file://remove-bashism.patch \
- file://fix-the-YACC-rule-to-fix-a-building-failure.patch \
- file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \
- file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \
- file://autofs-5.1.2-libtirpc-as-need.patch \
- file://pkgconfig-libnsl.patch \
- file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \
- "
-SRC_URI[md5sum] = "28cf88f99eff553a8500659ba5d45a76"
-SRC_URI[sha256sum] = "0d57e4138c2ec8058ca92164d035546f68ce4af93acb893369993d67c7056a10"
-
-INITSCRIPT_NAME = "autofs"
-INITSCRIPT_PARAMS = "defaults"
-
-# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS
-#CFLAGS += "${LDFLAGS}"
-
-PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-EXTRA_OEMAKE = "DONTSTRIP=1"
-EXTRA_OECONF += "--disable-mount-locking \
- --enable-ignore-busy --with-openldap=no \
- --with-sasl=no --with-libtirpc \
- --with-path=${STAGING_BINDIR_NATIVE} \
-"
-CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \
- ac_cv_path_RPCGEN=rpcgen \
-"
-
-do_configure_prepend () {
- sed -e "s:filagdir:flagdir:" -i ${S}/configure.in
- if [ ! -e ${S}/acinclude.m4 ]; then
- cp ${S}/aclocal.m4 ${S}/acinclude.m4
- fi
-}
-
-do_install_append () {
- if [ -d ${D}/run ]; then
- rmdir ${D}/run
- fi
- if [ -d ${D}${localstatedir}/run ]; then
- rmdir ${D}${localstatedir}/run
- fi
-}
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-
-INSANE_SKIP_${PN} = "dev-so"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "autofs.service"
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb
new file mode 100644
index 0000000..8a1bcad
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb
@@ -0,0 +1,80 @@
+SUMMARY = "Kernel based automounter for linux"
+SECTION = "utils"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2"
+
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+
+inherit autotools-brokensep systemd update-rc.d pkgconfig
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
+ file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \
+ file://no-bash.patch \
+ file://cross.patch \
+ file://autofs-5.0.7-do-not-check-for-modprobe.patch \
+ file://fix_disable_ldap.patch \
+ file://autofs-5.0.7-fix-lib-deps.patch \
+ file://add-the-needed-stdarg.h.patch \
+ file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \
+ file://force-STRIP-to-emtpy.patch \
+ file://remove-bashism.patch \
+ file://fix-the-YACC-rule-to-fix-a-building-failure.patch \
+ file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \
+ file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \
+ file://pkgconfig-libnsl.patch \
+ file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \
+ file://0001-Do-not-hardcode-path-for-pkg.m4.patch \
+ "
+SRC_URI[md5sum] = "17bc9d371cf39d99f400ebadfc2289bb"
+SRC_URI[sha256sum] = "8d1c9964c8286ccb08262ad47c60bb6343492902def5399fd36d79a0ccb0e718"
+
+UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/"
+
+INITSCRIPT_NAME = "autofs"
+INITSCRIPT_PARAMS = "defaults"
+
+# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS
+#CFLAGS += "${LDFLAGS}"
+
+PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+EXTRA_OEMAKE = "DONTSTRIP=1"
+EXTRA_OECONF += "--disable-mount-locking \
+ --enable-ignore-busy --with-openldap=no \
+ --with-sasl=no --with-libtirpc \
+ --with-path=${STAGING_BINDIR_NATIVE} \
+ --with-fifodir=${localstatedir}/run \
+ --with-flagdir=${localstatedir}/run \
+"
+CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \
+ ac_cv_path_RPCGEN=rpcgen \
+"
+
+do_configure_prepend () {
+ if [ ! -e ${S}/acinclude.m4 ]; then
+ cp ${S}/aclocal.m4 ${S}/acinclude.m4
+ fi
+ cp ${STAGING_DATADIR_NATIVE}/aclocal/pkg.m4 .
+}
+
+do_install_append () {
+ if [ -d ${D}/run ]; then
+ rmdir ${D}/run
+ fi
+ if [ -d ${D}${localstatedir}/run ]; then
+ rmdir ${D}${localstatedir}/run
+ fi
+}
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+
+INSANE_SKIP_${PN} = "dev-so"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "autofs.service"
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch
new file mode 100644
index 0000000..c89822c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch
@@ -0,0 +1,41 @@
+From 6515f3e7656d97d40a6a1cf4eb3ada193a698309 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 12 Sep 2018 23:18:12 +0800
+Subject: [PATCH] Allow saslauthd to be built outside of source tree while
+ configuring with `--enable-ldapdb'
+
+[snip]
+| powerpc-wrs-linux-gcc [snip] -I../common
+|../../git/saslauthd/lak.c:58:10: fatal error: crypto-compat.h:
+No such file or directory
+[snip]
+
+The crypto-compat.h locates in git/common/, it should be |
+`-I../../git/common'
+
+Remove useless `-I$(top_srcdir)/../include' which was incorrectly
+added by commit `faae590 cleanup misc INCLUDES for different build paths'
+
+Upstream-Status: Submitted [https://github.com/cyrusimap/cyrus-sasl]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ saslauthd/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/saslauthd/Makefile.am b/saslauthd/Makefile.am
+index d7244be..864b29b 100644
+--- a/saslauthd/Makefile.am
++++ b/saslauthd/Makefile.am
+@@ -34,7 +34,7 @@ saslcache_SOURCES = saslcache.c
+
+ EXTRA_DIST = saslauthd.8 saslauthd.mdoc include \
+ getnameinfo.c getaddrinfo.c LDAP_SASLAUTHD
+-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/../include -I$(top_builddir)/common
++AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_builddir)/common -I$(top_srcdir)/common
+ DEFS = @DEFS@ -DSASLAUTHD_CONF_FILE_DEFAULT=\"@sysconfdir@/saslauthd.conf\" -I. -I$(srcdir) -I..
+
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-makeinit.sh-fix-parallel-build-issue.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-makeinit.sh-fix-parallel-build-issue.patch
new file mode 100644
index 0000000..bf232ac
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-makeinit.sh-fix-parallel-build-issue.patch
@@ -0,0 +1,95 @@
+From bb693db0e1d1d693e8ca31fcbc4f46d1674eeca1 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 13 Sep 2018 14:20:57 +0800
+Subject: [PATCH] makeinit.sh: fix parallel build issue
+
+While building plugins, each <plugin>.c requires a <plugin>_init.c,
+and the <plugin>_init.c is dynamically generated by makeinit.sh.
+
+But the makeinit.sh generates all *_init.c (13 mechanism plugins,
+3 auxprop plugins) at one time, if there are multiple plugins,
+there will be multiple makeinit.sh invoking.
+
+It caused a parallel issue, the *_init.c files will be generated
+repeatedly.
+
+It occasionally generate dapdb_init.c incorrectly
+[snip plugins/ldapdb_init.c]
+SASL_CANONUSER_PLUG_INIT( ldapdb )
+SASL_CANONUSER_PLUG_INIT( ldapdb )
+SASL_CANONUSER_PLUG_INIT( ldapdb )
+[snip plugins/ldapdb_init.c]
+
+Let makeinit.sh generate the expected <plugin>_init.c which
+is exactly required by <plugin>.c.
+
+Upstream-Status: Submitted [https://github.com/cyrusimap/cyrus-sasl/pull/532]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ plugins/Makefile.am | 2 +-
+ plugins/makeinit.sh | 19 ++++++++++++++-----
+ 2 files changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/plugins/Makefile.am b/plugins/Makefile.am
+index 929f6a4..81e7f0b 100644
+--- a/plugins/Makefile.am
++++ b/plugins/Makefile.am
+@@ -149,4 +149,4 @@ passdss_init.c sasldb_init.c sql_init.c ldapdb_init.c
+ CLEANFILES=$(init_src)
+
+ ${init_src}: $(srcdir)/makeinit.sh
+- $(SHELL) $(srcdir)/makeinit.sh
++ $(SHELL) $(srcdir)/makeinit.sh $@
+diff --git a/plugins/makeinit.sh b/plugins/makeinit.sh
+index cc65f7d..3131877 100644
+--- a/plugins/makeinit.sh
++++ b/plugins/makeinit.sh
+@@ -1,7 +1,9 @@
++plugin_init="$1"
+ # mechanism plugins
+ for mech in anonymous crammd5 digestmd5 scram gssapiv2 kerberos4 login ntlm otp passdss plain srp gs2; do
++ if [ ${plugin_init} = "${mech}_init.c" ];then
+
+-echo "
++ echo "
+ #include <config.h>
+
+ #include <string.h>
+@@ -43,13 +45,16 @@ BOOL APIENTRY DllMain( HANDLE hModule,
+
+ SASL_CLIENT_PLUG_INIT( $mech )
+ SASL_SERVER_PLUG_INIT( $mech )
+-" > ${mech}_init.c
++" > ${mech}_init.c
++ echo "generating $1"
++ fi # End of `if [ ${plugin_init} = "${mech}_init.c" ];then'
+ done
+
+ # auxprop plugins
+ for auxprop in sasldb sql ldapdb; do
++ if [ ${plugin_init} = "${auxprop}_init.c" ];then
+
+-echo "
++ echo "
+ #include <config.h>
+
+ #include <string.h>
+@@ -86,8 +91,12 @@ BOOL APIENTRY DllMain( HANDLE hModule,
+ #endif
+
+ SASL_AUXPROP_PLUG_INIT( $auxprop )
+-" > ${auxprop}_init.c
++" > ${auxprop}_init.c
++ echo "generating $1"
++ fi # End of `if [ ${plugin_init} = "${auxprop}_init.c" ];then'
+ done
+
+ # ldapdb is also a canon_user plugin
+-echo "SASL_CANONUSER_PLUG_INIT( ldapdb )" >> ldapdb_init.c
++if [ ${plugin_init} = "ldapdb_init.c" ];then
++ echo "SASL_CANONUSER_PLUG_INIT( ldapdb )" >> ldapdb_init.c
++fi
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch
new file mode 100644
index 0000000..68d09c3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch
@@ -0,0 +1,28 @@
+From 98082f81da1b49876081ff1ab340e952755f985a Mon Sep 17 00:00:00 2001
+From: OBATA Akio <obache@users.noreply.github.com>
+Date: Fri, 11 May 2018 18:36:26 +0900
+Subject: [PATCH] configure.ac: fix condition for suppliment snprintf
+ implementation
+
+$sasl_cv_snprintf means requremnt of suppliment snprintf
+implementation, not existence of system snprintf implementation,
+
+Upstream-Status: Submitted [https://github.com/cyrusimap/cyrus-sasl/pull/512]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ac59f14..9804e98 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1264,7 +1264,7 @@ SNPRINTFOBJS=""
+ LTSNPRINTFOBJS=""
+ AC_CHECK_FUNC(snprintf, [AC_DEFINE(HAVE_SNPRINTF,[],[Does the system have snprintf()?])], [sasl_cv_snprintf=yes])
+ AC_CHECK_FUNC(vsnprintf, [AC_DEFINE(HAVE_VSNPRINTF,[],[Does the system have vsnprintf()?])], [sasl_cv_snprintf=yes])
+-if test $sasl_cv_snprintf = no; then
++if test $sasl_cv_snprintf = yes; then
+ AC_LIBOBJ(snprintf)
+ SNPRINTFOBJS="snprintf.o"
+ LTSNPRINTFOBJS="snprintf.lo"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch
index 3fa8431..f172362 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch
@@ -1,25 +1,26 @@
-Fix hardcoded libdir.
+From 188ad4497947259811ad32faeee95c20f9a44046 Mon Sep 17 00:00:00 2001
+From: "Roy.Li" <rongqing.li@windriver.com>
+Date: Fri, 19 Jul 2013 14:29:31 +0800
+Subject: [PATCH] Fix hardcoded libdir.
-Upstream-Status: Pending
+Upstream-Status: Pending
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
+
---
- plugins/Makefile.am | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ plugins/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
-index b00915f..25262a1 100644
+index 2b02a52..929f6a4 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
-@@ -62,7 +62,7 @@ plugindir = @plugindir@
+@@ -65,7 +65,7 @@ LIB_MYSQL = @LIB_MYSQL@
- common_sources = plugin_common.c plugin_common.h
+ plugindir = @plugindir@
-sasldir = $(prefix)/lib/sasl2
+sasldir = $(libdir)/sasl2
sasl_LTLIBRARIES = @SASL_MECHS@
EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la libcrammd5.la \
libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la libotp.la \
---
-1.7.4.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
index 6407721..aa271b8 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
@@ -1,4 +1,7 @@
-Avoid to call AC_TRY_RUN
+From 288430d3c2d3f36a4c9d40c4fffa85288f44549a Mon Sep 17 00:00:00 2001
+From: "Roy.Li" <rongqing.li@windriver.com>
+Date: Tue, 25 Jun 2013 09:22:59 +0800
+Subject: [PATCH] Avoid to call AC_TRY_RUN
Upstream-Status: Inappropriate [configuration]
@@ -6,18 +9,20 @@
on cross-compile environment by definition AC_ARG_ENABLE enable-spnego
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
----
- cmulocal/sasl2.m4 | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-diff --git a/cmulocal/sasl2.m4 b/cmulocal/sasl2.m4
-index 3c2841a..a5ecf81 100644
---- a/cmulocal/sasl2.m4
-+++ b/cmulocal/sasl2.m4
-@@ -281,6 +281,17 @@ if test "$gssapi" != no; then
-
+---
+ m4/sasl2.m4 | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/m4/sasl2.m4 b/m4/sasl2.m4
+index 56e0504..cf62607 100644
+--- a/m4/sasl2.m4
++++ b/m4/sasl2.m4
+@@ -314,7 +314,18 @@ if test "$gssapi" != no; then
cmu_save_LIBS="$LIBS"
LIBS="$LIBS $GSSAPIBASE_LIBS"
+
+- AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries])
+ AC_ARG_ENABLE([spnego],
+ [AC_HELP_STRING([--enable-spnego=<DIR>],
+ [enable SPNEGO support in GSSAPI libraries [no]])],
@@ -29,10 +34,11 @@
+ elif test "$spnego" = yes; then
+ AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO])
+ else
- AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries])
++ AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries])
AC_TRY_RUN([
#ifdef HAVE_GSSAPI_H
-@@ -308,7 +319,7 @@ int main(void)
+ #include <gssapi.h>
+@@ -341,7 +352,7 @@ int main(void)
AC_MSG_RESULT(yes) ],
AC_MSG_RESULT(no))
LIBS="$cmu_save_LIBS"
@@ -41,6 +47,3 @@
else
AC_MSG_RESULT([disabled])
fi
---
-1.7.10.4
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff
deleted file mode 100644
index 8eff5a8..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff
+++ /dev/null
@@ -1,14 +0,0 @@
-Author: Fabian Fagerholm <fabbe@debian.org>
-Description: Fix linking with libsasldb.a when saslauthd is built with sasldb
-support.
---- a/saslauthd/configure.in
-+++ b/saslauthd/configure.in
-@@ -77,7 +77,7 @@ if test "$authsasldb" != no; then
- AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support])
- SASL_DB_PATH_CHECK()
- SASL_DB_CHECK()
-- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al"
-+ SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.a"
- fi
-
- AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ],
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
index 2e5b175..0479acf 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
@@ -1,27 +1,28 @@
-Author: Fabian Fagerholm <fabbe@debian.org>
+From 1a5f3004e9081eab6263a29cd5be792f06441e36 Mon Sep 17 00:00:00 2001
+From: Fabian Fagerholm <fabbe@debian.org>
+Date: Wed, 24 Jul 2013 11:38:25 -0400
+Subject: [PATCH] cyrus-sasl: Add patches from Debian to fix linking
+
Description: This patch makes sure the non-PIC version of libsasldb.a, which
is created out of non-PIC objects, is not going to overwrite the PIC version,
which is created out of PIC objects. The PIC version is placed in .libs, and
the non-PIC version in the current directory. This ensures that both non-PIC
and PIC versions are available in the correct locations.
+
+---
+ lib/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index a158ca3..3137e19 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
-@@ -78,7 +78,7 @@ endif
+@@ -99,7 +99,7 @@ endif
libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS)
@echo adding static plugins and dependencies
- $(AR) cru .libs/$@ $(SASL_STATIC_OBJS)
+ $(AR) cru $@ $(SASL_STATIC_OBJS)
- @for i in ./libsasl2.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \
+ @for i in ./libsasl2.la ../common/libplugin_common.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \
if test ! -f $$i; then continue; fi; . $$i; \
for j in $$dependency_libs foo; do \
---- a/sasldb/Makefile.am
-+++ b/sasldb/Makefile.am
-@@ -63,6 +63,6 @@ libsasldb_a_SOURCES =
- EXTRA_libsasldb_a_SOURCES =
-
- libsasldb.a: libsasldb.la $(SASL_DB_BACKEND_STATIC)
-- $(AR) cru .libs/$@ $(SASL_DB_BACKEND_STATIC)
-+ $(AR) cru $@ $(SASL_DB_BACKEND_STATIC)
-
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch
deleted file mode 100644
index ecbab84..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 92d72789c811b0d55f624a8bac5ccc4412f5996e Mon Sep 17 00:00:00 2001
-From: Ken Murchison <murch@andrew.cmu.edu>
-Date: Thu, 20 Dec 2012 18:14:50 -0500
-Subject: [PATCH] sasl.h: #include <stddef.h> for size_t on NetBSD
-
-This patch was imported from git://git.cyrusimap.org/cyrus-sasl
-commit 67a188693796a14e3a76ac603104807fbbfddfc4
-
-Upstream-Status: Backport
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- include/sasl.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/sasl.h b/include/sasl.h
-index fef4d51..8b8a63f 100755
---- a/include/sasl.h
-+++ b/include/sasl.h
-@@ -121,6 +121,8 @@
- #ifndef SASL_H
- #define SASL_H 1
-
-+#include <stddef.h> /* For size_t */
-+
- /* Keep in sync with win32/common.mak */
- #define SASL_VERSION_MAJOR 2
- #define SASL_VERSION_MINOR 1
---
-1.8.3.2
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb
deleted file mode 100644
index 6dbff87..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb
+++ /dev/null
@@ -1,96 +0,0 @@
-SUMMARY = "Generic client/server library for SASL authentication"
-SECTION = "libs"
-HOMEPAGE = "http://asg.web.cmu.edu/sasl/"
-DEPENDS = "openssl db"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396"
-
-SRC_URI = "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-${PV}.tar.gz \
- file://avoid-to-call-AC_TRY_RUN.patch \
- file://Fix-hardcoded-libdir.patch \
- file://debian_patches_0009_sasldb_al.diff \
- file://debian_patches_0014_avoid_pic_overwrite.diff \
- file://sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch \
- file://saslauthd.service \
- file://saslauthd.conf \
-"
-
-inherit autotools-brokensep pkgconfig useradd systemd
-
-EXTRA_OECONF += "--with-dblib=berkeley \
- --with-bdb-libdir=${STAGING_LIBDIR} \
- --with-bdb-incdir=${STAGING_INCDIR} \
- --with-bdb=db-5.3 \
- --with-plugindir="${libdir}/sasl2" \
- andrew_cv_runpath_switch=none"
-
-PACKAGECONFIG ??= "ntlm \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 ldap pam', d)} \
-"
-PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5,"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
-PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie,"
-PACKAGECONFIG[des] = "--with-des,--without-des,,"
-PACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} --enable-ldapdb,--without-ldap --disable-ldapdb,openldap,"
-PACKAGECONFIG[ntlm] = "--with-ntlm,--without-ntlm,,"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-CFLAGS += "-fPIC"
-
-do_configure_prepend () {
- rm -f acinclude.m4 config/libtool.m4
-
- # make it be able to work with db 5.0 version
- local sed_files="sasldb/db_berkeley.c utils/dbconverter-2.c"
- for sed_file in $sed_files; do
- sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' $sed_file
- done
-}
-
-do_compile_prepend () {
- cd include
- ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} makemd5.c -o makemd5
- touch makemd5.o makemd5.lo makemd5
- cd ..
-}
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/saslauthd.service ${D}${systemd_unitdir}/system
-
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
- sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
- sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
-
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /run/saslauthd/ - - - -" > ${D}${sysconfdir}/tmpfiles.d/saslauthd.conf
-
- install -d ${D}${sysconfdir}/default/
- install -m 0644 ${WORKDIR}/saslauthd.conf ${D}${sysconfdir}/default/saslauthd
- sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/default/saslauthd
- fi
-}
-
-USERADD_PACKAGES = "${PN}-bin"
-USERADD_PARAM_${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus"
-
-SYSTEMD_PACKAGES = "${PN}-bin"
-SYSTEMD_SERVICE_${PN}-bin = "saslauthd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-SRC_URI[md5sum] = "a7f4e5e559a0e37b3ffc438c9456e425"
-SRC_URI[sha256sum] = "8fbc5136512b59bb793657f36fadda6359cae3b08f01fd16b3d406f1345b7bc3"
-
-PACKAGES =+ "${PN}-bin"
-
-FILES_${PN} += "${libdir}/sasl2/*.so*"
-FILES_${PN}-bin += "${bindir} \
- ${sysconfdir}/default/saslauthd \
- ${systemd_unitdir}/system/saslauthd.service \
- ${sysconfdir}/tmpfiles.d/saslauthd.conf"
-FILES_${PN}-dev += "${libdir}/sasl2/*.la"
-FILES_${PN}-dbg += "${libdir}/sasl2/.debug"
-FILES_${PN}-staticdev += "${libdir}/sasl2/*.a"
-
-INSANE_SKIP_${PN} += "dev-so"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
new file mode 100644
index 0000000..594e55d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
@@ -0,0 +1,97 @@
+SUMMARY = "Generic client/server library for SASL authentication"
+SECTION = "libs"
+HOMEPAGE = "http://asg.web.cmu.edu/sasl/"
+DEPENDS = "openssl db groff-native"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396"
+
+SRCREV = "e41cfb986c1b1935770de554872247453fdbb079"
+
+SRC_URI = "git://github.com/cyrusimap/cyrus-sasl;protocol=https \
+ file://avoid-to-call-AC_TRY_RUN.patch \
+ file://Fix-hardcoded-libdir.patch \
+ file://debian_patches_0014_avoid_pic_overwrite.diff \
+ file://saslauthd.service \
+ file://saslauthd.conf \
+ file://0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch \
+ file://0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch \
+ file://0001-makeinit.sh-fix-parallel-build-issue.patch \
+ "
+
+UPSTREAM_CHECK_URI = "https://github.com/cyrusimap/cyrus-sasl/archives"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig useradd systemd
+
+EXTRA_OECONF += "--with-dblib=berkeley \
+ --with-plugindir='${libdir}/sasl2' \
+ andrew_cv_runpath_switch=none"
+
+PACKAGECONFIG ??= "ntlm \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)} \
+"
+PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5,"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
+PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie,"
+PACKAGECONFIG[des] = "--with-des,--without-des,,"
+PACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} --enable-ldapdb,--without-ldap --disable-ldapdb,openldap,"
+PACKAGECONFIG[ntlm] = "--enable-ntlm=yes,--enable-ntlm=no,,"
+
+CFLAGS += "-fPIC"
+
+do_configure_prepend () {
+ # make it be able to work with db 5.0 version
+ local sed_files="sasldb/db_berkeley.c utils/dbconverter-2.c"
+ for sed_file in $sed_files; do
+ sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' ${S}/$sed_file
+ done
+}
+
+do_compile_prepend () {
+ cd include
+ ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} ${S}/include/makemd5.c -o makemd5
+ touch makemd5.o makemd5.lo makemd5
+ cd ..
+}
+
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/saslauthd.service ${D}${systemd_unitdir}/system
+
+ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
+ sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
+ sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
+
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /run/saslauthd/ - - - -" > ${D}${sysconfdir}/tmpfiles.d/saslauthd.conf
+
+ install -d ${D}${sysconfdir}/default/
+ install -m 0644 ${WORKDIR}/saslauthd.conf ${D}${sysconfdir}/default/saslauthd
+ sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/default/saslauthd
+ fi
+}
+
+USERADD_PACKAGES = "${PN}-bin"
+USERADD_PARAM_${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus"
+
+SYSTEMD_PACKAGES = "${PN}-bin"
+SYSTEMD_SERVICE_${PN}-bin = "saslauthd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+SRC_URI[md5sum] = "a7f4e5e559a0e37b3ffc438c9456e425"
+SRC_URI[sha256sum] = "8fbc5136512b59bb793657f36fadda6359cae3b08f01fd16b3d406f1345b7bc3"
+
+PACKAGES =+ "${PN}-bin"
+
+FILES_${PN} += "${libdir}/sasl2/*.so*"
+FILES_${PN}-bin += "${bindir} \
+ ${sysconfdir}/default/saslauthd \
+ ${systemd_unitdir}/system/saslauthd.service \
+ ${sysconfdir}/tmpfiles.d/saslauthd.conf"
+FILES_${PN}-dev += "${libdir}/sasl2/*.la"
+FILES_${PN}-dbg += "${libdir}/sasl2/.debug"
+FILES_${PN}-staticdev += "${libdir}/sasl2/*.a"
+
+INSANE_SKIP_${PN} += "dev-so"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch
index 3cd5259..952e4f0 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch
@@ -12,10 +12,10 @@
4 files changed, 208 insertions(+), 6 deletions(-)
create mode 100644 net/ppp_defs.h
-diff --git a/cli/cli_readline.c b/cli/cli_readline.c
-index 2812e6e..542935c 100644
---- a/cli/cli_readline.c
-+++ b/cli/cli_readline.c
+Index: ippool-1.3/cli/cli_readline.c
+===================================================================
+--- ippool-1.3.orig/cli/cli_readline.c
++++ ippool-1.3/cli/cli_readline.c
@@ -17,13 +17,14 @@
* Boston, MA 02110-1301 USA
*
@@ -33,7 +33,7 @@
#include <signal.h>
#include <readline/readline.h>
-@@ -630,7 +631,7 @@ static void cli_rl_uninstall_signal_handlers(void)
+@@ -630,7 +631,7 @@ static void cli_rl_uninstall_signal_hand
static int cli_rl_install_signal_handlers(void)
{
@@ -42,11 +42,11 @@
rl_catch_signals = 0;
rl_clear_signals();
-diff --git a/ippool_api.c b/ippool_api.c
-index 2c10c47..d1127a9 100644
---- a/ippool_api.c
-+++ b/ippool_api.c
-@@ -181,10 +181,13 @@ int ippool_api_rpc_check_request(SVCXPRT *xprt)
+Index: ippool-1.3/ippool_api.c
+===================================================================
+--- ippool-1.3.orig/ippool_api.c
++++ ippool-1.3/ippool_api.c
+@@ -181,10 +181,13 @@ int ippool_api_rpc_check_request(SVCXPRT
* non-loopback interface, reject the request.
*/
if ((!ippool_opt_remote_rpc) &&
@@ -63,210 +63,10 @@
}
svcerr_auth(xprt, AUTH_TOOWEAK);
return -EPERM;
-diff --git a/net/ppp_defs.h b/net/ppp_defs.h
-new file mode 100644
-index 0000000..b06eda5
---- /dev/null
-+++ b/net/ppp_defs.h
-@@ -0,0 +1,194 @@
-+/* $Id: ppp_defs.h,v 1.17 2002/12/06 09:49:15 paulus Exp $ */
-+
-+/*
-+ * ppp_defs.h - PPP definitions.
-+ *
-+ * Copyright (c) 1984 Paul Mackerras. All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in
-+ * the documentation and/or other materials provided with the
-+ * distribution.
-+ *
-+ * 3. The name(s) of the authors of this software must not be used to
-+ * endorse or promote products derived from this software without
-+ * prior written permission.
-+ *
-+ * 4. Redistributions of any form whatsoever must retain the following
-+ * acknowledgment:
-+ * "This product includes software developed by Paul Mackerras
-+ * <paulus@samba.org>".
-+ *
-+ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
-+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-+ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+ */
-+
-+#ifndef _PPP_DEFS_H_
-+#define _PPP_DEFS_H_
-+
-+/*
-+ * The basic PPP frame.
-+ */
-+#define PPP_HDRLEN 4 /* octets for standard ppp header */
-+#define PPP_FCSLEN 2 /* octets for FCS */
-+
-+/*
-+ * Packet sizes
-+ *
-+ * Note - lcp shouldn't be allowed to negotiate stuff outside these
-+ * limits. See lcp.h in the pppd directory.
-+ * (XXX - these constants should simply be shared by lcp.c instead
-+ * of living in lcp.h)
-+ */
-+#define PPP_MTU 1500 /* Default MTU (size of Info field) */
-+#define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN)
-+#define PPP_MINMTU 64
-+#define PPP_MRU 1500 /* default MRU = max length of info field */
-+#define PPP_MAXMRU 65000 /* Largest MRU we allow */
-+#define PPP_MINMRU 128
-+
-+#define PPP_ADDRESS(p) (((u_char *)(p))[0])
-+#define PPP_CONTROL(p) (((u_char *)(p))[1])
-+#define PPP_PROTOCOL(p) ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3])
-+
-+/*
-+ * Significant octet values.
-+ */
-+#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */
-+#define PPP_UI 0x03 /* Unnumbered Information */
-+#define PPP_FLAG 0x7e /* Flag Sequence */
-+#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */
-+#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */
-+
-+/*
-+ * Protocol field values.
-+ */
-+#define PPP_IP 0x21 /* Internet Protocol */
-+#define PPP_AT 0x29 /* AppleTalk Protocol */
-+#define PPP_IPX 0x2b /* IPX protocol */
-+#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */
-+#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */
-+#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
-+#define PPP_COMP 0xfd /* compressed packet */
-+#define PPP_IPCP 0x8021 /* IP Control Protocol */
-+#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
-+#define PPP_IPXCP 0x802b /* IPX Control Protocol */
-+#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */
-+#define PPP_CCP 0x80fd /* Compression Control Protocol */
-+#define PPP_ECP 0x8053 /* Encryption Control Protocol */
-+#define PPP_LCP 0xc021 /* Link Control Protocol */
-+#define PPP_PAP 0xc023 /* Password Authentication Protocol */
-+#define PPP_LQR 0xc025 /* Link Quality Report protocol */
-+#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
-+#define PPP_CBCP 0xc029 /* Callback Control Protocol */
-+#define PPP_EAP 0xc227 /* Extensible Authentication Protocol */
-+
-+/*
-+ * Values for FCS calculations.
-+ */
-+#define PPP_INITFCS 0xffff /* Initial FCS value */
-+#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */
-+#define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff])
-+
-+/*
-+ * A 32-bit unsigned integral type.
-+ */
-+
-+#if !defined(__BIT_TYPES_DEFINED__) && !defined(_BITYPES) \
-+ && !defined(__FreeBSD__) && (NS_TARGET < 40)
-+#ifdef UINT32_T
-+typedef UINT32_T u_int32_t;
-+#else
-+typedef unsigned int u_int32_t;
-+typedef unsigned short u_int16_t;
-+#endif
-+#endif
-+
-+/*
-+ * Extended asyncmap - allows any character to be escaped.
-+ */
-+typedef u_int32_t ext_accm[8];
-+
-+/*
-+ * What to do with network protocol (NP) packets.
-+ */
-+enum NPmode {
-+ NPMODE_PASS, /* pass the packet through */
-+ NPMODE_DROP, /* silently drop the packet */
-+ NPMODE_ERROR, /* return an error */
-+ NPMODE_QUEUE /* save it up for later. */
-+};
-+
-+/*
-+ * Statistics.
-+ */
-+struct pppstat {
-+ unsigned int ppp_ibytes; /* bytes received */
-+ unsigned int ppp_ipackets; /* packets received */
-+ unsigned int ppp_ierrors; /* receive errors */
-+ unsigned int ppp_obytes; /* bytes sent */
-+ unsigned int ppp_opackets; /* packets sent */
-+ unsigned int ppp_oerrors; /* transmit errors */
-+};
-+
-+struct vjstat {
-+ unsigned int vjs_packets; /* outbound packets */
-+ unsigned int vjs_compressed; /* outbound compressed packets */
-+ unsigned int vjs_searches; /* searches for connection state */
-+ unsigned int vjs_misses; /* times couldn't find conn. state */
-+ unsigned int vjs_uncompressedin; /* inbound uncompressed packets */
-+ unsigned int vjs_compressedin; /* inbound compressed packets */
-+ unsigned int vjs_errorin; /* inbound unknown type packets */
-+ unsigned int vjs_tossed; /* inbound packets tossed because of error */
-+};
-+
-+struct ppp_stats {
-+ struct pppstat p; /* basic PPP statistics */
-+ struct vjstat vj; /* VJ header compression statistics */
-+};
-+
-+struct compstat {
-+ unsigned int unc_bytes; /* total uncompressed bytes */
-+ unsigned int unc_packets; /* total uncompressed packets */
-+ unsigned int comp_bytes; /* compressed bytes */
-+ unsigned int comp_packets; /* compressed packets */
-+ unsigned int inc_bytes; /* incompressible bytes */
-+ unsigned int inc_packets; /* incompressible packets */
-+ unsigned int ratio; /* recent compression ratio << 8 */
-+};
-+
-+struct ppp_comp_stats {
-+ struct compstat c; /* packet compression statistics */
-+ struct compstat d; /* packet decompression statistics */
-+};
-+
-+/*
-+ * The following structure records the time in seconds since
-+ * the last NP packet was sent or received.
-+ */
-+struct ppp_idle {
-+ time_t xmit_idle; /* time since last NP packet sent */
-+ time_t recv_idle; /* time since last NP packet received */
-+};
-+
-+#ifndef __P
-+#ifdef __STDC__
-+#define __P(x) x
-+#else
-+#define __P(x) ()
-+#endif
-+#endif
-+
-+#endif /* _PPP_DEFS_H_ */
-diff --git a/usl/usl.h b/usl/usl.h
-index cdc16db..88d2714 100644
---- a/usl/usl.h
-+++ b/usl/usl.h
+Index: ippool-1.3/usl/usl.h
+===================================================================
+--- ippool-1.3.orig/usl/usl.h
++++ ippool-1.3/usl/usl.h
@@ -38,6 +38,10 @@
#include "usl_fsm.h"
#include "usl_list.h"
@@ -278,6 +78,3 @@
#define USL_VERSION "0.6"
#ifdef DEBUG
---
-2.13.3
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
index 6e47483..6fa4690 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
@@ -24,8 +24,6 @@
file://0001-read-returns-ssize_t.patch \
file://0002-Mark-first-element-of-a-string-as-null.patch \
file://0003-cli-Mark-return-of-strtol-as-long-int.patch \
- "
-SRC_URI_append_libc-musl = "\
file://0002-link-with-libtirpc.patch \
file://0003-musl-fixes.patch \
"
@@ -36,8 +34,7 @@
inherit systemd
-DEPENDS = "readline ppp ncurses gzip-native"
-DEPENDS_append_libc-musl = " libtirpc"
+DEPENDS = "readline ppp ncurses gzip-native rpcsvc-proto-native libtirpc"
RDEPENDS_${PN} = "rpcbind"
EXTRA_OEMAKE = "CC='${CC}' AS='${AS}' LD='${LD}' AR='${AR}' NM='${NM}' STRIP='${STRIP}'"
@@ -45,8 +42,7 @@
# enable self tests
EXTRA_OEMAKE += "IPPOOL_TEST=y"
-CPPFLAGS += "${SELECTED_OPTIMIZATION}"
-CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
+CPPFLAGS += "${SELECTED_OPTIMIZATION} -I${STAGING_INCDIR}/tirpc"
SYSTEMD_SERVICE_${PN} = "ippool.service"
SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch
deleted file mode 100644
index f5e1bec..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From cfee58d5863a535b61aa54690ae205b876f57944 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Feb 2018 22:53:29 -0800
-Subject: [PATCH 1/2] libopeniscsiusr: Include limit.h for PATH_MAX
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libopeniscsiusr/iface.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libopeniscsiusr/iface.c b/libopeniscsiusr/iface.c
-index 79898df..a48ef36 100644
---- a/libopeniscsiusr/iface.c
-+++ b/libopeniscsiusr/iface.c
-@@ -30,6 +30,7 @@
- #include <netdb.h>
- #include <assert.h>
- #include <inttypes.h>
-+#include <limits.h>
-
- #include "libopeniscsiusr/libopeniscsiusr.h"
- #include "misc.h"
---
-2.16.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-qedi.c-Removed-unused-linux-ethtool.h.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-qedi.c-Removed-unused-linux-ethtool.h.patch
deleted file mode 100644
index 174aa50..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-qedi.c-Removed-unused-linux-ethtool.h.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 197713ad7e3e944102bbd792e1ab9ec4a67100c0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Feb 2018 23:25:21 -0800
-Subject: [PATCH 1/4] qedi.c: Removed unused linux/ethtool.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- iscsiuio/src/unix/libs/qedi.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c
-index b81fecd..24cb89a 100644
---- a/iscsiuio/src/unix/libs/qedi.c
-+++ b/iscsiuio/src/unix/libs/qedi.c
-@@ -49,7 +49,6 @@
- #include <arpa/inet.h>
- #include <linux/types.h>
- #include <linux/sockios.h>
--#include <linux/ethtool.h>
- #include <linux/netlink.h>
- #include <sys/mman.h>
- #include <sys/ioctl.h>
---
-2.16.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch
deleted file mode 100644
index aecede6..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2b39f85dcf020647544002cb0b0e734748391dfb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Feb 2018 23:27:25 -0800
-Subject: [PATCH 2/4] idbm.c: Include fcnl.h for O_RDWR and O_CREAT definitions
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- usr/idbm.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/usr/idbm.c b/usr/idbm.c
-index 5532202..0a51b85 100644
---- a/usr/idbm.c
-+++ b/usr/idbm.c
-@@ -27,6 +27,7 @@
- #include <errno.h>
- #include <dirent.h>
- #include <limits.h>
-+#include <fcntl.h>
- #include <sys/stat.h>
- #include <sys/file.h>
-
---
-2.16.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch
deleted file mode 100644
index 836ed60..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 29571f71692e28ce9a17d1450097a98492f3b465 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Feb 2018 22:54:04 -0800
-Subject: [PATCH 2/2] libopeniscsiusr: Add CFLAGS to linker cmdline
-
-This will ensure that -fPIC is passed to linker as
-well
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libopeniscsiusr/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libopeniscsiusr/Makefile b/libopeniscsiusr/Makefile
-index 8b9b523..4f1d0d6 100644
---- a/libopeniscsiusr/Makefile
-+++ b/libopeniscsiusr/Makefile
-@@ -49,7 +49,7 @@ LIBADD =
- all: $(LIBS) $(LIBS_MAJOR) $(TESTS) doc
-
- $(LIBS): $(OBJS)
-- $(CC) $(LDFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LIBADD)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LIBADD)
- ln -sf $@ $(DEVLIB)
-
- $(LIBS_MAJOR): $(LIBS)
---
-2.16.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch
deleted file mode 100644
index 0ce155f..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 9b7a32903b56ce4d41f264a345ca59a0b00d53b3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Feb 2018 23:28:33 -0800
-Subject: [PATCH 3/4] bnx2x.c: Reorder the includes to avoid duplicate defines
- with musl
-
-including nic.h before linux/ethtool.h avoids redefinitions of
-eth structs
-
-/mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-musleabi/iscsi-initiator-utils/2.0.876-r0/recipe-sysroot/
-usr/include/netinet/if_ether.h:104:8: error: redefinition of 'struct ethhdr'
- struct ethhdr {
- ^~~~~~
-In file included from /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-musleabi/iscsi-initiator-utils/2.0.
-876-r0/recipe-sysroot/usr/include/linux/ethtool.h:19:0,
- from qedi.c:52:
-/mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-musleabi/iscsi-initiator-utils/2.0.876-r0/recipe-sysroot/
-usr/include/linux/if_ether.h:154:8: note: originally defined here
- struct ethhdr {
- ^~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- iscsiuio/src/unix/libs/bnx2x.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/iscsiuio/src/unix/libs/bnx2x.c b/iscsiuio/src/unix/libs/bnx2x.c
-index 3df6d5f..62530d1 100644
---- a/iscsiuio/src/unix/libs/bnx2x.c
-+++ b/iscsiuio/src/unix/libs/bnx2x.c
-@@ -36,6 +36,7 @@
- * bnx2x.c - bnx2x user space driver
- *
- */
-+#include "nic.h"
- #include <errno.h>
- #include <stdio.h>
- #include <string.h>
-@@ -58,7 +59,6 @@
- #include "bnx2x.h"
- #include "cnic.h"
- #include "logger.h"
--#include "nic.h"
- #include "nic_id.h"
- #include "nic_utils.h"
- #include "options.h"
---
-2.16.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch
deleted file mode 100644
index 57bdc8c..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 6f9c1a04d250388d1574cfaf20a1ff66a64beb48 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Feb 2018 23:42:12 -0800
-Subject: [PATCH 4/4] fwparam_ppc.c: Do not use __compar_fn_t
-
-__compar_fn_t is not defined in musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- utils/fwparam_ibft/fwparam_ppc.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/utils/fwparam_ibft/fwparam_ppc.c b/utils/fwparam_ibft/fwparam_ppc.c
-index c298b8c..391faa2 100644
---- a/utils/fwparam_ibft/fwparam_ppc.c
-+++ b/utils/fwparam_ibft/fwparam_ppc.c
-@@ -356,7 +356,7 @@ static int loop_devs(const char *devtree)
- * Sort the nics into "natural" order. The proc fs
- * device-tree has them in somewhat random, or reversed order.
- */
-- qsort(niclist, nic_count, sizeof(char *), (__compar_fn_t)nic_cmp);
-+ qsort(niclist, nic_count, sizeof(char *), nic_cmp);
-
- snprintf(prefix, sizeof(prefix), "%s/%s", devtree, "aliases");
- dev_count = 0;
---
-2.16.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb
index 823227c..e6a87a3 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb
@@ -11,25 +11,21 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-SRCREV ?= "24580adc4c174bbc5dde3ae7594a46d57635e906"
+SRCREV ?= "bd79e4ed1004a6035d2538a308c5930890421a22"
SRC_URI = "git://github.com/open-iscsi/open-iscsi \
- file://initd.debian \
- file://99_iscsi-initiator-utils \
- file://iscsi-initiator \
- file://iscsi-initiator.service \
- file://iscsi-initiator-targets.service \
- file://set_initiatorname \
- file://0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch \
- file://0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch \
- file://0001-qedi.c-Removed-unused-linux-ethtool.h.patch \
- file://0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch \
- file://0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch \
- file://0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch \
-"
+ file://initd.debian \
+ file://99_iscsi-initiator-utils \
+ file://iscsi-initiator \
+ file://iscsi-initiator.service \
+ file://iscsi-initiator-targets.service \
+ file://set_initiatorname \
+ "
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
+PV .= "+git${SRCPV}"
+
inherit update-rc.d systemd autotools
EXTRA_OECONF = " \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb
index 36417b7..31c50ff 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb
@@ -16,7 +16,7 @@
DEPENDS = "libnfnetlink openssl"
-inherit autotools pkgconfig systemd update-rc.d
+inherit autotools pkgconfig systemd
PACKAGECONFIG ??= "libnl snmp \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
@@ -41,8 +41,5 @@
FILES_${PN} += "${datadir}/snmp/mibs/KEEPALIVED-MIB.txt"
-INITSCRIPT_NAME = "keepalived"
-INITSCRIPT_PARAMS = "remove"
-
SYSTEMD_SERVICE_${PN} = "keepalived.service"
SYSTEMD_AUTO_ENABLE ?= "disable"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher.bb b/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher.bb
new file mode 100644
index 0000000..050a938
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher.bb
@@ -0,0 +1,34 @@
+python __anonymous() {
+ features = d.getVar('DISTRO_FEATURES')
+ if not features or 'systemd' not in features:
+ raise bb.parse.SkipPackage('networkd-dispatcher needs systemd in DISTRO_FEATURES')
+}
+
+SUMMARY = "Dispatcher service for systemd-networkd connection status changes"
+DESCRIPTION = "This daemon is similar to NetworkManager-dispatcher, but is much \
+more limited in the types of events it supports due to the limited nature of \
+systemd-networkd(8)."
+AUTHOR = "Clayton Craft and others"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
+
+RDEPENDS_${PN} = "systemd python3 python3-pygobject python3-dbus"
+
+SRC_URI = "git://gitlab.com/craftyguy/networkd-dispatcher.git;protocol=https"
+SRCREV = "c7e25623a161b64618ea778541c064d2a1df086b"
+PV = "1.7+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+# Nothing to build, just a python script to install
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -D -m 0755 ${S}/networkd-dispatcher ${D}${sbindir}/networkd-dispatcher
+ install -D -m 0644 ${S}/networkd-dispatcher.service ${D}/${systemd_system_unitdir}/networkd-dispatcher.service
+ install -D -m 0644 ${S}/networkd-dispatcher.conf ${D}/${sysconfdir}/conf.d/networkd-dispatcher.conf
+}
+
+FILES_${PN} += "${systemd_system_unitdir}/networkd-dispatcher.service"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch
new file mode 100644
index 0000000..ab9b25f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch
@@ -0,0 +1,27 @@
+From 2bc5c6367a7f70ca5bff177ec95bcad3b1c2b66b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Sep 2018 18:15:10 -0700
+Subject: [PATCH] Do not poke at build host's /etc/os-release
+
+During cross compile we are interested in target distro and not host
+distro therefore do not check for it.
+
+Upstream-Status: Inappropriate [Cross compile specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: openhpi-3.8.0/configure.ac
+===================================================================
+--- openhpi-3.8.0.orig/configure.ac
++++ openhpi-3.8.0/configure.ac
+@@ -194,7 +194,6 @@ AC_SUBST(JSON_C_LIB)
+ AC_SUBST(JSON_C_INCLUDE)
+ AC_CHECK_LIB([rabbitmq],[amqp_new_connection],[RABBITMQ_LIB=-lrabbitmq],[RABBITMQ_LIB=])
+ AC_SUBST(RABBITMQ_LIB)
+-AC_CHECK_FILE([/etc/os-release],[DISTRO=`grep "^ID=" /etc/os-release | awk -F"\"" '{ print $2 }'`])
+
+ AC_CHECK_HEADERS([amqp.h],[have_rabbitmq=yes],[have_rabbitmq=no])
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch
deleted file mode 100644
index 4f493f7..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 398c6db66c643ed6133cc2b028ab1e27a17c5295 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 1 May 2017 19:10:09 +0000
-Subject: [PATCH] Fix build failures with gcc7
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- plugins/ipmidirect/ipmi_mc_vendor.cpp | 2 +-
- plugins/ipmidirect/ipmi_resource.cpp | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/plugins/ipmidirect/ipmi_mc_vendor.cpp b/plugins/ipmidirect/ipmi_mc_vendor.cpp
-index 2c6c090..557771c 100644
---- a/plugins/ipmidirect/ipmi_mc_vendor.cpp
-+++ b/plugins/ipmidirect/ipmi_mc_vendor.cpp
-@@ -322,7 +322,7 @@ cIpmiMcVendor::CreateResources( cIpmiDomain *domain, cIpmiMc *source_mc, cIpmiSd
- if ( addr.m_channel != source_mc->GetChannel() )
- stdlog << "WARNING : SDR channel " << addr.m_channel << " NOT equal to MC channel " << source_mc->GetChannel() << "\n";
-
-- if ( FindOrCreateResource( domain, source_mc, fru_id, sdr, sdrs ) == false ) {
-+ if ( !FindOrCreateResource( domain, source_mc, fru_id, sdr, sdrs ) ) {
- return false;
- }
- }
-diff --git a/plugins/ipmidirect/ipmi_resource.cpp b/plugins/ipmidirect/ipmi_resource.cpp
-index c438e74..2552673 100644
---- a/plugins/ipmidirect/ipmi_resource.cpp
-+++ b/plugins/ipmidirect/ipmi_resource.cpp
-@@ -73,7 +73,7 @@ cIpmiResource::SendCommandReadLock( const cIpmiMsg &msg, cIpmiMsg &rsp,
-
- domain->ReadLock();
-
-- if ( domain->VerifyResource( resource ) == false )
-+ if ( !domain->VerifyResource( resource ) )
- return SA_ERR_HPI_NOT_PRESENT;
-
- return rv;
-@@ -91,7 +91,7 @@ cIpmiResource::SendCommandReadLock( cIpmiRdr *rdr, const cIpmiMsg &msg, cIpmiMsg
-
- domain->ReadLock();
-
-- if ( domain->VerifyRdr( rdr ) == false )
-+ if ( !domain->VerifyRdr( rdr ) )
- return SA_ERR_HPI_NOT_PRESENT;
-
- return rv;
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch
new file mode 100644
index 0000000..c78ec28
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch
@@ -0,0 +1,41 @@
+From 8f47adc3b9085d589e62cb5eb560dd23a703036a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Sep 2018 12:47:49 -0700
+Subject: [PATCH] include iostream for cout
+
+End cout with endl
+
+Fixes
+plugins/dynamic_simulator/thread.cpp:241:3: error: 'cout' was not declared in this scope
+ cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined"
+ ^~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plugins/dynamic_simulator/thread.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/dynamic_simulator/thread.cpp b/plugins/dynamic_simulator/thread.cpp
+index b971502..61eaf42 100644
+--- a/plugins/dynamic_simulator/thread.cpp
++++ b/plugins/dynamic_simulator/thread.cpp
+@@ -26,7 +26,7 @@
+ */
+
+ #include "thread.h"
+-#include <stdio.h>
++#include <iostream>
+ #include <sys/time.h>
+ #include <errno.h>
+
+@@ -238,7 +238,7 @@ cThreadLock::cThreadLock()
+ pthread_mutexattr_settype( &attr, PTHREAD_MUTEX_RECURSIVE );
+ pthread_mutex_init( &m_lock, &attr );
+ pthread_mutexattr_destroy( &attr );
+- cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined"
++ std::cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined"<<std::endl;
+ }
+ #else
+ static pthread_mutex_t lock_tmpl = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch
deleted file mode 100644
index 4d56f65..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From be40b3f11460cf495bbbef45692e7763afda0c2b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 14 Sep 2017 17:56:31 -0700
-Subject: [PATCH] ipmidirect: Replace __STRING
-
-__STRING is not universally available e.g.
-musl does not define it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- plugins/ipmidirect/t/test.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/plugins/ipmidirect/t/test.h b/plugins/ipmidirect/t/test.h
-index 8d71381..978d5ff 100644
---- a/plugins/ipmidirect/t/test.h
-+++ b/plugins/ipmidirect/t/test.h
-@@ -22,7 +22,7 @@ TestFunction( const char *str, const char *file, int line, bool expr )
- }
-
-
--#define Test(expr) TestFunction( __STRING(expr), __FILE__, __LINE__, expr )
-+#define Test(expr) TestFunction( #expr, __FILE__, __LINE__, expr )
-
-
- static int
---
-2.14.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch
deleted file mode 100644
index 0f033ac..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From be665d9513cca7e8b64c79ae424cf44ac166b052 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 14 Sep 2017 17:07:58 -0700
-Subject: [PATCH] plugins: Check for PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
- before use
-
-musl does not define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-so we can not assume that all Linux systems support PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-its a glibc specific define so check for it being defined before using it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- plugins/dynamic_simulator/thread.cpp | 2 +-
- plugins/ipmidirect/thread.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/plugins/dynamic_simulator/thread.cpp b/plugins/dynamic_simulator/thread.cpp
-index d663be0..9210fd7 100644
---- a/plugins/dynamic_simulator/thread.cpp
-+++ b/plugins/dynamic_simulator/thread.cpp
-@@ -229,7 +229,7 @@ cThread::Exit( void *rv )
- /**
- * Constructor
- **/
--#if ( defined(__sun) && defined(__SVR4) ) || defined(__FreeBSD__)
-+#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
- cThreadLock::cThreadLock()
- {
- pthread_mutexattr_t attr;
-diff --git a/plugins/ipmidirect/thread.cpp b/plugins/ipmidirect/thread.cpp
-index 5c52557..48e83fa 100644
---- a/plugins/ipmidirect/thread.cpp
-+++ b/plugins/ipmidirect/thread.cpp
-@@ -167,7 +167,7 @@ cThread::Exit( void *rv )
- // cThreadLock
- //////////////////////////////////////////////////
-
--#if ( defined(__sun) && defined(__SVR4) ) || defined(__FreeBSD__)
-+#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
- cThreadLock::cThreadLock()
- {
- pthread_mutexattr_t attr;
---
-2.14.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch
new file mode 100644
index 0000000..2cefd55
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch
@@ -0,0 +1,37 @@
+From b8bc6bfdb5e7fb5b46d3a830e04632939bee6b98 Mon Sep 17 00:00:00 2001
+From: Catalin Enache <catalin.enache@windriver.com>
+Date: Fri, 9 Feb 2018 16:35:11 +0200
+Subject: [PATCH] saHpiSessionClose: close socket
+
+saHpiSessionClose leaks file descriptors
+
+Upstream issue: https://github.com/open-hpi/openhpi/issues/1918
+
+Upstream-Status: Pending
+
+Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ baselib/session.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/baselib/session.cpp b/baselib/session.cpp
+index c5edfc8..4ece1b7 100644
+--- a/baselib/session.cpp
++++ b/baselib/session.cpp
+@@ -126,6 +126,12 @@ cSession::cSession()
+
+ cSession::~cSession()
+ {
++ cClientStreamSock * sock;
++ gpointer ptr = wrap_g_static_private_get( &m_sockets );
++ if ( ptr ) {
++ sock = reinterpret_cast<cClientStreamSock *>(ptr);
++ sock->Close();
++ }
+ wrap_g_static_private_free( &m_sockets );
+ }
+
+--
+2.10.2
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch
index 0549d59..5eff86b 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch
@@ -1,11 +1,21 @@
-Index: openhpi-3.6.1/configure.ac
-===================================================================
---- openhpi-3.6.1.orig/configure.ac
-+++ openhpi-3.6.1/configure.ac
-@@ -44,6 +44,7 @@ AC_PROG_CPP
- AC_PROG_INSTALL
- AC_PROG_LN_S
+From ed51168dfd6844deeaebf7d5f6c65898aafb6299 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 27 Aug 2017 12:12:04 -0700
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index c29a31f..f7fe0f7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -46,6 +46,7 @@ AC_PROG_LN_S
AC_PROG_MAKE_SET
+ AC_PROG_AWK
+ AC_PROG_GREP
+AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
enabled_non32bit="no"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch
index 9b35a0c..7958a07 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch
@@ -1,3 +1,7 @@
+Support build with Clang
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: openhpi-3.6.1/plugins/dynamic_simulator/new_sim.cpp
===================================================================
--- openhpi-3.6.1.orig/plugins/dynamic_simulator/new_sim.cpp
@@ -1273,16 +1277,3 @@
static SaErrorT
IpmiResetWatchdog(void *hnd,
-Index: openhpi-3.6.1/plugins/ipmidirect/ipmi_auth.h
-===================================================================
---- openhpi-3.6.1.orig/plugins/ipmidirect/ipmi_auth.h
-+++ openhpi-3.6.1/plugins/ipmidirect/ipmi_auth.h
-@@ -32,7 +32,7 @@ class cIpmiAuthSg
- {
- public:
- void *data; /* NULL to terminate. */
-- int len;
-+ unsigned int len;
- };
-
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch
new file mode 100644
index 0000000..3161140
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch
@@ -0,0 +1,98 @@
+From: Helmut Grohne <helmut@subdivi.de>
+Subject: fix cross compilation
+
+The OH_SET_SIZES macro relies on the usual autoconf sizeof cache variables
+during cross compilation, but it never ensure that they are initialized.
+
+pkg-config must be called with $ac_tool_prefix and PKG_PROG_PKG_CONFIG takes
+care of that. Setting PKG_CONFIG_PATH breaks the pkg-config-cross-wrapper.
+Don't do that.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: openhpi-3.8.0/acinclude.m4
+===================================================================
+--- openhpi-3.8.0.orig/acinclude.m4
++++ openhpi-3.8.0/acinclude.m4
+@@ -22,30 +22,39 @@ AC_DEFUN([OH_SET_SIZES],
+
+ if test "x$cross_compiling" != "xno"; then
+ if test "x$OH_SIZEOF_UCHAR" = x; then
++ AC_CHECK_SIZEOF([unsigned char])
+ OH_SIZEOF_UCHAR=$ac_cv_sizeof_uchar
+ fi
+ if test "x$OH_SIZEOF_USHORT" = x; then
++ AC_CHECK_SIZEOF([unsigned short])
+ OH_SIZEOF_USHORT=$ac_cv_sizeof_ushort
+ fi
+ if test "x$OH_SIZEOF_UINT" = x; then
++ AC_CHECK_SIZEOF([unsigned int])
+ OH_SIZEOF_UINT=$ac_cv_sizeof_uint
+ fi
+ if test "x$OH_SIZEOF_CHAR" = x; then
++ AC_CHECK_SIZEOF([char])
+ OH_SIZEOF_CHAR=$ac_cv_sizeof_char
+ fi
+ if test "x$OH_SIZEOF_SHORT" = x; then
++ AC_CHECK_SIZEOF([short])
+ OH_SIZEOF_SHORT=$ac_cv_sizeof_short
+ fi
+ if test "x$OH_SIZEOF_INT" = x; then
++ AC_CHECK_SIZEOF([int])
+ OH_SIZEOF_INT=$ac_cv_sizeof_int
+ fi
+ if test "x$OH_SIZEOF_LLONG" = x; then
++ AC_CHECK_SIZEOF([long long])
+ OH_SIZEOF_LLONG=$ac_cv_sizeof_longlong
+ fi
+ if test "x$OH_SIZEOF_FLOAT" = x; then
++ AC_CHECK_SIZEOF([float])
+ OH_SIZEOF_FLOAT=$ac_cv_sizeof_float
+ fi
+ if test "x$OH_SIZEOF_DOUBLE" = x; then
++ AC_CHECK_SIZEOF([double])
+ OH_SIZEOF_DOUBLE=$ac_cv_sizeof_double
+ fi
+ else
+Index: openhpi-3.8.0/configure.ac
+===================================================================
+--- openhpi-3.8.0.orig/configure.ac
++++ openhpi-3.8.0/configure.ac
+@@ -87,9 +87,9 @@ have_rtas_lib=no
+
+ dnl Check for GLIB
+
+-AC_CHECK_PROG([found_pkg_config],[pkg-config],[yes])
++PKG_PROG_PKG_CONFIG
+
+-if test "x$found_pkg_config" != "xyes"; then
++if test "x$PKG_CONFIG" = "x"; then
+ OH_CHECK_FAIL(pkg-config,pkg-config)
+ fi
+ PKG_CFG_SETPATH
+@@ -105,7 +105,7 @@ GLIB=glib-2.0
+ GTHREAD=gthread-2.0
+ GMODULE=gmodule-2.0
+
+-if pkg-config --atleast-version $GLIB_REQUIRED_VERSION $GLIB; then
++if $PKG_CONFIG --atleast-version $GLIB_REQUIRED_VERSION $GLIB; then
+ :
+ else
+ AC_MSG_ERROR([
+@@ -268,12 +268,12 @@ dnl
+ dnl We really need to make ipmi enablement be contigent on OpenIPMI
+ dnl
+
+-if PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --atleast-version 1.4.20 OpenIPMI; then
++if $PKG_CONFIG --atleast-version 1.4.20 OpenIPMI; then
+ have_openipmi=yes
+ AC_CHECK_LIB([OpenIPMI], [ipmi_smi_setup_con], [have_openipmi=yes])
+- OPENIPMI_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --cflags OpenIPMI`
++ OPENIPMI_CFLAGS=`$PKG_CONFIG --cflags OpenIPMI`
+ AC_SUBST(OPENIPMI_CFLAGS)
+- OPENIPMI_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --libs OpenIPMI`
++ OPENIPMI_LIBS=`$PKG_CONFIG --libs OpenIPMI`
+ AC_SUBST(OPENIPMI_LIBS)
+ fi
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/no-md2.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/no-md2.patch
new file mode 100644
index 0000000..c4dd23e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/no-md2.patch
@@ -0,0 +1,37 @@
+Description: Fix FTBFS with OpenSSL 1.1 by honouring OPENSSL_NO_MD2
+Author: Adrian Bunk <bunk@debian.org>
+Bug-Debian: https://bugs.debian.org/859543
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: openhpi-3.8.0/plugins/ipmidirect/ipmi_auth.cpp
+===================================================================
+--- openhpi-3.8.0.orig/plugins/ipmidirect/ipmi_auth.cpp
++++ openhpi-3.8.0/plugins/ipmidirect/ipmi_auth.cpp
+@@ -21,6 +21,7 @@
+ #include "ipmi_auth.h"
+ #include <string.h>
+ #include <errno.h>
++#include <openssl/opensslconf.h>
+
+
+ cIpmiAuth *
+@@ -32,7 +33,7 @@ IpmiAuthFactory( tIpmiAuthType type )
+ return new cIpmiAuthNone;
+
+ case eIpmiAuthTypeMd2:
+-#ifdef HAVE_OPENSSL_MD2_H
++#if defined(HAVE_OPENSSL_MD2_H) && !defined(OPENSSL_NO_MD2)
+ return new cIpmiAuthMd2;
+ #else
+ break;
+@@ -78,7 +79,7 @@ cIpmiAuthNone::Check( cIpmiAuthSg /*d*/[
+ }
+
+
+-#ifdef HAVE_OPENSSL_MD2_H
++#if defined(HAVE_OPENSSL_MD2_H) && !defined(OPENSSL_NO_MD2)
+ #include <openssl/md2.h>
+
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch
new file mode 100644
index 0000000..ca522bc
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch
@@ -0,0 +1,20 @@
+Link with libssl
+
+fixed build with openssl-1.1.x
+
+Taken from Fedora
+https://src.fedoraproject.org/rpms/openhpi/c/be77f5484b0206f8946a85b29424ea10bf863063
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Unknown
+
+diff -up openhpi-3.6.1/ssl/Makefile.am.than openhpi-3.6.1/ssl/Makefile.am
+--- openhpi-3.6.1/ssl/Makefile.am.than 2017-02-21 12:21:12.114814698 -0500
++++ openhpi-3.6.1/ssl/Makefile.am 2017-02-21 12:22:44.576454262 -0500
+@@ -19,5 +19,5 @@ lib_LTLIBRARIES = libopenhpi_ssl.la
+ libopenhpi_ssl_la_SOURCES = oh_ssl.c oh_ssl.h
+
+ libopenhpi_ssl_la_LDFLAGS = -version-info @HPI_LIB_VERSION@
+-libopenhpi_ssl_la_LIBADD = @CRYPTO_LIB@
++libopenhpi_ssl_la_LIBADD = -lssl @CRYPTO_LIB@
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch
deleted file mode 100644
index cc21ff8..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-commit e9f9a73c9dba8dd59f3d6c3acd9988ec8361d55a
-Author: Aws Ismail <aws.ismail@windriver.com>
-Date: Mon Dec 17 16:23:45 2012 -0500
-
- Correct dangling g_thread_exit in session.c
-
- hpi_shell's session.c has its progress_bar
- thread created using pthread_create but
- exited using g_thread_exit. Use pthread_exit
- instead to avoid unpredictable GLIB thread
- errors.
-
- Upstream-Status: Pending
-
- Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-
-Index: openhpi-3.6.1/hpi_shell/session.c
-===================================================================
---- openhpi-3.6.1.orig/hpi_shell/session.c
-+++ openhpi-3.6.1/hpi_shell/session.c
-@@ -73,7 +73,7 @@ static void* progress_bar(void *unused)
- if (i < (PROGRESS_BUF_SIZE - mes_len - 1)) i++;
- t++;
- };
-- g_thread_exit(0);
-+ pthread_exit(0);
- return (void *)1;
- }
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
index c848b35..160eeed 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
@@ -1,4 +1,7 @@
-Fix libxml2 for cross-compiling
+From afe545e77f9d841b7777d859e7e8108492fece96 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 26 Apr 2017 16:22:00 +0800
+Subject: [PATCH] Fix libxml2 for cross-compiling
Use proper XML2_INCLUDE path when cross-compiling
@@ -6,16 +9,20 @@
Signed-of-by: Aws Ismail <aws.ismail@windriver.com>
-Index: openhpi-3.6.1/configure.ac
-===================================================================
---- openhpi-3.6.1.orig/configure.ac
-+++ openhpi-3.6.1/configure.ac
-@@ -177,7 +177,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6242cbf..4fb6b69 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -179,7 +179,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/md5.h openssl/bio.h openssl/ssl.h openss
dnl xml is used for XML-based communication in ilo2_ribcl and oa_soap
AC_CHECK_LIB([xml2],[xmlParseMemory],[XML2_LIB=-lxml2],[XML2_LIB=])
--AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE])
-+AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE])
+-AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE=])
++AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE=])
AC_SUBST(XML2_LIB)
AC_SUBST(XML2_INCLUDE)
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
index 95b0abc..293c8d9 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
@@ -13,36 +13,33 @@
configure | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
-diff --git a/acinclude.m4 b/acinclude.m4
-index 82c33f6..727e461 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
+Index: openhpi-3.8.0/acinclude.m4
+===================================================================
+--- openhpi-3.8.0.orig/acinclude.m4
++++ openhpi-3.8.0/acinclude.m4
@@ -160,8 +160,8 @@ AC_DEFUN([OH_CHECK_NETSNMP],
],
[
have_netsnmp=yes
-- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'`
+- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/ -O\S*//g'`
- SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs`
+ SNMPFLAGS=""
+ SNMPLIBS=""
AC_MSG_RESULT(yes)
],
[AC_MSG_RESULT(no. No SNMP based plugins can be built!)])
-diff --git a/configure b/configure
-index 00067bc..36b913c 100755
---- a/configure
-+++ b/configure
-@@ -15949,8 +15949,8 @@ _ACEOF
+Index: openhpi-3.8.0/configure
+===================================================================
+--- openhpi-3.8.0.orig/configure
++++ openhpi-3.8.0/configure
+@@ -16062,8 +16062,8 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"; then :
have_netsnmp=yes
-- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'`
+- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/ -O\S*//g'`
- SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs`
+ SNMPFLAGS=""
+ SNMPLIBS=""
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
index 3e09180..472318b 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
@@ -1,4 +1,4 @@
-From 36fbaa27e7299f63c1324b0ad22b970e9365d6a7 Mon Sep 17 00:00:00 2001
+From 5e0ae172586f5aeb270a8f9b012dd3e36536a2a9 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Wed, 24 Dec 2014 10:54:59 +0800
Subject: [PATCH] openhpi: use serial-tests config needed by ptest
@@ -9,17 +9,18 @@
Upstream-Status: Inappropriate [default automake behavior incompatible with ptest]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- configure.ac | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-Index: openhpi-3.6.1/configure.ac
-===================================================================
---- openhpi-3.6.1.orig/configure.ac
-+++ openhpi-3.6.1/configure.ac
-@@ -7,7 +7,7 @@ dnl various hacks by Sean Dague <http:
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 89d8104..c29a31f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -7,7 +7,7 @@ dnl various hacks by Sean Dague <http://dague.net/sean> 4/23/03
AC_PREREQ(2.57)
- AC_INIT(openhpi, 3.6.1)
+ AC_INIT(openhpi, 3.8.0)
AC_CONFIG_SRCDIR(openhpi.spec.in)
-AM_INIT_AUTOMAKE([1.8])
+AM_INIT_AUTOMAKE([1.8 serial-tests])
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
deleted file mode 100644
index ecf71d7..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Hardware Platform Interface Library and Tools"
-
-DESCRIPTION = "\
-OpenHPI is an open source project created with the intent of providing an \
-implementation of the SA Forum's Hardware Platform Interface (HPI). HPI \
-provides an abstracted interface to managing computer hardware, typically for \
-chassis and rack based servers. HPI includes resource modeling; access to and \
-control over sensor, control, watchdog, and inventory data associated with \
-resources; abstracted System Event Log interfaces; hardware events and alerts; \
-and a managed hotswap interface. \
-\
-OpenHPI provides a modular mechanism for adding new hardware and device support \
-easily. Many plugins exist in the OpenHPI source tree to provide access to \
-various types of hardware. This includes, but is not limited to, IPMI based \
-servers, Blade Center, and machines which export data via sysfs. \
-"
-
-HOMEPAGE = "http://openhpi.sourceforge.net/Home"
-SECTION = "net"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4"
-
-DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs autoconf-archive-native"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
- file://openhpi.init \
- file://openhpid.service \
- file://run-ptest \
- file://openhpi-netsnmp-cross-compile.patch \
- file://openhpi-sysfs-cross-compile.patch \
- file://openhpi-libxml2-cross-compile.patch \
- file://openhpi-glib-cross-compile.patch \
- file://openhpi-linkfix.patch \
- file://openhpi-fix-host-gcc.patch \
- file://openhpi-hpi-shell-thread-fix.patch \
- file://openhpi-fix-testfail-errors.patch \
- file://openhpi-add-libnetsnmp-when-link.patch \
- file://openhpi-invalide-session.patch \
- file://openhpi-use-serial-tests-config-needed-by-ptest.patch \
- file://openhpi-fix-alignment-issue.patch \
- file://0001-Fix-build-failures-with-gcc7.patch \
- file://c++11.patch \
- file://clang-c++11.patch \
- file://fix-narrowing-warning.patch \
- file://0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch \
- file://0001-ipmidirect-Replace-__STRING.patch \
- "
-
-SRC_URI[md5sum] = "4718b16e0f749b5ad214a9b04f45dd23"
-SRC_URI[sha256sum] = "e0a810cb401c4bdcfc9551f2e6afd5a8ca4b411f5ee3bc60c19f82fd6e84a3dc"
-
-inherit autotools pkgconfig ptest update-rc.d systemd
-
-PACKAGES =+ "${PN}-libs"
-
-FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"
-
-INSANE_SKIP_${PN}-libs = "dev-so"
-RDEPENDS_${PN} += "${PN}-libs"
-
-PACKAGECONFIG ??= "libgcrypt non32bit"
-PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
-PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt,"
-PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,,"
-
-do_install_append () {
- install -m 0755 -d ${D}${sysconfdir}/${BPN}
- install -m 0755 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf
- install -m 0700 ${S}/openhpi.conf.example ${D}${sysconfdir}/${BPN}/openhpi.conf
- install -m 0755 ${S}/simulation.data.example ${D}${sysconfdir}/${BPN}/simulation.data
- install -m 0755 ${S}/test_agent.data.example ${D}${sysconfdir}/${BPN}/test_agent.data
- install -m 0755 ${WORKDIR}/openhpi.init ${D}${sysconfdir}/init.d/openhpid
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/openhpid.service ${D}${systemd_unitdir}/system
- sed -i -e "s,@SBINDIR@,${sbindir},g" -e "s,@SYSCONFDIR@,${sysconfdir},g" \
- ${D}${systemd_unitdir}/system/openhpid.service
-}
-
-do_compile_ptest () {
- for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do
- dir=`dirname ${x}`
- upper=`dirname ${dir}`
- if [ `basename ${upper}` != "cpp" ]; then
- oe_runmake -C ${dir} buildtest-TESTS
- fi
- done
-}
-
-do_install_ptest () {
- cp -rf ${B}/openhpid/t/ohpi/.libs/* ${B}/openhpid/t/ohpi/
- TESTS="utils marshal openhpid"
- for subtest in ${TESTS}; do
- mkdir -p ${D}${PTEST_PATH}/${subtest}/t
- cp -rf ${B}/${subtest}/t/* ${D}${PTEST_PATH}/${subtest}/t
- done
-
- for x in `find ${D}${PTEST_PATH} -name Makefile`; do
- sed -i "s:${S}:${PTEST_PATH}/:g" ${x};
- sed -i "s/^Makefile:/MM:/g" ${x};
- done;
-
- mkdir -p ${D}${PTEST_PATH}/plugins/watchdog/
- cp -L ${D}/${libdir}/${BPN}/libwatchdog.so ${D}${PTEST_PATH}/plugins/watchdog/
- cp -L ${D}/${libdir}/${BPN}/libsimulator.so ${D}${PTEST_PATH}/plugins/watchdog/
- find ${D}${PTEST_PATH}/ -name "*.c" -exec rm {} \;
- find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
- find ${D}${PTEST_PATH}/ -name "*.h" -exec rm {} \;
-}
-
-INITSCRIPT_NAME = "openhpid"
-INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE_${PN} = "openhpid.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
new file mode 100644
index 0000000..c4b3309
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
@@ -0,0 +1,119 @@
+SUMMARY = "Hardware Platform Interface Library and Tools"
+
+DESCRIPTION = "\
+OpenHPI is an open source project created with the intent of providing an \
+implementation of the SA Forum's Hardware Platform Interface (HPI). HPI \
+provides an abstracted interface to managing computer hardware, typically for \
+chassis and rack based servers. HPI includes resource modeling; access to and \
+control over sensor, control, watchdog, and inventory data associated with \
+resources; abstracted System Event Log interfaces; hardware events and alerts; \
+and a managed hotswap interface. \
+\
+OpenHPI provides a modular mechanism for adding new hardware and device support \
+easily. Many plugins exist in the OpenHPI source tree to provide access to \
+various types of hardware. This includes, but is not limited to, IPMI based \
+servers, Blade Center, and machines which export data via sysfs. \
+"
+
+HOMEPAGE = "http://openhpi.sourceforge.net/Home"
+SECTION = "net"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4"
+
+DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs \
+ autoconf-archive-native os-release"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://openhpi.init \
+ file://openhpid.service \
+ file://run-ptest \
+ file://openhpi-netsnmp-cross-compile.patch \
+ file://openhpi-sysfs-cross-compile.patch \
+ file://openhpi-libxml2-cross-compile.patch \
+ file://openhpi-glib-cross-compile.patch \
+ file://openhpi-linkfix.patch \
+ file://openhpi-fix-host-gcc.patch \
+ file://openhpi-fix-testfail-errors.patch \
+ file://openhpi-add-libnetsnmp-when-link.patch \
+ file://openhpi-invalide-session.patch \
+ file://openhpi-use-serial-tests-config-needed-by-ptest.patch \
+ file://openhpi-fix-alignment-issue.patch \
+ file://c++11.patch \
+ file://clang-c++11.patch \
+ file://fix-narrowing-warning.patch \
+ file://0001-session-close-socket.patch \
+ file://openhpi-3.6.1-ssl.patch \
+ file://0001-Do-not-poke-at-build-host-s-etc-os-release.patch \
+ file://cross_899198.patch \
+ file://no-md2.patch \
+ file://0001-include-iostream-for-cout.patch \
+ "
+SRC_URI[md5sum] = "fffda3deea8a0d3671a72eea9d13a4df"
+SRC_URI[sha256sum] = "c94332a29160dd75cb799c027e614690c00263b0fabed87417707bec04c38723"
+
+inherit autotools pkgconfig ptest update-rc.d systemd
+
+PACKAGES =+ "${PN}-libs"
+
+FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"
+
+INSANE_SKIP_${PN}-libs = "dev-so"
+RDEPENDS_${PN} += "${PN}-libs"
+
+PACKAGECONFIG ??= "libgcrypt non32bit"
+PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
+PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt,"
+PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,,"
+
+export DISTRO
+
+do_install_append () {
+ install -m 0755 -d ${D}${sysconfdir}/${BPN}
+ install -m 0755 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf
+ install -m 0700 ${S}/openhpi.conf.example ${D}${sysconfdir}/${BPN}/openhpi.conf
+ install -m 0755 ${S}/simulation.data.example ${D}${sysconfdir}/${BPN}/simulation.data
+ install -m 0755 ${S}/test_agent.data.example ${D}${sysconfdir}/${BPN}/test_agent.data
+ install -m 0755 ${WORKDIR}/openhpi.init ${D}${sysconfdir}/init.d/openhpid
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/openhpid.service ${D}${systemd_unitdir}/system
+ sed -i -e "s,@SBINDIR@,${sbindir},g" -e "s,@SYSCONFDIR@,${sysconfdir},g" \
+ ${D}${systemd_unitdir}/system/openhpid.service
+}
+
+do_compile_ptest () {
+ for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do
+ dir=`dirname ${x}`
+ upper=`dirname ${dir}`
+ if [ `basename ${upper}` != "cpp" ]; then
+ oe_runmake -C ${dir} buildtest-TESTS
+ fi
+ done
+}
+
+do_install_ptest () {
+ cp -rf ${B}/openhpid/t/ohpi/.libs/* ${B}/openhpid/t/ohpi/
+ TESTS="utils marshal openhpid"
+ for subtest in ${TESTS}; do
+ mkdir -p ${D}${PTEST_PATH}/${subtest}/t
+ cp -rf ${B}/${subtest}/t/* ${D}${PTEST_PATH}/${subtest}/t
+ done
+
+ for x in `find ${D}${PTEST_PATH} -name Makefile`; do
+ sed -i "s:${S}:${PTEST_PATH}/:g" ${x};
+ sed -i "s/^Makefile:/MM:/g" ${x};
+ done;
+
+ mkdir -p ${D}${PTEST_PATH}/plugins/watchdog/
+ cp -L ${D}/${libdir}/${BPN}/libwatchdog.so ${D}${PTEST_PATH}/plugins/watchdog/
+ cp -L ${D}/${libdir}/${BPN}/libsimulator.so ${D}${PTEST_PATH}/plugins/watchdog/
+ find ${D}${PTEST_PATH}/ -name "*.c" -exec rm {} \;
+ find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
+ find ${D}${PTEST_PATH}/ -name "*.h" -exec rm {} \;
+}
+
+INITSCRIPT_NAME = "openhpid"
+INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE_${PN} = "openhpid.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch
new file mode 100644
index 0000000..30fdb8b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch
@@ -0,0 +1,67 @@
+From 38c5343f84799fc5041575f3ec808f7476b6eea3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Apr 2018 14:33:35 -0700
+Subject: [PATCH] Catch std::ifstream::failure by reference
+
+Fixes
+error: catching polymorphic type 'class std::ios_base::failure' by value
+[-Werror=catch-value=]
+ } catch (std::ofstream::failure) {
+ ^~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/base/conf.cc | 4 ++--
+ src/dtm/dtmnd/dtm_main.cc | 2 +-
+ src/dtm/dtmnd/multicast.cc | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/base/conf.cc b/src/base/conf.cc
+index d5755a1..4820357 100644
+--- a/src/base/conf.cc
++++ b/src/base/conf.cc
+@@ -189,7 +189,7 @@ std::string Conf::ReadFile(const std::string& path_name,
+ try {
+ str.open(path_name);
+ str >> contents;
+- } catch (std::ifstream::failure) {
++ } catch (std::ifstream::failure& e) {
+ contents.clear();
+ }
+ return (str.fail() || contents.empty()) ? default_contents : contents;
+@@ -203,7 +203,7 @@ void Conf::WriteFileAtomically(const std::string& path_name,
+ try {
+ str.open(tmp_file, std::ofstream::out | std::ofstream::trunc);
+ str << contents << std::endl;
+- } catch (std::ofstream::failure) {
++ } catch (std::ofstream::failure& e) {
+ success = false;
+ }
+ str.close();
+diff --git a/src/dtm/dtmnd/dtm_main.cc b/src/dtm/dtmnd/dtm_main.cc
+index 585e11e..5cf6ad7 100644
+--- a/src/dtm/dtmnd/dtm_main.cc
++++ b/src/dtm/dtmnd/dtm_main.cc
+@@ -367,7 +367,7 @@ void UpdateNodeIdFile(DTM_INTERNODE_CB *cb) {
+ try {
+ str.open(PKGLOCALSTATEDIR "/node_id", std::ofstream::out);
+ str << std::hex << node_id << std::endl;
+- } catch (std::ofstream::failure) {
++ } catch (std::ofstream::failure& e) {
+ }
+ str.close();
+ }
+diff --git a/src/dtm/dtmnd/multicast.cc b/src/dtm/dtmnd/multicast.cc
+index cadc002..7c25fea 100644
+--- a/src/dtm/dtmnd/multicast.cc
++++ b/src/dtm/dtmnd/multicast.cc
+@@ -199,7 +199,7 @@ bool Multicast::GetPeersFromFile(const std::string &path_name) {
+ }
+ }
+ }
+- } catch (std::ifstream::failure) {
++ } catch (std::ifstream::failure& e) {
+ LOG_ER("Caught std::ifstream::failure when reading file '%s', peers=%zu",
+ path_name.c_str(), static_cast<size_t>(peers_.size()));
+ peers_.clear();
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch
new file mode 100644
index 0000000..db6796d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch
@@ -0,0 +1,76 @@
+From ae7178a78aba2e5766b70191617113487fd7ad0b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Apr 2018 18:29:17 -0700
+Subject: [PATCH] Fix string overflow in snprintf
+
+Fixes errors like
+error: '%s' dir
+ective output may be truncated writing up to 255 bytes into a region of size 32 [-Werror=forma
+t-truncation=]
+ snprintf(reinterpret_cast<char *>(Healthy.key), sizeof(Healthy.key), "%s",
+ ^~~~
+ hlth_str);
+ ~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/log/logd/lgs_util.cc | 4 ++--
+ src/rde/rded/rde_amf.cc | 2 +-
+ src/smf/smfd/SmfUpgradeCampaign.cc | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/log/logd/lgs_util.cc b/src/log/logd/lgs_util.cc
+index ac93d5a..cce80f3 100644
+--- a/src/log/logd/lgs_util.cc
++++ b/src/log/logd/lgs_util.cc
+@@ -200,12 +200,12 @@ char *lgs_get_time(time_t *time_in) {
+
+ stringSize = 5 * sizeof(char);
+ snprintf(srcString, (size_t)stringSize, "%d",
+- (timeStampData->tm_year + START_YEAR));
++ (timeStampData->tm_year + START_YEAR) & 0x4dU);
+
+ strncpy(timeStampString, srcString, stringSize);
+
+ stringSize = 3 * sizeof(char);
+- snprintf(srcString, (size_t)stringSize, "%02d", (timeStampData->tm_mon + 1));
++ snprintf(srcString, (size_t)stringSize, "%02d", (timeStampData->tm_mon + 1) & 0x2dU);
+
+ strncat(timeStampString, srcString, stringSize);
+
+diff --git a/src/rde/rded/rde_amf.cc b/src/rde/rded/rde_amf.cc
+index 81e521e..d53cc48 100644
+--- a/src/rde/rded/rde_amf.cc
++++ b/src/rde/rded/rde_amf.cc
+@@ -102,7 +102,7 @@ static uint32_t rde_amf_healthcheck_start(RDE_AMF_CB *rde_amf_cb) {
+ SaAmfHealthcheckKeyT Healthy;
+ SaNameT SaCompName;
+ char *phlth_ptr;
+- char hlth_str[256];
++ char hlth_str[32];
+
+ TRACE_ENTER();
+
+diff --git a/src/smf/smfd/SmfUpgradeCampaign.cc b/src/smf/smfd/SmfUpgradeCampaign.cc
+index 45cdce8..6761bcf 100644
+--- a/src/smf/smfd/SmfUpgradeCampaign.cc
++++ b/src/smf/smfd/SmfUpgradeCampaign.cc
+@@ -447,7 +447,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool *o_result) {
+ TRACE_ENTER();
+ SaAisErrorT rc = SA_AIS_OK;
+ SaImmAttrValuesT_2 **attributes;
+- int curCnt = 0;
++ short int curCnt = 0;
+
+ /* Read the SmfCampRestartInfo object smfCampRestartCnt attr */
+ std::string obj = "smfRestartInfo=info," +
+@@ -473,7 +473,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool *o_result) {
+ attrsmfCampRestartCnt.setName("smfCampRestartCnt");
+ attrsmfCampRestartCnt.setType("SA_IMM_ATTR_SAUINT32T");
+ char buf[5];
+- snprintf(buf, 4, "%d", curCnt);
++ snprintf(buf, 4, "%hd", curCnt);
+ attrsmfCampRestartCnt.addValue(buf);
+ imoCampRestartInfo.addValue(attrsmfCampRestartCnt);
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch
index effe25c..be0a587 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch
@@ -1,20 +1,21 @@
-From ab00d6f5793b2d850f975bcb6d5d0aa6d7a9eaa4 Mon Sep 17 00:00:00 2001
+From c2668f7f2ea82a61115b7cae56ed081b41ff5153 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 22 Apr 2017 12:34:37 -0700
Subject: [PATCH] configure: Disable format-overflow if supported by gcc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
- Makefile.am | 6 ++--
- configure.ac | 2 ++
- m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++
+ Makefile.am | 6 +--
+ configure.ac | 2 +
+ m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 3 deletions(-)
create mode 100644 m4/ax_check_compile_flag.m4
-Index: opensaf-5.18.02/Makefile.am
-===================================================================
---- opensaf-5.18.02.orig/Makefile.am
-+++ opensaf-5.18.02/Makefile.am
+diff --git a/Makefile.am b/Makefile.am
+index b3d6553..5607fc2 100644
+--- a/Makefile.am
++++ b/Makefile.am
@@ -52,10 +52,10 @@ AM_CPPFLAGS = \
-pthread \
-D_GNU_SOURCE -DINTERNAL_VERSION_ID='"@INTERNAL_VERSION_ID@"' \
@@ -29,11 +30,11 @@
if ENABLE_GCOV
AM_CFLAGS += --coverage
-Index: opensaf-5.18.02/configure.ac
-===================================================================
---- opensaf-5.18.02.orig/configure.ac
-+++ opensaf-5.18.02/configure.ac
-@@ -593,6 +593,8 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
+diff --git a/configure.ac b/configure.ac
+index 5b86730..47d1002 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -600,6 +600,8 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
fi
AC_SUBST(OSAF_HARDEN_FLAGS)
@@ -42,10 +43,11 @@
#############################################
# List the output Makefiles
#############################################
-Index: opensaf-5.18.02/m4/ax_check_compile_flag.m4
-===================================================================
+diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4
+new file mode 100644
+index 0000000..dcabb92
--- /dev/null
-+++ opensaf-5.18.02/m4/ax_check_compile_flag.m4
++++ b/m4/ax_check_compile_flag.m4
@@ -0,0 +1,74 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch
index 5756a02..e4bbb4c 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch
@@ -1,4 +1,4 @@
-From 6248b717b4861d16b80235fd8e57d64e4f636428 Mon Sep 17 00:00:00 2001
+From 979b2b6a1aa574a26e8b736049c4207d568f60f3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Apr 2017 17:39:07 -0700
Subject: [PATCH] configure: Pass linker specific options with -Wl
@@ -7,15 +7,16 @@
and we can use non-gcc compilers
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index df4fc58..02771c6 100644
+index 12a5d5c..5b86730 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -553,7 +553,7 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
+@@ -596,7 +596,7 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
if echo "${CFLAGS} ${CXXFLAGS}" | grep -q -- -O0; then
OSAF_HARDEN_FLAGS=""
fi
@@ -24,6 +25,3 @@
fi
AC_SUBST(OSAF_HARDEN_FLAGS)
---
-2.12.2
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch
index 76c47c6..e40d2b3 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch
@@ -1,4 +1,4 @@
-From 508ea7c0d67243feb1684eaa83569cb687561d64 Mon Sep 17 00:00:00 2001
+From c21f77d592415f316138c05f581192a1f061e735 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 15 Sep 2017 10:09:03 -0700
Subject: [PATCH] immpbe_dump.cc: Use sys/wait.h instead of wait.h
@@ -7,12 +7,13 @@
redirecting incorrect #include <wait.h> to <sys/wait.h>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/imm/common/immpbe_dump.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/imm/common/immpbe_dump.cc b/src/imm/common/immpbe_dump.cc
-index 100222f37..33e47ce3c 100644
+index e6b3cc5..3956028 100644
--- a/src/imm/common/immpbe_dump.cc
+++ b/src/imm/common/immpbe_dump.cc
@@ -26,12 +26,12 @@
@@ -27,8 +28,5 @@
#include <sys/stat.h>
+#include <sys/wait.h>
#include <libgen.h>
-
- #include <saAis.h>
---
-2.14.1
-
+ #include <set>
+ #include <vector>
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch
index 4a2a825..e4a3975 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch
@@ -1,4 +1,4 @@
-From 6442b57a855e273aa5a3d93e8596783cea128073 Mon Sep 17 00:00:00 2001
+From 7fb393c66df33110fef0cbabac7d304f12eb82e4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 15 Sep 2017 09:39:40 -0700
Subject: [PATCH] src: Add missing header limits.h for _POSIX_HOST_NAME_MAX
@@ -7,6 +7,7 @@
Do not use the deprecated headers under include/sys
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/base/os_defs.h | 5 +++--
src/mds/mds_dt_tcp.c | 1 -
@@ -18,7 +19,7 @@
7 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/base/os_defs.h b/src/base/os_defs.h
-index 50a9bf5fc..af6842863 100644
+index a570c43..3559b19 100644
--- a/src/base/os_defs.h
+++ b/src/base/os_defs.h
@@ -47,17 +47,18 @@
@@ -43,7 +44,7 @@
#include <pthread.h>
diff --git a/src/mds/mds_dt_tcp.c b/src/mds/mds_dt_tcp.c
-index 1407eb1ab..a87c22faa 100644
+index 1407eb1..a87c22f 100644
--- a/src/mds/mds_dt_tcp.c
+++ b/src/mds/mds_dt_tcp.c
@@ -27,7 +27,6 @@
@@ -55,7 +56,7 @@
#include <sys/types.h>
#include <unistd.h>
diff --git a/src/mds/mds_dt_tcp_disc.h b/src/mds/mds_dt_tcp_disc.h
-index a6249d73e..574f52681 100644
+index a6249d7..574f526 100644
--- a/src/mds/mds_dt_tcp_disc.h
+++ b/src/mds/mds_dt_tcp_disc.h
@@ -24,7 +24,7 @@
@@ -68,7 +69,7 @@
/* mds_indentifire + mds_version + msg_type + scope_type + server_type +
server_instance_lower + server_instance_upper + sub_ref_val + sub_ref_val +
diff --git a/src/mds/mds_dt_tipc.c b/src/mds/mds_dt_tipc.c
-index 37745e7f0..9b3255567 100644
+index 7714175..a0ed3b6 100644
--- a/src/mds/mds_dt_tipc.c
+++ b/src/mds/mds_dt_tipc.c
@@ -35,7 +35,6 @@
@@ -80,7 +81,7 @@
#include <sys/types.h>
#include <unistd.h>
diff --git a/src/mds/mds_dt_tipc.h b/src/mds/mds_dt_tipc.h
-index e73a11b09..401d208c2 100644
+index e73a11b..401d208 100644
--- a/src/mds/mds_dt_tipc.h
+++ b/src/mds/mds_dt_tipc.h
@@ -32,7 +32,7 @@
@@ -93,7 +94,7 @@
#include <errno.h>
#include <fcntl.h>
diff --git a/src/mds/mds_dt_trans.c b/src/mds/mds_dt_trans.c
-index 6f621e04e..5aacbd33e 100644
+index 6f621e0..5aacbd3 100644
--- a/src/mds/mds_dt_trans.c
+++ b/src/mds/mds_dt_trans.c
@@ -26,7 +26,6 @@
@@ -105,7 +106,7 @@
#define MDS_PROT_TCP 0xA0
diff --git a/src/ntf/ntfd/NtfLogger.cc b/src/ntf/ntfd/NtfLogger.cc
-index 84014b578..31b1ccc6c 100644
+index fd17c58..1120008 100644
--- a/src/ntf/ntfd/NtfLogger.cc
+++ b/src/ntf/ntfd/NtfLogger.cc
@@ -20,7 +20,7 @@
@@ -117,6 +118,3 @@
#include "base/osaf_utility.h"
#include <saAis.h>
---
-2.14.1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch
new file mode 100644
index 0000000..f98e28d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch
@@ -0,0 +1,100 @@
+From c5034fe42df8923bcefc10e163151997d70b6241 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Apr 2018 14:56:47 -0700
+Subject: [PATCH] Fix format-truncation errors
+
+Fixes errors with gcc8 eg.
+error: '%u' directive output may be truncated writing between 1 and 10 bytes into a region of size between 0 and 254 [-Werror=format-truncation=]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/base/daemon.c | 4 ++--
+ src/mds/mds_c_db.c | 8 ++++----
+ src/mds/mds_core.h | 4 ++--
+ src/mds/mds_dt2c.h | 2 +-
+ 4 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/base/daemon.c b/src/base/daemon.c
+index 361dd8d..4001b73 100644
+--- a/src/base/daemon.c
++++ b/src/base/daemon.c
+@@ -95,11 +95,11 @@ static int __create_pidfile(const char *pidfile)
+ {
+ FILE *file = NULL;
+ int fd, rc = 0;
+- char pidfiletmp[NAME_MAX] = {0};
++ char pidfiletmp[NAME_MAX+12] = {0};
+ pid_t pid;
+
+ pid = getpid();
+- snprintf(pidfiletmp, NAME_MAX, "%s.%u.tmp", pidfile, pid);
++ snprintf(pidfiletmp, NAME_MAX+12, "%s.%u.tmp", pidfile, pid);
+
+ /* open the file and associate a stream with it */
+ if (((fd = open(pidfiletmp, O_RDWR | O_CREAT, 0644)) == -1) ||
+diff --git a/src/mds/mds_c_db.c b/src/mds/mds_c_db.c
+index e6b95cd..3d4a222 100644
+--- a/src/mds/mds_c_db.c
++++ b/src/mds/mds_c_db.c
+@@ -124,10 +124,10 @@ void get_adest_details(MDS_DEST adest, char *adest_details)
+ }
+
+ if (remote == true)
+- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
++ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24,
+ "<rem_nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
+ else
+- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
++ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24,
+ "<nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
+
+ m_MDS_LOG_DBG("MDS:DB: adest_details: %s ", adest_details);
+@@ -207,10 +207,10 @@ void get_subtn_adest_details(MDS_PWE_HDL pwe_hdl, MDS_SVC_ID svc_id,
+ }
+
+ if (remote == true)
+- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
++ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24,
+ "<rem_node[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
+ else
+- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
++ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24,
+ "<node[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
+ done:
+ m_MDS_LOG_DBG("MDS:DB: adest_details: %s ", adest_details);
+diff --git a/src/mds/mds_core.h b/src/mds/mds_core.h
+index 37696d4..7f5225d 100644
+--- a/src/mds/mds_core.h
++++ b/src/mds/mds_core.h
+@@ -163,7 +163,7 @@ typedef struct mds_subscription_results_info {
+ uint32_t msg_snd_cnt; /* Message send count to this destination */
+ uint32_t msg_rcv_cnt; /* Message rcv count from this destination */
+ char sub_adest_details
+- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[slotno]:processname[pid]> */
++ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[slotno]:processname[pid]> */
+
+ } MDS_SUBSCRIPTION_RESULTS_INFO;
+
+@@ -194,7 +194,7 @@ typedef struct mds_subscription_info {
+ count is grater than ZERO bcast (multi-unicast) */
+ uint32_t prev_ver_sub_count;
+ char sub_adest_details
+- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[slotno]:processname[pid]> */
++ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[slotno]:processname[pid]> */
+
+ } MDS_SUBSCRIPTION_INFO;
+
+diff --git a/src/mds/mds_dt2c.h b/src/mds/mds_dt2c.h
+index 012999c..006b722 100644
+--- a/src/mds/mds_dt2c.h
++++ b/src/mds/mds_dt2c.h
+@@ -143,7 +143,7 @@ typedef struct mdtm_send_req {
+ */
+ MDS_DEST adest; /* MDTM to do local/remote routing, destination adest */
+ char sub_adest_details
+- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[nodeid]:processname[pid]> */
++ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[nodeid]:processname[pid]> */
+ MDS_SEND_PRIORITY_TYPE pri;
+ MDS_CLIENT_MSG_FORMAT_VER
+ msg_fmt_ver; /* message format version specification */
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0008-check-for-size-before-using-strncpy.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0008-check-for-size-before-using-strncpy.patch
new file mode 100644
index 0000000..497bb07
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0008-check-for-size-before-using-strncpy.patch
@@ -0,0 +1,33 @@
+From 29510dd81e3a5e96151afdb0702863cbfd640766 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 22 Jun 2018 18:58:59 -0700
+Subject: [PATCH] check for size before using strncpy
+
+ensures that size is never execeding the string length
+that execPath can hold
+
+Fixes
+error: '__builtin___strncpy_chk' specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Werror=stringop-overflow=]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/imm/immnd/immnd_proc.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/imm/immnd/immnd_proc.c b/src/imm/immnd/immnd_proc.c
+index 015932a..c8f115e 100644
+--- a/src/imm/immnd/immnd_proc.c
++++ b/src/imm/immnd/immnd_proc.c
+@@ -1902,6 +1902,10 @@ static int immnd_forkPbe(IMMND_CB *cb)
+ LOG_ER("Pathname too long: %u max is 1023", newLen);
+ return -1;
+ }
++ if (execDirLen > 1023 || execDirLen < 0) {
++ LOG_ER("Execdir name too long: %u max is 1023", execDirLen);
++ return -1;
++ }
+
+ strncpy(execPath, cb->mProgName, execDirLen);
+ execPath[execDirLen] = 0;
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb
deleted file mode 100644
index 4b556ce..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "OpenSAF is an open source implementation of the SAF AIS specification"
-DESCRIPTION = "OpenSAF is an open source project established to develop a base platform \
-middleware consistent with Service Availability Forum (SA Forum) \
-specifications, under the LGPLv2.1 license. The OpenSAF Foundation was \
-established by leading Communications and Enterprise Computing Companies to \
-facilitate the OpenSAF Project and to accelerate the adoption of the OpenSAF \
-code base in commercial products. \
-The OpenSAF project was launched in mid 2007 and has been under development by \
-an informal group of supporters of the OpenSAF initiative. The OpenSAF \
-Foundation was founded on January 22nd 2008 with Emerson Network Power, \
-Ericsson, Nokia Siemens Networks, HP and Sun Microsystems as founding members."
-HOMEPAGE = "http://www.opensaf.org"
-SECTION = "admin"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7"
-
-DEPENDS = "libxml2 python"
-TOOLCHAIN = "gcc"
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
- file://0001-configure-Pass-linker-specific-options-with-Wl.patch \
- file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \
- file://0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch \
- file://0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch \
-"
-SRC_URI[md5sum] = "42064f5ddbc7f560bfc5ff93ea9eecc7"
-SRC_URI[sha256sum] = "f9e24897f9cfd63bb3115f6275c706de1702d3d9bae2fc423227db72b23c37f0"
-
-inherit autotools useradd systemd pkgconfig
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-f -r opensaf"
-USERADD_PARAM_${PN} = "-r -g opensaf -d ${datadir}/opensaf/ -s ${sbindir}/nologin -c \"OpenSAF\" opensaf"
-
-SYSTEMD_SERVICE_${PN} += "opensafd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-PACKAGECONFIG[systemd] = ",,systemd"
-PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03 --enable-ais-plm,,openhpi"
-
-PACKAGECONFIG_append = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}"
-
-PKGLIBDIR="${libdir}"
-
-LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
-
-do_install_append() {
- cp -av --no-preserve=ownership ${B}/lib/.libs/*.so* ${D}${libdir}
- rm -fr "${D}${localstatedir}/lock"
- rm -fr "${D}${localstatedir}/run"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
- rmdir --ignore-fail-on-non-empty "${D}${datadir}/java"
- if [ ! -d "${D}${sysconfdir}/init.d" ]; then
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${B}/osaf/services/infrastructure/nid/scripts/opensafd ${D}${sysconfdir}/init.d/
- fi
-}
-
-FILES_${PN} += "${systemd_unitdir}/system/*.service"
-FILES_${PN}-staticdev += "${PKGLIBDIR}/*.a"
-
-INSANE_SKIP_${PN} = "dev-so"
-
-RDEPENDS_${PN} += "bash python"
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb
new file mode 100644
index 0000000..c534c62
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb
@@ -0,0 +1,74 @@
+SUMMARY = "OpenSAF is an open source implementation of the SAF AIS specification"
+DESCRIPTION = "OpenSAF is an open source project established to develop a base platform \
+middleware consistent with Service Availability Forum (SA Forum) \
+specifications, under the LGPLv2.1 license. The OpenSAF Foundation was \
+established by leading Communications and Enterprise Computing Companies to \
+facilitate the OpenSAF Project and to accelerate the adoption of the OpenSAF \
+code base in commercial products. \
+The OpenSAF project was launched in mid 2007 and has been under development by \
+an informal group of supporters of the OpenSAF initiative. The OpenSAF \
+Foundation was founded on January 22nd 2008 with Emerson Network Power, \
+Ericsson, Nokia Siemens Networks, HP and Sun Microsystems as founding members."
+HOMEPAGE = "http://www.opensaf.org"
+SECTION = "admin"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7"
+
+DEPENDS = "libxml2 python"
+TOOLCHAIN = "gcc"
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
+ file://0001-configure-Pass-linker-specific-options-with-Wl.patch \
+ file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \
+ file://0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch \
+ file://0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch \
+ file://0001-Catch-std-ifstream-failure-by-reference.patch \
+ file://0002-Fix-format-truncation-errors.patch \
+ file://0001-Fix-string-overflow-in-snprintf.patch \
+ file://0008-check-for-size-before-using-strncpy.patch \
+ "
+SRC_URI[md5sum] = "21836e43b13ad33bed9bd0ed391e5a6e"
+SRC_URI[sha256sum] = "e55dc2645487fb22938e8386b99eef6eb7aff43a246ce3e92488daf6ee46247a"
+
+inherit autotools useradd systemd pkgconfig
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "-f -r opensaf"
+USERADD_PARAM_${PN} = "-r -g opensaf -d ${datadir}/opensaf/ -s ${sbindir}/nologin -c \"OpenSAF\" opensaf"
+
+SYSTEMD_SERVICE_${PN} += "opensafd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+PACKAGECONFIG[systemd] = ",,systemd"
+PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03,,openhpi"
+PACKAGECONFIG[plm] = "--enable-ais-plm,--disable-ais-plm,libvirt openhpi"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}"
+
+PKGLIBDIR="${libdir}"
+
+LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
+
+do_install_append() {
+ cp -av --no-preserve=ownership ${B}/lib/.libs/*.so* ${D}${libdir}
+ rm -fr "${D}${localstatedir}/lock"
+ rm -fr "${D}${localstatedir}/run"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+ rmdir --ignore-fail-on-non-empty "${D}${datadir}/java"
+ if [ ! -d "${D}${sysconfdir}/init.d" ]; then
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${B}/osaf/services/infrastructure/nid/scripts/opensafd ${D}${sysconfdir}/init.d/
+ fi
+}
+
+FILES_${PN} += "${systemd_unitdir}/system/*.service"
+FILES_${PN}-staticdev += "${PKGLIBDIR}/*.a"
+
+INSANE_SKIP_${PN} = "dev-so"
+
+RDEPENDS_${PN} += "bash python"
+
+# http://errors.yoctoproject.org/Errors/Details/186970/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch
deleted file mode 100644
index 6b86e39..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 63619acf25151d4dade6d65732722ec4a710a5ac Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 09:54:25 -0700
-Subject: [PATCH] Check for glibc before setting CANT_USE_SEND_RECV_MSG
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/util/sys_defs.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/util/sys_defs.h b/src/util/sys_defs.h
-index f720e2a..7314c63 100644
---- a/src/util/sys_defs.h
-+++ b/src/util/sys_defs.h
-@@ -813,7 +813,7 @@ extern int initgroups(const char *, int);
- #define KERNEL_VERSION(a,b,c) (LINUX_VERSION_CODE + 1)
- #endif
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,2,0)) \
-- || (__GLIBC__ < 2)
-+ || (defined(__GLIBC__) && (__GLIBC__ < 2))
- #define CANT_USE_SEND_RECV_MSG
- #define DEF_SMTP_CACHE_DEMAND 0
- #else
---
-2.13.3
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch
new file mode 100644
index 0000000..5650984
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch
@@ -0,0 +1,58 @@
+From 4caa18feb70f8f3d133657c1250a53f4e292bb42 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Fri, 12 Oct 2018 12:38:02 +0800
+Subject: [PATCH] makedefs: add -lnsl and -lresolv to SYSLIBS by default
+
+We don't need to check libnsl.so and libresolv.so since the libnsl2 is
+specified in DEPENDS and libresolv.so is from c libarary.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ makedefs | 22 ++--------------------
+ 1 file changed, 2 insertions(+), 20 deletions(-)
+
+diff --git a/makedefs b/makedefs
+index 2683bce..8f1b3f4 100644
+--- a/makedefs
++++ b/makedefs
+@@ -484,16 +484,7 @@ case "$SYSTEM.$RELEASE" in
+ SYSLIBS="$SYSLIBS -ldb"
+ ;;
+ esac
+- for name in nsl resolv $GDBM_LIBS
+- do
+- for lib in $BUILD_SYSROOT_NSL_PATH
+- do
+- test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+- SYSLIBS="$SYSLIBS -l$name"
+- break
+- }
+- done
+- done
++ SYSLIBS="$SYSLIBS -lnsl -lresolv"
+ # Kernel 2.4 added IPv6
+ case "$RELEASE" in
+ 2.[0-3].*) CCARGS="$CCARGS -DNO_IPV6";;
+@@ -561,16 +552,7 @@ EOF
+ SYSLIBS="$SYSLIBS -ldb"
+ ;;
+ esac
+- for name in nsl resolv
+- do
+- for lib in $BUILD_SYSROOT_NSL_PATH
+- do
+- test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+- SYSLIBS="$SYSLIBS -l$name"
+- break
+- }
+- done
+- done
++ SYSLIBS="$SYSLIBS -lnsl -lresolv"
+ SYSLIBS="$SYSLIBS -ldl"
+ : ${SHLIB_SUFFIX=.so}
+ : ${SHLIB_CFLAGS=-fPIC}
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
index 09447d5..3d4f1df 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
@@ -6,14 +6,13 @@
HOMEPAGE= "http://www.postfix.org"
SECTION = "mail"
-DEPENDS = "db icu libpcre openssl postfix-native \
+DEPENDS = "db icu libpcre libnsl2 openssl postfix-native \
${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \
"
-DEPENDS_class-native = "db-native icu-native openssl-native libpcre-native"
-LICENSE = "IPL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=64375f37431336ea1b1b3005fe3fa354"
+LICENSE = "IPL-1.0 | EPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b181651ad99a7dc4cc8c4ce2f491ed1a"
SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
file://makedefs.patch \
@@ -77,7 +76,6 @@
export AUXLIBS = "-lpcre -lssl -lcrypto ${AUXLIBS-sasl} ${AUXLIBS-ldap}"
export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf"
-export CCARGS-nonis_libc-musl = "-DNO_NIS"
# OPT,DEBUG is aready in CFLAGS
# ignore the OPTS="CC=$CC" in Makefile it will not use the CC=$CC $CCARGS
EXTRA_OEMAKE += "OPT= DEBUG= OPTS= "
@@ -99,27 +97,9 @@
"s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \
${S}/Makefile.in
export BUILD_SYSROOT="${STAGING_DIR_HOST}"
- export BUILD_SYSROOT_NSL_PATH="${STAGING_BASELIBDIR} \
- ${STAGING_LIBDIR}"
else
# native build
export BUILD_SYSROOT="${STAGING_DIR_NATIVE}"
-
- # ubuntu x86 host: /lib/x86_64-linux-gnu(64) /lib/i386-linux-gnu (32)
- # on 64 bits, 32 libs in i386-linux-gnu
- # let makedefs finds nsl and resolv libs, host CC will link
- # the correct libraries
- BUILD_SYSROOT_NSL_PATH="$(${CC} -print-search-dirs 2>/dev/null | \
- sed -n '/^libraries: =/s/libraries: =//p' | \
- sed -e 's/:/\n/g' | xargs -n1 readlink -f | \
- grep -v 'gcc\|/[0-9.]\+$' | sort -u)"
- if [ -z "$BUILD_SYSROOT_NSL_PATH" ]; then
- BUILD_SYSROOT_NSL_PATH="/usr/lib64 /lib64 \
- /lib/x86_64-linux-gnu \
- /usr/lib /lib \
- /lib/i386-linux-gnu"
- fi
- export BUILD_SYSROOT_NSL_PATH
fi
oe_runmake makefiles
@@ -207,6 +187,8 @@
chown :postdrop ${D}${sbindir}/postdrop
chmod g+s ${D}${sbindir}/postqueue
chmod g+s ${D}${sbindir}/postdrop
+
+ rm -rf ${D}/etc/postfix/makedefs.out
}
do_install_append_class-native() {
@@ -214,14 +196,12 @@
ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq
}
-do_install_append_class-target() {
- # Remove references to buildmachine paths in target makedefs.out
- sed -i 's:-fdebug-prefix-map[^ ]*::g; s:--sysroot=${STAGING_DIR_TARGET}::g' ${D}/etc/postfix/makedefs.out
-}
-
-ALTERNATIVE_${PN} = "sendmail"
+ALTERNATIVE_${PN} += "sendmail mailq newaliases"
+ALTERNATIVE_TARGET[mailq] = "${bindir}/mailq"
+ALTERNATIVE_TARGET[newaliases] = "${bindir}/newaliases"
ALTERNATIVE_TARGET[sendmail] = "${sbindir}/sendmail.postfix"
ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
+
ALTERNATIVE_PRIORITY = "120"
ALTERNATIVE_${PN}-doc += "mailq.1 newaliases.1 sendmail.1"
@@ -248,10 +228,10 @@
# This can fail depending on host setup
if ! newaliases -C $D/etc/postfix/main.cf -oA$D/etc/aliases; then
$INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
- exit 0
+ else
+ touch $D/etc/postfix/virtual_alias
+ postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias
fi
- touch $D/etc/postfix/virtual_alias
- postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias
fi
}
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb
deleted file mode 100644
index 89af406..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require postfix.inc
-
-SRC_URI += "file://0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch \
- file://0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
- file://postfix-install.patch \
- file://icu-config.patch \
- "
-SRC_URI[md5sum] = "aea073a9b0bea5bdb590460a270a4aa0"
-SRC_URI[sha256sum] = "d06849418d119d09366997b2b481bb23f737629769b4e4a52da42fb3ad8b0576"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb
new file mode 100644
index 0000000..6718b7e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb
@@ -0,0 +1,12 @@
+require postfix.inc
+
+SRC_URI += "file://0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
+ file://postfix-install.patch \
+ file://icu-config.patch \
+ file://0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
+ "
+
+SRC_URI[md5sum] = "4381c6492f415e4a69cf5099d4acea76"
+SRC_URI[sha256sum] = "54f514dae42b5275cb4bc9c69283f16c06200b71813d0bb696568c4ba7ae7e3b"
+
+UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.3(\.\d+)+).tar.gz"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb
index c1f1504..e5c5616 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb
@@ -5,7 +5,7 @@
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=90352fb2bfe17f4261687a0d6e09f489"
-DEPENDS = "libcap"
+DEPENDS = "libcap virtual/crypt"
SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc
index 06d16a4..59a07d7 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc
+++ b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc
@@ -20,7 +20,7 @@
file://volatiles.03_radvd \
file://radvd.default"
-inherit autotools update-rc.d useradd pkgconfig systemd
+inherit autotools useradd pkgconfig systemd
SYSTEMD_SERVICE_${PN} = "radvd.service"
SYSTEMD_AUTO_ENABLE = "disable"
@@ -36,7 +36,7 @@
sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/radvd
sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/radvd
- install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/volatiles.03_radvd
+ install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/03_radvd
# Install systemd service files
install -d ${D}${systemd_unitdir}/system
@@ -54,9 +54,6 @@
done
}
-INITSCRIPT_NAME = "radvd"
-INITSCRIPT_PARAMS = "defaults 20 80"
-
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch
new file mode 100644
index 0000000..001d9e9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch
@@ -0,0 +1,506 @@
+From 01a44c96dbd04936e9cb2501745a834a0b09d504 Mon Sep 17 00:00:00 2001
+From: Amos Jeffries <yadij@users.noreply.github.com>
+Date: Sun, 13 May 2018 06:57:41 +0000
+Subject: [PATCH] Bug 4843 pt1: ext_edirectory_userip_acl refactoring for GCC-8
+ (#204)
+
+Proposed changes to this helper to fix strcat / strncat buffer
+overread / overflow issues.
+
+The approach takes three parts:
+
+* adds a makeHexString function to replace many for-loops
+ catenating bits of strings together with hex conversion into a
+ second buffer. Replacing with a snprintf() and buffer overflow
+ handling.
+
+* a copy of Ip::Address::lookupHostIp to convert the input
+ string into IP address binary format, then generate the hex
+ string using the above new hex function instead of looped
+ sub-string concatenations across several buffers.
+ This removes all the "00" and "0000" strncat() calls and
+ allows far simpler code even with added buffer overflow
+ handling.
+
+* replace multiple string part concatenations with a few simpler
+ calls to snprintf() for all the search_ip buffer constructions.
+ Adding buffer overflow handling as needed for the new calls.
+---
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport
+
+ .../ext_edirectory_userip_acl.cc | 376 ++++++------------
+ 1 file changed, 120 insertions(+), 256 deletions(-)
+
+diff --git a/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc b/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc
+index 63609e4..ad16bfd 100644
+--- a/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc
++++ b/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc
+@@ -67,6 +67,9 @@
+ #ifdef HAVE_LDAP_H
+ #include <ldap.h>
+ #endif
++#ifdef HAVE_NETDB_H
++#include <netdb.h>
++#endif
+
+ #ifdef HELPER_INPUT_BUFFER
+ #define EDUI_MAXLEN HELPER_INPUT_BUFFER
+@@ -714,11 +717,14 @@ BindLDAP(edui_ldap_t *l, char *dn, char *pw, unsigned int t)
+
+ /* Copy details - dn and pw CAN be NULL for anonymous and/or TLS */
+ if (dn != NULL) {
++ if (strlen(dn) >= sizeof(l->dn))
++ return LDAP_ERR_OOB; /* DN too large */
++
+ if ((l->basedn[0] != '\0') && (strstr(dn, l->basedn) == NULL)) {
+ /* We got a basedn, but it's not part of dn */
+- xstrncpy(l->dn, dn, sizeof(l->dn));
+- strncat(l->dn, ",", 1);
+- strncat(l->dn, l->basedn, strlen(l->basedn));
++ const int x = snprintf(l->dn, sizeof(l->dn)-1, "%s,%s", dn, l->basedn);
++ if (x < 0 || static_cast<size_t>(x) >= sizeof(l->dn))
++ return LDAP_ERR_OOB; /* DN too large */
+ } else
+ xstrncpy(l->dn, dn, sizeof(l->dn));
+ }
+@@ -778,24 +784,73 @@ BindLDAP(edui_ldap_t *l, char *dn, char *pw, unsigned int t)
+ }
+ }
+
++// XXX: duplicate (partial) of Ip::Address::lookupHostIp
++/**
++ * Convert the IP address string representation in src to
++ * its binary representation.
++ *
++ * \return binary representation of the src IP address.
++ * Must be free'd using freeaddrinfo().
++ */
++static struct addrinfo *
++makeIpBinary(const char *src)
++{
++ struct addrinfo want;
++ memset(&want, 0, sizeof(want));
++ want.ai_flags = AI_NUMERICHOST; // prevent actual DNS lookups!
++
++ struct addrinfo *dst = nullptr;
++ if (getaddrinfo(src, nullptr, &want, &dst) != 0) {
++ // not an IP address
++ /* free any memory getaddrinfo() dynamically allocated. */
++ if (dst)
++ freeaddrinfo(dst);
++ return nullptr;
++ }
++
++ return dst;
++}
++
++/**
++ * Convert srcLen bytes from src into HEX and store into dst, which
++ * has a maximum content size of dstSize including c-string terminator.
++ * The dst value produced will be a 0-terminated c-string.
++ *
++ * \retval N length of dst written (excluding c-string terminator)
++ * \retval -11 (LDAP_ERR_OOB) buffer overflow detected
++ */
++static int
++makeHexString(char *dst, const int dstSize, const char *src, const int srcLen)
++{
++ // HEX encoding doubles the amount of bytes/octets copied
++ if ((srcLen*2) >= dstSize)
++ return LDAP_ERR_OOB; // cannot copy that many
++
++ *dst = 0;
++
++ for (int k = 0; k < srcLen; ++k) {
++ int c = static_cast<int>(src[k]);
++ if (c < 0)
++ c = c + 256;
++ char hexc[4];
++ const int hlen = snprintf(hexc, sizeof(hexc), "%02X", c);
++ if (hlen < 0 || static_cast<size_t>(hlen) > sizeof(hexc)) // should be impossible
++ return LDAP_ERR_OOB;
++ strcat(dst, hexc);
++ }
++ return strlen(dst);
++}
++
+ /*
+ * ConvertIP() - <edui_ldap_t> <ip>
+ *
+ * Take an IPv4 address in dot-decimal or IPv6 notation, and convert to 2-digit HEX stored in l->search_ip
+ * This is the networkAddress that we search LDAP for.
+- *
+- * PENDING -- CHANGE OVER TO inet*_pton, but inet6_pton does not provide the correct syntax
+- *
+ */
+ static int
+ ConvertIP(edui_ldap_t *l, char *ip)
+ {
+- char bufa[EDUI_MAXLEN], bufb[EDUI_MAXLEN], obj[EDUI_MAXLEN];
+- char hexc[4], *p;
+ void *y, *z;
+- size_t s;
+- long x;
+- int i, j, t, swi; /* IPv6 "::" cut over toggle */
+ if (l == NULL) return LDAP_ERR_NULL;
+ if (ip == NULL) return LDAP_ERR_PARAM;
+ if (!(l->status & LDAP_INIT_S)) return LDAP_ERR_INIT; /* Not initalized */
+@@ -831,183 +886,22 @@ ConvertIP(edui_ldap_t *l, char *ip)
+ l->status |= (LDAP_IPV4_S);
+ z = NULL;
+ }
+- s = strlen(ip);
+- *(bufa) = '\0';
+- *(bufb) = '\0';
+- *(obj) = '\0';
+- /* StringSplit() will zero out bufa & obj at each call */
+- memset(l->search_ip, '\0', sizeof(l->search_ip));
+- xstrncpy(bufa, ip, sizeof(bufa)); /* To avoid segfaults, use bufa instead of ip */
+- swi = 0;
+- if (l->status & LDAP_IPV6_S) {
+- /* Search for :: in string */
+- if ((bufa[0] == ':') && (bufa[1] == ':')) {
+- /* bufa starts with a ::, so just copy and clear */
+- xstrncpy(bufb, bufa, sizeof(bufb));
+- *(bufa) = '\0';
+- ++swi; /* Indicates that there is a bufb */
+- } else if ((bufa[0] == ':') && (bufa[1] != ':')) {
+- /* bufa starts with a :, a typo so just fill in a ':', cat and clear */
+- bufb[0] = ':';
+- strncat(bufb, bufa, strlen(bufa));
+- *(bufa) = '\0';
+- ++swi; /* Indicates that there is a bufb */
+- } else {
+- p = strstr(bufa, "::");
+- if (p != NULL) {
+- /* Found it, break bufa down and split into bufb here */
+- *(bufb) = '\0';
+- i = strlen(p);
+- memcpy(bufb, p, i);
+- *p = '\0';
+- bufb[i] = '\0';
+- ++swi; /* Indicates that there is a bufb */
+- }
+- }
+- }
+- s = strlen(bufa);
+- if (s < 1)
+- s = strlen(bufb);
+- while (s > 0) {
+- if ((l->status & LDAP_IPV4_S) && (swi == 0)) {
+- /* Break down IPv4 address */
+- t = StringSplit(bufa, '.', obj, sizeof(obj));
+- if (t > 0) {
+- errno = 0;
+- x = strtol(obj, (char **)NULL, 10);
+- if (((x < 0) || (x > 255)) || ((errno != 0) && (x == 0)) || ((obj[0] != '0') && (x == 0)))
+- return LDAP_ERR_OOB; /* Out of bounds -- Invalid address */
+- memset(hexc, '\0', sizeof(hexc));
+- int hlen = snprintf(hexc, sizeof(hexc), "%02X", (int)x);
+- strncat(l->search_ip, hexc, hlen);
+- } else
+- break; /* reached end of octet */
+- } else if (l->status & LDAP_IPV6_S) {
+- /* Break down IPv6 address */
+- if (swi > 1)
+- t = StringSplit(bufb, ':', obj, sizeof(obj)); /* After "::" */
+- else
+- t = StringSplit(bufa, ':', obj, sizeof(obj)); /* Before "::" */
+- /* Convert octet by size (t) - and fill 0's */
+- switch (t) { /* IPv6 is already in HEX, copy contents */
+- case 4:
+- hexc[0] = (char) toupper((int)obj[0]);
+- i = (int)hexc[0];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[1] = (char) toupper((int)obj[1]);
+- i = (int)hexc[1];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[2] = '\0';
+- strncat(l->search_ip, hexc, 2);
+- hexc[0] = (char) toupper((int)obj[2]);
+- i = (int)hexc[0];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[1] = (char) toupper((int)obj[3]);
+- i = (int)hexc[1];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[2] = '\0';
+- strncat(l->search_ip, hexc, 2);
+- break;
+- case 3:
+- hexc[0] = '0';
+- hexc[1] = (char) toupper((int)obj[0]);
+- i = (int)hexc[1];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[2] = '\0';
+- strncat(l->search_ip, hexc, 2);
+- hexc[0] = (char) toupper((int)obj[1]);
+- i = (int)hexc[0];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[1] = (char) toupper((int)obj[2]);
+- i = (int)hexc[1];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[2] = '\0';
+- strncat(l->search_ip, hexc, 2);
+- break;
+- case 2:
+- strncat(l->search_ip, "00", 2);
+- hexc[0] = (char) toupper((int)obj[0]);
+- i = (int)hexc[0];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[1] = (char) toupper((int)obj[1]);
+- i = (int)hexc[1];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[2] = '\0';
+- strncat(l->search_ip, hexc, 2);
+- break;
+- case 1:
+- strncat(l->search_ip, "00", 2);
+- hexc[0] = '0';
+- hexc[1] = (char) toupper((int)obj[0]);
+- i = (int)hexc[1];
+- if (!isxdigit(i))
+- return LDAP_ERR_OOB; /* Out of bounds */
+- hexc[2] = '\0';
+- strncat(l->search_ip, hexc, 2);
+- break;
+- default:
+- if (t > 4)
+- return LDAP_ERR_OOB;
+- break;
+- }
+- /* Code to pad the address with 0's between a '::' */
+- if ((strlen(bufa) == 0) && (swi == 1)) {
+- /* We are *AT* the split, pad in some 0000 */
+- t = strlen(bufb);
+- /* How many ':' exist in bufb ? */
+- j = 0;
+- for (i = 0; i < t; ++i) {
+- if (bufb[i] == ':')
+- ++j;
+- }
+- --j; /* Preceding "::" doesn't count */
+- t = 8 - (strlen(l->search_ip) / 4) - j; /* Remainder */
+- if (t > 0) {
+- for (i = 0; i < t; ++i)
+- strncat(l->search_ip, "0000", 4);
+- }
+- }
+- }
+- if ((bufa[0] == '\0') && (swi > 0)) {
+- s = strlen(bufb);
+- ++swi;
+- } else
+- s = strlen(bufa);
+- }
+- s = strlen(l->search_ip);
+
+- /* CHECK sizes of address, truncate or pad */
+- /* if "::" is at end of ip, then pad another block or two */
+- while ((l->status & LDAP_IPV6_S) && (s < 32)) {
+- strncat(l->search_ip, "0000", 4);
+- s = strlen(l->search_ip);
+- }
+- if ((l->status & LDAP_IPV6_S) && (s > 32)) {
+- /* Too long, truncate */
+- l->search_ip[32] = '\0';
+- s = strlen(l->search_ip);
+- }
+- /* If at end of ip, and its not long enough, then pad another block or two */
+- while ((l->status & LDAP_IPV4_S) && (s < 8)) {
+- strncat(l->search_ip, "00", 2);
+- s = strlen(l->search_ip);
+- }
+- if ((l->status & LDAP_IPV4_S) && (s > 8)) {
+- /* Too long, truncate */
+- l->search_ip[8] = '\0';
+- s = strlen(l->search_ip);
++ size_t s = LDAP_ERR_INVALID;
++ if (struct addrinfo *dst = makeIpBinary(ip)) {
++ if (dst->ai_family == AF_INET6) {
++ struct sockaddr_in6 *sia = reinterpret_cast<struct sockaddr_in6 *>(dst->ai_addr);
++ const char *ia = reinterpret_cast<const char *>(sia->sin6_addr.s6_addr);
++ s = makeHexString(l->search_ip, sizeof(l->search_ip), ia, 16); // IPv6 = 16-byte address
++
++ } else if (dst->ai_family == AF_INET) {
++ struct sockaddr_in *sia = reinterpret_cast<struct sockaddr_in *>(dst->ai_addr);
++ const char *ia = reinterpret_cast<const char *>(&(sia->sin_addr));
++ s = makeHexString(l->search_ip, sizeof(l->search_ip), ia, 4); // IPv4 = 4-byte address
++ } // else leave s with LDAP_ERR_INVALID value
++ freeaddrinfo(dst);
+ }
+
+- /* Completed, s is length of address in HEX */
+ return s;
+ }
+
+@@ -1099,48 +993,42 @@ SearchFilterLDAP(edui_ldap_t *l, char *group)
+ }
+ if (group == NULL) {
+ /* No groupMembership= to add, yay! */
+- xstrncpy(bufa, "(&", sizeof(bufa));
+- strncat(bufa, edui_conf.search_filter, strlen(edui_conf.search_filter));
+ /* networkAddress */
+- snprintf(bufb, sizeof(bufb), "(|(networkAddress=1\\23%s)", bufc);
+ if (l->status & LDAP_IPV4_S) {
+- int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=8\\23\\00\\00%s)(networkAddress=9\\23\\00\\00%s))", \
+- bufc, bufc);
+- strncat(bufb, bufd, ln);
++ const int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=8\\23\\00\\00%s)(networkAddress=9\\23\\00\\00%s)", bufc, bufc);
++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd))
++ return LDAP_ERR_OOB;
++
+ } else if (l->status & LDAP_IPV6_S) {
+- int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=10\\23\\00\\00%s)(networkAddress=11\\23\\00\\00%s))", \
+- bufc, bufc);
+- strncat(bufb, bufd, ln);
+- } else
+- strncat(bufb, ")", 1);
+- strncat(bufa, bufb, strlen(bufb));
+- strncat(bufa, ")", 1);
++ const int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=10\\23\\00\\00%s)(networkAddress=11\\23\\00\\00%s)", bufc, bufc);
++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd))
++ return LDAP_ERR_OOB;
++ }
++ const int x = snprintf(bufa, sizeof(bufa), "(&%s(|(networkAddress=1\\23%s)%s))", edui_conf.search_filter, bufc, bufd);
++ if (x < 0 || static_cast<size_t>(x) >= sizeof(bufa))
++ return LDAP_ERR_OOB;
++
+ } else {
+ /* Needs groupMembership= to add... */
+- xstrncpy(bufa, "(&(&", sizeof(bufa));
+- strncat(bufa, edui_conf.search_filter, strlen(edui_conf.search_filter));
+ /* groupMembership -- NOTE: Squid *MUST* provide "cn=" from squid.conf */
+- snprintf(bufg, sizeof(bufg), "(groupMembership=%s", group);
+ if ((l->basedn[0] != '\0') && (strstr(group, l->basedn) == NULL)) {
+- strncat(bufg, ",", 1);
+- strncat(bufg, l->basedn, strlen(l->basedn));
++ const int ln = snprintf(bufg, sizeof(bufg), ",%s", l->basedn);
++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd))
++ return LDAP_ERR_OOB;
+ }
+- strncat(bufg, ")", 1);
+- strncat(bufa, bufg, strlen(bufg));
+ /* networkAddress */
+- snprintf(bufb, sizeof(bufb), "(|(networkAddress=1\\23%s)", bufc);
+ if (l->status & LDAP_IPV4_S) {
+- int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=8\\23\\00\\00%s)(networkAddress=9\\23\\00\\00%s))", \
+- bufc, bufc);
+- strncat(bufb, bufd, ln);
++ const int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=8\\23\\00\\00%s)(networkAddress=9\\23\\00\\00%s)", bufc, bufc);
++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd))
++ return LDAP_ERR_OOB;
+ } else if (l->status & LDAP_IPV6_S) {
+- int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=10\\23\\00\\00%s)(networkAddress=11\\23\\00\\00%s))", \
+- bufc, bufc);
+- strncat(bufb, bufd, ln);
+- } else
+- strncat(bufb, ")", 1);
+- strncat(bufa, bufb, strlen(bufb));
+- strncat(bufa, "))", 2);
++ const int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=10\\23\\00\\00%s)(networkAddress=11\\23\\00\\00%s)", bufc, bufc);
++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd))
++ return LDAP_ERR_OOB;
++ }
++ const int x = snprintf(bufa, sizeof(bufa), "(&(&%s(groupMembership=%s%s)(|(networkAddress=1\\23%s)%s)))", edui_conf.search_filter, group, bufg, bufc, bufd);
++ if (x < 0 || static_cast<size_t>(x) >= sizeof(bufa))
++ return LDAP_ERR_OOB;
+ }
+ s = strlen(bufa);
+ xstrncpy(l->search_filter, bufa, sizeof(l->search_filter));
+@@ -1212,10 +1100,10 @@ static int
+ SearchIPLDAP(edui_ldap_t *l)
+ {
+ ber_len_t i, x;
+- ber_len_t j, k;
+- ber_len_t y, z;
+- int c;
+- char bufa[EDUI_MAXLEN], bufb[EDUI_MAXLEN], hexc[4];
++ ber_len_t j;
++ ber_len_t z;
++ char bufa[EDUI_MAXLEN];
++ char bufb[EDUI_MAXLEN];
+ LDAPMessage *ent;
+ if (l == NULL) return LDAP_ERR_NULL;
+ if (l->lp == NULL) return LDAP_ERR_POINTER;
+@@ -1273,19 +1161,11 @@ SearchIPLDAP(edui_ldap_t *l)
+ /* bufa is the address, just compare it */
+ if (!(l->status & LDAP_IPV4_S) || (l->status & LDAP_IPV6_S))
+ break; /* Not looking for IPv4 */
+- for (k = 0; k < z; ++k) {
+- c = (int) bufa[k];
+- if (c < 0)
+- c = c + 256;
+- int hlen = snprintf(hexc, sizeof(hexc), "%02X", c);
+- if (k == 0)
+- xstrncpy(bufb, hexc, sizeof(bufb));
+- else
+- strncat(bufb, hexc, hlen);
+- }
+- y = strlen(bufb);
++ const int blen = makeHexString(bufb, sizeof(bufb), bufa, z);
++ if (blen < 0)
++ return blen;
+ /* Compare value with IP */
+- if (memcmp(l->search_ip, bufb, y) == 0) {
++ if (memcmp(l->search_ip, bufb, blen) == 0) {
+ /* We got a match! - Scan 'ber' for 'cn' values */
+ z = ldap_count_values_len(ber);
+ for (j = 0; j < z; ++j) {
+@@ -1308,19 +1188,11 @@ SearchIPLDAP(edui_ldap_t *l)
+ /* bufa + 2 is the address (skip 2 digit port) */
+ if (!(l->status & LDAP_IPV4_S) || (l->status & LDAP_IPV6_S))
+ break; /* Not looking for IPv4 */
+- for (k = 2; k < z; ++k) {
+- c = (int) bufa[k];
+- if (c < 0)
+- c = c + 256;
+- int hlen = snprintf(hexc, sizeof(hexc), "%02X", c);
+- if (k == 2)
+- xstrncpy(bufb, hexc, sizeof(bufb));
+- else
+- strncat(bufb, hexc, hlen);
+- }
+- y = strlen(bufb);
++ const int blen = makeHexString(bufb, sizeof(bufb), &bufa[2], z);
++ if (blen < 0)
++ return blen;
+ /* Compare value with IP */
+- if (memcmp(l->search_ip, bufb, y) == 0) {
++ if (memcmp(l->search_ip, bufb, blen) == 0) {
+ /* We got a match! - Scan 'ber' for 'cn' values */
+ z = ldap_count_values_len(ber);
+ for (j = 0; j < z; ++j) {
+@@ -1343,19 +1215,11 @@ SearchIPLDAP(edui_ldap_t *l)
+ /* bufa + 2 is the address (skip 2 digit port) */
+ if (!(l->status & LDAP_IPV6_S))
+ break; /* Not looking for IPv6 */
+- for (k = 2; k < z; ++k) {
+- c = (int) bufa[k];
+- if (c < 0)
+- c = c + 256;
+- int hlen = snprintf(hexc, sizeof(hexc), "%02X", c);
+- if (k == 2)
+- xstrncpy(bufb, hexc, sizeof(bufb));
+- else
+- strncat(bufb, hexc, hlen);
+- }
+- y = strlen(bufb);
++ const int blen = makeHexString(bufb, sizeof(bufb), &bufa[2], z);
++ if (blen < 0)
++ return blen;
+ /* Compare value with IP */
+- if (memcmp(l->search_ip, bufb, y) == 0) {
++ if (memcmp(l->search_ip, bufb, blen) == 0) {
+ /* We got a match! - Scan 'ber' for 'cn' values */
+ z = ldap_count_values_len(ber);
+ for (j = 0; j < z; ++j) {
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch
deleted file mode 100644
index f482f80..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 27e10667bf27baf5f119a791e3473bb9435a786a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 23 Apr 2017 10:28:28 -0700
-Subject: [PATCH] SquidNew: use noexcept instead of throw for C++11 compilers
-
-Fixes errors with gcc7 which is more pedantic about c++11
-conformance regarding deprecated features
-
-include/SquidNew.h:21:51: error: dynamic exception specifications are deprecated in C++11
-_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc)
- ^~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- include/SquidNew.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/include/SquidNew.h b/include/SquidNew.h
-index 39fcee0..c960347 100644
---- a/include/SquidNew.h
-+++ b/include/SquidNew.h
-@@ -18,19 +18,19 @@
- */
- #include <new>
-
--_SQUID_EXTERNNEW_ void *operator new(size_t size) throw (std::bad_alloc)
-+_SQUID_EXTERNNEW_ void *operator new(size_t size) noexcept(false)
- {
- return xmalloc(size);
- }
--_SQUID_EXTERNNEW_ void operator delete (void *address) throw()
-+_SQUID_EXTERNNEW_ void operator delete (void *address) noexcept(true)
- {
- xfree(address);
- }
--_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc)
-+_SQUID_EXTERNNEW_ void *operator new[] (size_t size) noexcept(false)
- {
- return xmalloc(size);
- }
--_SQUID_EXTERNNEW_ void operator delete[] (void *address) throw()
-+_SQUID_EXTERNNEW_ void operator delete[] (void *address) noexcept(true)
- {
- xfree(address);
- }
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/files/0002-smblib-fix-buffer-over-read.patch b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0002-smblib-fix-buffer-over-read.patch
new file mode 100644
index 0000000..c8f0c47
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0002-smblib-fix-buffer-over-read.patch
@@ -0,0 +1,39 @@
+From a6b1e0fd14311587186e40d09bff5c8c3aada2e4 Mon Sep 17 00:00:00 2001
+From: Amos Jeffries <squid3@treenet.co.nz>
+Date: Sat, 25 Jul 2015 05:53:16 -0700
+Subject: [PATCH] smblib: fix buffer over-read
+
+When parsing SMB LanManager packets with invalid protocol ID and the
+default set of Squid supported protocols. It may access memory outside
+the buffer storing protocol names.
+
+smblib is only used by already deprecated helpers which are deprecated
+due to far more significant NTLM protocol issues. It will also only
+result in packets being rejected later with invalid protocol names. So
+this is a minor bug rather than a vulnerability.
+
+ Detected by Coverity Scan. Issue 1256165
+---
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport
+
+ lib/smblib/smblib-util.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/lib/smblib/smblib-util.c b/lib/smblib/smblib-util.c
+index 6139ae2..e722cbb 100644
+--- a/lib/smblib/smblib-util.c
++++ b/lib/smblib/smblib-util.c
+@@ -204,7 +204,11 @@ int SMB_Figure_Protocol(const char *dialects[], int prot_index)
+ {
+ int i;
+
+- if (dialects == SMB_Prots) { /* The jobs is easy, just index into table */
++ // prot_index may be a value outside the table SMB_Types[]
++ // which holds data at offsets 0 to 11
++ int ourType = (prot_index < 0 || prot_index > 11);
++
++ if (ourType && dialects == SMB_Prots) { /* The jobs is easy, just index into table */
+
+ return(SMB_Types[prot_index]);
+ } else { /* Search through SMB_Prots looking for a match */
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch b/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch
deleted file mode 100644
index 2feca49..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 660fce9cfa00a57e5b7cec46116a31e21595c306 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 19 Jun 2017 23:47:01 -0700
-Subject: [PATCH] squid: Upgrade to 3.5.26
-
-../../squid-3.5.26/src/DiskIO/DiskThreads/aiops.cc: In function 'void squidaio_init()': ../../squid-3.5.26/src/DiskIO/DiskThreads/DiskThreads.h:30:50: error: '*' in boolean context, suggest '&&' instead [-Werror=int-in-bool-context] #define NUMTHREADS (Config.cacheSwap.n_configured*16)
-
-Upstream-Status: Backport
-
----
- src/DiskIO/DiskThreads/aiops.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/DiskIO/DiskThreads/aiops.cc b/src/DiskIO/DiskThreads/aiops.cc
-index b44adfa..e11f948 100644
---- a/src/DiskIO/DiskThreads/aiops.cc
-+++ b/src/DiskIO/DiskThreads/aiops.cc
-@@ -290,7 +290,7 @@ squidaio_init(void)
- /* Create threads and get them to sit in their wait loop */
- squidaio_thread_pool = memPoolCreate("aio_thread", sizeof(squidaio_thread_t));
-
-- assert(NUMTHREADS);
-+ assert(NUMTHREADS != 0);
-
- for (i = 0; i < NUMTHREADS; ++i) {
- threadp = (squidaio_thread_t *)squidaio_thread_pool->alloc();
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb
deleted file mode 100644
index 3ee96ab..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux"
-DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \
-Squid offers a rich access control, authorization and logging environment to \
-develop web proxy and content serving applications. \
-Squid offers a rich set of traffic optimization options, most of which are \
-enabled by default for simpler installation and high performance. \
-"
-HOMEPAGE = "http://www.squid-cache.org"
-SECTION = "web"
-LICENSE = "GPLv2+"
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}"
-MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${PV}.tar.bz2 \
- file://Set-up-for-cross-compilation.patch \
- file://Skip-AC_RUN_IFELSE-tests.patch \
- file://Fix-flawed-dynamic-ldb-link-test-in-configure.patch \
- file://squid-use-serial-tests-config-needed-by-ptest.patch \
- file://run-ptest \
- file://volatiles.03_squid \
- file://set_sysroot_patch.patch \
- file://squid-don-t-do-squid-conf-tests-at-build-time.patch \
- file://0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch \
- file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
- file://gcc7-fixes.patch \
- file://0001-tools.cc-fixed-unused-result-warning.patch \
- "
-
-SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch"
-
-SRC_URI[md5sum] = "dc1830cd361e077814aa39bcc3691d8b"
-SRC_URI[sha256sum] = "41d8845863dcd026c856508cd1599d417c8947ffd96e86e24085f9893cb8b8c2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \
- file://errors/COPYRIGHT;md5=8861130fae91400bcf99b66f133172b3 \
- "
-DEPENDS = "libtool krb5 openldap db cyrus-sasl openssl expat libxml2"
-
-inherit autotools pkgconfig useradd ptest perlnative
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('TARGET_ARCH', 'powerpc', 'noatomics', '', d)} \
- ${@bb.utils.contains('TARGET_ARCH', 'mips', 'noatomics', '', d)} \
- ${@bb.utils.contains('TARGET_ARCH', 'mipsel', 'noatomics', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
- "
-PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack"
-PACKAGECONFIG[noatomics] = "squid_cv_gnu_atomics=no,squid_cv_gnu_atomics=yes,,"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-BASIC_AUTH = "DB SASL LDAP"
-
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-BASIC_AUTH += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'PAM', '', d)}"
-
-EXTRA_OECONF += "--with-default-user=squid --enable-auth-basic='${BASIC_AUTH}' \
- --sysconfdir=${sysconfdir}/${BPN} \
- --with-logdir=${localstatedir}/log/${BPN} \
- 'PERL=${USRBINPATH}/env perl'"
-
-export BUILDCXXFLAGS="${BUILD_CXXFLAGS}"
-
-TESTDIR = "test-suite"
-
-do_configure_prepend() {
- export SYSROOT=$PKG_CONFIG_SYSROOT_DIR
-}
-
-do_compile_ptest() {
- oe_runmake -C ${TESTDIR} buildtest-TESTS
-}
-
-do_install_ptest() {
- cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
- cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
-
- # do NOT need to rebuild Makefile itself
- sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-
- # Add squid-conf-tests for runtime tests
- sed -e 's/^\(runtest-TESTS:\)/\1 squid-conf-tests/' \
- -e "s/\(list=' \$(TESTS)\)/\1 squid-conf-tests/" \
- -i ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-
- # Ensure the path for command true is correct
- sed -i 's:^TRUE = .*$:TRUE = /bin/true:' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-}
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d ${localstatedir}/run/${BPN} 0755 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- echo "d ${localstatedir}/log/${BPN} 0750 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- fi
-
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/03_squid
-
- rmdir "${D}${localstatedir}/run/${BPN}"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run"
-
- rmdir "${D}${localstatedir}/log/${BPN}"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/log"
-}
-
-FILES_${PN} += "${libdir} ${datadir}/errors ${datadir}/icons"
-FILES_${PN}-dbg += "/usr/src/debug"
-FILES_${PN}-doc += "${datadir}/*.txt"
-
-RDEPENDS_${PN} += "perl"
-RDEPENDS_${PN}-ptest += "make"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb
new file mode 100644
index 0000000..1557c4b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb
@@ -0,0 +1,115 @@
+SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux"
+DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \
+Squid offers a rich access control, authorization and logging environment to \
+develop web proxy and content serving applications. \
+Squid offers a rich set of traffic optimization options, most of which are \
+enabled by default for simpler installation and high performance. \
+"
+HOMEPAGE = "http://www.squid-cache.org"
+SECTION = "web"
+LICENSE = "GPLv2+"
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}"
+MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${PV}.tar.bz2 \
+ file://Set-up-for-cross-compilation.patch \
+ file://Skip-AC_RUN_IFELSE-tests.patch \
+ file://Fix-flawed-dynamic-ldb-link-test-in-configure.patch \
+ file://squid-use-serial-tests-config-needed-by-ptest.patch \
+ file://run-ptest \
+ file://volatiles.03_squid \
+ file://set_sysroot_patch.patch \
+ file://squid-don-t-do-squid-conf-tests-at-build-time.patch \
+ file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
+ file://0001-tools.cc-fixed-unused-result-warning.patch \
+ file://0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch \
+ file://0002-smblib-fix-buffer-over-read.patch \
+ "
+
+SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch"
+
+SRC_URI[md5sum] = "c17a3ed3a40cd59c23f48b8539dafcd8"
+SRC_URI[sha256sum] = "467da134eaf0f7962ba5881793d106772fb05fefa4aea7d9569eec0412c52433"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \
+ file://errors/COPYRIGHT;md5=8861130fae91400bcf99b66f133172b3 \
+ "
+DEPENDS = "libtool krb5 openldap db cyrus-sasl openssl expat libxml2"
+
+inherit autotools pkgconfig useradd ptest perlnative
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('TARGET_ARCH', 'powerpc', 'noatomics', '', d)} \
+ ${@bb.utils.contains('TARGET_ARCH', 'mips', 'noatomics', '', d)} \
+ ${@bb.utils.contains('TARGET_ARCH', 'mipsel', 'noatomics', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+ "
+PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack"
+PACKAGECONFIG[noatomics] = "squid_cv_gnu_atomics=no,squid_cv_gnu_atomics=yes,,"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[werror] = "--enable-strict-error-checking,--disable-strict-error-checking,"
+
+BASIC_AUTH = "DB SASL LDAP"
+
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+BASIC_AUTH += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'PAM', '', d)}"
+
+EXTRA_OECONF += "--with-default-user=squid --enable-auth-basic='${BASIC_AUTH}' \
+ --sysconfdir=${sysconfdir}/${BPN} \
+ --with-logdir=${localstatedir}/log/${BPN} \
+ 'PERL=${USRBINPATH}/env perl'"
+
+export BUILDCXXFLAGS="${BUILD_CXXFLAGS}"
+
+TESTDIR = "test-suite"
+
+do_configure_prepend() {
+ export SYSROOT=$PKG_CONFIG_SYSROOT_DIR
+}
+
+do_compile_ptest() {
+ oe_runmake -C ${TESTDIR} buildtest-TESTS
+}
+
+do_install_ptest() {
+ cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
+ cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
+
+ # do NOT need to rebuild Makefile itself
+ sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # Add squid-conf-tests for runtime tests
+ sed -e 's/^\(runtest-TESTS:\)/\1 squid-conf-tests/' \
+ -e "s/\(list=' \$(TESTS)\)/\1 squid-conf-tests/" \
+ -i ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # Ensure the path for command true is correct
+ sed -i 's:^TRUE = .*$:TRUE = /bin/true:' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+}
+
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d ${localstatedir}/run/${BPN} 0755 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
+ echo "d ${localstatedir}/log/${BPN} 0750 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
+ fi
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/03_squid
+
+ rmdir "${D}${localstatedir}/run/${BPN}"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run"
+
+ rmdir "${D}${localstatedir}/log/${BPN}"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/log"
+}
+
+FILES_${PN} += "${libdir} ${datadir}/errors ${datadir}/icons"
+FILES_${PN}-dbg += "/usr/src/debug"
+FILES_${PN}-doc += "${datadir}/*.txt"
+
+RDEPENDS_${PN} += "perl"
+RDEPENDS_${PN}-ptest += "make"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb b/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb
index d7b1dfa..a51a8c3 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb
@@ -16,6 +16,8 @@
SRC_URI[md5sum] = "510d98ba0f231284a5fbe2da11cb2d6e"
SRC_URI[sha256sum] = "a990378f273f10eb431e42954a871aed52714035bbab28c54cef600c458356bb"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/aoetools/files/vblade/"
+
inherit autotools-brokensep update-rc.d systemd
do_install() {
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
index 7a20356..2e3e0e8 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
@@ -24,6 +24,9 @@
file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \
"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/v/vsftpd/"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar"
+
LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \
file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \
file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb"
@@ -44,7 +47,7 @@
CONFFILES_${PN} = "${sysconfdir}/vsftpd.conf"
LDFLAGS_append =" -lcrypt -lcap"
-
+CFLAGS_append_libc-musl = " -D_GNU_SOURCE -include fcntl.h"
EXTRA_OEMAKE = "-e MAKEFLAGS="
do_configure() {
diff --git a/meta-openembedded/meta-networking/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
index 5774e62..54e0b99 100644
--- a/meta-openembedded/meta-networking/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
@@ -1,34 +1,36 @@
-From cc6dbabea0e452ebc93682df860a79ed9a45722e Mon Sep 17 00:00:00 2001
+From 6d606f1101c1a172fb6d738d6f1865aa61849e68 Mon Sep 17 00:00:00 2001
From: Alexey Firago <alexey_firago@mentor.com>
Date: Fri, 20 Oct 2017 00:04:19 +0300
Subject: [PATCH] CMakeLists.txt: Fix grpc_cpp_plugin path during
- cross-compilation
+ cross-compiling or native build
Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+Signed-off-by: Hiram Lew <lew@avast.com>
+Signed-off-by: Jan Kaisrlik <jan.kaisrlik@avast.com>
---
CMakeLists.txt | 9 ++++++++-
templates/CMakeLists.txt.template | 9 ++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f9cd630..9663934 100644
+index a59fd81..cd90424 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -328,6 +328,13 @@ function(protobuf_generate_grpc_cpp)
+@@ -160,6 +160,13 @@ function(protobuf_generate_grpc_cpp)
return()
endif()
-
-+ #if cross-compiling, find host plugin
+
++ #if cross-compiling or nativesdk, find host plugin
+ if(CMAKE_CROSSCOMPILING)
+ find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
+ else()
+ set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
+ endif()
+
- set(_protobuf_include_path -I . -I ${PROTOBUF_WELLKNOWN_IMPORT_DIR})
+ set(_protobuf_include_path -I . -I ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR})
foreach(FIL ${ARGN})
get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
-@@ -345,7 +352,7 @@ function(protobuf_generate_grpc_cpp)
+@@ -177,7 +184,7 @@ function(protobuf_generate_grpc_cpp)
COMMAND ${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}
ARGS --grpc_out=generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}
--cpp_out=${_gRPC_PROTO_GENS_DIR}
@@ -38,24 +40,24 @@
${REL_FIL}
DEPENDS ${ABS_FIL} ${_gRPC_PROTOBUF_PROTOC} grpc_cpp_plugin
diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template
-index 64daf04..a7e8629 100644
+index de13d02..b22bd5c 100644
--- a/templates/CMakeLists.txt.template
+++ b/templates/CMakeLists.txt.template
-@@ -373,6 +373,13 @@
+@@ -209,6 +209,13 @@
return()
endif()
-
-+ #if cross-compiling, find host plugin
+
++ #if cross-compiling or nativesdk, find host plugin
+ if(CMAKE_CROSSCOMPILING)
+ find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
+ else()
+ set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
+ endif()
+
- set(_protobuf_include_path -I . -I <%text>${PROTOBUF_WELLKNOWN_IMPORT_DIR}</%text>)
+ set(_protobuf_include_path -I . -I <%text>${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}</%text>)
foreach(FIL <%text>${ARGN}</%text>)
get_filename_component(ABS_FIL <%text>${FIL}</%text> ABSOLUTE)
-@@ -390,7 +397,7 @@
+@@ -226,7 +233,7 @@
COMMAND <%text>${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}</%text>
ARGS --grpc_out=<%text>generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}</%text>
--cpp_out=<%text>${_gRPC_PROTO_GENS_DIR}</%text>
@@ -64,5 +66,6 @@
<%text>${_protobuf_include_path}</%text>
<%text>${REL_FIL}</%text>
DEPENDS <%text>${ABS_FIL}</%text> <%text>${_gRPC_PROTOBUF_PROTOC}</%text> grpc_cpp_plugin
---
+--
2.7.4
+
diff --git a/meta-openembedded/meta-networking/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
index f8d9652..459dc45 100644
--- a/meta-openembedded/meta-networking/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
@@ -1,7 +1,7 @@
-From 8e9bf962a45a82f1c2eb5858e29fa89a3a60b564 Mon Sep 17 00:00:00 2001
+From 2279e30be5796e9b185545543ea54fe68633cbdd Mon Sep 17 00:00:00 2001
From: Alexey Firago <alexey_firago@mentor.com>
Date: Mon, 30 Oct 2017 23:24:49 +0300
-Subject: [PATCH 1/4] CMakeLists.txt: Fix libraries installation for Linux
+Subject: [PATCH] CMakeLists.txt: Fix libraries installation for Linux
* Set libs versions as in Makefile
@@ -9,21 +9,19 @@
%% original patch: 0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
---
- CMakeLists.txt | 55 +++++++++++++++++++++++++++++++++++
- CMakeLists.txt => CMakeLists.txt.orig | 0
- 2 files changed, 55 insertions(+)
- copy CMakeLists.txt => CMakeLists.txt.orig (100%)
+ CMakeLists.txt | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 59 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b1a49df..13e64ac 100644
+index a59fd818e3..5066f44a32 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,6 +30,15 @@ set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}")
set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
project(${PACKAGE_NAME} C CXX)
-+set (CORE_VERSION_MAJOR "4")
-+set (CORE_VERSION "4.0.0")
++set (CORE_VERSION_MAJOR "6")
++set (CORE_VERSION "6.0.0")
+
+set (CPP_VERSION_MAJOR "1")
+set (CPP_VERSION "${PACKAGE_VERSION}")
@@ -31,10 +29,21 @@
+set (CSHARP_VERSION_MAJOR "1")
+set (CSHARP_VERSION "${PACKAGE_VERSION}")
+
- set(gRPC_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
- set(gRPC_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
- set(gRPC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
-@@ -841,6 +850,10 @@ if(WIN32 AND MSVC)
+ set(gRPC_INSTALL_BINDIR "bin" CACHE STRING "Installation directory for executables")
+ set(gRPC_INSTALL_LIBDIR "lib" CACHE STRING "Installation directory for libraries")
+ set(gRPC_INSTALL_INCLUDEDIR "include" CACHE STRING "Installation directory for headers")
+@@ -702,6 +711,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET address_sorting PROPERTY VERSION ${CORE_VERSION})
++ set_property(TARGET address_sorting PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+
+ target_include_directories(address_sorting
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -825,6 +838,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -45,7 +54,7 @@
target_include_directories(gpr
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -1221,6 +1234,10 @@ if(WIN32 AND MSVC)
+@@ -1259,6 +1276,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -56,7 +65,7 @@
target_include_directories(grpc
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -1535,6 +1552,10 @@ if(WIN32 AND MSVC)
+@@ -1633,6 +1654,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -67,7 +76,7 @@
target_include_directories(grpc_cronet
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -2377,6 +2398,10 @@ if(WIN32 AND MSVC)
+@@ -2575,6 +2600,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -78,7 +87,7 @@
target_include_directories(grpc_unsecure
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -2592,6 +2617,10 @@ if(WIN32 AND MSVC)
+@@ -2791,6 +2820,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -89,7 +98,7 @@
target_include_directories(grpc++
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -3078,6 +3107,10 @@ if(WIN32 AND MSVC)
+@@ -3357,6 +3390,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -100,7 +109,7 @@
target_include_directories(grpc++_cronet
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -3282,6 +3315,11 @@ protobuf_generate_grpc_cpp(
+@@ -3630,6 +3667,11 @@ protobuf_generate_grpc_cpp(
src/proto/grpc/status/status.proto
)
@@ -112,7 +121,7 @@
target_include_directories(grpc++_error_details
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
-@@ -3408,6 +3446,11 @@ protobuf_generate_grpc_cpp(
+@@ -3762,6 +3804,11 @@ protobuf_generate_grpc_cpp(
src/proto/grpc/reflection/v1alpha/reflection.proto
)
@@ -124,7 +133,7 @@
target_include_directories(grpc++_reflection
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
-@@ -3827,6 +3870,10 @@ if(WIN32 AND MSVC)
+@@ -4265,6 +4312,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -135,7 +144,7 @@
target_include_directories(grpc++_unsecure
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -4140,6 +4187,10 @@ if(WIN32 AND MSVC)
+@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -146,7 +155,7 @@
target_include_directories(grpc_plugin_support
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC)
+@@ -5184,6 +5239,10 @@ if(WIN32 AND MSVC)
endif()
endif()
@@ -157,10 +166,6 @@
target_include_directories(grpc_csharp_ext
PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-diff --git a/CMakeLists.txt b/CMakeLists.txt.orig
-similarity index 100%
-copy from CMakeLists.txt
-copy to CMakeLists.txt.orig
--
-2.16.1
+2.17.1
diff --git a/meta-openembedded/meta-networking/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
deleted file mode 100644
index 8985022..0000000
--- a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a498b56ba96948015f0f2784b2ab8296946716ee Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 1 Feb 2018 23:28:17 -0800
-Subject: [PATCH 4/4] CMakeLists.txt: Find c-ares in target sysroot alone
-
-Current code lets it look into native sysroot as well
-which is then preferred during cross compile and it adds
-absolute path to libcares into linker flags
-on heterogenous architectures linker complains and build
-fails
-
-| /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/grpc/1.8.5-r0/recipe-sysroot-native/usr/lib/lib
-cares.so.2.2.0: file not recognized: File format not recognized
-| collect2: error: ld returned 1 exit status
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1d7eef1..058423d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -153,10 +153,8 @@ if("${gRPC_CARES_PROVIDER}" STREQUAL "module")
- set(gRPC_INSTALL FALSE)
- endif()
- elseif("${gRPC_CARES_PROVIDER}" STREQUAL "package")
-- find_package(c-ares REQUIRED CONFIG)
-- if(TARGET c-ares::cares)
-- set(_gRPC_CARES_LIBRARIES c-ares::cares)
-- endif()
-+ find_package(c-ares REQUIRED)
-+ set(_gRPC_CARES_LIBRARIES cares)
- set(_gRPC_FIND_CARES "if(NOT c-ares_FOUND)\n find_package(c-ares CONFIG)\nendif()")
- endif()
-
---
-2.16.1
-
diff --git a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb
new file mode 100644
index 0000000..d236714
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
+Provides gRPC libraries for multiple languages written on top of shared C core library \
+(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
+HOMEPAGE = "https://github.com/grpc/grpc"
+SECTION = "libs"
+LICENSE = "Apache-2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl"
+DEPENDS_append_class-target = " gtest grpc-native "
+DEPENDS_append_class-nativesdk = " grpc-native "
+
+S = "${WORKDIR}/git"
+SRCREV = "d8020cb6daa87f1a3bb3b0c299bc081c4a3de1e8"
+BRANCH = "v1.14.x"
+SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;branch=${BRANCH} \
+ file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \
+ "
+SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch"
+SRC_URI_append_class-nativesdk = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch"
+
+# Fixes build with older compilers 4.8 especially on ubuntu 14.04
+CXXFLAGS_append_class-native = " -Wl,--no-as-needed"
+
+inherit cmake
+
+EXTRA_OECMAKE = " \
+ -DgRPC_CARES_PROVIDER=package \
+ -DgRPC_ZLIB_PROVIDER=package \
+ -DgRPC_SSL_PROVIDER=package \
+ -DgRPC_PROTOBUF_PROVIDER=package \
+ -DgRPC_GFLAGS_PROVIDER=package \
+ -DgRPC_INSTALL=ON \
+ -DCMAKE_CROSSCOMPILING=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
+
+SYSROOT_DIRS_BLACKLIST_append_class-target = "${libdir}/cmake/grpc"
+
+FILES_${PN}-dev += "${bindir}"
diff --git a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
deleted file mode 100644
index 0883ec1..0000000
--- a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
-Provides gRPC libraries for multiple languages written on top of shared C core library \
-(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
-HOMEPAGE = "https://github.com/grpc/grpc"
-SECTION = "libs"
-LICENSE = "Apache-2"
-
-DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl"
-DEPENDS_append_class-target = " gtest grpc-native "
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = "https://github.com/grpc/grpc/archive/v${PV}.tar.gz \
- file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \
- file://0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch \
- "
-SRC_URI[md5sum] = "b565fa6787e42f4969395870c2ad436e"
-SRC_URI[sha256sum] = "df9168da760fd2ee970c74c9d1b63377e0024be248deaa844e784d0df47599de"
-
-SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch"
-
-inherit cmake
-
-EXTRA_OECMAKE = " \
- -DgRPC_CARES_PROVIDER=package \
- -DgRPC_ZLIB_PROVIDER=package \
- -DgRPC_SSL_PROVIDER=package \
- -DgRPC_PROTOBUF_PROVIDER=package \
- -DgRPC_GFLAGS_PROVIDER=package \
- -DgRPC_INSTALL=1 \
- -DBUILD_SHARED_LIBS=ON \
- "
-
-FILES_${PN}-dev += "${libdir}/cmake"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb b/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb
deleted file mode 100644
index 3dbc8b1..0000000
--- a/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Copyright (C) 2012 Wind River Systems, Inc.
-#
-SUMMARY = "Provides a wrapper in Python to LDAP"
-DESCRIPTION = "This module provides access to the LDAP \
-(Lightweight Directory Access Protocol) through Python operations \
-instead of C API. The module mainly acts as a wrapper for the \
-OpenLDAP 2.x libraries. Errors will appear as exceptions."
-
-LICENSE = "PSF"
-HOMEPAGE = "http://www.python-ldap.org/"
-DEPENDS = "python openldap cyrus-sasl"
-
-PYPI_PACKAGE = "python-ldap"
-inherit pypi setuptools
-
-LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555"
-SRC_URI[md5sum] = "18db2d009150ec1864710fea3ed76173"
-SRC_URI[sha256sum] = "6d430ecf040f2fc704ee316d3390cb1f5419c191371e1e131baef54a0e42cef0"
-
-do_configure_prepend() {
- sed -i -e 's:^library_dirs =.*::' setup.cfg
- sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' setup.cfg
-}
-
-RDEPENDS_${PN} = " \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-threading \
-"
diff --git a/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.45.bb b/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.45.bb
new file mode 100644
index 0000000..dde8a52
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.45.bb
@@ -0,0 +1,29 @@
+#
+# Copyright (C) 2012 Wind River Systems, Inc.
+#
+SUMMARY = "Provides a wrapper in Python to LDAP"
+DESCRIPTION = "This module provides access to the LDAP \
+(Lightweight Directory Access Protocol) through Python operations \
+instead of C API. The module mainly acts as a wrapper for the \
+OpenLDAP 2.x libraries. Errors will appear as exceptions."
+
+LICENSE = "PSF"
+HOMEPAGE = "http://www.python-ldap.org/"
+DEPENDS = "python openldap cyrus-sasl"
+
+PYPI_PACKAGE = "python-ldap"
+inherit pypi setuptools
+
+LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b"
+SRC_URI[md5sum] = "6108e189a44eea8bc7d1cc281c222978"
+SRC_URI[sha256sum] = "824fde180a53772e23edc031c4dd64ac1af4a3eade78f00d9d510937d562f64e"
+
+do_configure_prepend() {
+ sed -i -e 's:^library_dirs =.*::' setup.cfg
+ sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' setup.cfg
+}
+
+RDEPENDS_${PN} = " \
+ ${PYTHON_PN}-pprint \
+ ${PYTHON_PN}-threading \
+"
diff --git a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/corosync.conf b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/corosync.conf
new file mode 100644
index 0000000..6aef9de
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/corosync.conf
@@ -0,0 +1,58 @@
+# Starting point for cluster with pacemaker/openais
+compatibility: none
+
+corosync {
+ user: root
+ group: root
+}
+
+aisexec {
+ with Pacemaker
+ user: root
+ group: root
+}
+
+service {
+ name: pacemaker
+ ver: 1
+}
+
+totem {
+ version: 2
+ secauth: off
+ threads: 0
+ interface {
+ ringnumber: 0
+ # Cluster network address
+ bindnetaddr: 192.168.10.0
+ # Should be fine in most cases, don't forget to allow
+ # packets for this address/port in netfilter if there
+ # is restrictive policy set for cluster network
+ mcastaddr: 226.94.1.1
+ mcastport: 5405
+ }
+}
+
+logging {
+ fileline: off
+ to_stderr: no
+ to_logfile: yes
+ to_syslog: yes
+ logfile: /var/log/cluster/corosync.log
+ debug: off
+ timestamp: on
+ logger_subsys {
+ subsys: AMF
+ debug: off
+ }
+}
+
+amf {
+ mode: disabled
+}
+
+quorum {
+ # Quorum for the Pacemaker Cluster Resource Manager
+ provider: corosync_votequorum
+ expected_votes: 1
+}
diff --git a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb
deleted file mode 100644
index 9673fa3..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces"
-DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \
-APIs and libraries, default configuration files, and an init script."
-HOMEPAGE = "http://corosync.github.io/corosync/"
-
-SECTION = "base"
-
-inherit autotools pkgconfig systemd useradd
-
-SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "bf0ede13018aadc8a046183bc593b0e0"
-SRC_URI[sha256sum] = "b1e7e422e8d2f7af8e5315fa329b1dbd1175fff32efaa55e8054584c80a2c597"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
-
-DEPENDS = "groff-native nss libqb"
-
-SYSTEMD_SERVICE_${PN} = "corosync.service corosync-notifyd.service \
- ${@bb.utils.contains('PACKAGECONFIG', 'qdevice', 'corosync-qdevice.service', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'corosync-qnetd.service', '', d)} \
-"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-INITSCRIPT_NAME = "corosync-daemon"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
- dbus qdevice qnetd snmp \
-"
-
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
-PACKAGECONFIG[qdevice] = "--enable-qdevices,--disable-qdevices"
-PACKAGECONFIG[qnetd] = "--enable-qnetd,--disable-qnetd"
-PACKAGECONFIG[rdma] = "--enable-rdma,--disable-rdma"
-PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
-PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_system_unitdir},--disable-systemd --without-systemddir,systemd"
-
-EXTRA_OECONF = "ac_cv_path_BASHPATH=${base_bindir}/bash ap_cv_cc_pie=no"
-EXTRA_OEMAKE = "tmpfilesdir_DATA="
-
-do_configure_prepend() {
- ( cd ${S}
- ${S}/autogen.sh )
-}
-
-do_install_append() {
- install -d ${D}${sysconfdir}/sysconfig/
- install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
- install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
-
- rm -rf "${D}${localstatedir}/run"
-
- install -d ${D}${sysconfdir}/default/volatiles
- echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync
-
- if [ ${@bb.utils.filter('PACKAGECONFIG', 'qnetd', d)} ]; then
- chown -R coroqnetd:coroqnetd ${D}${sysconfdir}/${BPN}/qnetd
- echo "d coroqnetd coroqnetd 0770 /var/run/corosync-qnetd none" >> ${D}${sysconfdir}/default/volatiles/05_corosync
- fi
-
- if [ ${@bb.utils.filter('DISTRO_FEATURES','systemd',d)} ]; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
-
- if [ ${@bb.utils.filter('PACKAGECONFIG', 'qnetd', d)} ]; then
- install -m 0644 ${S}/conf/tmpfiles.d/corosync-qnetd.conf ${D}${sysconfdir}/tmpfiles.d
- fi
- fi
-}
-
-RDEPENDS_${PN} += "bash ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}"
-
-FILES_${PN}-dbg += "${libexecdir}/lcrso/.debug"
-FILES_${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system coroqnetd"
-USERADD_PARAM_${PN} = "--system -d / -M -s /bin/nologin -c 'User for corosync-qnetd' -g coroqnetd coroqnetd"
diff --git a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb
new file mode 100644
index 0000000..23a3d14
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb
@@ -0,0 +1,80 @@
+SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces"
+DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \
+APIs and libraries, default configuration files, and an init script."
+HOMEPAGE = "http://corosync.github.io/corosync/"
+
+SECTION = "base"
+
+inherit autotools pkgconfig systemd useradd
+
+SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz \
+ file://corosync.conf \
+ "
+
+SRC_URI[md5sum] = "69db29ff4bc035936946be44fc8be5cd"
+SRC_URI[sha256sum] = "9bd4707bb271df16f8d543ec782eb4c35ec0330b7be696b797da4bd8f058a25d"
+
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.(?!99)\d+(\.\d+)+)"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
+
+DEPENDS = "groff-native nss libqb"
+
+SYSTEMD_SERVICE_${PN} = "corosync.service corosync-notifyd.service \
+ ${@bb.utils.contains('PACKAGECONFIG', 'qdevice', 'corosync-qdevice.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'corosync-qnetd.service', '', d)} \
+"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+INITSCRIPT_NAME = "corosync-daemon"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ dbus qdevice qnetd snmp \
+"
+
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
+PACKAGECONFIG[qdevice] = "--enable-qdevices,--disable-qdevices"
+PACKAGECONFIG[qnetd] = "--enable-qnetd,--disable-qnetd"
+PACKAGECONFIG[rdma] = "--enable-rdma,--disable-rdma"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_system_unitdir},--disable-systemd --without-systemddir,systemd"
+
+EXTRA_OECONF = "ac_cv_path_BASHPATH=${base_bindir}/bash ap_cv_cc_pie=no"
+EXTRA_OEMAKE = "tmpfilesdir_DATA="
+
+do_configure_prepend() {
+ ( cd ${S}
+ ${S}/autogen.sh )
+}
+
+do_install_append() {
+ install -D -m 0644 ${WORKDIR}/corosync.conf ${D}/${sysconfdir}/corosync/corosync.conf.example
+ install -d ${D}${sysconfdir}/sysconfig/
+ install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
+ install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
+
+ rm -rf "${D}${localstatedir}/run"
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync
+
+ if [ ${@bb.utils.filter('PACKAGECONFIG', 'qnetd', d)} ]; then
+ chown -R coroqnetd:coroqnetd ${D}${sysconfdir}/${BPN}/qnetd
+ echo "d coroqnetd coroqnetd 0770 /var/run/corosync-qnetd none" >> ${D}${sysconfdir}/default/volatiles/05_corosync
+ fi
+
+ if [ ${@bb.utils.filter('DISTRO_FEATURES','systemd',d)} ]; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
+ fi
+}
+
+RDEPENDS_${PN} += "bash ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}"
+
+FILES_${PN}-dbg += "${libexecdir}/lcrso/.debug"
+FILES_${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system coroqnetd"
+USERADD_PARAM_${PN} = "--system -d / -M -s /bin/nologin -c 'User for corosync-qnetd' -g coroqnetd coroqnetd"
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch
new file mode 100644
index 0000000..6f9a0a4
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch
@@ -0,0 +1,41 @@
+From a55ab8a07770296bf6a622df14f2f0445be16327 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 19 Aug 2018 15:58:49 -0700
+Subject: [PATCH] Include sys/sysmacros.h for major/minor macros in glibc 2.25+
+
+sys/sysmacros.h was included though sys/types.h until 2.28
+glibc release removed it therefore it must be included
+explicitly now.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/action.c | 2 ++
+ libdlm/libdlm.c | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/dlm_controld/action.c b/dlm_controld/action.c
+index 84637f1..2b8ad6c 100644
+--- a/dlm_controld/action.c
++++ b/dlm_controld/action.c
+@@ -8,6 +8,8 @@
+
+ #include "dlm_daemon.h"
+
++#include <sys/sysmacros.h>
++
+ #include <corosync/corotypes.h>
+ #include <corosync/cmap.h>
+
+diff --git a/libdlm/libdlm.c b/libdlm/libdlm.c
+index a9e6195..499eb6a 100644
+--- a/libdlm/libdlm.c
++++ b/libdlm/libdlm.c
+@@ -14,6 +14,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/param.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <inttypes.h>
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch
new file mode 100644
index 0000000..0a2f31d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch
@@ -0,0 +1,36 @@
+From 9107f3bd68aef6ae456a3cad664223b4f3d00131 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 17:04:39 +0800
+Subject: [PATCH] dlm: fix compile error since xml2-config should not be used
+
+xml2-config is disabled, so change Makefile to use pkgconfig
+to find libxml2.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ fence/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/fence/Makefile b/fence/Makefile
+index 77bf0fd..cca0b2c 100644
+--- a/fence/Makefile
++++ b/fence/Makefile
+@@ -30,11 +30,11 @@ BIN_CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ -fdiagnostics-show-option \
+
+ BIN_CFLAGS += -fPIE -DPIE
+-BIN_CFLAGS += `xml2-config --cflags`
++BIN_CFLAGS += `pkg-config libxml-2.0 --cflags`
+ BIN_CFLAGS += -I../include
+
+ BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
+-BIN_LDFLAGS += `xml2-config --libs`
++BIN_LDFLAGS += `pkg-config libxml-2.0 --libs`
+ BIN_LDFLAGS += -ldl
+
+ all: $(BIN_TARGET)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-package-qa-error.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-package-qa-error.patch
new file mode 100644
index 0000000..3e384f7
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-package-qa-error.patch
@@ -0,0 +1,32 @@
+From 1fb68433bde97d571fc781b52c9521b17fbb8df0 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 17:42:43 +0800
+Subject: [PATCH] dlm: fix package qa error
+
+pass LDFLAG to makefile to fix below error:
+do_package_qa: QA Issue: No GNU_HASH in the elf binary:
+/packages-split/dlm/usr/sbin/dlm_stonith' [ldflags]
+
+Upstream-Status: Inappropriate[oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ fence/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fence/Makefile b/fence/Makefile
+index cca0b2c..2b3963c 100644
+--- a/fence/Makefile
++++ b/fence/Makefile
+@@ -33,7 +33,7 @@ BIN_CFLAGS += -fPIE -DPIE
+ BIN_CFLAGS += `pkg-config libxml-2.0 --cflags`
+ BIN_CFLAGS += -I../include
+
+-BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
++BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie
+ BIN_LDFLAGS += `pkg-config libxml-2.0 --libs`
+ BIN_LDFLAGS += -ldl
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
index 69b2f90..6f01b21 100644
--- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
@@ -1,7 +1,23 @@
-diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile
---- dlm-4.0.2.orig/dlm_controld/Makefile 2017-04-04 10:49:23.661320260 +0200
-+++ dlm-4.0.2/dlm_controld/Makefile 2017-04-04 10:50:36.121326429 +0200
-@@ -55,7 +55,7 @@
+From 34a9182814ae565d6f430f85cfe80c05fa9f2dda Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 17:55:32 +0800
+Subject: [PATCH] respect-ldflags-also-from-bin_ldflags
+
+Upstream-Status: Inappropriate[oe-specific]
+
+update original patch to version 4.0.7
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ dlm_controld/Makefile | 4 ++--
+ dlm_tool/Makefile | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/dlm_controld/Makefile b/dlm_controld/Makefile
+index cf556c9..3381730 100644
+--- a/dlm_controld/Makefile
++++ b/dlm_controld/Makefile
+@@ -55,11 +55,11 @@ BIN_CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
BIN_CFLAGS += -fPIE -DPIE
BIN_CFLAGS += -I../include -I../libdlm
@@ -10,10 +26,16 @@
BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum
LIB_CFLAGS += $(BIN_CFLAGS)
-diff -uNr dlm-4.0.2.orig/dlm_tool/Makefile dlm-4.0.2/dlm_tool/Makefile
---- dlm-4.0.2.orig/dlm_tool/Makefile 2013-07-31 17:50:26.000000000 +0200
-+++ dlm-4.0.2/dlm_tool/Makefile 2017-04-04 10:50:44.617327153 +0200
-@@ -32,7 +32,7 @@
+-LIB_LDFLAGS += -Wl,-z,relro -pie
++LIB_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -pie
+
+ ifeq ($(USE_SD_NOTIFY),yes)
+ BIN_CFLAGS += $(shell pkg-config --cflags libsystemd) \
+diff --git a/dlm_tool/Makefile b/dlm_tool/Makefile
+index c16d8f5..a48a26f 100644
+--- a/dlm_tool/Makefile
++++ b/dlm_tool/Makefile
+@@ -32,7 +32,7 @@ BIN_CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
BIN_CFLAGS += -fPIE -DPIE
BIN_CFLAGS += -I../include -I../libdlm -I../dlm_controld
@@ -22,15 +44,6 @@
BIN_LDFLAGS += -L../libdlm -L../dlm_controld
BIN_LDFLAGS += -lpthread -ldlm -ldlmcontrol
-diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile
---- dlm-4.0.2.orig/dlm_controld/Makefile 2017-04-04 11:02:58.578389641 +0200
-+++ dlm-4.0.2/dlm_controld/Makefile 2017-04-04 11:07:55.672414935 +0200
-@@ -59,7 +59,7 @@
- BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum
-
- LIB_CFLAGS += $(BIN_CFLAGS)
--LIB_LDFLAGS += -Wl,-z,relro -pie
-+LIB_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -pie
-
- ifeq ($(USE_SD_NOTIFY),yes)
- BIN_CFLAGS += $(shell pkg-config --cflags libsystemd-daemon) \
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb
deleted file mode 100644
index 31e411e..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-DESCRIPTION = "dlm control daemon and tool"
-
-SECTION = "utils"
-HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
-
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-SRC_URI = "https://git.fedorahosted.org/cgit/dlm.git/snapshot/${BP}.tar.xz \
- file://respect-ldflags-also-from-bin_ldflags.patch \
-"
-
-SRC_URI[md5sum] = "efc2ee6093aa6aa0a88aaad83e998a3f"
-SRC_URI[sha256sum] = "b89bc557aaffbab0ac005398025f247718a5589cff6574d902eaffe2b20e683e"
-
-LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
-
-DEPENDS = "corosync systemd"
-
-inherit pkgconfig systemd distro_features_check
-
-SYSTEMD_SERVICE_${PN} = "dlm.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-export EXTRA_OEMAKE = ""
-
-do_compile_prepend() {
- sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
-}
-
-do_compile () {
- oe_runmake 'CC=${CC}'
-}
-
-do_install_append (){
- install -d ${D}${sysconfdir}/sysconfig/
- install -d ${D}${sysconfdir}/init.d/
- install -m 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
- install -m 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm
-
- # install systemd unit files
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system
- fi
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
-}
-
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.7.bb b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.7.bb
new file mode 100644
index 0000000..027864a
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.7.bb
@@ -0,0 +1,64 @@
+DESCRIPTION = "dlm control daemon and tool"
+
+SECTION = "utils"
+HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SRC_URI = "https://releases.pagure.org/dlm/${BP}.tar.gz \
+ file://respect-ldflags-also-from-bin_ldflags.patch \
+ file://0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch \
+ file://0001-dlm-fix-package-qa-error.patch \
+ file://0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch \
+ "
+
+SRC_URI[md5sum] = "aa604a10d5ac2d3414eb89ec6984cd12"
+SRC_URI[sha256sum] = "639ddfc82369272a68d56816689736c00b8f1b6b2869a6b66b7dbf6dad86469a"
+
+UPSTREAM_CHECK_URI = "https://pagure.io/dlm/releases"
+UPSTREAM_CHECK_REGEX = "dlm-(?P<pver>\d+(\.\d+)+)"
+
+LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
+
+DEPENDS = "corosync systemd"
+
+inherit pkgconfig systemd distro_features_check
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[pacemaker] = ",,pacemaker"
+
+SYSTEMD_SERVICE_${PN} = "dlm.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+export EXTRA_OEMAKE = ""
+
+DONTBUILD = "${@bb.utils.contains('PACKAGECONFIG', 'pacemaker', '', 'fence', d)}"
+
+do_compile_prepend() {
+ sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
+ sed -i -e "s/ ${DONTBUILD}//g" ${S}/Makefile
+}
+
+do_compile () {
+ oe_runmake 'CC=${CC}'
+}
+
+do_install_append (){
+ install -d ${D}${sysconfdir}/sysconfig/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
+ install -m 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm
+
+ # install systemd unit files
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system
+ fi
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
+}
+
diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch
deleted file mode 100644
index 4426d35..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From cbc5f8151017f45231b75a826f18354a81c287c4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 07:52:59 -0700
-Subject: [PATCH] kernel/event: netlink_ack() now requires 4 arguments
-
-see https://patchwork.kernel.org/patch/9670181/
-
-event.c:32:4: error: too few arguments to function 'netlink_ack'
-| netlink_ack(skb, nlh, 0);
-| ^~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- kernel/event.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: iscsitarget-1.4.20.3+svn502/kernel/event.c
-===================================================================
---- iscsitarget-1.4.20.3+svn502.orig/kernel/event.c
-+++ iscsitarget-1.4.20.3+svn502/kernel/event.c
-@@ -6,6 +6,7 @@
- * Some functions are based on audit code.
- */
-
-+#include <linux/version.h>
- #include <linux/module.h>
- #include <net/tcp.h>
- #include "iet_u.h"
-@@ -29,7 +30,11 @@ static void event_recv_skb(struct sk_buf
- ietd_pid = NETLINK_CB(skb).portid;
- WARN_ON(ietd_pid == 0);
- if (nlh->nlmsg_flags & NLM_F_ACK)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
-+ netlink_ack(skb, nlh, 0, NULL);
-+#else
- netlink_ack(skb, nlh, 0);
-+#endif
- skb_pull(skb, rlen);
- }
- }
diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch
deleted file mode 100644
index 4444234..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-The element skc_v6_daddr (in struct sock_common) is defined in
-kernel source only when CONFIG_IPV6 is enabled. Hence, access
-sk_v6_daddr element (i.e __sk_common.skc_v6_daddr) only when CONFIG_IPV6
-is defined; to fix below error in world build:
-
--- snip --
-/home/jenkins/oe/world/shr-core/tmp-glibc/work-shared/qemux86/kernel-source/include/net/sock.h:330:33: error: 'struct sock_common' has no member named 'skc_v6_daddr'
--- CUT --
-
-Upstream-Status: Pending
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2015-12-29 21:57:50.547932217 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2015-12-29 22:47:25.254657627 -0800
-@@ -46,10 +46,12 @@ void conn_info_show(struct seq_file *seq
- snprintf(buf, sizeof(buf),
- "%pI4", &inet_sk(sk)->inet_daddr);
- break;
-+#if defined(CONFIG_IPV6)
- case AF_INET6:
- snprintf(buf, sizeof(buf), "[%pI6]",
- &(sk)->sk_v6_daddr);
- break;
-+#endif /* defined(CONFIG_IPV6) */
- default:
- break;
- }
diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch
deleted file mode 100644
index bce38ba..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Description: Fix source to compile with 4.3+ kernels
- commit 4246a0b63bd8f56a1469b12eafeb875b1041a451
- block: add a bi_error field to struct bio
- -> Removes BIO_UPTODATE and error argument to bio_endio.
- commit b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c
- block: remove bio_get_nr_vecs()
- -> Removed that call (always use BIO_MAX_PAGES)
- commit 676d23690fb62b5d51ba5d659935e9f7d9da9f8e
- net: Fix use after free by removing length arg from sk_data_ready callbacks.
- -> Removes len argument from sk_data_ready() callback.
-Author: Stefan Bader <stefan.bader@canonical.com>
-
-The original patch is at http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz,
-those changes were taken using #ifs to allow compilation of iscsitarget
-package with kernel versions < 4.3.
-
-Upstream-Status: Submitted [http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 00:46:28.263951115 -0800
-@@ -29,14 +29,23 @@ struct tio_work {
- struct completion tio_complete;
- };
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+static void blockio_bio_endio(struct bio *bio)
-+#else
- static void blockio_bio_endio(struct bio *bio, int error)
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- {
- struct tio_work *tio_work = bio->bi_private;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ if (bio->bi_error)
-+ atomic_set(&tio_work->error, bio->bi_error);
-+#else
- error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO;
-
- if (error)
- atomic_set(&tio_work->error, error);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
-
- /* If last bio signal completion */
- if (atomic_dec_and_test(&tio_work->bios_remaining))
-@@ -61,14 +70,20 @@ blockio_make_request(struct iet_volume *
- u32 size = tio->size;
- u32 tio_index = 0;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ int max_pages = bdev_q ? BIO_MAX_PAGES : 1;
-+#else
- int max_pages = 1;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- int err = 0;
-
- loff_t ppos = tio->offset;
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
- /* Calculate max_pages for bio_alloc (memory saver) */
- if (bdev_q)
- max_pages = bio_get_nr_vecs(bio_data->bdev);
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) */
-
- tio_work = kzalloc(sizeof (*tio_work), GFP_KERNEL);
- if (!tio_work)
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 00:39:09.737117778 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 00:52:30.037223901 -0800
-@@ -89,13 +89,21 @@ static void iet_state_change(struct sock
- target->nthread_info.old_state_change(sk);
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+static void iet_data_ready(struct sock *sk)
-+#else
- static void iet_data_ready(struct sock *sk, int len)
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- {
- struct iscsi_conn *conn = sk->sk_user_data;
- struct iscsi_target *target = conn->session->target;
-
- nthread_wakeup(target);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ target->nthread_info.old_data_ready(sk);
-+#else
- target->nthread_info.old_data_ready(sk, len);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- }
-
- /*
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h
---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 00:48:02.102837260 -0800
-@@ -81,7 +81,11 @@ struct network_thread_info {
- spinlock_t nthread_lock;
-
- void (*old_state_change)(struct sock *);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ void (*old_data_ready)(struct sock *);
-+#else
- void (*old_data_ready)(struct sock *, int);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- void (*old_write_space)(struct sock *);
- };
-
diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch
deleted file mode 100644
index e508a5e..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch
+++ /dev/null
@@ -1,475 +0,0 @@
-Resolve build error with linux kernel 4.8
-
-The below changes in kernel source, triggered iscsitarget
-build fail with linux kernel v4.8.
-
-1. An extra 'flags' argument has been passed to vfs_readv/vfs_writev
- syscalls in v4.8. So, set this argument to "0" for now
- (as there is no real need for that).
- Ref: https://github.com/torvalds/linux/commit/793b80ef14af56d20c998265287648ad34239b6f
- Solves:
- -- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c: In function 'write_data':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:350:9: error: too few arguments to function 'vfs_writev'
- res = vfs_writev(file, (struct iovec __user *) iop, count, &off);
- ^~~~~~~~~~
- -- snip --
-
-2. Redefine dropped PAGE_CACHE_* and page_cache_{get,release} definitions,
- as they have been dropped with v4.8
- Ref: https://github.com/torvalds/linux/commit/1fa64f198b9f8d6ec0f7aec7c18dc94684391140
- Solves:
- -- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c: In function 'sess_param_check':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c:48:41: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function)
- (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE));
- ^
- -- snip --
-
-3. Replace crypto_hash interfaces with crypto_ahash interfaces,
- Ref: https://github.com/torvalds/linux/commit/896545098777564212b9e91af4c973f094649aa7
- Ref: https://www.redhat.com/archives/dm-devel/2016-January/msg00244.html
- Solves:
- -- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_init':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:42:23: error: implicit declaration of function 'crypto_alloc_hash' [-Werror=implicit-function-declaration]
- conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0,
- ^~~~~~~~~~~~~~~~~
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_cleanup':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:77:3: error: implicit declaration of function 'crypto_free_hash' [-Werror=implicit-function-declaration]
- crypto_free_hash(conn->tx_hash.tfm);
- ^~~~~~~~~~~~~~~~
- -- snip --
-
-4. The earlier "rw" parameter has been set in "bi_rw" within
- bio structure, hence remove "rw" argument.
- Ref: https://github.com/torvalds/linux/commit/4e49ea4a3d276365bf7396c9b77b4d1d5923835a
- Solves:
--- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/block-io.c:140:14: warning: passing argument 1 of 'submit_bio' makes pointer from integer without a cast [-Wint-conversion]
- submit_bio(rw, bio);
- ^~
--- snip --
-
-5. The 'len' argument from sk_data_ready() callback has been removed in
- linux kernel v4.3 and above.
- Ref: https://github.com/torvalds/linux/commit/676d23690fb62b5d51ba5d659935e9f7d9da9f8e
- Solves:
--- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c: In function 'iet_socket_bind':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:143:38: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
- target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready;
- ^
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:144:32: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
- conn->sock->sk->sk_data_ready = iet_data_ready;
- ^
--- snip --
-
-6.
- A. The "size" argument has been dropped from sock_recvmsg syscall in v4.8,
- as all callers have it equal to msg_data_left(msg).
- B. 'struct user_msghdr' is being used for userland-side msghdr instead
- of 'struct msghdr', which is used for kernel-side msghdr in linux v3.19
- and above, so typecase it while calling sock_recvmsg syscall.
- Ref: https://github.com/torvalds/linux/commit/2da62906b1e298695e1bb725927041cd59942c98
- https://github.com/torvalds/linux/commit/666547ff591cebdedc4679bf6b1b3f3383a8dea3
- Solves:
- -- snip --
-TOPDIR/tmp-glibc/work-shared/qemux86/kernel-source/include/linux/net.h:222:5: note: expected 'struct msghdr *' but argument is of type 'struct user_msghdr *'
- int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags);
- ^~~~~~~~~~~~
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:129:8: error: too many arguments to function 'sock_recvmsg'
- res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL);
- ^~~~~~~~~~~~
- -- snip --
-
-Detailed error log is at: http://errors.yoctoproject.org/Errors/Details/83334/
-
-Upstream-Status: Pending
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2017-01-19 20:19:27.400507354 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 20:32:22.977988593 -0800
-@@ -104,7 +104,11 @@ blockio_make_request(struct iet_volume *
- /* bi_sector is ALWAYS in units of 512 bytes */
- bio->bi_iter.bi_sector = ppos >> 9;
- bio->bi_bdev = bio_data->bdev;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ bio->bi_end_io = (bio_end_io_t *) blockio_bio_endio;
-+#else
- bio->bi_end_io = blockio_bio_endio;
-+#endif
- bio->bi_private = tio_work;
-
- if (tio_bio)
-@@ -139,7 +143,12 @@ blockio_make_request(struct iet_volume *
- tio_bio = tio_bio->bi_next;
- bio->bi_next = NULL;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
-+ submit_bio(bio);
-+#else
- submit_bio(rw, bio);
-+#endif
- }
-
- blk_finish_plug(&plug);
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 20:19:27.400507354 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 20:32:22.978988614 -0800
-@@ -148,8 +148,14 @@ static void iet_socket_bind(struct iscsi
- target->nthread_info.old_state_change = conn->sock->sk->sk_state_change;
- conn->sock->sk->sk_state_change = iet_state_change;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ target->nthread_info.old_data_ready = (void (*) (struct sock *)) \
-+ conn->sock->sk->sk_data_ready;
-+ conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) iet_data_ready;
-+#else
- target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready;
- conn->sock->sk->sk_data_ready = iet_data_ready;
-+#endif
-
- target->nthread_info.old_write_space = conn->sock->sk->sk_write_space;
- conn->sock->sk->sk_write_space = iet_write_space;
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/digest.c iscsitarget-1.4.20.3+svn502/kernel/digest.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/digest.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/digest.c 2017-01-19 20:32:22.978988614 -0800
-@@ -30,6 +30,9 @@ void digest_alg_available(unsigned int *
- int digest_init(struct iscsi_conn *conn)
- {
- int err = 0;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ struct crypto_ahash *tfm;
-+#endif
-
- if (!(conn->hdigest_type & DIGEST_ALL))
- conn->hdigest_type = DIGEST_NONE;
-@@ -39,15 +42,40 @@ int digest_init(struct iscsi_conn *conn)
-
- if (conn->hdigest_type & DIGEST_CRC32C ||
- conn->ddigest_type & DIGEST_CRC32C) {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ tfm = crypto_alloc_ahash("crc32c", 0, CRYPTO_ALG_ASYNC);
-+ if (IS_ERR(tfm)) {
-+ tfm = NULL;
-+#else
- conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0,
- CRYPTO_ALG_ASYNC);
- conn->rx_hash.flags = 0;
- if (IS_ERR(conn->rx_hash.tfm)) {
- conn->rx_hash.tfm = NULL;
-+#endif
- err = -ENOMEM;
- goto out;
- }
--
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ conn->rx_hash = ahash_request_alloc(tfm, GFP_KERNEL);
-+ if (!conn->rx_hash) {
-+ pr_err("ahash_request_alloc() failed for conn->rx_hash\n");
-+ crypto_free_ahash(tfm);
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+ ahash_request_set_callback(conn->rx_hash, 0, NULL, NULL);
-+ conn->tx_hash = ahash_request_alloc(tfm, GFP_KERNEL);
-+ if(!conn->tx_hash) {
-+ pr_err("ahash_request_alloc() failed for conn->tx_hash\n");
-+ ahash_request_free(conn->rx_hash);
-+ conn->rx_hash = NULL;
-+ crypto_free_ahash(tfm);
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+ ahash_request_set_callback(conn->tx_hash, 0, NULL, NULL);
-+#else
- conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0,
- CRYPTO_ALG_ASYNC);
- conn->tx_hash.flags = 0;
-@@ -56,6 +84,7 @@ int digest_init(struct iscsi_conn *conn)
- err = -ENOMEM;
- goto out;
- }
-+#endif
- }
-
- out:
-@@ -73,10 +102,21 @@ out:
- */
- void digest_cleanup(struct iscsi_conn *conn)
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ ahash_request_free(conn->tx_hash);
-+ if (conn->rx_hash) {
-+ struct crypto_ahash *tfm;
-+ tfm = crypto_ahash_reqtfm(conn->rx_hash);
-+ ahash_request_free(conn->rx_hash);
-+ crypto_free_ahash(tfm);
-+ }
-+
-+#else
- if (conn->tx_hash.tfm)
- crypto_free_hash(conn->tx_hash.tfm);
- if (conn->rx_hash.tfm)
- crypto_free_hash(conn->rx_hash.tfm);
-+#endif
- }
-
- /**
-@@ -160,8 +200,13 @@ static inline void __dbg_simulate_data_d
- }
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+static void digest_header(struct ahash_request *hash, struct iscsi_pdu *pdu,
-+ u8 *crc)
-+#else
- static void digest_header(struct hash_desc *hash, struct iscsi_pdu *pdu,
- u8 *crc)
-+#endif
- {
- struct scatterlist sg[2];
- unsigned int nbytes = sizeof(struct iscsi_hdr);
-@@ -174,16 +219,27 @@ static void digest_header(struct hash_de
- nbytes += pdu->ahssize;
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ crypto_ahash_init(hash);
-+ ahash_request_set_crypt(hash, sg, crc, nbytes);
-+ crypto_ahash_update(hash);
-+ crypto_ahash_digest(hash);
-+#else
- crypto_hash_init(hash);
- crypto_hash_update(hash, sg, nbytes);
- crypto_hash_final(hash, crc);
-+#endif
- }
-
- int digest_rx_header(struct iscsi_cmnd *cmnd)
- {
- u32 crc;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ digest_header(cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc);
-+#else
- digest_header(&cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc);
-+#endif
- if (crc != cmnd->hdigest)
- return -EIO;
-
-@@ -192,11 +248,20 @@ int digest_rx_header(struct iscsi_cmnd *
-
- void digest_tx_header(struct iscsi_cmnd *cmnd)
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ digest_header(cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest);
-+#else
- digest_header(&cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest);
-+#endif
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+static void digest_data(struct ahash_request *hash, struct iscsi_cmnd *cmnd,
-+ struct tio *tio, u32 offset, u8 *crc)
-+#else
- static void digest_data(struct hash_desc *hash, struct iscsi_cmnd *cmnd,
- struct tio *tio, u32 offset, u8 *crc)
-+#endif
- {
- struct scatterlist *sg = cmnd->conn->hash_sg;
- u32 size, length, npages;
-@@ -214,7 +279,11 @@ static void digest_data(struct hash_desc
- BUG_ON(npages > ISCSI_CONN_IOV_MAX);
-
- sg_init_table(sg, ARRAY_SIZE(cmnd->conn->hash_sg));
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ crypto_ahash_init(hash);
-+#else
- crypto_hash_init(hash);
-+#endif
-
- for (i = 0; size > 0; i++) {
- length = min_t(u32, PAGE_CACHE_SIZE - offset, size);
-@@ -225,8 +294,14 @@ static void digest_data(struct hash_desc
-
- sg_mark_end(&sg[i - 1]);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ ahash_request_set_crypt(hash, sg, crc, nbytes);
-+ crypto_ahash_update(hash);
-+ crypto_ahash_digest(hash);
-+#else
- crypto_hash_update(hash, sg, nbytes);
- crypto_hash_final(hash, crc);
-+#endif
- }
-
- int digest_rx_data(struct iscsi_cmnd *cmnd)
-@@ -251,8 +326,11 @@ int digest_rx_data(struct iscsi_cmnd *cm
- tio = cmnd->tio;
- offset = 0;
- }
--
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ digest_data(cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc);
-+#else
- digest_data(&cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc);
-+#endif
-
- if (!cmnd->conn->read_overflow &&
- (cmnd_opcode(cmnd) != ISCSI_OP_PDU_REJECT)) {
-@@ -269,6 +347,11 @@ void digest_tx_data(struct iscsi_cmnd *c
- struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *)&cmnd->pdu.bhs;
-
- assert(tio);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ digest_data(cmnd->conn->tx_hash, cmnd, tio,
-+ be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest);
-+#else
- digest_data(&cmnd->conn->tx_hash, cmnd, tio,
- be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest);
-+#endif
- }
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h
---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2017-01-19 20:19:27.400507354 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 20:32:22.979988634 -0800
-@@ -14,6 +14,7 @@
- #include <linux/pagemap.h>
- #include <linux/seq_file.h>
- #include <linux/mm.h>
-+#include <crypto/hash.h>
- #include <linux/crypto.h>
- #include <linux/scatterlist.h>
- #include <net/sock.h>
-@@ -275,8 +276,13 @@ struct iscsi_conn {
- u32 write_offset;
- int write_state;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ struct ahash_request *rx_hash;
-+ struct ahash_request *tx_hash;
-+#else
- struct hash_desc rx_hash;
- struct hash_desc tx_hash;
-+#endif
- struct scatterlist hash_sg[ISCSI_CONN_IOV_MAX];
- };
-
-@@ -552,4 +558,10 @@ enum cmnd_flags {
- #define PRODUCT_ID "VIRTUAL-DISK"
- #define PRODUCT_REV "0"
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+#define PAGE_CACHE_SHIFT PAGE_SHIFT
-+#define PAGE_CACHE_SIZE PAGE_SIZE
-+#define PAGE_CACHE_MASK PAGE_MASK
-+#endif
-+
- #endif /* __ISCSI_H__ */
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2017-01-19 20:19:27.276504928 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-19 20:32:22.979988634 -0800
-@@ -155,7 +155,12 @@ static int do_recv(struct iscsi_conn *co
-
- oldfs = get_fs();
- set_fs(get_ds());
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ res = sock_recvmsg(conn->sock, (struct msghdr *) &msg, \
-+ MSG_DONTWAIT | MSG_NOSIGNAL);
-+#else
- res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL);
-+#endif
- set_fs(oldfs);
-
- if (res <= 0) {
-@@ -376,7 +381,11 @@ static int write_data(struct iscsi_conn
- ;
- oldfs = get_fs();
- set_fs(KERNEL_DS);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ res = vfs_writev(file, (struct iovec __user *) iop, count, &off, 0);
-+#else
- res = vfs_writev(file, (struct iovec __user *) iop, count, &off);
-+#endif
- set_fs(oldfs);
- dprintk(D_DATA, "%#Lx:%u: %d(%ld)\n",
- (unsigned long long) conn->session->sid, conn->cid,
-@@ -503,7 +512,11 @@ static int tx_ddigest(struct iscsi_cmnd
- iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest);
- iov.iov_len = rest;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ res = kernel_sendmsg(cmnd->conn->sock, (struct msghdr *) &msg, &iov, 1, rest);
-+#else
- res = kernel_sendmsg(cmnd->conn->sock, &msg, &iov, 1, rest);
-+#endif
-
- if (res > 0) {
- cmnd->conn->write_size -= res;
-@@ -702,7 +715,12 @@ static void close_conn(struct iscsi_conn
-
- write_lock_bh(&conn->sock->sk->sk_callback_lock);
- conn->sock->sk->sk_state_change = target->nthread_info.old_state_change;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) \
-+ target->nthread_info.old_data_ready;
-+#else
- conn->sock->sk->sk_data_ready = target->nthread_info.old_data_ready;
-+#endif
- conn->sock->sk->sk_write_space = target->nthread_info.old_write_space;
- write_unlock_bh(&conn->sock->sk->sk_callback_lock);
-
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2017-01-19 20:19:27.276504928 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-19 20:32:22.979988634 -0800
-@@ -84,12 +84,25 @@ static int set_scsisn(struct iet_volume
- /* Generate a MD5 hash of the target IQN and LUN number */
- static void gen_scsiid(struct iet_volume *volume)
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ struct ahash_request *hash;
-+ struct crypto_ahash *tfm;
-+#else
- struct hash_desc hash;
-+#endif
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC);
-+#else
- hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC);
- hash.flags = 0;
-+#endif
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ if (!IS_ERR(tfm)) {
-+#else
- if (!IS_ERR(hash.tfm)) {
-+#endif
- struct scatterlist sg[2];
- unsigned int nbytes = 0;
-
-@@ -102,11 +115,19 @@ static void gen_scsiid(struct iet_volume
- sg_set_buf(&sg[1], &volume->lun, sizeof(volume->lun));
- nbytes += sizeof(volume->lun);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ crypto_ahash_init(hash);
-+ ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes);
-+ crypto_ahash_update(hash);
-+ crypto_ahash_digest(hash);
-+ crypto_free_ahash(tfm);
-+#else
- crypto_hash_init(&hash);
- crypto_hash_update(&hash, sg, nbytes);
- crypto_hash_final(&hash, volume->scsi_id);
-
- crypto_free_hash(hash.tfm);
-+#endif
- } else {
- /* If no MD5 available set ID to TID and LUN */
- memcpy(volume->scsi_id, &volume->target->tid,
diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch
deleted file mode 100644
index c996834..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-The previous build_with_updated_interfaces_of_linux_v4.8_and_above.patch
-does not alloc struct ahash_request before using it. This will cause the
-kernel call trace below when calling gen_scsiid on kernel 4.8 or later
-version.
-
-This patch normalizes the calling of ahash API according to the example
-in kernel doc Documentation/crypto/api-intro.txt.
-
-BUG: unable to handle kernel NULL pointer dereference at 0000000000000020
-IP: [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt]
-PGD dd77067 PUD dd7c067 PMD 0
-Oops: 0000 [#1] PREEMPT SMP
-Modules linked in: iscsi_trgt(O)
-CPU: 0 PID: 350 Comm: ietd Tainted: G O 4.8.12-yocto-standard #1
-Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014
-task: ffff88000dfe2c00 task.stack: ffff88000de88000
-RIP: 0010:[<ffffffffa0008d45>] [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt]
-RSP: 0018:ffff88000de8bd90 EFLAGS: 00000206
-RAX: 000000000000ddfa RBX: ffff88000ddd1d78 RCX: ffffea0000000000
-RDX: 0000000000000600 RSI: 0000000000000000 RDI: ffff88000ddd1c14
-RBP: ffff88000de8be38 R08: ffff88000de44180 R09: ffff88000de8bdd0
-R10: 000000000000002c R11: 0000000000000000 R12: ffff88000ddfa600
-R13: 0000000000000000 R14: 0000000000000000 R15: ffff88000de92200
-FS: 00007f767548b700(0000) GS:ffff88000fc00000(0000) knlGS:0000000000000000
-CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-CR2: 0000000000000020 CR3: 000000000dd2d000 CR4: 00000000000006f0
-Stack:
- ffff88000de8bdd0 ffff88000dc1b3d0 ffff88000ddfa650 ffff88000ddfa660
- ffff88000df8f000 ffff88000ddd1c00 ffff88000de44180 0000000000000000
- ffffea0000377440 0000000f00000c14 0000000000000000 0000000000000000
-Call Trace:
- [<ffffffffa0006547>] ioctl+0x217/0x390 [iscsi_trgt]
- [<ffffffff81192574>] do_vfs_ioctl+0x94/0x5c0
- [<ffffffff8117ff73>] ? vfs_read+0xf3/0x120
- [<ffffffff81192b19>] SyS_ioctl+0x79/0x90
- [<ffffffff8191a45b>] entry_SYSCALL_64_fastpath+0x13/0x8f
-Code: 4c 01 e0 0f 82 a2 01 00 00 48 b9 00 00 00 80 ff 77 00 00 48 01
-c8 45 31 f6 48 b9 00 00 00 00 00 ea ff ff 89 54 24 68 48 c1 e8 0c <49>
-8b 56 20 4c 89 44 24 20 4c 89 f7 48 c1 e0 06 c7 44 24 6c 04
-RIP [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt]
- RSP <ffff88000de8bd90>
-CR2: 0000000000000020
-end trace cd2016297df21635 ]
-ietd_response_recv 200 0 -5
-Input/output error.
-
-Upstream-Status: Pending [This patch is based on the previous one which
-has not been merged upstream.]
-
-Signed-off-by: Zhe He <zhe.he@windriver.com>
-
---- iscsitarget-1.4.20.3+svn502_orig/kernel/volume.c 2017-01-18 08:57:56.752187402 +0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 09:02:44.164195234 +0800
-@@ -93,13 +93,14 @@ static void gen_scsiid(struct iet_volume
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
- tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC);
-+ hash = ahash_request_alloc(tfm, GFP_ATOMIC);
- #else
- hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC);
- hash.flags = 0;
- #endif
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-- if (!IS_ERR(tfm)) {
-+ if (tfm && !IS_ERR(tfm)) {
- #else
- if (!IS_ERR(hash.tfm)) {
- #endif
-@@ -116,10 +117,13 @@ static void gen_scsiid(struct iet_volume
- nbytes += sizeof(volume->lun);
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-- crypto_ahash_init(hash);
-+ ahash_request_set_callback(hash, 0, NULL, NULL);
- ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes);
-- crypto_ahash_update(hash);
- crypto_ahash_digest(hash);
-+ crypto_ahash_init(hash);
-+ crypto_ahash_update(hash);
-+ crypto_ahash_final(hash);
-+ ahash_request_free(hash);
- crypto_free_ahash(tfm);
- #else
- crypto_hash_init(&hash);
diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch
deleted file mode 100644
index 1e6a1d6..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch
+++ /dev/null
@@ -1,327 +0,0 @@
-Description: Fix source to compile on 3.19 kernels
-Author: Stefan Bader <stefan.bader@canonical.com>
-Forward: no
-
-Fixes below inconsistent crash when trying to login to iSCSI target
-server, observed with linux kernel v4.1.
-
--- snip --
-CPU: 1 PID: 29883 Comm: istd1 Tainted: G O 4.1.35-rt40-yocto-standard #1
-Hardware name: To be filled by O.E.M. To be filled by O.E.M./Larne CRB, BIOS 4.6.5.4 09/18/2014
-task: ffff88020f1f30c0 ti: ffff8800d7f3c000 task.ti: ffff8800d7f3c000
-RIP: 0010:[<ffffffff8140d1ae>] [<ffffffff8140d1ae>] copy_to_iter+0x3e/0x280
-RSP: 0018:ffff8800d7f3f728 EFLAGS: 00010246
-RAX: 00000000d7f3f928 RBX: 0000000000000030 RCX: 0000000000000030
-RDX: ffff8800d7f3f900 RSI: 0000000000000030 RDI: ffff8800d1501e82
-RBP: ffff8800d7f3f768 R08: 00000000c127d467 R09: 0000000000000000
-R10: ffff88020f29e118 R11: 0000000000000004 R12: ffff8800d7f3f900
-R13: 0000000000000030 R14: 0000000000000001 R15: 0000000000000246
-FS: 00007f86f9c4c700(0000) GS:ffff88021ec80000(0000) knlGS:00000000f7733700
-CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-CR2: 000000000000024e CR3: 00000000d38b0000 CR4: 00000000000406e0
-Stack:
-ffff880214f14ec0 ffff8800d1501e82 ffff8800d7f3f748 0000000000000030
-ffff88020f122500 0000000000000030 0000000000000000 0000000000000030
-ffff8800d7f3f7c8 ffffffff81806981 ffff8800d7f3f798 ffffffff8105d72a
-Call Trace:
-[<ffffffff81806981>] skb_copy_datagram_iter+0x71/0x2b0
-[<ffffffff8105d72a>] ? __local_bh_enable_ip+0x4a/0xb0
-[<ffffffff8186c9c0>] tcp_recvmsg+0x5e0/0xbb0
-[<ffffffff81898ded>] inet_recvmsg+0x8d/0xb0
-[<ffffffff817f49f3>] sock_recvmsg+0x13/0x20
-[<ffffffffa01655c3>] do_recv+0xe3/0x1f0 [iscsi_trgt]
-[<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0
-[<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20
-[<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0
-[<ffffffff8140fed5>] ? find_next_bit+0x15/0x30
-[<ffffffff813fa8e0>] ? cpumask_next_and+0x30/0x50
-[<ffffffff8113f785>] ? __alloc_pages_nodemask+0x165/0x980
-[<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0
-[<ffffffff8195da8b>] ? _raw_spin_lock+0x1b/0x60
-[<ffffffff8109cfa8>] ? cpuacct_charge+0x58/0x70
-[<ffffffff81089039>] ? update_curr+0xb9/0x190
-[<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20
-[<ffffffff8112b43f>] ? __perf_event_task_sched_in+0x4f/0x90
-[<ffffffff8195dbbd>] ? _raw_spin_unlock_irq+0x1d/0x40
-[<ffffffff8107e223>] ? finish_task_switch+0x63/0xe0
-[<ffffffff81959e3b>] ? __schedule+0x38b/0x980
-[<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0
-[<ffffffffa0165c65>] istd+0x4d5/0x1390 [iscsi_trgt]
-[<ffffffff81959e3b>] ? __schedule+0x38b/0x980
-[<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt]
-[<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt]
-[<ffffffff8107748b>] kthread+0xbb/0xe0
-[<ffffffff81950000>] ? wireless_dev_seq_show+0x100/0x180
-[<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170
-[<ffffffff8195e7a2>] ret_from_fork+0x42/0x70
-[<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170
-Code: 5a 10 48 89 7d c8 48 39 f3 48 0f 47 de 48 85 db 0f 84 6f 01 00 00 8b 02 49 89
-d4 4c 8b 72 08 4c 8b 7a 18 a8 04 0f 85 a2 00 00 00 <4d> 8b 6f 08 4d 29 f5 49 39 dd 4c 0f 47 eb a8 02 0f 85 5c 01 00
-RSP <ffff8800d7f3f728>
-CR2: 000000000000024e
-------------[ cut here ]------------
--- snip --
-
-The original patch is at
-http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz,
-those changes were taken using #ifs, inorder to allow compilation of
-iscsitarget package with linux kernels < 3.19.
-
-Upstream-Status: Submitted [http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-18 22:27:02.713167436 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-18 23:13:11.909214379 -0800
-@@ -129,7 +129,11 @@ static void iet_socket_bind(struct iscsi
-
- dprintk(D_GENERIC, "%llu\n", (unsigned long long) session->sid);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ conn->sock = SOCKET_I(file_inode(conn->file));
-+#else
- conn->sock = SOCKET_I(conn->file->f_dentry->d_inode);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- conn->sock->sk->sk_user_data = conn;
-
- write_lock_bh(&conn->sock->sk->sk_callback_lock);
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c iscsitarget-1.4.20.3+svn502/kernel/file-io.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/file-io.c 2017-01-18 23:54:38.505717079 -0800
-@@ -69,7 +69,11 @@ static int fileio_make_request(struct ie
- static int fileio_sync(struct iet_volume *lu, struct tio *tio)
- {
- struct fileio_data *p = lu->private;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ struct inode *inode = file_inode(p->filp);
-+#else
- struct inode *inode = p->filp->f_dentry->d_inode;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- struct address_space *mapping = inode->i_mapping;
- loff_t ppos, count;
- int res;
-@@ -213,7 +217,11 @@ static int fileio_attach(struct iet_volu
- eprintk("%d\n", err);
- goto out;
- }
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ inode = file_inode(p->filp);
-+#else
- inode = p->filp->f_dentry->d_inode;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
-
- if (S_ISREG(inode->i_mode))
- ;
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c iscsitarget-1.4.20.3+svn502/kernel/iscsi.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.c 2017-01-18 23:37:36.462970326 -0800
-@@ -489,8 +489,12 @@ static void cmnd_skip_pdu(struct iscsi_c
- }
- conn->read_iov[i].iov_base = addr;
- conn->read_iov[i].iov_len = size;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size);
-+#else
- conn->read_msg.msg_iov = conn->read_iov;
- conn->read_msg.msg_iovlen = ++i;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- }
-
- static void iscsi_cmnd_reject(struct iscsi_cmnd *req, int reason)
-@@ -718,7 +722,9 @@ static int cmnd_recv_pdu(struct iscsi_co
- idx = offset >> PAGE_CACHE_SHIFT;
- offset &= ~PAGE_CACHE_MASK;
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- conn->read_msg.msg_iov = conn->read_iov;
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */
- conn->read_size = size = (size + 3) & -4;
- conn->read_overflow = 0;
-
-@@ -730,16 +736,25 @@ static int cmnd_recv_pdu(struct iscsi_co
- conn->read_iov[i].iov_base = addr + offset;
- if (offset + size <= PAGE_CACHE_SIZE) {
- conn->read_iov[i].iov_len = size;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size);
-+#else
- conn->read_msg.msg_iovlen = ++i;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- break;
- }
- conn->read_iov[i].iov_len = PAGE_CACHE_SIZE - offset;
- size -= conn->read_iov[i].iov_len;
- offset = 0;
- if (++i >= ISCSI_CONN_IOV_MAX) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- conn->read_msg.msg_iovlen = i;
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */
- conn->read_overflow = size;
- conn->read_size -= size;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- break;
- }
-
-@@ -918,7 +933,9 @@ static int nop_out_start(struct iscsi_co
-
- if ((size = cmnd->pdu.datasize)) {
- size = (size + 3) & -4;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- conn->read_msg.msg_iov = conn->read_iov;
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */
- if (cmnd->pdu.bhs.itt != cpu_to_be32(ISCSI_RESERVED_TAG)) {
- struct tio *tio;
- int pg_cnt = get_pgcnt(size);
-@@ -946,7 +963,11 @@ static int nop_out_start(struct iscsi_co
- }
- assert(!size);
- conn->read_overflow = size;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size);
-+#else
- conn->read_msg.msg_iovlen = i;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- }
-
- out:
-@@ -986,7 +1007,11 @@ static void scsi_cmnd_start(struct iscsi
- set_cmnd_lunit(req);
-
- switch (req_hdr->scb[0]) {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ case SERVICE_ACTION_IN_16:
-+#else
- case SERVICE_ACTION_IN:
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- if ((req_hdr->scb[1] & 0x1f) != 0x10)
- goto error;
- case INQUIRY:
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-18 23:45:03.291033881 -0800
-@@ -42,9 +42,14 @@ static inline void iscsi_conn_init_read(
- len = (len + 3) & -4; // XXX ???
- conn->read_iov[0].iov_base = data;
- conn->read_iov[0].iov_len = len;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- conn->read_msg.msg_iov = conn->read_iov;
- conn->read_msg.msg_iovlen = 1;
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */
- conn->read_size = (len + 3) & -4;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, 1, conn->read_size);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- }
-
- static void iscsi_conn_read_ahs(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd)
-@@ -83,14 +88,31 @@ static int is_data_available(struct iscs
-
- static void forward_iov(struct msghdr *msg, int len)
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ struct iovec *iov;
-+
-+ while (msg->msg_iter.iov->iov_len <= len) {
-+ len -= msg->msg_iter.iov->iov_len;
-+ msg->msg_iter.iov++;
-+ msg->msg_iter.nr_segs--;
-+ }
-+#else
- while (msg->msg_iov->iov_len <= len) {
- len -= msg->msg_iov->iov_len;
- msg->msg_iov++;
- msg->msg_iovlen--;
- }
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ /* XXX: discards const ... */
-+ iov = msg->msg_iter.iov;
-+ iov->iov_base = (char *) msg->msg_iter.iov->iov_base + len;
-+ iov->iov_len -= len;
-+#else
- msg->msg_iov->iov_base = (char *) msg->msg_iov->iov_base + len;
- msg->msg_iov->iov_len -= len;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- }
-
- static int do_recv(struct iscsi_conn *conn, int state)
-@@ -98,6 +120,9 @@ static int do_recv(struct iscsi_conn *co
- mm_segment_t oldfs;
- struct msghdr msg;
- struct iovec iov[ISCSI_CONN_IOV_MAX];
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ size_t iovlen = ISCSI_CONN_IOV_MAX;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- int i, len, res;
-
- if (!test_bit(CONN_ACTIVE, &conn->state)) {
-@@ -110,12 +135,23 @@ static int do_recv(struct iscsi_conn *co
- goto out;
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ if (conn->read_msg.msg_iter.nr_segs < iovlen)
-+ iovlen = conn->read_msg.msg_iter.nr_segs;
-+
-+ for (i = 0, len = 0; i < iovlen; i++) {
-+ iov[i] = conn->read_msg.msg_iter.iov[i];
-+ len += iov[i].iov_len;
-+ }
-+ iov_iter_init(&msg.msg_iter, READ, iov, iovlen, len);
-+#else
- msg.msg_iov = iov;
- msg.msg_iovlen = min_t(size_t, conn->read_msg.msg_iovlen, ISCSI_CONN_IOV_MAX);
- for (i = 0, len = 0; i < msg.msg_iovlen; i++) {
- iov[i] = conn->read_msg.msg_iov[i];
- len += iov[i].iov_len;
- }
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
-
- oldfs = get_fs();
- set_fs(get_ds());
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c iscsitarget-1.4.20.3+svn502/kernel/target_disk.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/target_disk.c 2017-01-18 23:45:51.451010417 -0800
-@@ -606,7 +606,11 @@ static int disk_execute_cmnd(struct iscs
- case REQUEST_SENSE:
- send_data_rsp(cmnd, build_request_sense_response);
- break;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ case SERVICE_ACTION_IN_16:
-+#else
- case SERVICE_ACTION_IN:
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- send_data_rsp(cmnd, build_service_action_in_response);
- break;
- case READ_6:
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 23:47:07.957561600 -0800
-@@ -398,7 +398,11 @@ int is_volume_reserved(struct iet_volume
- case READ_CAPACITY:
- /* allowed commands when reserved */
- break;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ case SERVICE_ACTION_IN_16:
-+#else
- case SERVICE_ACTION_IN:
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- if ((scb[1] & 0x1F) == 0x10)
- break;
- /* fall through */
-@@ -465,7 +469,11 @@ int is_volume_reserved(struct iet_volume
- if (excl_access_ro && !registered)
- err = -EBUSY;
- break;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ case SERVICE_ACTION_IN_16:
-+#else
- case SERVICE_ACTION_IN:
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- if ((scb[1] & 0x1F) == 0x10)
- break;
- /* fall through */
diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch
deleted file mode 100644
index 95bd047..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Get linux kernel version from Makefile of kernel source
-
-We get below messages while building iscsitarget,
-
--- snip --
-x86_64-poky-linux-gcc: error:
-/CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work-shared/qemux86-64/kernel-source/include/linux/version.h:
-No such file or directory
-x86_64-poky-linux-gcc: fatal error: no input files
-compilation terminated.
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
--- CUT --
-
-These messages are due to absence of include/linux/version.h file in
-kernel source directory and failed to compute linux kernel version.
-So, use kernel source Makefile ( i.e $(KSRC)/Makefile) to find out
-actual kernel version.
-
-Upstream-Status: Pending
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
---- iscsitarget-1.4.20.3+svn499_org/Makefile 2014-01-27 00:00:45.000000000 +0530
-+++ iscsitarget-1.4.20.3+svn499/Makefile 2015-07-23 10:44:47.013600285 +0530
-@@ -18,27 +18,11 @@ ifeq ($(KSRC),)
- endif
-
-
--ifneq ($(wildcard $(KSRC)/include/generated/utsrelease.h),)
-- VERSION_FILE := $(KSRC)/include/generated/utsrelease.h
--else
-- ifneq ($(wildcard $(KSRC)/include/linux/utsrelease.h),)
-- VERSION_FILE := $(KSRC)/include/linux/utsrelease.h
-- else
-- VERSION_FILE := $(KSRC)/include/linux/version.h
-- endif
--endif
--
--KVER := $(shell $(CC) $(CFLAGS) $(LDFLAGS) -E -dM $(VERSION_FILE) | \
-- grep UTS_RELEASE | awk '{ print $$3 }' | sed 's/\"//g')
--
- KMOD := /lib/modules/$(KVER)/extra
--
--KMAJ := $(shell echo $(KVER) | \
-- sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/')
--KMIN := $(shell echo $(KVER) | \
-- sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/')
--KREV := $(shell echo $(KVER) | \
-- sed -e 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/')
-+KMAJ := $(shell cat $(KSRC)/Makefile | grep ^VERSION | gawk -F " " '{ print $$NF }')
-+KMIN := $(shell cat $(KSRC)/Makefile | grep ^PATCHLEVEL | gawk -F " " '{ print $$NF }')
-+KREV := $(shell cat $(KSRC)/Makefile | grep ^SUBLEVEL | gawk -F " " '{ print $$NF }')
-+KVER := ${KMAJ}.${KMIN}.${KREV}
-
- kver_eq = $(shell [ $(KMAJ) -eq $(1) -a $(KMIN) -eq $(2) -a $(KREV) -eq $(3) ] && \
- echo 1 || echo 0)
diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb
deleted file mode 100644
index 5d13591..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb
+++ /dev/null
@@ -1,64 +0,0 @@
-DESCRIPTION = "iSCSI Enterprise Target is aimed to develop an \
- open source iSCSI target with professional features, \
- that works well in enterprise environment under real \
- workload, and is scalable and versatile enough to meet the \
- challenge of future storage needs and developments."
-HOMEPAGE = "http://iscsitarget.sourceforge.net/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6e233eda45c807aa29aeaa6d94bc48a2"
-DEPENDS = "openssl virtual/kernel"
-
-SRC_URI = "http://ftp.heanet.ie/mirrors/ubuntu/pool/universe/i/${BPN}/${BPN}_${PV}.orig.tar.gz \
- file://use-kernel-makefile-to-get-kernel-version.patch \
- file://fix-errors-observed-with-linux-3.19-and-greater.patch \
- file://access-sk_v6_daddr-iff-IPV6-defined.patch \
- file://build_with_updated_bio_struct_of_linux_v4.3_and_above.patch \
- file://build_with_updated_interfaces_of_linux_v4.8_and_above.patch \
- file://fix-call-trace-of-ahash-API-calling.patch \
- file://0001-kernel-event-netlink_ack-now-requires-4-arguments.patch \
- "
-
-SRC_URI[md5sum] = "ef9bc823bbabd3c772208c00d5f2d089"
-SRC_URI[sha256sum] = "d3196ccb78a43266dce28587bfe30d8ab4db7566d7bce96057dfbb84100babb5"
-
-inherit module
-
-do_configure[noexec] = "1"
-
-# make_scripts requires kernel source directory to create
-# kernel scripts
-do_make_scripts[depends] += "virtual/kernel:do_shared_workdir"
-
-do_compile() {
- oe_runmake KSRC=${STAGING_KERNEL_DIR} LDFLAGS='' V=1 kernel
- oe_runmake KSRC=${STAGING_KERNEL_DIR} usr
-}
-
-do_install() {
- # Module
- install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi
- install -m 0644 kernel/iscsi_trgt.ko \
- ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi/iscsi_trgt.ko
-
- # Userspace utilities
- install -d ${D}${sbindir}
- install -m 0755 usr/ietd ${D}${sbindir}/ietd
- install -m 0755 usr/ietadm ${D}${sbindir}/ietadm
-
- # Config files, init scripts
- mkdir -p ${D}${sysconfdir}/iet
- install -m 0644 etc/ietd.conf ${D}/${sysconfdir}/iet/ietd.conf
- install -m 0644 etc/initiators.allow ${D}${sysconfdir}/iet/initiators.allow
- install -m 0644 etc/targets.allow ${D}${sysconfdir}/iet/targets.allow
- mkdir -p ${D}${sysconfdir}/init.d
- install -m 0755 etc/initd/initd ${D}${sysconfdir}/init.d/iscsi-target
- install -m 0644 etc/initiators.deny ${D}${sysconfdir}/iet/initiators.deny
-}
-
-FILES_${PN} += "${sbindir} \
- ${sysconfdir}"
-
-RDEPENDS_${PN} = "kernel-module-iscsi-trgt"
-RRECOMMENDS_${PN} = "kernel-module-crc32c kernel-module-libcrc32c"
-
-PNBLACKLIST[iscsitarget] = "error: implicit declaration of function 'init_timer'; did you mean 'init_timers'?; 4.15 kernel issues"
diff --git a/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb b/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb
index 8b3490d..46168b0 100644
--- a/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb
@@ -4,11 +4,9 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
DEPENDS = "libnfnetlink libnetfilter-conntrack libnetfilter-cttimeout \
- libnetfilter-cthelper libnetfilter-queue bison-native"
+ libnetfilter-cthelper libnetfilter-queue bison-native libtirpc"
-DEPENDS_append_libc-musl = " libtirpc"
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS_append_libc-musl = " -ltirpc"
+EXTRA_OECONF += "LIBS=-ltirpc CPPFLAGS=-I${STAGING_INCDIR}/tirpc"
SRC_URI = "http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2;name=tar \
file://conntrack-failover \
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
index b9dce69..f05bd61 100644
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
@@ -36,6 +36,15 @@
SRC_URI[md5sum] = "506742a3d44b9925955425a659c1a8d0"
SRC_URI[sha256sum] = "dc6f7b484f207dc712bfca81645f45120cb6aee3380e77a1771e9c34a9a4455d"
+# It is using '-' but not '.' as delimiter for the version in the releases page,
+# which causes the version comparison unmatched.
+#UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ebtables/files/ebtables/"
+#UPSTREAM_CHECK_REGEX = "ebtables-(?P<pver>\d+(\-\d+)+)"
+
+RECIPE_UPSTREAM_VERSION = "2.0.10-4"
+RECIPE_UPSTREAM_DATE = "Dec 15, 2011"
+CHECK_DATE = "May 25, 2018"
+
S = "${WORKDIR}/ebtables-v${PV}"
inherit update-rc.d systemd
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch
deleted file mode 100644
index e82b238..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch
+++ /dev/null
@@ -1,2949 +0,0 @@
-From bd01f785da5222d0662be3182fe2650e1c12f43e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 10 Apr 2017 14:07:07 -0700
-Subject: [PATCH] Declare the define visivility attribute together
-
-clang ignores the visibility attribute if its not
-defined before the definition. As a result these
-symbols become hidden and consumers of this library
-fail to link due to these missing symbols
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doxygen.cfg.in | 2 +-
- include/utils.h | 5 +--
- src/batch.c | 21 ++++-------
- src/chain.c | 102 +++++++++++++++++---------------------------------
- src/common.c | 21 ++++-------
- src/expr.c | 51 +++++++++----------------
- src/gen.c | 39 +++++++------------
- src/object.c | 99 ++++++++++++++++--------------------------------
- src/rule.c | 114 +++++++++++++++++++-------------------------------------
- src/ruleset.c | 48 ++++++++----------------
- src/set.c | 96 ++++++++++++++++-------------------------------
- src/set_elem.c | 72 ++++++++++++-----------------------
- src/table.c | 90 +++++++++++++++-----------------------------
- src/trace.c | 27 +++++---------
- src/udata.c | 48 ++++++++----------------
- 15 files changed, 279 insertions(+), 556 deletions(-)
-
-diff --git a/doxygen.cfg.in b/doxygen.cfg.in
-index 23fcad4..e49f28d 100644
---- a/doxygen.cfg.in
-+++ b/doxygen.cfg.in
-@@ -72,7 +72,7 @@ RECURSIVE = YES
- EXCLUDE =
- EXCLUDE_SYMLINKS = NO
- EXCLUDE_PATTERNS = */.git/* .*.d
--EXCLUDE_SYMBOLS = EXPORT_SYMBOL
-+EXCLUDE_SYMBOLS =
- EXAMPLE_PATH =
- EXAMPLE_PATTERNS =
- EXAMPLE_RECURSIVE = NO
-diff --git a/include/utils.h b/include/utils.h
-index 2f5cf34..ff8207e 100644
---- a/include/utils.h
-+++ b/include/utils.h
-@@ -9,10 +9,9 @@
-
- #include "config.h"
- #ifdef HAVE_VISIBILITY_HIDDEN
--# define __visible __attribute__((visibility("default")))
--# define EXPORT_SYMBOL(x) typeof(x) (x) __visible;
-+# define __EXPORTED __attribute__((visibility("default")))
- #else
--# define EXPORT_SYMBOL
-+# define __EXPORT
- #endif
-
- #define __noreturn __attribute__((__noreturn__))
-diff --git a/src/batch.c b/src/batch.c
-index 5ee3fd7..3bedd26 100644
---- a/src/batch.c
-+++ b/src/batch.c
-@@ -57,7 +57,7 @@ static void nftnl_batch_add_page(struct nftnl_batch_page *page,
- list_add_tail(&page->head, &batch->page_list);
- }
-
--struct nftnl_batch *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size)
-+struct nftnl_batch __EXPORTED *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size)
- {
- struct nftnl_batch *batch;
- struct nftnl_batch_page *page;
-@@ -80,9 +80,8 @@ err1:
- free(batch);
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_batch_alloc);
-
--void nftnl_batch_free(struct nftnl_batch *batch)
-+void __EXPORTED nftnl_batch_free(struct nftnl_batch *batch)
- {
- struct nftnl_batch_page *page, *next;
-
-@@ -94,9 +93,8 @@ void nftnl_batch_free(struct nftnl_batch *batch)
-
- free(batch);
- }
--EXPORT_SYMBOL(nftnl_batch_free);
-
--int nftnl_batch_update(struct nftnl_batch *batch)
-+int __EXPORTED nftnl_batch_update(struct nftnl_batch *batch)
- {
- struct nftnl_batch_page *page;
- struct nlmsghdr *last_nlh;
-@@ -119,21 +117,18 @@ int nftnl_batch_update(struct nftnl_batch *batch)
- err1:
- return -1;
- }
--EXPORT_SYMBOL(nftnl_batch_update);
-
--void *nftnl_batch_buffer(struct nftnl_batch *batch)
-+void __EXPORTED *nftnl_batch_buffer(struct nftnl_batch *batch)
- {
- return mnl_nlmsg_batch_current(batch->current_page->batch);
- }
--EXPORT_SYMBOL(nftnl_batch_buffer);
-
--uint32_t nftnl_batch_buffer_len(struct nftnl_batch *batch)
-+uint32_t __EXPORTED nftnl_batch_buffer_len(struct nftnl_batch *batch)
- {
- return mnl_nlmsg_batch_size(batch->current_page->batch);
- }
--EXPORT_SYMBOL(nftnl_batch_buffer_len);
-
--int nftnl_batch_iovec_len(struct nftnl_batch *batch)
-+int __EXPORTED nftnl_batch_iovec_len(struct nftnl_batch *batch)
- {
- int num_pages = batch->num_pages;
-
-@@ -143,9 +138,8 @@ int nftnl_batch_iovec_len(struct nftnl_batch *batch)
-
- return num_pages;
- }
--EXPORT_SYMBOL(nftnl_batch_iovec_len);
-
--void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov,
-+void __EXPORTED nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov,
- uint32_t iovlen)
- {
- struct nftnl_batch_page *page;
-@@ -160,4 +154,3 @@ void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov,
- i++;
- }
- }
--EXPORT_SYMBOL(nftnl_batch_iovec);
-diff --git a/src/chain.c b/src/chain.c
-index 29860c5..362fa0d 100644
---- a/src/chain.c
-+++ b/src/chain.c
-@@ -87,13 +87,12 @@ static const char *nftnl_hooknum2str(int family, int hooknum)
- return "unknown";
- }
-
--struct nftnl_chain *nftnl_chain_alloc(void)
-+struct nftnl_chain __EXPORTED *nftnl_chain_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_chain));
- }
--EXPORT_SYMBOL(nftnl_chain_alloc);
-
--void nftnl_chain_free(const struct nftnl_chain *c)
-+void __EXPORTED nftnl_chain_free(const struct nftnl_chain *c)
- {
- if (c->flags & (1 << NFTNL_CHAIN_NAME))
- xfree(c->name);
-@@ -105,15 +104,13 @@ void nftnl_chain_free(const struct nftnl_chain *c)
- xfree(c->dev);
- xfree(c);
- }
--EXPORT_SYMBOL(nftnl_chain_free);
-
--bool nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr)
-+bool __EXPORTED nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr)
- {
- return c->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_chain_is_set);
-
--void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
-+void __EXPORTED nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
- {
- if (!(c->flags & (1 << attr)))
- return;
-@@ -147,7 +144,6 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
-
- c->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_chain_unset);
-
- static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = {
- [NFTNL_CHAIN_HOOKNUM] = sizeof(uint32_t),
-@@ -159,7 +155,7 @@ static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = {
- [NFTNL_CHAIN_FAMILY] = sizeof(uint32_t),
- };
-
--int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr,
-+int __EXPORTED nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_CHAIN_MAX);
-@@ -226,45 +222,38 @@ int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr,
- c->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_chain_set_data);
-
--void nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data)
-+void __EXPORTED nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data)
- {
- nftnl_chain_set_data(c, attr, data, nftnl_chain_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_chain_set);
-
--void nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data)
-+void __EXPORTED nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data)
- {
- nftnl_chain_set_data(c, attr, &data, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_chain_set_u32);
-
--void nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data)
-+void __EXPORTED nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data)
- {
- nftnl_chain_set_data(c, attr, &data, sizeof(int32_t));
- }
--EXPORT_SYMBOL(nftnl_chain_set_s32);
-
--void nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data)
-+void __EXPORTED nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data)
- {
- nftnl_chain_set_data(c, attr, &data, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_chain_set_u64);
-
--void nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data)
-+void __EXPORTED nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data)
- {
- nftnl_chain_set_data(c, attr, &data, sizeof(uint8_t));
- }
--EXPORT_SYMBOL(nftnl_chain_set_u8);
-
--int nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str)
- {
- return nftnl_chain_set_data(c, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_chain_set_str);
-
--const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr,
-+const void __EXPORTED *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(c->flags & (1 << attr)))
-@@ -310,22 +299,19 @@ const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_chain_get_data);
-
--const void *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr)
-+const void __EXPORTED *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_chain_get_data(c, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_chain_get);
-
--const char *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr)
-+const char __EXPORTED *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr)
- {
- return nftnl_chain_get(c, attr);
- }
--EXPORT_SYMBOL(nftnl_chain_get_str);
-
--uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr)
-+uint32_t __EXPORTED nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- const uint32_t *val = nftnl_chain_get_data(c, attr, &data_len);
-@@ -334,9 +320,8 @@ uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_chain_get_u32);
-
--int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr)
-+int32_t __EXPORTED nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- const int32_t *val = nftnl_chain_get_data(c, attr, &data_len);
-@@ -345,9 +330,8 @@ int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_chain_get_s32);
-
--uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr)
-+uint64_t __EXPORTED nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- const uint64_t *val = nftnl_chain_get_data(c, attr, &data_len);
-@@ -356,9 +340,8 @@ uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_chain_get_u64);
-
--uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr)
-+uint8_t __EXPORTED nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- const uint8_t *val = nftnl_chain_get_data(c, attr, &data_len);
-@@ -367,9 +350,8 @@ uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_chain_get_u8);
-
--void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c)
-+void __EXPORTED nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c)
- {
- if (c->flags & (1 << NFTNL_CHAIN_TABLE))
- mnl_attr_put_strz(nlh, NFTA_CHAIN_TABLE, c->table);
-@@ -404,7 +386,6 @@ void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_ch
- if (c->flags & (1 << NFTNL_CHAIN_TYPE))
- mnl_attr_put_strz(nlh, NFTA_CHAIN_TYPE, c->type);
- }
--EXPORT_SYMBOL(nftnl_chain_nlmsg_build_payload);
-
- static int nftnl_chain_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -529,7 +510,7 @@ static int nftnl_chain_parse_hook(struct nlattr *attr, struct nftnl_chain *c)
- return 0;
- }
-
--int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c)
-+int __EXPORTED nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c)
- {
- struct nlattr *tb[NFTA_CHAIN_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -590,7 +571,6 @@ int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c)
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_chain_nlmsg_parse);
-
- static inline int nftnl_str2hooknum(int family, const char *hook)
- {
-@@ -732,19 +712,17 @@ static int nftnl_chain_do_parse(struct nftnl_chain *c, enum nftnl_parse_type typ
- return ret;
- }
-
--int nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_chain_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_chain_parse);
-
--int nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_chain_do_parse(c, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_chain_parse_file);
-
- static int nftnl_chain_export(char *buf, size_t size,
- const struct nftnl_chain *c, int type)
-@@ -841,13 +819,12 @@ static int nftnl_chain_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c,
-+int __EXPORTED nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c,
- uint32_t type, uint32_t flags)
- {
- return nftnl_chain_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_chain_snprintf);
-
- static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -855,19 +832,18 @@ static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c,
- return nftnl_chain_snprintf(buf, size, c, type, flags);
- }
-
--int nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type,
-+int __EXPORTED nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_chain_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_chain_fprintf);
-
- struct nftnl_chain_list {
- struct list_head list;
- };
-
--struct nftnl_chain_list *nftnl_chain_list_alloc(void)
-+struct nftnl_chain_list __EXPORTED *nftnl_chain_list_alloc(void)
- {
- struct nftnl_chain_list *list;
-
-@@ -879,9 +855,8 @@ struct nftnl_chain_list *nftnl_chain_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_chain_list_alloc);
-
--void nftnl_chain_list_free(struct nftnl_chain_list *list)
-+void __EXPORTED nftnl_chain_list_free(struct nftnl_chain_list *list)
- {
- struct nftnl_chain *r, *tmp;
-
-@@ -891,33 +866,28 @@ void nftnl_chain_list_free(struct nftnl_chain_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_chain_list_free);
-
--int nftnl_chain_list_is_empty(const struct nftnl_chain_list *list)
-+int __EXPORTED nftnl_chain_list_is_empty(const struct nftnl_chain_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_chain_list_is_empty);
-
--void nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list)
-+void __EXPORTED nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list)
- {
- list_add(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_chain_list_add);
-
--void nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list)
-+void __EXPORTED nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list)
- {
- list_add_tail(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_chain_list_add_tail);
-
--void nftnl_chain_list_del(struct nftnl_chain *r)
-+void __EXPORTED nftnl_chain_list_del(struct nftnl_chain *r)
- {
- list_del(&r->head);
- }
--EXPORT_SYMBOL(nftnl_chain_list_del);
-
--int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list,
-+int __EXPORTED nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list,
- int (*cb)(struct nftnl_chain *r, void *data),
- void *data)
- {
-@@ -931,14 +901,13 @@ int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_chain_list_foreach);
-
- struct nftnl_chain_list_iter {
- const struct nftnl_chain_list *list;
- struct nftnl_chain *cur;
- };
-
--struct nftnl_chain_list_iter *
-+struct nftnl_chain_list_iter __EXPORTED *
- nftnl_chain_list_iter_create(const struct nftnl_chain_list *l)
- {
- struct nftnl_chain_list_iter *iter;
-@@ -955,9 +924,8 @@ nftnl_chain_list_iter_create(const struct nftnl_chain_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_chain_list_iter_create);
-
--struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter)
-+struct nftnl_chain __EXPORTED *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter)
- {
- struct nftnl_chain *r = iter->cur;
-
-@@ -971,10 +939,8 @@ struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *ite
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_chain_list_iter_next);
-
--void nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter)
-+void __EXPORTED nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_chain_list_iter_destroy);
-diff --git a/src/common.c b/src/common.c
-index a95883c..68bce2e 100644
---- a/src/common.c
-+++ b/src/common.c
-@@ -43,15 +43,14 @@ static struct nlmsghdr *__nftnl_nlmsg_build_hdr(char *buf, uint16_t type,
- return nlh;
- }
-
--struct nlmsghdr *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family,
-+struct nlmsghdr __EXPORTED *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family,
- uint16_t flags, uint32_t seq)
- {
- return __nftnl_nlmsg_build_hdr(buf, (NFNL_SUBSYS_NFTABLES << 8) | type,
- family, flags, seq, 0);
- }
--EXPORT_SYMBOL(nftnl_nlmsg_build_hdr);
-
--struct nftnl_parse_err *nftnl_parse_err_alloc(void)
-+struct nftnl_parse_err __EXPORTED *nftnl_parse_err_alloc(void)
- {
- struct nftnl_parse_err *err;
-
-@@ -63,15 +62,13 @@ struct nftnl_parse_err *nftnl_parse_err_alloc(void)
-
- return err;
- }
--EXPORT_SYMBOL(nftnl_parse_err_alloc);
-
--void nftnl_parse_err_free(struct nftnl_parse_err *err)
-+void __EXPORTED nftnl_parse_err_free(struct nftnl_parse_err *err)
- {
- xfree(err);
- }
--EXPORT_SYMBOL(nftnl_parse_err_free);
-
--int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err)
-+int __EXPORTED nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err)
- {
- switch (err->error) {
- case NFTNL_PARSE_EBADINPUT:
-@@ -89,7 +86,6 @@ int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err)
- return fprintf(stderr, "%s: Undefined error\n", msg);
- }
- }
--EXPORT_SYMBOL(nftnl_parse_perror);
-
- int nftnl_cmd_header_snprintf(char *buf, size_t size, uint32_t cmd, uint32_t type,
- uint32_t flags)
-@@ -165,21 +161,19 @@ int nftnl_cmd_footer_fprintf(FILE *fp, uint32_t cmd, uint32_t type,
- nftnl_cmd_footer_fprintf_cb);
- }
-
--struct nlmsghdr *nftnl_batch_begin(char *buf, uint32_t seq)
-+struct nlmsghdr __EXPORTED *nftnl_batch_begin(char *buf, uint32_t seq)
- {
- return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_BEGIN, AF_UNSPEC,
- 0, seq, NFNL_SUBSYS_NFTABLES);
- }
--EXPORT_SYMBOL(nftnl_batch_begin);
-
--struct nlmsghdr *nftnl_batch_end(char *buf, uint32_t seq)
-+struct nlmsghdr __EXPORTED *nftnl_batch_end(char *buf, uint32_t seq)
- {
- return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_END, AF_UNSPEC,
- 0, seq, NFNL_SUBSYS_NFTABLES);
- }
--EXPORT_SYMBOL(nftnl_batch_end);
-
--int nftnl_batch_is_supported(void)
-+int __EXPORTED nftnl_batch_is_supported(void)
- {
- struct mnl_socket *nl;
- struct mnl_nlmsg_batch *b;
-@@ -236,4 +230,3 @@ err:
- mnl_nlmsg_batch_stop(b);
- return -1;
- }
--EXPORT_SYMBOL(nftnl_batch_is_supported);
-diff --git a/src/expr.c b/src/expr.c
-index 10ba2c4..c7eb2b4 100644
---- a/src/expr.c
-+++ b/src/expr.c
-@@ -24,7 +24,7 @@
-
- #include <libnftnl/expr.h>
-
--struct nftnl_expr *nftnl_expr_alloc(const char *name)
-+struct nftnl_expr __EXPORTED *nftnl_expr_alloc(const char *name)
- {
- struct nftnl_expr *expr;
- struct expr_ops *ops;
-@@ -43,24 +43,21 @@ struct nftnl_expr *nftnl_expr_alloc(const char *name)
-
- return expr;
- }
--EXPORT_SYMBOL(nftnl_expr_alloc);
-
--void nftnl_expr_free(const struct nftnl_expr *expr)
-+void __EXPORTED nftnl_expr_free(const struct nftnl_expr *expr)
- {
- if (expr->ops->free)
- expr->ops->free(expr);
-
- xfree(expr);
- }
--EXPORT_SYMBOL(nftnl_expr_free);
-
--bool nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type)
-+bool __EXPORTED nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type)
- {
- return expr->flags & (1 << type);
- }
--EXPORT_SYMBOL(nftnl_expr_is_set);
-
--int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type,
-+int __EXPORTED nftnl_expr_set(struct nftnl_expr *expr, uint16_t type,
- const void *data, uint32_t data_len)
- {
- switch(type) {
-@@ -73,43 +70,37 @@ int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type,
- expr->flags |= (1 << type);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_expr_set);
-
--void
-+void __EXPORTED
- nftnl_expr_set_u8(struct nftnl_expr *expr, uint16_t type, uint8_t data)
- {
- nftnl_expr_set(expr, type, &data, sizeof(uint8_t));
- }
--EXPORT_SYMBOL(nftnl_expr_set_u8);
-
--void
-+void __EXPORTED
- nftnl_expr_set_u16(struct nftnl_expr *expr, uint16_t type, uint16_t data)
- {
- nftnl_expr_set(expr, type, &data, sizeof(uint16_t));
- }
--EXPORT_SYMBOL(nftnl_expr_set_u16);
-
--void
-+void __EXPORTED
- nftnl_expr_set_u32(struct nftnl_expr *expr, uint16_t type, uint32_t data)
- {
- nftnl_expr_set(expr, type, &data, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_expr_set_u32);
-
--void
-+void __EXPORTED
- nftnl_expr_set_u64(struct nftnl_expr *expr, uint16_t type, uint64_t data)
- {
- nftnl_expr_set(expr, type, &data, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_expr_set_u64);
-
--int nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str)
-+int __EXPORTED nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str)
- {
- return nftnl_expr_set(expr, type, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_expr_set_str);
-
--const void *nftnl_expr_get(const struct nftnl_expr *expr,
-+const void __EXPORTED *nftnl_expr_get(const struct nftnl_expr *expr,
- uint16_t type, uint32_t *data_len)
- {
- const void *ret;
-@@ -129,9 +120,8 @@ const void *nftnl_expr_get(const struct nftnl_expr *expr,
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_expr_get);
-
--uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type)
-+uint8_t __EXPORTED nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type)
- {
- const void *data;
- uint32_t data_len;
-@@ -145,9 +135,8 @@ uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type)
-
- return *((uint8_t *)data);
- }
--EXPORT_SYMBOL(nftnl_expr_get_u8);
-
--uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type)
-+uint16_t __EXPORTED nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type)
- {
- const void *data;
- uint32_t data_len;
-@@ -161,9 +150,8 @@ uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type)
-
- return *((uint16_t *)data);
- }
--EXPORT_SYMBOL(nftnl_expr_get_u16);
-
--uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type)
-+uint32_t __EXPORTED nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type)
- {
- const void *data;
- uint32_t data_len;
-@@ -177,9 +165,8 @@ uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type)
-
- return *((uint32_t *)data);
- }
--EXPORT_SYMBOL(nftnl_expr_get_u32);
-
--uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type)
-+uint64_t __EXPORTED nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type)
- {
- const void *data;
- uint32_t data_len;
-@@ -193,17 +180,15 @@ uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type)
-
- return *((uint64_t *)data);
- }
--EXPORT_SYMBOL(nftnl_expr_get_u64);
-
--const char *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type)
-+const char __EXPORTED *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type)
- {
- uint32_t data_len;
-
- return (const char *)nftnl_expr_get(expr, type, &data_len);
- }
--EXPORT_SYMBOL(nftnl_expr_get_str);
-
--bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2)
-+bool __EXPORTED nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2)
- {
- if (e1->flags != e2->flags ||
- strcmp(e1->ops->name, e2->ops->name) != 0)
-@@ -211,7 +196,6 @@ bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2)
-
- return e1->ops->cmp(e1, e2);
- }
--EXPORT_SYMBOL(nftnl_expr_cmp);
-
- void nftnl_expr_build_payload(struct nlmsghdr *nlh, struct nftnl_expr *expr)
- {
-@@ -275,7 +259,7 @@ err1:
- return NULL;
- }
-
--int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
-+int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
- uint32_t type, uint32_t flags)
- {
- int ret;
-@@ -289,4 +273,3 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
-
- return offset;
- }
--EXPORT_SYMBOL(nftnl_expr_snprintf);
-diff --git a/src/gen.c b/src/gen.c
-index 213562e..8b45caa 100644
---- a/src/gen.c
-+++ b/src/gen.c
-@@ -29,25 +29,22 @@ struct nftnl_gen {
- uint32_t flags;
- };
-
--struct nftnl_gen *nftnl_gen_alloc(void)
-+struct nftnl_gen __EXPORTED *nftnl_gen_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_gen));
- }
--EXPORT_SYMBOL(nftnl_gen_alloc);
-
--void nftnl_gen_free(const struct nftnl_gen *gen)
-+void __EXPORTED nftnl_gen_free(const struct nftnl_gen *gen)
- {
- xfree(gen);
- }
--EXPORT_SYMBOL(nftnl_gen_free);
-
--bool nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr)
-+bool __EXPORTED nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr)
- {
- return gen->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_gen_is_set);
-
--void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr)
-+void __EXPORTED nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr)
- {
- if (!(gen->flags & (1 << attr)))
- return;
-@@ -58,13 +55,12 @@ void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr)
- }
- gen->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_gen_unset);
-
- static uint32_t nftnl_gen_validate[NFTNL_GEN_MAX + 1] = {
- [NFTNL_GEN_ID] = sizeof(uint32_t),
- };
-
--int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr,
-+int __EXPORTED nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_GEN_MAX);
-@@ -78,21 +74,18 @@ int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr,
- gen->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_gen_set_data);
-
--int nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data)
-+int __EXPORTED nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data)
- {
- return nftnl_gen_set_data(gen, attr, data, nftnl_gen_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_gen_set);
-
--void nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val)
- {
- nftnl_gen_set_data(gen, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_gen_set_u32);
-
--const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr,
-+const void __EXPORTED *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(gen->flags & (1 << attr)))
-@@ -105,21 +98,18 @@ const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_gen_get_data);
-
--const void *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr)
-+const void __EXPORTED *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_gen_get_data(gen, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_gen_get);
-
--uint32_t nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr)
-+uint32_t __EXPORTED nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr)
- {
- const void *ret = nftnl_gen_get(gen, attr);
- return ret == NULL ? 0 : *((uint32_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_gen_get_u32);
-
- static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -140,7 +130,7 @@ static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data)
- return MNL_CB_OK;
- }
-
--int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen)
-+int __EXPORTED nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen)
- {
- struct nlattr *tb[NFTA_GEN_MAX + 1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -154,7 +144,6 @@ int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen)
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_gen_nlmsg_parse);
-
- static int nftnl_gen_snprintf_default(char *buf, size_t size,
- const struct nftnl_gen *gen)
-@@ -186,13 +175,12 @@ static int nftnl_gen_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen,
-+int __EXPORTED nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen,
- uint32_t type, uint32_t flags)
- {;
- return nftnl_gen_cmd_snprintf(buf, size, gen, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_gen_snprintf);
-
- static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -200,10 +188,9 @@ static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen,
- return nftnl_gen_snprintf(buf, size, gen, type, flags);
- }
-
--int nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type,
-+int __EXPORTED nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, gen, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_gen_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_gen_fprintf);
-diff --git a/src/object.c b/src/object.c
-index e1a5ac4..d409c6d 100644
---- a/src/object.c
-+++ b/src/object.c
-@@ -39,13 +39,12 @@ static struct obj_ops *nftnl_obj_ops_lookup(uint32_t type)
- return obj_ops[type];
- }
-
--struct nftnl_obj *nftnl_obj_alloc(void)
-+struct nftnl_obj __EXPORTED *nftnl_obj_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_obj));
- }
--EXPORT_SYMBOL(nftnl_obj_alloc);
-
--void nftnl_obj_free(const struct nftnl_obj *obj)
-+void __EXPORTED nftnl_obj_free(const struct nftnl_obj *obj)
- {
- if (obj->flags & (1 << NFTNL_OBJ_TABLE))
- xfree(obj->table);
-@@ -54,20 +53,18 @@ void nftnl_obj_free(const struct nftnl_obj *obj)
-
- xfree(obj);
- }
--EXPORT_SYMBOL(nftnl_obj_free);
-
--bool nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr)
-+bool __EXPORTED nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr)
- {
- return obj->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_obj_is_set);
-
- static uint32_t nftnl_obj_validate[NFTNL_OBJ_MAX + 1] = {
- [NFTNL_OBJ_FAMILY] = sizeof(uint32_t),
- [NFTNL_OBJ_USE] = sizeof(uint32_t),
- };
-
--void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr,
-+void __EXPORTED nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- if (attr < NFTNL_OBJ_MAX)
-@@ -100,45 +97,38 @@ void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr,
- }
- obj->flags |= (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_obj_set_data);
-
--void nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data)
-+void __EXPORTED nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data)
- {
- nftnl_obj_set_data(obj, attr, data, nftnl_obj_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_obj_set);
-
--void nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val)
-+void __EXPORTED nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val)
- {
- nftnl_obj_set_data(obj, attr, &val, sizeof(uint8_t));
- }
--EXPORT_SYMBOL(nftnl_obj_set_u8);
-
--void nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val)
-+void __EXPORTED nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val)
- {
- nftnl_obj_set_data(obj, attr, &val, sizeof(uint16_t));
- }
--EXPORT_SYMBOL(nftnl_obj_set_u16);
-
--void nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val)
- {
- nftnl_obj_set_data(obj, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_obj_set_u32);
-
--void nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val)
-+void __EXPORTED nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val)
- {
- nftnl_obj_set_data(obj, attr, &val, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_obj_set_u64);
-
--void nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str)
-+void __EXPORTED nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str)
- {
- nftnl_obj_set_data(obj, attr, str, 0);
- }
--EXPORT_SYMBOL(nftnl_obj_set_str);
-
--const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr,
-+const void __EXPORTED *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(obj->flags & (1 << attr)))
-@@ -168,50 +158,43 @@ const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_obj_get_data);
-
--const void *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr)
-+const void __EXPORTED *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_obj_get_data(obj, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_obj_get);
-
--uint8_t nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr)
-+uint8_t __EXPORTED nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr)
- {
- const void *ret = nftnl_obj_get(obj, attr);
- return ret == NULL ? 0 : *((uint8_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_obj_get_u8);
-
--uint16_t nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr)
-+uint16_t __EXPORTED nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr)
- {
- const void *ret = nftnl_obj_get(obj, attr);
- return ret == NULL ? 0 : *((uint16_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_obj_get_u16);
-
--uint32_t nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr)
-+uint32_t __EXPORTED nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr)
- {
- const void *ret = nftnl_obj_get(obj, attr);
- return ret == NULL ? 0 : *((uint32_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_obj_get_u32);
-
--uint64_t nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr)
-+uint64_t __EXPORTED nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr)
- {
- const void *ret = nftnl_obj_get(obj, attr);
- return ret == NULL ? 0 : *((uint64_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_obj_get_u64);
-
--const char *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr)
-+const char __EXPORTED *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr)
- {
- return nftnl_obj_get(obj, attr);
- }
--EXPORT_SYMBOL(nftnl_obj_get_str);
-
--void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh,
-+void __EXPORTED nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh,
- const struct nftnl_obj *obj)
- {
- if (obj->flags & (1 << NFTNL_OBJ_TABLE))
-@@ -228,7 +211,6 @@ void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh,
- mnl_attr_nest_end(nlh, nest);
- }
- }
--EXPORT_SYMBOL(nftnl_obj_nlmsg_build_payload);
-
- static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -258,7 +240,7 @@ static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data)
- return MNL_CB_OK;
- }
-
--int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj)
-+int __EXPORTED nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj)
- {
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
- struct nlattr *tb[NFTA_OBJ_MAX + 1] = {};
-@@ -299,7 +281,6 @@ int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_obj_nlmsg_parse);
-
- #ifdef JSON_PARSING
- static int nftnl_jansson_parse_obj(struct nftnl_obj *t, json_t *tree,
-@@ -377,19 +358,17 @@ static int nftnl_obj_do_parse(struct nftnl_obj *obj, enum nftnl_parse_type type,
- return ret;
- }
-
--int nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_obj_do_parse(obj, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_obj_parse);
-
--int nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_obj_do_parse(obj, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_obj_parse_file);
-
- static int nftnl_obj_export(char *buf, size_t size,
- const struct nftnl_obj *obj,
-@@ -469,13 +448,12 @@ static int nftnl_obj_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj,
-+int __EXPORTED nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj,
- uint32_t type, uint32_t flags)
- {
- return nftnl_obj_cmd_snprintf(buf, size, obj, nftnl_flag2cmd(flags),
- type, flags);
- }
--EXPORT_SYMBOL(nftnl_obj_snprintf);
-
- static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -483,19 +461,18 @@ static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj,
- return nftnl_obj_snprintf(buf, size, obj, type, flags);
- }
-
--int nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type,
-+int __EXPORTED nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, obj, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_obj_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_obj_fprintf);
-
- struct nftnl_obj_list {
- struct list_head list;
- };
-
--struct nftnl_obj_list *nftnl_obj_list_alloc(void)
-+struct nftnl_obj_list __EXPORTED *nftnl_obj_list_alloc(void)
- {
- struct nftnl_obj_list *list;
-
-@@ -507,9 +484,8 @@ struct nftnl_obj_list *nftnl_obj_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_obj_list_alloc);
-
--void nftnl_obj_list_free(struct nftnl_obj_list *list)
-+void __EXPORTED nftnl_obj_list_free(struct nftnl_obj_list *list)
- {
- struct nftnl_obj *r, *tmp;
-
-@@ -519,34 +495,29 @@ void nftnl_obj_list_free(struct nftnl_obj_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_obj_list_free);
-
--int nftnl_obj_list_is_empty(struct nftnl_obj_list *list)
-+int __EXPORTED nftnl_obj_list_is_empty(struct nftnl_obj_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_obj_list_is_empty);
-
--void nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list)
-+void __EXPORTED nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list)
- {
- list_add(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_obj_list_add);
-
--void nftnl_obj_list_add_tail(struct nftnl_obj *r,
-+void __EXPORTED nftnl_obj_list_add_tail(struct nftnl_obj *r,
- struct nftnl_obj_list *list)
- {
- list_add_tail(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_obj_list_add_tail);
-
--void nftnl_obj_list_del(struct nftnl_obj *t)
-+void __EXPORTED nftnl_obj_list_del(struct nftnl_obj *t)
- {
- list_del(&t->head);
- }
--EXPORT_SYMBOL(nftnl_obj_list_del);
-
--int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list,
-+int __EXPORTED nftnl_obj_list_foreach(struct nftnl_obj_list *table_list,
- int (*cb)(struct nftnl_obj *t, void *data),
- void *data)
- {
-@@ -560,14 +531,13 @@ int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_obj_list_foreach);
-
- struct nftnl_obj_list_iter {
- struct nftnl_obj_list *list;
- struct nftnl_obj *cur;
- };
-
--struct nftnl_obj_list_iter *
-+struct nftnl_obj_list_iter __EXPORTED *
- nftnl_obj_list_iter_create(struct nftnl_obj_list *l)
- {
- struct nftnl_obj_list_iter *iter;
-@@ -584,9 +554,8 @@ nftnl_obj_list_iter_create(struct nftnl_obj_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_obj_list_iter_create);
-
--struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter)
-+struct nftnl_obj __EXPORTED *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter)
- {
- struct nftnl_obj *r = iter->cur;
-
-@@ -600,10 +569,8 @@ struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter)
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_obj_list_iter_next);
-
--void nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter)
-+void __EXPORTED nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_obj_list_iter_destroy);
-diff --git a/src/rule.c b/src/rule.c
-index 6c22141..ad8609f 100644
---- a/src/rule.c
-+++ b/src/rule.c
-@@ -52,7 +52,7 @@ struct nftnl_rule {
- struct list_head expr_list;
- };
-
--struct nftnl_rule *nftnl_rule_alloc(void)
-+struct nftnl_rule __EXPORTED *nftnl_rule_alloc(void)
- {
- struct nftnl_rule *r;
-
-@@ -64,9 +64,8 @@ struct nftnl_rule *nftnl_rule_alloc(void)
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_rule_alloc);
-
--void nftnl_rule_free(const struct nftnl_rule *r)
-+void __EXPORTED nftnl_rule_free(const struct nftnl_rule *r)
- {
- struct nftnl_expr *e, *tmp;
-
-@@ -82,15 +81,13 @@ void nftnl_rule_free(const struct nftnl_rule *r)
-
- xfree(r);
- }
--EXPORT_SYMBOL(nftnl_rule_free);
-
--bool nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr)
-+bool __EXPORTED nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr)
- {
- return r->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_rule_is_set);
-
--void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
-+void __EXPORTED nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
- {
- if (!(r->flags & (1 << attr)))
- return;
-@@ -116,7 +113,6 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
-
- r->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_rule_unset);
-
- static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = {
- [NFTNL_RULE_HANDLE] = sizeof(uint64_t),
-@@ -127,7 +123,7 @@ static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = {
- [NFTNL_RULE_ID] = sizeof(uint32_t),
- };
-
--int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr,
-+int __EXPORTED nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_RULE_MAX);
-@@ -183,33 +179,28 @@ int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr,
- r->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_rule_set_data);
-
--int nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data)
-+int __EXPORTED nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data)
- {
- return nftnl_rule_set_data(r, attr, data, nftnl_rule_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_rule_set);
-
--void nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val)
- {
- nftnl_rule_set_data(r, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_rule_set_u32);
-
--void nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val)
-+void __EXPORTED nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val)
- {
- nftnl_rule_set_data(r, attr, &val, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_rule_set_u64);
-
--int nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str)
- {
- return nftnl_rule_set_data(r, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_rule_set_str);
-
--const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr,
-+const void __EXPORTED *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(r->flags & (1 << attr)))
-@@ -246,22 +237,19 @@ const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_rule_get_data);
-
--const void *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr)
-+const void __EXPORTED *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_rule_get_data(r, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_rule_get);
-
--const char *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr)
-+const char __EXPORTED *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr)
- {
- return nftnl_rule_get(r, attr);
- }
--EXPORT_SYMBOL(nftnl_rule_get_str);
-
--uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr)
-+uint32_t __EXPORTED nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr)
- {
- uint32_t data_len;
- const uint32_t *val = nftnl_rule_get_data(r, attr, &data_len);
-@@ -270,9 +258,8 @@ uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_rule_get_u32);
-
--uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr)
-+uint64_t __EXPORTED nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr)
- {
- uint32_t data_len;
- const uint64_t *val = nftnl_rule_get_data(r, attr, &data_len);
-@@ -281,9 +268,8 @@ uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_rule_get_u64);
-
--uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr)
-+uint8_t __EXPORTED nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr)
- {
- uint32_t data_len;
- const uint8_t *val = nftnl_rule_get_data(r, attr, &data_len);
-@@ -292,9 +278,8 @@ uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_rule_get_u8);
-
--void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r)
-+void __EXPORTED nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r)
- {
- struct nftnl_expr *expr;
- struct nlattr *nest, *nest2;
-@@ -335,13 +320,11 @@ void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r)
- if (r->flags & (1 << NFTNL_RULE_ID))
- mnl_attr_put_u32(nlh, NFTA_RULE_ID, htonl(r->id));
- }
--EXPORT_SYMBOL(nftnl_rule_nlmsg_build_payload);
-
--void nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr)
-+void __EXPORTED nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr)
- {
- list_add_tail(&expr->head, &r->expr_list);
- }
--EXPORT_SYMBOL(nftnl_rule_add_expr);
-
- static int nftnl_rule_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -441,7 +424,7 @@ static int nftnl_rule_parse_compat(struct nlattr *nest, struct nftnl_rule *r)
- return 0;
- }
-
--int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r)
-+int __EXPORTED nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r)
- {
- struct nlattr *tb[NFTA_RULE_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -510,7 +493,6 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_rule_nlmsg_parse);
-
- #ifdef JSON_PARSING
- int nftnl_jansson_parse_rule(struct nftnl_rule *r, json_t *tree,
-@@ -658,19 +640,17 @@ static int nftnl_rule_do_parse(struct nftnl_rule *r, enum nftnl_parse_type type,
-
- return ret;
- }
--int nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_rule_do_parse(r, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_rule_parse);
-
--int nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_rule_do_parse(r, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_rule_parse_file);
-
- static int nftnl_rule_export(char *buf, size_t size,
- const struct nftnl_rule *r,
-@@ -819,13 +799,12 @@ static int nftnl_rule_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r,
-+int __EXPORTED nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r,
- uint32_t type, uint32_t flags)
- {
- return nftnl_rule_cmd_snprintf(buf, size, r, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_rule_snprintf);
-
- static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -833,15 +812,14 @@ static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r,
- return nftnl_rule_snprintf(buf, size, r, type, flags);
- }
-
--int nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type,
-+int __EXPORTED nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, r, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_rule_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_rule_fprintf);
-
--int nftnl_expr_foreach(struct nftnl_rule *r,
-+int __EXPORTED nftnl_expr_foreach(struct nftnl_rule *r,
- int (*cb)(struct nftnl_expr *e, void *data),
- void *data)
- {
-@@ -855,7 +833,6 @@ int nftnl_expr_foreach(struct nftnl_rule *r,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_expr_foreach);
-
- struct nftnl_expr_iter {
- const struct nftnl_rule *r;
-@@ -873,7 +850,7 @@ static void nftnl_expr_iter_init(const struct nftnl_rule *r,
- head);
- }
-
--struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r)
-+struct nftnl_expr_iter __EXPORTED *nftnl_expr_iter_create(const struct nftnl_rule *r)
- {
- struct nftnl_expr_iter *iter;
-
-@@ -885,9 +862,8 @@ struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_expr_iter_create);
-
--struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter)
-+struct nftnl_expr __EXPORTED *nftnl_expr_iter_next(struct nftnl_expr_iter *iter)
- {
- struct nftnl_expr *expr = iter->cur;
-
-@@ -901,15 +877,13 @@ struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter)
-
- return expr;
- }
--EXPORT_SYMBOL(nftnl_expr_iter_next);
-
--void nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter)
-+void __EXPORTED nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_expr_iter_destroy);
-
--bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2)
-+bool __EXPORTED nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2)
- {
- struct nftnl_expr_iter it1, it2;
- struct nftnl_expr *e1, *e2;
-@@ -938,13 +912,12 @@ bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2)
-
- return eq;
- }
--EXPORT_SYMBOL(nftnl_rule_cmp);
-
- struct nftnl_rule_list {
- struct list_head list;
- };
-
--struct nftnl_rule_list *nftnl_rule_list_alloc(void)
-+struct nftnl_rule_list __EXPORTED *nftnl_rule_list_alloc(void)
- {
- struct nftnl_rule_list *list;
-
-@@ -956,9 +929,8 @@ struct nftnl_rule_list *nftnl_rule_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_rule_list_alloc);
-
--void nftnl_rule_list_free(struct nftnl_rule_list *list)
-+void __EXPORTED nftnl_rule_list_free(struct nftnl_rule_list *list)
- {
- struct nftnl_rule *r, *tmp;
-
-@@ -968,33 +940,28 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_rule_list_free);
-
--int nftnl_rule_list_is_empty(const struct nftnl_rule_list *list)
-+int __EXPORTED nftnl_rule_list_is_empty(const struct nftnl_rule_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_rule_list_is_empty);
-
--void nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list)
-+void __EXPORTED nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list)
- {
- list_add(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_rule_list_add);
-
--void nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list)
-+void __EXPORTED nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list)
- {
- list_add_tail(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_rule_list_add_tail);
-
--void nftnl_rule_list_del(struct nftnl_rule *r)
-+void __EXPORTED nftnl_rule_list_del(struct nftnl_rule *r)
- {
- list_del(&r->head);
- }
--EXPORT_SYMBOL(nftnl_rule_list_del);
-
--int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list,
-+int __EXPORTED nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list,
- int (*cb)(struct nftnl_rule *r, void *data),
- void *data)
- {
-@@ -1008,14 +975,13 @@ int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_rule_list_foreach);
-
- struct nftnl_rule_list_iter {
- const struct nftnl_rule_list *list;
- struct nftnl_rule *cur;
- };
-
--struct nftnl_rule_list_iter *
-+struct nftnl_rule_list_iter __EXPORTED *
- nftnl_rule_list_iter_create(const struct nftnl_rule_list *l)
- {
- struct nftnl_rule_list_iter *iter;
-@@ -1032,15 +998,13 @@ nftnl_rule_list_iter_create(const struct nftnl_rule_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_rule_list_iter_create);
-
--struct nftnl_rule *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter)
-+struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter)
- {
- return iter->cur;
- }
--EXPORT_SYMBOL(nftnl_rule_list_iter_cur);
-
--struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter)
-+struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter)
- {
- struct nftnl_rule *r = iter->cur;
-
-@@ -1054,10 +1018,8 @@ struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter)
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_rule_list_iter_next);
-
--void nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter)
-+void __EXPORTED nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_rule_list_iter_destroy);
-diff --git a/src/ruleset.c b/src/ruleset.c
-index 6ef2956..10d48f6 100644
---- a/src/ruleset.c
-+++ b/src/ruleset.c
-@@ -55,13 +55,12 @@ struct nftnl_parse_ctx {
- uint16_t flags;
- };
-
--struct nftnl_ruleset *nftnl_ruleset_alloc(void)
-+struct nftnl_ruleset __EXPORTED *nftnl_ruleset_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_ruleset));
- }
--EXPORT_SYMBOL(nftnl_ruleset_alloc);
-
--void nftnl_ruleset_free(const struct nftnl_ruleset *r)
-+void __EXPORTED nftnl_ruleset_free(const struct nftnl_ruleset *r)
- {
- if (r->flags & (1 << NFTNL_RULESET_TABLELIST))
- nftnl_table_list_free(r->table_list);
-@@ -73,15 +72,13 @@ void nftnl_ruleset_free(const struct nftnl_ruleset *r)
- nftnl_rule_list_free(r->rule_list);
- xfree(r);
- }
--EXPORT_SYMBOL(nftnl_ruleset_free);
-
--bool nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr)
-+bool __EXPORTED nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr)
- {
- return r->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_ruleset_is_set);
-
--void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
-+void __EXPORTED nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
- {
- if (!(r->flags & (1 << attr)))
- return;
-@@ -102,9 +99,8 @@ void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
- }
- r->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_ruleset_unset);
-
--void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data)
-+void __EXPORTED nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data)
- {
- switch (attr) {
- case NFTNL_RULESET_TABLELIST:
-@@ -128,9 +124,8 @@ void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data)
- }
- r->flags |= (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_ruleset_set);
-
--void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr)
-+void __EXPORTED *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr)
- {
- if (!(r->flags & (1 << attr)))
- return NULL;
-@@ -148,9 +143,8 @@ void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr)
- return NULL;
- }
- }
--EXPORT_SYMBOL(nftnl_ruleset_get);
-
--void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx)
-+void __EXPORTED nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx)
- {
- switch (ctx->type) {
- case NFTNL_RULESET_TABLE:
-@@ -171,15 +165,13 @@ void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx)
- break;
- }
- }
--EXPORT_SYMBOL(nftnl_ruleset_ctx_free);
-
--bool nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr)
-+bool __EXPORTED nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr)
- {
- return ctx->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_ruleset_ctx_is_set);
-
--void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr)
-+void __EXPORTED *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr)
- {
- if (!(ctx->flags & (1 << attr)))
- return NULL;
-@@ -203,14 +195,12 @@ void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr)
- return NULL;
- }
- }
--EXPORT_SYMBOL(nftnl_ruleset_ctx_get);
-
--uint32_t nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr)
-+uint32_t __EXPORTED nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr)
- {
- const void *ret = nftnl_ruleset_ctx_get(ctx, attr);
- return ret == NULL ? 0 : *((uint32_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_ruleset_ctx_get_u32);
-
- #if defined(JSON_PARSING)
- static void nftnl_ruleset_ctx_set(struct nftnl_parse_ctx *ctx, uint16_t attr,
-@@ -593,22 +583,20 @@ nftnl_ruleset_do_parse(enum nftnl_parse_type type, const void *data,
- return ret;
- }
-
--int nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp,
-+int __EXPORTED nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp,
- struct nftnl_parse_err *err, void *data,
- int (*cb)(const struct nftnl_parse_ctx *ctx))
- {
- return nftnl_ruleset_do_parse(type, fp, err, NFTNL_PARSE_FILE, data, cb);
- }
--EXPORT_SYMBOL(nftnl_ruleset_parse_file_cb);
-
--int nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer,
-+int __EXPORTED nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer,
- struct nftnl_parse_err *err, void *data,
- int (*cb)(const struct nftnl_parse_ctx *ctx))
- {
- return nftnl_ruleset_do_parse(type, buffer, err, NFTNL_PARSE_BUFFER, data,
- cb);
- }
--EXPORT_SYMBOL(nftnl_ruleset_parse_buffer_cb);
-
- static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx)
- {
-@@ -671,19 +659,17 @@ static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx)
- return 0;
- }
-
--int nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_ruleset_parse_buffer_cb(type, data, err, r, nftnl_ruleset_cb);
- }
--EXPORT_SYMBOL(nftnl_ruleset_parse);
-
--int nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_ruleset_parse_file_cb(type, fp, err, rs, nftnl_ruleset_cb);
- }
--EXPORT_SYMBOL(nftnl_ruleset_parse_file);
-
- static const char *nftnl_ruleset_o_opentag(uint32_t type)
- {
-@@ -928,7 +914,7 @@ static int nftnl_ruleset_cmd_snprintf(char *buf, size_t size,
- }
- }
-
--int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r,
-+int __EXPORTED nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r,
- uint32_t type, uint32_t flags)
- {
- switch (type) {
-@@ -943,7 +929,6 @@ int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r
- return -1;
- }
- }
--EXPORT_SYMBOL(nftnl_ruleset_snprintf);
-
- static int nftnl_ruleset_fprintf_tables(FILE *fp, const struct nftnl_ruleset *rs,
- uint32_t type, uint32_t flags)
-@@ -1157,10 +1142,9 @@ static int nftnl_ruleset_cmd_fprintf(FILE *fp, const struct nftnl_ruleset *rs,
- return len;
- }
-
--int nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type,
-+int __EXPORTED nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type,
- uint32_t flags)
- {
- return nftnl_ruleset_cmd_fprintf(fp, rs, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_ruleset_fprintf);
-diff --git a/src/set.c b/src/set.c
-index cce5e63..33a6794 100644
---- a/src/set.c
-+++ b/src/set.c
-@@ -27,7 +27,7 @@
- #include <libnftnl/set.h>
- #include <libnftnl/expr.h>
-
--struct nftnl_set *nftnl_set_alloc(void)
-+struct nftnl_set __EXPORTED *nftnl_set_alloc(void)
- {
- struct nftnl_set *s;
-
-@@ -38,9 +38,8 @@ struct nftnl_set *nftnl_set_alloc(void)
- INIT_LIST_HEAD(&s->element_list);
- return s;
- }
--EXPORT_SYMBOL(nftnl_set_alloc);
-
--void nftnl_set_free(const struct nftnl_set *s)
-+void __EXPORTED nftnl_set_free(const struct nftnl_set *s)
- {
- struct nftnl_set_elem *elem, *tmp;
-
-@@ -55,15 +54,13 @@ void nftnl_set_free(const struct nftnl_set *s)
- }
- xfree(s);
- }
--EXPORT_SYMBOL(nftnl_set_free);
-
--bool nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr)
-+bool __EXPORTED nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr)
- {
- return s->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_set_is_set);
-
--void nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
-+void __EXPORTED nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
- {
- if (!(s->flags & (1 << attr)))
- return;
-@@ -97,7 +94,6 @@ void nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
-
- s->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_set_unset);
-
- static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = {
- [NFTNL_SET_FLAGS] = sizeof(uint32_t),
-@@ -113,7 +109,7 @@ static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = {
- [NFTNL_SET_GC_INTERVAL] = sizeof(uint32_t),
- };
-
--int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data,
-+int __EXPORTED nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data,
- uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_SET_MAX);
-@@ -186,33 +182,28 @@ int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data,
- s->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_set_data);
-
--int nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data)
-+int __EXPORTED nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data)
- {
- return nftnl_set_set_data(s, attr, data, nftnl_set_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_set_set);
-
--void nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val)
- {
- nftnl_set_set(s, attr, &val);
- }
--EXPORT_SYMBOL(nftnl_set_set_u32);
-
--void nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val)
-+void __EXPORTED nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val)
- {
- nftnl_set_set(s, attr, &val);
- }
--EXPORT_SYMBOL(nftnl_set_set_u64);
-
--int nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str)
- {
- return nftnl_set_set_data(s, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_set_set_str);
-
--const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr,
-+const void __EXPORTED *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(s->flags & (1 << attr)))
-@@ -267,22 +258,19 @@ const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_set_get_data);
-
--const void *nftnl_set_get(const struct nftnl_set *s, uint16_t attr)
-+const void __EXPORTED *nftnl_set_get(const struct nftnl_set *s, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_set_get_data(s, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_set_get);
-
--const char *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr)
-+const char __EXPORTED *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr)
- {
- return nftnl_set_get(s, attr);
- }
--EXPORT_SYMBOL(nftnl_set_get_str);
-
--uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr)
-+uint32_t __EXPORTED nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr)
- {
- uint32_t data_len;
- const uint32_t *val = nftnl_set_get_data(s, attr, &data_len);
-@@ -291,9 +279,8 @@ uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_set_get_u32);
-
--uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
-+uint64_t __EXPORTED nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
- {
- uint32_t data_len;
- const uint64_t *val = nftnl_set_get_data(s, attr, &data_len);
-@@ -302,7 +289,6 @@ uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_set_get_u64);
-
- struct nftnl_set *nftnl_set_clone(const struct nftnl_set *set)
- {
-@@ -351,7 +337,7 @@ nftnl_set_nlmsg_build_desc_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
- mnl_attr_nest_end(nlh, nest);
- }
-
--void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
-+void __EXPORTED nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
- {
- if (s->flags & (1 << NFTNL_SET_TABLE))
- mnl_attr_put_strz(nlh, NFTA_SET_TABLE, s->table);
-@@ -383,7 +369,6 @@ void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
- if (s->flags & (1 << NFTNL_SET_USERDATA))
- mnl_attr_put(nlh, NFTA_SET_USERDATA, s->user.len, s->user.data);
- }
--EXPORT_SYMBOL(nftnl_set_nlmsg_build_payload);
-
- static int nftnl_set_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -463,7 +448,7 @@ static int nftnl_set_desc_parse(struct nftnl_set *s,
- return 0;
- }
-
--int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
-+int __EXPORTED nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
- {
- struct nlattr *tb[NFTA_SET_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -546,7 +531,6 @@ int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_nlmsg_parse);
-
- #ifdef JSON_PARSING
- static int nftnl_jansson_parse_set_info(struct nftnl_set *s, json_t *tree,
-@@ -718,19 +702,17 @@ static int nftnl_set_do_parse(struct nftnl_set *s, enum nftnl_parse_type type,
-
- return ret;
- }
--int nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_set_do_parse(s, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_set_parse);
-
--int nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_set_do_parse(s, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_set_parse_file);
-
- static int nftnl_set_snprintf_json(char *buf, size_t size,
- const struct nftnl_set *s,
-@@ -918,13 +900,12 @@ static int nftnl_set_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s,
-+int __EXPORTED nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s,
- uint32_t type, uint32_t flags)
- {
- return nftnl_set_cmd_snprintf(buf, size, s, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_set_snprintf);
-
- static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -932,25 +913,23 @@ static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s,
- return nftnl_set_snprintf(buf, size, s, type, flags);
- }
-
--int nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type,
-+int __EXPORTED nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, s, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_set_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_set_fprintf);
-
--void nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem)
-+void __EXPORTED nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem)
- {
- list_add_tail(&elem->head, &s->element_list);
- }
--EXPORT_SYMBOL(nftnl_set_elem_add);
-
- struct nftnl_set_list {
- struct list_head list;
- };
-
--struct nftnl_set_list *nftnl_set_list_alloc(void)
-+struct nftnl_set_list __EXPORTED *nftnl_set_list_alloc(void)
- {
- struct nftnl_set_list *list;
-
-@@ -962,9 +941,8 @@ struct nftnl_set_list *nftnl_set_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_set_list_alloc);
-
--void nftnl_set_list_free(struct nftnl_set_list *list)
-+void __EXPORTED nftnl_set_list_free(struct nftnl_set_list *list)
- {
- struct nftnl_set *s, *tmp;
-
-@@ -974,33 +952,28 @@ void nftnl_set_list_free(struct nftnl_set_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_set_list_free);
-
--int nftnl_set_list_is_empty(const struct nftnl_set_list *list)
-+int __EXPORTED nftnl_set_list_is_empty(const struct nftnl_set_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_set_list_is_empty);
-
--void nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list)
-+void __EXPORTED nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list)
- {
- list_add(&s->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_set_list_add);
-
--void nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list)
-+void __EXPORTED nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list)
- {
- list_add_tail(&s->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_set_list_add_tail);
-
--void nftnl_set_list_del(struct nftnl_set *s)
-+void __EXPORTED nftnl_set_list_del(struct nftnl_set *s)
- {
- list_del(&s->head);
- }
--EXPORT_SYMBOL(nftnl_set_list_del);
-
--int nftnl_set_list_foreach(struct nftnl_set_list *set_list,
-+int __EXPORTED nftnl_set_list_foreach(struct nftnl_set_list *set_list,
- int (*cb)(struct nftnl_set *t, void *data), void *data)
- {
- struct nftnl_set *cur, *tmp;
-@@ -1013,14 +986,13 @@ int nftnl_set_list_foreach(struct nftnl_set_list *set_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_list_foreach);
-
- struct nftnl_set_list_iter {
- const struct nftnl_set_list *list;
- struct nftnl_set *cur;
- };
-
--struct nftnl_set_list_iter *
-+struct nftnl_set_list_iter __EXPORTED *
- nftnl_set_list_iter_create(const struct nftnl_set_list *l)
- {
- struct nftnl_set_list_iter *iter;
-@@ -1037,16 +1009,14 @@ nftnl_set_list_iter_create(const struct nftnl_set_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_set_list_iter_create);
-
--struct nftnl_set *
-+struct nftnl_set __EXPORTED *
- nftnl_set_list_iter_cur(const struct nftnl_set_list_iter *iter)
- {
- return iter->cur;
- }
--EXPORT_SYMBOL(nftnl_set_list_iter_cur);
-
--struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter)
-+struct nftnl_set __EXPORTED *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter)
- {
- struct nftnl_set *s = iter->cur;
-
-@@ -1060,13 +1030,11 @@ struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter)
-
- return s;
- }
--EXPORT_SYMBOL(nftnl_set_list_iter_next);
-
--void nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter)
-+void __EXPORTED nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_set_list_iter_destroy);
-
- static struct nftnl_set *nftnl_set_lookup(const char *this_set_name,
- struct nftnl_set_list *set_list)
-diff --git a/src/set_elem.c b/src/set_elem.c
-index 433b896..bd1e895 100644
---- a/src/set_elem.c
-+++ b/src/set_elem.c
-@@ -27,7 +27,7 @@
- #include <libnftnl/rule.h>
- #include <libnftnl/expr.h>
-
--struct nftnl_set_elem *nftnl_set_elem_alloc(void)
-+struct nftnl_set_elem __EXPORTED *nftnl_set_elem_alloc(void)
- {
- struct nftnl_set_elem *s;
-
-@@ -37,9 +37,8 @@ struct nftnl_set_elem *nftnl_set_elem_alloc(void)
-
- return s;
- }
--EXPORT_SYMBOL(nftnl_set_elem_alloc);
-
--void nftnl_set_elem_free(struct nftnl_set_elem *s)
-+void __EXPORTED nftnl_set_elem_free(struct nftnl_set_elem *s)
- {
- if (s->flags & (1 << NFTNL_SET_ELEM_CHAIN))
- xfree(s->data.chain);
-@@ -55,15 +54,13 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s)
-
- xfree(s);
- }
--EXPORT_SYMBOL(nftnl_set_elem_free);
-
--bool nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr)
-+bool __EXPORTED nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr)
- {
- return s->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_set_elem_is_set);
-
--void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
-+void __EXPORTED nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
- {
- if (!(s->flags & (1 << attr)))
- return;
-@@ -94,9 +91,8 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
-
- s->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_set_elem_unset);
-
--int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr,
-+int __EXPORTED nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- switch(attr) {
-@@ -147,27 +143,23 @@ int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr,
- s->flags |= (1 << attr);
- return -1;
- }
--EXPORT_SYMBOL(nftnl_set_elem_set);
-
--void nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val)
- {
- nftnl_set_elem_set(s, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_set_elem_set_u32);
-
--void nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val)
-+void __EXPORTED nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val)
- {
- nftnl_set_elem_set(s, attr, &val, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_set_elem_set_u64);
-
--int nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str)
- {
- return nftnl_set_elem_set(s, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_set_elem_set_str);
-
--const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len)
-+const void __EXPORTED *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len)
- {
- if (!(s->flags & (1 << attr)))
- return NULL;
-@@ -205,31 +197,27 @@ const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_set_elem_get);
-
--const char *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr)
-+const char __EXPORTED *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr)
- {
- uint32_t size;
-
- return nftnl_set_elem_get(s, attr, &size);
- }
--EXPORT_SYMBOL(nftnl_set_elem_get_str);
-
--uint32_t nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr)
-+uint32_t __EXPORTED nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr)
- {
- uint32_t size;
- uint32_t val = *((uint32_t *)nftnl_set_elem_get(s, attr, &size));
- return val;
- }
--EXPORT_SYMBOL(nftnl_set_elem_get_u32);
-
--uint64_t nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr)
-+uint64_t __EXPORTED nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr)
- {
- uint32_t size;
- uint64_t val = *((uint64_t *)nftnl_set_elem_get(s, attr, &size));
- return val;
- }
--EXPORT_SYMBOL(nftnl_set_elem_get_u64);
-
- struct nftnl_set_elem *nftnl_set_elem_clone(struct nftnl_set_elem *elem)
- {
-@@ -315,7 +303,7 @@ static struct nlattr *nftnl_set_elem_build(struct nlmsghdr *nlh,
- return nest2;
- }
-
--void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
-+void __EXPORTED nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
- {
- struct nftnl_set_elem *elem;
- struct nlattr *nest1;
-@@ -332,7 +320,6 @@ void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set
-
- mnl_attr_nest_end(nlh, nest1);
- }
--EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload);
-
- static int nftnl_set_elem_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -503,7 +490,7 @@ static int nftnl_set_elems_parse(struct nftnl_set *s, const struct nlattr *nest)
- return ret;
- }
-
--int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
-+int __EXPORTED nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
- {
- struct nlattr *tb[NFTA_SET_ELEM_LIST_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -546,7 +533,6 @@ int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_elems_nlmsg_parse);
-
- static int nftnl_set_elem_json_parse(struct nftnl_set_elem *e, const void *json,
- struct nftnl_parse_err *err,
-@@ -587,19 +573,17 @@ nftnl_set_elem_do_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
-
- return ret;
- }
--int nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_set_elem_do_parse(e, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_set_elem_parse);
-
--int nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_set_elem_do_parse(e, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_set_elem_parse_file);
-
- static int nftnl_set_elem_snprintf_json(char *buf, size_t size,
- const struct nftnl_set_elem *e,
-@@ -719,14 +703,13 @@ static int nftnl_set_elem_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_set_elem_snprintf(char *buf, size_t size,
-+int __EXPORTED nftnl_set_elem_snprintf(char *buf, size_t size,
- const struct nftnl_set_elem *e,
- uint32_t type, uint32_t flags)
- {
- return nftnl_set_elem_cmd_snprintf(buf, size, e, nftnl_flag2cmd(flags),
- type, flags);
- }
--EXPORT_SYMBOL(nftnl_set_elem_snprintf);
-
- static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e,
- uint32_t cmd, uint32_t type,
-@@ -735,15 +718,14 @@ static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e,
- return nftnl_set_elem_snprintf(buf, size, e, type, flags);
- }
-
--int nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type,
-+int __EXPORTED nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, se, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_set_elem_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_set_elem_fprintf);
-
--int nftnl_set_elem_foreach(struct nftnl_set *s,
-+int __EXPORTED nftnl_set_elem_foreach(struct nftnl_set *s,
- int (*cb)(struct nftnl_set_elem *e, void *data),
- void *data)
- {
-@@ -757,7 +739,6 @@ int nftnl_set_elem_foreach(struct nftnl_set *s,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_elem_foreach);
-
- struct nftnl_set_elems_iter {
- const struct nftnl_set *set;
-@@ -765,7 +746,7 @@ struct nftnl_set_elems_iter {
- struct nftnl_set_elem *cur;
- };
-
--struct nftnl_set_elems_iter *
-+struct nftnl_set_elems_iter __EXPORTED *
- nftnl_set_elems_iter_create(const struct nftnl_set *s)
- {
- struct nftnl_set_elems_iter *iter;
-@@ -784,16 +765,14 @@ nftnl_set_elems_iter_create(const struct nftnl_set *s)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_set_elems_iter_create);
-
--struct nftnl_set_elem *
-+struct nftnl_set_elem __EXPORTED *
- nftnl_set_elems_iter_cur(const struct nftnl_set_elems_iter *iter)
- {
- return iter->cur;
- }
--EXPORT_SYMBOL(nftnl_set_elems_iter_cur);
-
--struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter)
-+struct nftnl_set_elem __EXPORTED *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter)
- {
- struct nftnl_set_elem *s = iter->cur;
-
-@@ -806,13 +785,11 @@ struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *it
-
- return s;
- }
--EXPORT_SYMBOL(nftnl_set_elems_iter_next);
-
--void nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter)
-+void __EXPORTED nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_set_elems_iter_destroy);
-
- static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh,
- const struct nlattr *from,
-@@ -831,7 +808,7 @@ static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh,
- return false;
- }
-
--int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
-+int __EXPORTED nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
- struct nftnl_set_elems_iter *iter)
- {
- struct nftnl_set_elem *elem;
-@@ -861,4 +838,3 @@ int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload_iter);
-diff --git a/src/table.c b/src/table.c
-index a7d5a8f..0e99f3c 100644
---- a/src/table.c
-+++ b/src/table.c
-@@ -36,28 +36,25 @@ struct nftnl_table {
- uint32_t flags;
- };
-
--struct nftnl_table *nftnl_table_alloc(void)
-+struct nftnl_table __EXPORTED *nftnl_table_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_table));
- }
--EXPORT_SYMBOL(nftnl_table_alloc);
-
--void nftnl_table_free(const struct nftnl_table *t)
-+void __EXPORTED nftnl_table_free(const struct nftnl_table *t)
- {
- if (t->flags & (1 << NFTNL_TABLE_NAME))
- xfree(t->name);
-
- xfree(t);
- }
--EXPORT_SYMBOL(nftnl_table_free);
-
--bool nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr)
-+bool __EXPORTED nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr)
- {
- return t->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_table_is_set);
-
--void nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
-+void __EXPORTED nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
- {
- if (!(t->flags & (1 << attr)))
- return;
-@@ -74,14 +71,13 @@ void nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
- }
- t->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_table_unset);
-
- static uint32_t nftnl_table_validate[NFTNL_TABLE_MAX + 1] = {
- [NFTNL_TABLE_FLAGS] = sizeof(uint32_t),
- [NFTNL_TABLE_FAMILY] = sizeof(uint32_t),
- };
-
--int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr,
-+int __EXPORTED nftnl_table_set_data(struct nftnl_table *t, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_TABLE_MAX);
-@@ -109,33 +105,28 @@ int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr,
- t->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_table_set_data);
-
--void nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data)
-+void __EXPORTED nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data)
- {
- nftnl_table_set_data(t, attr, data, nftnl_table_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_table_set);
-
--void nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val)
- {
- nftnl_table_set_data(t, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_table_set_u32);
-
--void nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val)
-+void __EXPORTED nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val)
- {
- nftnl_table_set_data(t, attr, &val, sizeof(uint8_t));
- }
--EXPORT_SYMBOL(nftnl_table_set_u8);
-
--int nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str)
- {
- return nftnl_table_set_data(t, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_table_set_str);
-
--const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr,
-+const void __EXPORTED *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(t->flags & (1 << attr)))
-@@ -157,43 +148,37 @@ const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_table_get_data);
-
--const void *nftnl_table_get(const struct nftnl_table *t, uint16_t attr)
-+const void __EXPORTED *nftnl_table_get(const struct nftnl_table *t, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_table_get_data(t, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_table_get);
-
--uint32_t nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr)
-+uint32_t __EXPORTED nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr)
- {
- const void *ret = nftnl_table_get(t, attr);
- return ret == NULL ? 0 : *((uint32_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_table_get_u32);
-
--uint8_t nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr)
-+uint8_t __EXPORTED nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr)
- {
- const void *ret = nftnl_table_get(t, attr);
- return ret == NULL ? 0 : *((uint8_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_table_get_u8);
-
--const char *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr)
-+const char __EXPORTED *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr)
- {
- return nftnl_table_get(t, attr);
- }
--EXPORT_SYMBOL(nftnl_table_get_str);
-
--void nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t)
-+void __EXPORTED nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t)
- {
- if (t->flags & (1 << NFTNL_TABLE_NAME))
- mnl_attr_put_strz(nlh, NFTA_TABLE_NAME, t->name);
- if (t->flags & (1 << NFTNL_TABLE_FLAGS))
- mnl_attr_put_u32(nlh, NFTA_TABLE_FLAGS, htonl(t->table_flags));
- }
--EXPORT_SYMBOL(nftnl_table_nlmsg_build_payload);
-
- static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -219,7 +204,7 @@ static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data)
- return MNL_CB_OK;
- }
-
--int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t)
-+int __EXPORTED nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t)
- {
- struct nlattr *tb[NFTA_TABLE_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -249,7 +234,6 @@ int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_table_nlmsg_parse);
-
- #ifdef JSON_PARSING
- int nftnl_jansson_parse_table(struct nftnl_table *t, json_t *tree,
-@@ -330,19 +314,17 @@ static int nftnl_table_do_parse(struct nftnl_table *t, enum nftnl_parse_type typ
- return ret;
- }
-
--int nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_table_do_parse(t, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_table_parse);
-
--int nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_table_do_parse(t, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_table_parse_file);
-
- static int nftnl_table_export(char *buf, size_t size,
- const struct nftnl_table *t, int type)
-@@ -400,13 +382,12 @@ static int nftnl_table_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t,
-+int __EXPORTED nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t,
- uint32_t type, uint32_t flags)
- {
- return nftnl_table_cmd_snprintf(buf, size, t, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_table_snprintf);
-
- static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -414,19 +395,18 @@ static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t,
- return nftnl_table_snprintf(buf, size, t, type, flags);
- }
-
--int nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type,
-+int __EXPORTED nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, t, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_table_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_table_fprintf);
-
- struct nftnl_table_list {
- struct list_head list;
- };
-
--struct nftnl_table_list *nftnl_table_list_alloc(void)
-+struct nftnl_table_list __EXPORTED *nftnl_table_list_alloc(void)
- {
- struct nftnl_table_list *list;
-
-@@ -438,9 +418,8 @@ struct nftnl_table_list *nftnl_table_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_table_list_alloc);
-
--void nftnl_table_list_free(struct nftnl_table_list *list)
-+void __EXPORTED nftnl_table_list_free(struct nftnl_table_list *list)
- {
- struct nftnl_table *r, *tmp;
-
-@@ -450,33 +429,28 @@ void nftnl_table_list_free(struct nftnl_table_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_table_list_free);
-
--int nftnl_table_list_is_empty(const struct nftnl_table_list *list)
-+int __EXPORTED nftnl_table_list_is_empty(const struct nftnl_table_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_table_list_is_empty);
-
--void nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list)
-+void __EXPORTED nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list)
- {
- list_add(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_table_list_add);
-
--void nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list)
-+void __EXPORTED nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list)
- {
- list_add_tail(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_table_list_add_tail);
-
--void nftnl_table_list_del(struct nftnl_table *t)
-+void __EXPORTED nftnl_table_list_del(struct nftnl_table *t)
- {
- list_del(&t->head);
- }
--EXPORT_SYMBOL(nftnl_table_list_del);
-
--int nftnl_table_list_foreach(struct nftnl_table_list *table_list,
-+int __EXPORTED nftnl_table_list_foreach(struct nftnl_table_list *table_list,
- int (*cb)(struct nftnl_table *t, void *data),
- void *data)
- {
-@@ -490,14 +464,13 @@ int nftnl_table_list_foreach(struct nftnl_table_list *table_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_table_list_foreach);
-
- struct nftnl_table_list_iter {
- const struct nftnl_table_list *list;
- struct nftnl_table *cur;
- };
-
--struct nftnl_table_list_iter *
-+struct nftnl_table_list_iter __EXPORTED *
- nftnl_table_list_iter_create(const struct nftnl_table_list *l)
- {
- struct nftnl_table_list_iter *iter;
-@@ -514,9 +487,8 @@ nftnl_table_list_iter_create(const struct nftnl_table_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_table_list_iter_create);
-
--struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter)
-+struct nftnl_table __EXPORTED *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter)
- {
- struct nftnl_table *r = iter->cur;
-
-@@ -530,10 +502,8 @@ struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *ite
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_table_list_iter_next);
-
--void nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter)
-+void __EXPORTED nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_table_list_iter_destroy);
-diff --git a/src/trace.c b/src/trace.c
-index bd05d3c..4739ef9 100644
---- a/src/trace.c
-+++ b/src/trace.c
-@@ -52,14 +52,12 @@ struct nftnl_trace {
- uint32_t flags;
- };
-
--EXPORT_SYMBOL(nftnl_trace_alloc);
--struct nftnl_trace *nftnl_trace_alloc(void)
-+struct nftnl_trace __EXPORTED *nftnl_trace_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_trace));
- }
-
--EXPORT_SYMBOL(nftnl_trace_free);
--void nftnl_trace_free(const struct nftnl_trace *t)
-+void __EXPORTED nftnl_trace_free(const struct nftnl_trace *t)
- {
- xfree(t->chain);
- xfree(t->table);
-@@ -70,8 +68,7 @@ void nftnl_trace_free(const struct nftnl_trace *t)
- xfree(t);
- }
-
--EXPORT_SYMBOL(nftnl_trace_is_set);
--bool nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr)
-+bool __EXPORTED nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr)
- {
- return t->flags & (1 << attr);
- }
-@@ -130,8 +127,7 @@ static int nftnl_trace_parse_attr_cb(const struct nlattr *attr, void *data)
- return MNL_CB_OK;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_data);
--const void *nftnl_trace_get_data(const struct nftnl_trace *trace,
-+const void __EXPORTED *nftnl_trace_get_data(const struct nftnl_trace *trace,
- uint16_t type, uint32_t *data_len)
- {
- enum nftnl_trace_attr attr = type;
-@@ -201,8 +197,7 @@ const void *nftnl_trace_get_data(const struct nftnl_trace *trace,
- return NULL;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_str);
--const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type)
-+const char __EXPORTED *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type)
- {
- if (!nftnl_trace_is_set(trace, type))
- return NULL;
-@@ -216,8 +211,7 @@ const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type)
- return NULL;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_u16);
--uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type)
-+uint16_t __EXPORTED nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type)
- {
- const uint16_t *d;
- uint32_t dlen;
-@@ -229,8 +223,7 @@ uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type)
- return 0;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_u32);
--uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type)
-+uint32_t __EXPORTED nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type)
- {
- const uint32_t *d;
- uint32_t dlen;
-@@ -242,8 +235,7 @@ uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type)
- return 0;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_u64);
--uint64_t nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type)
-+uint64_t __EXPORTED nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type)
- {
- const uint64_t *d;
- uint32_t dlen;
-@@ -323,9 +315,8 @@ static int nftnl_trace_parse_verdict(const struct nlattr *attr,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_trace_nlmsg_parse);
-
--int nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t)
-+int __EXPORTED nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t)
- {
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
- struct nlattr *tb[NFTA_TRACE_MAX+1] = {};
-diff --git a/src/udata.c b/src/udata.c
-index d679dd0..7e2de0f 100644
---- a/src/udata.c
-+++ b/src/udata.c
-@@ -16,7 +16,7 @@
- #include <stdint.h>
- #include <string.h>
-
--struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size)
-+struct nftnl_udata_buf __EXPORTED *nftnl_udata_buf_alloc(uint32_t data_size)
- {
- struct nftnl_udata_buf *buf;
-
-@@ -28,47 +28,40 @@ struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size)
-
- return buf;
- }
--EXPORT_SYMBOL(nftnl_udata_buf_alloc);
-
--void nftnl_udata_buf_free(const struct nftnl_udata_buf *buf)
-+void __EXPORTED nftnl_udata_buf_free(const struct nftnl_udata_buf *buf)
- {
- xfree(buf);
- }
--EXPORT_SYMBOL(nftnl_udata_buf_free);
-
--uint32_t nftnl_udata_buf_len(const struct nftnl_udata_buf *buf)
-+uint32_t __EXPORTED nftnl_udata_buf_len(const struct nftnl_udata_buf *buf)
- {
- return (uint32_t)(buf->end - buf->data);
- }
--EXPORT_SYMBOL(nftnl_udata_buf_len);
-
--void *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf)
-+void __EXPORTED *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf)
- {
- return (void *)buf->data;
- }
--EXPORT_SYMBOL(nftnl_udata_buf_data);
-
--void nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data,
-+void __EXPORTED nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data,
- uint32_t len)
- {
- memcpy(buf->data, data, len <= buf->size ? len : buf->size);
- buf->end = buf->data + len;
- }
--EXPORT_SYMBOL(nftnl_udata_buf_put);
-
--struct nftnl_udata *nftnl_udata_start(const struct nftnl_udata_buf *buf)
-+struct nftnl_udata __EXPORTED *nftnl_udata_start(const struct nftnl_udata_buf *buf)
- {
- return (struct nftnl_udata *)buf->data;
- }
--EXPORT_SYMBOL(nftnl_udata_start);
-
--struct nftnl_udata *nftnl_udata_end(const struct nftnl_udata_buf *buf)
-+struct nftnl_udata __EXPORTED *nftnl_udata_end(const struct nftnl_udata_buf *buf)
- {
- return (struct nftnl_udata *)buf->end;
- }
--EXPORT_SYMBOL(nftnl_udata_end);
-
--bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len,
-+bool __EXPORTED nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len,
- const void *value)
- {
- struct nftnl_udata *attr;
-@@ -85,55 +78,47 @@ bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len,
-
- return true;
- }
--EXPORT_SYMBOL(nftnl_udata_put);
-
--bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type,
-+bool __EXPORTED nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type,
- const char *strz)
- {
- return nftnl_udata_put(buf, type, strlen(strz) + 1, strz);
- }
--EXPORT_SYMBOL(nftnl_udata_put_strz);
-
--bool nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type,
-+bool __EXPORTED nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type,
- uint32_t data)
- {
- return nftnl_udata_put(buf, type, sizeof(data), &data);
- }
--EXPORT_SYMBOL(nftnl_udata_put_u32);
-
--uint8_t nftnl_udata_type(const struct nftnl_udata *attr)
-+uint8_t __EXPORTED nftnl_udata_type(const struct nftnl_udata *attr)
- {
- return attr->type;
- }
--EXPORT_SYMBOL(nftnl_udata_type);
-
--uint8_t nftnl_udata_len(const struct nftnl_udata *attr)
-+uint8_t __EXPORTED nftnl_udata_len(const struct nftnl_udata *attr)
- {
- return attr->len;
- }
--EXPORT_SYMBOL(nftnl_udata_len);
-
--void *nftnl_udata_get(const struct nftnl_udata *attr)
-+void __EXPORTED *nftnl_udata_get(const struct nftnl_udata *attr)
- {
- return (void *)attr->value;
- }
--EXPORT_SYMBOL(nftnl_udata_get);
-
--uint32_t nftnl_udata_get_u32(const struct nftnl_udata *attr)
-+uint32_t __EXPORTED nftnl_udata_get_u32(const struct nftnl_udata *attr)
- {
- uint32_t *data = (uint32_t *)attr->value;
-
- return *data;
- }
--EXPORT_SYMBOL(nftnl_udata_get_u32);
-
--struct nftnl_udata *nftnl_udata_next(const struct nftnl_udata *attr)
-+struct nftnl_udata __EXPORTED *nftnl_udata_next(const struct nftnl_udata *attr)
- {
- return (struct nftnl_udata *)&attr->value[attr->len];
- }
--EXPORT_SYMBOL(nftnl_udata_next);
-
--int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb,
-+int __EXPORTED nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb,
- void *cb_data)
- {
- int ret = 0;
-@@ -147,4 +132,3 @@ int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb,
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_udata_parse);
---
-2.11.0 (Apple Git-81)
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
new file mode 100644
index 0000000..995fd59
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
@@ -0,0 +1,289 @@
+From 21eb59fbd071ebffb8495232766824944fb521a0 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Wed, 7 Nov 2018 21:19:53 +0000
+Subject: [PATCH] Move exports before symbol definition
+
+Based on 7966020 ("src: Fix exporting symbols with clang"), when
+EXPORT_SYMBOL is located after function definition, clang won't properly
+export the function, resulting in a library with no symbols when built with
+clang.
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ src/flowtable.c | 54 +++++++++++++++++++++++++++---------------------------
+ 1 file changed, 27 insertions(+), 27 deletions(-)
+
+diff --git a/src/flowtable.c b/src/flowtable.c
+index c1ddae4..d7434e3 100644
+--- a/src/flowtable.c
++++ b/src/flowtable.c
+@@ -34,12 +34,13 @@ struct nftnl_flowtable {
+ uint32_t flags;
+ };
+
++EXPORT_SYMBOL(nftnl_flowtable_alloc);
+ struct nftnl_flowtable *nftnl_flowtable_alloc(void)
+ {
+ return calloc(1, sizeof(struct nftnl_flowtable));
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_alloc);
+
++EXPORT_SYMBOL(nftnl_flowtable_free);
+ void nftnl_flowtable_free(const struct nftnl_flowtable *c)
+ {
+ int i;
+@@ -56,14 +57,14 @@ void nftnl_flowtable_free(const struct nftnl_flowtable *c)
+ }
+ xfree(c);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_free);
+
++EXPORT_SYMBOL(nftnl_flowtable_is_set);
+ bool nftnl_flowtable_is_set(const struct nftnl_flowtable *c, uint16_t attr)
+ {
+ return c->flags & (1 << attr);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_is_set);
+
++EXPORT_SYMBOL(nftnl_flowtable_unset);
+ void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr)
+ {
+ int i;
+@@ -96,7 +97,6 @@ void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr)
+
+ c->flags &= ~(1 << attr);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_unset);
+
+ static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = {
+ [NFTNL_FLOWTABLE_HOOKNUM] = sizeof(uint32_t),
+@@ -105,6 +105,7 @@ static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = {
+ [NFTNL_FLOWTABLE_FLAGS] = sizeof(uint32_t),
+ };
+
++EXPORT_SYMBOL(nftnl_flowtable_set_data);
+ int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr,
+ const void *data, uint32_t data_len)
+ {
+@@ -170,32 +171,32 @@ int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr,
+ c->flags |= (1 << attr);
+ return 0;
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_set_data);
+
++EXPORT_SYMBOL(nftnl_flowtable_set);
+ void nftnl_flowtable_set(struct nftnl_flowtable *c, uint16_t attr, const void *data)
+ {
+ nftnl_flowtable_set_data(c, attr, data, nftnl_flowtable_validate[attr]);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_set);
+
++EXPORT_SYMBOL(nftnl_flowtable_set_u32);
+ void nftnl_flowtable_set_u32(struct nftnl_flowtable *c, uint16_t attr, uint32_t data)
+ {
+ nftnl_flowtable_set_data(c, attr, &data, sizeof(uint32_t));
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_set_u32);
+
++EXPORT_SYMBOL(nftnl_flowtable_set_s32);
+ void nftnl_flowtable_set_s32(struct nftnl_flowtable *c, uint16_t attr, int32_t data)
+ {
+ nftnl_flowtable_set_data(c, attr, &data, sizeof(int32_t));
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_set_s32);
+
++EXPORT_SYMBOL(nftnl_flowtable_set_str);
+ int nftnl_flowtable_set_str(struct nftnl_flowtable *c, uint16_t attr, const char *str)
+ {
+ return nftnl_flowtable_set_data(c, attr, str, strlen(str) + 1);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_set_str);
+
++EXPORT_SYMBOL(nftnl_flowtable_get_data);
+ const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c,
+ uint16_t attr, uint32_t *data_len)
+ {
+@@ -229,21 +230,21 @@ const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c,
+ }
+ return NULL;
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_get_data);
+
++EXPORT_SYMBOL(nftnl_flowtable_get);
+ const void *nftnl_flowtable_get(const struct nftnl_flowtable *c, uint16_t attr)
+ {
+ uint32_t data_len;
+ return nftnl_flowtable_get_data(c, attr, &data_len);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_get);
+
++EXPORT_SYMBOL(nftnl_flowtable_get_str);
+ const char *nftnl_flowtable_get_str(const struct nftnl_flowtable *c, uint16_t attr)
+ {
+ return nftnl_flowtable_get(c, attr);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_get_str);
+
++EXPORT_SYMBOL(nftnl_flowtable_get_u32);
+ uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr)
+ {
+ uint32_t data_len;
+@@ -253,8 +254,8 @@ uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr)
+
+ return val ? *val : 0;
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_get_u32);
+
++EXPORT_SYMBOL(nftnl_flowtable_get_s32);
+ int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr)
+ {
+ uint32_t data_len;
+@@ -264,8 +265,8 @@ int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr)
+
+ return val ? *val : 0;
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_get_s32);
+
++EXPORT_SYMBOL(nftnl_flowtable_nlmsg_build_payload);
+ void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh,
+ const struct nftnl_flowtable *c)
+ {
+@@ -301,7 +302,6 @@ void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh,
+ if (c->flags & (1 << NFTNL_FLOWTABLE_SIZE))
+ mnl_attr_put_u32(nlh, NFTA_FLOWTABLE_SIZE, htonl(c->size));
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_nlmsg_build_payload);
+
+ static int nftnl_flowtable_parse_attr_cb(const struct nlattr *attr, void *data)
+ {
+@@ -412,6 +412,7 @@ static int nftnl_flowtable_parse_hook(struct nlattr *attr, struct nftnl_flowtabl
+ return 0;
+ }
+
++EXPORT_SYMBOL(nftnl_flowtable_nlmsg_parse);
+ int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtable *c)
+ {
+ struct nlattr *tb[NFTA_FLOWTABLE_MAX + 1] = {};
+@@ -460,7 +461,6 @@ int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtab
+
+ return ret;
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_nlmsg_parse);
+
+ static const char *nftnl_hooknum2str(int family, int hooknum)
+ {
+@@ -612,20 +612,20 @@ static int nftnl_flowtable_do_parse(struct nftnl_flowtable *c,
+ return ret;
+ }
+
++EXPORT_SYMBOL(nftnl_flowtable_parse);
+ int nftnl_flowtable_parse(struct nftnl_flowtable *c, enum nftnl_parse_type type,
+ const char *data, struct nftnl_parse_err *err)
+ {
+ return nftnl_flowtable_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_parse);
+
++EXPORT_SYMBOL(nftnl_flowtable_parse_file);
+ int nftnl_flowtable_parse_file(struct nftnl_flowtable *c,
+ enum nftnl_parse_type type,
+ FILE *fp, struct nftnl_parse_err *err)
+ {
+ return nftnl_flowtable_do_parse(c, type, fp, err, NFTNL_PARSE_FILE);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_parse_file);
+
+ static int nftnl_flowtable_export(char *buf, size_t size,
+ const struct nftnl_flowtable *c, int type)
+@@ -720,6 +720,7 @@ static int nftnl_flowtable_cmd_snprintf(char *buf, size_t size,
+ return offset;
+ }
+
++EXPORT_SYMBOL(nftnl_flowtable_snprintf);
+ int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtable *c,
+ uint32_t type, uint32_t flags)
+ {
+@@ -729,7 +730,6 @@ int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtabl
+ return nftnl_flowtable_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags),
+ type, flags);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_snprintf);
+
+ static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c,
+ uint32_t cmd, uint32_t type, uint32_t flags)
+@@ -737,18 +737,19 @@ static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c,
+ return nftnl_flowtable_snprintf(buf, size, c, type, flags);
+ }
+
++EXPORT_SYMBOL(nftnl_flowtable_fprintf);
+ int nftnl_flowtable_fprintf(FILE *fp, const struct nftnl_flowtable *c,
+ uint32_t type, uint32_t flags)
+ {
+ return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags,
+ nftnl_flowtable_do_snprintf);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_fprintf);
+
+ struct nftnl_flowtable_list {
+ struct list_head list;
+ };
+
++EXPORT_SYMBOL(nftnl_flowtable_list_alloc);
+ struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void)
+ {
+ struct nftnl_flowtable_list *list;
+@@ -761,8 +762,8 @@ struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void)
+
+ return list;
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_list_alloc);
+
++EXPORT_SYMBOL(nftnl_flowtable_list_free);
+ void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list)
+ {
+ struct nftnl_flowtable *s, *tmp;
+@@ -773,34 +774,34 @@ void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list)
+ }
+ xfree(list);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_list_free);
+
++EXPORT_SYMBOL(nftnl_flowtable_list_is_empty);
+ int nftnl_flowtable_list_is_empty(const struct nftnl_flowtable_list *list)
+ {
+ return list_empty(&list->list);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_list_is_empty);
+
++EXPORT_SYMBOL(nftnl_flowtable_list_add);
+ void nftnl_flowtable_list_add(struct nftnl_flowtable *s,
+ struct nftnl_flowtable_list *list)
+ {
+ list_add(&s->head, &list->list);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_list_add);
+
++EXPORT_SYMBOL(nftnl_flowtable_list_add_tail);
+ void nftnl_flowtable_list_add_tail(struct nftnl_flowtable *s,
+ struct nftnl_flowtable_list *list)
+ {
+ list_add_tail(&s->head, &list->list);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_list_add_tail);
+
++EXPORT_SYMBOL(nftnl_flowtable_list_del);
+ void nftnl_flowtable_list_del(struct nftnl_flowtable *s)
+ {
+ list_del(&s->head);
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_list_del);
+
++EXPORT_SYMBOL(nftnl_flowtable_list_foreach);
+ int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list,
+ int (*cb)(struct nftnl_flowtable *t, void *data), void *data)
+ {
+@@ -814,4 +815,3 @@ int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list,
+ }
+ return 0;
+ }
+-EXPORT_SYMBOL(nftnl_flowtable_list_foreach);
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
deleted file mode 100644
index 06e6817..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
+++ /dev/null
@@ -1,514 +0,0 @@
-From f840cc0da571d98beb17855c177e9986bd096b72 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Apr 2017 11:46:09 -0700
-Subject: [PATCH] avoid naming local function as one of printf family
-
-Fixes build issues with clang
-error: no member named '__builtin___snprintf_chk' in 'struct expr_ops'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/expr_ops.h | 2 +-
- include/obj.h | 2 +-
- src/buffer.c | 2 +-
- src/expr.c | 4 ++--
- src/expr/bitwise.c | 2 +-
- src/expr/byteorder.c | 2 +-
- src/expr/cmp.c | 2 +-
- src/expr/counter.c | 2 +-
- src/expr/ct.c | 2 +-
- src/expr/dup.c | 2 +-
- src/expr/dynset.c | 2 +-
- src/expr/exthdr.c | 2 +-
- src/expr/fib.c | 2 +-
- src/expr/fwd.c | 2 +-
- src/expr/hash.c | 2 +-
- src/expr/immediate.c | 2 +-
- src/expr/limit.c | 2 +-
- src/expr/log.c | 2 +-
- src/expr/lookup.c | 2 +-
- src/expr/masq.c | 2 +-
- src/expr/match.c | 2 +-
- src/expr/meta.c | 2 +-
- src/expr/nat.c | 2 +-
- src/expr/numgen.c | 2 +-
- src/expr/objref.c | 2 +-
- src/expr/payload.c | 2 +-
- src/expr/queue.c | 2 +-
- src/expr/quota.c | 2 +-
- src/expr/range.c | 2 +-
- src/expr/redir.c | 2 +-
- src/expr/reject.c | 2 +-
- src/expr/rt.c | 2 +-
- src/expr/target.c | 2 +-
- src/obj/counter.c | 2 +-
- src/obj/ct_helper.c | 2 +-
- src/obj/quota.c | 2 +-
- src/object.c | 4 ++--
- 37 files changed, 39 insertions(+), 39 deletions(-)
-
-diff --git a/include/expr_ops.h b/include/expr_ops.h
-index e639390..c4fe050 100644
---- a/include/expr_ops.h
-+++ b/include/expr_ops.h
-@@ -18,7 +18,7 @@ struct expr_ops {
- const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len);
- int (*parse)(struct nftnl_expr *e, struct nlattr *attr);
- void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e);
-- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
-+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
- int (*json_parse)(struct nftnl_expr *e, json_t *data,
- struct nftnl_parse_err *err);
- };
-diff --git a/include/obj.h b/include/obj.h
-index d90919f..772caff 100644
---- a/include/obj.h
-+++ b/include/obj.h
-@@ -47,7 +47,7 @@ struct obj_ops {
- const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len);
- int (*parse)(struct nftnl_obj *e, struct nlattr *attr);
- void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e);
-- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
-+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
- int (*json_parse)(struct nftnl_obj *e, json_t *data,
- struct nftnl_parse_err *err);
- };
-diff --git a/src/buffer.c b/src/buffer.c
-index f9d5a83..db656e2 100644
---- a/src/buffer.c
-+++ b/src/buffer.c
-@@ -206,7 +206,7 @@ int nftnl_buf_expr(struct nftnl_buf *b, int type, uint32_t flags,
- case NFTNL_OUTPUT_JSON:
- nftnl_buf_put(b, "{");
- nftnl_buf_str(b, type, expr->ops->name, TYPE);
-- ret = expr->ops->snprintf(b->buf + b->off, b->len, type, flags,
-+ ret = expr->ops->snprintf_(b->buf + b->off, b->len, type, flags,
- expr);
- if (ret > 0)
- nftnl_buf_update(b, ret);
-diff --git a/src/expr.c b/src/expr.c
-index c7eb2b4..24f8f8c 100644
---- a/src/expr.c
-+++ b/src/expr.c
-@@ -265,10 +265,10 @@ int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_ex
- int ret;
- unsigned int offset = 0, len = size;
-
-- if (!expr->ops->snprintf)
-+ if (!expr->ops->snprintf_)
- return 0;
-
-- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr);
-+ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr);
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
-
- return offset;
-diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c
-index 0febc9d..9b48e79 100644
---- a/src/expr/bitwise.c
-+++ b/src/expr/bitwise.c
-@@ -299,6 +299,6 @@ struct expr_ops expr_ops_bitwise = {
- .get = nftnl_expr_bitwise_get,
- .parse = nftnl_expr_bitwise_parse,
- .build = nftnl_expr_bitwise_build,
-- .snprintf = nftnl_expr_bitwise_snprintf,
-+ .snprintf_ = nftnl_expr_bitwise_snprintf,
- .json_parse = nftnl_expr_bitwise_json_parse,
- };
-diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c
-index 3805307..079582f 100644
---- a/src/expr/byteorder.c
-+++ b/src/expr/byteorder.c
-@@ -314,6 +314,6 @@ struct expr_ops expr_ops_byteorder = {
- .get = nftnl_expr_byteorder_get,
- .parse = nftnl_expr_byteorder_parse,
- .build = nftnl_expr_byteorder_build,
-- .snprintf = nftnl_expr_byteorder_snprintf,
-+ .snprintf_ = nftnl_expr_byteorder_snprintf,
- .json_parse = nftnl_expr_byteorder_json_parse,
- };
-diff --git a/src/expr/cmp.c b/src/expr/cmp.c
-index 353e907..99b497c 100644
---- a/src/expr/cmp.c
-+++ b/src/expr/cmp.c
-@@ -284,6 +284,6 @@ struct expr_ops expr_ops_cmp = {
- .get = nftnl_expr_cmp_get,
- .parse = nftnl_expr_cmp_parse,
- .build = nftnl_expr_cmp_build,
-- .snprintf = nftnl_expr_cmp_snprintf,
-+ .snprintf_ = nftnl_expr_cmp_snprintf,
- .json_parse = nftnl_expr_cmp_json_parse,
- };
-diff --git a/src/expr/counter.c b/src/expr/counter.c
-index 21901e8..9fd7655 100644
---- a/src/expr/counter.c
-+++ b/src/expr/counter.c
-@@ -200,6 +200,6 @@ struct expr_ops expr_ops_counter = {
- .get = nftnl_expr_counter_get,
- .parse = nftnl_expr_counter_parse,
- .build = nftnl_expr_counter_build,
-- .snprintf = nftnl_expr_counter_snprintf,
-+ .snprintf_ = nftnl_expr_counter_snprintf,
- .json_parse = nftnl_expr_counter_json_parse,
- };
-diff --git a/src/expr/ct.c b/src/expr/ct.c
-index cdd08e9..6ce5478 100644
---- a/src/expr/ct.c
-+++ b/src/expr/ct.c
-@@ -356,6 +356,6 @@ struct expr_ops expr_ops_ct = {
- .get = nftnl_expr_ct_get,
- .parse = nftnl_expr_ct_parse,
- .build = nftnl_expr_ct_build,
-- .snprintf = nftnl_expr_ct_snprintf,
-+ .snprintf_ = nftnl_expr_ct_snprintf,
- .json_parse = nftnl_expr_ct_json_parse,
- };
-diff --git a/src/expr/dup.c b/src/expr/dup.c
-index 9aa332b..2f491d8 100644
---- a/src/expr/dup.c
-+++ b/src/expr/dup.c
-@@ -206,6 +206,6 @@ struct expr_ops expr_ops_dup = {
- .get = nftnl_expr_dup_get,
- .parse = nftnl_expr_dup_parse,
- .build = nftnl_expr_dup_build,
-- .snprintf = nftnl_expr_dup_snprintf,
-+ .snprintf_ = nftnl_expr_dup_snprintf,
- .json_parse = nftnl_expr_dup_json_parse,
- };
-diff --git a/src/expr/dynset.c b/src/expr/dynset.c
-index f7b99ea..758f07c 100644
---- a/src/expr/dynset.c
-+++ b/src/expr/dynset.c
-@@ -368,6 +368,6 @@ struct expr_ops expr_ops_dynset = {
- .get = nftnl_expr_dynset_get,
- .parse = nftnl_expr_dynset_parse,
- .build = nftnl_expr_dynset_build,
-- .snprintf = nftnl_expr_dynset_snprintf,
-+ .snprintf_ = nftnl_expr_dynset_snprintf,
- .json_parse = nftnl_expr_dynset_json_parse,
- };
-diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c
-index d4f1665..a834782 100644
---- a/src/expr/exthdr.c
-+++ b/src/expr/exthdr.c
-@@ -356,6 +356,6 @@ struct expr_ops expr_ops_exthdr = {
- .get = nftnl_expr_exthdr_get,
- .parse = nftnl_expr_exthdr_parse,
- .build = nftnl_expr_exthdr_build,
-- .snprintf = nftnl_expr_exthdr_snprintf,
-+ .snprintf_ = nftnl_expr_exthdr_snprintf,
- .json_parse = nftnl_expr_exthdr_json_parse,
- };
-diff --git a/src/expr/fib.c b/src/expr/fib.c
-index f3be081..3c353b2 100644
---- a/src/expr/fib.c
-+++ b/src/expr/fib.c
-@@ -272,6 +272,6 @@ struct expr_ops expr_ops_fib = {
- .get = nftnl_expr_fib_get,
- .parse = nftnl_expr_fib_parse,
- .build = nftnl_expr_fib_build,
-- .snprintf = nftnl_expr_fib_snprintf,
-+ .snprintf_ = nftnl_expr_fib_snprintf,
- .json_parse = nftnl_expr_fib_json_parse,
- };
-diff --git a/src/expr/fwd.c b/src/expr/fwd.c
-index c30d494..f6e41f1 100644
---- a/src/expr/fwd.c
-+++ b/src/expr/fwd.c
-@@ -180,6 +180,6 @@ struct expr_ops expr_ops_fwd = {
- .get = nftnl_expr_fwd_get,
- .parse = nftnl_expr_fwd_parse,
- .build = nftnl_expr_fwd_build,
-- .snprintf = nftnl_expr_fwd_snprintf,
-+ .snprintf_ = nftnl_expr_fwd_snprintf,
- .json_parse = nftnl_expr_fwd_json_parse,
- };
-diff --git a/src/expr/hash.c b/src/expr/hash.c
-index d870510..5acb66a 100644
---- a/src/expr/hash.c
-+++ b/src/expr/hash.c
-@@ -332,6 +332,6 @@ struct expr_ops expr_ops_hash = {
- .get = nftnl_expr_hash_get,
- .parse = nftnl_expr_hash_parse,
- .build = nftnl_expr_hash_build,
-- .snprintf = nftnl_expr_hash_snprintf,
-+ .snprintf_ = nftnl_expr_hash_snprintf,
- .json_parse = nftnl_expr_hash_json_parse,
- };
-diff --git a/src/expr/immediate.c b/src/expr/immediate.c
-index 0b188cc..94bd6da 100644
---- a/src/expr/immediate.c
-+++ b/src/expr/immediate.c
-@@ -316,6 +316,6 @@ struct expr_ops expr_ops_immediate = {
- .get = nftnl_expr_immediate_get,
- .parse = nftnl_expr_immediate_parse,
- .build = nftnl_expr_immediate_build,
-- .snprintf = nftnl_expr_immediate_snprintf,
-+ .snprintf_ = nftnl_expr_immediate_snprintf,
- .json_parse = nftnl_expr_immediate_json_parse,
- };
-diff --git a/src/expr/limit.c b/src/expr/limit.c
-index 856ab18..e71fc2f 100644
---- a/src/expr/limit.c
-+++ b/src/expr/limit.c
-@@ -285,6 +285,6 @@ struct expr_ops expr_ops_limit = {
- .get = nftnl_expr_limit_get,
- .parse = nftnl_expr_limit_parse,
- .build = nftnl_expr_limit_build,
-- .snprintf = nftnl_expr_limit_snprintf,
-+ .snprintf_ = nftnl_expr_limit_snprintf,
- .json_parse = nftnl_expr_limit_json_parse,
- };
-diff --git a/src/expr/log.c b/src/expr/log.c
-index b642255..71dd83a 100644
---- a/src/expr/log.c
-+++ b/src/expr/log.c
-@@ -352,6 +352,6 @@ struct expr_ops expr_ops_log = {
- .get = nftnl_expr_log_get,
- .parse = nftnl_expr_log_parse,
- .build = nftnl_expr_log_build,
-- .snprintf = nftnl_expr_log_snprintf,
-+ .snprintf_ = nftnl_expr_log_snprintf,
- .json_parse = nftnl_expr_log_json_parse,
- };
-diff --git a/src/expr/lookup.c b/src/expr/lookup.c
-index 861815f..6049913 100644
---- a/src/expr/lookup.c
-+++ b/src/expr/lookup.c
-@@ -293,6 +293,6 @@ struct expr_ops expr_ops_lookup = {
- .get = nftnl_expr_lookup_get,
- .parse = nftnl_expr_lookup_parse,
- .build = nftnl_expr_lookup_build,
-- .snprintf = nftnl_expr_lookup_snprintf,
-+ .snprintf_ = nftnl_expr_lookup_snprintf,
- .json_parse = nftnl_expr_lookup_json_parse,
- };
-diff --git a/src/expr/masq.c b/src/expr/masq.c
-index 7c235d3..adec325 100644
---- a/src/expr/masq.c
-+++ b/src/expr/masq.c
-@@ -228,6 +228,6 @@ struct expr_ops expr_ops_masq = {
- .get = nftnl_expr_masq_get,
- .parse = nftnl_expr_masq_parse,
- .build = nftnl_expr_masq_build,
-- .snprintf = nftnl_expr_masq_snprintf,
-+ .snprintf_ = nftnl_expr_masq_snprintf,
- .json_parse = nftnl_expr_masq_json_parse,
- };
-diff --git a/src/expr/match.c b/src/expr/match.c
-index dd09e1e..f0d8868 100644
---- a/src/expr/match.c
-+++ b/src/expr/match.c
-@@ -249,6 +249,6 @@ struct expr_ops expr_ops_match = {
- .get = nftnl_expr_match_get,
- .parse = nftnl_expr_match_parse,
- .build = nftnl_expr_match_build,
-- .snprintf = nftnl_expr_match_snprintf,
-+ .snprintf_ = nftnl_expr_match_snprintf,
- .json_parse = nftnl_expr_match_json_parse,
- };
-diff --git a/src/expr/meta.c b/src/expr/meta.c
-index 2c75841..907a677 100644
---- a/src/expr/meta.c
-+++ b/src/expr/meta.c
-@@ -290,6 +290,6 @@ struct expr_ops expr_ops_meta = {
- .get = nftnl_expr_meta_get,
- .parse = nftnl_expr_meta_parse,
- .build = nftnl_expr_meta_build,
-- .snprintf = nftnl_expr_meta_snprintf,
-+ .snprintf_ = nftnl_expr_meta_snprintf,
- .json_parse = nftnl_expr_meta_json_parse,
- };
-diff --git a/src/expr/nat.c b/src/expr/nat.c
-index 29bc3a2..d476283 100644
---- a/src/expr/nat.c
-+++ b/src/expr/nat.c
-@@ -383,6 +383,6 @@ struct expr_ops expr_ops_nat = {
- .get = nftnl_expr_nat_get,
- .parse = nftnl_expr_nat_parse,
- .build = nftnl_expr_nat_build,
-- .snprintf = nftnl_expr_nat_snprintf,
-+ .snprintf_ = nftnl_expr_nat_snprintf,
- .json_parse = nftnl_expr_nat_json_parse,
- };
-diff --git a/src/expr/numgen.c b/src/expr/numgen.c
-index a15f03a..28ef741 100644
---- a/src/expr/numgen.c
-+++ b/src/expr/numgen.c
-@@ -264,6 +264,6 @@ struct expr_ops expr_ops_ng = {
- .get = nftnl_expr_ng_get,
- .parse = nftnl_expr_ng_parse,
- .build = nftnl_expr_ng_build,
-- .snprintf = nftnl_expr_ng_snprintf,
-+ .snprintf_ = nftnl_expr_ng_snprintf,
- .json_parse = nftnl_expr_ng_json_parse,
- };
-diff --git a/src/expr/objref.c b/src/expr/objref.c
-index 4cfa3cb..c394290 100644
---- a/src/expr/objref.c
-+++ b/src/expr/objref.c
-@@ -278,6 +278,6 @@ struct expr_ops expr_ops_objref = {
- .get = nftnl_expr_objref_get,
- .parse = nftnl_expr_objref_parse,
- .build = nftnl_expr_objref_build,
-- .snprintf = nftnl_expr_objref_snprintf,
-+ .snprintf_ = nftnl_expr_objref_snprintf,
- .json_parse = nftnl_expr_objref_json_parse,
- };
-diff --git a/src/expr/payload.c b/src/expr/payload.c
-index 91e1587..894ac08 100644
---- a/src/expr/payload.c
-+++ b/src/expr/payload.c
-@@ -348,6 +348,6 @@ struct expr_ops expr_ops_payload = {
- .get = nftnl_expr_payload_get,
- .parse = nftnl_expr_payload_parse,
- .build = nftnl_expr_payload_build,
-- .snprintf = nftnl_expr_payload_snprintf,
-+ .snprintf_ = nftnl_expr_payload_snprintf,
- .json_parse = nftnl_expr_payload_json_parse,
- };
-diff --git a/src/expr/queue.c b/src/expr/queue.c
-index 8a9deda..389af83 100644
---- a/src/expr/queue.c
-+++ b/src/expr/queue.c
-@@ -276,6 +276,6 @@ struct expr_ops expr_ops_queue = {
- .get = nftnl_expr_queue_get,
- .parse = nftnl_expr_queue_parse,
- .build = nftnl_expr_queue_build,
-- .snprintf = nftnl_expr_queue_snprintf,
-+ .snprintf_ = nftnl_expr_queue_snprintf,
- .json_parse = nftnl_expr_queue_json_parse,
- };
-diff --git a/src/expr/quota.c b/src/expr/quota.c
-index 667e6e1..ff5d182 100644
---- a/src/expr/quota.c
-+++ b/src/expr/quota.c
-@@ -203,6 +203,6 @@ struct expr_ops expr_ops_quota = {
- .get = nftnl_expr_quota_get,
- .parse = nftnl_expr_quota_parse,
- .build = nftnl_expr_quota_build,
-- .snprintf = nftnl_expr_quota_snprintf,
-+ .snprintf_ = nftnl_expr_quota_snprintf,
- .json_parse = nftnl_expr_quota_json_parse,
- };
-diff --git a/src/expr/range.c b/src/expr/range.c
-index 8c8ce12..34d422b 100644
---- a/src/expr/range.c
-+++ b/src/expr/range.c
-@@ -283,6 +283,6 @@ struct expr_ops expr_ops_range = {
- .get = nftnl_expr_range_get,
- .parse = nftnl_expr_range_parse,
- .build = nftnl_expr_range_build,
-- .snprintf = nftnl_expr_range_snprintf,
-+ .snprintf_ = nftnl_expr_range_snprintf,
- .json_parse = nftnl_expr_range_json_parse,
- };
-diff --git a/src/expr/redir.c b/src/expr/redir.c
-index 43538d5..8a21f93 100644
---- a/src/expr/redir.c
-+++ b/src/expr/redir.c
-@@ -242,6 +242,6 @@ struct expr_ops expr_ops_redir = {
- .get = nftnl_expr_redir_get,
- .parse = nftnl_expr_redir_parse,
- .build = nftnl_expr_redir_build,
-- .snprintf = nftnl_expr_redir_snprintf,
-+ .snprintf_ = nftnl_expr_redir_snprintf,
- .json_parse = nftnl_expr_redir_json_parse,
- };
-diff --git a/src/expr/reject.c b/src/expr/reject.c
-index 11d8b20..b10e729 100644
---- a/src/expr/reject.c
-+++ b/src/expr/reject.c
-@@ -200,6 +200,6 @@ struct expr_ops expr_ops_reject = {
- .get = nftnl_expr_reject_get,
- .parse = nftnl_expr_reject_parse,
- .build = nftnl_expr_reject_build,
-- .snprintf = nftnl_expr_reject_snprintf,
-+ .snprintf_ = nftnl_expr_reject_snprintf,
- .json_parse = nftnl_expr_reject_json_parse,
- };
-diff --git a/src/expr/rt.c b/src/expr/rt.c
-index 5088e66..9f44b29 100644
---- a/src/expr/rt.c
-+++ b/src/expr/rt.c
-@@ -238,6 +238,6 @@ struct expr_ops expr_ops_rt = {
- .get = nftnl_expr_rt_get,
- .parse = nftnl_expr_rt_parse,
- .build = nftnl_expr_rt_build,
-- .snprintf = nftnl_expr_rt_snprintf,
-+ .snprintf_ = nftnl_expr_rt_snprintf,
- .json_parse = nftnl_expr_rt_json_parse,
- };
-diff --git a/src/expr/target.c b/src/expr/target.c
-index ed4bf7d..2ef4078 100644
---- a/src/expr/target.c
-+++ b/src/expr/target.c
-@@ -249,6 +249,6 @@ struct expr_ops expr_ops_target = {
- .get = nftnl_expr_target_get,
- .parse = nftnl_expr_target_parse,
- .build = nftnl_expr_target_build,
-- .snprintf = nftnl_expr_target_snprintf,
-+ .snprintf_ = nftnl_expr_target_snprintf,
- .json_parse = nftnl_expr_target_json_parse,
- };
-diff --git a/src/obj/counter.c b/src/obj/counter.c
-index beadc93..8c4cc25 100644
---- a/src/obj/counter.c
-+++ b/src/obj/counter.c
-@@ -179,6 +179,6 @@ struct obj_ops obj_ops_counter = {
- .get = nftnl_obj_counter_get,
- .parse = nftnl_obj_counter_parse,
- .build = nftnl_obj_counter_build,
-- .snprintf = nftnl_obj_counter_snprintf,
-+ .snprintf_ = nftnl_obj_counter_snprintf,
- .json_parse = nftnl_obj_counter_json_parse,
- };
-diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c
-index d6d3111..4c7c88b 100644
---- a/src/obj/ct_helper.c
-+++ b/src/obj/ct_helper.c
-@@ -205,6 +205,6 @@ struct obj_ops obj_ops_ct_helper = {
- .get = nftnl_obj_ct_helper_get,
- .parse = nftnl_obj_ct_helper_parse,
- .build = nftnl_obj_ct_helper_build,
-- .snprintf = nftnl_obj_ct_helper_snprintf,
-+ .snprintf_ = nftnl_obj_ct_helper_snprintf,
- .json_parse = nftnl_obj_quota_json_parse,
- };
-diff --git a/src/obj/quota.c b/src/obj/quota.c
-index d5757b2..e959ff8 100644
---- a/src/obj/quota.c
-+++ b/src/obj/quota.c
-@@ -200,6 +200,6 @@ struct obj_ops obj_ops_quota = {
- .get = nftnl_obj_quota_get,
- .parse = nftnl_obj_quota_parse,
- .build = nftnl_obj_quota_build,
-- .snprintf = nftnl_obj_quota_snprintf,
-+ .snprintf_ = nftnl_obj_quota_snprintf,
- .json_parse = nftnl_obj_quota_json_parse,
- };
-diff --git a/src/object.c b/src/object.c
-index d409c6d..b938c97 100644
---- a/src/object.c
-+++ b/src/object.c
-@@ -389,7 +389,7 @@ static int nftnl_obj_export(char *buf, size_t size,
- nftnl_buf_u32(&b, type, obj->use, USE);
-
- if (obj->ops)
-- ret = obj->ops->snprintf(buf + b.len, size - b.len, type,
-+ ret = obj->ops->snprintf_(buf + b.len, size - b.len, type,
- flags, obj);
-
- b.len += ret;
-@@ -410,7 +410,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size,
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
-
- if (obj->ops) {
-- ret = obj->ops->snprintf(buf + offset, offset, type, flags, obj);
-+ ret = obj->ops->snprintf_(buf + offset, offset, type, flags, obj);
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- }
- ret = snprintf(buf + offset, offset, "]");
---
-2.12.2
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch
new file mode 100644
index 0000000..e7e8f6f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch
@@ -0,0 +1,549 @@
+From 5ea9fa9d345005f2f53b1b598edb85f5f24ca9da Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Wed, 7 Nov 2018 19:41:54 +0000
+Subject: [PATCH] avoid naming local function as one of printf family
+
+Fixes build issues with clang
+error: no member named '__builtin___snprintf_chk' in 'struct expr_ops'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ include/expr_ops.h | 2 +-
+ include/obj.h | 2 +-
+ src/expr.c | 4 ++--
+ src/expr/bitwise.c | 2 +-
+ src/expr/byteorder.c | 2 +-
+ src/expr/cmp.c | 2 +-
+ src/expr/connlimit.c | 2 +-
+ src/expr/counter.c | 2 +-
+ src/expr/ct.c | 2 +-
+ src/expr/dup.c | 2 +-
+ src/expr/dynset.c | 2 +-
+ src/expr/exthdr.c | 2 +-
+ src/expr/fib.c | 2 +-
+ src/expr/flow_offload.c | 2 +-
+ src/expr/fwd.c | 2 +-
+ src/expr/hash.c | 2 +-
+ src/expr/immediate.c | 2 +-
+ src/expr/limit.c | 2 +-
+ src/expr/log.c | 2 +-
+ src/expr/lookup.c | 2 +-
+ src/expr/masq.c | 2 +-
+ src/expr/match.c | 2 +-
+ src/expr/meta.c | 2 +-
+ src/expr/nat.c | 2 +-
+ src/expr/numgen.c | 2 +-
+ src/expr/objref.c | 2 +-
+ src/expr/payload.c | 2 +-
+ src/expr/queue.c | 2 +-
+ src/expr/quota.c | 2 +-
+ src/expr/range.c | 2 +-
+ src/expr/redir.c | 2 +-
+ src/expr/reject.c | 2 +-
+ src/expr/rt.c | 2 +-
+ src/expr/socket.c | 2 +-
+ src/expr/target.c | 2 +-
+ src/obj/counter.c | 2 +-
+ src/obj/ct_helper.c | 2 +-
+ src/obj/limit.c | 2 +-
+ src/obj/quota.c | 2 +-
+ src/object.c | 4 ++--
+ 40 files changed, 42 insertions(+), 42 deletions(-)
+
+diff --git a/include/expr_ops.h b/include/expr_ops.h
+index e639390..c4fe050 100644
+--- a/include/expr_ops.h
++++ b/include/expr_ops.h
+@@ -18,7 +18,7 @@ struct expr_ops {
+ const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len);
+ int (*parse)(struct nftnl_expr *e, struct nlattr *attr);
+ void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e);
+- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
++ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
+ int (*json_parse)(struct nftnl_expr *e, json_t *data,
+ struct nftnl_parse_err *err);
+ };
+diff --git a/include/obj.h b/include/obj.h
+index 4a728c8..4c20bd1 100644
+--- a/include/obj.h
++++ b/include/obj.h
+@@ -55,7 +55,7 @@ struct obj_ops {
+ const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len);
+ int (*parse)(struct nftnl_obj *e, struct nlattr *attr);
+ void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e);
+- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
++ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
+ int (*json_parse)(struct nftnl_obj *e, json_t *data,
+ struct nftnl_parse_err *err);
+ };
+diff --git a/src/expr.c b/src/expr.c
+index 62565e0..2489c30 100644
+--- a/src/expr.c
++++ b/src/expr.c
+@@ -285,10 +285,10 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
+ if (size)
+ buf[0] = '\0';
+
+- if (!expr->ops->snprintf)
++ if (!expr->ops->snprintf_)
+ return 0;
+
+- ret = expr->ops->snprintf(buf + offset, remain, type, flags, expr);
++ ret = expr->ops->snprintf_(buf + offset, remain, type, flags, expr);
+ SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+
+ return offset;
+diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c
+index a89734b..f8360b1 100644
+--- a/src/expr/bitwise.c
++++ b/src/expr/bitwise.c
+@@ -299,6 +299,6 @@ struct expr_ops expr_ops_bitwise = {
+ .get = nftnl_expr_bitwise_get,
+ .parse = nftnl_expr_bitwise_parse,
+ .build = nftnl_expr_bitwise_build,
+- .snprintf = nftnl_expr_bitwise_snprintf,
++ .snprintf_ = nftnl_expr_bitwise_snprintf,
+ .json_parse = nftnl_expr_bitwise_json_parse,
+ };
+diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c
+index 47c04cf..61f733f 100644
+--- a/src/expr/byteorder.c
++++ b/src/expr/byteorder.c
+@@ -314,6 +314,6 @@ struct expr_ops expr_ops_byteorder = {
+ .get = nftnl_expr_byteorder_get,
+ .parse = nftnl_expr_byteorder_parse,
+ .build = nftnl_expr_byteorder_build,
+- .snprintf = nftnl_expr_byteorder_snprintf,
++ .snprintf_ = nftnl_expr_byteorder_snprintf,
+ .json_parse = nftnl_expr_byteorder_json_parse,
+ };
+diff --git a/src/expr/cmp.c b/src/expr/cmp.c
+index b26d0eb..522c7be 100644
+--- a/src/expr/cmp.c
++++ b/src/expr/cmp.c
+@@ -284,6 +284,6 @@ struct expr_ops expr_ops_cmp = {
+ .get = nftnl_expr_cmp_get,
+ .parse = nftnl_expr_cmp_parse,
+ .build = nftnl_expr_cmp_build,
+- .snprintf = nftnl_expr_cmp_snprintf,
++ .snprintf_ = nftnl_expr_cmp_snprintf,
+ .json_parse = nftnl_expr_cmp_json_parse,
+ };
+diff --git a/src/expr/connlimit.c b/src/expr/connlimit.c
+index 60965b5..4e41866 100644
+--- a/src/expr/connlimit.c
++++ b/src/expr/connlimit.c
+@@ -202,6 +202,6 @@ struct expr_ops expr_ops_connlimit = {
+ .get = nftnl_expr_connlimit_get,
+ .parse = nftnl_expr_connlimit_parse,
+ .build = nftnl_expr_connlimit_build,
+- .snprintf = nftnl_expr_connlimit_snprintf,
++ .snprintf_ = nftnl_expr_connlimit_snprintf,
+ .json_parse = nftnl_expr_connlimit_json_parse,
+ };
+diff --git a/src/expr/counter.c b/src/expr/counter.c
+index 21901e8..9fd7655 100644
+--- a/src/expr/counter.c
++++ b/src/expr/counter.c
+@@ -200,6 +200,6 @@ struct expr_ops expr_ops_counter = {
+ .get = nftnl_expr_counter_get,
+ .parse = nftnl_expr_counter_parse,
+ .build = nftnl_expr_counter_build,
+- .snprintf = nftnl_expr_counter_snprintf,
++ .snprintf_ = nftnl_expr_counter_snprintf,
+ .json_parse = nftnl_expr_counter_json_parse,
+ };
+diff --git a/src/expr/ct.c b/src/expr/ct.c
+index 39e9be6..b363f7c 100644
+--- a/src/expr/ct.c
++++ b/src/expr/ct.c
+@@ -357,6 +357,6 @@ struct expr_ops expr_ops_ct = {
+ .get = nftnl_expr_ct_get,
+ .parse = nftnl_expr_ct_parse,
+ .build = nftnl_expr_ct_build,
+- .snprintf = nftnl_expr_ct_snprintf,
++ .snprintf_ = nftnl_expr_ct_snprintf,
+ .json_parse = nftnl_expr_ct_json_parse,
+ };
+diff --git a/src/expr/dup.c b/src/expr/dup.c
+index ed8e620..8d603e3 100644
+--- a/src/expr/dup.c
++++ b/src/expr/dup.c
+@@ -206,6 +206,6 @@ struct expr_ops expr_ops_dup = {
+ .get = nftnl_expr_dup_get,
+ .parse = nftnl_expr_dup_parse,
+ .build = nftnl_expr_dup_build,
+- .snprintf = nftnl_expr_dup_snprintf,
++ .snprintf_ = nftnl_expr_dup_snprintf,
+ .json_parse = nftnl_expr_dup_json_parse,
+ };
+diff --git a/src/expr/dynset.c b/src/expr/dynset.c
+index 160d0e1..a43f4da 100644
+--- a/src/expr/dynset.c
++++ b/src/expr/dynset.c
+@@ -368,6 +368,6 @@ struct expr_ops expr_ops_dynset = {
+ .get = nftnl_expr_dynset_get,
+ .parse = nftnl_expr_dynset_parse,
+ .build = nftnl_expr_dynset_build,
+- .snprintf = nftnl_expr_dynset_snprintf,
++ .snprintf_ = nftnl_expr_dynset_snprintf,
+ .json_parse = nftnl_expr_dynset_json_parse,
+ };
+diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c
+index 75cafbc..89ea7f5 100644
+--- a/src/expr/exthdr.c
++++ b/src/expr/exthdr.c
+@@ -385,6 +385,6 @@ struct expr_ops expr_ops_exthdr = {
+ .get = nftnl_expr_exthdr_get,
+ .parse = nftnl_expr_exthdr_parse,
+ .build = nftnl_expr_exthdr_build,
+- .snprintf = nftnl_expr_exthdr_snprintf,
++ .snprintf_ = nftnl_expr_exthdr_snprintf,
+ .json_parse = nftnl_expr_exthdr_json_parse,
+ };
+diff --git a/src/expr/fib.c b/src/expr/fib.c
+index b922b26..ece4645 100644
+--- a/src/expr/fib.c
++++ b/src/expr/fib.c
+@@ -274,6 +274,6 @@ struct expr_ops expr_ops_fib = {
+ .get = nftnl_expr_fib_get,
+ .parse = nftnl_expr_fib_parse,
+ .build = nftnl_expr_fib_build,
+- .snprintf = nftnl_expr_fib_snprintf,
++ .snprintf_ = nftnl_expr_fib_snprintf,
+ .json_parse = nftnl_expr_fib_json_parse,
+ };
+diff --git a/src/expr/flow_offload.c b/src/expr/flow_offload.c
+index a2001c9..9cdbc21 100644
+--- a/src/expr/flow_offload.c
++++ b/src/expr/flow_offload.c
+@@ -179,6 +179,6 @@ struct expr_ops expr_ops_flow = {
+ .get = nftnl_expr_flow_get,
+ .parse = nftnl_expr_flow_parse,
+ .build = nftnl_expr_flow_build,
+- .snprintf = nftnl_expr_flow_snprintf,
++ .snprintf_ = nftnl_expr_flow_snprintf,
+ .json_parse = nftnl_expr_flow_json_parse,
+ };
+diff --git a/src/expr/fwd.c b/src/expr/fwd.c
+index 9021606..7178f43 100644
+--- a/src/expr/fwd.c
++++ b/src/expr/fwd.c
+@@ -233,6 +233,6 @@ struct expr_ops expr_ops_fwd = {
+ .get = nftnl_expr_fwd_get,
+ .parse = nftnl_expr_fwd_parse,
+ .build = nftnl_expr_fwd_build,
+- .snprintf = nftnl_expr_fwd_snprintf,
++ .snprintf_ = nftnl_expr_fwd_snprintf,
+ .json_parse = nftnl_expr_fwd_json_parse,
+ };
+diff --git a/src/expr/hash.c b/src/expr/hash.c
+index 415537e..186c5b0 100644
+--- a/src/expr/hash.c
++++ b/src/expr/hash.c
+@@ -383,6 +383,6 @@ struct expr_ops expr_ops_hash = {
+ .get = nftnl_expr_hash_get,
+ .parse = nftnl_expr_hash_parse,
+ .build = nftnl_expr_hash_build,
+- .snprintf = nftnl_expr_hash_snprintf,
++ .snprintf_ = nftnl_expr_hash_snprintf,
+ .json_parse = nftnl_expr_hash_json_parse,
+ };
+diff --git a/src/expr/immediate.c b/src/expr/immediate.c
+index b0570bd..91ccbdc 100644
+--- a/src/expr/immediate.c
++++ b/src/expr/immediate.c
+@@ -316,6 +316,6 @@ struct expr_ops expr_ops_immediate = {
+ .get = nftnl_expr_immediate_get,
+ .parse = nftnl_expr_immediate_parse,
+ .build = nftnl_expr_immediate_build,
+- .snprintf = nftnl_expr_immediate_snprintf,
++ .snprintf_ = nftnl_expr_immediate_snprintf,
+ .json_parse = nftnl_expr_immediate_json_parse,
+ };
+diff --git a/src/expr/limit.c b/src/expr/limit.c
+index 856ab18..e71fc2f 100644
+--- a/src/expr/limit.c
++++ b/src/expr/limit.c
+@@ -285,6 +285,6 @@ struct expr_ops expr_ops_limit = {
+ .get = nftnl_expr_limit_get,
+ .parse = nftnl_expr_limit_parse,
+ .build = nftnl_expr_limit_build,
+- .snprintf = nftnl_expr_limit_snprintf,
++ .snprintf_ = nftnl_expr_limit_snprintf,
+ .json_parse = nftnl_expr_limit_json_parse,
+ };
+diff --git a/src/expr/log.c b/src/expr/log.c
+index 86d9651..5769c1c 100644
+--- a/src/expr/log.c
++++ b/src/expr/log.c
+@@ -353,6 +353,6 @@ struct expr_ops expr_ops_log = {
+ .get = nftnl_expr_log_get,
+ .parse = nftnl_expr_log_parse,
+ .build = nftnl_expr_log_build,
+- .snprintf = nftnl_expr_log_snprintf,
++ .snprintf_ = nftnl_expr_log_snprintf,
+ .json_parse = nftnl_expr_log_json_parse,
+ };
+diff --git a/src/expr/lookup.c b/src/expr/lookup.c
+index 5fcb81f..b2f0dd6 100644
+--- a/src/expr/lookup.c
++++ b/src/expr/lookup.c
+@@ -292,6 +292,6 @@ struct expr_ops expr_ops_lookup = {
+ .get = nftnl_expr_lookup_get,
+ .parse = nftnl_expr_lookup_parse,
+ .build = nftnl_expr_lookup_build,
+- .snprintf = nftnl_expr_lookup_snprintf,
++ .snprintf_ = nftnl_expr_lookup_snprintf,
+ .json_parse = nftnl_expr_lookup_json_parse,
+ };
+diff --git a/src/expr/masq.c b/src/expr/masq.c
+index 7c235d3..adec325 100644
+--- a/src/expr/masq.c
++++ b/src/expr/masq.c
+@@ -228,6 +228,6 @@ struct expr_ops expr_ops_masq = {
+ .get = nftnl_expr_masq_get,
+ .parse = nftnl_expr_masq_parse,
+ .build = nftnl_expr_masq_build,
+- .snprintf = nftnl_expr_masq_snprintf,
++ .snprintf_ = nftnl_expr_masq_snprintf,
+ .json_parse = nftnl_expr_masq_json_parse,
+ };
+diff --git a/src/expr/match.c b/src/expr/match.c
+index dd09e1e..f0d8868 100644
+--- a/src/expr/match.c
++++ b/src/expr/match.c
+@@ -249,6 +249,6 @@ struct expr_ops expr_ops_match = {
+ .get = nftnl_expr_match_get,
+ .parse = nftnl_expr_match_parse,
+ .build = nftnl_expr_match_build,
+- .snprintf = nftnl_expr_match_snprintf,
++ .snprintf_ = nftnl_expr_match_snprintf,
+ .json_parse = nftnl_expr_match_json_parse,
+ };
+diff --git a/src/expr/meta.c b/src/expr/meta.c
+index de82105..91f1ebb 100644
+--- a/src/expr/meta.c
++++ b/src/expr/meta.c
+@@ -291,6 +291,6 @@ struct expr_ops expr_ops_meta = {
+ .get = nftnl_expr_meta_get,
+ .parse = nftnl_expr_meta_parse,
+ .build = nftnl_expr_meta_build,
+- .snprintf = nftnl_expr_meta_snprintf,
++ .snprintf_ = nftnl_expr_meta_snprintf,
+ .json_parse = nftnl_expr_meta_json_parse,
+ };
+diff --git a/src/expr/nat.c b/src/expr/nat.c
+index 9271303..427c282 100644
+--- a/src/expr/nat.c
++++ b/src/expr/nat.c
+@@ -384,6 +384,6 @@ struct expr_ops expr_ops_nat = {
+ .get = nftnl_expr_nat_get,
+ .parse = nftnl_expr_nat_parse,
+ .build = nftnl_expr_nat_build,
+- .snprintf = nftnl_expr_nat_snprintf,
++ .snprintf_ = nftnl_expr_nat_snprintf,
+ .json_parse = nftnl_expr_nat_json_parse,
+ };
+diff --git a/src/expr/numgen.c b/src/expr/numgen.c
+index 5336fde..8e0479a 100644
+--- a/src/expr/numgen.c
++++ b/src/expr/numgen.c
+@@ -313,6 +313,6 @@ struct expr_ops expr_ops_ng = {
+ .get = nftnl_expr_ng_get,
+ .parse = nftnl_expr_ng_parse,
+ .build = nftnl_expr_ng_build,
+- .snprintf = nftnl_expr_ng_snprintf,
++ .snprintf_ = nftnl_expr_ng_snprintf,
+ .json_parse = nftnl_expr_ng_json_parse,
+ };
+diff --git a/src/expr/objref.c b/src/expr/objref.c
+index 64ee863..4504488 100644
+--- a/src/expr/objref.c
++++ b/src/expr/objref.c
+@@ -278,6 +278,6 @@ struct expr_ops expr_ops_objref = {
+ .get = nftnl_expr_objref_get,
+ .parse = nftnl_expr_objref_parse,
+ .build = nftnl_expr_objref_build,
+- .snprintf = nftnl_expr_objref_snprintf,
++ .snprintf_ = nftnl_expr_objref_snprintf,
+ .json_parse = nftnl_expr_objref_json_parse,
+ };
+diff --git a/src/expr/payload.c b/src/expr/payload.c
+index 91e1587..894ac08 100644
+--- a/src/expr/payload.c
++++ b/src/expr/payload.c
+@@ -348,6 +348,6 @@ struct expr_ops expr_ops_payload = {
+ .get = nftnl_expr_payload_get,
+ .parse = nftnl_expr_payload_parse,
+ .build = nftnl_expr_payload_build,
+- .snprintf = nftnl_expr_payload_snprintf,
++ .snprintf_ = nftnl_expr_payload_snprintf,
+ .json_parse = nftnl_expr_payload_json_parse,
+ };
+diff --git a/src/expr/queue.c b/src/expr/queue.c
+index a392a27..ee26c10 100644
+--- a/src/expr/queue.c
++++ b/src/expr/queue.c
+@@ -275,6 +275,6 @@ struct expr_ops expr_ops_queue = {
+ .get = nftnl_expr_queue_get,
+ .parse = nftnl_expr_queue_parse,
+ .build = nftnl_expr_queue_build,
+- .snprintf = nftnl_expr_queue_snprintf,
++ .snprintf_ = nftnl_expr_queue_snprintf,
+ .json_parse = nftnl_expr_queue_json_parse,
+ };
+diff --git a/src/expr/quota.c b/src/expr/quota.c
+index 667e6e1..ff5d182 100644
+--- a/src/expr/quota.c
++++ b/src/expr/quota.c
+@@ -203,6 +203,6 @@ struct expr_ops expr_ops_quota = {
+ .get = nftnl_expr_quota_get,
+ .parse = nftnl_expr_quota_parse,
+ .build = nftnl_expr_quota_build,
+- .snprintf = nftnl_expr_quota_snprintf,
++ .snprintf_ = nftnl_expr_quota_snprintf,
+ .json_parse = nftnl_expr_quota_json_parse,
+ };
+diff --git a/src/expr/range.c b/src/expr/range.c
+index b2789ff..8910f8a 100644
+--- a/src/expr/range.c
++++ b/src/expr/range.c
+@@ -283,6 +283,6 @@ struct expr_ops expr_ops_range = {
+ .get = nftnl_expr_range_get,
+ .parse = nftnl_expr_range_parse,
+ .build = nftnl_expr_range_build,
+- .snprintf = nftnl_expr_range_snprintf,
++ .snprintf_ = nftnl_expr_range_snprintf,
+ .json_parse = nftnl_expr_range_json_parse,
+ };
+diff --git a/src/expr/redir.c b/src/expr/redir.c
+index b2aa345..41b77ab 100644
+--- a/src/expr/redir.c
++++ b/src/expr/redir.c
+@@ -242,6 +242,6 @@ struct expr_ops expr_ops_redir = {
+ .get = nftnl_expr_redir_get,
+ .parse = nftnl_expr_redir_parse,
+ .build = nftnl_expr_redir_build,
+- .snprintf = nftnl_expr_redir_snprintf,
++ .snprintf_ = nftnl_expr_redir_snprintf,
+ .json_parse = nftnl_expr_redir_json_parse,
+ };
+diff --git a/src/expr/reject.c b/src/expr/reject.c
+index 11d8b20..b10e729 100644
+--- a/src/expr/reject.c
++++ b/src/expr/reject.c
+@@ -200,6 +200,6 @@ struct expr_ops expr_ops_reject = {
+ .get = nftnl_expr_reject_get,
+ .parse = nftnl_expr_reject_parse,
+ .build = nftnl_expr_reject_build,
+- .snprintf = nftnl_expr_reject_snprintf,
++ .snprintf_ = nftnl_expr_reject_snprintf,
+ .json_parse = nftnl_expr_reject_json_parse,
+ };
+diff --git a/src/expr/rt.c b/src/expr/rt.c
+index c3c92c7..688a042 100644
+--- a/src/expr/rt.c
++++ b/src/expr/rt.c
+@@ -235,6 +235,6 @@ struct expr_ops expr_ops_rt = {
+ .get = nftnl_expr_rt_get,
+ .parse = nftnl_expr_rt_parse,
+ .build = nftnl_expr_rt_build,
+- .snprintf = nftnl_expr_rt_snprintf,
++ .snprintf_ = nftnl_expr_rt_snprintf,
+ .json_parse = nftnl_expr_rt_json_parse,
+ };
+diff --git a/src/expr/socket.c b/src/expr/socket.c
+index db160a1..4c50011 100644
+--- a/src/expr/socket.c
++++ b/src/expr/socket.c
+@@ -204,5 +204,5 @@ struct expr_ops expr_ops_socket = {
+ .get = nftnl_expr_socket_get,
+ .parse = nftnl_expr_socket_parse,
+ .build = nftnl_expr_socket_build,
+- .snprintf = nftnl_expr_socket_snprintf,
++ .snprintf_ = nftnl_expr_socket_snprintf,
+ };
+diff --git a/src/expr/target.c b/src/expr/target.c
+index ed4bf7d..2ef4078 100644
+--- a/src/expr/target.c
++++ b/src/expr/target.c
+@@ -249,6 +249,6 @@ struct expr_ops expr_ops_target = {
+ .get = nftnl_expr_target_get,
+ .parse = nftnl_expr_target_parse,
+ .build = nftnl_expr_target_build,
+- .snprintf = nftnl_expr_target_snprintf,
++ .snprintf_ = nftnl_expr_target_snprintf,
+ .json_parse = nftnl_expr_target_json_parse,
+ };
+diff --git a/src/obj/counter.c b/src/obj/counter.c
+index 332bb2b..edeb7be 100644
+--- a/src/obj/counter.c
++++ b/src/obj/counter.c
+@@ -182,6 +182,6 @@ struct obj_ops obj_ops_counter = {
+ .get = nftnl_obj_counter_get,
+ .parse = nftnl_obj_counter_parse,
+ .build = nftnl_obj_counter_build,
+- .snprintf = nftnl_obj_counter_snprintf,
++ .snprintf_ = nftnl_obj_counter_snprintf,
+ .json_parse = nftnl_obj_counter_json_parse,
+ };
+diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c
+index 62569fe..69757ff 100644
+--- a/src/obj/ct_helper.c
++++ b/src/obj/ct_helper.c
+@@ -208,6 +208,6 @@ struct obj_ops obj_ops_ct_helper = {
+ .get = nftnl_obj_ct_helper_get,
+ .parse = nftnl_obj_ct_helper_parse,
+ .build = nftnl_obj_ct_helper_build,
+- .snprintf = nftnl_obj_ct_helper_snprintf,
++ .snprintf_ = nftnl_obj_ct_helper_snprintf,
+ .json_parse = nftnl_obj_quota_json_parse,
+ };
+diff --git a/src/obj/limit.c b/src/obj/limit.c
+index 7f8bcf7..25018b6 100644
+--- a/src/obj/limit.c
++++ b/src/obj/limit.c
+@@ -236,6 +236,6 @@ struct obj_ops obj_ops_limit = {
+ .get = nftnl_obj_limit_get,
+ .parse = nftnl_obj_limit_parse,
+ .build = nftnl_obj_limit_build,
+- .snprintf = nftnl_obj_limit_snprintf,
++ .snprintf_ = nftnl_obj_limit_snprintf,
+ .json_parse = nftnl_obj_limit_json_parse,
+ };
+diff --git a/src/obj/quota.c b/src/obj/quota.c
+index 6d36784..ecaa8b1 100644
+--- a/src/obj/quota.c
++++ b/src/obj/quota.c
+@@ -203,6 +203,6 @@ struct obj_ops obj_ops_quota = {
+ .get = nftnl_obj_quota_get,
+ .parse = nftnl_obj_quota_parse,
+ .build = nftnl_obj_quota_build,
+- .snprintf = nftnl_obj_quota_snprintf,
++ .snprintf_ = nftnl_obj_quota_snprintf,
+ .json_parse = nftnl_obj_quota_json_parse,
+ };
+diff --git a/src/object.c b/src/object.c
+index d8278f3..9654b7b 100644
+--- a/src/object.c
++++ b/src/object.c
+@@ -429,7 +429,7 @@ static int nftnl_obj_export(char *buf, size_t size,
+ nftnl_buf_u64(&b, type, obj->handle, HANDLE);
+
+ if (obj->ops)
+- ret = obj->ops->snprintf(buf + b.len, size - b.len, type,
++ ret = obj->ops->snprintf_(buf + b.len, size - b.len, type,
+ flags, obj);
+
+ b.len += ret;
+@@ -450,7 +450,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size,
+ SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+
+ if (obj->ops) {
+- ret = obj->ops->snprintf(buf + offset, offset, type, flags,
++ ret = obj->ops->snprintf_(buf + offset, offset, type, flags,
+ obj);
+ SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+ }
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb
deleted file mode 100644
index ca01c0a..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
-SECTION = "libs"
-DEPENDS = "libmnl"
-PV .= "+git${SRCPV}"
-SRCREV = "4b89c0cb0883f638ff1abbc2ff47c43cdc26aac5"
-SRC_URI = "git://git.netfilter.org/libnftnl \
- file://0001-Declare-the-define-visivility-attribute-together.patch \
- file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \
- "
-SRC_URI[md5sum] = "82183867168eb6644926c48b991b8aac"
-SRC_URI[sha256sum] = "9bb66ecbc64b8508249402f0093829f44177770ad99f6042b86b3a467d963982"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb
new file mode 100644
index 0000000..77959a7
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
+SECTION = "libs"
+DEPENDS = "libmnl"
+PV .= "+git${SRCPV}"
+SRCREV = "d379dfcb6c94dcb93a8f16896572d6e162138e0f"
+SRC_URI = "git://git.netfilter.org/libnftnl \
+ file://0001-Move-exports-before-symbol-definition.patch \
+ file://0002-avoid-naming-local-function-as-one-of-printf-family.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch
deleted file mode 100644
index 86a3d53..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-From 0011985554e269e1cc8f8e5b41eb9dcd795ebe8c Mon Sep 17 00:00:00 2001
-From: Arturo Borrero Gonzalez <arturo@debian.org>
-Date: Wed, 25 Jan 2017 12:51:08 +0100
-Subject: [PATCH] payload: explicit network ctx assignment for icmp/icmp6 in
- special families
-
-In the inet, bridge and netdev families, we can add rules like these:
-
-% nft add rule inet t c ip protocol icmp icmp type echo-request
-% nft add rule inet t c ip6 nexthdr icmpv6 icmpv6 type echo-request
-
-However, when we print the ruleset:
-
-% nft list ruleset
-table inet t {
- chain c {
- icmpv6 type echo-request
- icmp type echo-request
- }
-}
-
-These rules we obtain can't be added again:
-
-% nft add rule inet t c icmp type echo-request
-<cmdline>:1:19-27: Error: conflicting protocols specified: inet-service vs. icmp
-add rule inet t c icmp type echo-request
- ^^^^^^^^^
-
-% nft add rule inet t c icmpv6 type echo-request
-<cmdline>:1:19-29: Error: conflicting protocols specified: inet-service vs. icmpv6
-add rule inet t c icmpv6 type echo-request
- ^^^^^^^^^^^
-
-Since I wouldn't expect an IP packet carrying ICMPv6, or IPv6 packet
-carrying ICMP, if the link layer is inet, the network layer protocol context
-can be safely update to 'ip' or 'ip6'.
-
-Moreover, nft currently generates a 'meta nfproto ipvX' depedency when
-using icmp or icmp6 in the inet family, and similar in netdev and bridge
-families.
-
-While at it, a bit of code factorization is introduced.
-
-Fixes: https://bugzilla.netfilter.org/show_bug.cgi?id=1073
-Signed-off-by: Arturo Borrero Gonzalez <arturo@debian.org>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 70 ++++++++++++++++---------------------
- tests/py/any/icmpX.t.netdev | 8 +++++
- tests/py/any/icmpX.t.netdev.payload | 36 +++++++++++++++++++
- tests/py/bridge/icmpX.t | 8 +++++
- tests/py/bridge/icmpX.t.payload | 36 +++++++++++++++++++
- tests/py/inet/icmpX.t | 8 +++++
- tests/py/inet/icmpX.t.payload | 36 +++++++++++++++++++
- 7 files changed, 162 insertions(+), 40 deletions(-)
- create mode 100644 tests/py/any/icmpX.t.netdev
- create mode 100644 tests/py/any/icmpX.t.netdev.payload
- create mode 100644 tests/py/bridge/icmpX.t
- create mode 100644 tests/py/bridge/icmpX.t.payload
- create mode 100644 tests/py/inet/icmpX.t
- create mode 100644 tests/py/inet/icmpX.t.payload
-
-diff --git a/src/payload.c b/src/payload.c
-index af533b2..74f8254 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -223,6 +223,34 @@ static int payload_add_dependency(struct eval_ctx *ctx,
- return 0;
- }
-
-+static const struct proto_desc *
-+payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr)
-+{
-+ switch (expr->payload.base) {
-+ case PROTO_BASE_LL_HDR:
-+ switch (ctx->pctx.family) {
-+ case NFPROTO_INET:
-+ return &proto_inet;
-+ case NFPROTO_BRIDGE:
-+ return &proto_eth;
-+ case NFPROTO_NETDEV:
-+ return &proto_netdev;
-+ default:
-+ break;
-+ }
-+ break;
-+ case PROTO_BASE_TRANSPORT_HDR:
-+ if (expr->payload.desc == &proto_icmp)
-+ return &proto_ip;
-+ if (expr->payload.desc == &proto_icmp6)
-+ return &proto_ip6;
-+ return &proto_inet_service;
-+ default:
-+ break;
-+ }
-+ return NULL;
-+}
-+
- /**
- * payload_gen_dependency - generate match expression on payload dependency
- *
-@@ -276,46 +304,8 @@ int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr,
-
- desc = ctx->pctx.protocol[expr->payload.base - 1].desc;
- /* Special case for mixed IPv4/IPv6 and bridge tables */
-- if (desc == NULL) {
-- switch (ctx->pctx.family) {
-- case NFPROTO_INET:
-- switch (expr->payload.base) {
-- case PROTO_BASE_LL_HDR:
-- desc = &proto_inet;
-- break;
-- case PROTO_BASE_TRANSPORT_HDR:
-- desc = &proto_inet_service;
-- break;
-- default:
-- break;
-- }
-- break;
-- case NFPROTO_BRIDGE:
-- switch (expr->payload.base) {
-- case PROTO_BASE_LL_HDR:
-- desc = &proto_eth;
-- break;
-- case PROTO_BASE_TRANSPORT_HDR:
-- desc = &proto_inet_service;
-- break;
-- default:
-- break;
-- }
-- break;
-- case NFPROTO_NETDEV:
-- switch (expr->payload.base) {
-- case PROTO_BASE_LL_HDR:
-- desc = &proto_netdev;
-- break;
-- case PROTO_BASE_TRANSPORT_HDR:
-- desc = &proto_inet_service;
-- break;
-- default:
-- break;
-- }
-- break;
-- }
-- }
-+ if (desc == NULL)
-+ desc = payload_gen_special_dependency(ctx, expr);
-
- if (desc == NULL)
- return expr_error(ctx->msgs, expr,
-diff --git a/tests/py/any/icmpX.t.netdev b/tests/py/any/icmpX.t.netdev
-new file mode 100644
-index 0000000..a327ce6
---- /dev/null
-+++ b/tests/py/any/icmpX.t.netdev
-@@ -0,0 +1,8 @@
-+:ingress;type filter hook ingress device lo priority 0
-+
-+*netdev;test-netdev;ingress
-+
-+ip protocol icmp icmp type echo-request;ok;icmp type echo-request
-+icmp type echo-request;ok
-+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request
-+icmpv6 type echo-request;ok
-diff --git a/tests/py/any/icmpX.t.netdev.payload b/tests/py/any/icmpX.t.netdev.payload
-new file mode 100644
-index 0000000..8b8107c
---- /dev/null
-+++ b/tests/py/any/icmpX.t.netdev.payload
-@@ -0,0 +1,36 @@
-+# ip protocol icmp icmp type echo-request
-+netdev test-netdev ingress
-+ [ meta load protocol => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# icmp type echo-request
-+netdev test-netdev ingress
-+ [ meta load protocol => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# ip6 nexthdr icmpv6 icmpv6 type echo-request
-+netdev test-netdev ingress
-+ [ meta load protocol => reg 1 ]
-+ [ cmp eq reg 1 0x0000dd86 ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-+# icmpv6 type echo-request
-+netdev test-netdev ingress
-+ [ meta load protocol => reg 1 ]
-+ [ cmp eq reg 1 0x0000dd86 ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-diff --git a/tests/py/bridge/icmpX.t b/tests/py/bridge/icmpX.t
-new file mode 100644
-index 0000000..8c0a597
---- /dev/null
-+++ b/tests/py/bridge/icmpX.t
-@@ -0,0 +1,8 @@
-+:input;type filter hook input priority 0
-+
-+*bridge;test-bridge;input
-+
-+ip protocol icmp icmp type echo-request;ok;icmp type echo-request
-+icmp type echo-request;ok
-+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request
-+icmpv6 type echo-request;ok
-diff --git a/tests/py/bridge/icmpX.t.payload b/tests/py/bridge/icmpX.t.payload
-new file mode 100644
-index 0000000..19efdd8
---- /dev/null
-+++ b/tests/py/bridge/icmpX.t.payload
-@@ -0,0 +1,36 @@
-+# ip protocol icmp icmp type echo-request
-+bridge test-bridge input
-+ [ payload load 2b @ link header + 12 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# icmp type echo-request
-+bridge test-bridge input
-+ [ payload load 2b @ link header + 12 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# ip6 nexthdr icmpv6 icmpv6 type echo-request
-+bridge test-bridge input
-+ [ payload load 2b @ link header + 12 => reg 1 ]
-+ [ cmp eq reg 1 0x0000dd86 ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-+# icmpv6 type echo-request
-+bridge test-bridge input
-+ [ payload load 2b @ link header + 12 => reg 1 ]
-+ [ cmp eq reg 1 0x0000dd86 ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-diff --git a/tests/py/inet/icmpX.t b/tests/py/inet/icmpX.t
-new file mode 100644
-index 0000000..1b467a1
---- /dev/null
-+++ b/tests/py/inet/icmpX.t
-@@ -0,0 +1,8 @@
-+:input;type filter hook input priority 0
-+
-+*inet;test-inet;input
-+
-+ip protocol icmp icmp type echo-request;ok;icmp type echo-request
-+icmp type echo-request;ok
-+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request
-+icmpv6 type echo-request;ok
-diff --git a/tests/py/inet/icmpX.t.payload b/tests/py/inet/icmpX.t.payload
-new file mode 100644
-index 0000000..81ca774
---- /dev/null
-+++ b/tests/py/inet/icmpX.t.payload
-@@ -0,0 +1,36 @@
-+# ip protocol icmp icmp type echo-request
-+inet test-inet input
-+ [ meta load nfproto => reg 1 ]
-+ [ cmp eq reg 1 0x00000002 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# icmp type echo-request
-+inet test-inet input
-+ [ meta load nfproto => reg 1 ]
-+ [ cmp eq reg 1 0x00000002 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# ip6 nexthdr icmpv6 icmpv6 type echo-request
-+inet test-inet input
-+ [ meta load nfproto => reg 1 ]
-+ [ cmp eq reg 1 0x0000000a ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-+# icmpv6 type echo-request
-+inet test-inet input
-+ [ meta load nfproto => reg 1 ]
-+ [ cmp eq reg 1 0x0000000a ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch
deleted file mode 100644
index 4d9e9d1..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 9ade8fb75f8963375b45b3f2973b8bb7aa66ad76 Mon Sep 17 00:00:00 2001
-From: Phil Sutter <phil@nwl.cc>
-Date: Thu, 16 Mar 2017 13:43:20 +0100
-Subject: [PATCH] proto: Add some exotic ICMPv6 types
-
-This adds support for matching on inverse ND messages as defined by
-RFC3122 (not implemented in Linux) and MLDv2 as defined by RFC3810.
-
-Note that ICMPV6_MLD2_REPORT macro is defined in linux/icmpv6.h but
-including that header leads to conflicts with symbols defined in
-netinet/icmp6.h.
-
-In addition to the above, "mld-listener-done" is introduced as an alias
-for "mld-listener-reduction".
-
-Signed-off-by: Phil Sutter <phil@nwl.cc>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/proto.c | 8 ++++++++
- tests/py/ip6/icmpv6.t | 8 ++++++--
- tests/py/ip6/icmpv6.t.payload.ip6 | 34 +++++++++++++++++++++++++++++++++-
- 3 files changed, 47 insertions(+), 3 deletions(-)
-
-diff --git a/src/proto.c b/src/proto.c
-index fb96530..79e9dbf 100644
---- a/src/proto.c
-+++ b/src/proto.c
-@@ -632,6 +632,10 @@ const struct proto_desc proto_ip = {
-
- #include <netinet/icmp6.h>
-
-+#define IND_NEIGHBOR_SOLICIT 141
-+#define IND_NEIGHBOR_ADVERT 142
-+#define ICMPV6_MLD2_REPORT 143
-+
- static const struct symbol_table icmp6_type_tbl = {
- .base = BASE_DECIMAL,
- .symbols = {
-@@ -643,6 +647,7 @@ static const struct symbol_table icmp6_type_tbl = {
- SYMBOL("echo-reply", ICMP6_ECHO_REPLY),
- SYMBOL("mld-listener-query", MLD_LISTENER_QUERY),
- SYMBOL("mld-listener-report", MLD_LISTENER_REPORT),
-+ SYMBOL("mld-listener-done", MLD_LISTENER_REDUCTION),
- SYMBOL("mld-listener-reduction", MLD_LISTENER_REDUCTION),
- SYMBOL("nd-router-solicit", ND_ROUTER_SOLICIT),
- SYMBOL("nd-router-advert", ND_ROUTER_ADVERT),
-@@ -650,6 +655,9 @@ static const struct symbol_table icmp6_type_tbl = {
- SYMBOL("nd-neighbor-advert", ND_NEIGHBOR_ADVERT),
- SYMBOL("nd-redirect", ND_REDIRECT),
- SYMBOL("router-renumbering", ICMP6_ROUTER_RENUMBERING),
-+ SYMBOL("ind-neighbor-solicit", IND_NEIGHBOR_SOLICIT),
-+ SYMBOL("ind-neighbor-advert", IND_NEIGHBOR_ADVERT),
-+ SYMBOL("mld2-listener-report", ICMPV6_MLD2_REPORT),
- SYMBOL_LIST_END
- },
- };
-diff --git a/tests/py/ip6/icmpv6.t b/tests/py/ip6/icmpv6.t
-index afbd451..a898fe3 100644
---- a/tests/py/ip6/icmpv6.t
-+++ b/tests/py/ip6/icmpv6.t
-@@ -11,7 +11,8 @@ icmpv6 type echo-request accept;ok
- icmpv6 type echo-reply accept;ok
- icmpv6 type mld-listener-query accept;ok
- icmpv6 type mld-listener-report accept;ok
--icmpv6 type mld-listener-reduction accept;ok
-+icmpv6 type mld-listener-done accept;ok
-+icmpv6 type mld-listener-reduction accept;ok;icmpv6 type mld-listener-done accept
- icmpv6 type nd-router-solicit accept;ok
- icmpv6 type nd-router-advert accept;ok
- icmpv6 type nd-neighbor-solicit accept;ok
-@@ -19,8 +20,11 @@ icmpv6 type nd-neighbor-advert accept;ok
- icmpv6 type nd-redirect accept;ok
- icmpv6 type parameter-problem accept;ok
- icmpv6 type router-renumbering accept;ok
-+icmpv6 type ind-neighbor-solicit accept;ok
-+icmpv6 type ind-neighbor-advert accept;ok
-+icmpv6 type mld2-listener-report accept;ok
- icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept;ok
--icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept;ok
-+icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept;ok
- icmpv6 type {mld-listener-query, time-exceeded, nd-router-advert} accept;ok
- icmpv6 type != {mld-listener-query, time-exceeded, nd-router-advert} accept;ok
-
-diff --git a/tests/py/ip6/icmpv6.t.payload.ip6 b/tests/py/ip6/icmpv6.t.payload.ip6
-index 9fe2496..30f58ca 100644
---- a/tests/py/ip6/icmpv6.t.payload.ip6
-+++ b/tests/py/ip6/icmpv6.t.payload.ip6
-@@ -54,6 +54,14 @@ ip6 test-ip6 input
- [ cmp eq reg 1 0x00000083 ]
- [ immediate reg 0 accept ]
-
-+# icmpv6 type mld-listener-done accept
-+ip6 test-ip6 input
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000084 ]
-+ [ immediate reg 0 accept ]
-+
- # icmpv6 type mld-listener-reduction accept
- ip6 test-ip6 input
- [ payload load 1b @ network header + 6 => reg 1 ]
-@@ -118,6 +126,30 @@ ip6 test-ip6 input
- [ cmp eq reg 1 0x0000008a ]
- [ immediate reg 0 accept ]
-
-+# icmpv6 type ind-neighbor-solicit accept
-+ip6 test-ip6 input
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x0000008d ]
-+ [ immediate reg 0 accept ]
-+
-+# icmpv6 type ind-neighbor-advert accept
-+ip6 test-ip6 input
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x0000008e ]
-+ [ immediate reg 0 accept ]
-+
-+# icmpv6 type mld2-listener-report accept
-+ip6 test-ip6 input
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x0000008f ]
-+ [ immediate reg 0 accept ]
-+
- # icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept
- __set%d test-ip6 3
- __set%d test-ip6 0
-@@ -129,7 +161,7 @@ ip6 test-ip6 input
- [ lookup reg 1 set __set%d ]
- [ immediate reg 0 accept ]
-
--# icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept
-+# icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept
- __set%d test-ip6 3
- __set%d test-ip6 0
- element 0000008a : 0 [end] element 00000084 : 0 [end] element 00000003 : 0 [end] element 00000085 : 0 [end]
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch
deleted file mode 100644
index 50cac30..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 8d8cfe5ad6ca460a5262fb15fdbef3601058c784 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Thu, 18 May 2017 13:30:54 +0200
-Subject: [PATCH 1/4] payload: split ll proto dependency into helper
-
-will be re-used in folloup patch for icmp/icmpv6 depenency
-handling.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 29 ++++++++++++++++++-----------
- 1 file changed, 18 insertions(+), 11 deletions(-)
-
-diff --git a/src/payload.c b/src/payload.c
-index 55128fe..31e5a02 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -224,21 +224,28 @@ static int payload_add_dependency(struct eval_ctx *ctx,
- }
-
- static const struct proto_desc *
-+payload_get_get_ll_hdr(const struct eval_ctx *ctx)
-+{
-+ switch (ctx->pctx.family) {
-+ case NFPROTO_INET:
-+ return &proto_inet;
-+ case NFPROTO_BRIDGE:
-+ return &proto_eth;
-+ case NFPROTO_NETDEV:
-+ return &proto_netdev;
-+ default:
-+ break;
-+ }
-+
-+ return NULL;
-+}
-+
-+static const struct proto_desc *
- payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr)
- {
- switch (expr->payload.base) {
- case PROTO_BASE_LL_HDR:
-- switch (ctx->pctx.family) {
-- case NFPROTO_INET:
-- return &proto_inet;
-- case NFPROTO_BRIDGE:
-- return &proto_eth;
-- case NFPROTO_NETDEV:
-- return &proto_netdev;
-- default:
-- break;
-- }
-- break;
-+ return payload_get_get_ll_hdr(ctx);
- case PROTO_BASE_TRANSPORT_HDR:
- if (expr->payload.desc == &proto_icmp)
- return &proto_ip;
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch
deleted file mode 100644
index 180edb3..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 9a1f2bbf3cd2417e0c10d18578e224abe2071d68 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Tue, 21 Mar 2017 19:47:22 +0100
-Subject: [PATCH 2/4] src: allow update of net base w. meta l4proto icmpv6
-
-nft add rule ip6 f i meta l4proto ipv6-icmp icmpv6 type nd-router-advert
-<cmdline>:1:50-60: Error: conflicting protocols specified: unknown vs. icmpv6
-
-add icmpv6 to nexthdr list so base gets updated correctly.
-
-Reported-by: Thomas Woerner <twoerner@redhat.com>
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/proto.c | 1 +
- tests/py/any/meta.t | 1 +
- tests/py/any/meta.t.payload | 7 +++++++
- 3 files changed, 9 insertions(+)
-
-diff --git a/src/proto.c b/src/proto.c
-index 79e9dbf..fcdfbe7 100644
---- a/src/proto.c
-+++ b/src/proto.c
-@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = {
- PROTO_LINK(IPPROTO_TCP, &proto_tcp),
- PROTO_LINK(IPPROTO_DCCP, &proto_dccp),
- PROTO_LINK(IPPROTO_SCTP, &proto_sctp),
-+ PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6),
- },
- .templates = {
- [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8),
-diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t
-index c3ac0a4..2ff942f 100644
---- a/tests/py/any/meta.t
-+++ b/tests/py/any/meta.t
-@@ -38,6 +38,7 @@ meta l4proto { 33, 55, 67, 88};ok;meta l4proto { 33, 55, 67, 88}
- meta l4proto != { 33, 55, 67, 88};ok
- meta l4proto { 33-55};ok
- meta l4proto != { 33-55};ok
-+meta l4proto ipv6-icmp icmpv6 type nd-router-advert;ok;icmpv6 type nd-router-advert
-
- meta priority root;ok
- meta priority none;ok
-diff --git a/tests/py/any/meta.t.payload b/tests/py/any/meta.t.payload
-index e432656..871f1ad 100644
---- a/tests/py/any/meta.t.payload
-+++ b/tests/py/any/meta.t.payload
-@@ -187,6 +187,13 @@ ip test-ip4 input
- [ byteorder reg 1 = hton(reg 1, 2, 1) ]
- [ lookup reg 1 set __set%d 0x1 ]
-
-+# meta l4proto ipv6-icmp icmpv6 type nd-router-advert
-+ip test-ip4 input
-+ [ meta load l4proto => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000086 ]
-+
- # meta mark 0x4
- ip test-ip4 input
- [ meta load mark => reg 1 ]
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch
deleted file mode 100644
index f600ae0..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 2366ed9ffcb4f5f5341f10f0a1d1a4688d37ad87 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Wed, 22 Mar 2017 15:08:48 +0100
-Subject: [PATCH 3/4] src: ipv6: switch implicit dependencies to meta l4proto
-
-when using rule like
-
-ip6 filter input tcp dport 22
-nft generates:
- [ payload load 1b @ network header + 6 => reg 1 ]
- [ cmp eq reg 1 0x00000006 ]
- [ payload load 2b @ transport header + 2 => reg 1 ]
- [ cmp eq reg 1 0x00001600 ]
-
-which is: ip6 filter input ip6 nexthdr tcp dport 22
-IOW, such a rule won't match if e.g. a fragment header is in place.
-
-This changes ip6_proto to use 'meta l4proto' which is the protocol header
-found by exthdr walk.
-
-A side effect is that for bridge we get a shorter dependency chain as it
-no longer needs to prepend 'ether proto ipv6' for old 'ip6 nexthdr' dep.
-
-Only problem:
-
-ip6 nexthdr tcp tcp dport 22
-will now inject a (useless) meta l4 dependency as ip6 nexthdr is no
-longer flagged as EXPR_F_PROTOCOL, to avoid this add a small helper
-that skips the unneded meta dependency in that case.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 19 ++++++++++++++++++-
- src/proto.c | 2 +-
- 2 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/src/payload.c b/src/payload.c
-index 31e5a02..38db15e 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -117,6 +117,23 @@ static const struct expr_ops payload_expr_ops = {
- .pctx_update = payload_expr_pctx_update,
- };
-
-+/*
-+ * ipv6 is special case, we normally use 'meta l4proto' to fetch the last
-+ * l4 header of the ipv6 extension header chain so we will also match
-+ * tcp after a fragmentation header, for instance.
-+ *
-+ * If user specifically asks for nexthdr x, treat is as a full
-+ * dependency rather than injecting another (useless) meta l4 one.
-+ */
-+static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type)
-+{
-+ if (type == desc->protocol_key ||
-+ (desc == &proto_ip6 && type == IP6HDR_NEXTHDR))
-+ return true;
-+
-+ return false;
-+}
-+
- struct expr *payload_expr_alloc(const struct location *loc,
- const struct proto_desc *desc,
- unsigned int type)
-@@ -129,7 +146,7 @@ struct expr *payload_expr_alloc(const struct location *loc,
- if (desc != NULL) {
- tmpl = &desc->templates[type];
- base = desc->base;
-- if (type == desc->protocol_key)
-+ if (proto_key_is_protocol(desc, type))
- flags = EXPR_F_PROTOCOL;
- } else {
- tmpl = &proto_unknown_template;
-diff --git a/src/proto.c b/src/proto.c
-index fcdfbe7..3b20a5f 100644
---- a/src/proto.c
-+++ b/src/proto.c
-@@ -707,7 +707,6 @@ const struct proto_desc proto_icmp6 = {
- const struct proto_desc proto_ip6 = {
- .name = "ip6",
- .base = PROTO_BASE_NETWORK_HDR,
-- .protocol_key = IP6HDR_NEXTHDR,
- .protocols = {
- PROTO_LINK(IPPROTO_ESP, &proto_esp),
- PROTO_LINK(IPPROTO_AH, &proto_ah),
-@@ -720,6 +719,7 @@ const struct proto_desc proto_ip6 = {
- PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6),
- },
- .templates = {
-+ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8),
- [IP6HDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4),
- [IP6HDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 4, 6),
- [IP6HDR_ECN] = HDR_BITFIELD("ecn", &ecn_type, 10, 2),
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch
deleted file mode 100644
index 00076d7..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From f21a7a4849b50c30341ec571813bd7fe37040ad3 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Thu, 18 May 2017 13:30:54 +0200
-Subject: [PATCH 4/4] payload: enforce ip/ip6 protocol depending on icmp or
- icmpv6
-
-After some discussion with Pablo we agreed to treat icmp/icmpv6 specially.
-
-in the case of a rule like 'tcp dport 22' the inet, bridge and netdev
-families only care about the lower layer protocol.
-
-In the icmpv6 case however we'd like to also enforce an ipv6 protocol check
-(and ipv4 check in icmp case).
-
-This extends payload_gen_special_dependency() to consider this.
-With this patch:
-
-add rule $pf filter input meta l4proto icmpv6
-add rule $pf filter input meta l4proto icmpv6 icmpv6 type echo-request
-add rule $pf filter input icmpv6 type echo-request
-
-will work in all tables and all families.
-For inet/bridge/netdev, an ipv6 protocol dependency is added; this will
-not match ipv4 packets with ip->protocol == icmpv6, EXCEPT in the case
-of the ip family.
-
-Its still possible to match icmpv6-in-ipv4 in inet/bridge/netdev with an
-explicit dependency:
-
-add rule inet f i ip protocol ipv6-icmp meta l4proto ipv6-icmp icmpv6 type ...
-
-Implicit dependencies won't get removed at the moment, so
- bridge ... icmp type echo-request
-will be shown as
- ether type ip meta l4proto 1 icmp type echo-request
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 27 +++++++++++++++++++++++----
- 1 file changed, 23 insertions(+), 4 deletions(-)
-
-diff --git a/src/payload.c b/src/payload.c
-index 38db15e..8796ee5 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -264,10 +264,29 @@ payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr)
- case PROTO_BASE_LL_HDR:
- return payload_get_get_ll_hdr(ctx);
- case PROTO_BASE_TRANSPORT_HDR:
-- if (expr->payload.desc == &proto_icmp)
-- return &proto_ip;
-- if (expr->payload.desc == &proto_icmp6)
-- return &proto_ip6;
-+ if (expr->payload.desc == &proto_icmp ||
-+ expr->payload.desc == &proto_icmp6) {
-+ const struct proto_desc *desc, *desc_upper;
-+ struct stmt *nstmt;
-+
-+ desc = ctx->pctx.protocol[PROTO_BASE_LL_HDR].desc;
-+ if (!desc) {
-+ desc = payload_get_get_ll_hdr(ctx);
-+ if (!desc)
-+ break;
-+ }
-+
-+ desc_upper = &proto_ip6;
-+ if (expr->payload.desc == &proto_icmp)
-+ desc_upper = &proto_ip;
-+
-+ if (payload_add_dependency(ctx, desc, desc_upper,
-+ expr, &nstmt) < 0)
-+ return NULL;
-+
-+ list_add_tail(&nstmt->list, &ctx->stmt->list);
-+ return desc_upper;
-+ }
- return &proto_inet_service;
- default:
- break;
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch
deleted file mode 100644
index 5b72437..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 0825c57d571bb7121e7048e198b9b023f7e7f358 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Sun, 7 May 2017 03:53:30 +0200
-Subject: [PATCH] src: ip: switch implicit dependencies to meta l4proto too
-
-after ip6 nexthdr also switch ip to meta l4proto instead of ip protocol.
-
-While its needed for ipv6 (due to extension headers) this isn't needed
-for ip but it has the advantage that
-
-tcp dport 22
-
-produces same expressions for ip/ip6/inet families.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 17 +++++++++++------
- src/proto.c | 3 ++-
- 2 files changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/src/payload.c b/src/payload.c
-index 8796ee5..11b6df3 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -118,17 +118,22 @@ static const struct expr_ops payload_expr_ops = {
- };
-
- /*
-- * ipv6 is special case, we normally use 'meta l4proto' to fetch the last
-- * l4 header of the ipv6 extension header chain so we will also match
-+ * We normally use 'meta l4proto' to fetch the last l4 header of the
-+ * ipv6 extension header chain so we will also match
- * tcp after a fragmentation header, for instance.
-+ * For consistency we also use meta l4proto for ipv4.
- *
-- * If user specifically asks for nexthdr x, treat is as a full
-- * dependency rather than injecting another (useless) meta l4 one.
-+ * If user specifically asks for nexthdr x, don't add another (useless)
-+ * meta dependency.
- */
- static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type)
- {
-- if (type == desc->protocol_key ||
-- (desc == &proto_ip6 && type == IP6HDR_NEXTHDR))
-+ if (type == desc->protocol_key)
-+ return true;
-+
-+ if (desc == &proto_ip6 && type == IP6HDR_NEXTHDR)
-+ return true;
-+ if (desc == &proto_ip && type == IPHDR_PROTOCOL)
- return true;
-
- return false;
-diff --git a/src/proto.c b/src/proto.c
-index 3b20a5f..2afedf7 100644
---- a/src/proto.c
-+++ b/src/proto.c
-@@ -587,7 +587,6 @@ const struct proto_desc proto_ip = {
- .name = "ip",
- .base = PROTO_BASE_NETWORK_HDR,
- .checksum_key = IPHDR_CHECKSUM,
-- .protocol_key = IPHDR_PROTOCOL,
- .protocols = {
- PROTO_LINK(IPPROTO_ICMP, &proto_icmp),
- PROTO_LINK(IPPROTO_ESP, &proto_esp),
-@@ -600,6 +599,7 @@ const struct proto_desc proto_ip = {
- PROTO_LINK(IPPROTO_SCTP, &proto_sctp),
- },
- .templates = {
-+ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8),
- [IPHDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4),
- [IPHDR_HDRLENGTH] = HDR_BITFIELD("hdrlength", &integer_type, 4, 4),
- [IPHDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 8, 6),
-@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = {
- PROTO_LINK(IPPROTO_TCP, &proto_tcp),
- PROTO_LINK(IPPROTO_DCCP, &proto_dccp),
- PROTO_LINK(IPPROTO_SCTP, &proto_sctp),
-+ PROTO_LINK(IPPROTO_ICMP, &proto_icmp),
- PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6),
- },
- .templates = {
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch
deleted file mode 100644
index 8dce90a..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-[PATCH] disable to make ntf.8 man
-
-Upstream-Status: Pending
-
-$DB2MAN do not support the xinclude parameter whether it is
-docbook2x-man or other, so disable to make ntf.8 man
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- doc/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index a92de7f..537c36b 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -1,5 +1,5 @@
- if BUILD_MAN
--man_MANS = nft.8
-+#man_MANS = nft.8
- endif
-
- if BUILD_PDF
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb
deleted file mode 100644
index 0ea7995..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Netfilter Tables userspace utillites"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
-SECTION = "net"
-
-DEPENDS = "libmnl libnftnl readline gmp"
-RRECOMMENDS_${PN} += "kernel-module-nf-tables \
- "
-
-SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \
- file://fix-to-generate-ntf.8.patch \
- \
- file://0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch \
- file://0002-proto-Add-some-exotic-ICMPv6-types.patch \
- \
- file://0003-payload-split-ll-proto-dependency-into-helper.patch \
- file://0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch \
- file://0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch \
- file://0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch \
- file://0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch \
- "
-SRC_URI[md5sum] = "4c005e76a15a029afaba71d7db21d065"
-SRC_URI[sha256sum] = "fe639239d801ce5890397f6f4391c58a934bfc27d8b7d5ef922692de5ec4ed43"
-
-ASNEEDED = ""
-
-inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb
new file mode 100644
index 0000000..aadf4f7
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Netfilter Tables userspace utillites"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
+
+DEPENDS = "libmnl libnftnl readline gmp bison-native"
+
+SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \
+ "
+SRC_URI[md5sum] = "d4dcb61df80aa544b2e142e91d937635"
+SRC_URI[sha256sum] = "ad8181b5fcb9ca572f444bed54018749588522ee97e4c21922648bb78d7e7e91"
+
+inherit autotools manpages pkgconfig
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[man] = "--enable--man-doc, --disable-man-doc"
+
+ASNEEDED = ""
+
+RRECOMMENDS_${PN} += "kernel-module-nf-tables"
diff --git a/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb b/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb
index c2d7156..8c6979c 100644
--- a/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb
+++ b/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb
@@ -5,13 +5,13 @@
DEPENDS = "openssl zlib icu"
-PV = "1.6.0"
+PV = "1.7.1"
SRC_URI = "git://github.com/znc/znc.git;name=znc \
git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket \
"
-SRCREV_znc = "f47e8465efa4e1cd948b9caae93ac401b4355df8"
-SRCREV_Csocket = "07b4437396122650e5b8fb3d014e820a5decf4ee"
+SRCREV_znc = "c426898b3a1b899dfe8a8b2a3eeb4b18d8be1bf2"
+SRCREV_Csocket = "e8d9e0bb248c521c2c7fa01e1c6a116d929c41b4"
# This constructs a composite revision based on multiple SRCREV's.
#
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
index 9487fdc..ebe867d 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
@@ -4,15 +4,15 @@
LICENSE = "SPL-1.0"
LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89"
-DEPENDS_append_libc-musl = " libtirpc"
+DEPENDS += "libtirpc"
SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \
file://gcc4.patch \
file://0001-rpcgen-Fix-printf-formats.patch \
"
SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642"
SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b"
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LIBS_append_libc-musl = " -ltirpc"
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LIBS += "-ltirpc"
do_configure () {
./configure --prefix=${prefix}
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
index 3990f7b..03dd963 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
@@ -2,7 +2,7 @@
SECTION = "net"
HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
LICENSE = "BSD-4-Clause"
-DEPENDS = "xinetd libgcrypt"
+DEPENDS = "xinetd libgcrypt virtual/crypt"
LIC_FILES_CHKSUM = "file://rsh/rsh.c;endline=32;md5=487b3c637bdc181d32b2a8543d41b606"
@@ -100,3 +100,6 @@
RDEPENDS_${PN}-server = "xinetd"
RDEPENDS_${PN}-server += "tcp-wrappers"
+
+# http://errors.yoctoproject.org/Errors/Details/186963/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch
new file mode 100644
index 0000000..5592646
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch
@@ -0,0 +1,79 @@
+From 5746b68ba9dda87586b3ac88fe84031cbc0015f7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 11 May 2018 12:20:03 -0700
+Subject: [PATCH] Link with libtirpc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ configure | 2 +-
+ rpc.rusersd/rusers_proc.c | 7 +------
+ rpc.rusersd/rusersd.c | 6 +-----
+ rup/rup.c | 2 +-
+ 4 files changed, 4 insertions(+), 13 deletions(-)
+
+diff --git a/configure b/configure
+index 85f6ca6..2d2d4b7 100755
+--- a/configure
++++ b/configure
+@@ -147,7 +147,7 @@ else
+ fi
+
+ LDFLAGS=
+-LIBS=
++LIBS="-ltirpc"
+
+ rm -f __conftest*
+
+diff --git a/rpc.rusersd/rusers_proc.c b/rpc.rusersd/rusers_proc.c
+index 9ae6306..f9e237c 100644
+--- a/rpc.rusersd/rusers_proc.c
++++ b/rpc.rusersd/rusers_proc.c
+@@ -57,12 +57,7 @@ char rp_rcsid[] =
+ #define RUT_TIME ut_time
+ #endif
+
+-/* Glibc strikes again */
+-#ifdef __GLIBC__
+- #include <rpcsvc/rusers.h>
+-#else
+- #include "rusers.h"
+-#endif
++#include "rusers.h"
+
+ void rusers_service(struct svc_req *rqstp, SVCXPRT *transp);
+
+diff --git a/rpc.rusersd/rusersd.c b/rpc.rusersd/rusersd.c
+index 762be9b..dd355ac 100644
+--- a/rpc.rusersd/rusersd.c
++++ b/rpc.rusersd/rusersd.c
+@@ -38,11 +38,7 @@ char rusersd_rcsid[] =
+ #include <rpc/pmap_clnt.h>
+ #include <unistd.h>
+ #include <grp.h>
+-#ifdef __GLIBC__
+- #include <rpcsvc/rusers.h>
+-#else
+- #include "rusers.h"
+-#endif
++#include "rusers.h"
+
+ #include "../version.h"
+
+diff --git a/rup/rup.c b/rup/rup.c
+index e5669ff..887f89d 100644
+--- a/rup/rup.c
++++ b/rup/rup.c
+@@ -48,7 +48,7 @@ char rcsid[] = "$Id: rup.c,v 1.8 2000/07/22 19:51:40 dholland Exp $";
+
+ #undef FSHIFT /* Use protocol's shift and scale values */
+ #undef FSCALE
+-#include <rpcsvc/rstat.h>
++#include "rstat.h"
+
+ #include "../version.h"
+
+--
+2.17.0
+
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
index 459e39e..9b8af27 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
@@ -9,6 +9,7 @@
SRC_URI = "http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \
http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}-8.diff.gz;name=patch8 \
file://rpc.rusersd-Makefile-fix-parallel-build-issue.patch \
+ file://0001-Link-with-libtirpc.patch \
"
SRC_URI[archive.md5sum] = "dc99a80b9fde2ab427c874f88f1c1602"
@@ -18,10 +19,14 @@
inherit autotools-brokensep
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LIBS += "-ltirpc"
+
do_configure () {
./configure --prefix=${prefix}
echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
echo "USE_GLIBC=1" >> MCONFIG
+ echo "LIBS=${LIBS}" >> MCONFIG
}
do_install () {
@@ -68,3 +73,6 @@
${bindir}/.debug ${sbindir}/.debug"
RDEPENDS_${PN}-server = "tcp-wrappers xinetd rpcbind"
+
+# http://errors.yoctoproject.org/Errors/Details/186962/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch
new file mode 100644
index 0000000..945785d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch
@@ -0,0 +1,114 @@
+From 06ed6a6bf25a22902846097d6b6c97e070c2c326 Mon Sep 17 00:00:00 2001
+From: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp>
+Date: Fri, 1 Jun 2018 14:27:35 +0900
+Subject: [PATCH] telnetd: Fix deadlock on cleanup
+
+The cleanup function in telnetd is called both directly and on SIGCHLD
+signals. This, unfortunately, triggered a deadlock in eglibc 2.9 while
+running on a 2.6.31.11 kernel.
+
+What we were seeing is hangs like these:
+
+ (gdb) bt
+ #0 0xb7702424 in __kernel_vsyscall ()
+ #1 0xb7658e61 in __lll_lock_wait_private () from ./lib/libc.so.6
+ #2 0xb767e7b5 in _L_lock_15 () from ./lib/libc.so.6
+ #3 0xb767e6e0 in utmpname () from ./lib/libc.so.6
+ #4 0xb76bcde7 in logout () from ./lib/libutil.so.1
+ #5 0x0804c827 in cleanup ()
+ #6 <signal handler called>
+ #7 0xb7702424 in __kernel_vsyscall ()
+ #8 0xb7641003 in __fcntl_nocancel () from ./lib/libc.so.6
+ #9 0xb767e0c3 in getutline_r_file () from ./lib/libc.so.6
+ #10 0xb767d675 in getutline_r () from ./lib/libc.so.6
+ #11 0xb76bce42 in logout () from ./lib/libutil.so.1
+ #12 0x0804c827 in cleanup ()
+ #13 0x0804a0b5 in telnet ()
+ #14 0x0804a9c3 in main ()
+
+and what has happened here is that the user closes the telnet session
+via the escape character. This causes telnetd to call cleanup in frame
+the SIGCHLD signal is delivered while telnetd is executing cleanup.
+
+Telnetd then calls the signal handler for SIGCHLD, which is cleanup().
+Ouch. The actual deadlock is in libc. getutline_r in frame #10 gets the
+__libc_utmp_lock lock, and utmpname above does the same thing in frame
+
+The fix registers the SIGCHLD handler as cleanup_sighandler, and makes
+cleanup disable the SIGCHLD signal before calling cleanup_sighandler.
+
+Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
+
+The patch was imported from the Ubuntu netkit-telnet package.
+(https://bugs.launchpad.net/ubuntu/+source/netkit-telnet/+bug/507455)
+
+A previous patch declaring attributes of functions, but it is not used
+in upstream.
+
+Signed-off-by: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp>
+---
+ telnetd/ext.h | 1 +
+ telnetd/sys_term.c | 17 ++++++++++++++++-
+ telnetd/telnetd.c | 2 +-
+ 3 files changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/telnetd/ext.h b/telnetd/ext.h
+index b98d6ec..08f9d07 100644
+--- a/telnetd/ext.h
++++ b/telnetd/ext.h
+@@ -97,6 +97,7 @@ void add_slc(int, int, int);
+ void check_slc(void);
+ void change_slc(int, int, int);
+ void cleanup(int);
++void cleanup_sighandler(int);
+ void clientstat(int, int, int);
+ void copy_termbuf(char *, int);
+ void deferslc(void);
+diff --git a/telnetd/sys_term.c b/telnetd/sys_term.c
+index 5b4aa84..c4fb0f7 100644
+--- a/telnetd/sys_term.c
++++ b/telnetd/sys_term.c
+@@ -719,7 +719,7 @@ static void addarg(struct argv_stuff *avs, const char *val) {
+ * This is the routine to call when we are all through, to
+ * clean up anything that needs to be cleaned up.
+ */
+-void cleanup(int sig) {
++void cleanup_sighandler(int sig) {
+ char *p;
+ (void)sig;
+
+@@ -742,3 +742,18 @@ void cleanup(int sig) {
+ shutdown(net, 2);
+ exit(0);
+ }
++
++void cleanup(int sig) {
++ sigset_t mask, oldmask;
++
++ /* Set up the mask of signals to temporarily block. */
++ sigemptyset (&mask);
++ sigaddset (&mask, SIGCHLD);
++
++ /* Block SIGCHLD while running cleanup */
++ sigprocmask (SIG_BLOCK, &mask, &oldmask);
++
++ cleanup_sighandler(sig);
++ /* Technically not needed since cleanup_sighandler exits */
++ sigprocmask (SIG_UNBLOCK, &mask, NULL);
++}
+diff --git a/telnetd/telnetd.c b/telnetd/telnetd.c
+index 9ace838..788919c 100644
+--- a/telnetd/telnetd.c
++++ b/telnetd/telnetd.c
+@@ -833,7 +833,7 @@ void telnet(int f, int p)
+ signal(SIGTTOU, SIG_IGN);
+ #endif
+
+- signal(SIGCHLD, cleanup);
++ signal(SIGCHLD, cleanup_sighandler);
+
+ #ifdef TIOCNOTTY
+ {
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
index 807b566..db4b1c9 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
@@ -5,14 +5,18 @@
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef"
-SRC_URI = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${BP}.tar.gz \
+SRC_URI = "http://ftp.linux.org.uk/pub/linux/Networking/netkit/${BP}.tar.gz \
file://To-aviod-buffer-overflow-in-telnet.patch \
file://Warning-fix-in-the-step-of-install.patch \
file://telnet-xinetd \
file://cross-compile.patch \
file://0001-telnet-telnetd-Fix-print-format-strings.patch \
+ file://0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch \
"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar"
+
EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \
MANMODE=644 MANDIR=${mandir}"
@@ -46,16 +50,16 @@
install -p -m644 ${WORKDIR}/telnet-xinetd ${D}/etc/xinetd.d/telnet
}
-pkg_postinst_${PN} () {
-#!/bin/sh
- update-alternatives --install ${bindir}/telnet telnet telnet.${PN} 100
-}
+inherit update-alternatives
-pkg_prerm_${PN} () {
-#!/bin/sh
- update-alternatives --remove telnet telnet.${PN} 100
-}
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN} = "telnet"
+ALTERNATIVE_LINK_NAME[telnet] = "${bindir}/telnet"
+ALTERNATIVE_TARGET[telnet] = "${bindir}/telnet.${PN}"
SRC_URI[md5sum] = "d6beabaaf53fe6e382c42ce3faa05a36"
SRC_URI[sha256sum] = "9c80d5c7838361a328fb6b60016d503def9ce53ad3c589f3b08ff71a2bb88e00"
FILES_${PN} += "${sbindir}/in.* ${libdir}/* ${sysconfdir}/xinetd.d/*"
+
+# http://errors.yoctoproject.org/Errors/Details/186954/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.3.bb b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.3.bb
new file mode 100644
index 0000000..8f02847
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.3.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Babel is a loop-avoiding distance-vector routing protocol"
+DESCRIPTION = "\
+Babel is a loop-avoiding distance-vector routing protocol for IPv6 and \
+IPv4 with fast convergence properties. It is based on the ideas in DSDV, AODV \
+and Cisco's EIGRP, but is designed to work well not only in wired networks \
+but also in wireless mesh networks, and has been extended with support \
+for overlay networks. Babel is in the process of becoming an IETF Standard. \
+"
+HOMEPAGE = "https://www.irif.fr/~jch/software/babel/"
+SECTION = "net"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=411a48ac3c2e9e0911b8dd9aed26f754"
+
+SRC_URI = "git://github.com/jech/babeld.git;protocol=git"
+SRCREV = "535184173fcde5ddc43020cd197d01d1ea0e9a8b"
+
+S = "${WORKDIR}/git"
+
+do_compile () {
+ oe_runmake babeld
+}
+
+do_install () {
+ oe_runmake install.minimal PREFIX=${D}
+}
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch b/meta-openembedded/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch
new file mode 100644
index 0000000..d5e242a
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch
@@ -0,0 +1,97 @@
+From d527a0b7b63e43263384540b5525714484bb089f Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Mon, 3 Sep 2018 14:40:56 +0800
+Subject: [PATCH] libfdcore/sctp.c: update the old sctp api check
+
+The initial sctp api check for freediameter as below:
+ ===
+ commit d3c5e991cb532ea09684d69fb4d0d58e9bc39a0c
+ Author: Sebastien Decugis <sdecugis@freediameter.net>
+ Date: Mon Jun 3 12:05:37 2013 +0800
+
+ Add some compliancy to RFC6458. Not tested however as Ubuntu does not support this yet
+
+ [snip]
+ +/* Use old draft-ietf-tsvwg-sctpsocket-17 API ? If not defined, RFC6458 API will be used */
+ +/* #define OLD_SCTP_SOCKET_API */
+ +
+ +/* Automatically fallback to old API if some of the new symbols are not defined */
+ +#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)))
+ +# define OLD_SCTP_SOCKET_API
+ +#endif
+ ===
+
+SCTP_RECVRCVINFO is defined in <linux/sctp.h>,
+but <linux/sctp.h> is't included in the source code
+previouly. So defined(SCTP_RECVRCVINFO) can be 0
+and it make old sctp socket api definiton in effect
+as below:
+ # define OLD_SCTP_SOCKET_API
+
+After lksctp-tools upgrade to 1.0.18, there is below
+commit introduced:
+===
+commit 3c8bd0d26b64611c690f33f5802c734b0642c1d8
+Author: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+Date: Tue Apr 17 20:17:14 2018 -0300
+
+ sctp.h: make use kernel UAPI header
+
+ and with that, remove tons of duplicated declarations. These were
+ lagging behind the kernel header, which is always the most updated one,
+ and as the library is intended to be run only on Linux, there is no
+ reason that we cannot re-use what is in there.
+
+ That said, this patch drops all duplicated declarations and includes
+ linux/sctp.h to bring them into lksctp-tools.
+
+ Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+
+ [snip]
+ #include <stdint.h>
+ #include <linux/types.h>
+ #include <sys/socket.h>
++#include <linux/sctp.h>
+ [snip]
+===
+
+And above logic make defined(SCTP_RECVRCVINFO) to
+be 1 and the old sctp socket api macro as below
+won't be defined.
+ # define OLD_SCTP_SOCKET_API
+
+And it encouters below build error:
+| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1262:9: error: 'SCTP_SEND_FAILED_EVENT' undeclared (first use in this function); did you mean 'SCTP_SEND_FAILED'?
+ case SCTP_SEND_FAILED_EVENT:
+ ^~~~~~~~~~~~~~~~~~~~~~
+ SCTP_SEND_FAILED
+| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1262:9: note: each undeclared identifier is reported only once for each function it appears in
+| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1274:9: error: 'SCTP_NOTIFICATIONS_STOPPED_EVENT' undeclared (first use in this function); did you mean 'SCTP_AUTHENTICATION_EVENT'?
+ case SCTP_NOTIFICATIONS_STOPPED_EVENT:
+
+Update the old sctp socket api check to fix
+the above build error.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ libfdcore/sctp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libfdcore/sctp.c b/libfdcore/sctp.c
+index c80a497..83440c7 100644
+--- a/libfdcore/sctp.c
++++ b/libfdcore/sctp.c
+@@ -48,7 +48,7 @@
+ /* #define OLD_SCTP_SOCKET_API */
+
+ /* Automatically fallback to old API if some of the new symbols are not defined */
+-#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)))
++#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_NOTIFICATIONS_STOPPED_EVENT)) || (!defined(SCTP_SNDINFO)))
+ # define OLD_SCTP_SOCKET_API
+ #endif
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb b/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb
index c556eb4..b8818fa 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb
@@ -7,7 +7,7 @@
HOMEPAGE = "http://www.freediameter.net"
-DEPENDS = "flex bison cmake-native libgcrypt gnutls libidn lksctp-tools virtual/kernel"
+DEPENDS = "flex bison cmake-native libgcrypt gnutls libidn lksctp-tools virtual/kernel bison-native"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -20,6 +20,7 @@
file://freediameter.init \
${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://install_test.patch file://run-ptest file://pass-ptest-env.patch', '', d)} \
file://freeDiameter.conf \
+ file://0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch \
"
SRC_URI[md5sum] = "61b1062aa144b5f12eed514611e6d697"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch
deleted file mode 100644
index b14b761..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From a92628a163ebf1ea62220684736300461c003875 Mon Sep 17 00:00:00 2001
-From: Niels Baggesen <nba@users.sourceforge.net>
-Date: Mon, 26 Jan 2015 20:26:06 +0100
-Subject: [PATCH] BUG#a2584: Fix snmptrap to use clientaddr from snmp.conf.
- Thanks to rizwan
-
-Upstream-Status: backport
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- snmplib/transports/snmpUDPIPv6Domain.c | 21 +++++++++++++++++++++
- 1 file changed, 21 insertions(+)
-
-Index: net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/transports/snmpUDPIPv6Domain.c
-+++ net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c
-@@ -286,6 +286,27 @@ netsnmp_udp6_transport(struct sockaddr_i
- return NULL;
- #endif /* NETSNMP_NO_LISTEN_SUPPORT */
- } else {
-+ char *client_socket = NULL;
-+ /*
-+ * This is a client session. If we've been given a
-+ * client address to send from, then bind to that.
-+ * Otherwise the send will use "something sensible".
-+ */
-+
-+ client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-+ NETSNMP_DS_LIB_CLIENT_ADDR);
-+ if (client_socket) {
-+ struct sockaddr_in6 client_addr;
-+ netsnmp_sockaddr_in6_2(&client_addr, client_socket, NULL);
-+ rc = bind(t->sock, (struct sockaddr *)&client_addr,
-+ sizeof(struct sockaddr_in6));
-+ if ( rc != 0 ) {
-+ DEBUGMSGTL(("netsnmp_udp6", "failed to bind for clientaddr: %d %s\n",
-+ errno, strerror(errno)));
-+ netsnmp_socketbase_close(t);
-+ netsnmp_transport_free(t);
-+ }
-+ }
- /*
- * This is a client session. Save the address in the
- * transport-specific data pointer for later use by netsnmp_udp6_send.
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch
deleted file mode 100644
index 7314ab1..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch
+++ /dev/null
@@ -1,2524 +0,0 @@
-net-snmp: remove U64 typedef
-
-From git://git.code.sf.net/p/net-snmp/code
-
-Upstream-Status: Backport (unmodified)
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-From 477b4307ef12ddce3b6a9205e0bdddbfb2e0e9b6 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche@acm.org>
-Date: Sat, 20 Feb 2016 18:58:18 -0800
-Subject: [PATCH 1/1] Remove U64 typedef
-
-The U64 typedef conflicts with a typedef in a Perl header file. Hence
-remove the U64 typedef from the Net-SNMP header files. This patch does
-not modify the Net-SNMP ABI.
----
- agent/mibgroup/if-mib/ifXTable/ifXTable.c | 16 +-
- agent/mibgroup/if-mib/ifXTable/ifXTable.h | 48 +-
- .../mibgroup/if-mib/ifXTable/ifXTable_interface.c | 32 +-
- .../ip-mib/data_access/systemstats_common.c | 2 +-
- .../ipIfStatsTable/ipIfStatsTable_data_get.c | 28 +-
- .../ipIfStatsTable/ipIfStatsTable_data_get.h | 28 +-
- .../ipIfStatsTable/ipIfStatsTable_interface.c | 56 +-
- .../ip-mib/ipSystemStatsTable/ipSystemStatsTable.c | 28 +-
- .../ip-mib/ipSystemStatsTable/ipSystemStatsTable.h | 921 ++-------------------
- .../ipSystemStatsTable_interface.c | 56 +-
- include/net-snmp/data_access/ipstats.h | 42 +-
- include/net-snmp/library/int64.h | 34 +-
- snmplib/int64.c | 38 +-
- snmplib/read_config.c | 6 +-
- testing/fulltests/unit-tests/T015int64_clib.c | 10 +-
- 15 files changed, 274 insertions(+), 1071 deletions(-)
-
-Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable.c
-+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.c
-@@ -722,7 +722,7 @@ The total number of octets received on t
- */
- int
- ifHCInOctets_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInOctets_val_ptr)
-+ struct counter64 *ifHCInOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCInOctets_val_ptr);
-@@ -779,7 +779,7 @@ The number of packets, delivered by this
- */
- int
- ifHCInUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInUcastPkts_val_ptr)
-+ struct counter64 *ifHCInUcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCInUcastPkts_val_ptr);
-@@ -838,7 +838,7 @@ The number of packets, delivered by this
- */
- int
- ifHCInMulticastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInMulticastPkts_val_ptr)
-+ struct counter64 *ifHCInMulticastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCInMulticastPkts_val_ptr);
-@@ -897,7 +897,7 @@ The number of packets, delivered by this
- */
- int
- ifHCInBroadcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInBroadcastPkts_val_ptr)
-+ struct counter64 *ifHCInBroadcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCInBroadcastPkts_val_ptr);
-@@ -955,7 +955,7 @@ The total number of octets transmitted o
- */
- int
- ifHCOutOctets_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutOctets_val_ptr)
-+ struct counter64 *ifHCOutOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCOutOctets_val_ptr);
-@@ -1013,7 +1013,7 @@ The total number of packets that higher-
- */
- int
- ifHCOutUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutUcastPkts_val_ptr)
-+ struct counter64 *ifHCOutUcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCOutUcastPkts_val_ptr);
-@@ -1074,7 +1074,7 @@ The total number of packets that higher-
- */
- int
- ifHCOutMulticastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutMulticastPkts_val_ptr)
-+ struct counter64 *ifHCOutMulticastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCOutMulticastPkts_val_ptr);
-@@ -1134,7 +1134,7 @@ The total number of packets that higher-
- */
- int
- ifHCOutBroadcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutBroadcastPkts_val_ptr)
-+ struct counter64 *ifHCOutBroadcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCOutBroadcastPkts_val_ptr);
-Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.h
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable.h
-+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.h
-@@ -143,28 +143,28 @@ config_require(if-mib/ifXTable/ifXTable_
- u_long *
- ifOutBroadcastPkts_val_ptr);
- int ifHCInOctets_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInOctets_val_ptr);
-+ struct counter64 *ifHCInOctets_val_ptr);
- int ifHCInUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInUcastPkts_val_ptr);
-+ struct counter64 *ifHCInUcastPkts_val_ptr);
- int ifHCInMulticastPkts_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ifHCInMulticastPkts_val_ptr);
- int ifHCInBroadcastPkts_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ifHCInBroadcastPkts_val_ptr);
- int ifHCOutOctets_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutOctets_val_ptr);
-+ struct counter64 *ifHCOutOctets_val_ptr);
- int ifHCOutUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutUcastPkts_val_ptr);
-+ struct counter64 *ifHCOutUcastPkts_val_ptr);
- int ifHCOutMulticastPkts_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ifHCOutMulticastPkts_val_ptr);
- int ifHCOutBroadcastPkts_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ifHCOutBroadcastPkts_val_ptr);
- int ifLinkUpDownTrapEnable_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-@@ -284,86 +284,86 @@ config_require(if-mib/ifXTable/ifXTable_
-
- int ifHCInOctets_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCInOctets_val);
-+ struct counter64 ifHCInOctets_val);
- int ifHCInOctets_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCInOctets_set(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 ifHCInOctets_val);
-+ struct counter64 ifHCInOctets_val);
- int ifHCInOctets_undo(ifXTable_rowreq_ctx * rowreq_ctx);
-
- int ifHCInUcastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCInUcastPkts_val);
-+ struct counter64 ifHCInUcastPkts_val);
- int ifHCInUcastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCInUcastPkts_set(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 ifHCInUcastPkts_val);
-+ struct counter64 ifHCInUcastPkts_val);
- int ifHCInUcastPkts_undo(ifXTable_rowreq_ctx * rowreq_ctx);
-
- int ifHCInMulticastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64
-+ struct counter64
- ifHCInMulticastPkts_val);
- int ifHCInMulticastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCInMulticastPkts_set(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCInMulticastPkts_val);
-+ struct counter64 ifHCInMulticastPkts_val);
- int ifHCInMulticastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
- int ifHCInBroadcastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64
-+ struct counter64
- ifHCInBroadcastPkts_val);
- int ifHCInBroadcastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCInBroadcastPkts_set(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCInBroadcastPkts_val);
-+ struct counter64 ifHCInBroadcastPkts_val);
- int ifHCInBroadcastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
- int ifHCOutOctets_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCOutOctets_val);
-+ struct counter64 ifHCOutOctets_val);
- int ifHCOutOctets_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCOutOctets_set(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 ifHCOutOctets_val);
-+ struct counter64 ifHCOutOctets_val);
- int ifHCOutOctets_undo(ifXTable_rowreq_ctx * rowreq_ctx);
-
- int ifHCOutUcastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCOutUcastPkts_val);
-+ struct counter64 ifHCOutUcastPkts_val);
- int ifHCOutUcastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCOutUcastPkts_set(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 ifHCOutUcastPkts_val);
-+ struct counter64 ifHCOutUcastPkts_val);
- int ifHCOutUcastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
- int ifHCOutMulticastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64
-+ struct counter64
- ifHCOutMulticastPkts_val);
- int ifHCOutMulticastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCOutMulticastPkts_set(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCOutMulticastPkts_val);
-+ struct counter64 ifHCOutMulticastPkts_val);
- int ifHCOutMulticastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
- int ifHCOutBroadcastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64
-+ struct counter64
- ifHCOutBroadcastPkts_val);
- int ifHCOutBroadcastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCOutBroadcastPkts_set(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCOutBroadcastPkts_val);
-+ struct counter64 ifHCOutBroadcastPkts_val);
- int ifHCOutBroadcastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
-Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
-+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
-@@ -729,72 +729,72 @@ _ifXTable_get_column(ifXTable_rowreq_ctx
- * ifHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCINOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCInOctets_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCInOctets_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCInUcastPkts(7)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCINUCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCInUcastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCInUcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCInMulticastPkts(8)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCINMULTICASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCInMulticastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCInMulticastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCInBroadcastPkts(9)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCINBROADCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCInBroadcastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCInBroadcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCOutOctets(10)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCOUTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCOutOctets_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCOutOctets_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCOutUcastPkts(11)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCOUTUCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCOutUcastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCOutUcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCOutMulticastPkts(12)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCOUTMULTICASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCOutMulticastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCOutMulticastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCOutBroadcastPkts(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCOUTBROADCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCOutBroadcastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCOutBroadcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/data_access/systemstats_common.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/data_access/systemstats_common.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/data_access/systemstats_common.c
-@@ -264,7 +264,7 @@ _calculate_entries(netsnmp_systemstats_e
- && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES]
- && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS]) {
-
-- U64 tmp, tmp2, tmp3;
-+ struct counter64 tmp, tmp2, tmp3;
- tmp = entry->stats.HCOutRequests;
- u64Incr(&tmp, &entry->stats.HCOutForwDatagrams);
- u64Incr(&tmp, &entry->stats.HCOutFragCreates);
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c
-@@ -270,7 +270,7 @@ The total number of input IP datagrams r
- */
- int
- ipIfStatsHCInReceives_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInReceives_val_ptr)
-+ struct counter64 *ipIfStatsHCInReceives_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInReceives_val_ptr);
-@@ -395,7 +395,7 @@ The total number of octets received in i
- */
- int
- ipIfStatsHCInOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInOctets_val_ptr)
-+ struct counter64 *ipIfStatsHCInOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInOctets_val_ptr);
-@@ -862,7 +862,7 @@ The number of input datagrams for which
- */
- int
- ipIfStatsHCInForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInForwDatagrams_val_ptr)
-+ struct counter64 *ipIfStatsHCInForwDatagrams_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInForwDatagrams_val_ptr);
-@@ -1267,7 +1267,7 @@ The total number of datagrams successful
- */
- int
- ipIfStatsHCInDelivers_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInDelivers_val_ptr)
-+ struct counter64 *ipIfStatsHCInDelivers_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInDelivers_val_ptr);
-@@ -1396,7 +1396,7 @@ The total number of IP datagrams that lo
- */
- int
- ipIfStatsHCOutRequests_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutRequests_val_ptr)
-+ struct counter64 *ipIfStatsHCOutRequests_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutRequests_val_ptr);
-@@ -1532,7 +1532,7 @@ The number of datagrams for which this e
- */
- int
- ipIfStatsHCOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutForwDatagrams_val_ptr)
-+ struct counter64 *ipIfStatsHCOutForwDatagrams_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutForwDatagrams_val_ptr);
-@@ -1999,7 +1999,7 @@ The total number of IP datagrams that th
- */
- int
- ipIfStatsHCOutTransmits_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutTransmits_val_ptr)
-+ struct counter64 *ipIfStatsHCOutTransmits_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutTransmits_val_ptr);
-@@ -2123,7 +2123,7 @@ The total number of octets in IP datagra
- */
- int
- ipIfStatsHCOutOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutOctets_val_ptr)
-+ struct counter64 *ipIfStatsHCOutOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutOctets_val_ptr);
-@@ -2245,7 +2245,7 @@ The number of IP multicast datagrams rec
- */
- int
- ipIfStatsHCInMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInMcastPkts_val_ptr)
-+ struct counter64 *ipIfStatsHCInMcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInMcastPkts_val_ptr);
-@@ -2372,7 +2372,7 @@ The total number of octets received in I
- */
- int
- ipIfStatsHCInMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInMcastOctets_val_ptr)
-+ struct counter64 *ipIfStatsHCInMcastOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInMcastOctets_val_ptr);
-@@ -2497,7 +2497,7 @@ The number of IP multicast datagrams tra
- */
- int
- ipIfStatsHCOutMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutMcastPkts_val_ptr)
-+ struct counter64 *ipIfStatsHCOutMcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutMcastPkts_val_ptr);
-@@ -2621,7 +2621,7 @@ The total number of octets transmitted i
- */
- int
- ipIfStatsHCOutMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutMcastOctets_val_ptr)
-+ struct counter64 *ipIfStatsHCOutMcastOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutMcastOctets_val_ptr);
-@@ -2743,7 +2743,7 @@ The number of IP broadcast datagrams rec
- */
- int
- ipIfStatsHCInBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInBcastPkts_val_ptr)
-+ struct counter64 *ipIfStatsHCInBcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInBcastPkts_val_ptr);
-@@ -2865,7 +2865,7 @@ The number of IP broadcast datagrams tra
- */
- int
- ipIfStatsHCOutBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutBcastPkts_val_ptr)
-+ struct counter64 *ipIfStatsHCOutBcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutBcastPkts_val_ptr);
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
-@@ -50,7 +50,7 @@ extern "C" {
- ipIfStatsInReceives_val_ptr);
- int ipIfStatsHCInReceives_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInReceives_val_ptr);
- int ipIfStatsInOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -58,7 +58,7 @@ extern "C" {
- ipIfStatsInOctets_val_ptr);
- int ipIfStatsHCInOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInOctets_val_ptr);
- int ipIfStatsInHdrErrors_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -87,7 +87,7 @@ extern "C" {
- int
- ipIfStatsHCInForwDatagrams_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInForwDatagrams_val_ptr);
- int ipIfStatsReasmReqds_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -111,7 +111,7 @@ extern "C" {
- ipIfStatsInDelivers_val_ptr);
- int ipIfStatsHCInDelivers_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInDelivers_val_ptr);
- int ipIfStatsOutRequests_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -119,7 +119,7 @@ extern "C" {
- ipIfStatsOutRequests_val_ptr);
- int ipIfStatsHCOutRequests_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutRequests_val_ptr);
- int ipIfStatsOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx
- * rowreq_ctx,
-@@ -128,7 +128,7 @@ extern "C" {
- int
- ipIfStatsHCOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutForwDatagrams_val_ptr);
- int ipIfStatsOutDiscards_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -156,7 +156,7 @@ extern "C" {
- ipIfStatsOutTransmits_val_ptr);
- int ipIfStatsHCOutTransmits_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutTransmits_val_ptr);
- int ipIfStatsOutOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -164,7 +164,7 @@ extern "C" {
- ipIfStatsOutOctets_val_ptr);
- int ipIfStatsHCOutOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutOctets_val_ptr);
- int ipIfStatsInMcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -172,7 +172,7 @@ extern "C" {
- ipIfStatsInMcastPkts_val_ptr);
- int ipIfStatsHCInMcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInMcastPkts_val_ptr);
- int ipIfStatsInMcastOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -180,7 +180,7 @@ extern "C" {
- ipIfStatsInMcastOctets_val_ptr);
- int ipIfStatsHCInMcastOctets_get(ipIfStatsTable_rowreq_ctx
- * rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInMcastOctets_val_ptr);
- int ipIfStatsOutMcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -188,7 +188,7 @@ extern "C" {
- ipIfStatsOutMcastPkts_val_ptr);
- int ipIfStatsHCOutMcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutMcastPkts_val_ptr);
- int ipIfStatsOutMcastOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -196,7 +196,7 @@ extern "C" {
- ipIfStatsOutMcastOctets_val_ptr);
- int ipIfStatsHCOutMcastOctets_get(ipIfStatsTable_rowreq_ctx
- * rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutMcastOctets_val_ptr);
- int ipIfStatsInBcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -204,7 +204,7 @@ extern "C" {
- ipIfStatsInBcastPkts_val_ptr);
- int ipIfStatsHCInBcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInBcastPkts_val_ptr);
- int ipIfStatsOutBcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -212,7 +212,7 @@ extern "C" {
- ipIfStatsOutBcastPkts_val_ptr);
- int ipIfStatsHCOutBcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutBcastPkts_val_ptr);
- int
- ipIfStatsDiscontinuityTime_get(ipIfStatsTable_rowreq_ctx *
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
-@@ -722,10 +722,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInReceives(4)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINRECEIVES:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInReceives_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -741,9 +741,9 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ipIfStatsHCInOctets_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ipIfStatsHCInOctets_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -810,10 +810,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInForwDatagrams(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINFORWDATAGRAMS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInForwDatagrams_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -869,10 +869,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInDelivers(19)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINDELIVERS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInDelivers_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -889,10 +889,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutRequests(21)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTREQUESTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutRequests_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -909,10 +909,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutForwDatagrams(24)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTFORWDATAGRAMS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutForwDatagrams_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -979,10 +979,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutTransmits(31)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTTRANSMITS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutTransmits_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -999,9 +999,9 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutOctets(33)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ipIfStatsHCOutOctets_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ipIfStatsHCOutOctets_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1018,10 +1018,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInMcastPkts(35)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINMCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInMcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1038,10 +1038,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInMcastOctets(37)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINMCASTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInMcastOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1058,10 +1058,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutMcastPkts(39)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTMCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutMcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1078,10 +1078,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutMcastOctets(41)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTMCASTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutMcastOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1098,10 +1098,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInBcastPkts(43)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINBCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInBcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1118,10 +1118,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutBcastPkts(45)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTBCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutBcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
-@@ -452,7 +452,7 @@ The total number of input IP datagrams r
- */
- int
- ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInReceives_val_ptr)
-+ struct counter64 *ipSystemStatsHCInReceives_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInReceives_val_ptr);
-@@ -579,7 +579,7 @@ The total number of octets received in i
- */
- int
- ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInOctets_val_ptr)
-+ struct counter64 *ipSystemStatsHCInOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInOctets_val_ptr);
-@@ -1058,7 +1058,7 @@ The number of input datagrams for which
- int
- ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInForwDatagrams_val_ptr)
- {
- /** we should have a non-NULL pointer */
-@@ -1474,7 +1474,7 @@ The total number of datagrams successful
- */
- int
- ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInDelivers_val_ptr)
-+ struct counter64 *ipSystemStatsHCInDelivers_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInDelivers_val_ptr);
-@@ -1602,7 +1602,7 @@ The total number of IP datagrams which l
- */
- int
- ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutRequests_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutRequests_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutRequests_val_ptr);
-@@ -1809,7 +1809,7 @@ The number of datagrams for which this e
- int
- ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutForwDatagrams_val_ptr)
- {
- /** we should have a non-NULL pointer */
-@@ -2288,7 +2288,7 @@ The total number of IP datagrams that th
- */
- int
- ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutTransmits_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutTransmits_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutTransmits_val_ptr);
-@@ -2415,7 +2415,7 @@ The total number of octets in IP datagra
- */
- int
- ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutOctets_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutOctets_val_ptr);
-@@ -2539,7 +2539,7 @@ The number of IP multicast datagrams rec
- */
- int
- ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInMcastPkts_val_ptr)
-+ struct counter64 *ipSystemStatsHCInMcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInMcastPkts_val_ptr);
-@@ -2665,7 +2665,7 @@ The total number of octets received in I
- int
- ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInMcastOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
-@@ -2790,7 +2790,7 @@ The number of IP multicast datagrams tra
- */
- int
- ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutMcastPkts_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutMcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutMcastPkts_val_ptr);
-@@ -2921,7 +2921,7 @@ The total number of octets transmitted i
- int
- ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutMcastOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
-@@ -3046,7 +3046,7 @@ The number of IP broadcast datagrams rec
- */
- int
- ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInBcastPkts_val_ptr)
-+ struct counter64 *ipSystemStatsHCInBcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInBcastPkts_val_ptr);
-@@ -3170,7 +3170,7 @@ The number of IP broadcast datagrams tra
- */
- int
- ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutBcastPkts_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutBcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutBcastPkts_val_ptr);
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
-@@ -144,93 +144,22 @@ config_require(ip-mib/ipSystemStatsTable
- *********************************************************************
- * function prototypes
- */
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_pre_request(ipSystemStatsTable_registration *
-+ int ipSystemStatsTable_pre_request(ipSystemStatsTable_registration *
- user_context);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_post_request(ipSystemStatsTable_registration *
-+ int ipSystemStatsTable_post_request(ipSystemStatsTable_registration *
- user_context, int rc);
-
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_rowreq_ctx_init(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsTable_rowreq_ctx_init(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- void *user_init_ctx);
- void
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
- ipSystemStatsTable_rowreq_ctx_cleanup(ipSystemStatsTable_rowreq_ctx
- * rowreq_ctx);
-
- ipSystemStatsTable_data *ipSystemStatsTable_allocate_data(void);
- void ipSystemStatsTable_release_data(ipSystemStatsTable_data
- * data);
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_rowreq_ctx
-+ ipSystemStatsTable_rowreq_ctx
- * ipSystemStatsTable_row_find_by_mib_index
- (ipSystemStatsTable_mib_index * mib_idx);
-
-@@ -265,226 +194,50 @@ config_require(ip-mib/ipSystemStatsTable
- * indexes
- */
-
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInReceives_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInReceives_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInReceives_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInReceives_val_ptr);
- int ipSystemStatsInOctets_get(ipSystemStatsTable_rowreq_ctx
- * rowreq_ctx,
- u_long *
- ipSystemStatsInOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 * ipSystemStatsHCInOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInHdrErrors_get(ipSystemStatsTable_rowreq_ctx *
-+ struct counter64 *ipSystemStatsHCInOctets_val_ptr);
-+ int ipSystemStatsInHdrErrors_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInHdrErrors_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInNoRoutes_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInAddrErrors_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInAddrErrors_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInAddrErrors_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInUnknownProtos_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInUnknownProtos_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInUnknownProtos_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInTruncatedPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInTruncatedPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInTruncatedPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInForwDatagrams_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInForwDatagrams_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsReasmReqds_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsReasmReqds_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsReasmReqds_val_ptr);
-@@ -492,690 +245,142 @@ config_require(ip-mib/ipSystemStatsTable
- * rowreq_ctx,
- u_long *
- ipSystemStatsReasmOKs_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsReasmFails_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsReasmFails_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsReasmFails_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInDiscards_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInDiscards_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInDiscards_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInDelivers_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInDelivers_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInDelivers_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInDelivers_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutRequests_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutRequests_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutRequests_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutRequests_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutNoRoutes_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutForwDatagrams_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutForwDatagrams_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutDiscards_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutDiscards_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutDiscards_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutFragReqds_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutFragReqds_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutFragReqds_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutFragOKs_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutFragOKs_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutFragOKs_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutFragFails_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutFragFails_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutFragFails_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutFragCreates_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutFragCreates_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutFragCreates_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutTransmits_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutTransmits_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInMcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInMcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInMcastOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInMcastOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutMcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutMcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutMcastOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutMcastOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInBcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInBcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutBcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutBcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsDiscontinuityTime_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsDiscontinuityTime_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsDiscontinuityTime_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsRefreshRate_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsRefreshRate_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsRefreshRate_val_ptr);
--
--
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_indexes_set_tbl_idx(ipSystemStatsTable_mib_index
-+ int ipSystemStatsTable_indexes_set_tbl_idx(ipSystemStatsTable_mib_index
- * tbl_idx,
- u_long
- ipSystemStatsIPVersion_val);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_indexes_set(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsTable_indexes_set(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long ipSystemStatsIPVersion_val);
-
--
--
- /*
- *********************************************************************
- * SET function declarations
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
-@@ -674,10 +674,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInReceives(4)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINRECEIVES:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInReceives_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -694,10 +694,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -764,10 +764,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInForwDatagrams(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINFORWDATAGRAMS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInForwDatagrams_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -824,10 +824,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInDelivers(19)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINDELIVERS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInDelivers_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -844,10 +844,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutRequests(21)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTREQUESTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutRequests_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -874,10 +874,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutForwDatagrams(24)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTFORWDATAGRAMS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutForwDatagrams_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -944,10 +944,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutTransmits(31)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTTRANSMITS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutTransmits_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -964,10 +964,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutOctets(33)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -984,10 +984,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInMcastPkts(35)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINMCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInMcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1004,10 +1004,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInMcastOctets(37)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINMCASTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInMcastOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1024,10 +1024,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutMcastPkts(39)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTMCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutMcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1044,10 +1044,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutMcastOctets(41)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTMCASTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutMcastOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1064,10 +1064,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInBcastPkts(43)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINBCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInBcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1084,10 +1084,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutBcastPkts(45)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTBCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutBcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-Index: net-snmp-5.7.3/include/net-snmp/data_access/ipstats.h
-===================================================================
---- net-snmp-5.7.3.orig/include/net-snmp/data_access/ipstats.h
-+++ net-snmp-5.7.3/include/net-snmp/data_access/ipstats.h
-@@ -58,45 +58,45 @@ typedef struct netsnmp_ipstats_s {
- * other columns, when underlying OS does not provide them.
- * Always fill at least 32 bits, the table is periodically polled -> 32 bit
- * overflow shall be detected and 64 bit value should be computed automatically. */
-- U64 HCInReceives;
-- U64 HCInOctets;
-+ struct counter64 HCInReceives;
-+ struct counter64 HCInOctets;
- u_long InHdrErrors;
-- U64 HCInNoRoutes;
-+ struct counter64 HCInNoRoutes;
- u_long InAddrErrors;
- u_long InUnknownProtos;
- u_long InTruncatedPkts;
-
- /* optional, can be computed from HCInNoRoutes and HCOutForwDatagrams */
-- U64 HCInForwDatagrams;
-+ struct counter64 HCInForwDatagrams;
-
- u_long ReasmReqds;
- u_long ReasmOKs;
- u_long ReasmFails;
- u_long InDiscards;
-- U64 HCInDelivers;
-- U64 HCOutRequests;
-- U64 HCOutNoRoutes;
-- U64 HCOutForwDatagrams;
-- U64 HCOutDiscards;
-+ struct counter64 HCInDelivers;
-+ struct counter64 HCOutRequests;
-+ struct counter64 HCOutNoRoutes;
-+ struct counter64 HCOutForwDatagrams;
-+ struct counter64 HCOutDiscards;
-
- /* optional, can be computed from HCOutFragOKs + HCOutFragFails*/
-- U64 HCOutFragReqds;
-- U64 HCOutFragOKs;
-- U64 HCOutFragFails;
-- U64 HCOutFragCreates;
-+ struct counter64 HCOutFragReqds;
-+ struct counter64 HCOutFragOKs;
-+ struct counter64 HCOutFragFails;
-+ struct counter64 HCOutFragCreates;
-
- /* optional, can be computed from
- * HCOutRequests +HCOutForwDatagrams + HCOutFragCreates
- * - HCOutFragReqds - HCOutNoRoutes - HCOutDiscards */
-- U64 HCOutTransmits;
-+ struct counter64 HCOutTransmits;
-
-- U64 HCOutOctets;
-- U64 HCInMcastPkts;
-- U64 HCInMcastOctets;
-- U64 HCOutMcastPkts;
-- U64 HCOutMcastOctets;
-- U64 HCInBcastPkts;
-- U64 HCOutBcastPkts;
-+ struct counter64 HCOutOctets;
-+ struct counter64 HCInMcastPkts;
-+ struct counter64 HCInMcastOctets;
-+ struct counter64 HCOutMcastPkts;
-+ struct counter64 HCOutMcastOctets;
-+ struct counter64 HCInBcastPkts;
-+ struct counter64 HCOutBcastPkts;
-
- /* Array of available columns.*/
- int columnAvail[IPSYSTEMSTATSTABLE_LAST+1];
-Index: net-snmp-5.7.3/include/net-snmp/library/int64.h
-===================================================================
---- net-snmp-5.7.3.orig/include/net-snmp/library/int64.h
-+++ net-snmp-5.7.3/include/net-snmp/library/int64.h
-@@ -5,31 +5,29 @@
- extern "C" {
- #endif
-
-- typedef struct counter64 U64;
--
- #define I64CHARSZ 21
-
-- void divBy10(U64, U64 *, unsigned int *);
-- void multBy10(U64, U64 *);
-- void incrByU16(U64 *, unsigned int);
-- void incrByU32(U64 *, unsigned int);
-+ void divBy10(struct counter64, struct counter64 *, unsigned int *);
-+ void multBy10(struct counter64, struct counter64 *);
-+ void incrByU16(struct counter64 *, unsigned int);
-+ void incrByU32(struct counter64 *, unsigned int);
- NETSNMP_IMPORT
-- void zeroU64(U64 *);
-- int isZeroU64(const U64 *);
-+ void zeroU64(struct counter64 *);
-+ int isZeroU64(const struct counter64 *);
- NETSNMP_IMPORT
-- void printU64(char *, const U64 *);
-+ void printU64(char *, const struct counter64 *);
- NETSNMP_IMPORT
-- void printI64(char *, const U64 *);
-- int read64(U64 *, const char *);
-+ void printI64(char *, const struct counter64 *);
-+ int read64(struct counter64 *, const char *);
- NETSNMP_IMPORT
-- void u64Subtract(const U64 * pu64one, const U64 * pu64two,
-- U64 * pu64out);
-- void u64Incr(U64 * pu64out, const U64 * pu64one);
-- void u64UpdateCounter(U64 * pu64out, const U64 * pu64one,
-- const U64 * pu64two);
-- void u64Copy(U64 * pu64one, const U64 * pu64two);
-+ void u64Subtract(const struct counter64 *pu64one, const struct counter64 *pu64two,
-+ struct counter64 *pu64out);
-+ void u64Incr(struct counter64 *pu64out, const struct counter64 *pu64one);
-+ void u64UpdateCounter(struct counter64 *pu64out, const struct counter64 *pu64one,
-+ const struct counter64 *pu64two);
-+ void u64Copy(struct counter64 *pu64one, const struct counter64 *pu64two);
-
-- int netsnmp_c64_check_for_32bit_wrap(U64 *old_val, U64 *new_val,
-+ int netsnmp_c64_check_for_32bit_wrap(struct counter64 *old_val, struct counter64 *new_val,
- int adjust);
- NETSNMP_IMPORT
- int netsnmp_c64_check32_and_update(struct counter64 *prev_val,
-Index: net-snmp-5.7.3/snmplib/int64.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/int64.c
-+++ net-snmp-5.7.3/snmplib/int64.c
-@@ -33,7 +33,7 @@
- * @param[out] puR Remainder.
- */
- void
--divBy10(U64 u64, U64 * pu64Q, unsigned int *puR)
-+divBy10(struct counter64 u64, struct counter64 *pu64Q, unsigned int *puR)
- {
- unsigned long ulT;
- unsigned long ulQ;
-@@ -83,7 +83,7 @@ divBy10(U64 u64, U64 * pu64Q, unsigned i
- * @param[out] pu64P Product.
- */
- void
--multBy10(U64 u64, U64 * pu64P)
-+multBy10(struct counter64 u64, struct counter64 *pu64P)
- {
- unsigned long ulT;
- unsigned long ulP;
-@@ -130,7 +130,7 @@ multBy10(U64 u64, U64 * pu64P)
- *
- */
- void
--incrByU16(U64 * pu64, unsigned int u16)
-+incrByU16(struct counter64 *pu64, unsigned int u16)
- {
- incrByU32(pu64, u16);
- }
-@@ -143,7 +143,7 @@ incrByU16(U64 * pu64, unsigned int u16)
- *
- */
- void
--incrByU32(U64 * pu64, unsigned int u32)
-+incrByU32(struct counter64 *pu64, unsigned int u32)
- {
- uint32_t tmp;
-
-@@ -161,7 +161,7 @@ incrByU32(U64 * pu64, unsigned int u32)
- * @param[out] pu64out pu64one - pu64two.
- */
- void
--u64Subtract(const U64 * pu64one, const U64 * pu64two, U64 * pu64out)
-+u64Subtract(const struct counter64 *pu64one, const struct counter64 *pu64two, struct counter64 *pu64out)
- {
- int carry;
-
-@@ -177,7 +177,7 @@ u64Subtract(const U64 * pu64one, const U
- * @param[in,out] pu64out pu64out += pu64one.
- */
- void
--u64Incr(U64 * pu64out, const U64 * pu64one)
-+u64Incr(struct counter64 *pu64out, const struct counter64 *pu64one)
- {
- pu64out->high = (uint32_t)(pu64out->high + pu64one->high);
- incrByU32(pu64out, pu64one->low);
-@@ -191,9 +191,9 @@ u64Incr(U64 * pu64out, const U64 * pu64o
- * @param[out] pu64out pu64out += (pu64one - pu64two)
- */
- void
--u64UpdateCounter(U64 * pu64out, const U64 * pu64one, const U64 * pu64two)
-+u64UpdateCounter(struct counter64 *pu64out, const struct counter64 *pu64one, const struct counter64 *pu64two)
- {
-- U64 tmp;
-+ struct counter64 tmp;
-
- u64Subtract(pu64one, pu64two, &tmp);
- u64Incr(pu64out, &tmp);
-@@ -208,7 +208,7 @@ netsnmp_feature_child_of(u64copy, netsnm
- * @param[out] pu64one Where to store the copy - *pu64one = *pu64two.
- */
- void
--u64Copy(U64 * pu64one, const U64 * pu64two)
-+u64Copy(struct counter64 *pu64one, const struct counter64 *pu64two)
- {
- *pu64one = *pu64two;
- }
-@@ -220,7 +220,7 @@ u64Copy(U64 * pu64one, const U64 * pu64t
- * @param[in] pu64 Number to be zeroed.
- */
- void
--zeroU64(U64 * pu64)
-+zeroU64(struct counter64 *pu64)
- {
- pu64->low = 0;
- pu64->high = 0;
-@@ -232,7 +232,7 @@ zeroU64(U64 * pu64)
- * @param[in] pu64 Number to be checked.
- */
- int
--isZeroU64(const U64 * pu64)
-+isZeroU64(const struct counter64 *pu64)
- {
- return pu64->low == 0 && pu64->high == 0;
- }
-@@ -390,10 +390,10 @@ netsnmp_c64_check32_and_update(struct co
- /** Convert an unsigned 64-bit number to ASCII. */
- void
- printU64(char *buf, /* char [I64CHARSZ+1]; */
-- const U64 * pu64)
-+ const struct counter64 *pu64)
- {
-- U64 u64a;
-- U64 u64b;
-+ struct counter64 u64a;
-+ struct counter64 u64b;
-
- char aRes[I64CHARSZ + 1];
- unsigned int u;
-@@ -414,9 +414,9 @@ printU64(char *buf, /* char [I64CHARSZ+1
- /** Convert a signed 64-bit number to ASCII. */
- void
- printI64(char *buf, /* char [I64CHARSZ+1]; */
-- const U64 * pu64)
-+ const struct counter64 *pu64)
- {
-- U64 u64a;
-+ struct counter64 u64a;
-
- if (pu64->high & 0x80000000) {
- u64a.high = (uint32_t) ~pu64->high;
-@@ -429,11 +429,11 @@ printI64(char *buf, /* char [I64CHARSZ+1
- }
- }
-
--/** Convert a signed 64-bit integer from ASCII to U64. */
-+/** Convert a signed 64-bit integer from ASCII to struct counter64. */
- int
--read64(U64 * i64, const char *str)
-+read64(struct counter64 *i64, const char *str)
- {
-- U64 i64p;
-+ struct counter64 i64p;
- unsigned int u;
- int sign = 0;
- int ok = 0;
-Index: net-snmp-5.7.3/snmplib/read_config.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/read_config.c
-+++ net-snmp-5.7.3/snmplib/read_config.c
-@@ -2270,10 +2270,10 @@ read_config_read_memory(int type, char *
- return readfrom;
-
- case ASN_COUNTER64:
-- if (*len < sizeof(U64))
-+ if (*len < sizeof(struct counter64))
- return NULL;
-- *len = sizeof(U64);
-- read64((U64 *) dataptr, readfrom);
-+ *len = sizeof(struct counter64);
-+ read64((struct counter64 *) dataptr, readfrom);
- readfrom = skip_token(readfrom);
- return readfrom;
- }
-Index: net-snmp-5.7.3/testing/fulltests/unit-tests/T015int64_clib.c
-===================================================================
---- net-snmp-5.7.3.orig/testing/fulltests/unit-tests/T015int64_clib.c
-+++ net-snmp-5.7.3/testing/fulltests/unit-tests/T015int64_clib.c
-@@ -1,4 +1,4 @@
--/* HEADER Testing 64-bit integer operations (U64). */
-+/* HEADER Testing 64-bit integer operations (struct counter64). */
-
- int i, j;
- char buf[22];
-@@ -15,7 +15,7 @@ static const int64_t intval[] = {
- };
-
- for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
-- U64 a, b;
-+ struct counter64 a, b;
- a.low = (uint32_t)intval[i];
- a.high = (uint32_t)(intval[i] >> 32);
- printI64(buf, &a);
-@@ -27,7 +27,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in
-
- for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
- for (j = i; j < sizeof(intval)/sizeof(intval[0]); ++j) {
-- U64 a, b;
-+ struct counter64 a, b;
- uint64_t d;
- a.low = (uint32_t)intval[i];
- a.high = (uint32_t)(intval[i] >> 32);
-@@ -43,7 +43,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in
-
- for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
- for (j = i; j < sizeof(intval)/sizeof(intval[0]); ++j) {
-- U64 a, b, c;
-+ struct counter64 a, b, c;
- uint64_t d;
- a.low = (uint32_t)intval[i];
- a.high = (uint32_t)(intval[i] >> 32);
-@@ -58,7 +58,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in
- }
-
- {
-- U64 old_val, new_val;
-+ struct counter64 old_val, new_val;
- old_val.low = 7;
- old_val.high = 0;
- new_val = old_val;
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch
index 44359be..bfc55a0 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch
@@ -1,4 +1,4 @@
-From 261a22096c79f8e6ef7b387514a74d208e4e5945 Mon Sep 17 00:00:00 2001
+From 7ae2ce8dbf1c54d4e2db4a5f49397a239baadc49 Mon Sep 17 00:00:00 2001
From: Li xin <lixin.fnst@cn.fujitsu.com>
Date: Fri, 21 Aug 2015 18:23:13 +0900
Subject: [PATCH] config_os_headers: Error Fix
@@ -13,15 +13,16 @@
Upstream-Status: pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+
---
configure.d/config_os_headers | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-Index: net-snmp-5.7.3/configure.d/config_os_headers
-===================================================================
---- net-snmp-5.7.3.orig/configure.d/config_os_headers
-+++ net-snmp-5.7.3/configure.d/config_os_headers
-@@ -484,8 +484,8 @@ then
+diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers
+index af99746..83b2e31 100644
+--- a/configure.d/config_os_headers
++++ b/configure.d/config_os_headers
+@@ -489,8 +489,8 @@ then
unset ac_cv_header_pkg_h
netsnmp_save_CPPFLAGS="$CPPFLAGS"
netsnmp_save_LDFLAGS="$LDFLAGS"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch
deleted file mode 100644
index 5866a95..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From e24fcd140f3f6dd18fd836b197c6d4bb773e50e7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= <funman@videolan.org>
-Date: Wed, 4 Nov 2015 16:49:30 +0100
-Subject: [PATCH] config_os_libs2: Error Fix
-
-ERROR: This autoconf log indicates errors, it looked at host include
-and/or library paths while determining system capabilities.
----
- configure.d/config_os_libs2 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2
-index 47491e2..e3647f9 100644
---- a/configure.d/config_os_libs2
-+++ b/configure.d/config_os_libs2
-@@ -226,10 +226,10 @@ if test "x$with_nl" != "xno"; then
- case $target_os in
- linux*) # Check for libnl (linux)
- netsnmp_save_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="-I/usr/include/libnl3 $CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS"
- NETSNMP_SEARCH_LIBS(nl_connect, nl-3,
- [AC_CHECK_HEADERS(netlink/netlink.h)
-- EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES -I/usr/include/libnl3"],
-+ EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES"],
- [CPPFLAGS="$netsnmp_save_CPPFLAGS"], [], [], [LMIBLIBS])
- if test "x$ac_cv_header_netlink_netlink_h" != xyes; then
- NETSNMP_SEARCH_LIBS(nl_connect, nl, [
---
-2.5.0
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch
deleted file mode 100644
index b87e9ee..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From c6304a3e4b8441ff0a6464c0f1f6c5229092fa32 Mon Sep 17 00:00:00 2001
-From: Niels Baggesen <nba@users.sourceforge.net>
-Date: Wed, 24 May 2017 16:40:03 +0800
-Subject: [PATCH 1/4] configure: fix check for --enable-perl-cc-checks
-
-This patch comes from git://git.code.sf.net/p/net-snmp/code,
-the commit is 8f431d410b803603dc809d82e0893509615d9a11.
-
-Upstream-Status: Backport
-
-Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
----
- configure.d/config_project_perl_python | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python
-index 23f8c7e..475c843 100644
---- a/configure.d/config_project_perl_python
-+++ b/configure.d/config_project_perl_python
-@@ -84,7 +84,7 @@ if test "x$install_perl" != "xno" ; then
-
- # What compiler was used to build the perl binary?
- #
-- if test "xenable_perl_cc_checks" != "xno" ; then
-+ if test "x$enable_perl_cc_checks" != "xno" ; then
- AC_MSG_CHECKING([for Perl cc])
- changequote(, )
- PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'`
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch
index 60ce809..bf133b3 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch
@@ -1,22 +1,23 @@
-From 7136d593ba96b64537069637c328bc65e1b66b2d Mon Sep 17 00:00:00 2001
+From 98c6edba4835b515d933542411d80879327eee16 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 22 Jul 2016 18:34:39 +0000
Subject: [PATCH] get_pid_from_inode: Include limit.h
PATH_MAX and NAME_MAX are required by this file
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
agent/mibgroup/util_funcs/get_pid_from_inode.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/agent/mibgroup/util_funcs/get_pid_from_inode.c b/agent/mibgroup/util_funcs/get_pid_from_inode.c
-index 8e157ae..a494ec7 100644
+index aee907d..7abaec2 100644
--- a/agent/mibgroup/util_funcs/get_pid_from_inode.c
+++ b/agent/mibgroup/util_funcs/get_pid_from_inode.c
-@@ -5,6 +5,7 @@
+@@ -6,6 +6,7 @@
#include <net-snmp/output_api.h>
#include <ctype.h>
@@ -24,6 +25,3 @@
#include <stdio.h>
#if HAVE_STDLIB_H
#include <stdlib.h>
---
-1.8.3.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch
new file mode 100644
index 0000000..2d54096
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch
@@ -0,0 +1,42 @@
+From f592398b1c659f84168f5c84f63af3b71454b8f5 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 28 Sep 2018 22:59:23 +0800
+Subject: [PATCH] remove configure options from versioninfo
+
+Configure options contains host build paths which breaks
+binary reproducibility.
+
+It is no harm to remove it from version info.
+
+Upstream-Status: Inappropriate [cross compile specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ agent/mibgroup/ucd-snmp/versioninfo.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/agent/mibgroup/ucd-snmp/versioninfo.c b/agent/mibgroup/ucd-snmp/versioninfo.c
+index a5151c1..1160382 100644
+--- a/agent/mibgroup/ucd-snmp/versioninfo.c
++++ b/agent/mibgroup/ucd-snmp/versioninfo.c
+@@ -92,7 +92,7 @@ var_extensible_version(struct variable *vp,
+ static char errmsg[300];
+ char *cptr;
+ time_t curtime;
+-#ifdef NETSNMP_CONFIGURE_OPTIONS
++#if 0
+ static char config_opts[] = NETSNMP_CONFIGURE_OPTIONS;
+ #endif
+
+@@ -126,7 +126,7 @@ var_extensible_version(struct variable *vp,
+ *var_len = strlen(errmsg);
+ return ((u_char *) errmsg);
+ case VERCONFIG:
+-#ifdef NETSNMP_CONFIGURE_OPTIONS
++#if 0
+ *var_len = strlen(config_opts);
+ if (*var_len > 1024)
+ *var_len = 1024; /* mib imposed restriction */
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch
deleted file mode 100644
index 527aa39..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 1ee72102fbe722d232d74abc4660a8b134cec8d6 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche@acm.org>
-Date: Sat, 23 May 2015 07:32:53 +0200
-Subject: [PATCH] snmplib, UDPIPv6 transport: Add a missing return statement
-
-Detected by Coverity.
-
-Upstream-Status: backport
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- snmplib/transports/snmpUDPIPv6Domain.c | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/transports/snmpUDPIPv6Domain.c
-+++ net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c
-@@ -305,6 +305,7 @@ netsnmp_udp6_transport(struct sockaddr_i
- errno, strerror(errno)));
- netsnmp_socketbase_close(t);
- netsnmp_transport_free(t);
-+ return NULL;
- }
- }
- /*
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
index af242fa..778b401 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
@@ -1,7 +1,8 @@
-From d3027a227bc0f603a5b650d01f97ee1dec515be5 Mon Sep 17 00:00:00 2001
+From 89538a973119f1bf976b3a6df157ea940cf32eb5 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 18 Sep 2015 00:28:45 -0400
Subject: [PATCH] snmplib/keytools.c: Don't check for return from
+
EVP_MD_CTX_init()
EVP_MD_CTX_init() API returns void, it fixes errors with new compilers
@@ -9,16 +10,16 @@
snmplib/keytools.c: In function 'generate_Ku': error: invalid use of void expression
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
-Upstream-Status: Submitted [https://sourceforge.net/p/net-snmp/patches/1317/]
snmplib/keytools.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/snmplib/keytools.c b/snmplib/keytools.c
-index 0ccb3a6..880fc14 100644
+index 2cf0240..50fd3ea 100644
--- a/snmplib/keytools.c
+++ b/snmplib/keytools.c
-@@ -153,8 +153,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
+@@ -186,8 +186,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
ctx = EVP_MD_CTX_create();
#else
ctx = malloc(sizeof(*ctx));
@@ -26,8 +27,5 @@
- return SNMPERR_GENERR;
+ EVP_MD_CTX_init(ctx);
#endif
- #ifndef NETSNMP_DISABLE_MD5
- if (ISTRANSFORM(hashtype, HMACMD5Auth)) {
---
-2.5.2
-
+ if (!EVP_DigestInit(ctx, hashfn))
+ return SNMPERR_GENERR;
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch
index 999976d..4782714 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch
@@ -1,4 +1,4 @@
-From 94e7e4969bc84c945dfea12d67a1e10f61973948 Mon Sep 17 00:00:00 2001
+From a3631df3d6743113e1cd63579925e15bcce85868 Mon Sep 17 00:00:00 2001
From: Wenlin Kang <wenlin.kang@windriver.com>
Date: Wed, 24 May 2017 16:45:34 +0800
Subject: [PATCH 2/4] configure: fix a cc check issue.
@@ -8,6 +8,7 @@
can't get corretly the cc's value.
Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+
---
configure.d/config_project_perl_python | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -25,6 +26,3 @@
changequote([, ])
if test "x$PERLCC" != "x" ; then
AC_MSG_RESULT([$PERLCC])
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch
deleted file mode 100644
index 7951234..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From e57fc809ad6ae522670f3dc157aadde20d968ca7 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche@acm.org>
-Date: Wed, 24 May 2017 17:05:03 +0800
-Subject: [PATCH 3/4] CHANGES: BUG: 2712: Fix Perl module compilation
-
-Avoid that building the Net-SNMP Perl modules fails as follows:
-
-ERROR from evaluation of /sources/net-snmp-5.7.3/perl/ASN/Makefile.PL: Bizarre \ copy of HASH in list assignment at /usr/lib/perl5/site_perl/5.24.0/Carp.pm line\ 229.
-
-See also https://sourceforge.net/p/net-snmp/bugs/2712/.
-
-This patch comes from git://git.code.sf.net/p/net-snmp/code,
-the commit is 4e793461e96a2b4fd81142ab312d074d5c8841fa.
-
-Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
----
- perl/ASN/Makefile.PL | 4 +---
- perl/Makefile.PL | 4 +---
- perl/OID/Makefile.PL | 5 +----
- perl/SNMP/Makefile.PL | 5 +----
- perl/TrapReceiver/Makefile.PL | 5 +----
- perl/agent/Makefile.PL | 5 +----
- perl/agent/Support/Makefile.PL | 5 +----
- perl/agent/default_store/Makefile.PL | 5 +----
- perl/default_store/Makefile.PL | 5 +----
- 9 files changed, 9 insertions(+), 34 deletions(-)
-
-diff --git a/perl/ASN/Makefile.PL b/perl/ASN/Makefile.PL
-index 4576781..c33d8ba 100644
---- a/perl/ASN/Makefile.PL
-+++ b/perl/ASN/Makefile.PL
-@@ -7,9 +7,7 @@ my $lib_version;
- # See lib/ExtUtils/MakeMaker.pm for details of how to influence
- # the contents of the Makefile that is written.
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/Makefile.PL b/perl/Makefile.PL
-index 31fdc40..48aba2a 100644
---- a/perl/Makefile.PL
-+++ b/perl/Makefile.PL
-@@ -3,9 +3,7 @@ use Config;
- use Getopt::Long;
- require 5;
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- sub InitMakeParams {
- $nsconfig="net-snmp-config"; # in path by default
-diff --git a/perl/OID/Makefile.PL b/perl/OID/Makefile.PL
-index 6bb1616..2589985 100644
---- a/perl/OID/Makefile.PL
-+++ b/perl/OID/Makefile.PL
-@@ -6,11 +6,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/SNMP/Makefile.PL b/perl/SNMP/Makefile.PL
-index e617cb7..8aab9a9 100644
---- a/perl/SNMP/Makefile.PL
-+++ b/perl/SNMP/Makefile.PL
-@@ -3,15 +3,12 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
- my $opts;
-
- # See lib/ExtUtils/MakeMaker.pm for details of how to influence
- # the contents of the Makefile that is written.
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/TrapReceiver/Makefile.PL b/perl/TrapReceiver/Makefile.PL
-index 874ee21..7e9e58e 100644
---- a/perl/TrapReceiver/Makefile.PL
-+++ b/perl/TrapReceiver/Makefile.PL
-@@ -3,11 +3,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/agent/Makefile.PL b/perl/agent/Makefile.PL
-index 4f7bee3..003c0d1 100644
---- a/perl/agent/Makefile.PL
-+++ b/perl/agent/Makefile.PL
-@@ -3,11 +3,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/agent/Support/Makefile.PL b/perl/agent/Support/Makefile.PL
-index 48815b6..2325e10 100644
---- a/perl/agent/Support/Makefile.PL
-+++ b/perl/agent/Support/Makefile.PL
-@@ -3,14 +3,11 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
- # See lib/ExtUtils/MakeMaker.pm for details of how to influence
- # the contents of the Makefile that is written.
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/agent/default_store/Makefile.PL b/perl/agent/default_store/Makefile.PL
-index ed6483a..31cfbee 100644
---- a/perl/agent/default_store/Makefile.PL
-+++ b/perl/agent/default_store/Makefile.PL
-@@ -3,11 +3,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/default_store/Makefile.PL b/perl/default_store/Makefile.PL
-index 7c671b8..01c8dd0 100644
---- a/perl/default_store/Makefile.PL
-+++ b/perl/default_store/Makefile.PL
-@@ -3,11 +3,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
-
- sub InitMakeParams {
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch
index 2b03f9e..a3d84b2 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch
@@ -1,4 +1,4 @@
-From 4ad98ef125eb4e7d7a1a93146042002f78254d36 Mon Sep 17 00:00:00 2001
+From f3c5cd4df7ce8e5639c99b7b918e41fb89e969e3 Mon Sep 17 00:00:00 2001
From: Wenlin Kang <wenlin.kang@windriver.com>
Date: Wed, 24 May 2017 17:10:20 +0800
Subject: [PATCH 4/4] configure: fix incorrect variable
@@ -8,15 +8,16 @@
Upstream-Status: Inappropriate [cross compile specific]
Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
-index cfcdf73..164df05 100644
+index 9dbdde1..5fdc760 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -171,7 +171,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
+@@ -173,7 +173,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
#
# override LD_RUN_PATH to avoid dependencies on the build directory
perlmodules: perlmakefiles subdirs
@@ -25,6 +26,3 @@
if test $$? != 0 ; then \
exit 1 ; \
fi
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch
deleted file mode 100644
index 6bd0f93..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From 6b93e686bdb6a908d00595608646a05527a5326b Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 21 Aug 2015 12:39:12 +0900
-Subject: [PATCH] the snmp_pdu_parse() function could leave incompletely parsed
- varBind variables in the list of variables in case the parsing of the SNMP
- PDU failed. If later processing tries to operate on the stale and
- incompletely processed varBind (e.g. when printing the variables), this can
- lead to e.g. crashes or, possibly, execution of arbitrary code
-
-Upstream-Status: Backport [net-snmp]
-
-Written-by: Robert Story
----
- snmplib/snmp_api.c | 53 ++++++++++++++++++++++++++++-------------------------
- 1 file changed, 28 insertions(+), 25 deletions(-)
-
-diff --git a/snmplib/snmp_api.c b/snmplib/snmp_api.c
-index 191debf..15a2d39 100644
---- a/snmplib/snmp_api.c
-+++ b/snmplib/snmp_api.c
-@@ -4350,10 +4350,9 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- u_char type;
- u_char msg_type;
- u_char *var_val;
-- int badtype = 0;
- size_t len;
- size_t four;
-- netsnmp_variable_list *vp = NULL;
-+ netsnmp_variable_list *vp = NULL, *vplast = NULL;
- oid objid[MAX_OID_LEN];
- u_char *p;
-
-@@ -4493,31 +4492,17 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- (ASN_SEQUENCE | ASN_CONSTRUCTOR),
- "varbinds");
- if (data == NULL)
-- return -1;
-+ goto fail;
-
- /*
- * get each varBind sequence
- */
- while ((int) *length > 0) {
-- netsnmp_variable_list *vptemp;
-- vptemp = (netsnmp_variable_list *) malloc(sizeof(*vptemp));
-- if (NULL == vptemp) {
-- return -1;
-- }
-- if (NULL == vp) {
-- pdu->variables = vptemp;
-- } else {
-- vp->next_variable = vptemp;
-- }
-- vp = vptemp;
-+ vp = SNMP_MALLOC_TYPEDEF(netsnmp_variable_list);
-+ if (NULL == vp)
-+ goto fail;
-
-- vp->next_variable = NULL;
-- vp->val.string = NULL;
- vp->name_length = MAX_OID_LEN;
-- vp->name = NULL;
-- vp->index = 0;
-- vp->data = NULL;
-- vp->dataFreeHook = NULL;
- DEBUGDUMPSECTION("recv", "VarBind");
- data = snmp_parse_var_op(data, objid, &vp->name_length, &vp->type,
- &vp->val_len, &var_val, length);
-@@ -4604,7 +4589,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- vp->val.string = (u_char *) malloc(vp->val_len);
- }
- if (vp->val.string == NULL) {
-- return -1;
-+ goto fail;
- }
- p = asn_parse_string(var_val, &len, &vp->type, vp->val.string,
- &vp->val_len);
-@@ -4619,7 +4604,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- vp->val_len *= sizeof(oid);
- vp->val.objid = (oid *) malloc(vp->val_len);
- if (vp->val.objid == NULL) {
-- return -1;
-+ goto fail;
- }
- memmove(vp->val.objid, objid, vp->val_len);
- break;
-@@ -4631,7 +4616,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- case ASN_BIT_STR:
- vp->val.bitstring = (u_char *) malloc(vp->val_len);
- if (vp->val.bitstring == NULL) {
-- return -1;
-+ goto fail;
- }
- p = asn_parse_bitstring(var_val, &len, &vp->type,
- vp->val.bitstring, &vp->val_len);
-@@ -4640,12 +4625,30 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- break;
- default:
- snmp_log(LOG_ERR, "bad type returned (%x)\n", vp->type);
-- badtype = -1;
-+ goto fail;
- break;
- }
- DEBUGINDENTADD(-4);
-+
-+ if (NULL == vplast) {
-+ pdu->variables = vp;
-+ } else {
-+ vplast->next_variable = vp;
-+ }
-+ vplast = vp;
-+ vp = NULL;
-+
- }
-- return badtype;
-+ return 0;
-+
-+ fail:
-+ DEBUGMSGTL(("recv", "error while parsing VarBindList\n"));
-+ /** if we were parsing a var, remove it from the pdu and free it */
-+ if (vp)
-+ snmp_free_var(vp);
-+
-+ return -1;
-+
- }
-
- /*
---
-1.8.4.2
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch
index d29be33..fc3ac2a 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch
@@ -1,3 +1,8 @@
+From 0becb4843a40910d5ec9aa11969d4905a22037cf Mon Sep 17 00:00:00 2001
+From: "Roy.Li" <rongqing.li@windriver.com>
+Date: Fri, 16 Jan 2015 14:14:01 +0800
+Subject: [PATCH] net-snmp: fix "libtool --finish"
+
LIB_LDCONFIG_CMD failed since it is using a host dir $(libdir)
which is /usr/lib64 does not exist on host when compile 64bit
image.
@@ -9,12 +14,16 @@
Upstream-Status: Inappropriate [cross compile specific]
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
+
---
-Index: net-snmp-5.7.3/Makefile.top
-===================================================================
---- net-snmp-5.7.3.orig/Makefile.top
-+++ net-snmp-5.7.3/Makefile.top
-@@ -87,7 +87,7 @@ LIBREVISION = 3
+ Makefile.top | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.top b/Makefile.top
+index 5d4f9bc..d0ed31c 100644
+--- a/Makefile.top
++++ b/Makefile.top
+@@ -89,7 +89,7 @@ LIBREVISION = 0
LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) -o
LIB_EXTENSION = la
LIB_VERSION =
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
index fbd274b..5cbb60d 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
@@ -1,4 +1,4 @@
-From e47c60dc7f649959f63e56bc62355de4bdfd73f4 Mon Sep 17 00:00:00 2001
+From d619cd9fc01f336ff0ff55b18f9112789eb4d84c Mon Sep 17 00:00:00 2001
From: Marian Florea <marian.florea@windriver.com>
Date: Thu, 20 Jul 2017 16:55:24 +0800
Subject: [PATCH] net snmp: fix engineBoots value on SIGHUP
@@ -7,16 +7,17 @@
Signed-off-by: Marian Florea <marian.florea@windriver.com>
Signed-off-by: Li Zhou <li.zhou@windriver.com>
+
---
agent/snmpd.c | 1 +
snmplib/snmpv3.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
-Index: net-snmp-5.7.3/agent/snmpd.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/snmpd.c
-+++ net-snmp-5.7.3/agent/snmpd.c
-@@ -1253,6 +1253,7 @@ receive(void)
+diff --git a/agent/snmpd.c b/agent/snmpd.c
+index 6566354..eb0d4b4 100644
+--- a/agent/snmpd.c
++++ b/agent/snmpd.c
+@@ -1239,6 +1239,7 @@ receive(void)
snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n",
netsnmp_get_version());
update_config();
@@ -24,11 +25,11 @@
send_easy_trap(SNMP_TRAP_ENTERPRISESPECIFIC, 3);
#if HAVE_SIGHOLD
sigrelse(SIGHUP);
-Index: net-snmp-5.7.3/snmplib/snmpv3.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/snmpv3.c
-+++ net-snmp-5.7.3/snmplib/snmpv3.c
-@@ -984,9 +984,9 @@ init_snmpv3_post_config(int majorid, int
+diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c
+index 771ba3b..5de05e7 100644
+--- a/snmplib/snmpv3.c
++++ b/snmplib/snmpv3.c
+@@ -1060,9 +1060,9 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg,
/*
* if our engineID has changed at all, the boots record must be set to 1
*/
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch
deleted file mode 100644
index 5eed893..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-Description: fix snmpd crash via AgentX connection
-
- taken from Fedora, net-snmp-5.7-agentx-crash.patch
-
-bz729738 - net-snmp dumps core in netsnmp_oid_find_prefix
-bz1038011 - net-snmp: snmpd crashes/hangs when AgentX subagent times-out
-
-commit f9304c83f76202db0e684269ca1af32e43cd9db4
-Author: Jan Safranek <jsafranek@users.sourceforge.net>
-Date: Tue Feb 7 14:53:44 2012 +0100
-
- CHANGES: PATCH 1633670: fixed snmpd crashing when an AgentX subagent
- disconnect in the middle of processing of a request.
-
- I fixed also the memory leak reported in the tracker comments.
-
-Upstream-Status: Backport
-
-Signed-off-by: Zhu Yanjun <yanjun.zhu@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
----
- agent/mibgroup/agentx/master.c | 5 +++++
- agent/mibgroup/agentx/master_admin.c | 9 +++++++--
- 2 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/agent/mibgroup/agentx/master.c b/agent/mibgroup/agentx/master.c
-index c42a42a..baeebaf 100644
---- a/agent/mibgroup/agentx/master.c
-+++ b/agent/mibgroup/agentx/master.c
-@@ -219,6 +219,9 @@ agentx_got_response(int operation,
- if (!cache) {
- DEBUGMSGTL(("agentx/master", "response too late on session %8p\n",
- session));
-+ /* response is too late, free the cache */
-+ if (magic)
-+ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) magic);
- return 0;
- }
- requests = cache->requests;
-@@ -606,6 +609,8 @@ agentx_master_handler(netsnmp_mib_handler *handler,
- result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data);
- if (result == 0) {
- snmp_free_pdu(pdu);
-+ if (cb_data)
-+ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) cb_data);
- }
-
- return SNMP_ERR_NOERROR;
-diff --git a/agent/mibgroup/agentx/master_admin.c b/agent/mibgroup/agentx/master_admin.c
-index f16f392..b84b85e 100644
---- a/agent/mibgroup/agentx/master_admin.c
-+++ b/agent/mibgroup/agentx/master_admin.c
-@@ -133,11 +133,16 @@ close_agentx_session(netsnmp_session * session, int sessid)
- * requests, so that the delegated request will be completed and
- * further requests can be processed
- */
-- netsnmp_remove_delegated_requests_for_session(session);
-+ while (netsnmp_remove_delegated_requests_for_session(session)) {
-+ DEBUGMSGTL(("agentx/master", "Continue removing delegated reqests\n"));
-+ }
-+
- if (session->subsession != NULL) {
- netsnmp_session *subsession = session->subsession;
- for(; subsession; subsession = subsession->next) {
-- netsnmp_remove_delegated_requests_for_session(subsession);
-+ while (netsnmp_remove_delegated_requests_for_session(subsession)) {
-+ DEBUGMSGTL(("agentx/master", "Continue removing delegated subsession reqests\n"));
-+ }
- }
- }
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
index 25eb9c9..4cd8fd1 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
@@ -1,4 +1,4 @@
-From 270e952f58a7e5ddeabe5a15e3ddaaadf40017d0 Mon Sep 17 00:00:00 2001
+From 068952c0e0cdda5a91250b91c5fcc9b85b43daab Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Thu, 22 Jun 2017 10:25:08 +0800
Subject: [PATCH] net-snmp: fix for --disable-des
@@ -9,15 +9,16 @@
Upstream-Status: Submitted [net-snmp-coders@lists.sourceforge.net]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
---
snmplib/scapi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/snmplib/scapi.c b/snmplib/scapi.c
-index 16ac829..271684b 100644
+index 8ad1d70..43caddf 100644
--- a/snmplib/scapi.c
+++ b/snmplib/scapi.c
-@@ -79,7 +79,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
+@@ -84,7 +84,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
#include <openssl/hmac.h>
#include <openssl/evp.h>
#include <openssl/rand.h>
@@ -27,6 +28,3 @@
#ifdef HAVE_AES
#include <openssl/aes.h>
#endif
---
-2.11.0
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch
index 8f8336a..7cbaf0b 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch
@@ -1,4 +1,4 @@
-From 4bb4024b395f19d36ab3569e2773ea80d8cc5261 Mon Sep 17 00:00:00 2001
+From 827fe3b0253aab33472828f40ad05934cc0261b8 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Wed, 14 Jan 2015 15:10:06 +0800
Subject: [PATCH] testing: add the output format for ptest
@@ -6,15 +6,16 @@
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- testing/RUNTESTS | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-Index: net-snmp-5.7.3/testing/RUNTESTS
-===================================================================
---- net-snmp-5.7.3.orig/testing/RUNTESTS
-+++ net-snmp-5.7.3/testing/RUNTESTS
-@@ -29,13 +29,17 @@ failed_count=0
+---
+ testing/RUNTESTS | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/testing/RUNTESTS b/testing/RUNTESTS
+index 6715831..a2b6fb8 100755
+--- a/testing/RUNTESTS
++++ b/testing/RUNTESTS
+@@ -17,13 +17,17 @@ failed_count=0
rm -f failed_tests
for i in "${srcdir}"/testing/fulltests/default/T*$1*; do
echo "RUNNING $i"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
deleted file mode 100644
index 4ea0a59..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
+++ /dev/null
@@ -1,259 +0,0 @@
-SUMMARY = "Various tools relating to the Simple Network Management Protocol"
-HOMEPAGE = "http://www.net-snmp.org/"
-SECTION = "net"
-LICENSE = "BSD"
-
-LIC_FILES_CHKSUM = "file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5a622ea24634e"
-
-DEPENDS = "openssl libnl pciutils"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \
- file://init \
- file://snmpd.conf \
- file://snmptrapd.conf \
- file://systemd-support.patch \
- file://snmpd.service \
- file://snmptrapd.service \
- file://net-snmp-add-knob-whether-nlist.h-are-checked.patch \
- file://fix-libtool-finish.patch \
- file://net-snmp-testing-add-the-output-format-for-ptest.patch \
- file://run-ptest \
- file://dont-return-incompletely-parsed-varbinds.patch \
- file://0001-config_os_headers-Error-Fix.patch \
- file://0001-config_os_libs2-Error-Fix.patch \
- file://0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch \
- file://net-snmp-agentx-crash.patch \
- file://0001-get_pid_from_inode-Include-limit.h.patch \
- file://0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch \
- file://0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch \
- file://0001-configure-fix-check-for-enable-perl-cc-checks.patch \
- file://0002-configure-fix-a-cc-check-issue.patch \
- file://0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch \
- file://0004-configure-fix-incorrect-variable.patch \
- file://net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch \
- file://net-snmp-fix-for-disable-des.patch \
- file://0001-Remove-U64-typedef.patch \
- "
-SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee"
-SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e"
-
-inherit autotools-brokensep update-rc.d siteinfo systemd pkgconfig perlnative
-
-EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'"
-
-PARALLEL_MAKE = ""
-CCACHE = ""
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils"
-PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
-
-PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no,\
- perl, perl perl-lib"
-
-EXTRA_OECONF = "--enable-shared \
- --disable-manuals \
- --with-defaults \
- --with-install-prefix=${D} \
- --with-persistent-directory=${localstatedir}/lib/net-snmp \
- ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)} \
-"
-
-# net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp
-EXTRA_OECONF += "--with-mib-modules=smux"
-
-CACHED_CONFIGUREVARS = " \
- ac_cv_header_valgrind_valgrind_h=no \
- ac_cv_header_valgrind_memcheck_h=no \
- ac_cv_ETC_MNTTAB=/etc/mtab \
- lt_cv_shlibpath_overrides_runpath=yes \
-"
-export PERLPROG="${bindir}/env perl"
-PERLPROG_append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}"
-
-HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}"
-
-do_configure_prepend() {
- sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \
- "${S}"/configure \
- "${S}"/configure.d/config_os_libs2
-
- if [ "${HAS_PERL}" = "1" ]; then
- # this may need to be changed when package perl has any change.
- cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config.pm ${WORKDIR}/
- cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config_heavy.pl ${WORKDIR}/
- sed -e "s@libpth => '/usr/lib.*@libpth => '${STAGING_DIR_TARGET}/${libdir} ${STAGING_DIR_TARGET}/${base_libdir}',@g" \
- -e "s@privlibexp => '/usr@privlibexp => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@scriptdir => '/usr@scriptdir => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@sitearchexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@sitelibexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@vendorarchexp => '/usr@vendorarchexp => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@vendorlibexp => '/usr@vendorlibexp => '${STAGING_DIR_TARGET}/usr@g" \
- -i ${WORKDIR}/Config.pm
- fi
-
-}
-
-do_configure_append() {
- if [ "${HAS_PERL}" = "1" ]; then
- sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=${STAGING_DIR_TARGET}\$\{includedir\}@g" \
- -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L${STAGING_DIR_TARGET}\$\{libdir\}@g" \
- -i ${B}/net-snmp-config
- fi
-}
-
-do_install_append() {
- install -d ${D}${sysconfdir}/snmp
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/snmpd
- install -m 644 ${WORKDIR}/snmpd.conf ${D}${sysconfdir}/snmp/
- install -m 644 ${WORKDIR}/snmptrapd.conf ${D}${sysconfdir}/snmp/
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/snmpd.service ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/snmptrapd.service ${D}${systemd_unitdir}/system
- sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \
- -i ${D}${bindir}/net-snmp-create-v3-user
- sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \
- -e "s@\([^ ]*-fdebug-prefix-map=[^ ]*\)\1*@@g" \
- -e "s@\([^ ]*--sysroot=[^ ]*\)\1*@@g" \
- -e "s@\([^ ]*--with-libtool-sysroot=[^ ]*\)\1*@@g" \
- -e "s@\([^ ]*--with-install-prefix=[^ ]*\)\1*@@g" \
- -i ${D}${bindir}/net-snmp-config
-
- if [ "${HAS_PERL}" = "1" ]; then
- sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=\$\{includedir\}@g" \
- -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L\$\{libdir\}@g" \
- -i ${D}${bindir}/net-snmp-config
- fi
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}
- for i in ${S}/dist ${S}/include ${B}/include ${S}/mibs ${S}/configure \
- ${B}/net-snmp-config ${S}/testing; do
- if [ -e "$i" ]; then
- cp -R --no-dereference --preserve=mode,links -v "$i" ${D}${PTEST_PATH}
- fi
- done
- echo `autoconf -V|awk '/autoconf/{print $NF}'` > ${D}${PTEST_PATH}/dist/autoconf-version
-
- rmdlist="${D}${PTEST_PATH}/dist/net-snmp-solaris-build"
- for i in $rmdlist; do
- if [ -d "$i" ]; then
- rm -rf "$i"
- fi
- done
-}
-
-SYSROOT_PREPROCESS_FUNCS += "net_snmp_sysroot_preprocess"
-SNMP_DBGDIR = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
-
-net_snmp_sysroot_preprocess () {
- if [ -e ${D}${bindir}/net-snmp-config ]; then
- install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- install -m 755 ${D}${bindir}/net-snmp-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- sed -e "s@-I/usr/include@-I${STAGING_INCDIR}@g" \
- -e "s@^prefix=.*@prefix=${STAGING_DIR_HOST}${prefix}@g" \
- -e "s@^exec_prefix=.*@exec_prefix=${STAGING_EXECPREFIXDIR}@g" \
- -e "s@^includedir=.*@includedir=${STAGING_INCDIR}@g" \
- -e "s@^libdir=.*@libdir=${STAGING_LIBDIR}@g" \
- -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=${S}@g" \
- -e "s@-fdebug-prefix-map=${SNMP_DBGDIR}@-fdebug-prefix-map=${WORKDIR}=${SNMP_DBGDIR}@g" \
- -e "s@-fdebug-prefix-map= -fdebug-prefix-map=@-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
- -fdebug-prefix-map=${STAGING_DIR_HOST}=@g" \
- -e "s@--sysroot=@--sysroot=${STAGING_DIR_HOST}@g" \
- -e "s@--with-libtool-sysroot=@--with-libtool-sysroot=${STAGING_DIR_HOST}@g" \
- -e "s@--with-install-prefix=@--with-install-prefix=${D}@g" \
- -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/net-snmp-config
- fi
-}
-
-PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client \
- ${PN}-server-snmpd ${PN}-server-snmptrapd \
- ${PN}-lib-netsnmp ${PN}-lib-agent ${PN}-lib-helpers \
- ${PN}-lib-mibs ${PN}-lib-trapd"
-
-# perl module
-PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}"
-
-ALLOW_EMPTY_${PN} = "1"
-ALLOW_EMPTY_${PN}-server = "1"
-ALLOW_EMPTY_${PN}-libs = "1"
-
-FILES_${PN}-perl-modules = "${libdir}/perl/*"
-
-FILES_${PN}-libs = ""
-FILES_${PN}-mibs = "${datadir}/snmp/mibs"
-FILES_${PN}-server-snmpd = "${sbindir}/snmpd \
- ${sysconfdir}/snmp/snmpd.conf \
- ${sysconfdir}/init.d \
- ${systemd_unitdir}/system/snmpd.service \
-"
-
-FILES_${PN}-server-snmptrapd = "${sbindir}/snmptrapd \
- ${sysconfdir}/snmp/snmptrapd.conf \
- ${systemd_unitdir}/system/snmptrapd.service \
-"
-
-FILES_${PN}-lib-netsnmp = "${libdir}/libnetsnmp${SOLIBS}"
-FILES_${PN}-lib-agent = "${libdir}/libnetsnmpagent${SOLIBS}"
-FILES_${PN}-lib-helpers = "${libdir}/libnetsnmphelpers${SOLIBS}"
-FILES_${PN}-lib-mibs = "${libdir}/libnetsnmpmibs${SOLIBS}"
-FILES_${PN}-lib-trapd = "${libdir}/libnetsnmptrapd${SOLIBS}"
-
-FILES_${PN} = ""
-FILES_${PN}-client = "${bindir}/* ${datadir}/snmp/"
-FILES_${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/"
-FILES_${PN}-dev += "${bindir}/mib2c ${bindir}/mib2c-update"
-
-CONFFILES_${PN}-server-snmpd = "${sysconfdir}/snmp/snmpd.conf"
-CONFFILES_${PN}-server-snmptrapd = "${sysconfdir}/snmp/snmptrapd.conf"
-
-INITSCRIPT_PACKAGES = "${PN}-server-snmpd"
-INITSCRIPT_NAME_${PN}-server-snmpd = "snmpd"
-INITSCRIPT_PARAMS_${PN}-server-snmpd = "start 90 2 3 4 5 . stop 60 0 1 6 ."
-
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemd', '--without-systemd', d)}"
-
-SYSTEMD_PACKAGES = "${PN}-server-snmpd \
- ${PN}-server-snmptrapd"
-
-SYSTEMD_SERVICE_${PN}-server-snmpd = "snmpd.service"
-SYSTEMD_SERVICE_${PN}-server-snmptrapd = "snmptrapd.service"
-
-RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}"
-RDEPENDS_${PN} += "net-snmp-client"
-RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs"
-RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd ${PN}-lib-trapd"
-RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
-RDEPENDS_${PN}-client += "net-snmp-mibs net-snmp-libs"
-RDEPENDS_${PN}-libs += "libpci \
- ${PN}-lib-netsnmp \
- ${PN}-lib-agent \
- ${PN}-lib-helpers \
- ${PN}-lib-mibs \
-"
-RDEPENDS_${PN}-ptest += "perl \
- perl-module-test \
- perl-module-file-basename \
- perl-module-getopt-long \
- perl-module-file-temp \
- perl-module-data-dumper \
-"
-RDEPENDS_${PN}-dev = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})"
-RRECOMMENDS_${PN}-dbg = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})"
-
-RPROVIDES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
-RREPLACES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
-RCONFLICTS_${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
-
-RPROVIDES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
-RREPLACES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
-RCONFLICTS_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
-
-LEAD_SONAME = "libnetsnmp.so"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb
new file mode 100644
index 0000000..d47f9e4
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb
@@ -0,0 +1,261 @@
+SUMMARY = "Various tools relating to the Simple Network Management Protocol"
+HOMEPAGE = "http://www.net-snmp.org/"
+SECTION = "net"
+LICENSE = "BSD"
+
+LIC_FILES_CHKSUM = "file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5a622ea24634e"
+
+DEPENDS = "openssl libnl pciutils"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \
+ file://init \
+ file://snmpd.conf \
+ file://snmptrapd.conf \
+ file://snmpd.service \
+ file://snmptrapd.service \
+ file://net-snmp-add-knob-whether-nlist.h-are-checked.patch \
+ file://fix-libtool-finish.patch \
+ file://net-snmp-testing-add-the-output-format-for-ptest.patch \
+ file://run-ptest \
+ file://0001-config_os_headers-Error-Fix.patch \
+ file://0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch \
+ file://0001-get_pid_from_inode-Include-limit.h.patch \
+ file://0002-configure-fix-a-cc-check-issue.patch \
+ file://0004-configure-fix-incorrect-variable.patch \
+ file://net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch \
+ file://net-snmp-fix-for-disable-des.patch \
+ file://0001-remove-configure-options-from-versioninfo.patch \
+ "
+SRC_URI[md5sum] = "6aae5948df7efde626613d6a4b3cd9d4"
+SRC_URI[sha256sum] = "c6291385b8ed84f05890fe4197005daf7e7ee7b082c2e390fa114a9477a56042"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/net-snmp/files/net-snmp/"
+UPSTREAM_CHECK_REGEX = "/net-snmp/(?P<pver>\d+(\.\d+)+)/"
+
+inherit autotools-brokensep update-rc.d siteinfo systemd pkgconfig perlnative
+
+EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'"
+
+PARALLEL_MAKE = ""
+CCACHE = ""
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils"
+PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
+
+PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no,\
+ perl, perl perl-lib"
+
+EXTRA_OECONF = "--enable-shared \
+ --disable-manuals \
+ --with-defaults \
+ --with-install-prefix=${D} \
+ --with-persistent-directory=${localstatedir}/lib/net-snmp \
+ ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)} \
+ --with-openssl=${STAGING_EXECPREFIXDIR} \
+"
+
+# net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp
+EXTRA_OECONF += "--with-mib-modules=smux"
+
+CACHED_CONFIGUREVARS = " \
+ ac_cv_header_valgrind_valgrind_h=no \
+ ac_cv_header_valgrind_memcheck_h=no \
+ ac_cv_ETC_MNTTAB=/etc/mtab \
+ lt_cv_shlibpath_overrides_runpath=yes \
+"
+export PERLPROG="${bindir}/env perl"
+PERLPROG_append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}"
+
+HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}"
+
+do_configure_prepend() {
+ sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \
+ "${S}"/configure \
+ "${S}"/configure.d/config_os_libs2
+
+ if [ "${HAS_PERL}" = "1" ]; then
+ # this may need to be changed when package perl has any change.
+ cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config.pm ${WORKDIR}/
+ cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config_heavy.pl ${WORKDIR}/
+ sed -e "s@libpth => '/usr/lib.*@libpth => '${STAGING_DIR_TARGET}/${libdir} ${STAGING_DIR_TARGET}/${base_libdir}',@g" \
+ -e "s@privlibexp => '/usr@privlibexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@scriptdir => '/usr@scriptdir => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@sitearchexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@sitelibexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@vendorarchexp => '/usr@vendorarchexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@vendorlibexp => '/usr@vendorlibexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -i ${WORKDIR}/Config.pm
+ fi
+
+}
+
+do_configure_append() {
+ if [ "${HAS_PERL}" = "1" ]; then
+ sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=${STAGING_DIR_TARGET}\$\{includedir\}@g" \
+ -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L${STAGING_DIR_TARGET}\$\{libdir\}@g" \
+ -i ${B}/net-snmp-config
+ fi
+}
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/snmp
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/snmpd
+ install -m 644 ${WORKDIR}/snmpd.conf ${D}${sysconfdir}/snmp/
+ install -m 644 ${WORKDIR}/snmptrapd.conf ${D}${sysconfdir}/snmp/
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/snmpd.service ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/snmptrapd.service ${D}${systemd_unitdir}/system
+ sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \
+ -i ${D}${bindir}/net-snmp-create-v3-user
+ sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \
+ -e "s@\([^ ]*-fdebug-prefix-map=[^ ]*\)\1*@@g" \
+ -e "s@\([^ ]*--sysroot=[^ ]*\)\1*@@g" \
+ -e "s@\([^ ]*--with-libtool-sysroot=[^ ]*\)\1*@@g" \
+ -e "s@\([^ ]*--with-install-prefix=[^ ]*\)\1*@@g" \
+ -i ${D}${bindir}/net-snmp-config
+
+ if [ "${HAS_PERL}" = "1" ]; then
+ sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=\$\{includedir\}@g" \
+ -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L\$\{libdir\}@g" \
+ -i ${D}${bindir}/net-snmp-config
+ fi
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ for i in ${S}/dist ${S}/include ${B}/include ${S}/mibs ${S}/configure \
+ ${B}/net-snmp-config ${S}/testing; do
+ if [ -e "$i" ]; then
+ cp -R --no-dereference --preserve=mode,links -v "$i" ${D}${PTEST_PATH}
+ fi
+ done
+ echo `autoconf -V|awk '/autoconf/{print $NF}'` > ${D}${PTEST_PATH}/dist/autoconf-version
+
+ rmdlist="${D}${PTEST_PATH}/dist/net-snmp-solaris-build"
+ for i in $rmdlist; do
+ if [ -d "$i" ]; then
+ rm -rf "$i"
+ fi
+ done
+}
+
+SYSROOT_PREPROCESS_FUNCS += "net_snmp_sysroot_preprocess"
+SNMP_DBGDIR = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
+
+net_snmp_sysroot_preprocess () {
+ if [ -e ${D}${bindir}/net-snmp-config ]; then
+ install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 755 ${D}${bindir}/net-snmp-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ sed -e "s@-I/usr/include@-I${STAGING_INCDIR}@g" \
+ -e "s@^prefix=.*@prefix=${STAGING_DIR_HOST}${prefix}@g" \
+ -e "s@^exec_prefix=.*@exec_prefix=${STAGING_EXECPREFIXDIR}@g" \
+ -e "s@^includedir=.*@includedir=${STAGING_INCDIR}@g" \
+ -e "s@^libdir=.*@libdir=${STAGING_LIBDIR}@g" \
+ -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=${S}@g" \
+ -e "s@-fdebug-prefix-map=${SNMP_DBGDIR}@-fdebug-prefix-map=${WORKDIR}=${SNMP_DBGDIR}@g" \
+ -e "s@-fdebug-prefix-map= -fdebug-prefix-map=@-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
+ -fdebug-prefix-map=${STAGING_DIR_HOST}=@g" \
+ -e "s@--sysroot=@--sysroot=${STAGING_DIR_HOST}@g" \
+ -e "s@--with-libtool-sysroot=@--with-libtool-sysroot=${STAGING_DIR_HOST}@g" \
+ -e "s@--with-install-prefix=@--with-install-prefix=${D}@g" \
+ -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/net-snmp-config
+ fi
+}
+
+PACKAGE_PREPROCESS_FUNCS += "net_snmp_package_preprocess"
+net_snmp_package_preprocess () {
+ sed -e 's@${RECIPE_SYSROOT}@@g' \
+ -i ${PKGD}${bindir}/net-snmp-config
+}
+
+PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client \
+ ${PN}-server-snmpd ${PN}-server-snmptrapd \
+ ${PN}-lib-netsnmp ${PN}-lib-agent ${PN}-lib-helpers \
+ ${PN}-lib-mibs ${PN}-lib-trapd"
+
+# perl module
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}"
+
+ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY_${PN}-server = "1"
+ALLOW_EMPTY_${PN}-libs = "1"
+
+FILES_${PN}-perl-modules = "${libdir}/perl/*"
+
+FILES_${PN}-libs = ""
+FILES_${PN}-mibs = "${datadir}/snmp/mibs"
+FILES_${PN}-server-snmpd = "${sbindir}/snmpd \
+ ${sysconfdir}/snmp/snmpd.conf \
+ ${sysconfdir}/init.d \
+ ${systemd_unitdir}/system/snmpd.service \
+"
+
+FILES_${PN}-server-snmptrapd = "${sbindir}/snmptrapd \
+ ${sysconfdir}/snmp/snmptrapd.conf \
+ ${systemd_unitdir}/system/snmptrapd.service \
+"
+
+FILES_${PN}-lib-netsnmp = "${libdir}/libnetsnmp${SOLIBS}"
+FILES_${PN}-lib-agent = "${libdir}/libnetsnmpagent${SOLIBS}"
+FILES_${PN}-lib-helpers = "${libdir}/libnetsnmphelpers${SOLIBS}"
+FILES_${PN}-lib-mibs = "${libdir}/libnetsnmpmibs${SOLIBS}"
+FILES_${PN}-lib-trapd = "${libdir}/libnetsnmptrapd${SOLIBS}"
+
+FILES_${PN} = ""
+FILES_${PN}-client = "${bindir}/* ${datadir}/snmp/"
+FILES_${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/"
+FILES_${PN}-dev += "${bindir}/mib2c ${bindir}/mib2c-update"
+
+CONFFILES_${PN}-server-snmpd = "${sysconfdir}/snmp/snmpd.conf"
+CONFFILES_${PN}-server-snmptrapd = "${sysconfdir}/snmp/snmptrapd.conf"
+
+INITSCRIPT_PACKAGES = "${PN}-server-snmpd"
+INITSCRIPT_NAME_${PN}-server-snmpd = "snmpd"
+INITSCRIPT_PARAMS_${PN}-server-snmpd = "start 90 2 3 4 5 . stop 60 0 1 6 ."
+
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemd', '--without-systemd', d)}"
+
+SYSTEMD_PACKAGES = "${PN}-server-snmpd \
+ ${PN}-server-snmptrapd"
+
+SYSTEMD_SERVICE_${PN}-server-snmpd = "snmpd.service"
+SYSTEMD_SERVICE_${PN}-server-snmptrapd = "snmptrapd.service"
+
+RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}"
+RDEPENDS_${PN} += "net-snmp-client"
+RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs"
+RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd ${PN}-lib-trapd"
+RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
+RDEPENDS_${PN}-client += "net-snmp-mibs net-snmp-libs"
+RDEPENDS_${PN}-libs += "libpci \
+ ${PN}-lib-netsnmp \
+ ${PN}-lib-agent \
+ ${PN}-lib-helpers \
+ ${PN}-lib-mibs \
+"
+RDEPENDS_${PN}-ptest += "perl \
+ perl-module-test \
+ perl-module-file-basename \
+ perl-module-getopt-long \
+ perl-module-file-temp \
+ perl-module-data-dumper \
+"
+RDEPENDS_${PN}-dev = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})"
+RRECOMMENDS_${PN}-dbg = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})"
+
+RPROVIDES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
+RREPLACES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
+RCONFLICTS_${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
+
+RPROVIDES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
+RREPLACES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
+RCONFLICTS_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
+
+LEAD_SONAME = "libnetsnmp.so"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb b/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb
deleted file mode 100644
index 1d77891..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "OpenSource WebSocket Toolkit"
-DESCRIPTION = "noPoll is a OpenSource WebSocket implementation (RFC 6455), \
-written in ansi C, that allows building pure WebSocket solutions or to \
-provide WebSocket support to existing TCP oriented applications.\
-\
-noPoll provides support for WebSocket (ws://) and TLS (secure) WebSocket (wss://),\
-allowing message based (handler notified) programming or stream oriented access."
-
-HOMEPAGE = "http://www.aspl.es/nopoll/"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f0504124678c1b3158146e0630229298 \
- "
-DEPENDS = "openssl"
-SRC_URI = "http://www.aspl.es/nopoll/downloads/nopoll-${PV}.tar.gz \
- "
-SRC_URI[md5sum] = "8c411cd0f3c0479aed28c4cf7b114fbb"
-SRC_URI[sha256sum] = "f5fbf8aaa16a77b0f265d8c847eb06cb3e68f2b1a50737466dae81181618654c"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--disable-nopoll-doc"
-
-LDFLAGS += "-lpthread"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb b/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb
new file mode 100644
index 0000000..8c57d29
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb
@@ -0,0 +1,23 @@
+SUMMARY = "OpenSource WebSocket Toolkit"
+DESCRIPTION = "noPoll is a OpenSource WebSocket implementation (RFC 6455), \
+written in ansi C, that allows building pure WebSocket solutions or to \
+provide WebSocket support to existing TCP oriented applications.\
+\
+noPoll provides support for WebSocket (ws://) and TLS (secure) WebSocket (wss://),\
+allowing message based (handler notified) programming or stream oriented access."
+
+HOMEPAGE = "http://www.aspl.es/nopoll/"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f0504124678c1b3158146e0630229298 \
+ "
+DEPENDS = "openssl"
+SRC_URI = "http://www.aspl.es/nopoll/downloads/nopoll-${PV}.tar.gz \
+ "
+SRC_URI[md5sum] = "8d333f158b5d5a8975a6149e6ef8db63"
+SRC_URI[sha256sum] = "7f1b20f1d0525f30cdd2a4fc386d328b4cf98c6d11cef51fe62cd9491ba19ad9"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--disable-nopoll-doc"
+
+LDFLAGS += "-lpthread"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch
new file mode 100644
index 0000000..4acae80
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch
@@ -0,0 +1,33 @@
+From 0fe6770b617af7e400abc6f8652c1417d4c3575e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Sep 2018 22:49:15 -0700
+Subject: [PATCH] generate not static get_dh* functions
+
+Fixes build with OpenSSL 1.1.x
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/automake.mk | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/lib/automake.mk b/lib/automake.mk
+index bfbeb94..b53909a 100644
+--- a/lib/automake.mk
++++ b/lib/automake.mk
+@@ -113,8 +113,9 @@ lib/dhparams.c: lib/dh1024.pem lib/dh2048.pem lib/dh4096.pem
+ (echo '#include "lib/dhparams.h"' && \
+ openssl dhparam -C -in $(srcdir)/lib/dh1024.pem -noout && \
+ openssl dhparam -C -in $(srcdir)/lib/dh2048.pem -noout && \
+- openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) \
+- | sed 's/\(get_dh[0-9]*\)()/\1(void)/' > lib/dhparams.c.tmp
++ openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) | \
++ sed -e 's/\(get_dh[0-9]*\)()/\1(void)/' \
++ -e 's/static DH \*get_dh/DH \*get_dh/' > lib/dhparams.c.tmp
+ mv lib/dhparams.c.tmp lib/dhparams.c
+ endif
+
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb
index eceb45e..b6cef07 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb
@@ -6,4 +6,5 @@
SRC_URI += "\
file://0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch \
file://0002-lib-netdev-Adjust-header-include-sequence.patch \
+ file://0001-generate-not-static-get_dh-functions.patch \
"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch
deleted file mode 100644
index a11a97e..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 8f299df4dd1ca857e34859c377a29b183c630961 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 21 Sep 2017 13:05:03 -0700
-Subject: [PATCH] l2tp_api.c: include rpc/clnt.h for 'resultproc_t'
-
-Fixes
-
-| /mnt/a/oe/build/tmp/work/mips32r2-bec-linux-musl/openl2tp/1.8-r0/recipe-sysroot/usr/include/tirpc/rpc/pmap_clnt.h:81:12: error: unknown type name 'resultproc_t'; did you mean 'rpcproc_t'? | resultproc_t); | ^~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- l2tp_api.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/l2tp_api.c b/l2tp_api.c
-index f0946fd..f77881c 100644
---- a/l2tp_api.c
-+++ b/l2tp_api.c
-@@ -26,6 +26,7 @@
- #include <sys/types.h>
- #include <rpc/types.h>
- #include <rpc/xdr.h>
-+#include <rpc/clnt.h>
- #include <rpc/pmap_clnt.h>
- //#include <netinet/in.h>
-
---
-2.14.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch
index 3f8bcaa..bd9bcb8 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch
@@ -4,6 +4,9 @@
Subject: [PATCH 2/2] user ipv6 structures
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Update for ipv6 address compare
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
l2tp_api.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
@@ -18,8 +21,8 @@
if ((!l2tp_opt_remote_rpc) &&
- ((xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) &&
- (xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_ANY)))) {
-+ ((xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_LOOPBACK)) &&
-+ (xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_ANY)))) {
++ ((memcmp(&xprt->xp_raddr.sin6_addr, &in6addr_loopback, sizeof(struct in6_addr)) != 0) &&
++ (memcmp(&xprt->xp_raddr.sin6_addr, &in6addr_any, sizeof(struct in6_addr)) != 0))) {
+ char straddr[INET6_ADDRSTRLEN];
+ inet_ntop(AF_INET6, &xprt->xp_raddr.sin6_addr, straddr, sizeof(straddr));
if (l2tp_opt_trace_flags & L2TP_DEBUG_API) {
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch
deleted file mode 100644
index 0fcba65..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From ede4ae8e25f9fb746a6f4e076d0ef029938d2880 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 28 Mar 2017 11:46:56 -0700
-Subject: [PATCH 4/4] Adjust for linux-kernel headers assumptions on glibc
-
-Fixes build issues e.g.
-
-In file included from /mnt/a/build/tmp-musl/work/cortexa7hf-neon-vfpv4-oe-linux-musleabi/openl2tp/1.8-r0/recipe-sysroot/usr/include/linux/if_pppox.h:24:
-/mnt/a/build/tmp-musl/work/cortexa7hf-neon-vfpv4-oe-linux-musleabi/openl2tp/1.8-r0/recipe-sysroot/usr/include/linux/if.h:97:2: error: expected identifier
- IFF_LOWER_UP = 1<<16, /* __volatile__ */
- ^
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- plugins/ppp_unix.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/plugins/ppp_unix.c b/plugins/ppp_unix.c
-index 869066f..5c1e44f 100644
---- a/plugins/ppp_unix.c
-+++ b/plugins/ppp_unix.c
-@@ -21,6 +21,11 @@
- * Plugin to use the standard UNIX pppd
- */
-
-+/* hack to make sure kernel headers understand that libc (musl)
-+ * does define IFF_LOWER_UP et al.
-+ */
-+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0
-+
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/types.h>
---
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
index 1f6b4de..90e8b11 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
@@ -16,7 +16,7 @@
file://usl/LICENSE;md5=9c1387a3c5213aa40671438af3e00793 \
"
-DEPENDS = "popt flex readline"
+DEPENDS = "popt flex readline rpcsvc-proto-native bison-native"
SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \
file://Makefile-modify-CFLAGS-to-aviod-build-error.patch \
@@ -34,12 +34,7 @@
file://openl2tpd-enable-tests.patch \
file://run-ptest \
file://fix_linux_4.15_compile.patch \
- "
-
-SRC_URI_append_libc-musl = "\
- file://0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch \
file://0002-user-ipv6-structures.patch \
- file://0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch \
"
SRC_URI[md5sum] = "e3d08dedfb9e6a9a1e24f6766f6dadd0"
SRC_URI[sha256sum] = "1c97704d4b963a87fbc0e741668d4530933991515ae9ab0dffd11b5444f4860f"
@@ -49,10 +44,10 @@
SYSTEMD_SERVICE_${PN} = "openl2tpd.service"
SYSTEMD_AUTO_ENABLE = "disable"
-DEPENDS_append_libc-musl = " libtirpc"
-CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS_append_libc-musl = " -ltirpc"
+DEPENDS += "libtirpc"
+CPPFLAGS += "-I${STAGING_INCDIR}/tirpc"
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LDFLAGS += "-ltirpc"
PARALLEL_MAKE = ""
EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-unused-but-set-variable" CPPFLAGS="${CPPFLAGS}" OPT_CFLAGS="${CFLAGS}"'
diff --git a/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb b/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
index 95faa65..780423f 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
@@ -17,6 +17,8 @@
inherit autotools-brokensep
+DEPENDS += "virtual/crypt"
+
EXTRA_OECONF += "--disable-static"
do_configure_prepend () {
diff --git a/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb b/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb
index b2757f6..725ba18 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb
@@ -18,11 +18,14 @@
inherit autotools-brokensep
+LIBS_append_libc-musl = " -lssp_nonshared"
+LIBS_append_libc-glibc = " -lc_nonshared"
+
S = "${WORKDIR}/tsocks-1.8"
FILES_${PN} = "${libdir}/* ${bindir}/tsocks"
FILES_${PN}-dev = ""
INSANE_SKIP_${PN} = "dev-so"
-EXTRA_OEMAKE = "SHCC='${CC} -fPIC ${LDFLAGS}'"
+EXTRA_OEMAKE = "SHCC='${CC} -fPIC ${LDFLAGS}' LIBS='${LIBS}'"
diff --git a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
index 5dd4c7d..8cadb2b 100644
--- a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
+++ b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
@@ -1,23 +1,27 @@
-From 7e1ae687916fd5878ee755afbdea6b10494e0b92 Mon Sep 17 00:00:00 2001
-From: Alexey Firago <alexey_firago@mentor.com>
-Date: Wed, 26 Jul 2017 23:21:25 +0300
+From 12414304245cce6ef0e8b9547949be5109845353 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 13:33:33 +0800
Subject: [PATCH] cmake: Install libcares.pc
Prepare and install libcares.pc file during cmake build, so libraries
using pkg-config to find libcares will not fail.
Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+
+update to 1.14.0, fix patch warning
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- CMakeLists.txt | 21 +++++++++++++++++++++
+ CMakeLists.txt | 23 +++++++++++++++++++++++
libcares.pc.cmakein | 20 ++++++++++++++++++++
- 2 files changed, 41 insertions(+)
+ 2 files changed, 43 insertions(+)
create mode 100644 libcares.pc.cmakein
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 364b6c7..0016b67 100644
+index 60a880c..71eaa53 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -173,21 +173,29 @@ ADD_DEFINITIONS(${SYSFLAGS})
+@@ -193,22 +193,30 @@ ADD_DEFINITIONS(${SYSFLAGS})
# Tell C-Ares about libraries to depend on
@@ -43,32 +47,35 @@
LIST (APPEND CARES_DEPENDENT_LIBS ws2_32)
+ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lws2_32")
ENDIF ()
+
+string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}")
-
# When checking for symbols, we need to make sure we set the proper
-@@ -489,6 +497,13 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h)
+ # headers, libraries, and definitions for the detection to work properly
+@@ -514,6 +522,15 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h)
# Write ares_config.h configuration file. This is used only for the build.
CONFIGURE_FILE (ares_config.h.cmake ${PROJECT_BINARY_DIR}/ares_config.h)
+# Pass required CFLAGS to pkg-config in case of static library
+IF (CARES_STATIC)
-+ SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB")
++ SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB")
+ENDIF()
+
+# Write ares_config.h configuration file. This is used only for the build.
+CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
++
++
# TRANSFORM_MAKEFILE_INC
#
-@@ -625,6 +640,12 @@ IF (CARES_INSTALL)
- INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" DESTINATION ${CMAKECONFIG_INSTALL_DIR})
+@@ -664,6 +681,12 @@ IF (CARES_INSTALL)
+ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
ENDIF ()
+# pkg-config file
+IF (CARES_INSTALL)
-+ SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
-+ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR})
++ SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR})
+ENDIF ()
+
# Legacy chain-building variables (provided for compatibility with old code).
@@ -76,7 +83,7 @@
SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND")
diff --git a/libcares.pc.cmakein b/libcares.pc.cmakein
new file mode 100644
-index 0000000..f29fede
+index 0000000..3579256
--- /dev/null
+++ b/libcares.pc.cmakein
@@ -0,0 +1,20 @@
diff --git a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb
deleted file mode 100644
index 70e497f..0000000
--- a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (c) 2012-2014 LG Electronics, Inc.
-SUMMARY = "c-ares is a C library that resolves names asynchronously."
-HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f4b026880834eb01c035c5e5cb47ccac"
-SRCREV = "3be1924221e1326df520f8498d704a5c4c8d0cce"
-PV = "1.13.0+gitr${SRCPV}"
-
-SRC_URI = "\
- git://github.com/c-ares/c-ares.git \
- file://cmake-install-libcares.pc.patch \
-"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-PACKAGES =+ "${PN}-utils"
-
-FILES_${PN}-dev += "${libdir}/cmake"
-FILES_${PN}-utils = "${bindir}"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb
new file mode 100644
index 0000000..b31543d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb
@@ -0,0 +1,26 @@
+# Copyright (c) 2012-2014 LG Electronics, Inc.
+SUMMARY = "c-ares is a C library that resolves names asynchronously."
+HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006"
+
+PV = "1.14.0+gitr${SRCPV}"
+
+SRC_URI = "\
+ git://github.com/c-ares/c-ares.git \
+ file://cmake-install-libcares.pc.patch \
+"
+SRCREV = "17dc1b3102e0dfc3e7e31369989013154ee17893"
+
+UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+PACKAGES =+ "${PN}-utils"
+
+FILES_${PN}-utils = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-configure.ac-make-tools-support-optional.patch b/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-configure.ac-make-tools-support-optional.patch
new file mode 100644
index 0000000..b0809ee
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-configure.ac-make-tools-support-optional.patch
@@ -0,0 +1,39 @@
+From 86df4200c9c33d999df0e8cc3c9771f17a297ec4 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 13 Sep 2017 15:01:54 +0200
+Subject: [PATCH] configure.ac: make tools support optional
+
+* add --enable-tools option
+* XIPH_PATH_OGG macro is provided by libogg so we cannot call
+ it without the libogg dependency
+
+Upstream-Status: Pending
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ configure.ac | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index d4b1a3f..7d6b2dc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -68,8 +68,14 @@ AC_MSG_RESULT($has_alloca)
+
+ AC_CHECK_HEADERS(sys/soundcard.h sys/audioio.h)
+
+-XIPH_PATH_OGG([tools="tools"], [tools=""])
++AC_ARG_ENABLE(tools, [ --enable-tools Compile ogg tools],
++[if test "$enableval" = yes; then
++ [tools="tools"]
++else
++ [tools=""]
++fi],
+ AC_SUBST(tools)
++)
+
+ AC_CHECK_LIB(m, sin)
+
+--
+2.14.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-tests-Include-entcode.c-into-test-sources-to-provide.patch b/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-tests-Include-entcode.c-into-test-sources-to-provide.patch
new file mode 100644
index 0000000..cc893f0
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-tests-Include-entcode.c-into-test-sources-to-provide.patch
@@ -0,0 +1,55 @@
+From 61fbdddb660c5944ac23b820754a7c4cf4eee097 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Jun 2018 19:29:03 -0700
+Subject: [PATCH] tests: Include entcode.c into test sources to provide
+ definitions of functions e.g. ec_ilog()
+
+Fixes link errors in tests
+| /usr/src/debug/celt051/0.5.1.3+gitAUTOINC+5555aae843-r0/git/tests/../libcelt/rangedec.c:202: undefined reference to `ec_ilog'
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/cwrs32-test.c | 1 +
+ tests/ectest.c | 2 +-
+ tests/laplace-test.c | 1 +
+ 3 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/tests/cwrs32-test.c b/tests/cwrs32-test.c
+index 3a95df2..a159ab3 100644
+--- a/tests/cwrs32-test.c
++++ b/tests/cwrs32-test.c
+@@ -8,6 +8,7 @@
+ #include "rangeenc.c"
+ #include "rangedec.c"
+ #include "cwrs.c"
++#include "entcode.c"
+ #include <string.h>
+ #define NMAX (10)
+ #define MMAX (9)
+diff --git a/tests/ectest.c b/tests/ectest.c
+index aa35453..94eb9a3 100644
+--- a/tests/ectest.c
++++ b/tests/ectest.c
+@@ -5,7 +5,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <math.h>
+-#include "entcode.h"
++#include "entcode.c"
+ #include "entenc.c"
+ #include "entdec.c"
+ #include "rangeenc.c"
+diff --git a/tests/laplace-test.c b/tests/laplace-test.c
+index 3f98ab3..8e1fb4e 100644
+--- a/tests/laplace-test.c
++++ b/tests/laplace-test.c
+@@ -6,6 +6,7 @@
+ #include <stdlib.h>
+ #include "laplace.c"
+ #include "stack_alloc.h"
++#include "entcode.c"
+ #include "entenc.c"
+ #include "entdec.c"
+ #include "rangeenc.c"
diff --git a/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb b/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb
new file mode 100644
index 0000000..1168005
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2013 Wind River Systems, Inc.
+#
+
+SUMMARY = "The CELT codec is a compression algorithm for audio"
+DESCRIPTION = "The CELT codec is a compression algorithm for \
+audio. Like MP3, Vorbis, and AAC it is suitable for transmitting music \
+with high quality. Unlike these formats CELT imposes very little delay \
+on the signal, even less than is typical for speech centric formats \
+like Speex, GSM, or G.729."
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=375f60ab360d17f0172737036ff155b2"
+
+PV = "0.5.1.3+git${SRCPV}"
+
+SRCREV = "5555aae843f57241d005e330b9cb65602d56db0f"
+
+SRC_URI = "git://git.xiph.org/celt.git;branch=compat-v0.5.1;protocol=https \
+ file://0001-configure.ac-make-tools-support-optional.patch \
+ file://0001-tests-Include-entcode.c-into-test-sources-to-provide.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools-brokensep
+
+PACKAGECONFIG_class-native = ""
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[ogg] = "--enable-tools,--disable-tools,libogg,"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch b/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
index 92a2dbd..9f943cd 100644
--- a/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
+++ b/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
@@ -1,4 +1,7 @@
- chrony: fix build failure for arma9
+From 9ca48a6fef1da1bb0dd67ab94256c7e240da1834 Mon Sep 17 00:00:00 2001
+From: Joe Slater <jslater@windriver.com>
+Date: Thu, 9 Mar 2017 10:58:06 -0800
+Subject: [PATCH] chrony: fix build failure for arma9
Eliminate references to syscalls not available
for ARM_EABI. Also add a dependency on libseccomp
@@ -16,9 +19,15 @@
Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
+---
+ sys_linux.c | 19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/sys_linux.c b/sys_linux.c
+index f4b532d..d05fa24 100644
--- a/sys_linux.c
+++ b/sys_linux.c
-@@ -465,14 +465,14 @@ SYS_Linux_EnableSystemCallFilter(int lev
+@@ -482,14 +482,14 @@ SYS_Linux_EnableSystemCallFilter(int level)
const int syscalls[] = {
/* Clock */
SCMP_SYS(adjtimex), SCMP_SYS(clock_gettime), SCMP_SYS(gettimeofday),
@@ -36,8 +45,8 @@
SCMP_SYS(mprotect), SCMP_SYS(mremap), SCMP_SYS(munmap), SCMP_SYS(shmdt),
/* Filesystem */
SCMP_SYS(access), SCMP_SYS(chmod), SCMP_SYS(chown), SCMP_SYS(chown32),
-@@ -483,14 +483,21 @@
- SCMP_SYS(bind), SCMP_SYS(connect), SCMP_SYS(getsockname),
+@@ -500,14 +500,21 @@ SYS_Linux_EnableSystemCallFilter(int level)
+ SCMP_SYS(bind), SCMP_SYS(connect), SCMP_SYS(getsockname), SCMP_SYS(getsockopt),
SCMP_SYS(recvfrom), SCMP_SYS(recvmmsg), SCMP_SYS(recvmsg),
SCMP_SYS(sendmmsg), SCMP_SYS(sendmsg), SCMP_SYS(sendto),
- /* TODO: check socketcall arguments */
diff --git a/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.2.bb b/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.2.bb
deleted file mode 100644
index 8b90a35..0000000
--- a/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.2.bb
+++ /dev/null
@@ -1,134 +0,0 @@
-SUMMARY = "Versatile implementation of the Network Time Protocol"
-DESCRIPTION = "Chrony can synchronize the system clock with NTP \
-servers, reference clocks (e.g. GPS receiver), and manual input using \
-wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) \
-server and peer to provide a time service to other computers in the \
-network. \
-\
-It is designed to perform well in a wide range of conditions, \
-including intermittent network connections, heavily congested \
-networks, changing temperatures (ordinary computer clocks are \
-sensitive to temperature), and systems that do not run continuously, or \
-run on a virtual machine. \
-\
-Typical accuracy between two machines on a LAN is in tens, or a few \
-hundreds, of microseconds; over the Internet, accuracy is typically \
-within a few milliseconds. With a good hardware reference clock \
-sub-microsecond accuracy is possible. \
-\
-Two programs are included in chrony: chronyd is a daemon that can be \
-started at boot time and chronyc is a command-line interface program \
-which can be used to monitor chronyd's performance and to change \
-various operating parameters whilst it is running. \
-\
-This recipe produces two binary packages: 'chrony' which contains chronyd, \
-the configuration file and the init script, and 'chronyc' which contains \
-the client program only."
-
-HOMEPAGE = "https://chrony.tuxfamily.org/"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "https://download.tuxfamily.org/chrony/chrony-${PV}.tar.gz \
- file://chrony.conf \
- file://chronyd \
- file://arm_eabi.patch \
-"
-SRC_URI[md5sum] = "f4c4eb0dc92f35ee4bb7d3dcd8029ecb"
-SRC_URI[sha256sum] = "329f6718dd8c3ece3eee78be1f4821cbbeb62608e7d23f25da293cfa433c4116"
-
-DEPENDS = "pps-tools"
-
-# Note: Despite being built via './configure; make; make install',
-# chrony does not use GNU Autotools.
-inherit update-rc.d systemd
-
-# Configuration options:
-# - For command line editing support in chronyc, you may specify either
-# 'editline' or 'readline' but not both. editline is smaller, but
-# many systems already have readline for other purposes so you might want
-# to choose that instead. However, beware license incompatibility
-# since chrony is GPLv2 and readline versions after 6.0 are GPLv3+.
-# You can of course choose neither, but if you're that tight on space
-# consider dropping chronyc entirely (you can use it remotely with
-# appropriate chrony.conf options).
-# - Security-related:
-# - 'sechash' is omitted by default because it pulls in nss which is huge.
-# - 'privdrop' allows chronyd to run as non-root; would need changes to
-# chrony.conf and init script.
-# - 'scfilter' enables support for system call filtering, but requires the
-# kernel to have CONFIG_SECCOMP enabled.
-PACKAGECONFIG ??= "editline \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-PACKAGECONFIG[readline] = "--without-editline,--without-readline,readline"
-PACKAGECONFIG[editline] = ",--without-editline,libedit"
-PACKAGECONFIG[sechash] = "--without-tomcrypt,--disable-sechash,nss"
-PACKAGECONFIG[privdrop] = ",--disable-privdrop,libcap"
-PACKAGECONFIG[scfilter] = "--enable-scfilter,--without-seccomp,libseccomp"
-PACKAGECONFIG[ipv6] = ",--disable-ipv6,"
-PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-
-# --disable-static isn't supported by chrony's configure script.
-DISABLE_STATIC = ""
-
-do_configure() {
- ./configure --sysconfdir=${sysconfdir} --bindir=${bindir} --sbindir=${sbindir} \
- --localstatedir=${localstatedir} --datarootdir=${datadir} \
- ${PACKAGECONFIG_CONFARGS}
-}
-
-do_install() {
- # Binaries
- install -d ${D}${bindir}
- install -m 0755 ${S}/chronyc ${D}${bindir}
- install -d ${D}${sbindir}
- install -m 0755 ${S}/chronyd ${D}${sbindir}
-
- # Config file
- install -d ${D}${sysconfdir}
- install -m 644 ${WORKDIR}/chrony.conf ${D}${sysconfdir}
-
- # System V init script
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/chronyd ${D}${sysconfdir}/init.d
-
- # systemd unit configuration file
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/examples/chronyd.service ${D}${systemd_unitdir}/system/
-
- # Variable data (for drift and/or rtc file)
- install -d ${D}${localstatedir}/lib/chrony
-
- # Log files
- install -d ${D}${localstatedir}/log/chrony
-
- # Fix hard-coded paths in config files and init scripts
- sed -i -e 's!/var/!${localstatedir}/!g' -e 's!/etc/!${sysconfdir}/!g' \
- -e 's!/usr/sbin/!${sbindir}/!g' -e 's!/usr/bin/!${bindir}/!g' \
- ${D}${sysconfdir}/chrony.conf \
- ${D}${sysconfdir}/init.d/chronyd \
- ${D}${systemd_unitdir}/system/chronyd.service
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/chronyd
- sed -i 's!^EnvironmentFile=.*!EnvironmentFile=-${sysconfdir}/default/chronyd!' ${D}${systemd_unitdir}/system/chronyd.service
-}
-
-FILES_${PN} = "${sbindir}/chronyd ${sysconfdir} ${localstatedir}"
-CONFFILES_${PN} = "${sysconfdir}/chrony.conf"
-INITSCRIPT_NAME = "chronyd"
-INITSCRIPT_PARAMS = "defaults"
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "chronyd.service"
-
-# It's probably a bad idea to run chrony and another time daemon on
-# the same system. systemd includes the SNTP client 'timesyncd', which
-# will be disabled by chronyd.service, however it will remain on the rootfs
-# wasting 150 kB unless you put 'PACKAGECONFIG_remove_pn-systemd = "timesyncd"'
-# in a conf file or bbappend somewhere.
-RCONFLICTS_${PN} = "ntp ntimed"
-
-# Separate the client program into its own package
-PACKAGES =+ "chronyc"
-FILES_chronyc = "${bindir}/chronyc"
diff --git a/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.3.bb b/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.3.bb
new file mode 100644
index 0000000..2586370
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.3.bb
@@ -0,0 +1,134 @@
+SUMMARY = "Versatile implementation of the Network Time Protocol"
+DESCRIPTION = "Chrony can synchronize the system clock with NTP \
+servers, reference clocks (e.g. GPS receiver), and manual input using \
+wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) \
+server and peer to provide a time service to other computers in the \
+network. \
+\
+It is designed to perform well in a wide range of conditions, \
+including intermittent network connections, heavily congested \
+networks, changing temperatures (ordinary computer clocks are \
+sensitive to temperature), and systems that do not run continuously, or \
+run on a virtual machine. \
+\
+Typical accuracy between two machines on a LAN is in tens, or a few \
+hundreds, of microseconds; over the Internet, accuracy is typically \
+within a few milliseconds. With a good hardware reference clock \
+sub-microsecond accuracy is possible. \
+\
+Two programs are included in chrony: chronyd is a daemon that can be \
+started at boot time and chronyc is a command-line interface program \
+which can be used to monitor chronyd's performance and to change \
+various operating parameters whilst it is running. \
+\
+This recipe produces two binary packages: 'chrony' which contains chronyd, \
+the configuration file and the init script, and 'chronyc' which contains \
+the client program only."
+
+HOMEPAGE = "https://chrony.tuxfamily.org/"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "https://download.tuxfamily.org/chrony/chrony-${PV}.tar.gz \
+ file://chrony.conf \
+ file://chronyd \
+ file://arm_eabi.patch \
+"
+SRC_URI[md5sum] = "81ab62cf5d60b4b3fa8cd2c1b267ffd9"
+SRC_URI[sha256sum] = "0d1fb2d5875032f2d5a86f3770374c87ee4c941916f64171e81f7684f2a73128"
+
+DEPENDS = "pps-tools"
+
+# Note: Despite being built via './configure; make; make install',
+# chrony does not use GNU Autotools.
+inherit update-rc.d systemd
+
+# Configuration options:
+# - For command line editing support in chronyc, you may specify either
+# 'editline' or 'readline' but not both. editline is smaller, but
+# many systems already have readline for other purposes so you might want
+# to choose that instead. However, beware license incompatibility
+# since chrony is GPLv2 and readline versions after 6.0 are GPLv3+.
+# You can of course choose neither, but if you're that tight on space
+# consider dropping chronyc entirely (you can use it remotely with
+# appropriate chrony.conf options).
+# - Security-related:
+# - 'sechash' is omitted by default because it pulls in nss which is huge.
+# - 'privdrop' allows chronyd to run as non-root; would need changes to
+# chrony.conf and init script.
+# - 'scfilter' enables support for system call filtering, but requires the
+# kernel to have CONFIG_SECCOMP enabled.
+PACKAGECONFIG ??= "editline \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+PACKAGECONFIG[readline] = "--without-editline,--without-readline,readline"
+PACKAGECONFIG[editline] = ",--without-editline,libedit"
+PACKAGECONFIG[sechash] = "--without-tomcrypt,--disable-sechash,nss"
+PACKAGECONFIG[privdrop] = ",--disable-privdrop,libcap"
+PACKAGECONFIG[scfilter] = "--enable-scfilter,--without-seccomp,libseccomp"
+PACKAGECONFIG[ipv6] = ",--disable-ipv6,"
+PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+
+# --disable-static isn't supported by chrony's configure script.
+DISABLE_STATIC = ""
+
+do_configure() {
+ ./configure --sysconfdir=${sysconfdir} --bindir=${bindir} --sbindir=${sbindir} \
+ --localstatedir=${localstatedir} --datarootdir=${datadir} \
+ ${PACKAGECONFIG_CONFARGS}
+}
+
+do_install() {
+ # Binaries
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/chronyc ${D}${bindir}
+ install -d ${D}${sbindir}
+ install -m 0755 ${S}/chronyd ${D}${sbindir}
+
+ # Config file
+ install -d ${D}${sysconfdir}
+ install -m 644 ${WORKDIR}/chrony.conf ${D}${sysconfdir}
+
+ # System V init script
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/chronyd ${D}${sysconfdir}/init.d
+
+ # systemd unit configuration file
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/examples/chronyd.service ${D}${systemd_unitdir}/system/
+
+ # Variable data (for drift and/or rtc file)
+ install -d ${D}${localstatedir}/lib/chrony
+
+ # Log files
+ install -d ${D}${localstatedir}/log/chrony
+
+ # Fix hard-coded paths in config files and init scripts
+ sed -i -e 's!/var/!${localstatedir}/!g' -e 's!/etc/!${sysconfdir}/!g' \
+ -e 's!/usr/sbin/!${sbindir}/!g' -e 's!/usr/bin/!${bindir}/!g' \
+ ${D}${sysconfdir}/chrony.conf \
+ ${D}${sysconfdir}/init.d/chronyd \
+ ${D}${systemd_unitdir}/system/chronyd.service
+ sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/chronyd
+ sed -i 's!^EnvironmentFile=.*!EnvironmentFile=-${sysconfdir}/default/chronyd!' ${D}${systemd_unitdir}/system/chronyd.service
+}
+
+FILES_${PN} = "${sbindir}/chronyd ${sysconfdir} ${localstatedir}"
+CONFFILES_${PN} = "${sysconfdir}/chrony.conf"
+INITSCRIPT_NAME = "chronyd"
+INITSCRIPT_PARAMS = "defaults"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "chronyd.service"
+
+# It's probably a bad idea to run chrony and another time daemon on
+# the same system. systemd includes the SNTP client 'timesyncd', which
+# will be disabled by chronyd.service, however it will remain on the rootfs
+# wasting 150 kB unless you put 'PACKAGECONFIG_remove_pn-systemd = "timesyncd"'
+# in a conf file or bbappend somewhere.
+RCONFLICTS_${PN} = "ntp ntimed"
+
+# Separate the client program into its own package
+PACKAGES =+ "chronyc"
+FILES_chronyc = "${bindir}/chronyc"
diff --git a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch b/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch
deleted file mode 100644
index c9195b4..0000000
--- a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-support cross-compile for linux-os.
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
-diff -Nurp ctdb-2.5.1.orig/configure ctdb-2.5.1/configure
---- ctdb-2.5.1.orig/configure 2015-05-07 16:24:28.545000238 +0900
-+++ ctdb-2.5.1/configure 2015-05-07 16:28:20.894000244 +0900
-@@ -10692,10 +10692,16 @@ if test x"$libreplace_cv_HAVE_GETADDRINF
- # see bug 5910, use our replacements if we detect
- # a broken system.
- if test "$cross_compiling" = yes; then :
-+ case "$target_os" in
-+ *linux*)
-+ ;;
-+ *)
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- as_fn_error $? "cannot run test program while cross compiling
- See \`config.log' for more details" "$LINENO" 5; }
-+ ;;
-+ esac
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
diff --git a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch b/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch
deleted file mode 100644
index 1294fe4..0000000
--- a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-link rep_snprintf from lib/replace/snprintf.o for ltdbtool
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
-Index: ctdb-2.5.6/Makefile.in
-===================================================================
---- ctdb-2.5.6.orig/Makefile.in
-+++ ctdb-2.5.6/Makefile.in
-@@ -176,7 +176,7 @@ bin/ctdb: $(CTDB_CLIENT_OBJ) tools/ctdb.
- @echo Linking $@
- $(WRAPPER) $(CC) $(CFLAGS) -o $@ tools/ctdb.o tools/ctdb_vacuum.o $(CTDB_CLIENT_OBJ) $(LIB_FLAGS)
-
--bin/ltdbtool: tools/ltdbtool.o $(TDB_OBJ)
-+bin/ltdbtool: tools/ltdbtool.o $(TDB_OBJ) lib/replace/snprintf.o
- @echo Linking $@
- $(WRAPPER) $(CC) $(CFLAGS) -o $@ $+ $(LIB_FLAGS)
-
diff --git a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch b/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch
deleted file mode 100644
index a7e987b..0000000
--- a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From f02ff7383f1cc0c118732352ccbae476c7b3b3ba Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Tue, 17 Nov 2015 16:17:00 -0500
-Subject: [PATCH] service: ensure the PID directory is created
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- config/ctdb.service | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/config/ctdb.service b/config/ctdb.service
-index ea37c30..8537105 100644
---- a/config/ctdb.service
-+++ b/config/ctdb.service
-@@ -5,6 +5,7 @@ After=network.target
- [Service]
- Type=forking
- LimitCORE=infinity
-+RuntimeDirectory=/run/ctdb
- PIDFile=/run/ctdb/ctdbd.pid
- ExecStart=/usr/sbin/ctdbd_wrapper /run/ctdb/ctdbd.pid start
- ExecStop=/usr/sbin/ctdbd_wrapper /run/ctdb/ctdbd.pid stop
---
-2.1.4
-
diff --git a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb b/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb
deleted file mode 100644
index b5a6064..0000000
--- a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb
+++ /dev/null
@@ -1,57 +0,0 @@
-DESCRIPTION = "CTDB is a cluster implementation of the TDB database \
-used by Samba and other projects to store temporary data. If an \
-application is already using TDB for temporary data it is very easy \
-to convert that application to be cluster aware and use CTDB instead."
-HOMEPAGE = "https://ctdb.samba.org/"
-LICENSE = "GPL-2.0+ & LGPL-3.0+ & GPL-3.0+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \
- file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \
- "
-
-SRC_URI = "https://ftp.samba.org/pub/${BPN}/${BP}.tar.gz \
- file://01-support-cross-compile-for-linux-os.patch \
- file://02-link-rep_snprintf-for-ltdbtool.patch \
- file://service-ensure-the-PID-directory-is-created.patch \
- "
-
-SRC_URI[md5sum] = "efc50109f90a4c790124c35e4ba234ad"
-SRC_URI[sha256sum] = "fc1cdd7efcc91afc629f21408281bba5da107b9c17e74bdee2f28a532d14f874"
-
-inherit autotools-brokensep pkgconfig systemd
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libtdb] = "--without-included-tdb,--with-included-tdb,libtdb"
-
-PARALLEL_MAKE = ""
-
-DEPENDS += "popt libtevent libtalloc libldb"
-DEPENDS_append_libc-musl = " libtirpc"
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS_append_libc-musl = " -ltirpc"
-
-# ctdbd_wrapper requires pgrep, hence procps
-RDEPENDS_${PN} += "procps"
-
-do_configure() {
- oe_runconf
-}
-
-do_install_append() {
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/config/ctdb.service ${D}${systemd_unitdir}/system
- sed -i -e 's,/usr/sbin/,${sbindir}/,' ${D}${systemd_unitdir}/system/ctdb.service
- sed -i -e 's,\([=\ ]\)/run/,\1${localstatedir}/run/,' ${D}${systemd_unitdir}/system/ctdb.service
-
- rm -r ${D}/${localstatedir}/run
-}
-
-# The systemd service is disabled by default, as the service will fail to
-# start without /etc/ctdb/nodes. If the user supplies this, they can re-enable
-# the service.
-SYSTEMD_AUTO_ENABLE = "disable"
-SYSTEMD_SERVICE_${PN} = "ctdb.service"
-
-# onnode is a shell script with bashisms and bash #!
-RDEPENDS_${PN} += "bash"
diff --git a/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb b/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
index 340f57d..799cf86 100644
--- a/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
@@ -2,7 +2,7 @@
HOMEPAGE = "http://www.curlpp.org/"
SECTION = "libdevel"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=fd0c9adf285a69aa3b4faf34384e1029"
DEPENDS = "curl"
DEPENDS_class-native = "curl-native"
@@ -15,19 +15,4 @@
inherit cmake pkgconfig binconfig
-do_install_append () {
- sed -i 's,${STAGING_DIR_TARGET},,g' ${D}${libdir}/pkgconfig/curlpp.pc
-}
-
-PACKAGES =+ "libcurlpp libcurlpp-dev libcurlpp-staticdev"
-
-FILES_lib${BPN} = "${libdir}/lib*.so.*"
-
-FILES_lib${BPN}-dev = "${includedir} \
- ${libdir}/pkgconfig \
- ${bindir}/*-config \
-"
-
-FILES_lib${BPN}-staticdev = "${libdir}/lib*.a"
-
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
index 0991dd8..1bf0f75 100644
--- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
@@ -1,7 +1,7 @@
From be1b3d2d0f1608cba5efee73d6aac5ad0709041b Mon Sep 17 00:00:00 2001
From: Joe MacDonald <joe_macdonald@mentor.com>
Date: Tue, 9 Sep 2014 10:24:58 -0400
-Subject: [PATCH] Upstream-status: Inappropriate [OE specific]
+Subject: [PATCH] Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
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
deleted file mode 100644
index d2465f8..0000000
--- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require dnsmasq.inc
-
-SRC_URI += "\
- file://lua.patch \
- file://CVE-2017-15107.patch \
-"
-
-SRC_URI[dnsmasq-2.78.md5sum] = "3bb97f264c73853f802bf70610150788"
-SRC_URI[dnsmasq-2.78.sha256sum] = "c92e5d78aa6353354d02aabf74590d08980bb1385d8a00b80ef9bc80430aa1dc"
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb
new file mode 100644
index 0000000..a66b9a9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb
@@ -0,0 +1,8 @@
+require dnsmasq.inc
+
+SRC_URI[dnsmasq-2.79.md5sum] = "5d7120a46d0c16a334f46757d7e2ba55"
+SRC_URI[dnsmasq-2.79.sha256sum] = "77512dd6f31ffd96718e8dcbbf54f02c083f051d4cca709bd32540aea269f789"
+SRC_URI += "\
+ file://lua.patch \
+"
+
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
deleted file mode 100644
index 701101b..0000000
--- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/CVE-2017-15107.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-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-networking/recipes-support/dovecot/dovecot_2.2.33.bb b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb
index 5ebda19..882d5d5 100644
--- a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb
+++ b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb
@@ -15,11 +15,9 @@
SRC_URI[md5sum] = "d61d1e923a22f9062cc9f47696882666"
SRC_URI[sha256sum] = "e9483d68a7698d701bc06124fcf6e1b1f16380c2986c7ec0cf4e1475b9d0c218"
-DEPENDS = "openssl xz zlib bzip2 libcap icu"
-
-DEPENDS_append_libc-musl = " libtirpc"
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS_append_libc-musl = " -ltirpc"
+DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc"
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LDFLAGS += "-ltirpc"
inherit autotools pkgconfig systemd useradd
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch
deleted file mode 100644
index 90dd1f8..0000000
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Upstream-Status: Pending
-
-Subject: Makefile.in: fix permission bits for drbd.service
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- scripts/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/Makefile.in b/scripts/Makefile.in
-index 402b93b..4a45407 100644
---- a/scripts/Makefile.in
-+++ b/scripts/Makefile.in
-@@ -65,7 +65,7 @@ endif
- # yes, debian apparently allows installing both types from the same package
- ifneq ($(initscripttype),sysv) # "systemd" or "both"
- install -d $(DESTDIR)$(systemdunitdir)
-- install -m 755 drbd.service $(DESTDIR)$(systemdunitdir)/
-+ install -m 644 drbd.service $(DESTDIR)$(systemdunitdir)/
- install -d $(DESTDIR)/lib/drbd/
- install -m 755 drbd $(DESTDIR)/lib/drbd/
- install -d $(DESTDIR)$(tmpfilesdir)/
---
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch
new file mode 100644
index 0000000..c0f3adf
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch
@@ -0,0 +1,43 @@
+Subject: drbd-tools: only rmmod if DRBD is a module
+
+Account for the case if the DRBD drive is built into
+the kernel. Otherwise, errors, like the following,
+will occur:
+
+root@localhost:~# /etc/init.d/drbd stop
+ Stopping all DRBD resources: ERROR: Module drbd
+ does not exist in /proc/modules
+
+Upstream-Status: Submitted [https://github.com/LINBIT/drbd-utils/pull/2]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
+
+[ refresh to 8.4.4: squash Aws' and Jason's patches ]
+Signed-off-by: Michel Thebeau <michel.thebeau@windriver.com>
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+---
+ scripts/drbd | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/scripts/drbd b/scripts/drbd
+index 20bf628..de589dc 100755
+--- a/scripts/drbd
++++ b/scripts/drbd
+@@ -241,7 +241,9 @@ case "$1" in
+ if [ -d /sys/module/drbd/holders ]; then
+ (cd /sys/module/drbd/holders; for tr in *; do [ -d ${tr} ] && ${RMMOD} ${tr}; done)
+ fi
+- $RMMOD drbd && break
++ if [ ! -z "$(cat /proc/modules | grep -w drbd)" ]; then
++ $RMMOD drbd && break
++ fi
+ fi
+ done
+ run_hook stop
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb
deleted file mode 100644
index 81f1cfe..0000000
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Distributed block device driver for Linux"
-DESCRIPTION = "DRBD mirrors a block device over the network to another machine.\
-DRBD mirrors a block device over the network to another machine.\
-Think of it as networked raid 1. It is a building block for\
-setting up high availability (HA) clusters."
-HOMEPAGE = "http://www.drbd.org/"
-SECTION = "admin"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
-
-SRC_URI = "http://www.linbit.com/downloads/drbd/utils/archive/${BP}.tar.gz \
- file://0001-Makefile.in-fix-permission-bits-for-drbd.service.patch \
- "
-SRC_URI[md5sum] = "76ed6d3190cd77b00890f3365353124b"
-SRC_URI[sha256sum] = "297b77c9b3f88de2e7dae459234f2753ea4fc2805282b2d276e35cf51e292913"
-
-SYSTEMD_SERVICE_${PN} = "drbd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-inherit autotools-brokensep systemd
-
-EXTRA_OECONF = " \
- --with-initdir=/etc/init.d \
- --without-pacemaker \
- --without-rgmanager \
- --without-bashcompletion \
- --with-distro debian \
- --with-initscripttype=both \
- --with-systemdunitdir=${systemd_unitdir}/system \
- --without-manual\
- "
-
-do_install_append() {
- # don't install empty /var/lock to avoid conflict with base-files
- rm -rf ${D}${localstatedir}/lock
-}
-
-RDEPENDS_${PN} += "bash perl-module-getopt-long perl-module-exporter perl-module-constant perl-module-overloading perl-module-exporter-heavy"
-
-# The drbd items are explicitly put under /lib when installed.
-#
-FILES_${PN} += "/run"
-FILES_${PN} += "${nonarch_base_libdir}/drbd \
- ${nonarch_libdir}/drbd \
- ${nonarch_libdir}/tmpfiles.d"
-FILES_${PN}-dbg += "${nonarch_base_libdir}/drbd/.debug"
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.5.0.bb b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.5.0.bb
new file mode 100644
index 0000000..bd1e857
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.5.0.bb
@@ -0,0 +1,63 @@
+SUMMARY = "Distributed block device driver for Linux"
+DESCRIPTION = "DRBD mirrors a block device over the network to another machine.\
+DRBD mirrors a block device over the network to another machine.\
+Think of it as networked raid 1. It is a building block for\
+setting up high availability (HA) clusters."
+HOMEPAGE = "http://www.drbd.org/"
+SECTION = "admin"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
+
+SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils \
+ git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers \
+ file://0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch \
+ "
+# v9.5.0
+SRCREV_drbd-utils = "ee126652638328b55dc6bff47d07d6161ab768db"
+SRCREV_drbd-headers = "b47cc11bcabe1a65c40ad23f71dcaf2da6419630"
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_URI = "https://github.com/LINBIT/drbd-utils/releases"
+
+SYSTEMD_SERVICE_${PN} = "drbd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+inherit autotools-brokensep systemd
+
+EXTRA_OECONF = " \
+ --with-initdir=/etc/init.d \
+ --without-pacemaker \
+ --without-rgmanager \
+ --without-bashcompletion \
+ --with-distro debian \
+ --with-initscripttype=both \
+ --with-systemdunitdir=${systemd_unitdir}/system \
+ --without-manual \
+ "
+
+do_configure_prepend() {
+ # move the the file under folder /lib/drbd/ to /usr/lib/drbd when usrmerge enabled
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
+ for m_file in `find ${S} -name 'Makefile.in'`; do
+ sed -i -e "s;\$(DESTDIR)\/lib\/drbd;\$(DESTDIR)\${nonarch_libdir}\/drbd;g" $m_file
+ done
+ # move the the file under folder /lib/udev/ to /usr/lib/udev when usrmerge enabled
+ sed -i -e "s;default_udevdir=/lib/udev;default_udevdir=\${prefix}/lib/udev;g" ${S}/configure.ac
+ fi
+
+}
+do_install_append() {
+ # don't install empty /var/lock to avoid conflict with base-files
+ rm -rf ${D}${localstatedir}/lock
+}
+
+RDEPENDS_${PN} += "bash perl-module-getopt-long perl-module-exporter perl-module-constant perl-module-overloading perl-module-exporter-heavy"
+
+# The drbd items are explicitly put under /lib when installed.
+#
+FILES_${PN} += "/run"
+FILES_${PN} += "${nonarch_base_libdir}/drbd \
+ ${nonarch_libdir}/drbd \
+ ${nonarch_libdir}/tmpfiles.d"
+FILES_${PN}-dbg += "${nonarch_base_libdir}/drbd/.debug"
diff --git a/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb b/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb
index 2da73e7..663161a 100644
--- a/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb
@@ -18,10 +18,12 @@
inherit autotools update-alternatives
-ALTERNATIVE_${PN} = "sendmail"
-
+ALTERNATIVE_${PN} += "sendmail mailq newaliases"
+ALTERNATIVE_TARGET[mailq] = "${bindir}/mailq"
+ALTERNATIVE_TARGET[newaliases] = "${bindir}/newaliases"
ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
ALTERNATIVE_TARGET[sendmail] = "${bindir}/esmtp"
+
ALTERNATIVE_PRIORITY = "10"
ALTERNATIVE_${PN}-doc += "mailq.1 newaliases.1 sendmail.1"
diff --git a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail/02_remove_SSLv3.patch b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail/02_remove_SSLv3.patch
new file mode 100644
index 0000000..95cfa2f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail/02_remove_SSLv3.patch
@@ -0,0 +1,1576 @@
+Description: <short summary of the patch>
+ TODO: Put a short summary on the line above and replace this paragraph
+ with a longer explanation of this change. Complete the meta-information
+ with other relevant fields (see below for details). To make it easier, the
+ information below has been extracted from the changelog. Adjust it or drop
+ it.
+ .
+ fetchmail (6.3.26-2) unstable; urgency=low
+ .
+ * New maintainer (closes: #800750).
+ * Backport upstream fix for SSLv3 removal (closes: #804604) and do not
+ recommend SSLv3 (closes: #801178).
+ * Remove quilt and its usage.
+ * Add dh-python to build depends.
+ * Update upstream URLs.
+ * Update watch file.
+ * Update Standards-Version to 3.9.6 .
+Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
+Bug-Debian: https://bugs.debian.org/800750
+Bug-Debian: https://bugs.debian.org/801178
+Bug-Debian: https://bugs.debian.org/804604
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: https://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+--- fetchmail-6.3.26.orig/Makefile.am
++++ fetchmail-6.3.26/Makefile.am
+@@ -31,7 +31,7 @@ libfm_a_SOURCES= xmalloc.c base64.c rfc8
+ servport.c ntlm.h smbbyteorder.h smbdes.h smbmd4.h \
+ smbencrypt.h smbdes.c smbencrypt.c smbmd4.c smbutil.c \
+ libesmtp/gethostbyname.h libesmtp/gethostbyname.c \
+- smbtypes.h fm_getaddrinfo.c tls.c rfc822valid.c \
++ smbtypes.h fm_getaddrinfo.c starttls.c rfc822valid.c \
+ xmalloc.h sdump.h sdump.c x509_name_match.c \
+ fm_strl.h md5c.c
+ if NTLM_ENABLE
+--- fetchmail-6.3.26.orig/Makefile.in
++++ fetchmail-6.3.26/Makefile.in
+@@ -97,14 +97,14 @@ am__libfm_a_SOURCES_DIST = xmalloc.c bas
+ rfc2047e.c servport.c ntlm.h smbbyteorder.h smbdes.h smbmd4.h \
+ smbencrypt.h smbdes.c smbencrypt.c smbmd4.c smbutil.c \
+ libesmtp/gethostbyname.h libesmtp/gethostbyname.c smbtypes.h \
+- fm_getaddrinfo.c tls.c rfc822valid.c xmalloc.h sdump.h sdump.c \
++ fm_getaddrinfo.c starttls.c rfc822valid.c xmalloc.h sdump.h sdump.c \
+ x509_name_match.c fm_strl.h md5c.c ntlmsubr.c
+ @NTLM_ENABLE_TRUE@am__objects_1 = ntlmsubr.$(OBJEXT)
+ am_libfm_a_OBJECTS = xmalloc.$(OBJEXT) base64.$(OBJEXT) \
+ rfc822.$(OBJEXT) report.$(OBJEXT) rfc2047e.$(OBJEXT) \
+ servport.$(OBJEXT) smbdes.$(OBJEXT) smbencrypt.$(OBJEXT) \
+ smbmd4.$(OBJEXT) smbutil.$(OBJEXT) gethostbyname.$(OBJEXT) \
+- fm_getaddrinfo.$(OBJEXT) tls.$(OBJEXT) rfc822valid.$(OBJEXT) \
++ fm_getaddrinfo.$(OBJEXT) starttls.$(OBJEXT) rfc822valid.$(OBJEXT) \
+ sdump.$(OBJEXT) x509_name_match.$(OBJEXT) md5c.$(OBJEXT) \
+ $(am__objects_1)
+ libfm_a_OBJECTS = $(am_libfm_a_OBJECTS)
+@@ -483,7 +483,7 @@ libfm_a_SOURCES = xmalloc.c base64.c rfc
+ servport.c ntlm.h smbbyteorder.h smbdes.h smbmd4.h \
+ smbencrypt.h smbdes.c smbencrypt.c smbmd4.c smbutil.c \
+ libesmtp/gethostbyname.h libesmtp/gethostbyname.c smbtypes.h \
+- fm_getaddrinfo.c tls.c rfc822valid.c xmalloc.h sdump.h sdump.c \
++ fm_getaddrinfo.c starttls.c rfc822valid.c xmalloc.h sdump.h sdump.c \
+ x509_name_match.c fm_strl.h md5c.c $(am__append_1)
+ libfm_a_LIBADD = $(EXTRAOBJ)
+ libfm_a_DEPENDENCIES = $(EXTRAOBJ)
+--- fetchmail-6.3.26.orig/NEWS
++++ fetchmail-6.3.26/NEWS
+@@ -51,8 +51,6 @@ removed from a 6.4.0 or newer release.)
+ * The --bsmtp - mode of operation may be removed in a future release.
+ * Given that OpenSSL is severely underdocumented, and needs license exceptions,
+ fetchmail may switch to a different SSL library.
+-* SSLv2 support will be removed from a future fetchmail release. It has been
+- obsolete for more than a decade.
+
+ --------------------------------------------------------------------------------
+
+--- fetchmail-6.3.26.orig/README.SSL
++++ fetchmail-6.3.26/README.SSL
+@@ -11,36 +11,45 @@ specific to fetchmail.
+ In case of troubles, mail the README.SSL-SERVER file to your ISP and
+ have them check their server configuration against it.
+
+-Unfortunately, fetchmail confuses SSL/TLS protocol levels with whether
+-a service needs to use in-band negotiation (STLS/STARTTLS for POP3/IMAP4) or is
+-totally SSL-wrapped on a separate port. For compatibility reasons, this cannot
+-be fixed in a bugfix release.
++Unfortunately, fetchmail confuses SSL/TLS protocol levels with whether a
++service needs to use in-band negotiation (STLS/STARTTLS for POP3/IMAP4)
++or is totally SSL-wrapped on a separate port. For compatibility
++reasons, this cannot be fixed in a bugfix or minor release.
++
++Also, fetchmail 6.4.0 and newer releases changed some of the semantics
++as the result of a bug-fix, and will auto-negotiate TLSv1 or newer only.
++If your server does not support this, you may have to specify --sslproto
++ssl3. This is in order to prefer the newer TLS protocols, because SSLv2
++and v3 are broken.
+
+- -- Matthias Andree, 2009-05-09
++ -- Matthias Andree, 2015-01-16
+
+
+ Quickstart
+ ----------
+
++Use an up-to-date release of OpenSSL 1.0.1 or newer, so as to get
++TLSv1.2 support.
++
+ For use of SSL or TLS with in-band negotiation on the regular service's port,
+ i. e. with STLS or STARTTLS, use these command line options
+
+- --sslproto tls1 --sslcertck
++ --sslproto auto --sslcertck
+
+ or these options in the rcfile (after the respective "user"... options)
+
+- sslproto tls1 sslcertck
++ sslproto auto sslcertck
+
+
+ For use of SSL or TLS on a separate port, if the whole TCP connection is
+-SSL-encrypted from the very beginning, use these command line options (in the
+-rcfile, omit all leading "--"):
++SSL-encrypted from the very beginning (SSL- or TLS-wrapped), use these
++command line options (in the rcfile, omit all leading "--"):
+
+- --ssl --sslproto ssl3 --sslcertck
++ --ssl --sslproto auto --sslcertck
+
+ or these options in the rcfile (after the respective "user"... options)
+
+- ssl sslproto ssl3 sslcertck
++ ssl sslproto auto sslcertck
+
+
+ Background and use (long version :-))
+--- fetchmail-6.3.26.orig/config.h.in
++++ fetchmail-6.3.26/config.h.in
+@@ -49,9 +49,9 @@
+ don't. */
+ #undef HAVE_DECL_H_ERRNO
+
+-/* Define to 1 if you have the declaration of `SSLv2_client_method', and to 0
++/* Define to 1 if you have the declaration of `SSLv3_client_method', and to 0
+ if you don't. */
+-#undef HAVE_DECL_SSLV2_CLIENT_METHOD
++#undef HAVE_DECL_SSLV3_CLIENT_METHOD
+
+ /* Define to 1 if you have the declaration of `strerror', and to 0 if you
+ don't. */
+--- fetchmail-6.3.26.orig/configure
++++ fetchmail-6.3.26/configure
+@@ -1,13 +1,11 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.68 for fetchmail 6.3.26.
++# Generated by GNU Autoconf 2.69 for fetchmail 6.3.26.
+ #
+ # Report bugs to <fetchmail-users@lists.berlios.de>.
+ #
+ #
+-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+-# Foundation, Inc.
++# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+ #
+ #
+ # This configure script is free software; the Free Software Foundation
+@@ -136,6 +134,31 @@ export LANGUAGE
+ # CDPATH.
+ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
++# Use a proper internal environment variable to ensure we don't fall
++ # into an infinite loop, continuously re-executing ourselves.
++ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
++ _as_can_reexec=no; export _as_can_reexec;
++ # We cannot yet assume a decent shell, so we have to provide a
++# neutralization value for shells without unset; and this also
++# works around shells that cannot unset nonexistent variables.
++# Preserve -v and -x to the replacement shell.
++BASH_ENV=/dev/null
++ENV=/dev/null
++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
++case $- in # ((((
++ *v*x* | *x*v* ) as_opts=-vx ;;
++ *v* ) as_opts=-v ;;
++ *x* ) as_opts=-x ;;
++ * ) as_opts= ;;
++esac
++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
++# Admittedly, this is quite paranoid, since all the known shells bail
++# out after a failed `exec'.
++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
++as_fn_exit 255
++ fi
++ # We don't want this to propagate to other subprocesses.
++ { _as_can_reexec=; unset _as_can_reexec;}
+ if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+@@ -169,7 +192,8 @@ if ( set x; as_fn_ret_success y && test
+ else
+ exitcode=1; echo positional parameters were not saved.
+ fi
+-test x\$exitcode = x0 || exit 1"
++test x\$exitcode = x0 || exit 1
++test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+@@ -214,21 +238,25 @@ IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+- # We cannot yet assume a decent shell, so we have to provide a
+- # neutralization value for shells without unset; and this also
+- # works around shells that cannot unset nonexistent variables.
+- # Preserve -v and -x to the replacement shell.
+- BASH_ENV=/dev/null
+- ENV=/dev/null
+- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+- export CONFIG_SHELL
+- case $- in # ((((
+- *v*x* | *x*v* ) as_opts=-vx ;;
+- *v* ) as_opts=-v ;;
+- *x* ) as_opts=-x ;;
+- * ) as_opts= ;;
+- esac
+- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
++ export CONFIG_SHELL
++ # We cannot yet assume a decent shell, so we have to provide a
++# neutralization value for shells without unset; and this also
++# works around shells that cannot unset nonexistent variables.
++# Preserve -v and -x to the replacement shell.
++BASH_ENV=/dev/null
++ENV=/dev/null
++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
++case $- in # ((((
++ *v*x* | *x*v* ) as_opts=-vx ;;
++ *v* ) as_opts=-v ;;
++ *x* ) as_opts=-x ;;
++ * ) as_opts= ;;
++esac
++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
++# Admittedly, this is quite paranoid, since all the known shells bail
++# out after a failed `exec'.
++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
++exit 255
+ fi
+
+ if test x$as_have_required = xno; then :
+@@ -331,6 +359,14 @@ $as_echo X"$as_dir" |
+
+
+ } # as_fn_mkdir_p
++
++# as_fn_executable_p FILE
++# -----------------------
++# Test if FILE is an executable regular file.
++as_fn_executable_p ()
++{
++ test -f "$1" && test -x "$1"
++} # as_fn_executable_p
+ # as_fn_append VAR VALUE
+ # ----------------------
+ # Append the text in VALUE to the end of the definition contained in VAR. Take
+@@ -452,6 +488,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
++ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
++ # already done that, so ensure we don't try to do so again and fall
++ # in an infinite loop. This has already happened in practice.
++ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+@@ -486,16 +526,16 @@ if (echo >conf$$.file) 2>/dev/null; then
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+- # In both cases, we have to default to `cp -p'.
++ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ fi
+ else
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ fi
+ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+ rmdir conf$$.dir 2>/dev/null
+@@ -507,28 +547,8 @@ else
+ as_mkdir_p=false
+ fi
+
+-if test -x / >/dev/null 2>&1; then
+- as_test_x='test -x'
+-else
+- if ls -dL / >/dev/null 2>&1; then
+- as_ls_L_option=L
+- else
+- as_ls_L_option=
+- fi
+- as_test_x='
+- eval sh -c '\''
+- if test -d "$1"; then
+- test -d "$1/.";
+- else
+- case $1 in #(
+- -*)set "./$1";;
+- esac;
+- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+- ???[sx]*):;;*)false;;esac;fi
+- '\'' sh
+- '
+-fi
+-as_executable_p=$as_test_x
++as_test_x='test -x'
++as_executable_p=as_fn_executable_p
+
+ # Sed expression to map a string onto a valid CPP name.
+ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+@@ -742,6 +762,7 @@ infodir
+ docdir
+ oldincludedir
+ includedir
++runstatedir
+ localstatedir
+ sharedstatedir
+ sysconfdir
+@@ -841,6 +862,7 @@ datadir='${datarootdir}'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
++runstatedir='${localstatedir}/run'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+@@ -1093,6 +1115,15 @@ do
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
++ -runstatedir | --runstatedir | --runstatedi | --runstated \
++ | --runstate | --runstat | --runsta | --runst | --runs \
++ | --run | --ru | --r)
++ ac_prev=runstatedir ;;
++ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
++ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
++ | --run=* | --ru=* | --r=*)
++ runstatedir=$ac_optarg ;;
++
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+@@ -1230,7 +1261,7 @@ fi
+ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+- libdir localedir mandir
++ libdir localedir mandir runstatedir
+ do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+@@ -1258,8 +1289,6 @@ target=$target_alias
+ if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+- If a cross compiler is detected then cross compile mode will be used" >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+@@ -1385,6 +1414,7 @@ Fine tuning of the installation director
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
++ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+@@ -1548,9 +1578,9 @@ test -n "$ac_init_help" && exit $ac_stat
+ if $ac_init_version; then
+ cat <<\_ACEOF
+ fetchmail configure 6.3.26
+-generated by GNU Autoconf 2.68
++generated by GNU Autoconf 2.69
+
+-Copyright (C) 2010 Free Software Foundation, Inc.
++Copyright (C) 2012 Free Software Foundation, Inc.
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+ _ACEOF
+@@ -1827,7 +1857,7 @@ $as_echo "$ac_try_echo"; } >&5
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+- $as_test_x conftest$ac_exeext
++ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+ else
+@@ -2030,7 +2060,8 @@ int
+ main ()
+ {
+ static int test_array [1 - 2 * !(($2) >= 0)];
+-test_array [0] = 0
++test_array [0] = 0;
++return test_array [0];
+
+ ;
+ return 0;
+@@ -2046,7 +2077,8 @@ int
+ main ()
+ {
+ static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+-test_array [0] = 0
++test_array [0] = 0;
++return test_array [0];
+
+ ;
+ return 0;
+@@ -2072,7 +2104,8 @@ int
+ main ()
+ {
+ static int test_array [1 - 2 * !(($2) < 0)];
+-test_array [0] = 0
++test_array [0] = 0;
++return test_array [0];
+
+ ;
+ return 0;
+@@ -2088,7 +2121,8 @@ int
+ main ()
+ {
+ static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+-test_array [0] = 0
++test_array [0] = 0;
++return test_array [0];
+
+ ;
+ return 0;
+@@ -2122,7 +2156,8 @@ int
+ main ()
+ {
+ static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+-test_array [0] = 0
++test_array [0] = 0;
++return test_array [0];
+
+ ;
+ return 0;
+@@ -2195,7 +2230,7 @@ This file contains any messages produced
+ running configure, to aid debugging if configure makes a mistake.
+
+ It was created by fetchmail $as_me 6.3.26, which was
+-generated by GNU Autoconf 2.68. Invocation command line was
++generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+@@ -2689,7 +2724,7 @@ case $as_dir/ in #((
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+@@ -2858,7 +2893,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -2898,7 +2933,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -2949,7 +2984,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
++ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+@@ -3002,7 +3037,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -3295,7 +3330,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -3466,7 +3501,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -3512,7 +3547,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -3552,7 +3587,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -3605,7 +3640,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -3646,7 +3681,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+@@ -3704,7 +3739,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -3748,7 +3783,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -4194,8 +4229,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
+ /* end confdefs.h. */
+ #include <stdarg.h>
+ #include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
++struct stat;
+ /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+ struct buf { int x; };
+ FILE * (*rcsopen) (struct buf *, struct stat *, int);
+@@ -4751,7 +4785,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -4791,7 +4825,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -4859,7 +4893,7 @@ do
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
++ as_fn_executable_p "$ac_path_GREP" || continue
+ # Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+ case `"$ac_path_GREP" --version 2>&1` in
+@@ -4925,7 +4959,7 @@ do
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
++ as_fn_executable_p "$ac_path_EGREP" || continue
+ # Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+ case `"$ac_path_EGREP" --version 2>&1` in
+@@ -5132,8 +5166,8 @@ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+-# define __EXTENSIONS__ 1
+- $ac_includes_default
++# define __EXTENSIONS__ 1
++ $ac_includes_default
+ int
+ main ()
+ {
+@@ -5513,11 +5547,11 @@ else
+ int
+ main ()
+ {
+-/* FIXME: Include the comments suggested by Paul. */
++
+ #ifndef __cplusplus
+- /* Ultrix mips cc rejects this. */
++ /* Ultrix mips cc rejects this sort of thing. */
+ typedef int charset[2];
+- const charset cs;
++ const charset cs = { 0, 0 };
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+@@ -5534,8 +5568,9 @@ main ()
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+- { /* SCO 3.2v4 cc rejects this. */
+- char *t;
++ { /* SCO 3.2v4 cc rejects this sort of thing. */
++ char tx;
++ char *t = &tx;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+@@ -5551,10 +5586,10 @@ main ()
+ iptr p = 0;
+ ++p;
+ }
+- { /* AIX XL C 1.02.0.0 rejects this saying
++ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+- struct s { int j; const int *ap[3]; };
+- struct s *b; b->j = 5;
++ struct s { int j; const int *ap[3]; } bx;
++ struct s *b = &bx; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+@@ -5600,7 +5635,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LEX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -5632,7 +5667,8 @@ a { ECHO; }
+ b { REJECT; }
+ c { yymore (); }
+ d { yyless (1); }
+-e { yyless (input () != 0); }
++e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */
++ yyless ((input () != 0)); }
+ f { unput (yytext[0]); }
+ . { BEGIN INITIAL; }
+ %%
+@@ -5792,7 +5828,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_YACC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -6044,7 +6080,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -8548,7 +8584,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_procmail="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -8590,7 +8626,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_sendmail="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -8632,7 +8668,7 @@ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_maildrop="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+@@ -10121,16 +10157,16 @@ $as_echo "$as_me: WARNING: Consider re-r
+ fi
+
+ case "$LIBS" in *-lssl*)
+- ac_fn_c_check_decl "$LINENO" "SSLv2_client_method" "ac_cv_have_decl_SSLv2_client_method" "#include <openssl/ssl.h>
++ ac_fn_c_check_decl "$LINENO" "SSLv3_client_method" "ac_cv_have_decl_SSLv3_client_method" "#include <openssl/ssl.h>
+ "
+-if test "x$ac_cv_have_decl_SSLv2_client_method" = xyes; then :
++if test "x$ac_cv_have_decl_SSLv3_client_method" = xyes; then :
+ ac_have_decl=1
+ else
+ ac_have_decl=0
+ fi
+
+ cat >>confdefs.h <<_ACEOF
+-#define HAVE_DECL_SSLV2_CLIENT_METHOD $ac_have_decl
++#define HAVE_DECL_SSLV3_CLIENT_METHOD $ac_have_decl
+ _ACEOF
+
+ ;;
+@@ -11334,16 +11370,16 @@ if (echo >conf$$.file) 2>/dev/null; then
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+- # In both cases, we have to default to `cp -p'.
++ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ fi
+ else
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ fi
+ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+ rmdir conf$$.dir 2>/dev/null
+@@ -11403,28 +11439,16 @@ else
+ as_mkdir_p=false
+ fi
+
+-if test -x / >/dev/null 2>&1; then
+- as_test_x='test -x'
+-else
+- if ls -dL / >/dev/null 2>&1; then
+- as_ls_L_option=L
+- else
+- as_ls_L_option=
+- fi
+- as_test_x='
+- eval sh -c '\''
+- if test -d "$1"; then
+- test -d "$1/.";
+- else
+- case $1 in #(
+- -*)set "./$1";;
+- esac;
+- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+- ???[sx]*):;;*)false;;esac;fi
+- '\'' sh
+- '
+-fi
+-as_executable_p=$as_test_x
++
++# as_fn_executable_p FILE
++# -----------------------
++# Test if FILE is an executable regular file.
++as_fn_executable_p ()
++{
++ test -f "$1" && test -x "$1"
++} # as_fn_executable_p
++as_test_x='test -x'
++as_executable_p=as_fn_executable_p
+
+ # Sed expression to map a string onto a valid CPP name.
+ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+@@ -11446,7 +11470,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
+ # values after options handling.
+ ac_log="
+ This file was extended by fetchmail $as_me 6.3.26, which was
+-generated by GNU Autoconf 2.68. Invocation command line was
++generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+@@ -11512,10 +11536,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+ fetchmail config.status 6.3.26
+-configured by $0, generated by GNU Autoconf 2.68,
++configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+-Copyright (C) 2010 Free Software Foundation, Inc.
++Copyright (C) 2012 Free Software Foundation, Inc.
+ This config.status script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it."
+
+@@ -11606,7 +11630,7 @@ fi
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ if \$ac_cs_recheck; then
+- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
++ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+--- fetchmail-6.3.26.orig/configure.ac
++++ fetchmail-6.3.26/configure.ac
+@@ -802,7 +802,7 @@ else
+ fi
+
+ case "$LIBS" in *-lssl*)
+- AC_CHECK_DECLS([SSLv2_client_method],,,[#include <openssl/ssl.h>])
++ AC_CHECK_DECLS([SSLv3_client_method],,,[#include <openssl/ssl.h>])
+ ;;
+ esac
+
+--- fetchmail-6.3.26.orig/fetchmail-FAQ.html
++++ fetchmail-6.3.26/fetchmail-FAQ.html
+@@ -667,8 +667,8 @@ because there is not currently a standar
+ also uses this method, so the two will interoperate happily. They
+ better, because this is how Craig gets his mail ;-)</p>
+
+-<p>Finally, you can use <a href="#K5">SSL</a> for complete
+-end-to-end encryption if you have an SSL-enabled mailserver.</p>
++<p>Finally, you can use <a href="#K5">SSL or TLS</a> for complete
++end-to-end encryption if you have a TLS-enabled mailserver.</p>
+
+ <h2><a id="G11" name="G11">G11. Is any special configuration needed
+ to use a dynamic IP address?</a></h2>
+@@ -2120,7 +2120,7 @@ SSL?</a></h2>
+
+ <p>You'll need to have the <a
+ href="http://www.openssl.org/">OpenSSL</a> libraries installed, and they
+-should at least be version 0.9.7.
++should at least be version 0.9.8, with 1.0.1 preferred.
+ Configure with --with-ssl. If you have the OpenSSL libraries
+ installed in commonly-used default locations, this will
+ suffice. If you have them installed in a non-default location,
+@@ -2130,7 +2130,7 @@ to --with-ssl after an equal sign.</p>
+ <p>Fetchmail binaries built this way support <code>ssl</code>,
+ <code>sslkey</code>, and <code>sslcert</code> options that control
+ SSL encryption, and will automatically use <code>tls</code> if the
+-server offers it. You will need to have an SSL-enabled mailserver to
++server offers it. You will need to have an SSL/TLS-enabled mailserver to
+ use these options. See the manual page for details and some words
+ of care on the limited security provided.</p>
+
+@@ -2155,13 +2155,14 @@ poll MYSERVER port 993 plugin "openssl s
+ protocol imap username MYUSERNAME password MYPASSWORD
+ </pre>
+
+-<p>You should note that SSL is only secure against a "man-in-the-middle"
+-attack if the client is able to verify that the peer's public key is the
+-correct one, and has not been substituted by an attacker. fetchmail can do
+-this in one of two ways: by verifying the SSL certificate, or by checking
+-the fingerprint of the peer's public key.</p>
++<p>You should note that SSL or TLS are only secure against a
++"man-in-the-middle" attack if the client is able to verify that the
++peer's public key is the correct one, and has not been substituted by an
++attacker. fetchmail can do this in one of two ways: by verifying the SSL
++certificate, or by checking the fingerprint of the peer's public
++key.</p>
+
+-<p>There are three parts to SSL certificate verification: checking that the
++<p>There are three parts to TLS certificate verification: checking that the
+ domain name in the certificate matches the hostname you asked to connect to;
+ checking that the certificate expiry date has not passed; and checking that
+ the certificate has been signed by a known Certificate Authority (CA). This
+@@ -2227,8 +2228,12 @@ will automatically attempt TLS negotiati
+ time. This can however cause problems if the upstream didn't configure
+ his certificates properly.</p>
+
+-<p>In order to prevent fetchmail from trying TLS (STLS, STARTTLS)
+-negotiation, add this option:</p>
++<p>In order to prevent fetchmail 6.4.0 and newer versions from trying
++STLS or STARTTLS negotiation, add this option:</p>
++<pre>sslproto ''</pre>
++
++<p>In order to prevent older fetchmail versions from trying TLS (STLS, STARTTLS)
++negotiation where the above does not work, try this option:</p>
+
+ <pre>sslproto ssl23</pre>
+
+@@ -2876,15 +2881,22 @@ need to say something like '<code>envelo
+
+ <pre>
+ Received: from send103.yahoomail.com (send103.yahoomail.com [205.180.60.92])
+- by iserv.ttns.net (8.8.5/8.8.5) with SMTP id RAA10088
+- for <ksturgeon@fbceg.org>; Wed, 9 Sep 1998 17:01:59 -0700
++ by iserv.example.net (8.8.5/8.8.5) with SMTP id RAA10088
++ for <ksturgeon@fbceg.example.org>; Wed, 9 Sep 1998 17:01:59 -0700
+ </pre>
+
+-<p>it checks to see if 'iserv.ttns.net' is a DNS alias of your
+-mailserver before accepting 'ksturgeon@fbceg.org' as an envelope
++<p>it checks to see if 'iserv.example.net' is a DNS alias of your
++mailserver before accepting 'ksturgeon@fbceg.example.org' as an envelope
+ address. This check might fail if your DNS were misconfigured, or
+-if you were using 'no dns' and had failed to declare iserv.ttns.net
+-as an alias of your server.</p>
++if you were using 'no dns' and had failed to declare iserv.example.net
++as an alias of your server. The typical hint is logging similar to:
++<code>line rejected, iserv.example.net is not an alias of the mailserver</code>,
++if you use fetchmail in verbose mode.</p>
++
++<p><strong>Workaround:</strong> You can specify the alias explicitly, with <code>aka
++ <em>iserv.example.net</em></code> statements in the rcfile. Replace
++<em>iserv.example.net</em> by the name you find in <strong>your</strong>
++'by' part of the 'Received:' line.</p>
+
+ <h2><a id="M8" name="M8">M8. Users are getting multiple copies of
+ messages.</a></h2>
+@@ -3237,6 +3249,8 @@ Hayes mode escape "+++".</p>
+ <h2><a id="X8" name="X8">X8. A spurious ) is being appended to my
+ messages.</a></h2>
+
++<p><em>Fetchmail 6.3.5 and newer releases are supposed to fix this.</em></p>
++
+ <p>Due to the problem described in <a href="#S2">S2</a>, the
+ IMAP support in fetchmail cannot follow the IMAP protocol 100 %.
+ Most of the time it doesn't matter, but if you combine it with an
+@@ -3279,8 +3293,6 @@ it at the end of the message it forwards
+ on, you'll get a message about actual != expected.</li>
+ </ol>
+
+-<p>There is no fix for this.</p>
+-
+ <h2><a id="X9" name="X9">X9. Missing "Content-Transfer-Encoding" header
+ with Domino IMAP</a></h2>
+
+--- fetchmail-6.3.26.orig/fetchmail.c
++++ fetchmail-6.3.26/fetchmail.c
+@@ -54,6 +54,10 @@
+ #define ENETUNREACH 128 /* Interactive doesn't know this */
+ #endif /* ENETUNREACH */
+
++#ifdef SSL_ENABLE
++#include <openssl/ssl.h> /* for OPENSSL_NO_SSL2 and ..._SSL3 checks */
++#endif
++
+ /* prototypes for internal functions */
+ static int load_params(int, char **, int);
+ static void dump_params (struct runctl *runp, struct query *, flag implicit);
+@@ -138,7 +142,7 @@ static void printcopyright(FILE *fp) {
+ "Copyright (C) 2004 Matthias Andree, Eric S. Raymond,\n"
+ " Robert M. Funk, Graham Wilson\n"
+ "Copyright (C) 2005 - 2012 Sunil Shetye\n"
+- "Copyright (C) 2005 - 2013 Matthias Andree\n"
++ "Copyright (C) 2005 - 2015 Matthias Andree\n"
+ ));
+ fprintf(fp, GT_("Fetchmail comes with ABSOLUTELY NO WARRANTY. This is free software, and you\n"
+ "are welcome to redistribute it under certain conditions. For details,\n"
+@@ -262,6 +266,9 @@ int main(int argc, char **argv)
+ #endif /* ODMR_ENABLE */
+ #ifdef SSL_ENABLE
+ "+SSL"
++#if (HAVE_DECL_SSLV3_CLIENT_METHOD + 0 == 0) || defined(OPENSSL_NO_SSL3)
++ "-SSLv3"
++#endif
+ #endif
+ #ifdef OPIE_ENABLE
+ "+OPIE"
+--- fetchmail-6.3.26.orig/fetchmail.h
++++ fetchmail-6.3.26/fetchmail.h
+@@ -771,9 +771,9 @@ int servport(const char *service);
+ int fm_getaddrinfo(const char *node, const char *serv, const struct addrinfo *hints, struct addrinfo **res);
+ void fm_freeaddrinfo(struct addrinfo *ai);
+
+-/* prototypes from tls.c */
+-int maybe_tls(struct query *ctl);
+-int must_tls(struct query *ctl);
++/* prototypes from starttls.c */
++int maybe_starttls(struct query *ctl);
++int must_starttls(struct query *ctl);
+
+ /* prototype from rfc822valid.c */
+ int rfc822_valid_msgid(const unsigned char *);
+--- fetchmail-6.3.26.orig/fetchmail.man
++++ fetchmail-6.3.26/fetchmail.man
+@@ -412,23 +412,22 @@ from. The folder information is written
+ .B \-\-ssl
+ (Keyword: ssl)
+ .br
+-Causes the connection to the mail server to be encrypted
+-via SSL. Connect to the server using the specified base protocol over a
+-connection secured by SSL. This option defeats opportunistic starttls
+-negotiation. It is highly recommended to use \-\-sslproto 'SSL3'
+-\-\-sslcertck to validate the certificates presented by the server and
+-defeat the obsolete SSLv2 negotiation. More information is available in
+-the \fIREADME.SSL\fP file that ships with fetchmail.
+-.IP
+-Note that fetchmail may still try to negotiate SSL through starttls even
+-if this option is omitted. You can use the \-\-sslproto option to defeat
+-this behavior or tell fetchmail to negotiate a particular SSL protocol.
++Causes the connection to the mail server to be encrypted via SSL, by
++negotiating SSL directly after connecting (SSL-wrapped mode). It is
++highly recommended to use \-\-sslcertck to validate the certificates
++presented by the server. Please see the description of \-\-sslproto
++below! More information is available in the \fIREADME.SSL\fP file that
++ships with fetchmail.
++.IP
++Note that even if this option is omitted, fetchmail may still negotiate
++SSL in-band for POP3 or IMAP, through the STLS or STARTTLS feature. You
++can use the \-\-sslproto option to modify that behavior.
+ .IP
+ If no port is specified, the connection is attempted to the well known
+ port of the SSL version of the base protocol. This is generally a
+ different port than the port used by the base protocol. For IMAP, this
+ is port 143 for the clear protocol and port 993 for the SSL secured
+-protocol, for POP3, it is port 110 for the clear text and port 995 for
++protocol; for POP3, it is port 110 for the clear text and port 995 for
+ the encrypted variant.
+ .IP
+ If your system lacks the corresponding entries from /etc/services, see
+@@ -470,39 +469,73 @@ cause some complications in daemon mode.
+ .IP
+ Also see \-\-sslcert above.
+ .TP
+-.B \-\-sslproto <name>
+-(Keyword: sslproto)
++.B \-\-sslproto <value>
++(Keyword: sslproto, NOTE: semantic changes since v6.4.0)
+ .br
+-Forces an SSL/TLS protocol. Possible values are \fB''\fP,
+-\&'\fBSSL2\fP' (not supported on all systems),
+-\&'\fBSSL23\fP', (use of these two values is discouraged
+-and should only be used as a last resort) \&'\fBSSL3\fP', and
+-\&'\fBTLS1\fP'. The default behaviour if this option is unset is: for
+-connections without \-\-ssl, use \&'\fBTLS1\fP' so that fetchmail will
+-opportunistically try STARTTLS negotiation with TLS1. You can configure
+-this option explicitly if the default handshake (TLS1 if \-\-ssl is not
+-used) does not work for your server.
+-.IP
+-Use this option with '\fBTLS1\fP' value to enforce a STARTTLS
+-connection. In this mode, it is highly recommended to also use
+-\-\-sslcertck (see below). Note that this will then cause fetchmail
+-v6.3.19 to force STARTTLS negotiation even if it is not advertised by
+-the server.
+-.IP
+-To defeat opportunistic TLSv1 negotiation when the server advertises
+-STARTTLS or STLS, and use a cleartext connection use \fB''\fP. This
+-option, even if the argument is the empty string, will also suppress the
+-diagnostic 'SERVER: opportunistic upgrade to TLS.' message in verbose
+-mode. The default is to try appropriate protocols depending on context.
++This option has a dual use, out of historic fetchmail behaviour. It
++controls both the SSL/TLS protocol version and, if \-\-ssl is not
++specified, the STARTTLS behaviour (upgrading the protocol to an SSL or
++TLS connection in-band). Some other options may however make TLS
++mandatory.
++.PP
++Only if this option and \-\-ssl are both missing for a poll, there will
++be opportunistic TLS for POP3 and IMAP, where fetchmail will attempt to
++upgrade to TLSv1 or newer.
++.PP
++Recognized values for \-\-sslproto are given below. You should normally
++chose one of the auto-negotiating options, i. e. '\fBauto\fP' or one of
++the options ending in a plus (\fB+\fP) character. Note that depending
++on OpenSSL library version and configuration, some options cause
++run-time errors because the requested SSL or TLS versions are not
++supported by the particular installed OpenSSL library.
++.RS
++.IP "\fB''\fP, the empty string"
++Disable STARTTLS. If \-\-ssl is given for the same server, log an error
++and pretend that '\fBauto\fP' had been used instead.
++.IP '\fBauto\fP'
++(default). Since v6.4.0. Require TLS. Auto-negotiate TLSv1 or newer, disable SSLv3 downgrade.
++(fetchmail 6.3.26 and older have auto-negotiated all protocols that
++their OpenSSL library supported, including the broken SSLv3).
++.IP "\&'\fBSSL23\fP'
++see '\fBauto\fP'.
++.IP \&'\fBSSL3\fP'
++Require SSLv3 exactly. SSLv3 is broken, not supported on all systems, avoid it
++if possible. This will make fetchmail negotiate SSLv3 only, and is the
++only way besides '\fBSSL3+\fP' to have fetchmail 6.4.0 or newer permit SSLv3.
++.IP \&'\fBSSL3+\fP'
++same as '\fBauto\fP', but permit SSLv3 as well. This is the only way
++besides '\fBSSL3\fP' to have fetchmail 6.4.0 or newer permit SSLv3.
++.IP \&'\fBTLS1\fP'
++Require TLSv1. This does not negotiate TLSv1.1 or newer, and is
++discouraged. Replace by TLS1+ unless the latter chokes your server.
++.IP \&'\fBTLS1+\fP'
++Since v6.4.0. See 'fBauto\fP'.
++.IP \&'\fBTLS1.1\fP'
++Since v6.4.0. Require TLS v1.1 exactly.
++.IP \&'\fBTLS1.1+\fP'
++Since v6.4.0. Require TLS. Auto-negotiate TLSv1.1 or newer.
++.IP \&'\fBTLS1.2\fP'
++Since v6.4.0. Require TLS v1.2 exactly.
++.IP '\fBTLS1.2+\fP'
++Since v6.4.0. Require TLS. Auto-negotiate TLSv1.2 or newer.
++.IP "Unrecognized parameters"
++are treated the same as '\fBauto\fP'.
++.RE
++.IP
++NOTE: you should hardly ever need to use anything other than '' (to
++force an unencrypted connection) or 'auto' (to enforce TLS).
+ .TP
+ .B \-\-sslcertck
+ (Keyword: sslcertck)
+ .br
+-Causes fetchmail to strictly check the server certificate against a set of
+-local trusted certificates (see the \fBsslcertfile\fP and \fBsslcertpath\fP
+-options). If the server certificate cannot be obtained or is not signed by one
+-of the trusted ones (directly or indirectly), the SSL connection will fail,
+-regardless of the \fBsslfingerprint\fP option.
++Causes fetchmail to require that SSL/TLS be used and disconnect if it
++can not successfully negotiate SSL or TLS, or if it cannot successfully
++verify and validate the certificate and follow it to a trust anchor (or
++trusted root certificate). The trust anchors are given as a set of local
++trusted certificates (see the \fBsslcertfile\fP and \fBsslcertpath\fP
++options). If the server certificate cannot be obtained or is not signed
++by one of the trusted ones (directly or indirectly), fetchmail will
++disconnect, regardless of the \fBsslfingerprint\fP option.
+ .IP
+ Note that CRL (certificate revocation lists) are only supported in
+ OpenSSL 0.9.7 and newer! Your system clock should also be reasonably
+@@ -1202,31 +1235,33 @@ capability response. Specify a user opti
+ username and the part to the right as the NTLM domain.
+
+ .SS Secure Socket Layers (SSL) and Transport Layer Security (TLS)
++.PP All retrieval protocols can use SSL or TLS wrapping for the
++transport. Additionally, POP3 and IMAP retrival can also negotiate
++SSL/TLS by means of STARTTLS (or STLS).
+ .PP
+ Note that fetchmail currently uses the OpenSSL library, which is
+ severely underdocumented, so failures may occur just because the
+ programmers are not aware of OpenSSL's requirement of the day.
+ For instance, since v6.3.16, fetchmail calls
+ OpenSSL_add_all_algorithms(), which is necessary to support certificates
+-using SHA256 on OpenSSL 0.9.8 -- this information is deeply hidden in the
+-documentation and not at all obvious. Please do not hesitate to report
+-subtle SSL failures.
+-.PP
+-You can access SSL encrypted services by specifying the \-\-ssl option.
+-You can also do this using the "ssl" user option in the .fetchmailrc
+-file. With SSL encryption enabled, queries are initiated over a
+-connection after negotiating an SSL session, and the connection fails if
+-SSL cannot be negotiated. Some services, such as POP3 and IMAP, have
++using SHA256 on OpenSSL 0.9.8 -- this information is deeply hidden in
++the documentation and not at all obvious. Please do not hesitate to
++report subtle SSL failures.
++.PP
++You can access SSL encrypted services by specifying the options starting
++with \-\-ssl, such as \-\-ssl, \-\-sslproto, \-\-sslcertck, and others.
++You can also do this using the corresponding user options in the .fetchmailrc
++file. Some services, such as POP3 and IMAP, have
+ different well known ports defined for the SSL encrypted services. The
+ encrypted ports will be selected automatically when SSL is enabled and
+-no explicit port is specified. The \-\-sslproto 'SSL3' option should be
+-used to select the SSLv3 protocol (default if unset: v2 or v3). Also,
+-the \-\-sslcertck command line or sslcertck run control file option
+-should be used to force strict certificate checking - see below.
++no explicit port is specified. Also, the \-\-sslcertck command line or
++sslcertck run control file option should be used to force strict
++certificate checking - see below.
+ .PP
+ If SSL is not configured, fetchmail will usually opportunistically try to use
+-STARTTLS. STARTTLS can be enforced by using \-\-sslproto "TLS1". TLS
+-connections use the same port as the unencrypted version of the
++STARTTLS. STARTTLS can be enforced by using \-\-sslproto\~auto and
++defeated by using \-\-sslproto\~''.
++TLS connections use the same port as the unencrypted version of the
+ protocol and negotiate TLS via special command. The \-\-sslcertck
+ command line or sslcertck run control file option should be used to
+ force strict certificate checking - see below.
+--- fetchmail-6.3.26.orig/imap.c
++++ fetchmail-6.3.26/imap.c
+@@ -405,6 +405,8 @@ static int imap_getauth(int sock, struct
+ /* apply for connection authorization */
+ {
+ int ok = 0;
++ char *commonname;
++
+ (void)greeting;
+
+ /*
+@@ -429,25 +431,21 @@ static int imap_getauth(int sock, struct
+ return(PS_SUCCESS);
+ }
+
+-#ifdef SSL_ENABLE
+- if (maybe_tls(ctl)) {
+- char *commonname;
+-
+- commonname = ctl->server.pollname;
+- if (ctl->server.via)
+- commonname = ctl->server.via;
+- if (ctl->sslcommonname)
+- commonname = ctl->sslcommonname;
++ commonname = ctl->server.pollname;
++ if (ctl->server.via)
++ commonname = ctl->server.via;
++ if (ctl->sslcommonname)
++ commonname = ctl->sslcommonname;
+
+- if (strstr(capabilities, "STARTTLS")
+- || must_tls(ctl)) /* if TLS is mandatory, ignore capabilities */
++#ifdef SSL_ENABLE
++ if (maybe_starttls(ctl)) {
++ if ((strstr(capabilities, "STARTTLS") && maybe_starttls(ctl))
++ || must_starttls(ctl)) /* if TLS is mandatory, ignore capabilities */
+ {
+- /* Use "tls1" rather than ctl->sslproto because tls1 is the only
+- * protocol that will work with STARTTLS. Don't need to worry
+- * whether TLS is mandatory or opportunistic unless SSLOpen() fails
+- * (see below). */
++ /* Don't need to worry whether TLS is mandatory or
++ * opportunistic unless SSLOpen() fails (see below). */
+ if (gen_transact(sock, "STARTTLS") == PS_SUCCESS
+- && (set_timeout(mytimeout), SSLOpen(sock, ctl->sslcert, ctl->sslkey, "tls1", ctl->sslcertck,
++ && (set_timeout(mytimeout), SSLOpen(sock, ctl->sslcert, ctl->sslkey, ctl->sslproto, ctl->sslcertck,
+ ctl->sslcertfile, ctl->sslcertpath, ctl->sslfingerprint, commonname,
+ ctl->server.pollname, &ctl->remotename)) != -1)
+ {
+@@ -470,7 +468,7 @@ static int imap_getauth(int sock, struct
+ {
+ report(stdout, GT_("%s: upgrade to TLS succeeded.\n"), commonname);
+ }
+- } else if (must_tls(ctl)) {
++ } else if (must_starttls(ctl)) {
+ /* Config required TLS but we couldn't guarantee it, so we must
+ * stop. */
+ set_timeout(0);
+@@ -492,6 +490,10 @@ static int imap_getauth(int sock, struct
+ /* Usable. Proceed with authenticating insecurely. */
+ }
+ }
++ } else {
++ if (strstr(capabilities, "STARTTLS") && outlevel >= O_VERBOSE) {
++ report(stdout, GT_("%s: WARNING: server offered STARTTLS but sslproto '' given.\n"), commonname);
++ }
+ }
+ #endif /* SSL_ENABLE */
+
+--- fetchmail-6.3.26.orig/po/Makevars
++++ fetchmail-6.3.26/po/Makevars
+@@ -46,3 +46,15 @@ MSGID_BUGS_ADDRESS = fetchmail-devel@lis
+ # This is the list of locale categories, beyond LC_MESSAGES, for which the
+ # message catalogs shall be used. It is usually empty.
+ EXTRA_LOCALE_CATEGORIES =
++
++# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
++# context. Possible values are "yes" and "no". Set this to yes if the
++# package uses functions taking also a message context, like pgettext(), or
++# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
++USE_MSGCTXT = no
++
++# These options get passed to msgmerge.
++# Useful options are in particular:
++# --previous to keep previous msgids of translated messages,
++# --quiet to reduce the verbosity.
++MSGMERGE_OPTIONS =
+--- fetchmail-6.3.26.orig/pop3.c
++++ fetchmail-6.3.26/pop3.c
+@@ -281,6 +281,7 @@ static int pop3_getauth(int sock, struct
+ #endif /* OPIE_ENABLE */
+ #ifdef SSL_ENABLE
+ flag connection_may_have_tls_errors = FALSE;
++ char *commonname;
+ #endif /* SSL_ENABLE */
+
+ done_capa = FALSE;
+@@ -393,7 +394,7 @@ static int pop3_getauth(int sock, struct
+ (ctl->server.authenticate == A_KERBEROS_V5) ||
+ (ctl->server.authenticate == A_OTP) ||
+ (ctl->server.authenticate == A_CRAM_MD5) ||
+- maybe_tls(ctl))
++ maybe_starttls(ctl))
+ {
+ if ((ok = capa_probe(sock)) != PS_SUCCESS)
+ /* we are in STAGE_GETAUTH => failure is PS_AUTHFAIL! */
+@@ -406,12 +407,12 @@ static int pop3_getauth(int sock, struct
+ (ok == PS_SOCKET && !ctl->wehaveauthed))
+ {
+ #ifdef SSL_ENABLE
+- if (must_tls(ctl)) {
++ if (must_starttls(ctl)) {
+ /* fail with mandatory STLS without repoll */
+ report(stderr, GT_("TLS is mandatory for this session, but server refused CAPA command.\n"));
+ report(stderr, GT_("The CAPA command is however necessary for TLS.\n"));
+ return ok;
+- } else if (maybe_tls(ctl)) {
++ } else if (maybe_starttls(ctl)) {
+ /* defeat opportunistic STLS */
+ xfree(ctl->sslproto);
+ ctl->sslproto = xstrdup("");
+@@ -431,24 +432,19 @@ static int pop3_getauth(int sock, struct
+ }
+
+ #ifdef SSL_ENABLE
+- if (maybe_tls(ctl)) {
+- char *commonname;
++ commonname = ctl->server.pollname;
++ if (ctl->server.via)
++ commonname = ctl->server.via;
++ if (ctl->sslcommonname)
++ commonname = ctl->sslcommonname;
+
+- commonname = ctl->server.pollname;
+- if (ctl->server.via)
+- commonname = ctl->server.via;
+- if (ctl->sslcommonname)
+- commonname = ctl->sslcommonname;
+-
+- if (has_stls
+- || must_tls(ctl)) /* if TLS is mandatory, ignore capabilities */
++ if (maybe_starttls(ctl)) {
++ if (has_stls || must_starttls(ctl)) /* if TLS is mandatory, ignore capabilities */
+ {
+- /* Use "tls1" rather than ctl->sslproto because tls1 is the only
+- * protocol that will work with STARTTLS. Don't need to worry
+- * whether TLS is mandatory or opportunistic unless SSLOpen() fails
+- * (see below). */
++ /* Don't need to worry whether TLS is mandatory or
++ * opportunistic unless SSLOpen() fails (see below). */
+ if (gen_transact(sock, "STLS") == PS_SUCCESS
+- && (set_timeout(mytimeout), SSLOpen(sock, ctl->sslcert, ctl->sslkey, "tls1", ctl->sslcertck,
++ && (set_timeout(mytimeout), SSLOpen(sock, ctl->sslcert, ctl->sslkey, ctl->sslproto, ctl->sslcertck,
+ ctl->sslcertfile, ctl->sslcertpath, ctl->sslfingerprint, commonname,
+ ctl->server.pollname, &ctl->remotename)) != -1)
+ {
+@@ -475,7 +471,7 @@ static int pop3_getauth(int sock, struct
+ {
+ report(stdout, GT_("%s: upgrade to TLS succeeded.\n"), commonname);
+ }
+- } else if (must_tls(ctl)) {
++ } else if (must_starttls(ctl)) {
+ /* Config required TLS but we couldn't guarantee it, so we must
+ * stop. */
+ set_timeout(0);
+@@ -495,7 +491,11 @@ static int pop3_getauth(int sock, struct
+ }
+ }
+ }
+- } /* maybe_tls() */
++ } else { /* maybe_starttls() */
++ if (has_stls && outlevel >= O_VERBOSE) {
++ report(stdout, GT_("%s: WARNING: server offered STLS, but sslproto '' given.\n"), commonname);
++ }
++ } /* maybe_starttls() */
+ #endif /* SSL_ENABLE */
+
+ /*
+--- fetchmail-6.3.26.orig/socket.c
++++ fetchmail-6.3.26/socket.c
+@@ -876,7 +876,9 @@ int SSLOpen(int sock, char *mycert, char
+ {
+ struct stat randstat;
+ int i;
++ int avoid_ssl_versions = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3;
+ long sslopts = SSL_OP_ALL;
++ int ssle_connect = 0;
+
+ SSL_load_error_strings();
+ SSL_library_init();
+@@ -906,25 +908,57 @@ int SSLOpen(int sock, char *mycert, char
+ /* Make sure a connection referring to an older context is not left */
+ _ssl_context[sock] = NULL;
+ if(myproto) {
+- if(!strcasecmp("ssl2",myproto)) {
+-#if HAVE_DECL_SSLV2_CLIENT_METHOD + 0 > 0
+- _ctx[sock] = SSL_CTX_new(SSLv2_client_method());
++ if(!strcasecmp("ssl3",myproto)) {
++#if (HAVE_DECL_SSLV3_CLIENT_METHOD > 0) && (0 == OPENSSL_NO_SSL3 + 0)
++ _ctx[sock] = SSL_CTX_new(SSLv3_client_method());
++ avoid_ssl_versions &= ~SSL_OP_NO_SSLv3;
+ #else
+- report(stderr, GT_("Your operating system does not support SSLv2.\n"));
++ report(stderr, GT_("Your OpenSSL version does not support SSLv3.\n"));
+ return -1;
+ #endif
+- } else if(!strcasecmp("ssl3",myproto)) {
+- _ctx[sock] = SSL_CTX_new(SSLv3_client_method());
++ } else if(!strcasecmp("ssl3+",myproto)) {
++ avoid_ssl_versions &= ~SSL_OP_NO_SSLv3;
++ myproto = NULL;
+ } else if(!strcasecmp("tls1",myproto)) {
+ _ctx[sock] = SSL_CTX_new(TLSv1_client_method());
+- } else if (!strcasecmp("ssl23",myproto)) {
++ } else if(!strcasecmp("tls1+",myproto)) {
++ myproto = NULL;
++#if defined(TLS1_1_VERSION) && TLS_MAX_VERSION >= TLS1_1_VERSION
++ } else if(!strcasecmp("tls1.1",myproto)) {
++ _ctx[sock] = SSL_CTX_new(TLSv1_1_client_method());
++ } else if(!strcasecmp("tls1.1+",myproto)) {
++ myproto = NULL;
++ avoid_ssl_versions |= SSL_OP_NO_TLSv1;
++#else
++ } else if(!strcasecmp("tls1.1",myproto) || !strcasecmp("tls1.1+", myproto)) {
++ report(stderr, GT_("Your OpenSSL version does not support TLS v1.1.\n"));
++ return -1;
++#endif
++#if defined(TLS1_2_VERSION) && TLS_MAX_VERSION >= TLS1_2_VERSION
++ } else if(!strcasecmp("tls1.2",myproto)) {
++ _ctx[sock] = SSL_CTX_new(TLSv1_2_client_method());
++ } else if(!strcasecmp("tls1.2+",myproto)) {
++ myproto = NULL;
++ avoid_ssl_versions |= SSL_OP_NO_TLSv1;
++ avoid_ssl_versions |= SSL_OP_NO_TLSv1_1;
++#else
++ } else if(!strcasecmp("tls1.2",myproto) || !strcasecmp("tls1.2+", myproto)) {
++ report(stderr, GT_("Your OpenSSL version does not support TLS v1.2.\n"));
++ return -1;
++#endif
++ } else if (!strcasecmp("ssl23",myproto) || 0 == strcasecmp("auto",myproto)) {
+ myproto = NULL;
+ } else {
+- report(stderr,GT_("Invalid SSL protocol '%s' specified, using default (SSLv23).\n"), myproto);
++ report(stderr,GT_("Invalid SSL protocol '%s' specified, using default autoselect (SSL23).\n"), myproto);
+ myproto = NULL;
+ }
+ }
+- if(!myproto) {
++ // do not combine into an else { } as myproto may be nulled
++ // above!
++ if (!myproto) {
++ // SSLv23 is a misnomer and will in fact use the best
++ // available protocol, subject to SSL_OP_NO*
++ // constraints.
+ _ctx[sock] = SSL_CTX_new(SSLv23_client_method());
+ }
+ if(_ctx[sock] == NULL) {
+@@ -938,7 +972,7 @@ int SSLOpen(int sock, char *mycert, char
+ sslopts &= ~ SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
+ }
+
+- SSL_CTX_set_options(_ctx[sock], sslopts);
++ SSL_CTX_set_options(_ctx[sock], sslopts | avoid_ssl_versions);
+
+ if (certck) {
+ SSL_CTX_set_verify(_ctx[sock], SSL_VERIFY_PEER, SSL_ck_verify_callback);
+@@ -1008,8 +1042,18 @@ int SSLOpen(int sock, char *mycert, char
+ }
+
+ if (SSL_set_fd(_ssl_context[sock], sock) == 0
+- || SSL_connect(_ssl_context[sock]) < 1) {
++ || (ssle_connect = SSL_connect(_ssl_context[sock])) < 1) {
++ int e = errno;
++ unsigned long ssle_err_from_queue = ERR_peek_error();
++ unsigned long ssle_err_from_get_error = SSL_get_error(_ssl_context[sock], ssle_connect);
+ ERR_print_errors_fp(stderr);
++ if (SSL_ERROR_SYSCALL == ssle_err_from_get_error && 0 == ssle_err_from_queue) {
++ if (0 == ssle_connect) {
++ report(stderr, GT_("Server shut down connection prematurely during SSL_connect().\n"));
++ } else if (ssle_connect < 0) {
++ report(stderr, GT_("System error during SSL_connect(): %s\n"), strerror(e));
++ }
++ }
+ SSL_free( _ssl_context[sock] );
+ _ssl_context[sock] = NULL;
+ SSL_CTX_free(_ctx[sock]);
+@@ -1017,6 +1061,24 @@ int SSLOpen(int sock, char *mycert, char
+ return(-1);
+ }
+
++ if (outlevel >= O_VERBOSE) {
++ SSL_CIPHER const *sc;
++ int bitsmax, bitsused;
++
++ const char *ver;
++
++ ver = SSL_get_version(_ssl_context[sock]);
++
++ sc = SSL_get_current_cipher(_ssl_context[sock]);
++ if (!sc) {
++ report (stderr, GT_("Cannot obtain current SSL/TLS cipher - no session established?\n"));
++ } else {
++ bitsused = SSL_CIPHER_get_bits(sc, &bitsmax);
++ report(stdout, GT_("SSL/TLS: using protocol %s, cipher %s, %d/%d secret/processed bits\n"),
++ ver, SSL_CIPHER_get_name(sc), bitsused, bitsmax);
++ }
++ }
++
+ /* Paranoia: was the callback not called as we expected? */
+ if (!_depth0ck) {
+ report(stderr, GT_("Certificate/fingerprint verification was somehow skipped!\n"));
+--- /dev/null
++++ fetchmail-6.3.26/starttls.c
+@@ -0,0 +1,37 @@
++/** \file tls.c - collect common TLS functionality
++ * \author Matthias Andree
++ * \date 2006
++ */
++
++#include "fetchmail.h"
++
++#include <string.h>
++
++#ifdef HAVE_STRINGS_H
++#include <strings.h>
++#endif
++
++/** return true if user allowed opportunistic STARTTLS/STLS */
++int maybe_starttls(struct query *ctl) {
++#ifdef SSL_ENABLE
++ /* opportunistic or forced TLS */
++ return (!ctl->sslproto || strlen(ctl->sslproto))
++ && !ctl->use_ssl;
++#else
++ (void)ctl;
++ return 0;
++#endif
++}
++
++/** return true if user requires STARTTLS/STLS, note though that this
++ * code must always use a logical AND with maybe_tls(). */
++int must_starttls(struct query *ctl) {
++#ifdef SSL_ENABLE
++ return maybe_starttls(ctl)
++ && (ctl->sslfingerprint || ctl->sslcertck
++ || (ctl->sslproto && !strcasecmp(ctl->sslproto, "tls1")));
++#else
++ (void)ctl;
++ return 0;
++#endif
++}
diff --git a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb
index 1d78288..5af5d0d 100644
--- a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb
+++ b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb
@@ -7,7 +7,9 @@
DEPENDS = "openssl"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz \
+ file://02_remove_SSLv3.patch \
+ "
SRC_URI[md5sum] = "61b66faad044afa26e142bb1791aa2b3"
SRC_URI[sha256sum] = "79b4c54cdbaf02c1a9a691d9948fcb1a77a1591a813e904283a8b614b757e850"
diff --git a/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb b/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb
deleted file mode 100644
index 95147bd..0000000
--- a/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# Copyright (C) 2014, 2015 Wind River Systems, Inc.
-# Released under the MIT license (see COPYING.MIT for the terms)
-#
-SUMMARY = "GeoIP perl API library to access location database"
-DESCRIPTION = "perl library for country/city/organization to IP address or hostname mapping"
-HOMEPAGE = "http://www.maxmind.com/app/ip-location"
-SECTION = "libdevel"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b7a36f55e8ba62aadd74e4f0886a405e"
-
-S = "${WORKDIR}/git"
-SRCREV = "47f7d49bd15cfc2e5f8c0f5c4068dc8bb0e10e96"
-SRC_URI = "git://github.com/maxmind/geoip-api-perl.git;protocol=https; \
- file://run-ptest \
-"
-
-DEPENDS += "geoip"
-
-inherit cpan ptest
-
-EXTRA_CPANFLAGS = "LIBS='-L${STAGING_LIBDIR}' INC='-I${STAGING_INCDIR}'"
-
-
-# perl scripts and some special small data files
-#
-do_install_ptest () {
- install -d -m 0755 ${D}${PTEST_PATH}/t/data
-
- install ${S}/t/*.t* ${D}${PTEST_PATH}/t
- install ${S}/t/data/* ${D}${PTEST_PATH}/t/data
-}
-
-FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Geo/IP/.debug"
-
diff --git a/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb b/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb
new file mode 100644
index 0000000..ed5c3a9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2014, 2015 Wind River Systems, Inc.
+# Released under the MIT license (see COPYING.MIT for the terms)
+#
+SUMMARY = "GeoIP perl API library to access location database"
+DESCRIPTION = "perl library for country/city/organization to IP address or hostname mapping"
+HOMEPAGE = "http://www.maxmind.com/app/ip-location"
+SECTION = "libdevel"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e4f3ea6e9b28af88dc0321190a1f8250"
+
+S = "${WORKDIR}/git"
+SRCREV = "4cdfdc38eca237c19c22a8b90490446ce6d970fa"
+SRC_URI = "git://github.com/maxmind/geoip-api-perl.git;protocol=https; \
+ file://run-ptest \
+"
+
+DEPENDS += "geoip"
+
+inherit cpan ptest
+
+EXTRA_CPANFLAGS = "LIBS='-L${STAGING_LIBDIR}' INC='-I${STAGING_INCDIR}'"
+
+
+# perl scripts and some special small data files
+#
+do_install_ptest () {
+ install -d -m 0755 ${D}${PTEST_PATH}/t/data
+
+ install ${S}/t/*.t* ${D}${PTEST_PATH}/t
+ install ${S}/t/data/* ${D}${PTEST_PATH}/t/data
+}
+
+FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Geo/IP/.debug"
+
diff --git a/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.11.bb b/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.11.bb
deleted file mode 100644
index 3527d0c..0000000
--- a/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.11.bb
+++ /dev/null
@@ -1,90 +0,0 @@
-SUMMARY = "C library for country/city/organization to IP address or hostname mapping"
-DESCRIPTION = "GeoIP is a C library that enables the user to find the country that any IP \
-address or hostname originates from. It uses a file based database that is \
-accurate as of March 2003. This database simply contains IP blocks as keys, and \
-countries as values. This database should be more complete and accurate than \
-using reverse DNS lookups."
-
-HOMEPAGE = "http://dev.maxmind.com/geoip/"
-SECTION = "libdevel"
-
-SRC_URI = "git://github.com/maxmind/geoip-api-c.git \
- http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz;apply=no;name=GeoIP-dat \
- http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz;apply=no;name=GeoIPv6-dat \
- http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz;apply=no;name=GeoLiteCity-dat \
- http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz;apply=no;name=GeoLiteCityv6-dat \
- file://run-ptest \
-"
-SRCREV = "3169a8a88808c8df862e0b0355f99c738cce9f7e"
-
-SRC_URI[GeoIP-dat.md5sum] = "37c84ead332dda0362a5ac7b049b72d4"
-SRC_URI[GeoIP-dat.sha256sum] = "79ff1099e96c2dc1c2539c9a18aaa13a9afd085cae477df60d95f1644d42bc07"
-
-SRC_URI[GeoIPv6-dat.md5sum] = "e75b84a4044e81d6d4484e33816bc762"
-SRC_URI[GeoIPv6-dat.sha256sum] = "a009b0f21968d2868e6dd19d14f3c3b8cd60ae84a4bfc2970df34d771a04811e"
-
-SRC_URI[GeoLiteCity-dat.md5sum] = "4b6588d0bfe1af22e267ac90aa97f769"
-SRC_URI[GeoLiteCity-dat.sha256sum] = "8a6467033a528f68b1a97de24d9d0ce86c8e8e83683820e16e433ddbd3f712f7"
-
-SRC_URI[GeoLiteCityv6-dat.md5sum] = "ad0cb42518af7f752499425dca0952bb"
-SRC_URI[GeoLiteCityv6-dat.sha256sum] = "eda67f4204ba9fa5204a53cdb629167cca9394c712f5378bc723a8c29c0b440f"
-
-LICENSE = "LGPL-2.1"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad \
- file://LICENSE;md5=0388276749a542b0d611601fa7c1dcc8 "
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-EXTRA_OECONF = "--disable-static \
- --disable-dependency-tracking "
-
-do_install() {
- make DESTDIR=${D} install
- install -d ${D}/${datadir}/GeoIP
- install ${WORKDIR}/GeoIP.dat ${D}/${datadir}/GeoIP/
- install ${WORKDIR}/GeoIPv6.dat ${D}/${datadir}/GeoIP/
- install ${WORKDIR}/GeoLiteCity.dat ${D}/${datadir}/GeoIP/
- install ${WORKDIR}/GeoLiteCityv6.dat ${D}/${datadir}/GeoIP/
- ln -s GeoLiteCity.dat ${D}${datadir}/GeoIP/GeoIPCity.dat
-}
-
-PACKAGES =+ "${PN}-database"
-FILES_${PN}-database = ""
-FILES_${PN}-database += "${datadir}/GeoIP/*"
-
-# We cannot do much looking up without databases.
-#
-RDEPENDS_${PN} += "${PN}-database"
-
-inherit ptest
-
-do_configure_ptest() {
- sed -i -e "s/noinst_PROGRAMS = /test_PROGRAMS = /g" \
- -e 's:SRCDIR=\\"$(top_srcdir)\\":SRCDIR=\\"$(testdir)\\":' \
- ${S}/test/Makefile.am
-
- if ! grep "^testdir = " ${S}/test/Makefile.am ; then
- sed -e '/EXTRA_PROGRAMS = /itestdir = ${PTEST_PATH}/tests' \
- -i ${S}/test/Makefile.am
- fi
-
- sed -i -e "s:/usr/local/share:/usr/share:g" \
- ${S}/test/benchmark.c
-
- sed -i -e 's:"../data/:"/usr/share/GeoIP/:g' \
- ${S}/test/test-geoip-city.c \
- ${S}/test/test-geoip-isp.c \
- ${S}/test/test-geoip-asnum.c \
- ${S}/test/test-geoip-netspeed.c \
- ${S}/test/test-geoip-org.c \
- ${S}/test/test-geoip-region.c
-}
-
-
-do_install_ptest() {
- oe_runmake -C test DESTDIR=${D} install-testPROGRAMS
- install ${S}/test/*.txt ${D}${PTEST_PATH}/tests
-}
diff --git a/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb b/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb
new file mode 100644
index 0000000..4271c2e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb
@@ -0,0 +1,92 @@
+SUMMARY = "C library for country/city/organization to IP address or hostname mapping"
+DESCRIPTION = "GeoIP is a C library that enables the user to find the country that any IP \
+address or hostname originates from. It uses a file based database that is \
+accurate as of March 2003. This database simply contains IP blocks as keys, and \
+countries as values. This database should be more complete and accurate than \
+using reverse DNS lookups."
+
+HOMEPAGE = "http://dev.maxmind.com/geoip/"
+SECTION = "libdevel"
+
+GEOIP_DATABASE_VERSION = "20181205"
+
+SRC_URI = "git://github.com/maxmind/geoip-api-c.git \
+ http://sources.openembedded.org/GeoIP.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoIP-dat; \
+ http://sources.openembedded.org/GeoIPv6.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoIPv6-dat; \
+ http://sources.openembedded.org/GeoLiteCity.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoLiteCity-dat; \
+ http://sources.openembedded.org/GeoLiteCityv6.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoLiteCityv6-dat; \
+ file://run-ptest \
+"
+SRCREV = "4b526e7331ca1d692b74a0509ddcc725622ed31a"
+
+SRC_URI[GeoIP-dat.md5sum] = "d538e57ad9268fdc7955c6cf9a37c4a9"
+SRC_URI[GeoIP-dat.sha256sum] = "b9c05eb8bfcf90a6ddfdc6815caf40a8db2710f0ce3dd48fbd6c24d485ae0449"
+
+SRC_URI[GeoIPv6-dat.md5sum] = "52d6aa0aac1adbfa5eb7fa4742197c11"
+SRC_URI[GeoIPv6.sha256sum] = "416ac92fcc35a21d5efbb32e5c88e609c37aec1aa1af6247d088b8da1af6e9bf"
+
+SRC_URI[GeoLiteCity-dat.md5sum] = "d700c137232f8e077ac8db8577f699d9"
+SRC_URI[GeoLiteCity-dat.sha256sum] = "90db2e52195e3d1bcdb2c2789209006d09de5c742812dbd9a1b36c12675ec4cd"
+
+SRC_URI[GeoLiteCityv6-dat.md5sum] = "6734ccdc644fc0ba76eb276dce73d005"
+SRC_URI[GeoLiteCityv6-dat.sha256sum] = "c95a9d2643b7f53d7abeed2114388870e13fbbad4653f450a49efa7e4b86aca4"
+
+LICENSE = "LGPL-2.1"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad \
+ file://LICENSE;md5=0388276749a542b0d611601fa7c1dcc8 "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-static \
+ --disable-dependency-tracking "
+
+do_install() {
+ make DESTDIR=${D} install
+ install -d ${D}/${datadir}/GeoIP
+ install ${WORKDIR}/GeoIP.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoIP.dat
+ install ${WORKDIR}/GeoIPv6.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoIPv6.dat
+ install ${WORKDIR}/GeoLiteCity.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoLiteCity.dat
+ install ${WORKDIR}/GeoLiteCityv6.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoLiteCityv6.dat
+ ln -s GeoLiteCity.dat ${D}${datadir}/GeoIP/GeoIPCity.dat
+}
+
+PACKAGES =+ "${PN}-database"
+FILES_${PN}-database = ""
+FILES_${PN}-database += "${datadir}/GeoIP/*"
+
+# We cannot do much looking up without databases.
+#
+RDEPENDS_${PN} += "${PN}-database"
+
+inherit ptest
+
+do_configure_ptest() {
+ sed -i -e "s/noinst_PROGRAMS = /test_PROGRAMS = /g" \
+ -e 's:SRCDIR=\\"$(top_srcdir)\\":SRCDIR=\\"$(testdir)\\":' \
+ ${S}/test/Makefile.am
+
+ if ! grep "^testdir = " ${S}/test/Makefile.am ; then
+ sed -e '/EXTRA_PROGRAMS = /itestdir = ${PTEST_PATH}/tests' \
+ -i ${S}/test/Makefile.am
+ fi
+
+ sed -i -e "s:/usr/local/share:/usr/share:g" \
+ ${S}/test/benchmark.c
+
+ sed -i -e 's:"../data/:"/usr/share/GeoIP/:g' \
+ ${S}/test/test-geoip-city.c \
+ ${S}/test/test-geoip-isp.c \
+ ${S}/test/test-geoip-asnum.c \
+ ${S}/test/test-geoip-netspeed.c \
+ ${S}/test/test-geoip-org.c \
+ ${S}/test/test-geoip-region.c
+}
+
+
+do_install_ptest() {
+ oe_runmake -C test DESTDIR=${D} install-testPROGRAMS
+ install ${S}/test/*.txt ${D}${PTEST_PATH}/tests
+}
diff --git a/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch
new file mode 100644
index 0000000..0ee44c1
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch
@@ -0,0 +1,31 @@
+From 04603f52d793f964653e6a985944400fe4fa87ee Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 17:50:20 -0700
+Subject: [PATCH] Make environment variables assignments to be weak
+
+So that OE can override them for cross builds
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1c80c09..884126c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2,11 +2,11 @@ prefix = $(DESTDIR)/usr
+ bindir = ${prefix}/bin
+ mandir = ${prefix}/share/man
+
+-CC = gcc
++CC ?= gcc
+ CFLAGS += -Wall -std=c99 -pedantic -O2
+
+-INSTALL = /usr/bin/install -c
+-STRIP = /usr/bin/strip -s
++INSTALL ?= /usr/bin/install -c
++STRIP ?= /usr/bin/strip -s
+
+ all: htpdate
+
diff --git a/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch
new file mode 100644
index 0000000..cca8c6c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch
@@ -0,0 +1,40 @@
+From 75646a2d2df14fdbc4a01e222a779afac94861d1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Jun 2018 20:11:08 -0700
+Subject: [PATCH] Replace ntp_adjtime with adjtimex.
+
+ntp_adjtime in glibc is an alias to adjtimex and
+musl does not provide ntp_adjtime at all
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ htpdate.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/htpdate.c b/htpdate.c
+index 4171efe..ff0bf8d 100644
+--- a/htpdate.c
++++ b/htpdate.c
+@@ -391,7 +391,7 @@ static int htpdate_adjtimex( double drift ) {
+
+ /* Read current kernel frequency */
+ tmx.modes = 0;
+- ntp_adjtime(&tmx);
++ adjtimex(&tmx);
+
+ /* Calculate new frequency */
+ freq = (long)(65536e6 * drift);
+@@ -406,7 +406,7 @@ static int htpdate_adjtimex( double drift ) {
+
+ /* Become root */
+ swuid(0);
+- return( ntp_adjtime(&tmx) );
++ return( adjtimex(&tmx) );
+
+ }
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb
new file mode 100644
index 0000000..eb67878
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb
@@ -0,0 +1,39 @@
+# Copyright (C) 2018 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "HTTP based time synchronization tool"
+
+DESCRIPTION = "The HTTP Time Protocol (HTP) is used to synchronize a computer's time with\
+ web servers as reference time source. This program can be used instead\
+ ntpdate or similar, in networks that has a firewall blocking the NTP port.\
+ Htpdate will synchronize the computer time to Greenwich Mean Time (GMT),\
+ using the timestamps from HTTP headers found in web servers response (the\
+ HEAD method will be used to get the information).\
+ Htpdate works through proxy servers. Accuracy of htpdate will be usually\
+ within 0.5 seconds (better with multiple servers).\
+"
+
+HOMEPAGE = "http://www.vervest.org/htp/"
+
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://htpdate.c;beginline=26;endline=30;md5=d7018a4d2c5a6eab392709a05e5e168a"
+
+SRC_URI = "http://www.vervest.org/htp/archive/c/htpdate-${PV}.tar.xz \
+ file://0001-Make-environment-variables-assignments-to-be-weak.patch \
+ file://0001-Replace-ntp_adjtime-with-adjtimex.patch \
+ "
+SRC_URI[md5sum] = "9d5ca69be06edf5d535b52b5f790da4e"
+SRC_URI[sha256sum] = "22b2cf3ec45b0eedecddd3ad2a3d754ac57942ae7dcbac410d254935f0bdbc03"
+
+do_configure () {
+ :
+}
+
+do_compile () {
+ oe_runmake
+}
+
+do_install () {
+ oe_runmake install 'INSTALL=install' 'STRIP=echo' 'DESTDIR=${D}'
+}
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb b/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb
index ea28b34..125b59e 100644
--- a/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb
@@ -5,9 +5,11 @@
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=acc89812938cf9ad6b1debc37cea0253"
+inherit manpages
+MAN_PKG = "${PN}"
SRCREV = "42bfbb9beb924672ca86b86e9679ac3d6b87d992"
-SRC_URI = "git://anonscm.debian.org/collab-maint/ifenslave.git"
+SRC_URI = "git://salsa.debian.org/debian/ifenslave.git;protocol=https"
S = "${WORKDIR}/git"
@@ -23,5 +25,3 @@
FILES_${PN}-doc_remove = "${mandir}"
FILES_${PN} += "${mandir}/man8/ifenslave.8"
-
-RDEPENDS_${PN} = "man"
diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch
new file mode 100644
index 0000000..11a9103
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch
@@ -0,0 +1,86 @@
+From 282d492e4cab7b4d9c7321f4c0c55b615948e280 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 11 May 2018 14:09:17 -0700
+Subject: [PATCH] Disable gcc8 specific warnings
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libipsec/ipsec_dump_policy.c | 5 +++++
+ src/libipsec/pfkey_dump.c | 5 +++++
+ src/racoon/isakmp.c | 11 ++++++++++-
+ 3 files changed, 20 insertions(+), 1 deletion(-)
+
+diff --git a/src/libipsec/ipsec_dump_policy.c b/src/libipsec/ipsec_dump_policy.c
+index 4d0eb77..c3fc842 100644
+--- a/src/libipsec/ipsec_dump_policy.c
++++ b/src/libipsec/ipsec_dump_policy.c
+@@ -275,6 +275,10 @@ ipsec_dump_policy1(policy, delimiter, withports)
+ return buf;
+ }
+
++#pragma GCC diagnostic push
++#if defined(__GNUC__) && (__GNUC__ >= 8)
++#pragma GCC diagnostic ignored "-Wformat-truncation"
++#endif
+ static char *
+ ipsec_dump_ipsecrequest(buf, len, xisr, bound, withports)
+ char *buf;
+@@ -419,3 +423,4 @@ set_address(buf, len, sa, withports)
+
+ return buf;
+ }
++#pragma GCC diagnostic pop
+diff --git a/src/libipsec/pfkey_dump.c b/src/libipsec/pfkey_dump.c
+index 4627ebc..451e535 100644
+--- a/src/libipsec/pfkey_dump.c
++++ b/src/libipsec/pfkey_dump.c
+@@ -691,6 +691,10 @@ str_ipport(sa)
+ /*
+ * set "/prefix[port number]" to buffer.
+ */
++#pragma GCC diagnostic push
++#if defined(__GNUC__) && (__GNUC__ >= 8)
++#pragma GCC diagnostic ignored "-Wformat-truncation"
++#endif
+ static char *
+ str_prefport(family, pref, port, ulp)
+ u_int family, pref, port, ulp;
+@@ -735,6 +739,7 @@ str_prefport(family, pref, port, ulp)
+
+ return buf;
+ }
++#pragma GCC diagnostic pop
+
+ static void
+ str_upperspec(ulp, p1, p2)
+diff --git a/src/racoon/isakmp.c b/src/racoon/isakmp.c
+index 7ff53a3..4addf24 100644
+--- a/src/racoon/isakmp.c
++++ b/src/racoon/isakmp.c
+@@ -3124,7 +3124,12 @@ script_hook(iph1, script)
+ #endif
+
+ /* local address */
++#pragma GCC diagnostic push
++#if defined(__GNUC__) && (__GNUC__ >= 8)
++#pragma GCC diagnostic ignored "-Wstringop-truncation"
++#endif
+ GETNAMEINFO(iph1->local, addrstr, portstr);
++#pragma GCC diagnostic pop
+
+ if (script_env_append(&envp, &envc, "LOCAL_ADDR", addrstr) != 0) {
+ plog(LLV_ERROR, LOCATION, NULL, "Cannot set LOCAL_ADDR\n");
+@@ -3138,8 +3143,12 @@ script_hook(iph1, script)
+
+ /* Peer address */
+ if (iph1->remote != NULL) {
++#pragma GCC diagnostic push
++#if defined(__GNUC__) && (__GNUC__ >= 8)
++#pragma GCC diagnostic ignored "-Wstringop-truncation"
++#endif
+ GETNAMEINFO(iph1->remote, addrstr, portstr);
+-
++#pragma GCC diagnostic pop
+ if (script_env_append(&envp, &envc,
+ "REMOTE_ADDR", addrstr) != 0) {
+ plog(LLV_ERROR, LOCATION, NULL,
diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch
new file mode 100644
index 0000000..2282744
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch
@@ -0,0 +1,1086 @@
+From b572350a922187d43dd4629c3b43e19979fae3ef Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Tue, 25 Sep 2018 15:30:04 +0800
+Subject: [PATCH] ipsec-tools: add openssl 1.1 support
+
+To: equeiroz@troianet.com.br
+
+This patch updates the calls to openssl 1.1 API, and adds a
+compatibility layer so it compiles with (at least) openssl 1.0.2, I
+haven't tested it with lower versions, but all that's needed is to edit
+the openssl_compat.* files and add the missing functions there--they're
+usually trivial.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+
+Upstream-Status: Submitted [https://sourceforge.net/p/ipsec-tools/mailman/message/36327963/]
+https://github.com/openwrt/packages/blob/master/net/ipsec-tools/patches/015-openssl-1.1.patch
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/racoon/Makefile.am | 10 +--
+ src/racoon/algorithm.c | 6 +-
+ src/racoon/crypto_openssl.c | 197 +++++++++++++++++++++-------------------
+ src/racoon/crypto_openssl.h | 2 +-
+ src/racoon/eaytest.c | 7 +-
+ src/racoon/ipsec_doi.c | 2 +-
+ src/racoon/openssl_compat.c | 213 ++++++++++++++++++++++++++++++++++++++++++++
+ src/racoon/openssl_compat.h | 45 ++++++++++
+ src/racoon/plainrsa-gen.c | 41 +++++----
+ src/racoon/prsa_par.y | 28 ++++--
+ src/racoon/rsalist.c | 5 +-
+ 11 files changed, 430 insertions(+), 126 deletions(-)
+ create mode 100644 src/racoon/openssl_compat.c
+ create mode 100644 src/racoon/openssl_compat.h
+
+diff --git a/src/racoon/Makefile.am b/src/racoon/Makefile.am
+index 0662957..272b009 100644
+--- a/src/racoon/Makefile.am
++++ b/src/racoon/Makefile.am
+@@ -4,7 +4,7 @@ sbin_PROGRAMS = racoon racoonctl plainrsa-gen
+ noinst_PROGRAMS = eaytest
+ include_racoon_HEADERS = racoonctl.h var.h vmbuf.h misc.h gcmalloc.h admin.h \
+ schedule.h sockmisc.h isakmp_var.h isakmp.h isakmp_xauth.h \
+- isakmp_cfg.h isakmp_unity.h ipsec_doi.h evt.h
++ isakmp_cfg.h isakmp_unity.h ipsec_doi.h evt.h openssl_compat.h
+ lib_LTLIBRARIES = libracoon.la
+
+ adminsockdir=${localstatedir}/racoon
+@@ -32,7 +32,7 @@ racoon_SOURCES = \
+ gssapi.c dnssec.c getcertsbyname.c privsep.c \
+ pfkey.c admin.c evt.c ipsec_doi.c oakley.c grabmyaddr.c vendorid.c \
+ policy.c localconf.c remoteconf.c crypto_openssl.c algorithm.c \
+- proposal.c sainfo.c strnames.c \
++ openssl_compat.c proposal.c sainfo.c strnames.c \
+ plog.c logger.c schedule.c str2val.c \
+ safefile.c backupsa.c genlist.c rsalist.c \
+ cftoken.l cfparse.y prsa_tok.l prsa_par.y
+@@ -51,12 +51,12 @@ libracoon_la_SOURCES = kmpstat.c vmbuf.c sockmisc.c misc.c
+ libracoon_la_CFLAGS = -DNOUSE_PRIVSEP $(AM_CFLAGS)
+
+ plainrsa_gen_SOURCES = plainrsa-gen.c plog.c \
+- crypto_openssl.c logger.c
++ crypto_openssl.c logger.c openssl_compat.c
+ EXTRA_plainrsa_gen_SOURCES = $(MISSING_ALGOS)
+ plainrsa_gen_LDADD = $(CRYPTOBJS) vmbuf.o misc.o
+ plainrsa_gen_DEPENDENCIES = $(CRYPTOBJS) vmbuf.o misc.o
+
+-eaytest_SOURCES = eaytest.c plog.c logger.c
++eaytest_SOURCES = eaytest.c plog.c logger.c openssl_compat.c
+ EXTRA_eaytest_SOURCES = missing/crypto/sha2/sha2.c
+ eaytest_LDADD = crypto_openssl_test.o vmbuf.o str2val.o misc_noplog.o \
+ $(CRYPTOBJS)
+@@ -75,7 +75,7 @@ noinst_HEADERS = \
+ debugrm.h isakmp.h misc.h sainfo.h \
+ dhgroup.h isakmp_agg.h netdb_dnssec.h schedule.h \
+ isakmp_cfg.h isakmp_xauth.h isakmp_unity.h isakmp_frag.h \
+- throttle.h privsep.h \
++ throttle.h privsep.h openssl_compat.h \
+ cfparse_proto.h cftoken_proto.h genlist.h rsalist.h \
+ missing/crypto/sha2/sha2.h missing/crypto/rijndael/rijndael_local.h \
+ missing/crypto/rijndael/rijndael-api-fst.h \
+diff --git a/src/racoon/algorithm.c b/src/racoon/algorithm.c
+index 3fd50f6..66c874b 100644
+--- a/src/racoon/algorithm.c
++++ b/src/racoon/algorithm.c
+@@ -128,7 +128,7 @@ static struct enc_algorithm oakley_encdef[] = {
+ { "aes", algtype_aes, OAKLEY_ATTR_ENC_ALG_AES, 16,
+ eay_aes_encrypt, eay_aes_decrypt,
+ eay_aes_weakkey, eay_aes_keylen, },
+-#ifdef HAVE_OPENSSL_CAMELLIA_H
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ { "camellia", algtype_camellia, OAKLEY_ATTR_ENC_ALG_CAMELLIA, 16,
+ eay_camellia_encrypt, eay_camellia_decrypt,
+ eay_camellia_weakkey, eay_camellia_keylen, },
+@@ -168,7 +168,7 @@ static struct enc_algorithm ipsec_encdef[] = {
+ { "twofish", algtype_twofish, IPSECDOI_ESP_TWOFISH, 16,
+ NULL, NULL,
+ NULL, eay_twofish_keylen, },
+-#ifdef HAVE_OPENSSL_IDEA_H
++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA)
+ { "3idea", algtype_3idea, IPSECDOI_ESP_3IDEA, 8,
+ NULL, NULL,
+ NULL, NULL, },
+@@ -179,7 +179,7 @@ static struct enc_algorithm ipsec_encdef[] = {
+ { "rc4", algtype_rc4, IPSECDOI_ESP_RC4, 8,
+ NULL, NULL,
+ NULL, NULL, },
+-#ifdef HAVE_OPENSSL_CAMELLIA_H
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ { "camellia", algtype_camellia, IPSECDOI_ESP_CAMELLIA, 16,
+ NULL, NULL,
+ NULL, eay_camellia_keylen, },
+diff --git a/src/racoon/crypto_openssl.c b/src/racoon/crypto_openssl.c
+index 55b076a..8fb358f 100644
+--- a/src/racoon/crypto_openssl.c
++++ b/src/racoon/crypto_openssl.c
+@@ -90,6 +90,7 @@
+ #endif
+ #endif
+ #include "plog.h"
++#include "openssl_compat.h"
+
+ #define USE_NEW_DES_API
+
+@@ -316,9 +317,12 @@ eay_cmp_asn1dn(n1, n2)
+ i = idx+1;
+ goto end;
+ }
+- if ((ea->value->length == 1 && ea->value->data[0] == '*') ||
+- (eb->value->length == 1 && eb->value->data[0] == '*')) {
+- if (OBJ_cmp(ea->object,eb->object)) {
++ ASN1_STRING *sa = X509_NAME_ENTRY_get_data(ea);
++ ASN1_STRING *sb = X509_NAME_ENTRY_get_data(eb);
++ if ((ASN1_STRING_length(sa) == 1 && ASN1_STRING_get0_data(sa)[0] == '*') ||
++ (ASN1_STRING_length(sb) == 1 && ASN1_STRING_get0_data(sb)[0] == '*')) {
++ if (OBJ_cmp(X509_NAME_ENTRY_get_object(ea),
++ X509_NAME_ENTRY_get_object(eb))) {
+ i = idx+1;
+ goto end;
+ }
+@@ -430,7 +434,7 @@ cb_check_cert_local(ok, ctx)
+
+ if (!ok) {
+ X509_NAME_oneline(
+- X509_get_subject_name(ctx->current_cert),
++ X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)),
+ buf,
+ 256);
+ /*
+@@ -438,7 +442,8 @@ cb_check_cert_local(ok, ctx)
+ * ok if they are self signed. But we should still warn
+ * the user.
+ */
+- switch (ctx->error) {
++ int ctx_error = X509_STORE_CTX_get_error(ctx);
++ switch (ctx_error) {
+ case X509_V_ERR_CERT_HAS_EXPIRED:
+ case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
+ case X509_V_ERR_INVALID_CA:
+@@ -453,9 +458,9 @@ cb_check_cert_local(ok, ctx)
+ }
+ plog(log_tag, LOCATION, NULL,
+ "%s(%d) at depth:%d SubjectName:%s\n",
+- X509_verify_cert_error_string(ctx->error),
+- ctx->error,
+- ctx->error_depth,
++ X509_verify_cert_error_string(ctx_error),
++ ctx_error,
++ X509_STORE_CTX_get_error_depth(ctx),
+ buf);
+ }
+ ERR_clear_error();
+@@ -477,10 +482,11 @@ cb_check_cert_remote(ok, ctx)
+
+ if (!ok) {
+ X509_NAME_oneline(
+- X509_get_subject_name(ctx->current_cert),
++ X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)),
+ buf,
+ 256);
+- switch (ctx->error) {
++ int ctx_error=X509_STORE_CTX_get_error(ctx);
++ switch (ctx_error) {
+ case X509_V_ERR_UNABLE_TO_GET_CRL:
+ ok = 1;
+ log_tag = LLV_WARNING;
+@@ -490,9 +496,9 @@ cb_check_cert_remote(ok, ctx)
+ }
+ plog(log_tag, LOCATION, NULL,
+ "%s(%d) at depth:%d SubjectName:%s\n",
+- X509_verify_cert_error_string(ctx->error),
+- ctx->error,
+- ctx->error_depth,
++ X509_verify_cert_error_string(ctx_error),
++ ctx_error,
++ X509_STORE_CTX_get_error_depth(ctx),
+ buf);
+ }
+ ERR_clear_error();
+@@ -516,14 +522,15 @@ eay_get_x509asn1subjectname(cert)
+ if (x509 == NULL)
+ goto error;
+
++ X509_NAME *subject_name = X509_get_subject_name(x509);
+ /* get the length of the name */
+- len = i2d_X509_NAME(x509->cert_info->subject, NULL);
++ len = i2d_X509_NAME(subject_name, NULL);
+ name = vmalloc(len);
+ if (!name)
+ goto error;
+ /* get the name */
+ bp = (unsigned char *) name->v;
+- len = i2d_X509_NAME(x509->cert_info->subject, &bp);
++ len = i2d_X509_NAME(subject_name, &bp);
+
+ X509_free(x509);
+
+@@ -661,15 +668,16 @@ eay_get_x509asn1issuername(cert)
+ if (x509 == NULL)
+ goto error;
+
++ X509_NAME *issuer_name = X509_get_issuer_name(x509);
+ /* get the length of the name */
+- len = i2d_X509_NAME(x509->cert_info->issuer, NULL);
++ len = i2d_X509_NAME(issuer_name, NULL);
+ name = vmalloc(len);
+ if (name == NULL)
+ goto error;
+
+ /* get the name */
+ bp = (unsigned char *) name->v;
+- len = i2d_X509_NAME(x509->cert_info->issuer, &bp);
++ len = i2d_X509_NAME(issuer_name, &bp);
+
+ X509_free(x509);
+
+@@ -850,7 +858,7 @@ eay_check_x509sign(source, sig, cert)
+ return -1;
+ }
+
+- res = eay_rsa_verify(source, sig, evp->pkey.rsa);
++ res = eay_rsa_verify(source, sig, EVP_PKEY_get0_RSA(evp));
+
+ EVP_PKEY_free(evp);
+ X509_free(x509);
+@@ -992,7 +1000,7 @@ eay_get_x509sign(src, privkey)
+ if (evp == NULL)
+ return NULL;
+
+- sig = eay_rsa_sign(src, evp->pkey.rsa);
++ sig = eay_rsa_sign(src, EVP_PKEY_get0_RSA(evp));
+
+ EVP_PKEY_free(evp);
+
+@@ -1079,7 +1087,11 @@ eay_strerror()
+ int line, flags;
+ unsigned long es;
+
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ es = 0; /* even when allowed by OPENSSL_API_COMPAT, it is defined as 0 */
++#else
+ es = CRYPTO_thread_id();
++#endif
+
+ while ((l = ERR_get_error_line_data(&file, &line, &data, &flags)) != 0){
+ n = snprintf(ebuf + len, sizeof(ebuf) - len,
+@@ -1100,7 +1112,7 @@ vchar_t *
+ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc)
+ {
+ vchar_t *res;
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+
+ if (!e)
+ return NULL;
+@@ -1111,7 +1123,7 @@ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc
+ if ((res = vmalloc(data->l)) == NULL)
+ return NULL;
+
+- EVP_CIPHER_CTX_init(&ctx);
++ ctx = EVP_CIPHER_CTX_new();
+
+ switch(EVP_CIPHER_nid(e)){
+ case NID_bf_cbc:
+@@ -1125,54 +1137,41 @@ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc
+ /* XXX: can we do that also for algos with a fixed key size ?
+ */
+ /* init context without key/iv
+- */
+- if (!EVP_CipherInit(&ctx, e, NULL, NULL, enc))
+- {
+- OpenSSL_BUG();
+- vfree(res);
+- return NULL;
+- }
++ */
++ if (!EVP_CipherInit(ctx, e, NULL, NULL, enc))
++ goto out;
+
+- /* update key size
+- */
+- if (!EVP_CIPHER_CTX_set_key_length(&ctx, key->l))
+- {
+- OpenSSL_BUG();
+- vfree(res);
+- return NULL;
+- }
+-
+- /* finalize context init with desired key size
+- */
+- if (!EVP_CipherInit(&ctx, NULL, (u_char *) key->v,
++ /* update key size
++ */
++ if (!EVP_CIPHER_CTX_set_key_length(ctx, key->l))
++ goto out;
++
++ /* finalize context init with desired key size
++ */
++ if (!EVP_CipherInit(ctx, NULL, (u_char *) key->v,
+ (u_char *) iv->v, enc))
+- {
+- OpenSSL_BUG();
+- vfree(res);
+- return NULL;
+- }
++ goto out;
+ break;
+ default:
+- if (!EVP_CipherInit(&ctx, e, (u_char *) key->v,
+- (u_char *) iv->v, enc)) {
+- OpenSSL_BUG();
+- vfree(res);
+- return NULL;
+- }
++ if (!EVP_CipherInit(ctx, e, (u_char *) key->v,
++ (u_char *) iv->v, enc))
++ goto out;
+ }
+
+ /* disable openssl padding */
+- EVP_CIPHER_CTX_set_padding(&ctx, 0);
++ EVP_CIPHER_CTX_set_padding(ctx, 0);
+
+- if (!EVP_Cipher(&ctx, (u_char *) res->v, (u_char *) data->v, data->l)) {
+- OpenSSL_BUG();
+- vfree(res);
+- return NULL;
+- }
++ if (!EVP_Cipher(ctx, (u_char *) res->v, (u_char *) data->v, data->l))
++ goto out;
+
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_free(ctx);
+
+ return res;
++out:
++ EVP_CIPHER_CTX_free(ctx);
++ OpenSSL_BUG();
++ vfree(res);
++ return NULL;
+ }
+
+ int
+@@ -1230,7 +1229,7 @@ eay_des_keylen(len)
+ return evp_keylen(len, EVP_des_cbc());
+ }
+
+-#ifdef HAVE_OPENSSL_IDEA_H
++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA)
+ /*
+ * IDEA-CBC
+ */
+@@ -1587,7 +1586,7 @@ eay_aes_keylen(len)
+ return len;
+ }
+
+-#if defined(HAVE_OPENSSL_CAMELLIA_H)
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ /*
+ * CAMELLIA-CBC
+ */
+@@ -1680,9 +1679,9 @@ eay_hmac_init(key, md)
+ vchar_t *key;
+ const EVP_MD *md;
+ {
+- HMAC_CTX *c = racoon_malloc(sizeof(*c));
++ HMAC_CTX *c = HMAC_CTX_new();
+
+- HMAC_Init(c, key->v, key->l, md);
++ HMAC_Init_ex(c, key->v, key->l, md, NULL);
+
+ return (caddr_t)c;
+ }
+@@ -1761,8 +1760,7 @@ eay_hmacsha2_512_final(c)
+
+ HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+ res->l = l;
+- HMAC_cleanup((HMAC_CTX *)c);
+- (void)racoon_free(c);
++ HMAC_CTX_free((HMAC_CTX *)c);
+
+ if (SHA512_DIGEST_LENGTH != res->l) {
+ plog(LLV_ERROR, LOCATION, NULL,
+@@ -1811,8 +1809,7 @@ eay_hmacsha2_384_final(c)
+
+ HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+ res->l = l;
+- HMAC_cleanup((HMAC_CTX *)c);
+- (void)racoon_free(c);
++ HMAC_CTX_free((HMAC_CTX *)c);
+
+ if (SHA384_DIGEST_LENGTH != res->l) {
+ plog(LLV_ERROR, LOCATION, NULL,
+@@ -1861,8 +1858,7 @@ eay_hmacsha2_256_final(c)
+
+ HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+ res->l = l;
+- HMAC_cleanup((HMAC_CTX *)c);
+- (void)racoon_free(c);
++ HMAC_CTX_free((HMAC_CTX *)c);
+
+ if (SHA256_DIGEST_LENGTH != res->l) {
+ plog(LLV_ERROR, LOCATION, NULL,
+@@ -1912,8 +1908,7 @@ eay_hmacsha1_final(c)
+
+ HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+ res->l = l;
+- HMAC_cleanup((HMAC_CTX *)c);
+- (void)racoon_free(c);
++ HMAC_CTX_free((HMAC_CTX *)c);
+
+ if (SHA_DIGEST_LENGTH != res->l) {
+ plog(LLV_ERROR, LOCATION, NULL,
+@@ -1962,8 +1957,7 @@ eay_hmacmd5_final(c)
+
+ HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+ res->l = l;
+- HMAC_cleanup((HMAC_CTX *)c);
+- (void)racoon_free(c);
++ HMAC_CTX_free((HMAC_CTX *)c);
+
+ if (MD5_DIGEST_LENGTH != res->l) {
+ plog(LLV_ERROR, LOCATION, NULL,
+@@ -2266,6 +2260,7 @@ eay_dh_generate(prime, g, publen, pub, priv)
+ u_int32_t g;
+ {
+ BIGNUM *p = NULL;
++ BIGNUM *BNg = NULL;
+ DH *dh = NULL;
+ int error = -1;
+
+@@ -2276,25 +2271,28 @@ eay_dh_generate(prime, g, publen, pub, priv)
+
+ if ((dh = DH_new()) == NULL)
+ goto end;
+- dh->p = p;
+- p = NULL; /* p is now part of dh structure */
+- dh->g = NULL;
+- if ((dh->g = BN_new()) == NULL)
++ if ((BNg = BN_new()) == NULL)
+ goto end;
+- if (!BN_set_word(dh->g, g))
++ if (!BN_set_word(BNg, g))
+ goto end;
++ if (! DH_set0_pqg(dh, p, NULL, BNg))
++ goto end;
++ BNg = NULL;
++ p = NULL; /* p is now part of dh structure */
+
+ if (publen != 0)
+- dh->length = publen;
++ DH_set_length(dh, publen);
+
+ /* generate public and private number */
+ if (!DH_generate_key(dh))
+ goto end;
+
+ /* copy results to buffers */
+- if (eay_bn2v(pub, dh->pub_key) < 0)
++ BIGNUM *pub_key, *priv_key;
++ DH_get0_key(dh, (const BIGNUM**) &pub_key, (const BIGNUM**) &priv_key);
++ if (eay_bn2v(pub, pub_key) < 0)
+ goto end;
+- if (eay_bn2v(priv, dh->priv_key) < 0) {
++ if (eay_bn2v(priv, priv_key) < 0) {
+ vfree(*pub);
+ goto end;
+ }
+@@ -2306,6 +2304,8 @@ end:
+ DH_free(dh);
+ if (p != 0)
+ BN_free(p);
++ if (BNg != 0)
++ BN_free(BNg);
+ return(error);
+ }
+
+@@ -2319,6 +2319,10 @@ eay_dh_compute(prime, g, pub, priv, pub2, key)
+ int l;
+ unsigned char *v = NULL;
+ int error = -1;
++ BIGNUM *p = BN_new();
++ BIGNUM *BNg = BN_new();
++ BIGNUM *pub_key = BN_new();
++ BIGNUM *priv_key = BN_new();
+
+ /* make public number to compute */
+ if (eay_v2bn(&dh_pub, pub2) < 0)
+@@ -2327,19 +2331,21 @@ eay_dh_compute(prime, g, pub, priv, pub2, key)
+ /* make DH structure */
+ if ((dh = DH_new()) == NULL)
+ goto end;
+- if (eay_v2bn(&dh->p, prime) < 0)
++ if (p == NULL || BNg == NULL || pub_key == NULL || priv_key == NULL)
+ goto end;
+- if (eay_v2bn(&dh->pub_key, pub) < 0)
++
++ if (eay_v2bn(&p, prime) < 0)
+ goto end;
+- if (eay_v2bn(&dh->priv_key, priv) < 0)
++ if (eay_v2bn(&pub_key, pub) < 0)
+ goto end;
+- dh->length = pub2->l * 8;
+-
+- dh->g = NULL;
+- if ((dh->g = BN_new()) == NULL)
++ if (eay_v2bn(&priv_key, priv) < 0)
+ goto end;
+- if (!BN_set_word(dh->g, g))
++ if (!BN_set_word(BNg, g))
+ goto end;
++ DH_set0_key(dh, pub_key, priv_key);
++ DH_set_length(dh, pub2->l * 8);
++ DH_set0_pqg(dh, p, NULL, BNg);
++ pub_key = priv_key = p = BNg = NULL;
+
+ if ((v = racoon_calloc(prime->l, sizeof(u_char))) == NULL)
+ goto end;
+@@ -2350,6 +2356,14 @@ eay_dh_compute(prime, g, pub, priv, pub2, key)
+ error = 0;
+
+ end:
++ if (p != NULL)
++ BN_free(p);
++ if (BNg != NULL)
++ BN_free(BNg);
++ if (pub_key != NULL)
++ BN_free(pub_key);
++ if (priv_key != NULL)
++ BN_free(priv_key);
+ if (dh_pub != NULL)
+ BN_free(dh_pub);
+ if (dh != NULL)
+@@ -2400,12 +2414,14 @@ eay_bn2v(var, bn)
+ void
+ eay_init()
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ OpenSSL_add_all_algorithms();
+ ERR_load_crypto_strings();
+ #ifdef HAVE_OPENSSL_ENGINE_H
+ ENGINE_load_builtin_engines();
+ ENGINE_register_all_complete();
+ #endif
++#endif
+ }
+
+ vchar_t *
+@@ -2504,8 +2520,7 @@ binbuf_pubkey2rsa(vchar_t *binbuf)
+ goto out;
+ }
+
+- rsa_pub->n = mod;
+- rsa_pub->e = exp;
++ RSA_set0_key(rsa_pub, mod, exp, NULL);
+
+ out:
+ return rsa_pub;
+@@ -2582,5 +2597,5 @@ eay_random()
+ const char *
+ eay_version()
+ {
+- return SSLeay_version(SSLEAY_VERSION);
++ return OpenSSL_version(OPENSSL_VERSION);
+ }
+diff --git a/src/racoon/crypto_openssl.h b/src/racoon/crypto_openssl.h
+index 66fac73..ee5b765 100644
+--- a/src/racoon/crypto_openssl.h
++++ b/src/racoon/crypto_openssl.h
+@@ -124,7 +124,7 @@ extern vchar_t *eay_aes_decrypt __P((vchar_t *, vchar_t *, vchar_t *));
+ extern int eay_aes_weakkey __P((vchar_t *));
+ extern int eay_aes_keylen __P((int));
+
+-#if defined(HAVE_OPENSSL_CAMELLIA_H)
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ /* Camellia */
+ extern vchar_t *eay_camellia_encrypt __P((vchar_t *, vchar_t *, vchar_t *));
+ extern vchar_t *eay_camellia_decrypt __P((vchar_t *, vchar_t *, vchar_t *));
+diff --git a/src/racoon/eaytest.c b/src/racoon/eaytest.c
+index d609e4f..d2d20da 100644
+--- a/src/racoon/eaytest.c
++++ b/src/racoon/eaytest.c
+@@ -62,6 +62,7 @@
+ #include "dhgroup.h"
+ #include "crypto_openssl.h"
+ #include "gnuc.h"
++#include "openssl_compat.h"
+
+ #include "package_version.h"
+
+@@ -103,7 +104,7 @@ rsa_verify_with_pubkey(src, sig, pubkey_txt)
+ printf ("PEM_read_PUBKEY(): %s\n", eay_strerror());
+ return -1;
+ }
+- error = eay_check_rsasign(src, sig, evp->pkey.rsa);
++ error = eay_check_rsasign(src, sig, EVP_PKEY_get0_RSA(evp));
+
+ return error;
+ }
+@@ -698,7 +699,7 @@ ciphertest(ac, av)
+ eay_cast_encrypt, eay_cast_decrypt) < 0)
+ return -1;
+
+-#ifdef HAVE_OPENSSL_IDEA_H
++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA)
+ if (ciphertest_1 ("IDEA",
+ &data, 8,
+ &key, key.l,
+@@ -715,7 +716,7 @@ ciphertest(ac, av)
+ eay_rc5_encrypt, eay_rc5_decrypt) < 0)
+ return -1;
+ #endif
+-#if defined(HAVE_OPENSSL_CAMELLIA_H)
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ if (ciphertest_1 ("CAMELLIA",
+ &data, 16,
+ &key, key.l,
+diff --git a/src/racoon/ipsec_doi.c b/src/racoon/ipsec_doi.c
+index 08e4325..7b1604d 100644
+--- a/src/racoon/ipsec_doi.c
++++ b/src/racoon/ipsec_doi.c
+@@ -715,7 +715,7 @@ out:
+ /* key length must not be specified on some algorithms */
+ if (keylen) {
+ if (sa->enctype == OAKLEY_ATTR_ENC_ALG_DES
+-#ifdef HAVE_OPENSSL_IDEA_H
++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA)
+ || sa->enctype == OAKLEY_ATTR_ENC_ALG_IDEA
+ #endif
+ || sa->enctype == OAKLEY_ATTR_ENC_ALG_3DES) {
+diff --git a/src/racoon/openssl_compat.c b/src/racoon/openssl_compat.c
+new file mode 100644
+index 0000000..864b5fb
+--- /dev/null
++++ b/src/racoon/openssl_compat.c
+@@ -0,0 +1,213 @@
++/*
++ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
++ *
++ * Licensed under the OpenSSL license (the "License"). You may not use
++ * this file except in compliance with the License. You can obtain a copy
++ * in the file LICENSE in the source distribution or at
++ * https://www.openssl.org/source/license.html
++ */
++
++#include "openssl_compat.h"
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <string.h>
++
++static void *OPENSSL_zalloc(size_t num)
++{
++ void *ret = OPENSSL_malloc(num);
++
++ if (ret != NULL)
++ memset(ret, 0, num);
++ return ret;
++}
++
++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
++{
++ /* If the fields n and e in r are NULL, the corresponding input
++ * parameters MUST be non-NULL for n and e. d may be
++ * left NULL (in case only the public key is used).
++ */
++ if ((r->n == NULL && n == NULL)
++ || (r->e == NULL && e == NULL))
++ return 0;
++
++ if (n != NULL) {
++ BN_free(r->n);
++ r->n = n;
++ }
++ if (e != NULL) {
++ BN_free(r->e);
++ r->e = e;
++ }
++ if (d != NULL) {
++ BN_free(r->d);
++ r->d = d;
++ }
++
++ return 1;
++}
++
++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
++{
++ /* If the fields p and q in r are NULL, the corresponding input
++ * parameters MUST be non-NULL.
++ */
++ if ((r->p == NULL && p == NULL)
++ || (r->q == NULL && q == NULL))
++ return 0;
++
++ if (p != NULL) {
++ BN_free(r->p);
++ r->p = p;
++ }
++ if (q != NULL) {
++ BN_free(r->q);
++ r->q = q;
++ }
++
++ return 1;
++}
++
++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
++{
++ /* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input
++ * parameters MUST be non-NULL.
++ */
++ if ((r->dmp1 == NULL && dmp1 == NULL)
++ || (r->dmq1 == NULL && dmq1 == NULL)
++ || (r->iqmp == NULL && iqmp == NULL))
++ return 0;
++
++ if (dmp1 != NULL) {
++ BN_free(r->dmp1);
++ r->dmp1 = dmp1;
++ }
++ if (dmq1 != NULL) {
++ BN_free(r->dmq1);
++ r->dmq1 = dmq1;
++ }
++ if (iqmp != NULL) {
++ BN_free(r->iqmp);
++ r->iqmp = iqmp;
++ }
++
++ return 1;
++}
++
++void RSA_get0_key(const RSA *r,
++ const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
++{
++ if (n != NULL)
++ *n = r->n;
++ if (e != NULL)
++ *e = r->e;
++ if (d != NULL)
++ *d = r->d;
++}
++
++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
++{
++ if (p != NULL)
++ *p = r->p;
++ if (q != NULL)
++ *q = r->q;
++}
++
++void RSA_get0_crt_params(const RSA *r,
++ const BIGNUM **dmp1, const BIGNUM **dmq1,
++ const BIGNUM **iqmp)
++{
++ if (dmp1 != NULL)
++ *dmp1 = r->dmp1;
++ if (dmq1 != NULL)
++ *dmq1 = r->dmq1;
++ if (iqmp != NULL)
++ *iqmp = r->iqmp;
++}
++
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
++{
++ /* If the fields p and g in d are NULL, the corresponding input
++ * parameters MUST be non-NULL. q may remain NULL.
++ */
++ if ((dh->p == NULL && p == NULL)
++ || (dh->g == NULL && g == NULL))
++ return 0;
++
++ if (p != NULL) {
++ BN_free(dh->p);
++ dh->p = p;
++ }
++ if (q != NULL) {
++ BN_free(dh->q);
++ dh->q = q;
++ }
++ if (g != NULL) {
++ BN_free(dh->g);
++ dh->g = g;
++ }
++
++ if (q != NULL) {
++ dh->length = BN_num_bits(q);
++ }
++
++ return 1;
++}
++
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
++{
++ if (pub_key != NULL)
++ *pub_key = dh->pub_key;
++ if (priv_key != NULL)
++ *priv_key = dh->priv_key;
++}
++
++int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
++{
++ /* If the field pub_key in dh is NULL, the corresponding input
++ * parameters MUST be non-NULL. The priv_key field may
++ * be left NULL.
++ */
++ if (dh->pub_key == NULL && pub_key == NULL)
++ return 0;
++
++ if (pub_key != NULL) {
++ BN_free(dh->pub_key);
++ dh->pub_key = pub_key;
++ }
++ if (priv_key != NULL) {
++ BN_free(dh->priv_key);
++ dh->priv_key = priv_key;
++ }
++
++ return 1;
++}
++
++int DH_set_length(DH *dh, long length)
++{
++ dh->length = length;
++ return 1;
++}
++
++HMAC_CTX *HMAC_CTX_new(void)
++{
++ return OPENSSL_zalloc(sizeof(HMAC_CTX));
++}
++
++void HMAC_CTX_free(HMAC_CTX *ctx)
++{
++ HMAC_CTX_cleanup(ctx);
++ OPENSSL_free(ctx);
++}
++
++RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
++{
++ if (pkey->type != EVP_PKEY_RSA) {
++ return NULL;
++ }
++ return pkey->pkey.rsa;
++}
++
++
++#endif /* OPENSSL_VERSION_NUMBER */
+diff --git a/src/racoon/openssl_compat.h b/src/racoon/openssl_compat.h
+new file mode 100644
+index 0000000..9e152c2
+--- /dev/null
++++ b/src/racoon/openssl_compat.h
+@@ -0,0 +1,45 @@
++#ifndef OPENSSL_COMPAT_H
++#define OPENSSL_COMPAT_H
++
++#include <openssl/opensslv.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <openssl/rsa.h>
++#include <openssl/dh.h>
++#include <openssl/evp.h>
++#include <openssl/hmac.h>
++
++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp);
++void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d);
++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q);
++void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp);
++
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key);
++int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key);
++int DH_set_length(DH *dh, long length);
++
++HMAC_CTX *HMAC_CTX_new(void);
++void HMAC_CTX_free(HMAC_CTX* ctx);
++
++RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey);
++
++#define ASN1_STRING_length(s) s->length
++#define ASN1_STRING_get0_data(s) s->data
++
++#define X509_get_subject_name(x) x->cert_info->subject
++#define X509_get_issuer_name(x) x->cert_info->issuer
++#define X509_NAME_ENTRY_get_data(n) n->value
++#define X509_NAME_ENTRY_get_object(n) n->object
++#define X509_STORE_CTX_get_current_cert(ctx) ctx->current_cert
++#define X509_STORE_CTX_get_error(ctx) ctx->error
++#define X509_STORE_CTX_get_error_depth(ctx) ctx->error_depth
++
++#define OPENSSL_VERSION SSLEAY_VERSION
++#define OpenSSL_version SSLeay_version
++
++#endif /* OPENSSL_VERSION_NUMBER */
++
++#endif /* OPENSSL_COMPAT_H */
+diff --git a/src/racoon/plainrsa-gen.c b/src/racoon/plainrsa-gen.c
+index cad1861..b949b08 100644
+--- a/src/racoon/plainrsa-gen.c
++++ b/src/racoon/plainrsa-gen.c
+@@ -60,6 +60,7 @@
+ #include "vmbuf.h"
+ #include "plog.h"
+ #include "crypto_openssl.h"
++#include "openssl_compat.h"
+
+ #include "package_version.h"
+
+@@ -90,12 +91,14 @@ mix_b64_pubkey(const RSA *key)
+ char *binbuf;
+ long binlen, ret;
+ vchar_t *res;
+-
+- binlen = 1 + BN_num_bytes(key->e) + BN_num_bytes(key->n);
++ const BIGNUM *e, *n;
++
++ RSA_get0_key(key, &n, &e, NULL);
++ binlen = 1 + BN_num_bytes(e) + BN_num_bytes(n);
+ binbuf = malloc(binlen);
+ memset(binbuf, 0, binlen);
+- binbuf[0] = BN_bn2bin(key->e, (unsigned char *) &binbuf[1]);
+- ret = BN_bn2bin(key->n, (unsigned char *) (&binbuf[binbuf[0] + 1]));
++ binbuf[0] = BN_bn2bin(e, (unsigned char *) &binbuf[1]);
++ ret = BN_bn2bin(n, (unsigned char *) (&binbuf[binbuf[0] + 1]));
+ if (1 + binbuf[0] + ret != binlen) {
+ plog(LLV_ERROR, LOCATION, NULL,
+ "Pubkey generation failed. This is really strange...\n");
+@@ -131,16 +134,20 @@ print_rsa_key(FILE *fp, const RSA *key)
+
+ fprintf(fp, "# : PUB 0s%s\n", pubkey64->v);
+ fprintf(fp, ": RSA\t{\n");
+- fprintf(fp, "\t# RSA %d bits\n", BN_num_bits(key->n));
++ const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp;
++ RSA_get0_key(key, &n, &e, &d);
++ RSA_get0_factors(key, &p, &q);
++ RSA_get0_crt_params(key, &dmp1, &dmq1, &iqmp);
++ fprintf(fp, "\t# RSA %d bits\n", BN_num_bits(n));
+ fprintf(fp, "\t# pubkey=0s%s\n", pubkey64->v);
+- fprintf(fp, "\tModulus: 0x%s\n", lowercase(BN_bn2hex(key->n)));
+- fprintf(fp, "\tPublicExponent: 0x%s\n", lowercase(BN_bn2hex(key->e)));
+- fprintf(fp, "\tPrivateExponent: 0x%s\n", lowercase(BN_bn2hex(key->d)));
+- fprintf(fp, "\tPrime1: 0x%s\n", lowercase(BN_bn2hex(key->p)));
+- fprintf(fp, "\tPrime2: 0x%s\n", lowercase(BN_bn2hex(key->q)));
+- fprintf(fp, "\tExponent1: 0x%s\n", lowercase(BN_bn2hex(key->dmp1)));
+- fprintf(fp, "\tExponent2: 0x%s\n", lowercase(BN_bn2hex(key->dmq1)));
+- fprintf(fp, "\tCoefficient: 0x%s\n", lowercase(BN_bn2hex(key->iqmp)));
++ fprintf(fp, "\tModulus: 0x%s\n", lowercase(BN_bn2hex(n)));
++ fprintf(fp, "\tPublicExponent: 0x%s\n", lowercase(BN_bn2hex(e)));
++ fprintf(fp, "\tPrivateExponent: 0x%s\n", lowercase(BN_bn2hex(d)));
++ fprintf(fp, "\tPrime1: 0x%s\n", lowercase(BN_bn2hex(p)));
++ fprintf(fp, "\tPrime2: 0x%s\n", lowercase(BN_bn2hex(q)));
++ fprintf(fp, "\tExponent1: 0x%s\n", lowercase(BN_bn2hex(dmp1)));
++ fprintf(fp, "\tExponent2: 0x%s\n", lowercase(BN_bn2hex(dmq1)));
++ fprintf(fp, "\tCoefficient: 0x%s\n", lowercase(BN_bn2hex(iqmp)));
+ fprintf(fp, " }\n");
+
+ vfree(pubkey64);
+@@ -203,11 +210,13 @@ int
+ gen_rsa_key(FILE *fp, size_t bits, unsigned long exp)
+ {
+ int ret;
+- RSA *key;
++ RSA *key = RSA_new();
++ BIGNUM *e = BN_new();
+
+- key = RSA_generate_key(bits, exp, NULL, NULL);
+- if (!key) {
++ BN_set_word(e, exp);
++ if (! RSA_generate_key_ex(key, bits, e, NULL)) {
+ fprintf(stderr, "RSA_generate_key(): %s\n", eay_strerror());
++ RSA_free(key);
+ return -1;
+ }
+
+diff --git a/src/racoon/prsa_par.y b/src/racoon/prsa_par.y
+index 1987e4d..27ce4c6 100644
+--- a/src/racoon/prsa_par.y
++++ b/src/racoon/prsa_par.y
+@@ -68,6 +68,7 @@
+ #include "isakmp_var.h"
+ #include "handler.h"
+ #include "crypto_openssl.h"
++#include "openssl_compat.h"
+ #include "sockmisc.h"
+ #include "rsalist.h"
+
+@@ -85,7 +86,18 @@ char *prsa_cur_fname = NULL;
+ struct genlist *prsa_cur_list = NULL;
+ enum rsa_key_type prsa_cur_type = RSA_TYPE_ANY;
+
+-static RSA *rsa_cur;
++struct my_rsa_st {
++ BIGNUM *n;
++ BIGNUM *e;
++ BIGNUM *d;
++ BIGNUM *p;
++ BIGNUM *q;
++ BIGNUM *dmp1;
++ BIGNUM *dmq1;
++ BIGNUM *iqmp;
++};
++
++static struct my_rsa_st *rsa_cur;
+
+ void
+ prsaerror(const char *s, ...)
+@@ -201,8 +213,12 @@ rsa_statement:
+ rsa_cur->iqmp = NULL;
+ }
+ }
+- $$ = rsa_cur;
+- rsa_cur = RSA_new();
++ RSA * rsa_tmp = RSA_new();
++ RSA_set0_key(rsa_tmp, rsa_cur->n, rsa_cur->e, rsa_cur->d);
++ RSA_set0_factors(rsa_tmp, rsa_cur->p, rsa_cur->q);
++ RSA_set0_crt_params(rsa_tmp, rsa_cur->dmp1, rsa_cur->dmq1, rsa_cur->iqmp);
++ $$ = rsa_tmp;
++ memset(rsa_cur, 0, sizeof(struct my_rsa_st));
+ }
+ | TAG_PUB BASE64
+ {
+@@ -351,10 +367,12 @@ prsa_parse_file(struct genlist *list, char *fname, enum rsa_key_type type)
+ prsa_cur_fname = fname;
+ prsa_cur_list = list;
+ prsa_cur_type = type;
+- rsa_cur = RSA_new();
++ rsa_cur = malloc(sizeof(struct my_rsa_st));
++ memset(rsa_cur, 0, sizeof(struct my_rsa_st));
+ ret = prsaparse();
+ if (rsa_cur) {
+- RSA_free(rsa_cur);
++ memset(rsa_cur, 0, sizeof(struct my_rsa_st));
++ free(rsa_cur);
+ rsa_cur = NULL;
+ }
+ fclose (fp);
+diff --git a/src/racoon/rsalist.c b/src/racoon/rsalist.c
+index f152c82..96e8363 100644
+--- a/src/racoon/rsalist.c
++++ b/src/racoon/rsalist.c
+@@ -52,6 +52,7 @@
+ #include "genlist.h"
+ #include "remoteconf.h"
+ #include "crypto_openssl.h"
++#include "openssl_compat.h"
+
+ #ifndef LIST_FIRST
+ #define LIST_FIRST(head) ((head)->lh_first)
+@@ -98,7 +99,9 @@ rsa_key_dup(struct rsa_key *key)
+ return NULL;
+
+ if (key->rsa) {
+- new->rsa = key->rsa->d != NULL ? RSAPrivateKey_dup(key->rsa) : RSAPublicKey_dup(key->rsa);
++ const BIGNUM *d;
++ RSA_get0_key(key->rsa, NULL, NULL, &d);
++ new->rsa = (d != NULL ? RSAPrivateKey_dup(key->rsa) : RSAPublicKey_dup(key->rsa));
+ if (new->rsa == NULL)
+ goto dup_error;
+ }
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb
index 5cbeb15..a6d473b 100644
--- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb
@@ -25,6 +25,8 @@
file://0001-Fix-header-issues-found-with-musl-libc.patch \
file://0002-cfparse-clear-memory-equal-to-size-of-array.patch \
file://fix-CVE-2016-10396.patch \
+ file://0001-Disable-gcc8-specific-warnings.patch \
+ file://0001-ipsec-tools-add-openssl-1.1-support.patch \
"
SRC_URI[md5sum] = "d53ec14a0a3ece64e09e5e34b3350b41"
SRC_URI[sha256sum] = "8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d"
diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
index 7c3dfe4..d7b0267 100644
--- a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
+++ b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
@@ -1,18 +1,22 @@
-From 58292175115bae7a4c3600d3022e59ea57213025 Mon Sep 17 00:00:00 2001
-From: Jianchuan Wang <jianchuan.wang@windriver.com>
-Date: Mon, 12 Jan 2015 15:53:23 +0800
+From 801224257015788d3aff026bf2ae1cd8531d4fcc Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 25 Jul 2018 13:12:04 +0800
Subject: [PATCH] Modify the Makefile for cross compile.
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
+
+update to version 1.29
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- Makefile | 23 ++++++-----------------
+ Makefile | 9 ++++-----
libipvs/Makefile | 3 +--
- 2 files changed, 7 insertions(+), 19 deletions(-)
+ 2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
-index e4e03cc..461c021 100644
+index 91a2991..906086d 100644
--- a/Makefile
+++ b/Makefile
@@ -35,10 +35,9 @@ ARCH = $(shell uname -m)
@@ -23,57 +27,29 @@
INCLUDE =
SBIN = $(BUILD_ROOT)/sbin
-MANDIR = usr/man
-+MANDIR = usr/share/man
++MANDIR = usr/share/man
MAN = $(BUILD_ROOT)/$(MANDIR)/man8
INIT = $(BUILD_ROOT)/etc/rc.d/init.d
MKDIR = mkdir
-@@ -62,17 +61,7 @@ RPMBUILD = $(shell \
- echo "/bin/rpm"; \
- fi )
-
--ifeq (,$(FORCE_GETOPT))
--LIB_SEARCH = /lib64 /usr/lib64 /usr/local/lib64 /lib /usr/lib /usr/local/lib
--POPT_LIB = $(shell for i in $(LIB_SEARCH); do \
-- if [ -f $$i/libpopt.a ]; then \
-- if nm $$i/libpopt.a | fgrep -q poptGetContext; then \
-- echo "-lpopt"; \
-- break; \
-- fi; \
-- fi; \
--done)
--endif
-+POPT_LIB = -lpopt
-
- ifneq (,$(POPT_LIB))
- POPT_DEFINE = -DHAVE_POPT
-@@ -81,7 +70,7 @@ endif
- OBJS = ipvsadm.o config_stream.o dynamic_array.o
- LIBS = $(POPT_LIB)
- ifneq (0,$(HAVE_NL))
--LIBS += -lnl
-+LIBS += -lnl-3 -lnl-genl-3
- endif
- DEFINES = -DVERSION=\"$(VERSION)\" -DSCHEDULERS=\"$(SCHEDULERS)\" \
- -DPE_LIST=\"$(PE_LIST)\" $(POPT_DEFINE)
-@@ -91,13 +80,13 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \
+@@ -81,13 +80,13 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \
.PHONY = all clean install dist distclean rpm rpms
-all: libs ipvsadm
-+all: ipvsadm
++all: ipvsadm
libs:
make -C libipvs
-ipvsadm: $(OBJS) $(STATIC_LIBS)
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
-+ipvsadm: $(OBJS) libs
++ipvsadm: $(OBJS) libs
+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS)
install: all
if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
diff --git a/libipvs/Makefile b/libipvs/Makefile
-index a527a7f..b7300ec 100644
+index f845c8b..dafab30 100644
--- a/libipvs/Makefile
+++ b/libipvs/Makefile
@@ -1,6 +1,5 @@
@@ -83,7 +59,7 @@
CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
ifneq (0,$(HAVE_NL))
CFLAGS += -DLIBIPVS_USE_NL
-@@ -18,7 +17,7 @@ SHARED_LIB = libipvs.so
+@@ -30,7 +29,7 @@ SHARED_LIB = libipvs.so
all: $(STATIC_LIB) $(SHARED_LIB)
$(STATIC_LIB): libipvs.o ip_vs_nl_policy.o
@@ -93,5 +69,5 @@
$(SHARED_LIB): libipvs.o ip_vs_nl_policy.o
$(CC) -shared -Wl,-soname,$@ -o $@ $^
--
-1.9.1
+2.7.4
diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch
deleted file mode 100644
index 7896d6d..0000000
--- a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 2686213259b15df9cf1d969c5a14d62f14cfbaae Mon Sep 17 00:00:00 2001
-From: Jianchuan Wang <jianchuan.wang@windriver.com>
-Date: Thu, 8 Jan 2015 17:37:11 +0800
-Subject: [PATCH 2/2] Replace nl_handle to nl_sock.
-
-The nl_handle was replace with nl_sock in the libnl-3.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
----
- libipvs/libipvs.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/libipvs/libipvs.c b/libipvs/libipvs.c
-index a157e18..21a9bfa 100644
---- a/libipvs/libipvs.c
-+++ b/libipvs/libipvs.c
-@@ -32,7 +32,7 @@ static void* ipvs_func = NULL;
- struct ip_vs_getinfo ipvs_info;
-
- #ifdef LIBIPVS_USE_NL
--static struct nl_handle *sock = NULL;
-+static struct nl_sock *sock = NULL;
- static int family, try_nl = 1;
- #endif
-
-@@ -73,7 +73,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
- {
- int err = EINVAL;
-
-- sock = nl_handle_alloc();
-+ sock = nl_socket_alloc();
- if (!sock) {
- nlmsg_free(msg);
- return -1;
-@@ -88,7 +88,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
-
- /* To test connections and set the family */
- if (msg == NULL) {
-- nl_handle_destroy(sock);
-+ nl_socket_free(sock);
- sock = NULL;
- return 0;
- }
-@@ -104,12 +104,12 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
-
- nlmsg_free(msg);
-
-- nl_handle_destroy(sock);
-+ nl_socket_free(sock);
-
- return 0;
-
- fail_genl:
-- nl_handle_destroy(sock);
-+ nl_socket_free(sock);
- sock = NULL;
- nlmsg_free(msg);
- errno = err;
---
-1.8.3.1
-
diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch
index 1bf1eed..a2c5235 100644
--- a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch
+++ b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch
@@ -1,19 +1,33 @@
-Add LDFLAGS variable to Makefile, make sure the extra linker flags can be passed.
+From 8aff1e965ec17262f3a5b376f7eb3e053d81905c Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 18:18:05 +0800
+Subject: [PATCH] Add LDFLAGS variable to Makefile, make sure the extra linker
+ flags can be passed.
Upstream-Status: Pending
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+Update to version 1.29
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
diff --git a/Makefile b/Makefile
-index 461c021..8bc9cde 100644
+index f29bbae..81beb5a 100644
--- a/Makefile
+++ b/Makefile
@@ -86,7 +86,7 @@ libs:
make -C libipvs
- ipvsadm: $(OBJS) libs
+ ipvsadm: $(OBJS) libs
- $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS)
install: all
if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
deleted file mode 100644
index b35a9f4..0000000
--- a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Linux Virtual Server administration Utility"
-HOMEPAGE = "http://www.linux-vs.org/software/index.html"
-DESCRIPTION = "Ipvsadm is used to set up, maintain or inspect the virtual server \
-table in the Linux kernel. The Linux Virtual Server can be used to \
-build scalable network services based on a cluster of two or more nodes. \
-The active node of the cluster redirects service requests to a \
-collection of server hosts that will actually perform the services. \
-Supported features include two protocols (TCP and UDP), three packet-forwarding \
-methods (NAT, tunneling, and direct routing), and eight load balancing algorithms \
-(round robin, weighted round robin, least-connec-tion, weighted least-connection, \
-locality-based least-connection, locality-based least-connection with replication, \
-destination-hashing, and source-hashing)."
-SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://README;beginline=40;endline=56;md5=a54cba37b64924aa5008881607942892"
-
-DEPENDS += "libnl popt"
-
-SRC_URI = "http://www.linuxvirtualserver.org/software/kernel-2.6/${BP}.tar.gz \
- file://0001-Modify-the-Makefile-for-cross-compile.patch \
- file://0002-Replace-nl_handle-to-nl_sock.patch \
- file://0003-ipvsadm-remove-dependency-on-bash.patch \
- file://makefile-add-ldflags.patch \
-"
-
-SRC_URI[md5sum] = "eac3ba3f62cd4dea2da353aeddd353a8"
-SRC_URI[sha256sum] = "6d6c46fecb1c532a892616b4445c73b71730e8790d5630f60269fd9cbee0eb2d"
-
-do_compile() {
- oe_runmake \
- CC="${CC} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/libnl3 -L${STAGING_LIBDIR}" \
- all
-}
-
-do_install() {
- oe_runmake 'BUILD_ROOT=${D}' install
-}
diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.29.bb b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.29.bb
new file mode 100644
index 0000000..4f3c16d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.29.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Linux Virtual Server administration Utility"
+HOMEPAGE = "http://www.linux-vs.org/software/index.html"
+DESCRIPTION = "Ipvsadm is used to set up, maintain or inspect the virtual server \
+table in the Linux kernel. The Linux Virtual Server can be used to \
+build scalable network services based on a cluster of two or more nodes. \
+The active node of the cluster redirects service requests to a \
+collection of server hosts that will actually perform the services. \
+Supported features include two protocols (TCP and UDP), three packet-forwarding \
+methods (NAT, tunneling, and direct routing), and eight load balancing algorithms \
+(round robin, weighted round robin, least-connec-tion, weighted least-connection, \
+locality-based least-connection, locality-based least-connection with replication, \
+destination-hashing, and source-hashing)."
+SECTION = "net"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://README;beginline=40;endline=56;md5=b4e40069f15598d0e3fe2aa177e5ec77"
+
+DEPENDS += "libnl popt"
+
+SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/utils/kernel/ipvsadm/${BP}.tar.gz \
+ file://0001-Modify-the-Makefile-for-cross-compile.patch \
+ file://0003-ipvsadm-remove-dependency-on-bash.patch \
+ file://makefile-add-ldflags.patch \
+"
+
+SRC_URI[md5sum] = "88b35030b4766b3e44ad15aacdef65c4"
+SRC_URI[sha256sum] = "297f5cd459c3eef81ed0ca32e53bf320ed6b132fe7ed6ea5e44aa6b1fbd2a7de"
+
+UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/ipvsadm"
+
+do_compile() {
+ oe_runmake \
+ CC="${CC} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/libnl3 -L${STAGING_LIBDIR}" \
+ all
+}
+
+do_install() {
+ sed -i -e "s;SBIN\t\t= \$(BUILD_ROOT)/sbin;SBIN\t\t= \$(BUILD_ROOT)/$base_sbindir;" ${S}/Makefile
+ oe_runmake 'BUILD_ROOT=${D}' install
+}
+
+inherit pkgconfig
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch
new file mode 100644
index 0000000..5818d57
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch
@@ -0,0 +1,87 @@
+From bc4ff7e37ce120c257e52a81fe3475499dfd2573 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 10:10:24 +0800
+Subject: [PATCH] libldb: fix config error
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ wscript | 58 +++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 29 insertions(+), 29 deletions(-)
+
+diff --git a/wscript b/wscript
+index b0af7b6..8ad9f96 100644
+--- a/wscript
++++ b/wscript
+@@ -115,40 +115,40 @@ def configure(conf):
+ onlyif='talloc tdb tevent pyldb-util',
+ implied_deps='replace talloc tdb tevent'):
+ conf.define('USING_SYSTEM_LDB', 1)
++ if not Options.options.without_ldb_lmdb:
++ if not conf.CHECK_CODE('return !(sizeof(size_t) >= 8)',
++ "HAVE_64_BIT_SIZE_T_FOR_LMDB",
++ execute=True,
++ msg='Checking for a 64-bit host to '
++ 'support lmdb'):
++ Logs.warn("--without-ldb-lmdb implied as this "
++ "host is not 64-bit")
++
++ if not conf.env.standalone_ldb and \
++ not Options.options.without_ad_dc and \
++ conf.CONFIG_GET('ENABLE_SELFTEST'):
++ Logs.warn("NOTE: Some AD DC parts of selftest will fail")
+
+- if not conf.CHECK_CODE('return !(sizeof(size_t) >= 8)',
+- "HAVE_64_BIT_SIZE_T_FOR_LMDB",
+- execute=True,
+- msg='Checking for a 64-bit host to '
+- 'support lmdb'):
+- Logs.warn("--without-ldb-lmdb implied as this "
+- "host is not 64-bit")
+-
+- if not conf.env.standalone_ldb and \
+- not Options.options.without_ad_dc and \
+- conf.CONFIG_GET('ENABLE_SELFTEST'):
+- Logs.warn("NOTE: Some AD DC parts of selftest will fail")
+-
+- conf.env.REQUIRE_LMDB = False
+- else:
+- if conf.env.standalone_ldb:
+- if Options.options.without_ldb_lmdb:
+- conf.env.REQUIRE_LMDB = False
+- else:
+- conf.env.REQUIRE_LMDB = True
+- elif Options.options.without_ad_dc:
+ conf.env.REQUIRE_LMDB = False
+ else:
+- if Options.options.without_ldb_lmdb:
+- if not Options.options.without_ad_dc and \
+- conf.CONFIG_GET('ENABLE_SELFTEST'):
+- raise Utils.WafError('--without-ldb-lmdb conflicts '
+- 'with --enable-selftest while '
+- 'building the AD DC')
+-
++ if conf.env.standalone_ldb:
++ if Options.options.without_ldb_lmdb:
++ conf.env.REQUIRE_LMDB = False
++ else:
++ conf.env.REQUIRE_LMDB = True
++ elif Options.options.without_ad_dc:
+ conf.env.REQUIRE_LMDB = False
+ else:
+- conf.env.REQUIRE_LMDB = True
++ if Options.options.without_ldb_lmdb:
++ if not Options.options.without_ad_dc and \
++ conf.CONFIG_GET('ENABLE_SELFTEST'):
++ raise Utils.WafError('--without-ldb-lmdb conflicts '
++ 'with --enable-selftest while '
++ 'building the AD DC')
++
++ conf.env.REQUIRE_LMDB = False
++ else:
++ conf.env.REQUIRE_LMDB = True
+
+
+ if conf.CONFIG_SET('USING_SYSTEM_LDB'):
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch
index 8ab094f..b30afee 100644
--- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch
@@ -1,6 +1,16 @@
---- a/wscript 2015-11-18 12:43:33.000000000 +0100
-+++ b/wscript 2015-11-18 12:46:25.000000000 +0100
-@@ -58,9 +58,7 @@
+From 63570b98ef63c91d8508478fcbe6b89c90c8398f Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <rehsack@gmail.com>
+Date: Thu, 19 Nov 2015 20:45:56 +0100
+
+---
+ wscript | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/wscript b/wscript
+index e7c05d2..1633593 100644
+--- a/wscript
++++ b/wscript
+@@ -161,9 +161,7 @@ def configure(conf):
if conf.env.standalone_ldb:
conf.CHECK_XSLTPROC_MANPAGES()
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch
old mode 100755
new mode 100644
index fdd312c..ee4936a
--- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch
@@ -1,12 +1,21 @@
+From f4cda3a71311e4496b725bc5f46af93413ec7a1c Mon Sep 17 00:00:00 2001
+From: Bian Naimeng <biannm@cn.fujitsu.com>
+Date: Fri, 17 Jul 2015 11:58:49 +0800
+Subject: [PATCH] libldb: add new recipe
+
Some modules such as dynamic library maybe cann't be imported while cross compile,
we just check whether does the module exist.
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-Index: ldb-1.1.26/buildtools/wafsamba/samba_bundled.py
-===================================================================
---- ldb-1.1.26.orig/buildtools/wafsamba/samba_bundled.py
-+++ ldb-1.1.26/buildtools/wafsamba/samba_bundled.py
+---
+ buildtools/wafsamba/samba_bundled.py | 32 ++++++++++++++++++++++++--------
+ 1 file changed, 24 insertions(+), 8 deletions(-)
+
+diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
+index 253d604..398cc6a 100644
+--- a/buildtools/wafsamba/samba_bundled.py
++++ b/buildtools/wafsamba/samba_bundled.py
@@ -2,6 +2,7 @@
import sys
@@ -15,7 +24,7 @@
from Configure import conf
from samba_utils import TO_LIST
-@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li
+@@ -249,17 +250,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
# versions
minversion = minimum_library_version(conf, libname, minversion)
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch
new file mode 100644
index 0000000..444fa3f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch
@@ -0,0 +1,45 @@
+From 5bd7b5d04435bd593349825973ce32290f5f604d Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 25 Jul 2018 09:55:25 +0800
+Subject: [PATCH] libldb: fix musl libc conflicting types error
+
+/third_party/cmocka/cmocka.h:126:28: error: conflicting types for 'uintptr_t'
+ typedef unsigned int uintptr_t;
+ ^~~~~~~~~
+use __DEFINED_uintptr_t in alltypes.h to check if uintptr already defined
+
+Upstream-Status: Pending
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ third_party/cmocka/cmocka.h | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/third_party/cmocka/cmocka.h b/third_party/cmocka/cmocka.h
+index 4fd82a9..5443a08 100644
+--- a/third_party/cmocka/cmocka.h
++++ b/third_party/cmocka/cmocka.h
+@@ -110,7 +110,7 @@ typedef uintmax_t LargestIntegralType;
+ ((LargestIntegralType)(value))
+
+ /* Smallest integral type capable of holding a pointer. */
+-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
++#if !defined(__DEFINED_uintptr_t)
+ # if defined(_WIN32)
+ /* WIN32 is an ILP32 platform */
+ typedef unsigned int uintptr_t;
+@@ -134,9 +134,8 @@ typedef uintmax_t LargestIntegralType;
+ # endif /* __WORDSIZE */
+ # endif /* _WIN32 */
+
+-# define _UINTPTR_T
+-# define _UINTPTR_T_DEFINED
+-#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
++# define __DEFINED_uintptr_t
++#endif /* !defined(__DEFINED_uintptr_t)
+
+ /* Perform an unsigned cast to uintptr_t. */
+ #define cast_to_pointer_integral_type(value) \
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-unkown-type-error.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-unkown-type-error.patch
new file mode 100644
index 0000000..c0e7e89
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-unkown-type-error.patch
@@ -0,0 +1,31 @@
+From d90534469c5c43bf2a97e5698a5ddb4b7471f92a Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 10:53:16 +0800
+Subject: [PATCH] libldb: fix musl libc unkoown type error
+
+tevent.h:1440:8: error: unknown type name 'pid_t'; did you mean 'div_t'?
+ pid_t *pid,
+ ^~~~~
+ div_t
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/tevent/tevent.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h
+index aa6fe0d..2572696 100644
+--- a/lib/tevent/tevent.h
++++ b/lib/tevent/tevent.h
+@@ -32,6 +32,8 @@
+ #include <talloc.h>
+ #include <sys/time.h>
+ #include <stdbool.h>
++#include <sys/stat.h>
++#include <sys/types.h>
+
+ struct tevent_context;
+ struct tevent_ops;
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch
deleted file mode 100644
index ffe253b..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From a4da3ab4d76013aaa731d43d52ccca1ebd37c395 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Wed, 21 Sep 2016 10:06:39 +0800
-Subject: [PATCH 1/1] ldb: Add configure options for packages
-
-Add configure options for the following packages:
- - acl
- - attr
- - libaio
- - libbsd
- - libcap
- - valgrind
-
-Upstream-Status: Inappropriate [oe deterministic build specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- lib/replace/system/wscript_configure | 6 ++-
- lib/replace/wscript | 94 +++++++++++++++++++++++++++---------
- wscript | 7 +++
- 3 files changed, 83 insertions(+), 24 deletions(-)
-
-diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure
-index 2035474..10f9ae7 100644
---- a/lib/replace/system/wscript_configure
-+++ b/lib/replace/system/wscript_configure
-@@ -1,6 +1,10 @@
- #!/usr/bin/env python
-
--conf.CHECK_HEADERS('sys/capability.h')
-+import Options
-+
-+if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
-
- # solaris varients of getXXent_r
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 2f94d49..68b2d3a 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -23,6 +23,41 @@ def set_options(opt):
- opt.PRIVATE_EXTENSION_DEFAULT('')
- opt.RECURSE('buildtools/wafsamba')
-
-+ opt.add_option('--with-acl',
-+ help=("Enable use of acl"),
-+ action="store_true", dest='enable_acl')
-+ opt.add_option('--without-acl',
-+ help=("Disable use of acl"),
-+ action="store_false", dest='enable_acl', default=False)
-+
-+ opt.add_option('--with-attr',
-+ help=("Enable use of attr"),
-+ action="store_true", dest='enable_attr')
-+ opt.add_option('--without-attr',
-+ help=("Disable use of attr"),
-+ action="store_false", dest='enable_attr', default=False)
-+
-+ opt.add_option('--with-libaio',
-+ help=("Enable use of libaio"),
-+ action="store_true", dest='enable_libaio')
-+ opt.add_option('--without-libaio',
-+ help=("Disable use of libaio"),
-+ action="store_false", dest='enable_libaio', default=False)
-+
-+ opt.add_option('--with-libbsd',
-+ help=("Enable use of libbsd"),
-+ action="store_true", dest='enable_libbsd')
-+ opt.add_option('--without-libbsd',
-+ help=("Disable use of libbsd"),
-+ action="store_false", dest='enable_libbsd', default=False)
-+
-+ opt.add_option('--with-libcap',
-+ help=("Enable use of libcap"),
-+ action="store_true", dest='enable_libcap')
-+ opt.add_option('--without-libcap',
-+ help=("Disable use of libcap"),
-+ action="store_false", dest='enable_libcap', default=False)
-+
- @Utils.run_once
- def configure(conf):
- conf.RECURSE('buildtools/wafsamba')
-@@ -32,12 +67,25 @@ def configure(conf):
- conf.DEFINE('HAVE_LIBREPLACE', 1)
- conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
-
-- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
-- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
-+ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
-+ conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
- conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
-- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
-- conf.CHECK_HEADERS('shadow.h sys/acl.h')
-- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
-+ conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
-+ conf.CHECK_HEADERS('shadow.h')
-+ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
-+
-+ if Options.options.enable_acl:
-+ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
-+
-+ if Options.options.enable_attr:
-+ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
-+
-+ if Options.options.enable_libaio:
-+ conf.CHECK_HEADERS('libaio.h')
-+
-+ if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_HEADERS('port.h')
- conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
- conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
-@@ -73,7 +121,9 @@ def configure(conf):
-
- conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H')
-
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+
- conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
- conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
- conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
-@@ -266,22 +316,20 @@ def configure(conf):
-
- conf.CHECK_FUNCS('prctl dirname basename')
-
-- strlcpy_in_bsd = False
--
-- # libbsd on some platforms provides strlcpy and strlcat
-- if not conf.CHECK_FUNCS('strlcpy strlcat'):
-- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-- checklibc=True):
-- strlcpy_in_bsd = True
-- if not conf.CHECK_FUNCS('getpeereid'):
-- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS('setproctitle_init'):
-- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
--
-- if not conf.CHECK_FUNCS('closefrom'):
-- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+ if Options.options.enable_libbsd:
-+ # libbsd on some platforms provides strlcpy and strlcat
-+ if not conf.CHECK_FUNCS('strlcpy strlcat'):
-+ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-+ checklibc=True)
-+ if not conf.CHECK_FUNCS('getpeereid'):
-+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS('setproctitle_init'):
-+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
-+
-+ if not conf.CHECK_FUNCS('closefrom'):
-+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-
- conf.CHECK_CODE('''
- struct ucred cred;
-@@ -632,7 +680,7 @@ removeea setea
- # look for a method of finding the list of network interfaces
- for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
- bsd_for_strlcpy = ''
-- if strlcpy_in_bsd:
-+ if Options.options.enable_libbsd:
- bsd_for_strlcpy = ' bsd'
- if conf.CHECK_CODE('''
- #define %s 1
-diff --git a/wscript b/wscript
-index 8ae5be3..a178cc4 100644
---- a/wscript
-+++ b/wscript
-@@ -31,6 +31,13 @@ def set_options(opt):
- opt.RECURSE('lib/replace')
- opt.tool_options('python') # options for disabling pyc or pyo compilation
-
-+ opt.add_option('--with-valgrind',
-+ help=("enable use of valgrind"),
-+ action="store_true", dest='enable_valgrind')
-+ opt.add_option('--without-valgrind',
-+ help=("disable use of valgrind"),
-+ action="store_false", dest='enable_valgrind', default=False)
-+
- def configure(conf):
- conf.RECURSE('lib/tdb')
- conf.RECURSE('lib/tevent')
---
-2.16.2
-
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch
new file mode 100644
index 0000000..357afbe
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch
@@ -0,0 +1,184 @@
+From ffffd29bc6303d60b3d77048fbbf6776f6fbbe01 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 19 Jul 2018 16:40:31 +0800
+Subject: [PATCH] ldb: Add configure options for packages
+
+Add configure options for the following packages:
+ - acl
+ - attr
+ - libaio
+ - libbsd
+ - libcap
+ - valgrind
+
+Upstream-Status: Inappropriate [oe deterministic build specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+Update to version 1.4.1, and fix one configure error
+
+Cross answers file cross-answers-i586.txt is incomplete with
+"Checking for a 64-bit host to support lmdb: UNKNOWN"
+
+we don't support lmdb, so only check when lmdb is support
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/replace/wscript | 94 ++++++++++++++++++++++++++++++++++++++++-------------
+ wscript | 6 ++++
+ 2 files changed, 77 insertions(+), 23 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index fd00a42..434192e 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -23,6 +23,41 @@ def set_options(opt):
+ opt.PRIVATE_EXTENSION_DEFAULT('')
+ opt.RECURSE('buildtools/wafsamba')
+
++ opt.add_option('--with-acl',
++ help=("Enable use of acl"),
++ action="store_true", dest='enable_acl')
++ opt.add_option('--without-acl',
++ help=("Disable use of acl"),
++ action="store_false", dest='enable_acl', default=False)
++
++ opt.add_option('--with-attr',
++ help=("Enable use of attr"),
++ action="store_true", dest='enable_attr')
++ opt.add_option('--without-attr',
++ help=("Disable use of attr"),
++ action="store_false", dest='enable_attr', default=False)
++
++ opt.add_option('--with-libaio',
++ help=("Enable use of libaio"),
++ action="store_true", dest='enable_libaio')
++ opt.add_option('--without-libaio',
++ help=("Disable use of libaio"),
++ action="store_false", dest='enable_libaio', default=False)
++
++ opt.add_option('--with-libbsd',
++ help=("Enable use of libbsd"),
++ action="store_true", dest='enable_libbsd')
++ opt.add_option('--without-libbsd',
++ help=("Disable use of libbsd"),
++ action="store_false", dest='enable_libbsd', default=False)
++
++ opt.add_option('--with-libcap',
++ help=("Enable use of libcap"),
++ action="store_true", dest='enable_libcap')
++ opt.add_option('--without-libcap',
++ help=("Disable use of libcap"),
++ action="store_false", dest='enable_libcap', default=False)
++
+ @Utils.run_once
+ def configure(conf):
+ conf.RECURSE('buildtools/wafsamba')
+@@ -32,12 +67,25 @@ def configure(conf):
+ conf.DEFINE('HAVE_LIBREPLACE', 1)
+ conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
+
+- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
+- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
++ conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
+ conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
+- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
+- conf.CHECK_HEADERS('shadow.h sys/acl.h')
+- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
++ conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
++ conf.CHECK_HEADERS('shadow.h')
++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
++
++ if Options.options.enable_acl:
++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
++
++ if Options.options.enable_attr:
++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
++
++ if Options.options.enable_libaio:
++ conf.CHECK_HEADERS('libaio.h')
++
++ if Options.options.enable_libcap:
++ conf.CHECK_HEADERS('sys/capability.h')
++
+ conf.CHECK_HEADERS('port.h')
+ conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
+ conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
+@@ -108,7 +156,9 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
+ conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
+
+- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
++ if Options.options.enable_valgrind:
++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
++
+ conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
+ conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
+ conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
+@@ -340,22 +390,20 @@ def configure(conf):
+
+ conf.CHECK_FUNCS('prctl dirname basename')
+
+- strlcpy_in_bsd = False
+-
+- # libbsd on some platforms provides strlcpy and strlcat
+- if not conf.CHECK_FUNCS('strlcpy strlcat'):
+- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+- checklibc=True):
+- strlcpy_in_bsd = True
+- if not conf.CHECK_FUNCS('getpeereid'):
+- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
+- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS('setproctitle_init'):
+- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
+-
+- if not conf.CHECK_FUNCS('closefrom'):
+- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++ if Options.options.enable_libbsd:
++ # libbsd on some platforms provides strlcpy and strlcat
++ if not conf.CHECK_FUNCS('strlcpy strlcat'):
++ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
++ checklibc=True)
++ if not conf.CHECK_FUNCS('getpeereid'):
++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS('setproctitle_init'):
++ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
++
++ if not conf.CHECK_FUNCS('closefrom'):
++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
+
+ conf.CHECK_CODE('''
+ struct ucred cred;
+@@ -699,7 +747,7 @@ def configure(conf):
+ # look for a method of finding the list of network interfaces
+ for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
+ bsd_for_strlcpy = ''
+- if strlcpy_in_bsd:
++ if Options.options.enable_libbsd:
+ bsd_for_strlcpy = ' bsd'
+ if conf.CHECK_CODE('''
+ #define %s 1
+diff --git a/wscript b/wscript
+index ad91bc6..2d20fee 100644
+--- a/wscript
++++ b/wscript
+@@ -36,6 +36,12 @@ def set_options(opt):
+ help='disable new LMDB backend for LDB',
+ action='store_true', dest='without_ldb_lmdb', default=False)
+
++ opt.add_option('--with-valgrind',
++ help=("enable use of valgrind"),
++ action="store_true", dest='enable_valgrind')
++ opt.add_option('--without-valgrind',
++ help=("disable use of valgrind"),
++ action="store_false", dest='enable_valgrind', default=False)
+
+ def configure(conf):
+ conf.RECURSE('lib/tdb')
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.3.1.bb b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.3.1.bb
deleted file mode 100644
index 7e14cde..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.3.1.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://ldb.samba.org"
-SECTION = "libs"
-LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+"
-
-DEPENDS += "libtdb libtalloc libtevent popt"
-RDEPENDS_pyldb += "python"
-
-SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
- file://do-not-import-target-module-while-cross-compile.patch \
- file://options-1.3.1.patch \
- "
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[ldap] = ",,openldap"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://avoid-openldap-unless-wanted.patch', d)}"
-
-LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9adade \
- file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
- file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
-
-SRC_URI[md5sum] = "e5233f202bca27f6ce8474fb8ae65983"
-SRC_URI[sha256sum] = "b19f2c9f55ae0f46aa5ebaea0bf1a47ec1ac135e1d78af0f6318cf50bf62cbd2"
-
-inherit waf-samba
-
-S = "${WORKDIR}/ldb-${PV}"
-
-EXTRA_OECONF += "--disable-rpath \
- --disable-rpath-install \
- --bundled-libraries=cmocka \
- --builtin-libraries=replace \
- --with-modulesdir=${libdir}/ldb/modules \
- --with-privatelibdir=${libdir}/ldb \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- "
-
-PACKAGES =+ "pyldb pyldb-dbg pyldb-dev"
-
-NOAUTOPACKAGEDEBUG = "1"
-
-FILES_${PN} += "${libdir}/ldb/*"
-FILES_${PN}-dbg += "${bindir}/.debug/* \
- ${libdir}/.debug/* \
- ${libdir}/ldb/.debug/* \
- ${libdir}/ldb/modules/ldb/.debug/*"
-
-FILES_pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
- ${libdir}/libpyldb-util.so.* \
- "
-FILES_pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \
- ${libdir}/.debug/libpyldb-util.so.*"
-FILES_pyldb-dev = "${libdir}/libpyldb-util.so"
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb
new file mode 100644
index 0000000..3c7e545
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb
@@ -0,0 +1,68 @@
+SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
+HOMEPAGE = "http://ldb.samba.org"
+SECTION = "libs"
+LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+"
+
+DEPENDS += "libtdb libtalloc libtevent popt"
+RDEPENDS_pyldb += "python samba"
+
+SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
+ file://do-not-import-target-module-while-cross-compile.patch \
+ file://options-1.4.1.patch \
+ file://0001-libldb-fix-config-error.patch \
+ file://libldb-fix-musl-libc-unkown-type-error.patch \
+ file://libldb-fix-musl-libc-conflict-type-error.patch \
+ "
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[ldap] = ",,openldap"
+PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://avoid-openldap-unless-wanted.patch', d)}"
+
+LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9adade \
+ file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
+ file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
+
+SRC_URI[md5sum] = "159a1b1a56dcccf410d1bba911be6076"
+SRC_URI[sha256sum] = "2df13aa25b376b314ce24182c37691959019523de3cc5356c40c1a333b0890a2"
+
+inherit waf-samba distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+S = "${WORKDIR}/ldb-${PV}"
+
+EXTRA_OECONF += "--disable-rpath \
+ --disable-rpath-install \
+ --bundled-libraries=cmocka \
+ --builtin-libraries=replace \
+ --with-modulesdir=${libdir}/ldb/modules \
+ --with-privatelibdir=${libdir}/ldb \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ --without-ldb-lmdb \
+ "
+
+PACKAGES =+ "pyldb pyldb-dbg pyldb-dev"
+
+NOAUTOPACKAGEDEBUG = "1"
+
+FILES_${PN} += "${libdir}/ldb/*"
+FILES_${PN}-dbg += "${bindir}/.debug/* \
+ ${libdir}/.debug/* \
+ ${libdir}/ldb/.debug/* \
+ ${libdir}/ldb/modules/ldb/.debug/*"
+
+FILES_pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
+ ${libdir}/libpyldb-util.so.* \
+ "
+FILES_pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \
+ ${libdir}/.debug/libpyldb-util.so.*"
+FILES_pyldb-dev = "${libdir}/libpyldb-util.so"
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
index a3ee9cc..db3ddce 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
@@ -1,20 +1,20 @@
--- a/lib/replace/wscript 2015-11-13 16:04:04.000000000 +0100
+++ b/lib/replace/wscript 2015-11-13 16:23:20.000000000 +0100
-@@ -636,8 +636,6 @@
+@@ -837,8 +837,6 @@ def build(bld):
if not bld.CONFIG_SET('HAVE_INET_ATON'): REPLACE_SOURCE += ' inet_aton.c'
if not bld.CONFIG_SET('HAVE_INET_NTOP'): REPLACE_SOURCE += ' inet_ntop.c'
if not bld.CONFIG_SET('HAVE_INET_PTON'): REPLACE_SOURCE += ' inet_pton.c'
- if not bld.CONFIG_SET('HAVE_GETXATTR') or bld.CONFIG_SET('XATTR_ADDITIONAL_OPTIONS'):
- REPLACE_SOURCE += ' xattr.c'
- bld.SAMBA_LIBRARY('replace',
- source=REPLACE_SOURCE,
-@@ -648,7 +646,7 @@
+ if not bld.CONFIG_SET('HAVE_CLOSEFROM'):
+ REPLACE_SOURCE += ' closefrom.c'
+@@ -852,7 +850,7 @@ def build(bld):
# at the moment:
# hide_symbols=bld.BUILTIN_LIBRARY('replace'),
private_library=True,
- deps='crypt dl nsl socket rt attr' + extra_libs)
+ deps='crypt dl nsl socket rt ' + extra_libs)
- bld.SAMBA_SUBSYSTEM('replace-test',
- source='''test/testsuite.c test/strptime.c
+ replace_test_cflags="-Wno-format-zero-length"
+ if bld.CONFIG_SET('HAVE_WNO_FORMAT_TRUNCATION'):
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch
deleted file mode 100644
index 63f21e7..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-From efc1b02144f23fdf84dbc5ff15307815e0f2a425 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Wed, 14 Sep 2016 11:11:35 +0800
-Subject: [PATCH] talloc: Add configure options for packages
-
-Add configure options for the following packages:
- - acl
- - attr
- - libaio
- - libbsd
- - libcap
- - valgrind
-
-Upstream-Status: Inappropriate [oe deterministic build specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
-Modified to apply to version 2.1.10.
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
----
- lib/replace/system/wscript_configure | 6 ++-
- lib/replace/wscript | 85 ++++++++++++++++++++++++++++--------
- wscript | 7 ++-
- 3 files changed, 79 insertions(+), 19 deletions(-)
-
-Index: talloc-2.1.11/lib/replace/system/wscript_configure
-===================================================================
---- talloc-2.1.11.orig/lib/replace/system/wscript_configure
-+++ talloc-2.1.11/lib/replace/system/wscript_configure
-@@ -1,6 +1,10 @@
- #!/usr/bin/env python
-
--conf.CHECK_HEADERS('sys/capability.h')
-+import Options
-+
-+if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
-
- # solaris varients of getXXent_r
-Index: talloc-2.1.11/lib/replace/wscript
-===================================================================
---- talloc-2.1.11.orig/lib/replace/wscript
-+++ talloc-2.1.11/lib/replace/wscript
-@@ -23,6 +23,41 @@ def set_options(opt):
- opt.PRIVATE_EXTENSION_DEFAULT('')
- opt.RECURSE('buildtools/wafsamba')
-
-+ opt.add_option('--with-acl',
-+ help=("Enable use of acl"),
-+ action="store_true", dest='enable_acl')
-+ opt.add_option('--without-acl',
-+ help=("Disable use of acl"),
-+ action="store_false", dest='enable_acl', default=False)
-+
-+ opt.add_option('--with-attr',
-+ help=("Enable use of attr"),
-+ action="store_true", dest='enable_attr')
-+ opt.add_option('--without-attr',
-+ help=("Disable use of attr"),
-+ action="store_false", dest='enable_attr', default=False)
-+
-+ opt.add_option('--with-libaio',
-+ help=("Enable use of libaio"),
-+ action="store_true", dest='enable_libaio')
-+ opt.add_option('--without-libaio',
-+ help=("Disable use of libaio"),
-+ action="store_false", dest='enable_libaio', default=False)
-+
-+ opt.add_option('--with-libbsd',
-+ help=("Enable use of libbsd"),
-+ action="store_true", dest='enable_libbsd')
-+ opt.add_option('--without-libbsd',
-+ help=("Disable use of libbsd"),
-+ action="store_false", dest='enable_libbsd', default=False)
-+
-+ opt.add_option('--with-libcap',
-+ help=("Enable use of libcap"),
-+ action="store_true", dest='enable_libcap')
-+ opt.add_option('--without-libcap',
-+ help=("Disable use of libcap"),
-+ action="store_false", dest='enable_libcap', default=False)
-+
- @Utils.run_once
- def configure(conf):
- conf.RECURSE('buildtools/wafsamba')
-@@ -32,12 +67,25 @@ def configure(conf):
- conf.DEFINE('HAVE_LIBREPLACE', 1)
- conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
-
-- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
-- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
-+ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
-+ conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
- conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
-- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
-- conf.CHECK_HEADERS('shadow.h sys/acl.h')
-- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
-+ conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
-+ conf.CHECK_HEADERS('shadow.h')
-+ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
-+
-+ if Options.options.enable_acl:
-+ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
-+
-+ if Options.options.enable_attr:
-+ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
-+
-+ if Options.options.enable_libaio:
-+ conf.CHECK_HEADERS('libaio.h')
-+
-+ if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_HEADERS('port.h')
- conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
- conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
-@@ -73,7 +121,9 @@ def configure(conf):
-
- conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H')
-
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+
- conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
- conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
- conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
-@@ -267,21 +317,21 @@ def configure(conf):
- conf.CHECK_FUNCS('prctl dirname basename')
-
- strlcpy_in_bsd = False
--
-- # libbsd on some platforms provides strlcpy and strlcat
-- if not conf.CHECK_FUNCS('strlcpy strlcat'):
-- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-+ if Options.options.enable_libbsd:
-+ # libbsd on some platforms provides strlcpy and strlcat
-+ if not conf.CHECK_FUNCS('strlcpy strlcat'):
-+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
- checklibc=True):
-- strlcpy_in_bsd = True
-- if not conf.CHECK_FUNCS('getpeereid'):
-- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS('setproctitle_init'):
-- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ strlcpy_in_bsd = True
-+ if not conf.CHECK_FUNCS('getpeereid'):
-+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS('setproctitle_init'):
-+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
-
-- if not conf.CHECK_FUNCS('closefrom'):
-- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+ if not conf.CHECK_FUNCS('closefrom'):
-+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-
- conf.CHECK_CODE('''
- struct ucred cred;
-Index: talloc-2.1.11/wscript
-===================================================================
---- talloc-2.1.11.orig/wscript
-+++ talloc-2.1.11/wscript
-@@ -32,7 +32,12 @@ def set_options(opt):
- opt.add_option('--enable-talloc-compat1',
- help=("Build talloc 1.x.x compat library [False]"),
- action="store_true", dest='TALLOC_COMPAT1', default=False)
--
-+ opt.add_option('--with-valgrind',
-+ help=("enable use of valgrind"),
-+ action="store_true", dest='enable_valgrind')
-+ opt.add_option('--without-valgrind',
-+ help=("disable use of valgrind"),
-+ action="store_false", dest='enable_valgrind', default=False)
-
- def configure(conf):
- conf.RECURSE('lib/replace')
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.14.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.14.patch
new file mode 100644
index 0000000..df45d36
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.14.patch
@@ -0,0 +1,172 @@
+From 319a2a1bb46ae35fa9d66878cb08285035f0bd5f Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 19 Jul 2018 15:41:31 +0800
+Subject: [PATCH] talloc: Add configure options for packages
+
+Add configure options for the following packages:
+ - acl
+ - attr
+ - libaio
+ - libbsd
+ - libcap
+ - valgrind
+
+Upstream-Status: Inappropriate [oe deterministic build specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+Modified to apply to version 2.1.10.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Modified tp apply to version 2.1.14
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/replace/wscript | 90 +++++++++++++++++++++++++++++++++++++++++------------
+ wscript | 7 +++++
+ 2 files changed, 77 insertions(+), 20 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index fd00a42..a77c058 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -22,6 +22,41 @@ def set_options(opt):
+ opt.BUILTIN_DEFAULT('NONE')
+ opt.PRIVATE_EXTENSION_DEFAULT('')
+ opt.RECURSE('buildtools/wafsamba')
++
++ opt.add_option('--with-acl',
++ help=("Enable use of acl"),
++ action="store_true", dest='enable_acl')
++ opt.add_option('--without-acl',
++ help=("Disable use of acl"),
++ action="store_false", dest='enable_acl', default=False)
++
++ opt.add_option('--with-attr',
++ help=("Enable use of attr"),
++ action="store_true", dest='enable_attr')
++ opt.add_option('--without-attr',
++ help=("Disable use of attr"),
++ action="store_false", dest='enable_attr', default=False)
++
++ opt.add_option('--with-libaio',
++ help=("Enable use of libaio"),
++ action="store_true", dest='enable_libaio')
++ opt.add_option('--without-libaio',
++ help=("Disable use of libaio"),
++ action="store_false", dest='enable_libaio', default=False)
++
++ opt.add_option('--with-libbsd',
++ help=("Enable use of libbsd"),
++ action="store_true", dest='enable_libbsd')
++ opt.add_option('--without-libbsd',
++ help=("Disable use of libbsd"),
++ action="store_false", dest='enable_libbsd', default=False)
++
++ opt.add_option('--with-libcap',
++ help=("Enable use of libcap"),
++ action="store_true", dest='enable_libcap')
++ opt.add_option('--without-libcap',
++ help=("Disable use of libcap"),
++ action="store_false", dest='enable_libcap', default=False)
+
+ @Utils.run_once
+ def configure(conf):
+@@ -32,12 +67,25 @@ def configure(conf):
+ conf.DEFINE('HAVE_LIBREPLACE', 1)
+ conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
+
+- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
+- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
++ conf.CHECK_HEADERS('attr/xattr.h compat.h ctype.h dustat.h')
+ conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
+- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
+- conf.CHECK_HEADERS('shadow.h sys/acl.h')
+- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
++ conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
++ conf.CHECK_HEADERS('shadow.h')
++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
++
++ if Options.options.enable_acl:
++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
++
++ if Options.options.enable_attr:
++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
++
++ if Options.options.enable_libaio:
++ conf.CHECK_HEADERS('libaio.h')
++
++ if Options.options.enable_libcap:
++ conf.CHECK_HEADERS('sys/capability.h')
++
+ conf.CHECK_HEADERS('port.h')
+ conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
+ conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
+@@ -108,7 +156,9 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
+ conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
+
+- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
++ if Options.options.enable_valgrind:
++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
++
+ conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
+ conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
+ conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
+@@ -342,20 +392,20 @@ def configure(conf):
+
+ strlcpy_in_bsd = False
+
+- # libbsd on some platforms provides strlcpy and strlcat
+- if not conf.CHECK_FUNCS('strlcpy strlcat'):
+- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+- checklibc=True):
+- strlcpy_in_bsd = True
+- if not conf.CHECK_FUNCS('getpeereid'):
+- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
+- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS('setproctitle_init'):
+- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
+-
+- if not conf.CHECK_FUNCS('closefrom'):
+- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++ if Options.options.enable_libbsd:
++ # libbsd on some platforms provides strlcpy and strlcat
++ if not conf.CHECK_FUNCS('strlcpy strlcat'):
++ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
++ checklibc=True):
++ strlcpy_in_bsd = True
++ if not conf.CHECK_FUNCS('getpeereid'):
++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS('setproctitle_init'):
++ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS('closefrom'):
++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
+
+ conf.CHECK_CODE('''
+ struct ucred cred;
+diff --git a/wscript b/wscript
+index 18f726e..fed8ab9 100644
+--- a/wscript
++++ b/wscript
+@@ -32,6 +32,13 @@ def set_options(opt):
+ opt.add_option('--enable-talloc-compat1',
+ help=("Build talloc 1.x.x compat library [False]"),
+ action="store_true", dest='TALLOC_COMPAT1', default=False)
++ opt.add_option('--with-valgrind',
++ help=("enable use of valgrind"),
++ action="store_true", dest='enable_valgrind')
++ opt.add_option('--without-valgrind',
++ help=("disable use of valgrind"),
++ action="store_false", dest='enable_valgrind', default=False)
++
+
+
+ def configure(conf):
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb
deleted file mode 100644
index 848cf4d..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://talloc.samba.org"
-SECTION = "libs"
-LICENSE = "LGPL-3.0+ & GPL-3.0+"
-LIC_FILES_CHKSUM = "file://talloc.h;beginline=3;endline=27;md5=a301712782cad6dd6d5228bfa7825249 \
- file://pytalloc.h;beginline=1;endline=18;md5=2c498cc6f2263672483237b20f46b43d"
-
-
-SRC_URI = "https://samba.org/ftp/talloc/talloc-${PV}.tar.gz \
- file://options-2.1.10.patch \
-"
-SRC_URI[md5sum] = "452596f904ca2b10322bdaabf147a721"
-SRC_URI[sha256sum] = "639eb35556a0af999123c4d883e79be05ff9f00ab4f9e4ac2e5775f9c5eeeed3"
-
-inherit waf-samba
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}"
-
-S = "${WORKDIR}/talloc-${PV}"
-
-EXTRA_OECONF += "--disable-rpath \
- --disable-rpath-install \
- --bundled-libraries=NONE \
- --builtin-libraries=replace \
- --disable-silent-rules \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- "
-
-PACKAGES += "pytalloc pytalloc-dbg pytalloc-dev"
-
-FILES_pytalloc = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
- ${libdir}/libpytalloc-util.so.2 \
- ${libdir}/libpytalloc-util.so.2.1.1 \
- "
-FILES_pytalloc-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \
- ${libdir}/.debug/libpytalloc-util.so.2.1.1"
-FILES_pytalloc-dev = "${libdir}/libpytalloc-util.so"
-RDEPENDS_pytalloc = "python"
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.14.bb b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.14.bb
new file mode 100644
index 0000000..9a463a6
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.14.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
+HOMEPAGE = "http://talloc.samba.org"
+SECTION = "libs"
+LICENSE = "LGPL-3.0+ & GPL-3.0+"
+LIC_FILES_CHKSUM = "file://talloc.h;beginline=3;endline=27;md5=a301712782cad6dd6d5228bfa7825249 \
+ file://pytalloc.h;beginline=1;endline=18;md5=2c498cc6f2263672483237b20f46b43d"
+
+
+SRC_URI = "https://samba.org/ftp/talloc/talloc-${PV}.tar.gz \
+ file://options-2.1.14.patch \
+"
+SRC_URI[md5sum] = "7478da02e309316231a497a9f17a980d"
+SRC_URI[sha256sum] = "b185602756a628bac507fa8af8b9df92ace69d27c0add5dab93190ad7c3367ce"
+
+inherit waf-samba
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}"
+
+S = "${WORKDIR}/talloc-${PV}"
+
+EXTRA_OECONF += "--disable-rpath \
+ --disable-rpath-install \
+ --bundled-libraries=NONE \
+ --builtin-libraries=replace \
+ --disable-silent-rules \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ "
+
+PACKAGES += "pytalloc pytalloc-dev"
+
+RPROVIDES_${PN}-dbg += "pytalloc-dbg"
+
+FILES_pytalloc = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
+ ${libdir}/libpytalloc-util.so.2 \
+ ${libdir}/libpytalloc-util.so.2.1.1 \
+ "
+FILES_pytalloc-dev = "${libdir}/libpytalloc-util.so"
+RDEPENDS_pytalloc = "python"
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
index 272921e..365b92d 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
@@ -1,10 +1,7 @@
-From 24911f36bcb00412e5dc4cd11fda139e09d58798 Mon Sep 17 00:00:00 2001
-From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
-Date: Tue, 1 Aug 2017 03:12:09 +0900
-Subject: [PATCH] From 10ac5e5fdda44adcc2a159b6f9a2d51a51361057 Mon Sep 17
- 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> Date: Wed, 21
- Sep 2016 10:46:19 +0800 Subject: [PATCH] tdb: Add configure options for
- packages
+From 6de1affddde4003a956523c330ecf24e22e094ac Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 19 Jul 2018 16:20:32 +0800
+Subject: [PATCH] tdb: Add configure options for packages
Add configure options for the following packages:
- acl
@@ -21,30 +18,16 @@
Update for libtdb_1.3.14.
Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
----
- lib/replace/system/wscript_configure | 6 ++-
- lib/replace/wscript | 85 ++++++++++++++++++++++++++++--------
- wscript | 7 ++-
- 3 files changed, 79 insertions(+), 19 deletions(-)
-diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure
-index 2035474..10f9ae7 100644
---- a/lib/replace/system/wscript_configure
-+++ b/lib/replace/system/wscript_configure
-@@ -1,6 +1,10 @@
- #!/usr/bin/env python
-
--conf.CHECK_HEADERS('sys/capability.h')
-+import Options
-+
-+if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
-
- # solaris varients of getXXent_r
+Update for libtdb_1.3.16
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/replace/wscript | 89 +++++++++++++++++++++++++++++++++++++++++------------
+ wscript | 6 ++++
+ 2 files changed, 75 insertions(+), 20 deletions(-)
+
diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 7c50e1d..15df5c3 100644
+index fd00a42..2df83cd 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
@@ -23,6 +23,41 @@ def set_options(opt):
@@ -96,7 +79,7 @@
- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
+ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
-+ conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
++ conf.CHECK_HEADERS('attr/xattr.h compat.h ctype.h dustat.h')
conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
- conf.CHECK_HEADERS('shadow.h sys/acl.h')
@@ -120,9 +103,9 @@
conf.CHECK_HEADERS('port.h')
conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
-@@ -73,7 +121,9 @@ def configure(conf):
-
- conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H')
+@@ -108,7 +156,9 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
+ conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
+ if Options.options.enable_valgrind:
@@ -131,18 +114,21 @@
conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
-@@ -251,17 +301,18 @@ def configure(conf):
+@@ -342,20 +392,19 @@ def configure(conf):
- conf.CHECK_FUNCS('prctl dirname basename')
+ strlcpy_in_bsd = False
- # libbsd on some platforms provides strlcpy and strlcat
- if not conf.CHECK_FUNCS('strlcpy strlcat'):
-- conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-- checklibc=True)
+- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+- checklibc=True):
+- strlcpy_in_bsd = True
- if not conf.CHECK_FUNCS('getpeereid'):
- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS('setproctitle_init'):
+- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
-
- if not conf.CHECK_FUNCS('closefrom'):
- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
@@ -158,18 +144,18 @@
+
+ if not conf.CHECK_FUNCS('closefrom'):
+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++
conf.CHECK_CODE('''
struct ucred cred;
diff --git a/wscript b/wscript
-index 1c9655a..8c20d3b 100644
+index 6505648..6608481 100644
--- a/wscript
+++ b/wscript
-@@ -62,7 +62,12 @@ def set_options(opt):
- help=("Disable the use of pthread robust mutexes"),
+@@ -63,6 +63,12 @@ def set_options(opt):
action="store_true", dest='disable_tdb_mutex_locking',
default=False)
--
+
+ opt.add_option('--with-valgrind',
+ help=("enable use of valgrind"),
+ action="store_true", dest='enable_valgrind')
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb
deleted file mode 100644
index 302a306..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "The tdb library"
-HOMEPAGE = "http://tdb.samba.org/"
-SECTION = "libs"
-LICENSE = "LGPL-3.0+ & GPL-3.0+"
-
-LIC_FILES_CHKSUM = "file://tools/tdbdump.c;endline=18;md5=b59cd45aa8624578126a8c98f48018c4 \
- file://include/tdb.h;endline=27;md5=f5bb544641d3081821bcc1dd58310be6"
-
-SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \
- file://do-not-check-xsltproc-manpages.patch \
- file://tdb-Add-configure-options-for-packages.patch \
-"
-
-SRC_URI[md5sum] = "60ece3996acc8d85b6f713199da971a6"
-SRC_URI[sha256sum] = "b4a1bf3833601bd9f10aff363cb750860aef9ce5b4617989239923192f946728"
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-
-S = "${WORKDIR}/tdb-${PV}"
-
-inherit waf-samba
-
-EXTRA_OECONF += "--disable-rpath \
- --bundled-libraries=NONE \
- --builtin-libraries=replace \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- "
-
-PACKAGES += "tdb-tools python-tdb python-tdb-dbg"
-
-FILES_${PN} = "${libdir}/*.so.*"
-FILES_tdb-tools = "${bindir}/*"
-FILES_python-tdb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-FILES_python-tdb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug/*"
-RDEPENDS_python-tdb = "python"
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb
new file mode 100644
index 0000000..0579ed6
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb
@@ -0,0 +1,45 @@
+SUMMARY = "The tdb library"
+HOMEPAGE = "http://tdb.samba.org/"
+SECTION = "libs"
+LICENSE = "LGPL-3.0+ & GPL-3.0+"
+
+LIC_FILES_CHKSUM = "file://tools/tdbdump.c;endline=18;md5=b59cd45aa8624578126a8c98f48018c4 \
+ file://include/tdb.h;endline=27;md5=f5bb544641d3081821bcc1dd58310be6"
+
+SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \
+ file://do-not-check-xsltproc-manpages.patch \
+ file://tdb-Add-configure-options-for-packages.patch \
+"
+
+SRC_URI[md5sum] = "7d06d8709188e07df853d9e91db88927"
+SRC_URI[sha256sum] = "6a3fc2616567f23993984ada3cea97d953a27669ffd1bfbbe961f26e0cf96cc5"
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+
+S = "${WORKDIR}/tdb-${PV}"
+
+inherit waf-samba
+
+EXTRA_OECONF += "--disable-rpath \
+ --bundled-libraries=NONE \
+ --builtin-libraries=replace \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ "
+
+PACKAGES += "tdb-tools python-tdb"
+
+RPROVIDES_${PN}-dbg += "python-tdb-dbg"
+
+FILES_${PN} = "${libdir}/*.so.*"
+FILES_tdb-tools = "${bindir}/*"
+FILES_python-tdb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
+RDEPENDS_python-tdb = "python"
diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch
new file mode 100644
index 0000000..e3aeda9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch
@@ -0,0 +1,32 @@
+From 7ba1de909c587b6773a39ba9f6f9890987f35b24 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 11:30:53 +0800
+Subject: [PATCH] libtevent: fix musl libc compile error
+
+libldb depend on libtevent, build libldb with musl libc,
+will report error:
+tevent.h:1440:8: error: unknown type name 'pid_t'; did you mean 'div_t'?
+
+add missing headers to fix it.
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ tevent.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tevent.h b/tevent.h
+index aa6fe0d..2572696 100644
+--- a/tevent.h
++++ b/tevent.h
+@@ -32,6 +32,8 @@
+ #include <talloc.h>
+ #include <sys/time.h>
+ #include <stdbool.h>
++#include <sys/stat.h>
++#include <sys/types.h>
+
+ struct tevent_context;
+ struct tevent_ops;
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb
deleted file mode 100644
index c91b221..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://tevent.samba.org"
-SECTION = "libs"
-LICENSE = "LGPLv3+"
-
-DEPENDS += "libtalloc libtirpc"
-RDEPENDS_python-tevent = "python"
-
-SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \
- file://options-0.9.36.patch \
-"
-LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a"
-
-SRC_URI[md5sum] = "87d67bca75b231814435c47bec0aff8a"
-SRC_URI[sha256sum] = "bd2b6be3fd1601ed7f176e99111e322c57d58e425cc149ee80c7dd4fed263b4c"
-
-inherit waf-samba
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}"
-
-S = "${WORKDIR}/tevent-${PV}"
-
-EXTRA_OECONF += "--disable-rpath \
- --bundled-libraries=NONE \
- --builtin-libraries=replace \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- --without-gettext \
- "
-
-PACKAGES += "python-tevent python-tevent-dbg"
-
-FILES_python-tevent = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-FILES_python-tevent-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.37.bb b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.37.bb
new file mode 100644
index 0000000..4df251c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.37.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
+HOMEPAGE = "http://tevent.samba.org"
+SECTION = "libs"
+LICENSE = "LGPLv3+"
+
+DEPENDS += "libtalloc libtirpc"
+RDEPENDS_python-tevent = "python"
+
+SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \
+ file://options-0.9.36.patch \
+ file://0001-libtevent-fix-musl-libc-compile-error.patch \
+"
+LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a"
+
+SRC_URI[md5sum] = "6859cd4081fdb2a76b1cb4bf1c803a59"
+SRC_URI[sha256sum] = "168345ed65eac03785cf77b95238e7dc66cbb473a42811693a6b0916e5dae7e0"
+
+inherit waf-samba
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}"
+
+S = "${WORKDIR}/tevent-${PV}"
+
+EXTRA_OECONF += "--disable-rpath \
+ --bundled-libraries=NONE \
+ --builtin-libraries=replace \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ --without-gettext \
+ "
+
+PACKAGES += "python-tevent"
+
+RPROVIDES_${PN}-dbg += "python-tevent-dbg"
+
+FILES_python-tevent = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch
new file mode 100644
index 0000000..7599b1b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch
@@ -0,0 +1,31 @@
+From e5952a0cdfa8b1b56a5823574835f1f771f14ae0 Mon Sep 17 00:00:00 2001
+From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+Date: Fri, 24 Aug 2018 09:53:00 -0300
+Subject: [PATCH] build: 0b0dce7a36fb actually belongs to v4.19
+
+Typo or not, this commit actually belongs to v4.19 and made me wonder why
+on v4.18 it didn't find this feature.
+
+Fixes: 817f0bfa248f ("build: add two defines for Peer Address Parameters extensions on sctp_paddrparams")
+Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+Reviewed-by: Xin Long <lucien.xin@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index f55775a..5de5c76 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -101,7 +101,7 @@ LKSCTP_CHECK_TYPE([struct sctp_prinfo], [HAVE_SCTP_SENDV])
+ # added on v4.16, 30f6ebf65bc4
+ LKSCTP_CHECK_DECL([SCTP_AUTH_NO_AUTH], [HAVE_SCTP_AUTH_NO_AUTH])
+
+-# New members to sctp_paddrparams, added on v4.18, 0b0dce7a36fb
++# New members to sctp_paddrparams, added on v4.19, 0b0dce7a36fb
+ LKSCTP_CHECK_MEMBER([struct sctp_paddrparams.spp_ipv6_flowlabel],
+ [HAVE_SCTP_SPP_IPV6_FLOWLABEL])
+ LKSCTP_CHECK_MEMBER([struct sctp_paddrparams.spp_dscp],
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-netinet-sctp.h-not-to-be-installed.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-netinet-sctp.h-not-to-be-installed.patch
new file mode 100644
index 0000000..03c6c4f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-netinet-sctp.h-not-to-be-installed.patch
@@ -0,0 +1,35 @@
+From 378560050a8f93786c590cc99a55461666205b61 Mon Sep 17 00:00:00 2001
+From: Xin Long <lucien.xin@gmail.com>
+Date: Fri, 24 Aug 2018 01:13:32 +0800
+Subject: [PATCH] build: fix netinet/sctp.h not to be installed
+
+After libcnetinet_HEADERS was set to sctp.h.in, netinet/sctp.h can
+no longer be installed into ${includedir}.
+
+Since "AC_CONFIG_HEADERS([src/include/netinet/sctp.h])" is already
+added into configure.ac, there's no need to generate sctp.h by
+automake.
+
+So we simply set libcnetinet_HEADERS back to sctp.h.
+
+Fixes: 9607dd85e70a ("netinet/sctp.h: dynamically build based on system setup")
+Signed-off-by: Xin Long <lucien.xin@gmail.com>
+Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+---
+ src/include/netinet/Makefile.am | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/include/netinet/Makefile.am b/src/include/netinet/Makefile.am
+index ca0aac2..965db8c 100644
+--- a/src/include/netinet/Makefile.am
++++ b/src/include/netinet/Makefile.am
+@@ -11,5 +11,4 @@ libcnetinetdir = $(includedir)/netinet
+ # API.
+ include_HEADERS =
+
+-libcnetinet_HEADERS = sctp.h.in
+-BUILT_SOURCES = sctp.h
++libcnetinet_HEADERS = sctp.h
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch
new file mode 100644
index 0000000..89c8983
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch
@@ -0,0 +1,35 @@
+From 596efd6631b83069d41782fb0ee2d6cf76a50dfa Mon Sep 17 00:00:00 2001
+From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+Date: Fri, 24 Aug 2018 09:52:59 -0300
+Subject: [PATCH] build: fix probing for HAVE_SCTP_SENDV
+
+Somehow it was using a type that is non-existent. The right one is
+sctp_prinfo, introduced on ed63afb8a318 ("sctp: add support for PR-SCTP
+Information for sendmsg"), present on v4.17.
+
+Fixes: 1b798f1ca3b5 ("build: add define HAVE_SCTP_AUTH_NO_AUTH")
+Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+Reviewed-by: Xin Long <lucien.xin@gmail.com>
+---
+ configure.ac | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index dad658c..f55775a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -94,9 +94,8 @@ LKSCTP_CHECK_MEMBER([struct sctp_pdapi_event.pdapi_stream],
+ LKSCTP_CHECK_MEMBER([struct sctp_pdapi_event.pdapi_seq],
+ [HAVE_SCTP_PDAPI_EVENT_PDAPI_SEQ])
+
+-# PR-SCTP field used to probe for sendv/recvv support, added on v4.17
+-LKSCTP_CHECK_MEMBER([struct sendv_prinfo.sctp_prinfo],
+- [HAVE_SCTP_SENDV])
++# PR-SCTP struct used to probe for sendv/recvv support, added on v4.17
++LKSCTP_CHECK_TYPE([struct sctp_prinfo], [HAVE_SCTP_SENDV])
+
+ # This event indicates that the peer does not support SCTP authentication,
+ # added on v4.16, 30f6ebf65bc4
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch
new file mode 100644
index 0000000..d22cda6
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch
@@ -0,0 +1,52 @@
+From db6d15bf12a0123e4320e5fd7cb688331dea1bdc Mon Sep 17 00:00:00 2001
+From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+Date: Fri, 24 Aug 2018 09:52:58 -0300
+Subject: [PATCH] build: remove v4.12 secondary defines in favor of
+ HAVE_SCTP_STREAM_RECONFIG
+
+These were backups, commented out since beginning.
+HAVE_SCTP_STREAM_RECONFIG is enough to identify that these are there, so
+lets use only one.
+
+Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+Reviewed-by: Xin Long <lucien.xin@gmail.com>
+---
+ configure.ac | 8 --------
+ src/include/netinet/sctp.h.in | 2 --
+ 2 files changed, 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2ae36ec..dad658c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -82,14 +82,6 @@ AC_CHECK_FUNCS([bzero gethostbyname gettimeofday memmove memset select socket \
+ LKSCTP_CHECK_MEMBER([struct sctp_event_subscribe.sctp_stream_reset_event],
+ [HAVE_SCTP_STREAM_RESET_EVENT])
+
+-# Support for assoc reset event, added on v4.12, c95129d127c6
+-#LKSCTP_CHECK_MEMBER([struct sctp_event_subscribe.sctp_assoc_reset_event], \
+-# [HAVE_SCTP_ASSOC_RESET_EVENT])
+-
+-# Support for stream change event, added on v4.12, b444153fb5a6
+-#LKSCTP_CHECK_MEMBER([struct sctp_event_subscribe.sctp_stream_change_event], \
+-# [HAVE_SCTP_STREAM_CHANGE_EVENT])
+-
+ # RFC 6525 (Stream Reconf), finished on v4.12, c0d8bab6ae51
+ LKSCTP_CHECK_DECL([SCTP_RECONFIG_SUPPORTED], [HAVE_SCTP_STREAM_RECONFIG])
+
+diff --git a/src/include/netinet/sctp.h.in b/src/include/netinet/sctp.h.in
+index c049077..2009f1c 100644
+--- a/src/include/netinet/sctp.h.in
++++ b/src/include/netinet/sctp.h.in
+@@ -61,8 +61,6 @@ extern "C" {
+ #define HAVE_SCTP_CANSET_PRIMARY
+
+ #undef HAVE_SCTP_STREAM_RESET_EVENT
+-#undef HAVE_SCTP_ASSOC_RESET_EVENT
+-#undef HAVE_SCTP_STREAM_CHANGE_EVENT
+ #undef HAVE_SCTP_STREAM_RECONFIG
+ #undef HAVE_SCTP_PEELOFF_FLAGS
+ #undef HAVE_SCTP_PDAPI_EVENT_PDAPI_STREAM
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch
new file mode 100644
index 0000000..bec9bf0
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch
@@ -0,0 +1,71 @@
+From 7de2bd7e769f10521e3d0c2cb42c6f6b9b505dd0 Mon Sep 17 00:00:00 2001
+From: Xin Long <lucien.xin@gmail.com>
+Date: Thu, 16 Aug 2018 14:12:30 +0800
+Subject: [PATCH] configure.ac: add CURRENT REVISION and AGE for libsctp and
+ libwithsctp
+
+Add CURRENT REVISION and AGE for libsctp and libwithsctp in
+configure.ac to update these 2 library version information.
+
+Compatible with before, they will start from 1:18:0. But each
+will get updated according to their definitions in the future.
+
+Signed-off-by: Xin Long <lucien.xin@gmail.com>
+Acked-by: Neil Horman <nhorman@tuxdriver.com>
+Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+---
+ configure.ac | 7 +++++++
+ src/lib/Makefile.am | 7 +++++--
+ src/withsctp/Makefile.am | 3 ++-
+ 3 files changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 275ef4e..2ae36ec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -14,6 +14,13 @@ dnl reduce clutter in the root; if we put it below AM_INIT_AUTOMAKE,
+ dnl configure will fail ...)
+
+ AC_INIT([lksctp-tools], [1.0.18], [], [], [http://www.lksctp.org/])
++AC_SUBST(LIBSCTP_CURRENT, 1)
++AC_SUBST(LIBSCTP_REVISION, 18)
++AC_SUBST(LIBSCTP_AGE, 0)
++AC_SUBST(LIBWITHSCTP_CURRENT, 1)
++AC_SUBST(LIBWITHSCTP_REVISION, 18)
++AC_SUBST(LIBWITHSCTP_AGE, 0)
++
+ AC_CONFIG_AUX_DIR(bin)
+ AC_CONFIG_SRCDIR([src/apps/sctp_darn.c])
+ AC_CONFIG_HEADERS([config.h])
+diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
+index 6100c56..1d62175 100644
+--- a/src/lib/Makefile.am
++++ b/src/lib/Makefile.am
+@@ -8,5 +8,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/src/include
+
+ lib_LTLIBRARIES = libsctp.la
+
+-libsctp_la_SOURCES = bindx.c connectx.c peeloff.c opt_info.c addrs.c sendmsg.c recvmsg.c Versions.map
+-libsctp_la_LDFLAGS = -version-info 1:17:0 -Wl,--version-script=$(srcdir)/Versions.map
++libsctp_la_SOURCES = bindx.c connectx.c peeloff.c opt_info.c \
++ addrs.c sendmsg.c recvmsg.c Versions.map
++libsctp_la_LDFLAGS = -version-info \
++ @LIBSCTP_CURRENT@:@LIBSCTP_REVISION@:@LIBSCTP_AGE@ \
++ -Wl,--version-script=$(srcdir)/Versions.map
+diff --git a/src/withsctp/Makefile.am b/src/withsctp/Makefile.am
+index 70b1cca..1f6ca37 100644
+--- a/src/withsctp/Makefile.am
++++ b/src/withsctp/Makefile.am
+@@ -14,7 +14,8 @@ AM_CPPFLAGS=-I$(top_srcdir)/src/include
+ pkglib_LTLIBRARIES = libwithsctp.la
+ libwithsctp_la_SOURCES = sctp_load_libs.c sctp_socket.c sctp_bind.c \
+ sctp_sockopt.c sctp_socket.h
+-libwithsctp_la_LDFLAGS = -version-info 1:17:0 -ldl
++libwithsctp_la_LDFLAGS = -version-info \
++ @LIBWITHSCTP_CURRENT@:@LIBWITHSCTP_REVISION@:@LIBWITHSCTP_AGE@ -ldl
+
+ pkgdoc_DATA = sctp_load_libs.c sctp_socket.c sctp_bind.c \
+ sctp_sockopt.c sctp_socket.h checksctp.c
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-test_1_to_1_events.c-initialize-event-properly.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-test_1_to_1_events.c-initialize-event-properly.patch
new file mode 100644
index 0000000..621e6f4
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-test_1_to_1_events.c-initialize-event-properly.patch
@@ -0,0 +1,44 @@
+From e1e670defb84d51efdd124e5f3fa166a1a4b7c1d Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Tue, 25 Sep 2018 11:39:43 +0800
+Subject: [PATCH] test_1_to_1_events.c: initialize event properly
+
+Initialize event properly to avoid below
+Segmentation fault when run below test
+related to AUTH_NO_AUTH.
+
+ # ./test_1_to_1_events
+test_1_to_1_events.c 1 PASS : COMM_UP notification on client socket - SUCCESS
+test_1_to_1_events.c 2 PASS : COMM_UP notification on server socket - SUCCESS
+test_1_to_1_events.c 3 BROK : Got a datamsg, expecting notification
+DUMP_CORE sctputil.c: 187
+[ 1468.733938] test_1_to_1_eve[2376]: segfault at 0 ip 0000561a4a3d5079 sp 00007ffd49101580 error 6 in test_1_to_1_events[561a4a3d4000+2000]
+[ 1468.734479] Code: ff bf 0a 00 00 00 e8 e6 ef ff ff b9 c9 00 00 00 48 8d 15 61 13 00 00 bf 01 00 00 00 31 c0 48 8d 35 c7 0f 00 00 e8 97 f0
+Segmentation fault
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ src/func_tests/test_1_to_1_events.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/func_tests/test_1_to_1_events.c b/src/func_tests/test_1_to_1_events.c
+index 46439bf..a086832 100644
+--- a/src/func_tests/test_1_to_1_events.c
++++ b/src/func_tests/test_1_to_1_events.c
+@@ -92,9 +92,11 @@ main(int argc, char *argv[])
+ /* Create the client socket. */
+ clt_sk = test_socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
+
++ memset(&event, 0, sizeof(event));
+ event.sctp_data_io_event = 1;
+ event.sctp_association_event = 1;
+ event.sctp_shutdown_event = 1;
++ event.sctp_authentication_event = 1;
+ len = sizeof(struct sctp_event_subscribe);
+ test_setsockopt(svr_sk, SCTP_EVENTS, &event, len);
+ test_setsockopt(clt_sk, SCTP_EVENTS, &event, len);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch
new file mode 100644
index 0000000..2537bb9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch
@@ -0,0 +1,43 @@
+From 7c0ef4d441b3833e721df58f56e2cb8c81b34df4 Mon Sep 17 00:00:00 2001
+From: Xin Long <lucien.xin@gmail.com>
+Date: Thu, 16 Aug 2018 14:12:01 +0800
+Subject: [PATCH] withsctp: use @PACKAGE_VERSION@ in withsctp.h
+
+use @PACKAGE_VERSION@ to replace the hardcode version.
+
+Signed-off-by: Xin Long <lucien.xin@gmail.com>
+Acked-by: Neil Horman <nhorman@tuxdriver.com>
+Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
+---
+ Makefile.rules | 3 ++-
+ src/withsctp/withsctp.in | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.rules b/Makefile.rules
+index 83f5f0c..d3693fa 100644
+--- a/Makefile.rules
++++ b/Makefile.rules
+@@ -15,4 +15,5 @@
+ edit = @sed \
+ -e "s|\@bindir\@|$(bindir)|" \
+ -e "s|\@libdir\@|$(libdir)|" \
+- -e "s|\@PACKAGE\@|$(PACKAGE)|"
++ -e "s|\@PACKAGE\@|$(PACKAGE)|" \
++ -e "s|\@PACKAGE_VERSION\@|$(PACKAGE_VERSION)|"
+diff --git a/src/withsctp/withsctp.in b/src/withsctp/withsctp.in
+index 7f182ba..fda5ebc 100644
+--- a/src/withsctp/withsctp.in
++++ b/src/withsctp/withsctp.in
+@@ -2,7 +2,8 @@
+ # -*- sh -*-
+ LIBDIR=@libdir@/@PACKAGE@
+ BINDIR=@bindir@
+-export LD_PRELOAD=${LIBDIR}/libwithsctp.so.1.0.17
++LIBVER=@PACKAGE_VERSION@
++export LD_PRELOAD=${LIBDIR}/libwithsctp.so.${LIBVER}
+ if ! ${BINDIR}/checksctp 2> /dev/null
+ then
+ ${BINDIR}/checksctp;
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb
deleted file mode 100644
index 121cc99..0000000
--- a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-SUMMARY = "The Linux Kernel Stream Control Transmission Protocol (lksctp) project"
-HOMEPAGE = "http://lksctp.org"
-SECTION = "net"
-LICENSE = "LGPLv2.1 & GPLv2"
-
-LIC_FILES_CHKSUM = " \
- file://COPYING.lib;md5=0a1b79af951c42a9c8573533fbba9a92 \
- file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e \
-"
-
-SRCREV = "736b91d340e3f2519714f2930ed63b164d363511"
-
-PV .= "+git${SRCPV}"
-LK_REL = "1.0.17"
-
-SRC_URI = " \
- git://github.com/sctp/lksctp-tools.git \
- file://run-ptest \
- file://v4test.sh \
- file://v6test.sh \
-"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
-
-inherit autotools pkgconfig binconfig ptest
-
-do_install_ptest () {
- install -m 0755 ${WORKDIR}/v4test.sh ${D}${PTEST_PATH}
- install -m 0755 ${WORKDIR}/v6test.sh ${D}${PTEST_PATH}
- for testcase in `find ${B}/src/apps/.libs ${B}/src/func_tests/.libs -maxdepth 1 -type f -executable`; do
- install $testcase ${D}${PTEST_PATH}
- done
-}
-
-SOLIBVERSION="${LK_REL}"
-SOLIBMAJORVERSION="1"
-
-PACKAGES =+ "${PN}-withsctp ${PN}-utils"
-
-FILES_${PN} = " \
- ${libdir}/libsctp.so.${SOLIBVERSION} \
- ${libdir}/libsctp.so.${SOLIBMAJORVERSION} \
-"
-
-FILES_${PN}-withsctp = " \
- ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBVERSION} \
- ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBMAJORVERSION} \
-"
-
-FILES_${PN}-dev += " \
- ${libdir}/libsctp.so \
- ${libdir}/lksctp-tools/libwithsctp.so \
- ${datadir}/lksctp-tools/*.c \
- ${datadir}/lksctp-tools/*.h \
-"
-
-FILES_${PN}-utils = "${bindir}/*"
-
-RRECOMMENDS_${PN}-utils += "kernel-module-sctp"
-RRECOMMENDS_${PN}-ptest += "kernel-module-sctp"
diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.18.bb b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.18.bb
new file mode 100644
index 0000000..70cea6c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.18.bb
@@ -0,0 +1,69 @@
+SUMMARY = "The Linux Kernel Stream Control Transmission Protocol (lksctp) project"
+HOMEPAGE = "http://lksctp.org"
+SECTION = "net"
+LICENSE = "LGPLv2.1 & GPLv2"
+
+LIC_FILES_CHKSUM = " \
+ file://COPYING.lib;md5=0a1b79af951c42a9c8573533fbba9a92 \
+ file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e \
+"
+
+SRCREV = "1b077af62d83d53c34b1bde8bad6648149d5edf9"
+
+PV .= "+git${SRCPV}"
+LK_REL = "1.0.18"
+
+SRC_URI = " \
+ git://github.com/sctp/lksctp-tools.git \
+ file://0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch \
+ file://0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch \
+ file://0001-build-fix-netinet-sctp.h-not-to-be-installed.patch \
+ file://0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch \
+ file://0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch \
+ file://0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch \
+ file://0001-test_1_to_1_events.c-initialize-event-properly.patch \
+ file://run-ptest \
+ file://v4test.sh \
+ file://v6test.sh \
+"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
+
+inherit autotools-brokensep pkgconfig binconfig ptest
+
+do_install_ptest () {
+ install -m 0755 ${WORKDIR}/v4test.sh ${D}${PTEST_PATH}
+ install -m 0755 ${WORKDIR}/v6test.sh ${D}${PTEST_PATH}
+ for testcase in `find ${B}/src/apps/.libs ${B}/src/func_tests/.libs -maxdepth 1 -type f -executable`; do
+ install $testcase ${D}${PTEST_PATH}
+ done
+}
+
+SOLIBVERSION="${LK_REL}"
+SOLIBMAJORVERSION="1"
+
+PACKAGES =+ "${PN}-withsctp ${PN}-utils"
+
+FILES_${PN} = " \
+ ${libdir}/libsctp.so.${SOLIBVERSION} \
+ ${libdir}/libsctp.so.${SOLIBMAJORVERSION} \
+"
+
+FILES_${PN}-withsctp = " \
+ ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBVERSION} \
+ ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBMAJORVERSION} \
+"
+
+FILES_${PN}-dev += " \
+ ${libdir}/libsctp.so \
+ ${libdir}/lksctp-tools/libwithsctp.so \
+ ${datadir}/lksctp-tools/*.c \
+ ${datadir}/lksctp-tools/*.h \
+"
+
+FILES_${PN}-utils = "${bindir}/*"
+
+RRECOMMENDS_${PN}-utils += "kernel-module-sctp"
+RRECOMMENDS_${PN}-ptest += "kernel-module-sctp"
diff --git a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-potential-string-truncation-in-strncpy.patch b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-potential-string-truncation-in-strncpy.patch
new file mode 100644
index 0000000..e621d8f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-potential-string-truncation-in-strncpy.patch
@@ -0,0 +1,139 @@
+From 58b6d9a2efe101e5b80fd708e6f84c7ca779ce93 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 May 2018 20:27:43 -0700
+Subject: [PATCH] Fix potential string truncation in strncpy()
+
+GCC 8 complains about the string truncation during copy
+
+error: 'strncpy' specified bound 16 equals destination size
+
+Upstream-Status: Inappropriate [depricated component]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/listen-packet.c | 3 ++-
+ tests/listen.c | 3 ++-
+ tests/test2.c | 4 ++--
+ tests/test3.c | 3 ++-
+ tests/test4.c | 3 ++-
+ tests/test5.c | 3 ++-
+ tests/test6.c | 3 ++-
+ tests/test7.c | 3 ++-
+ 8 files changed, 16 insertions(+), 9 deletions(-)
+
+diff --git a/tests/listen-packet.c b/tests/listen-packet.c
+index e40af81..eae0c71 100644
+--- a/tests/listen-packet.c
++++ b/tests/listen-packet.c
+@@ -50,7 +50,8 @@ int main(int argc, char **argv) {
+ return 1;
+ }
+
+- strncpy(req.ifr_name, iface, IF_NAMESIZE);
++ strncpy(req.ifr_name, iface, IF_NAMESIZE - 1);
++ req.ifr_name[IF_NAMESIZE - 1] = '\0';
+ ret = ioctl(sd, SIOCGIFINDEX, &req);
+ if (ret < 0)
+ perror("ioctl: SIOCGIFINDEX");
+diff --git a/tests/listen.c b/tests/listen.c
+index 75c320b..5ce1ed9 100644
+--- a/tests/listen.c
++++ b/tests/listen.c
+@@ -47,7 +47,8 @@ int main(int argc, char **argv) {
+ return 1;
+ }
+
+- strncpy(req.ifr_name, iface, IFNAMSIZ);
++ strncpy(req.ifr_name, iface, IFNAMSIZ - 1);
++ req.ifr_name[IF_NAMESIZE - 1] = '\0';
+ ret = ioctl(sd, SIOCGIFHWADDR, &req);
+ if (ret < 0)
+ perror("ioctl: SIOCGIFHWADDR");
+diff --git a/tests/test2.c b/tests/test2.c
+index 58eb74b..5d02838 100644
+--- a/tests/test2.c
++++ b/tests/test2.c
+@@ -45,8 +45,8 @@ int main(int argc, char **argv) {
+ perror("socket");
+ return 1;
+ }
+-
+- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE);
++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1);
++ req.ifr_name[IF_NAMESIZE - 1] = '\0';
+ ret = ioctl(sd, SIOCGIFHWADDR, &req);
+ if (ret < 0)
+ perror("ioctl: SIOCGIFHWADDR");
+diff --git a/tests/test3.c b/tests/test3.c
+index fb36627..2f50a5a 100644
+--- a/tests/test3.c
++++ b/tests/test3.c
+@@ -46,7 +46,8 @@ int main(int argc, char **argv) {
+ return 1;
+ }
+
+- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE);
++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1);
++ req.ifr_name[IF_NAMESIZE - 1] = '\0';
+ ret = ioctl(sd, SIOCGIFHWADDR, &req);
+ if (ret < 0)
+ perror("ioctl: SIOCGIFHWADDR");
+diff --git a/tests/test4.c b/tests/test4.c
+index 33c274c..8737149 100644
+--- a/tests/test4.c
++++ b/tests/test4.c
+@@ -46,7 +46,8 @@ int main(int argc, char **argv) {
+ return 1;
+ }
+
+- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE);
++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1);
++ req.ifr_name[IF_NAMESIZE - 1] = '\0';
+ ret = ioctl(sd, SIOCGIFHWADDR, &req);
+ if (ret < 0)
+ perror("ioctl: SIOCGIFHWADDR");
+diff --git a/tests/test5.c b/tests/test5.c
+index 4439dfa..28db562 100644
+--- a/tests/test5.c
++++ b/tests/test5.c
+@@ -45,7 +45,8 @@ int main(int argc, char **argv) {
+ return 1;
+ }
+
+- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE);
++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1);
++ req.ifr_name[IF_NAMESIZE - 1] = '\0';
+ ret = ioctl(sd, SIOCGIFADDR, &req);
+ if (ret < 0) {
+ perror("ioctl: SIOCGIFADDR");
+diff --git a/tests/test6.c b/tests/test6.c
+index e375bfb..ce7de59 100644
+--- a/tests/test6.c
++++ b/tests/test6.c
+@@ -45,7 +45,8 @@ int main(int argc, char **argv) {
+ return 1;
+ }
+
+- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE);
++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1);
++ req.ifr_name[IF_NAMESIZE - 1] = '\0';
+ ret = ioctl(sd, SIOCGIFADDR, &req);
+ if (ret < 0) {
+ perror("ioctl: SIOCGIFADDR");
+diff --git a/tests/test7.c b/tests/test7.c
+index e9a5a55..37da22d 100644
+--- a/tests/test7.c
++++ b/tests/test7.c
+@@ -58,7 +58,8 @@ int main(int argc, char **argv) {
+ if (ret)
+ perror("setsockopt");
+
+- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE);
++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1);
++ req.ifr_name[IF_NAMESIZE - 1] = '\0';
+ ret = ioctl(sd, SIOCGIFHWADDR, &req);
+ if (ret < 0)
+ perror("ioctl: SIOCGIFHWADDR");
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
index d0fe59c..b70c43f 100644
--- a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
@@ -15,6 +15,7 @@
file://0001-src-iz.c-Undef-dprintf-before-redefining.patch \
file://0001-Remove-newline-from-format-line.patch \
file://0001-coordinator-Fix-strncpy-range-warning.patch \
+ file://0001-Fix-potential-string-truncation-in-strncpy.patch \
"
SRCREV = "1c2d8674cc6f4b1166a066e8822e295c105ae7a2"
diff --git a/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.bb b/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.bb
deleted file mode 100644
index fd3d171..0000000
--- a/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "A high-performance memory object caching system"
-DESCRIPTION = "\
- memcached optimizes specific high-load serving applications that are designed \
- to take advantage of its versatile no-locking memory access system. Clients \
- are available in several different programming languages, to suit the needs \
- of the specific application. Traditionally this has been used in mod_perl \
- apps to avoid storing large chunks of data in Apache memory, and to share \
- this burden across several machines."
-SECTION = "web"
-HOMEPAGE = "http://memcached.org/"
-LICENSE = "BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=7e5ded7363d335e1bb18013ca08046ff"
-
-inherit autotools
-
-DEPENDS += "libevent"
-RDEPENDS_${PN} += "perl perl-module-posix perl-module-autoloader \
- perl-module-tie-hash bash \
- "
-
-SRC_URI = "http://www.memcached.org/files/${BP}.tar.gz \
- file://memcached-add-hugetlbfs-check.patch \
- "
-SRC_URI[md5sum] = "81326513f60d7ba482f8131975cd55ae"
-SRC_URI[sha256sum] = "c001f812024bb461b5e4d7d0506daab63dff9614eea26f46536c3b7e1e601c32"
-
-# set the same COMPATIBLE_HOST as libhugetlbfs
-COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64|arm).*-linux'
-
-python __anonymous () {
- endianness = d.getVar('SITEINFO_ENDIANNESS')
- if endianness == 'le':
- d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=little")
- else:
- d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=big")
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[hugetlbfs] = "--enable-hugetlbfs, --disable-hugetlbfs, libhugetlbfs"
-
-inherit update-rc.d
-
-INITSCRIPT_NAME = "memcached"
-INITSCRIPT_PARAMS = "defaults"
-
-do_install_append() {
- install -D -m 755 ${S}/scripts/memcached-init ${D}${sysconfdir}/init.d/memcached
- mkdir -p ${D}/usr/share/memcached/scripts
- install -m 755 ${S}/scripts/memcached-tool ${D}/usr/share/memcached/scripts
- install -m 755 ${S}/scripts/start-memcached ${D}/usr/share/memcached/scripts
-}
diff --git a/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.10.bb b/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.10.bb
new file mode 100644
index 0000000..d2cafc9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.10.bb
@@ -0,0 +1,52 @@
+SUMMARY = "A high-performance memory object caching system"
+DESCRIPTION = "\
+ memcached optimizes specific high-load serving applications that are designed \
+ to take advantage of its versatile no-locking memory access system. Clients \
+ are available in several different programming languages, to suit the needs \
+ of the specific application. Traditionally this has been used in mod_perl \
+ apps to avoid storing large chunks of data in Apache memory, and to share \
+ this burden across several machines."
+SECTION = "web"
+HOMEPAGE = "http://memcached.org/"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=7e5ded7363d335e1bb18013ca08046ff"
+
+inherit autotools
+
+DEPENDS += "libevent"
+RDEPENDS_${PN} += "perl perl-module-posix perl-module-autoloader \
+ perl-module-tie-hash bash \
+ "
+
+SRC_URI = "http://www.memcached.org/files/${BP}.tar.gz \
+ file://memcached-add-hugetlbfs-check.patch \
+ "
+SRC_URI[md5sum] = "8462616b554183a75845b03c56837cca"
+SRC_URI[sha256sum] = "494c060dbd96d546c74ab85a3cc3984d009b4423767ac33e05dd2340c01f1c4b"
+
+# set the same COMPATIBLE_HOST as libhugetlbfs
+COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64|arm).*-linux'
+
+python __anonymous () {
+ endianness = d.getVar('SITEINFO_ENDIANNESS')
+ if endianness == 'le':
+ d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=little")
+ else:
+ d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=big")
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[hugetlbfs] = "--enable-hugetlbfs, --disable-hugetlbfs, libhugetlbfs"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "memcached"
+INITSCRIPT_PARAMS = "defaults"
+
+do_install_append() {
+ install -D -m 755 ${S}/scripts/memcached-init ${D}${sysconfdir}/init.d/memcached
+ mkdir -p ${D}/usr/share/memcached/scripts
+ install -m 755 ${S}/scripts/memcached-tool ${D}/usr/share/memcached/scripts
+ install -m 755 ${S}/scripts/start-memcached ${D}/usr/share/memcached/scripts
+}
diff --git a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.11.bb b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.11.bb
deleted file mode 100644
index 2ad75bd..0000000
--- a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.11.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Network Block Device"
-HOMEPAGE = "http://nbd.sourceforge.net"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "glib-2.0"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "73d11644a28b9f335292cdb3bdc4b74b"
-SRC_URI[sha256sum] = "14420f74cb16dc609a9302ed1efd653064bed7a8357e9d73daabc33608e3f2a0"
-
-inherit autotools pkgconfig
-
-PACKAGES = "${PN}-client ${PN}-server ${PN}-dbg ${PN}-trdump ${PN}-doc"
-
-FILES_${PN}-client = "${sbindir}/${BPN}-client"
-FILES_${PN}-server = "${bindir}/${BPN}-server"
-FILES_${PN}-trdump = "${bindir}/${BPN}-trdump"
diff --git a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.17.bb b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.17.bb
new file mode 100644
index 0000000..3560236
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.17.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Network Block Device"
+HOMEPAGE = "http://nbd.sourceforge.net"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "glib-2.0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "98b74c655ed94a66686c5ba19480d98e"
+SRC_URI[sha256sum] = "d95c6bb1a3ab33b953af99b73fb4833e123bd25433513b32d57dbeb1a0a0d189"
+
+inherit autotools pkgconfig
+
+PACKAGES = "${PN}-client ${PN}-server ${PN}-dbg ${PN}-trdump ${PN}-doc"
+
+FILES_${PN}-client = "${sbindir}/${BPN}-client"
+FILES_${PN}-server = "${bindir}/${BPN}-server"
+FILES_${PN}-trdump = "${bindir}/${BPN}-trdump"
diff --git a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
index cebc1d9..ec48797 100644
--- a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
@@ -19,13 +19,10 @@
EXTRA_OECONF += "PERL=${USRBINPATH}/perl"
-LDFLAGS += "-fuse-ld=gold"
-LDFLAGS_remove_riscv64 = "-fuse-ld=gold"
-
-TOOLCHAIN = "gcc"
-
USE_NLS = "yes"
+EXTRA_OECONF += "--disable-rpath"
+
do_configure_prepend() {
cp ${STAGING_DATADIR_NATIVE}/gettext/gettext.h ${S}/include
${S}/autogen.sh
diff --git a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch
index 0966b65..929f63f 100644
--- a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch
+++ b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch
@@ -1,40 +1,47 @@
-From ccd166b73eaae4dd1e1785c63ceb9b303568ed46 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 21 Mar 2017 11:30:49 -0700
+From 3da48ec13a44b71ca51adbc803b42c1b29a43f57 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 14:03:51 +0800
Subject: [PATCH] bundle own base64 encode/decode functions
Not all libc implementations provide it.
as an aside libresolv is no longer needed
+Upstream-Status: Pending
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Update to version 1.190-2
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
Makefile | 4 +-
base64.c | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- netcat.c | 2 +
+ netcat.c | 3 +
socks.c | 3 +
- 4 files changed, 320 insertions(+), 2 deletions(-)
+ 4 files changed, 321 insertions(+), 2 deletions(-)
create mode 100644 base64.c
-Index: netcat-openbsd-1.105/Makefile
-===================================================================
---- netcat-openbsd-1.105.orig/Makefile
-+++ netcat-openbsd-1.105/Makefile
-@@ -1,9 +1,9 @@
- # $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $
+diff --git a/Makefile b/Makefile
+index 8247cfd..b8d8547 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,10 +1,10 @@
+ # $OpenBSD: Makefile,v 1.7 2015/09/11 21:07:01 beck Exp $
PROG= nc
-SRCS= netcat.c atomicio.c socks.c
+SRCS= netcat.c atomicio.c socks.c base64.c
--LIBS= `pkg-config --libs libbsd` -lresolv
-+LIBS= `pkg-config --libs libbsd`
+ PKG_CONFIG ?= pkg-config
+-LIBS= `$(PKG_CONFIG) --libs libbsd` -lresolv
++LIBS= `$(PKG_CONFIG) --libs libbsd`
OBJS= $(SRCS:.c=.o)
CFLAGS= -g -O2
LDFLAGS= -Wl,--no-add-needed
-Index: netcat-openbsd-1.105/base64.c
-===================================================================
+diff --git a/base64.c b/base64.c
+new file mode 100644
+index 0000000..b0ee6c2
--- /dev/null
-+++ netcat-openbsd-1.105/base64.c
++++ b/base64.c
@@ -0,0 +1,313 @@
+/*
+ * Copyright (c) 1996-1999 by Internet Software Consortium.
@@ -349,31 +356,34 @@
+
+ return (tarindex);
+}
-Index: netcat-openbsd-1.105/netcat.c
-===================================================================
---- netcat-openbsd-1.105.orig/netcat.c
-+++ netcat-openbsd-1.105/netcat.c
-@@ -169,6 +169,9 @@ static int connect_with_timeout(int fd,
- socklen_t salen, int ctimeout);
+diff --git a/netcat.c b/netcat.c
+index a0fb51b..9c4ed23 100644
+--- a/netcat.c
++++ b/netcat.c
+@@ -240,6 +240,9 @@ static int connect_with_timeout(int fd, const struct sockaddr *sa,
+
static void quit();
-+int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize);
-+int b64_pton(char const *src, u_char *target, size_t targsize);
++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize);
++int b64_pton(char const *src, u_char *target, size_t targsize);
+
int
main(int argc, char *argv[])
{
-Index: netcat-openbsd-1.105/socks.c
-===================================================================
---- netcat-openbsd-1.105.orig/socks.c
-+++ netcat-openbsd-1.105/socks.c
+diff --git a/socks.c b/socks.c
+index 9068f39..c576f6b 100644
+--- a/socks.c
++++ b/socks.c
@@ -53,6 +53,9 @@
#define SOCKS_DOMAIN 3
#define SOCKS_IPV6 4
-+int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize);
-+int b64_pton(char const *src, u_char *target, size_t targsize);
++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize);
++int b64_pton(char const *src, u_char *target, size_t targsize);
+
int remote_connect(const char *, const char *, struct addrinfo);
int socks_connect(const char *, const char *, struct addrinfo,
const char *, const char *, struct addrinfo, int,
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb
deleted file mode 100644
index 9d7420f..0000000
--- a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-require netcat.inc
-SUMMARY = "OpenBSD Netcat"
-HOMEPAGE = "http://ftp.debian.org"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee6bbaacb5db5f2973818f0902c3ae6f"
-
-DEPENDS += "glib-2.0 libbsd"
-do_patch[depends] = "quilt-native:do_populate_sysroot"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \
- ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz;name=netcat-patch;subdir=${BP} \
- file://0001-bundle-own-base64-encode-decode-functions.patch \
- "
-
-SRC_URI[netcat.md5sum] = "7e67b22f1ad41a1b7effbb59ff28fca1"
-SRC_URI[netcat.sha256sum] = "40653fe66c1516876b61b07e093d826e2a5463c5d994f1b7e6ce328f3edb211e"
-SRC_URI[netcat-patch.md5sum] = "e914f8eb7eda5c75c679dd77787ac76b"
-SRC_URI[netcat-patch.sha256sum] = "eee759327ffea293e81d0dde67921b7fcfcad279ffd7a2c9d037bbc8f882b363"
-
-inherit pkgconfig
-
-EXTRA_OEMAKE += "'LDFLAGS=${LDFLAGS}'"
-
-do_configure[noexec] = "1"
-
-netcat_do_patch() {
- cd ${S}
- quilt pop -a || true
- if [ -d ${S}/.pc-netcat ]; then
- rm -rf ${S}/.pc
- mv ${S}/.pc-netcat ${S}/.pc
- QUILT_PATCHES=${S}/debian/patches quilt pop -a
- rm -rf ${S}/.pc ${S}/debian
- fi
- QUILT_PATCHES=${S}/debian/patches quilt push -a
- mv ${S}/.pc ${S}/.pc-netcat
-}
-
-do_unpack[cleandirs] += "${S}"
-
-python do_patch() {
- bb.build.exec_func('netcat_do_patch', d)
- bb.build.exec_func('patch_do_patch', d)
-}
-
-do_compile() {
- cd ${S}
- pkgrel=4
- oe_runmake CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"${pkgrel}\\\"\""
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 755 ${S}/nc ${D}${bindir}/nc.${BPN}
-}
-ALTERNATIVE_PRIORITY = "60"
diff --git a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb
new file mode 100644
index 0000000..defc05c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb
@@ -0,0 +1,56 @@
+require netcat.inc
+SUMMARY = "OpenBSD Netcat"
+HOMEPAGE = "http://ftp.debian.org"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=f39e60ae4ea9fdb559c833be2e59de99"
+
+DEPENDS += "glib-2.0 libbsd"
+do_patch[depends] = "quilt-native:do_populate_sysroot"
+
+SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/netcat-openbsd/1.190-2/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \
+ https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/netcat-openbsd/1.190-2/netcat-openbsd_${PV}-2.debian.tar.xz;name=netcat-patch;subdir=${BP} \
+ file://0001-bundle-own-base64-encode-decode-functions.patch \
+ "
+
+SRC_URI[netcat.md5sum] = "dd32fd1d7903b541ad8709794539b959"
+SRC_URI[netcat.sha256sum] = "68ccc448392c05ec51baed0167a72b8c650454f990b895d6e6877d416a38e536"
+SRC_URI[netcat-patch.md5sum] = "78058b7af0170654b877b02c37716cdf"
+SRC_URI[netcat-patch.sha256sum] = "88088af3f520c7825e59bc133d65e70fc4a30139d451c6faabbd9f240bc78374"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE += "'LDFLAGS=${LDFLAGS}'"
+
+do_configure[noexec] = "1"
+
+netcat_do_patch() {
+ cd ${S}
+ quilt pop -a || true
+ if [ -d ${S}/.pc-netcat ]; then
+ rm -rf ${S}/.pc
+ mv ${S}/.pc-netcat ${S}/.pc
+ QUILT_PATCHES=${S}/debian/patches quilt pop -a
+ rm -rf ${S}/.pc
+ fi
+ QUILT_PATCHES=${S}/debian/patches quilt push -a
+ mv ${S}/.pc ${S}/.pc-netcat
+}
+
+do_unpack[cleandirs] += "${S}"
+
+python do_patch() {
+ bb.build.exec_func('netcat_do_patch', d)
+ bb.build.exec_func('patch_do_patch', d)
+}
+
+do_compile() {
+ cd ${S}
+ pkgrel=4
+ oe_runmake CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"${pkgrel}\\\"\""
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${S}/nc ${D}${bindir}/nc.${BPN}
+}
+ALTERNATIVE_PRIORITY = "60"
diff --git a/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb b/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
index 9a6f60e..a4a9c91 100644
--- a/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
+++ b/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
@@ -12,6 +12,8 @@
SRC_URI = "git://pagure.io/netcf.git;protocol=https \
"
+UPSTREAM_CHECK_GITTAGREGEX = "release-(?P<pver>(\d+(\.\d+)+))"
+
DEPENDS += "augeas libnl libxslt libxml2 gnulib"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch b/meta-openembedded/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch
new file mode 100644
index 0000000..515737c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch
@@ -0,0 +1,50 @@
+From 51a092ebb36dcc6180ceb93a9777258e826d9990 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 26 Sep 2018 18:11:10 -0700
+Subject: [PATCH] netlib.c: Move including sched.h out og function
+
+The shutdown_control() has this code where system headers are being
+included inside function body and this results in compile errors on musl
+especially when sched.h is included because sched.h defines a macro
+which defines a static function. This means it ends up being a static
+function inside another function and compiler calls it out
+
+In function 'bind_to_specific_processor':
+|
+/mnt/a/yoe/build/tmp/work/i586-yoe-linux-musl/netperf/2.7.0+git999-r0/recipe-sysroot/usr/include/sched.h:102:1:
+error: invalid storage class for function '__CPU_AND_S'
+| __CPU_op_func_S(AND, &)
+| ^~~~~~~~~~~~~~~
+
+Moving the definition out of function definition fixes the problem
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/netlib.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/netlib.c b/src/netlib.c
+index 9258424..60b032d 100644
+--- a/src/netlib.c
++++ b/src/netlib.c
+@@ -2262,6 +2262,10 @@ shutdown_control()
+
+ }
+
++#if HAVE_SCHED_SETAFFINITY
++#include <sched.h>
++#endif
++
+ /*
+ bind_to_specific_processor will bind the calling process to the
+ processor in "processor" It has lots of ugly ifdefs to deal with
+@@ -2308,7 +2312,6 @@ bind_to_specific_processor(int processor_affinity, int use_cpu_map)
+ value will not tell you if you are bound vs unbound. */
+ bindprocessor(BINDPROCESS,getpid(),(cpu_t)mapped_affinity);
+ #elif HAVE_SCHED_SETAFFINITY
+-#include <sched.h>
+ /* in theory this should cover systems with more CPUs than bits in a
+ long, without having to specify __USE_GNU. we "cheat" by taking
+ defines from /usr/include/bits/sched.h, which we ass-u-me is
diff --git a/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb b/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb
index f0e0f9c..8921ea7 100644
--- a/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb
@@ -8,10 +8,12 @@
PV = "2.7.0+git${SRCPV}"
-SRC_URI="git://github.com/HewlettPackard/netperf.git \
- file://cpu_set.patch \
- file://vfork.patch \
- file://init"
+SRC_URI = "git://github.com/HewlettPackard/netperf.git \
+ file://cpu_set.patch \
+ file://vfork.patch \
+ file://init \
+ file://0001-netlib.c-Move-including-sched.h-out-og-function.patch \
+ "
SRCREV = "f482bab49fcedee46fc5b755da127f608325cd13"
diff --git a/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb b/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
index 4e27e32..bb40166 100644
--- a/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
@@ -20,7 +20,7 @@
S = "${WORKDIR}/git"
-DEPENDS = "libtirpc libnsl2"
+DEPENDS = "libtirpc libnsl2 virtual/crypt"
inherit autotools systemd
SYSTEMD_SERVICE_${PN} = "domainname.service"
diff --git a/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch b/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch
new file mode 100644
index 0000000..d6f7eb5
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch
@@ -0,0 +1,74 @@
+From d22ddc73f00ed056032a635ee8379305ec83bf81 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Wed, 11 Jul 2018 12:02:50 +0800
+Subject: [PATCH] plugins/Makefile.am: fix for automake 1.16.1
+
+Fixed:
+| i586-poky-linux-gcc: error: netflowPlugin.o: No such file or directory
+| i586-poky-linux-gcc: error: unrecognized command line option '-flat_namespace'; did you mean '-Wnamespaces'?
+| i586-poky-linux-gcc: fatal error: no input files
+
+The previous code make things complicated, but we don't have to, let libtool do
+most of the things can fix the problem.
+
+Upstream-Status: Pending [ntop is not longer maintained any more, we need consider moving to ntopng]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ plugins/Makefile.am | 34 ++++++----------------------------
+ 1 file changed, 6 insertions(+), 28 deletions(-)
+
+diff --git a/plugins/Makefile.am b/plugins/Makefile.am
+index 64492e0..bcd0c10 100644
+--- a/plugins/Makefile.am
++++ b/plugins/Makefile.am
+@@ -69,40 +69,18 @@ libsflowPlugin_la_CFLAGS = $(AM_CFLAGS)
+ # by default ntop looks for plugins in the plugins/ subdirectory
+ #
+
+-
+-.libs/libnetflowPlugin.so@SO_VERSION_PATCH@:
+- @if test -f libnetflowPlugin_la-netflowPlugin.o; then \
+- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/libnetflowPlugin.so@SO_VERSION_PATCH@ libnetflowPlugin_la-netflowPlugin.o; \
+- else \
+- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/libnetflowPlugin.so@SO_VERSION_PATCH@ netflowPlugin.o; \
+- fi
+-
+-netflowPlugin.so$(EXEEXT): .libs/libnetflowPlugin.so@SO_VERSION_PATCH@
+- @$(LN_S) .libs/libnetflowPlugin.so netflowPlugin.so
++netflowPlugin.so$(EXEEXT): libnetflowPlugin.la
++ @$(LN_S) -f .libs/libnetflowPlugin.so netflowPlugin.so
+
+ ###############
+
+-.libs/librrdPlugin.so@SO_VERSION_PATCH@:
+- @if test -f librrdPlugin_la-rrdPlugin.o; then \
+- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/librrdPlugin.so@SO_VERSION_PATCH@ librrdPlugin_la-rrdPlugin.o; \
+- else \
+- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/librrdPlugin.so@SO_VERSION_PATCH@ rrdPlugin.o; \
+- fi
+-
+-rrdPlugin.so$(EXEEXT): .libs/librrdPlugin.so@SO_VERSION_PATCH@
+- @$(LN_S) .libs/librrdPlugin.so rrdPlugin.so
++rrdPlugin.so$(EXEEXT): librrdPlugin.la
++ @$(LN_S) -f .libs/librrdPlugin.so rrdPlugin.so
+
+ ###############
+
+-.libs/libsflowPlugin.so@SO_VERSION_PATCH@:
+- @if test -f libsflowPlugin_la-sflowPlugin.o; then \
+- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/libsflowPlugin.so@SO_VERSION_PATCH@ libsflowPlugin_la-sflowPlugin.o; \
+- else \
+- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/libsflowPlugin.so@SO_VERSION_PATCH@ sflowPlugin.o; \
+- fi
+-
+-sflowPlugin.so$(EXEEXT): .libs/libsflowPlugin.so@SO_VERSION_PATCH@
+- @$(LN_S) .libs/libsflowPlugin.so sflowPlugin.so
++sflowPlugin.so$(EXEEXT): libsflowPlugin.la
++ @$(LN_S) -f .libs/libsflowPlugin.so sflowPlugin.so
+
+ ###############
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb b/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb
index 298fbec..2a7a7f2 100644
--- a/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb
@@ -17,10 +17,13 @@
file://ntop.service \
file://use-static-inline.patch \
file://0001-nDPI-Include-sys-types.h.patch \
+ file://0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch \
"
SRC_URI[md5sum] = "01710b6925a8a5ffe1a41b8b512ebd69"
SRC_URI[sha256sum] = "7e8e84cb14d2173beaca4d4cb991a14d84a4bef84ec37b2276bc363f45c52ef8"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ntop/files/ntop/Stable"
+
inherit autotools-brokensep useradd pythonnative pkgconfig systemd
DEPENDS = "geoip rrdtool python zlib libpcap gdbm"
diff --git a/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch b/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch
new file mode 100644
index 0000000..571db75
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch
@@ -0,0 +1,15 @@
+--- ntp-4.2.8p12.original/sntp/libopts/m4/libopts.m4 2018-11-12 17:54:57.747220846 +1300
++++ ntp-4.2.8p12/sntp/libopts/m4/libopts.m4 2018-11-12 18:00:50.626211641 +1300
+@@ -114,12 +114,6 @@
+ AC_PROG_SED
+ [while :
+ do
+- POSIX_SHELL=`which bash`
+- test -x "$POSIX_SHELL" && break
+- POSIX_SHELL=`which dash`
+- test -x "$POSIX_SHELL" && break
+- POSIX_SHELL=/usr/xpg4/bin/sh
+- test -x "$POSIX_SHELL" && break
+ POSIX_SHELL=`/bin/sh -c '
+ exec 2>/dev/null
+ if ! true ; then exit 1 ; fi
diff --git a/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-respect-source-date-epoch.patch b/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-respect-source-date-epoch.patch
new file mode 100644
index 0000000..58e71c3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-respect-source-date-epoch.patch
@@ -0,0 +1,16 @@
+--- ntp-4.2.8p12.original/scripts/build/mkver.in 2018-11-12 14:06:49.333020430 +1300
++++ ntp-4.2.8p12/scripts/build/mkver.in 2018-11-12 14:15:04.947480167 +1300
+@@ -15,7 +15,12 @@
+ *) ConfStr="${ConfStr}-@VER_SUFFIX@" ;;
+ esac
+
+-ConfStr="$ConfStr `LC_TIME=C TZ=UTC date`"
++if [ -n "$SOURCE_DATE_EPOCH" ]; then
++ ConfStr="$ConfStr `LC_TIME=C TZ=UTC date -d@$SOURCE_DATE_EPOCH 2>/dev/null`" ||
++ ConfStr="$ConfStr `LC_TIME=C TZ=UTC date -r $SOURCE_DATE_EPOCH`"
++else
++ ConfStr="$ConfStr `LC_TIME=C TZ=UTC date`"
++fi
+
+ if [ ! -f .version ]; then
+ echo 0 > .version
diff --git a/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb
deleted file mode 100644
index c698fa0..0000000
--- a/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb
+++ /dev/null
@@ -1,172 +0,0 @@
-SUMMARY = "Network Time Protocol daemon and utilities"
-DESCRIPTION = "The Network Time Protocol (NTP) is used to \
-synchronize the time of a computer client or server to \
-another server or reference time source, such as a radio \
-or satellite receiver or modem."
-HOMEPAGE = "http://support.ntp.org"
-SECTION = "net"
-LICENSE = "NTP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=e877a1d567a6a58996d2b66e3e387003"
-
-DEPENDS = "libevent"
-
-SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \
- file://ntp-4.2.4_p6-nano.patch \
- file://ntpd \
- file://ntp.conf \
- file://ntpdate \
- file://ntpdate.default \
- file://ntpdate.service \
- file://ntpd.service \
- file://sntp.service \
- file://sntp \
- file://ntpd.list \
-"
-
-SRC_URI[md5sum] = "00950ca2855579541896513e78295361"
-SRC_URI[sha256sum] = "f14a39f753688252d683ff907035ffff106ba8d3db21309b742e09b5c3cd278e"
-
-inherit autotools update-rc.d useradd systemd pkgconfig
-
-# The ac_cv_header_readline_history is to stop ntpdc depending on either
-# readline or curses
-EXTRA_OECONF += "--with-net-snmp-config=no \
- --without-ntpsnmpd \
- ac_cv_header_readline_history_h=no \
- --with-yielding_select=yes \
- --with-locfile=redhat \
- --without-rpath \
- "
-CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
-
-USERADD_PACKAGES = "${PN}"
-NTP_USER_HOME ?= "/var/lib/ntp"
-USERADD_PARAM_${PN} = "--system --home-dir ${NTP_USER_HOME} \
- --no-create-home \
- --shell /bin/false --user-group ntp"
-
-# NB: debug is default-enabled by NTP; keep it default-enabled here.
-PACKAGECONFIG ??= "cap debug refclocks openssl \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \
- --with-openssl-incdir=${STAGING_INCDIR} \
- --with-crypto, \
- --without-openssl --without-crypto, \
- openssl"
-PACKAGECONFIG[cap] = "--enable-linuxcaps,--disable-linuxcaps,libcap"
-PACKAGECONFIG[readline] = "--with-lineeditlibs,--without-lineeditlibs,readline"
-PACKAGECONFIG[refclocks] = "--enable-all-clocks,--disable-all-clocks,pps-tools"
-PACKAGECONFIG[debug] = "--enable-debugging,--disable-debugging"
-PACKAGECONFIG[mdns] = "ac_cv_header_dns_sd_h=yes,ac_cv_header_dns_sd_h=no,mdns"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 644 ${WORKDIR}/ntp.conf ${D}${sysconfdir}
- install -m 755 ${WORKDIR}/ntpd ${D}${sysconfdir}/init.d
- install -d ${D}${bindir}
- install -m 755 ${WORKDIR}/ntpdate ${D}${bindir}/ntpdate-sync
-
- install -m 755 -d ${D}${NTP_USER_HOME}
- chown ntp:ntp ${D}${NTP_USER_HOME}
-
- # Fix hardcoded paths in scripts
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
- sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
- sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${bindir}/ntpdate-sync
- sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/ntptrace
- sed -i '/use/i use warnings;' ${D}${sbindir}/ntptrace
- sed -i '1s,#!.*perl,#! ${bindir}/env perl,' ${D}${sbindir}/ntp-wait
- sed -i '/use/i use warnings;' ${D}${sbindir}/ntp-wait
- sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/calc_tickadj
- sed -i '/use/i use warnings;' ${D}${sbindir}/calc_tickadj
-
- install -d ${D}/${sysconfdir}/default
- install -m 644 ${WORKDIR}/ntpdate.default ${D}${sysconfdir}/default/ntpdate
- install -m 0644 ${WORKDIR}/sntp ${D}${sysconfdir}/default/
-
- install -d ${D}/${sysconfdir}/network/if-up.d
- ln -s ${bindir}/ntpdate-sync ${D}/${sysconfdir}/network/if-up.d
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/ntpdate.service ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/ntpd.service ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/sntp.service ${D}${systemd_unitdir}/system/
-
- install -d ${D}${systemd_unitdir}/ntp-units.d
- install -m 0644 ${WORKDIR}/ntpd.list ${D}${systemd_unitdir}/ntp-units.d/60-ntpd.list
-
- # Remove an empty libexecdir.
- rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
-}
-
-PACKAGES += "ntpdate sntp ${PN}-tickadj ${PN}-utils"
-# NOTE: you don't need ntpdate, use "ntpd -q -g -x"
-
-# ntp originally includes tickadj. It's split off for inclusion in small firmware images on platforms
-# with wonky clocks (e.g. OpenSlug)
-RDEPENDS_${PN} = "${PN}-tickadj"
-# ntpd require libgcc for execution
-RDEPENDS_${PN} += "libgcc"
-# Handle move from bin to utils package
-RPROVIDES_${PN}-utils = "${PN}-bin"
-RREPLACES_${PN}-utils = "${PN}-bin"
-RCONFLICTS_${PN}-utils = "${PN}-bin"
-
-SYSTEMD_PACKAGES = "${PN} ntpdate sntp"
-SYSTEMD_SERVICE_${PN} = "ntpd.service"
-SYSTEMD_SERVICE_ntpdate = "ntpdate.service"
-SYSTEMD_SERVICE_sntp = "sntp.service"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-
-RPROVIDES_ntpdate += "ntpdate-systemd"
-RREPLACES_ntpdate += "ntpdate-systemd"
-RCONFLICTS_ntpdate += "ntpdate-systemd"
-
-RSUGGESTS_${PN} = "iana-etc"
-
-FILES_${PN} = "${sbindir}/ntpd.ntp ${sysconfdir}/ntp.conf ${sysconfdir}/init.d/ntpd ${libdir} \
- ${NTP_USER_HOME} \
- ${systemd_unitdir}/ntp-units.d/60-ntpd.list ${libexecdir}\
-"
-FILES_${PN}-tickadj = "${sbindir}/tickadj"
-FILES_${PN}-utils = "${sbindir} ${datadir}/ntp/lib"
-RDEPENDS_${PN}-utils += "perl"
-FILES_ntpdate = "${sbindir}/ntpdate \
- ${sysconfdir}/network/if-up.d/ntpdate-sync \
- ${bindir}/ntpdate-sync \
- ${sysconfdir}/default/ntpdate \
- ${systemd_unitdir}/system/ntpdate.service \
-"
-FILES_sntp = "${sbindir}/sntp \
- ${sysconfdir}/default/sntp \
- ${systemd_unitdir}/system/sntp.service \
- "
-
-CONFFILES_${PN} = "${sysconfdir}/ntp.conf"
-CONFFILES_ntpdate = "${sysconfdir}/default/ntpdate"
-
-INITSCRIPT_NAME = "ntpd"
-# No dependencies, so just go in at the standard level (20)
-INITSCRIPT_PARAMS = "defaults"
-
-pkg_postinst_ntpdate() {
- if ! grep -q -s ntpdate $D/var/spool/cron/root; then
- echo "adding crontab"
- test -d $D/var/spool/cron || mkdir -p $D/var/spool/cron
- echo "30 * * * * ${bindir}/ntpdate-sync silent" >> $D/var/spool/cron/root
- fi
-}
-
-inherit update-alternatives
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE_${PN} = "ntpd"
-ALTERNATIVE_LINK_NAME[ntpd] = "${sbindir}/ntpd"
diff --git a/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p12.bb b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p12.bb
new file mode 100644
index 0000000..53e4129
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p12.bb
@@ -0,0 +1,175 @@
+SUMMARY = "Network Time Protocol daemon and utilities"
+DESCRIPTION = "The Network Time Protocol (NTP) is used to \
+synchronize the time of a computer client or server to \
+another server or reference time source, such as a radio \
+or satellite receiver or modem."
+HOMEPAGE = "http://support.ntp.org"
+SECTION = "net"
+LICENSE = "NTP"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=e877a1d567a6a58996d2b66e3e387003"
+
+DEPENDS = "libevent"
+
+SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \
+ file://ntp-4.2.4_p6-nano.patch \
+ file://reproducibility-fixed-path-to-posix-shell.patch \
+ file://reproducibility-respect-source-date-epoch.patch \
+ file://ntpd \
+ file://ntp.conf \
+ file://ntpdate \
+ file://ntpdate.default \
+ file://ntpdate.service \
+ file://ntpd.service \
+ file://sntp.service \
+ file://sntp \
+ file://ntpd.list \
+"
+
+SRC_URI[md5sum] = "1522d66574bae14abb2622746dad2bdc"
+SRC_URI[sha256sum] = "709b222b5013d77d26bfff532b5ea470a8039497ef29d09363931c036cb30454"
+
+inherit autotools update-rc.d useradd systemd pkgconfig
+
+# The ac_cv_header_readline_history is to stop ntpdc depending on either
+# readline or curses
+EXTRA_OECONF += "--with-net-snmp-config=no \
+ --without-ntpsnmpd \
+ ac_cv_header_readline_history_h=no \
+ --with-yielding_select=yes \
+ --with-locfile=redhat \
+ --without-rpath \
+ "
+CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
+
+USERADD_PACKAGES = "${PN}"
+NTP_USER_HOME ?= "/var/lib/ntp"
+USERADD_PARAM_${PN} = "--system --home-dir ${NTP_USER_HOME} \
+ --no-create-home \
+ --shell /bin/false --user-group ntp"
+
+# NB: debug is default-enabled by NTP; keep it default-enabled here.
+PACKAGECONFIG ??= "cap debug refclocks openssl \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \
+ --with-openssl-incdir=${STAGING_INCDIR} \
+ --with-crypto, \
+ --without-openssl --without-crypto, \
+ openssl"
+PACKAGECONFIG[cap] = "--enable-linuxcaps,--disable-linuxcaps,libcap"
+PACKAGECONFIG[readline] = "--with-lineeditlibs,--without-lineeditlibs,readline"
+PACKAGECONFIG[refclocks] = "--enable-all-clocks,--disable-all-clocks,pps-tools"
+PACKAGECONFIG[debug] = "--enable-debugging,--disable-debugging"
+PACKAGECONFIG[mdns] = "ac_cv_header_dns_sd_h=yes,ac_cv_header_dns_sd_h=no,mdns"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 644 ${WORKDIR}/ntp.conf ${D}${sysconfdir}
+ install -m 755 ${WORKDIR}/ntpd ${D}${sysconfdir}/init.d
+ install -d ${D}${bindir}
+ install -m 755 ${WORKDIR}/ntpdate ${D}${bindir}/ntpdate-sync
+
+ install -m 755 -d ${D}${NTP_USER_HOME}
+ chown ntp:ntp ${D}${NTP_USER_HOME}
+
+ # Fix hardcoded paths in scripts
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
+ sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
+ sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
+ sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
+ sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${bindir}/ntpdate-sync
+ sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/ntptrace
+ sed -i '/use/i use warnings;' ${D}${sbindir}/ntptrace
+ sed -i '1s,#!.*perl,#! ${bindir}/env perl,' ${D}${sbindir}/ntp-wait
+ sed -i '/use/i use warnings;' ${D}${sbindir}/ntp-wait
+ sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/calc_tickadj
+ sed -i '/use/i use warnings;' ${D}${sbindir}/calc_tickadj
+
+ install -d ${D}/${sysconfdir}/default
+ install -m 644 ${WORKDIR}/ntpdate.default ${D}${sysconfdir}/default/ntpdate
+ install -m 0644 ${WORKDIR}/sntp ${D}${sysconfdir}/default/
+
+ install -d ${D}/${sysconfdir}/network/if-up.d
+ ln -s ${bindir}/ntpdate-sync ${D}/${sysconfdir}/network/if-up.d
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/ntpdate.service ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/ntpd.service ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/sntp.service ${D}${systemd_unitdir}/system/
+
+ install -d ${D}${systemd_unitdir}/ntp-units.d
+ install -m 0644 ${WORKDIR}/ntpd.list ${D}${systemd_unitdir}/ntp-units.d/60-ntpd.list
+
+ # Remove an empty libexecdir.
+ rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
+}
+
+PACKAGES += "ntpdate sntp ${PN}-tickadj ${PN}-utils"
+# NOTE: you don't need ntpdate, use "ntpd -q -g -x"
+
+# ntp originally includes tickadj. It's split off for inclusion in small firmware images on platforms
+# with wonky clocks (e.g. OpenSlug)
+RDEPENDS_${PN} = "${PN}-tickadj"
+# ntpd require libgcc for execution
+RDEPENDS_${PN} += "libgcc"
+# Handle move from bin to utils package
+RPROVIDES_${PN}-utils = "${PN}-bin"
+RREPLACES_${PN}-utils = "${PN}-bin"
+RCONFLICTS_${PN}-utils = "${PN}-bin"
+
+SYSTEMD_PACKAGES = "${PN} ntpdate sntp"
+SYSTEMD_SERVICE_${PN} = "ntpd.service"
+SYSTEMD_SERVICE_ntpdate = "ntpdate.service"
+SYSTEMD_SERVICE_sntp = "sntp.service"
+SYSTEMD_AUTO_ENABLE_sntp = "disable"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+
+RPROVIDES_ntpdate += "ntpdate-systemd"
+RREPLACES_ntpdate += "ntpdate-systemd"
+RCONFLICTS_ntpdate += "ntpdate-systemd"
+
+RSUGGESTS_${PN} = "iana-etc"
+
+FILES_${PN} = "${sbindir}/ntpd.ntp ${sysconfdir}/ntp.conf ${sysconfdir}/init.d/ntpd ${libdir} \
+ ${NTP_USER_HOME} \
+ ${systemd_unitdir}/ntp-units.d/60-ntpd.list ${libexecdir}\
+"
+FILES_${PN}-tickadj = "${sbindir}/tickadj"
+FILES_${PN}-utils = "${sbindir} ${datadir}/ntp/lib"
+RDEPENDS_${PN}-utils += "perl"
+FILES_ntpdate = "${sbindir}/ntpdate \
+ ${sysconfdir}/network/if-up.d/ntpdate-sync \
+ ${bindir}/ntpdate-sync \
+ ${sysconfdir}/default/ntpdate \
+ ${systemd_unitdir}/system/ntpdate.service \
+"
+FILES_sntp = "${sbindir}/sntp \
+ ${sysconfdir}/default/sntp \
+ ${systemd_unitdir}/system/sntp.service \
+ "
+
+CONFFILES_${PN} = "${sysconfdir}/ntp.conf"
+CONFFILES_ntpdate = "${sysconfdir}/default/ntpdate"
+
+INITSCRIPT_NAME = "ntpd"
+# No dependencies, so just go in at the standard level (20)
+INITSCRIPT_PARAMS = "defaults"
+
+pkg_postinst_ntpdate() {
+ if ! grep -q -s ntpdate $D/var/spool/cron/root; then
+ echo "adding crontab"
+ test -d $D/var/spool/cron || mkdir -p $D/var/spool/cron
+ echo "30 * * * * ${bindir}/ntpdate-sync silent" >> $D/var/spool/cron/root
+ fi
+}
+
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE_${PN} = "ntpd"
+ALTERNATIVE_LINK_NAME[ntpd] = "${sbindir}/ntpd"
diff --git a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
index 825e2bf..fbdc4e9 100644
--- a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
+++ b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
@@ -13,10 +13,10 @@
# include <sys/endian.h>
^~~~~~~~~~~~~~
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
Upstream-Status: Submitted
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
include/libisns/util.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
deleted file mode 100644
index abfa7510..0000000
--- a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (C) 2016 Joe MacDonald <joe_macdonald@mentor.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "iSNS daemon and utility programs"
-DESCRIPTION = "This is a partial implementation of RFC4171, the Internet \
-Storage Name Service (iSNS). The distribution includes the iSNS server, \
-supporting persisten storage of registrations, isnsadm, a command line \
-utility for managing nodes, and isnsdd, a corresponding discovery daemon."
-HOMEPAGE = "http://github.com/gonzoleeman/open-isns/"
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
-SECTION = "net"
-
-DEPENDS = "openssl"
-
-SRC_URI = "git://github.com/open-iscsi/open-isns \
- file://0001-util.h-endian.h-is-available-on-musl-on-linux.patch \
- "
-
-SRCREV ?= "09954404e948e41eb0fce8e28836018b4ce3d20d"
-
-S = "${WORKDIR}/git"
-
-inherit systemd autotools-brokensep update-rc.d
-
-EXTRA_OECONF = " --prefix=${prefix} --enable-shared"
-EXTRA_OEMAKE += "SYSTEMDDIR=${D}${systemd_unitdir}/system"
-
-do_install_append () {
- oe_runmake INCDIR=${D}${includedir}/libisns/ install_hdrs
- oe_runmake LIBDIR=${D}${libdir} install_lib
-
- install -D -m 755 ${S}/etc/openisns.init ${D}${sysconfdir}/init.d/openisns
- sed -i 's|daemon isnsd|start-stop-daemon --start --quiet --oknodo --exec ${sbindir}/isnsd --|' \
- ${D}${sysconfdir}/init.d/openisns
-}
-
-FILES_${PN} += "${libdir} ${systemd_unitdir}"
-
-INITSCRIPT_NAME = "openisns"
diff --git a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.98.bb b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.98.bb
new file mode 100644
index 0000000..5e64f89
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.98.bb
@@ -0,0 +1,40 @@
+# Copyright (C) 2016 Joe MacDonald <joe_macdonald@mentor.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "iSNS daemon and utility programs"
+DESCRIPTION = "This is a partial implementation of RFC4171, the Internet \
+Storage Name Service (iSNS). The distribution includes the iSNS server, \
+supporting persisten storage of registrations, isnsadm, a command line \
+utility for managing nodes, and isnsdd, a corresponding discovery daemon."
+HOMEPAGE = "http://github.com/gonzoleeman/open-isns/"
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
+SECTION = "net"
+
+DEPENDS = "openssl"
+
+SRC_URI = "git://github.com/open-iscsi/open-isns \
+ file://0001-util.h-endian.h-is-available-on-musl-on-linux.patch \
+ "
+
+SRCREV = "e84374ce7d1f5fc58a4c0fc751e075b2cc752c34"
+
+S = "${WORKDIR}/git"
+
+inherit systemd autotools-brokensep update-rc.d
+
+EXTRA_OECONF = " --prefix=${prefix} --enable-shared"
+EXTRA_OEMAKE += "SYSTEMDDIR=${D}${systemd_unitdir}/system"
+
+do_install_append () {
+ oe_runmake INCDIR=${D}${includedir}/libisns/ install_hdrs
+ oe_runmake LIBDIR=${D}${libdir} install_lib
+
+ install -D -m 755 ${S}/etc/openisns.init ${D}${sysconfdir}/init.d/openisns
+ sed -i 's|daemon isnsd|start-stop-daemon --start --quiet --oknodo --exec ${sbindir}/isnsd --|' \
+ ${D}${sysconfdir}/init.d/openisns
+}
+
+FILES_${PN} += "${libdir} ${systemd_unitdir}"
+
+INITSCRIPT_NAME = "openisns"
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch
deleted file mode 100644
index 25057fb..0000000
--- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch
+++ /dev/null
@@ -1,618 +0,0 @@
-From 8b51a6bf5a4829d8add535a098c0c06a049a9958 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 22:50:57 -0700
-Subject: [PATCH] lanserv: Rename struct parameter printf for namespace
- collision
-
-This comes to fore when we use hardening flags where printf
-is treated as macro and gets replaced with printf_chk
-
-Fixes errors like
-
-error: no member named '__printf_chk' in 'struct emu_out_s'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lanserv/OpenIPMI/serv.h | 2 +-
- lanserv/emu_cmd.c | 132 ++++++++++++++++++++++++------------------------
- lanserv/ipmi_sim.c | 10 ++--
- 3 files changed, 72 insertions(+), 72 deletions(-)
-
-diff --git a/lanserv/OpenIPMI/serv.h b/lanserv/OpenIPMI/serv.h
-index d12d63a..8555c85 100644
---- a/lanserv/OpenIPMI/serv.h
-+++ b/lanserv/OpenIPMI/serv.h
-@@ -522,7 +522,7 @@ uint8_t ipmb_checksum(uint8_t *data, int size, uint8_t start);
- typedef struct emu_data_s emu_data_t;
- typedef struct emu_out_s
- {
-- void (*printf)(struct emu_out_s *out, char *format, ...);
-+ void (*eprintf)(struct emu_out_s *out, char *format, ...);
- void *data;
- } emu_out_t;
-
-diff --git a/lanserv/emu_cmd.c b/lanserv/emu_cmd.c
-index ca44032..54b6f7b 100644
---- a/lanserv/emu_cmd.c
-+++ b/lanserv/emu_cmd.c
-@@ -76,7 +76,7 @@ emu_get_uchar(emu_out_t *out, char **toks, unsigned char *val, char *errstr,
- if (empty_ok)
- return ENOSPC;
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- if (str[0] == '\'') {
-@@ -86,7 +86,7 @@ emu_get_uchar(emu_out_t *out, char **toks, unsigned char *val, char *errstr,
- *val = strtoul(str, &tmpstr, 0);
- if (*tmpstr != '\0') {
- if (errstr)
-- out->printf(out, "**Invalid %s given\n", errstr);
-+ out->eprintf(out, "**Invalid %s given\n", errstr);
- return EINVAL;
- }
-
-@@ -108,7 +108,7 @@ emu_get_uchar_with_vals(emu_out_t *out, char **toks,
- if (empty_ok)
- return ENOSPC;
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- if (str[0] == '\'') {
-@@ -131,7 +131,7 @@ emu_get_uchar_with_vals(emu_out_t *out, char **toks,
- *val = strtoul(str, &tmpstr, 0);
- if (*tmpstr != '\0') {
- if (errstr)
-- out->printf(out, "**Invalid %s given\n", errstr);
-+ out->eprintf(out, "**Invalid %s given\n", errstr);
- return EINVAL;
- }
- out:
-@@ -150,12 +150,12 @@ emu_get_bitmask(emu_out_t *out, char **toks, uint16_t *val, char *errstr,
- if (empty_ok)
- return ENOSPC;
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- if (strlen(str) != size) {
- if (errstr)
-- out->printf(out, "**invalid number of bits in %s\n", errstr);
-+ out->eprintf(out, "**invalid number of bits in %s\n", errstr);
- return EINVAL;
- }
- *val = 0;
-@@ -166,7 +166,7 @@ emu_get_bitmask(emu_out_t *out, char **toks, uint16_t *val, char *errstr,
- *val |= 1 << i;
- } else {
- if (errstr)
-- out->printf(out, "**Invalid bit value '%c' in %s\n", str[j],
-+ out->eprintf(out, "**Invalid bit value '%c' in %s\n", str[j],
- errstr);
- return EINVAL;
- }
-@@ -184,13 +184,13 @@ emu_get_uint(emu_out_t *out, char **toks, unsigned int *val, char *errstr)
- str = mystrtok(NULL, " \t\n", toks);
- if (!str) {
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- *val = strtoul(str, &tmpstr, 0);
- if (*tmpstr != '\0') {
- if (errstr)
-- out->printf(out, "**Invalid %s given\n", errstr);
-+ out->eprintf(out, "**Invalid %s given\n", errstr);
- return EINVAL;
- }
-
-@@ -206,7 +206,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr,
-
- if (!tok) {
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- if (*tok == '"') {
-@@ -215,7 +215,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr,
- tok++;
- end = strlen(tok) - 1;
- if (tok[end] != '"') {
-- out->printf(out, "**ASCII %s doesn't end in '\"'", errstr);
-+ out->eprintf(out, "**ASCII %s doesn't end in '\"'", errstr);
- return EINVAL;
- }
- if (end > (len - 1))
-@@ -228,7 +228,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr,
- char c[3];
- /* HEX pw */
- if (strlen(tok) != 32) {
-- out->printf(out, "**HEX %s not 32 HEX characters long", errstr);
-+ out->eprintf(out, "**HEX %s not 32 HEX characters long", errstr);
- return EINVAL;
- }
- c[2] = '\0';
-@@ -239,7 +239,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr,
- tok++;
- data[i] = strtoul(c, &end, 16);
- if (*end != '\0') {
-- out->printf(out, "**Invalid HEX character in %s", errstr);
-+ out->eprintf(out, "**Invalid HEX character in %s", errstr);
- return -1;
- }
- }
-@@ -263,12 +263,12 @@ read_command_file(emu_out_t *out, emu_data_t *emu, const char *command_file)
-
- buffer = malloc(INPUT_BUFFER_SIZE);
- if (!buffer) {
-- out->printf(out, "Could not allocate buffer memory\n");
-+ out->eprintf(out, "Could not allocate buffer memory\n");
- rv = ENOMEM;
- goto out;
- }
- while (fgets(buffer+pos, INPUT_BUFFER_SIZE-pos, f)) {
-- out->printf(out, "%s", buffer+pos);
-+ out->eprintf(out, "%s", buffer+pos);
- if (buffer[pos] == '#')
- continue;
- pos = strlen(buffer);
-@@ -318,7 +318,7 @@ sel_enable(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_enable_sel(mc, max_records, flags);
- if (rv)
-- out->printf(out, "**Unable to enable sel, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to enable sel, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -343,9 +343,9 @@ sel_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_add_to_sel(mc, record_type, data, &r);
- if (rv)
-- out->printf(out, "**Unable to add to sel, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add to sel, error 0x%x\n", rv);
- else
-- out->printf(out, "Added record %d\n", r);
-+ out->eprintf(out, "Added record %d\n", r);
- return rv;
- }
-
-@@ -361,14 +361,14 @@ main_sdr_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- if (rv == ENOSPC)
- break;
- if (rv) {
-- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i);
-+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i);
- return rv;
- }
- }
-
- rv = ipmi_mc_add_main_sdr(mc, data, i);
- if (rv)
-- out->printf(out, "**Unable to add to sdr, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add to sdr, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -389,14 +389,14 @@ device_sdr_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- if (rv == ENOSPC)
- break;
- if (rv) {
-- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i);
-+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i);
- return rv;
- }
- }
-
- rv = ipmi_mc_add_device_sdr(mc, lun, data, i);
- if (rv)
-- out->printf(out, "**Unable to add to sdr, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add to sdr, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -439,7 +439,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- while (tok) {
- if (strcmp(tok, "poll") == 0) {
- if (handler) {
-- out->printf(out, "**poll given twice in sensor\n", tok);
-+ out->eprintf(out, "**poll given twice in sensor\n", tok);
- return -1;
- }
-
-@@ -449,27 +449,27 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- tok = mystrtok(NULL, " \t\n", toks);
- if (!tok) {
-- out->printf(out, "**No polled sensor handler given\n", tok);
-+ out->eprintf(out, "**No polled sensor handler given\n", tok);
- return -1;
- }
-
- handler = ipmi_sensor_find_handler(tok);
- if (!handler) {
-- out->printf(out, "**Invalid sensor handler: %s\n", tok);
-+ out->eprintf(out, "**Invalid sensor handler: %s\n", tok);
- return -1;
- }
-
- rv = handler->init(mc, lun, num, toks, handler->cb_data, &rcb_data,
- &errstr);
- if (rv) {
-- out->printf(out, "**Error initializing sensor handler: %s\n",
-+ out->eprintf(out, "**Error initializing sensor handler: %s\n",
- errstr);
- return rv;
- }
- } else if (strcmp(tok, "event-only") == 0) {
- event_only = 1;
- } else {
-- out->printf(out, "**Unknown sensor option: %s\n", tok);
-+ out->eprintf(out, "**Unknown sensor option: %s\n", tok);
- return -1;
- }
-
-@@ -477,7 +477,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- }
-
- if (handler && event_only) {
-- out->printf(out, "**An event-only sensor cannot be polled\n");
-+ out->eprintf(out, "**An event-only sensor cannot be polled\n");
- return -1;
- }
-
-@@ -488,7 +488,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- if (!rv && handler->postinit) {
- rv = handler->postinit(rcb_data, &errstr);
- if (rv) {
-- out->printf(out, "**Error in sensor handler postinit: %s\n",
-+ out->eprintf(out, "**Error in sensor handler postinit: %s\n",
- errstr);
- }
- }
-@@ -496,7 +496,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- rv = ipmi_mc_add_sensor(mc, lun, num, type, code, event_only);
- }
- if (rv)
-- out->printf(out, "**Unable to add to sensor, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add to sensor, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -532,7 +532,7 @@ sensor_set_bit(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_sensor_set_bit(mc, lun, num, bit, value, gen_event);
- if (rv)
-- out->printf(out, "**Unable to set sensor bit, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor bit, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -563,7 +563,7 @@ sensor_set_bit_clr_rest(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **
-
- rv = ipmi_mc_sensor_set_bit_clr_rest(mc, lun, num, bit, gen_event);
- if (rv)
-- out->printf(out, "**Unable to set sensor bit, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor bit, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -594,7 +594,7 @@ sensor_set_value(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_sensor_set_value(mc, lun, num, value, gen_event);
- if (rv)
-- out->printf(out, "**Unable to set sensor value, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor value, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -637,7 +637,7 @@ sensor_set_hysteresis(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **to
- rv = ipmi_mc_sensor_set_hysteresis(mc, lun, num, support, positive,
- negative);
- if (rv)
-- out->printf(out, "**Unable to set sensor hysteresis, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor hysteresis, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -682,7 +682,7 @@ sensor_set_threshold(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **tok
- rv = ipmi_mc_sensor_set_threshold(mc, lun, num, support,
- enabled, 1, thresholds);
- if (rv)
-- out->printf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -759,7 +759,7 @@ sensor_set_event_support(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char *
- assert_support, deassert_support,
- assert_enabled, deassert_enabled);
- if (rv)
-- out->printf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -819,7 +819,7 @@ mc_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- else if (strcmp("persist_sdr", tok) == 0)
- flags |= IPMI_MC_PERSIST_SDR;
- else {
-- out->printf(out, "**Invalid MC flag: %s\n", tok);
-+ out->eprintf(out, "**Invalid MC flag: %s\n", tok);
- return -1;
- }
- }
-@@ -833,7 +833,7 @@ mc_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- device_revision, major_fw_rev, minor_fw_rev,
- device_support, mfg_id, product_id, flags);
- if (rv)
-- out->printf(out, "**Unable to add the MC, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add the MC, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -890,7 +890,7 @@ mc_set_power(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_set_power(mc, power, gen_int);
- if (rv)
-- out->printf(out, "**Unable to set power, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set power, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -916,7 +916,7 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- tok = mystrtok(NULL, " \t\n", toks);
- if (!tok) {
-- out->printf(out, "**No FRU data type given");
-+ out->eprintf(out, "**No FRU data type given");
- return -1;
- }
- if (strcmp(tok, "file") == 0) {
-@@ -929,13 +929,13 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = get_delim_str(toks, &frufn, &errstr);
- if (rv) {
-- out->printf(out, "**Error with FRU filename: %d", strerror(rv));
-+ out->eprintf(out, "**Error with FRU filename: %d", strerror(rv));
- return rv;
- }
- rv = ipmi_mc_add_fru_file(mc, devid, length, file_offset,
- (void *) frufn);
- if (rv)
-- out->printf(out, "**Unable to add FRU file, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add FRU file, error 0x%x\n", rv);
-
- } else if (strcmp(tok, "data") == 0) {
- for (i=0; i<length; i++) {
-@@ -943,14 +943,14 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- if (rv == ENOSPC)
- break;
- if (rv) {
-- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i);
-+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i);
- return rv;
- }
- }
-
- rv = emu_get_uchar(out, toks, &data[i], "data byte", 1);
- if (rv != ENOSPC) {
-- out->printf(out, "**Error: input data too long for FRU\n", rv, i);
-+ out->eprintf(out, "**Error: input data too long for FRU\n", rv, i);
- return EINVAL;
- }
-
-@@ -958,9 +958,9 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_add_fru_data(mc, devid, length, NULL, data);
- if (rv)
-- out->printf(out, "**Unable to add FRU data, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add FRU data, error 0x%x\n", rv);
- } else {
-- out->printf(out, "**FRU type not given, need file or data\n");
-+ out->eprintf(out, "**FRU type not given, need file or data\n");
- rv = EINVAL;
- }
- return rv;
-@@ -981,28 +981,28 @@ mc_dump_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_get_fru_data_len(mc, devid, &length);
- if (rv) {
-- out->printf(out, "**Unable to dump FRU data, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to dump FRU data, error 0x%x\n", rv);
- goto out;
- }
-
- data = malloc(length);
- if (!data) {
-- out->printf(out, "**Unable to dump FRU data, out of memory\n", rv);
-+ out->eprintf(out, "**Unable to dump FRU data, out of memory\n", rv);
- goto out;
- }
-
- rv = ipmi_mc_get_fru_data(mc, devid, length, data);
- if (rv) {
-- out->printf(out, "**Unable to dump FRU data, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to dump FRU data, error 0x%x\n", rv);
- goto out;
- }
-
- for (i=0; i<length; i++) {
- if ((i > 0) && ((i % 8) == 0))
-- out->printf(out, "\n");
-- out->printf(out, " 0x%2.2x", data[i]);
-+ out->eprintf(out, "\n");
-+ out->eprintf(out, " 0x%2.2x", data[i]);
- }
-- out->printf(out, "\n");
-+ out->eprintf(out, "\n");
-
- out:
- if (data)
-@@ -1021,7 +1021,7 @@ mc_setbmc(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- return rv;
- rv = ipmi_emu_set_bmc_mc(emu, ipmb);
- if (rv)
-- out->printf(out, "**Invalid IPMB address\n");
-+ out->eprintf(out, "**Invalid IPMB address\n");
- return rv;
- }
-
-@@ -1032,7 +1032,7 @@ atca_enable(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_emu_atca_enable(emu);
- if (rv)
-- out->printf(out, "**Unable to enable ATCA mode, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to enable ATCA mode, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -1056,7 +1056,7 @@ atca_set_site(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_emu_atca_set_site(emu, hw_address, site_type, site_number);
- if (rv)
-- out->printf(out, "**Unable to set site type, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set site type, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -1072,7 +1072,7 @@ mc_set_num_leds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_set_num_leds(mc, count);
- if (rv)
-- out->printf(out, "**Unable to set number of LEDs, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set number of LEDs, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -1085,7 +1085,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- err = get_delim_str(toks, &filename, &errstr);
- if (err) {
-- out->printf(out, "Could not get include filename: %s\n", errstr);
-+ out->eprintf(out, "Could not get include filename: %s\n", errstr);
- return err;
- }
-
-@@ -1097,7 +1097,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- {
- char *nf = malloc(strlen(BASE_CONF_STR) + strlen(filename) + 2);
- if (!nf) {
-- out->printf(out, "Out of memory in include\n", errstr);
-+ out->eprintf(out, "Out of memory in include\n", errstr);
- goto out_err;
- }
- strcpy(nf, BASE_CONF_STR);
-@@ -1107,7 +1107,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- filename = nf;
- err = read_command_file(out, emu, filename);
- if (err) {
-- out->printf(out, "Could not read include file %s\n", filename);
-+ out->eprintf(out, "Could not read include file %s\n", filename);
- }
- }
-
-@@ -1147,7 +1147,7 @@ debug_cmd(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- } else if (strcmp(tok, "sol") == 0) {
- level |= DEBUG_SOL;
- } else {
-- out->printf(out, "Invalid debug level '%s', options are 'raw' and 'msg'\n",
-+ out->eprintf(out, "Invalid debug level '%s', options are 'raw' and 'msg'\n",
- tok);
- return EINVAL;
- }
-@@ -1168,7 +1168,7 @@ persist_cmd(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- } else if (strcmp(tok, "off") == 0) {
- persist_enable = 0;
- } else {
-- out->printf(out, "Invalid persist vale '%s', options are 'on' and 'off'\n",
-+ out->eprintf(out, "Invalid persist vale '%s', options are 'on' and 'off'\n",
- tok);
- return EINVAL;
- }
-@@ -1194,18 +1194,18 @@ do_define(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- name = mystrtok(NULL, " \t\n", toks);
- if (!name) {
-- out->printf(out, "No variable name given for define\n");
-+ out->eprintf(out, "No variable name given for define\n");
- return EINVAL;
- }
- err = get_delim_str(toks, &value, &errstr);
- if (err) {
-- out->printf(out, "Could not get variable %s value: %s\n", name, errstr);
-+ out->eprintf(out, "Could not get variable %s value: %s\n", name, errstr);
- return err;
- }
- err = add_variable(name, value);
- if (err) {
- free(value);
-- out->printf(out, "Out of memory setting variable %s\n", name);
-+ out->eprintf(out, "Out of memory setting variable %s\n", name);
- return err;
- }
- return 0;
-@@ -1301,7 +1301,7 @@ ipmi_emu_cmd(emu_out_t *out, emu_data_t *emu, char *cmd_str)
- return rv;
- rv = ipmi_emu_get_mc_by_addr(emu, ipmb, &mc);
- if (rv) {
-- out->printf(out, "**Invalid MC address\n");
-+ out->eprintf(out, "**Invalid MC address\n");
- return rv;
- }
- }
-@@ -1312,7 +1312,7 @@ ipmi_emu_cmd(emu_out_t *out, emu_data_t *emu, char *cmd_str)
- }
- }
-
-- out->printf(out, "**Unknown command: %s\n", cmd);
-+ out->eprintf(out, "**Unknown command: %s\n", cmd);
-
- out:
- return rv;
-diff --git a/lanserv/ipmi_sim.c b/lanserv/ipmi_sim.c
-index 9472cce..30c4f27 100644
---- a/lanserv/ipmi_sim.c
-+++ b/lanserv/ipmi_sim.c
-@@ -607,8 +607,8 @@ isim_log(sys_data_t *sys, int logtype, msg_t *msg, const char *format,
-
- con = data->consoles;
- while (con) {
-- con->out.printf(&con->out, "%s", str);
-- con->out.printf(&con->out, "\n");
-+ con->out.eprintf(&con->out, "%s", str);
-+ con->out.eprintf(&con->out, "\n");
- con = con->next;
- }
- #if HAVE_SYSLOG
-@@ -956,7 +956,7 @@ console_bind_ready(int fd, void *cb_data, os_hnd_fd_id_t *id)
- newcon->shutdown_on_close = 0;
- newcon->telnet = 1;
- newcon->tn_pos = 0;
-- newcon->out.printf = emu_printf;
-+ newcon->out.eprintf = emu_printf;
- newcon->out.data = newcon;
-
- setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val));
-@@ -1463,10 +1463,10 @@ main(int argc, const char *argv[])
- stdio_console.telnet = 0;
- stdio_console.tn_pos = 0;
- if (nostdio) {
-- stdio_console.out.printf = dummy_printf;
-+ stdio_console.out.eprintf = dummy_printf;
- stdio_console.out.data = &stdio_console;
- } else {
-- stdio_console.out.printf = emu_printf;
-+ stdio_console.out.eprintf = emu_printf;
- stdio_console.out.data = &stdio_console;
- }
- stdio_console.next = NULL;
---
-2.14.1
-
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch
new file mode 100644
index 0000000..3894075
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch
@@ -0,0 +1,26 @@
+openipmi load swig/python/.libs/_OpenIPMI.so to create .pyc and .pyo files.
+It fails when multilib is enable:
+
+| ImportError: .../lib32-openipmi/2.0.25-r0/OpenIPMI-2.0.25/swig/python/.libs/_OpenIPMI.so: wrong ELF class: ELFCLASS32
+
+Don't compile and install .pyc and .pyo files to fix the failure.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+diff --git a/swig/python/openipmigui/Makefile.am b/swig/python/openipmigui/Makefile.am
+index 570e7b9..88258bf 100644
+--- a/swig/python/openipmigui/Makefile.am
++++ b/swig/python/openipmigui/Makefile.am
+@@ -34,9 +34,9 @@ localcopy:
+ fi \
+ done
+
+-all-local: localcopy $(PYC_FILES) $(PYO_FILES)
++all-local: localcopy
+
+-install-exec-local: $(EXTRA_DIST) $(PYC_FILES) $(PYO_FILES)
++install-exec-local: $(EXTRA_DIST)
+ $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR)/openipmigui
+ $(INSTALL_DATA) $^ $(DESTDIR)$(PYTHON_INSTALL_DIR)/openipmigui
+
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb
deleted file mode 100644
index a4f63c5..0000000
--- a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb
+++ /dev/null
@@ -1,110 +0,0 @@
-SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
-DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
-to allow full access to all IPMI information on a server \
-and to abstract it to a level that will make it easy to use"
-
-HOMEPAGE = "http://openipmi.sourceforge.net"
-
-DEPENDS = " \
- glib-2.0 \
- ncurses \
- net-snmp \
- openssl \
- popt \
- python \
- swig-native \
- "
-
-LICENSE = "GPLv2 & LGPLv2.1 & BSD"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
- file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
- "
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
- file://fix-symlink-install-error-in-cmdlang.patch \
- file://openipmi-no-openipmigui-man.patch \
- file://openipmi-remove-host-path-from-la_LDFLAGS.patch \
- file://ipmi-init-fix-the-arguments.patch \
- file://do-not-install-pyc-and-pyo.patch \
- file://include_sys_types.patch \
- file://openipmi-helper \
- file://ipmi.service \
- file://0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch \
- "
-
-S = "${WORKDIR}/OpenIPMI-${PV}"
-SRC_URI[md5sum] = "58f9542cbfcb5fe250b77cf88345e1ec"
-SRC_URI[sha256sum] = "bca39a27071278a8b74610181ede8df51e155e5e9031bc8eaa3699d1720292b4"
-
-inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd
-
-EXTRA_OECONF = "--disable-static \
- --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
- --with-python='${STAGING_BINDIR_NATIVE}/python-native/python' \
- --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \
- --with-glibver=2.0"
-
-PACKAGECONFIG ??= "gdbm"
-PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
-
-PACKAGES += "${PN}-perl ${PN}-python"
-
-FILES_${PN}-perl = " \
- ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
- ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
- "
-
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES_${PN}-dbg += " \
- ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
- ${PYTHON_SITEPACKAGES_DIR}/.debug \
- "
-
-do_configure () {
-
- # Let's perform regular configuration first then handle perl issues.
- autotools_do_configure
-
- perl_ver=`perl -V:version | cut -d\' -f 2`
-
- # Force openipmi perl bindings to be compiled using perl-native instead of
- # the host's perl. Set the proper install directory for the resulting
- # openipmi.pm and openipmi.so
- for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
- echo "SAL: i = $i"
- echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
- echo "SAL: libdir = $libdir"
- sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
- sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
- done
-}
-
-do_install_append () {
- echo "SAL: D = $D"
- echo "SAL: libdir = $libdir"
- install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
- install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
- install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
- # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
- # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
- if [ -d ${D}${libdir}/perl5 ]
- then
- mv ${D}${libdir}/perl5 ${D}${libdir}/perl
- fi
-
- # for systemd
- install -d ${D}${systemd_unitdir}/system
- install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
- sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
- install -d ${D}${libexecdir}
- install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
-}
-
-INITSCRIPT_NAME = "ipmi"
-INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE_${PN} = "ipmi.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb
new file mode 100644
index 0000000..d28ebd4
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb
@@ -0,0 +1,110 @@
+SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
+DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
+to allow full access to all IPMI information on a server \
+and to abstract it to a level that will make it easy to use"
+
+HOMEPAGE = "http://openipmi.sourceforge.net"
+
+DEPENDS = " \
+ glib-2.0 \
+ ncurses \
+ net-snmp \
+ openssl \
+ popt \
+ python \
+ swig-native \
+ "
+
+LICENSE = "GPLv2 & LGPLv2.1 & BSD"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+ file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
+ "
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
+ file://fix-symlink-install-error-in-cmdlang.patch \
+ file://openipmi-no-openipmigui-man.patch \
+ file://openipmi-remove-host-path-from-la_LDFLAGS.patch \
+ file://ipmi-init-fix-the-arguments.patch \
+ file://do-not-install-pyc-and-pyo.patch \
+ file://include_sys_types.patch \
+ file://openipmigui-not-compile-pyc-pyo.patch \
+ file://openipmi-helper \
+ file://ipmi.service \
+ "
+
+S = "${WORKDIR}/OpenIPMI-${PV}"
+SRC_URI[md5sum] = "1461ac4d78fc516646fd0a6e605a8b05"
+SRC_URI[sha256sum] = "f0f1a0ec732409930b7a31a6daa6cf39b585f52059b62a5f092b7ece21aa75a5"
+
+inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd
+
+EXTRA_OECONF = "--disable-static \
+ --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
+ --with-python='${STAGING_BINDIR_NATIVE}/python-native/python' \
+ --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \
+ --with-glibver=2.0"
+
+PACKAGECONFIG ??= "gdbm"
+PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
+
+PACKAGES += "${PN}-perl ${PN}-python"
+
+FILES_${PN}-perl = " \
+ ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
+ ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
+ "
+
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
+FILES_${PN}-dbg += " \
+ ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
+ ${PYTHON_SITEPACKAGES_DIR}/.debug \
+ "
+
+do_configure () {
+
+ # Let's perform regular configuration first then handle perl issues.
+ autotools_do_configure
+
+ perl_ver=`perl -V:version | cut -d\' -f 2`
+
+ # Force openipmi perl bindings to be compiled using perl-native instead of
+ # the host's perl. Set the proper install directory for the resulting
+ # openipmi.pm and openipmi.so
+ for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
+ echo "SAL: i = $i"
+ echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
+ echo "SAL: libdir = $libdir"
+ sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
+ sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
+ done
+}
+
+do_install_append () {
+ echo "SAL: D = $D"
+ echo "SAL: libdir = $libdir"
+ install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
+ install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
+ # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
+ # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
+ if [ -d ${D}${libdir}/perl5 ]
+ then
+ mv ${D}${libdir}/perl5 ${D}${libdir}/perl
+ fi
+
+ # for systemd
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
+ sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
+ install -d ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
+}
+
+INITSCRIPT_NAME = "ipmi"
+INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE_${PN} = "ipmi.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb
deleted file mode 100644
index 4cad998..0000000
--- a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "A full-featured SSL VPN solution via tun device."
-HOMEPAGE = "http://openvpn.sourceforge.net"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e9b64491ec98eb6c6493ac5e4118f107"
-DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-
-inherit autotools systemd
-
-SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \
- file://openvpn \
- file://openvpn@.service \
- file://openvpn-volatile.conf"
-
-SRC_URI[md5sum] = "705a79d005558d94fa1e2b74e4413e97"
-SRC_URI[sha256sum] = "1ae883d9522c9fa6d189e5e4aaa058a93edd3d0b897e3c2664107c4785099fc3"
-
-SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-CFLAGS += "-fno-inline"
-
-# I want openvpn to be able to read password from file (hrw)
-EXTRA_OECONF += "--enable-iproute2"
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}"
-
-# Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host.
-EXTRA_OECONF += "IPROUTE=${base_sbindir}/ip"
-
-do_install_append() {
- install -d ${D}/${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d
-
- install -d ${D}/${sysconfdir}/openvpn
- install -d ${D}/${sysconfdir}/openvpn/sample
- install -m 755 ${S}/sample/sample-config-files/loopback-server ${D}${sysconfdir}/openvpn/sample/loopback-server.conf
- install -m 755 ${S}/sample/sample-config-files/loopback-client ${D}${sysconfdir}/openvpn/sample/loopback-client.conf
- install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys
- install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-server.service
- install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-client.service
-
- install -d ${D}/${localstatedir}
- install -d ${D}/${localstatedir}/lib
- install -d -m 710 ${D}/${localstatedir}/lib/openvpn
-
- install -d ${D}${sysconfdir}/tmpfiles.d
- install -m 0644 ${WORKDIR}/openvpn-volatile.conf ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
- sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
- fi
-}
-
-PACKAGES =+ " ${PN}-sample "
-
-RRECOMMENDS_${PN} = "kernel-module-tun"
-
-FILES_${PN}-dbg += "${libdir}/openvpn/plugins/.debug"
-FILES_${PN} += "${systemd_unitdir}/system/openvpn@.service \
- ${sysconfdir}/tmpfiles.d \
- "
-FILES_${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \
- ${systemd_unitdir}/system/openvpn@loopback-client.service \
- ${sysconfdir}/openvpn/sample/"
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.6.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.6.bb
new file mode 100644
index 0000000..84fd467
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.6.bb
@@ -0,0 +1,71 @@
+SUMMARY = "A full-featured SSL VPN solution via tun device."
+HOMEPAGE = "http://openvpn.sourceforge.net"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7aee596ed2deefe3e8a861e24292abba"
+DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+inherit autotools systemd update-rc.d
+
+SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \
+ file://openvpn \
+ file://openvpn@.service \
+ file://openvpn-volatile.conf"
+
+SRC_URI[md5sum] = "971d57e29b78b4b902eb2f4aae2f05a7"
+SRC_URI[sha256sum] = "738dbd37fcf8eb9382c53628db22258c41ba9550165519d9200e8bebaef4cbe2"
+
+SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME_${PN} = "openvpn"
+INITSCRIPT_PARAMS_${PN} = "start 10 2 3 4 5 . stop 70 0 1 6 ."
+
+CFLAGS += "-fno-inline"
+
+# I want openvpn to be able to read password from file (hrw)
+EXTRA_OECONF += "--enable-iproute2"
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}"
+
+# Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host.
+EXTRA_OECONF += "IPROUTE=${base_sbindir}/ip"
+
+do_install_append() {
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d
+
+ install -d ${D}/${sysconfdir}/openvpn
+ install -d ${D}/${sysconfdir}/openvpn/sample
+ install -m 755 ${S}/sample/sample-config-files/loopback-server ${D}${sysconfdir}/openvpn/sample/loopback-server.conf
+ install -m 755 ${S}/sample/sample-config-files/loopback-client ${D}${sysconfdir}/openvpn/sample/loopback-client.conf
+ install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys
+ install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-server.service
+ install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-client.service
+
+ install -d ${D}/${localstatedir}
+ install -d ${D}/${localstatedir}/lib
+ install -d -m 710 ${D}/${localstatedir}/lib/openvpn
+
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m 0644 ${WORKDIR}/openvpn-volatile.conf ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
+ sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
+ fi
+}
+
+PACKAGES =+ " ${PN}-sample "
+
+RRECOMMENDS_${PN} = "kernel-module-tun"
+
+FILES_${PN}-dbg += "${libdir}/openvpn/plugins/.debug"
+FILES_${PN} += "${systemd_unitdir}/system/openvpn@.service \
+ ${sysconfdir}/tmpfiles.d \
+ "
+FILES_${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \
+ ${systemd_unitdir}/system/openvpn@loopback-client.service \
+ ${sysconfdir}/openvpn/sample/"
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch
new file mode 100644
index 0000000..4b59561
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch
@@ -0,0 +1,103 @@
+From 5a8a2f81ef8650f06d1d9d268add612ab46025f1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Jun 2018 22:57:04 -0700
+Subject: [PATCH] Remove man files which cant be built
+
+Remove need for pandoc-prebuilt during cross build
+
+Fixes errors
+
+| CMake Error at libibumad/man/cmake_install.cmake:105 (file):
+| file INSTALL cannot find
+| "/mnt/a/oe/build/tmp/work/core2-64-bec-linux-musl/rdma-core/18.1-r0/git/buildlib/pandoc-prebuilt/41bbb0bed7a781be59e8c0dcd8b7278af2ce6882".
+| Call Stack (most recent call first):
+| cmake_install.cmake:48 (include)
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libibumad/man/CMakeLists.txt | 1 -
+ libibverbs/man/CMakeLists.txt | 15 ---------------
+ providers/mlx5/man/CMakeLists.txt | 1 -
+ 3 files changed, 17 deletions(-)
+
+diff --git a/libibumad/man/CMakeLists.txt b/libibumad/man/CMakeLists.txt
+index 185584a0..ac45a4e9 100644
+--- a/libibumad/man/CMakeLists.txt
++++ b/libibumad/man/CMakeLists.txt
+@@ -15,7 +15,6 @@ rdma_man_pages(
+ umad_get_mad_addr.3
+ umad_get_pkey.3
+ umad_get_port.3
+- umad_init.3.md
+ umad_open_port.3
+ umad_poll.3
+ umad_recv.3
+diff --git a/libibverbs/man/CMakeLists.txt b/libibverbs/man/CMakeLists.txt
+index 86dd49de..b54675be 100644
+--- a/libibverbs/man/CMakeLists.txt
++++ b/libibverbs/man/CMakeLists.txt
+@@ -5,7 +5,6 @@ rdma_man_pages(
+ ibv_alloc_pd.3
+ ibv_alloc_td.3
+ ibv_asyncwatch.1
+- ibv_attach_mcast.3.md
+ ibv_bind_mw.3
+ ibv_create_ah.3
+ ibv_create_ah_from_wc.3
+@@ -14,7 +13,6 @@ rdma_man_pages(
+ ibv_create_cq_ex.3
+ ibv_modify_cq.3
+ ibv_create_flow.3
+- ibv_create_flow_action.3.md
+ ibv_create_qp.3
+ ibv_create_qp_ex.3
+ ibv_create_rwq_ind_table.3
+@@ -23,15 +21,9 @@ rdma_man_pages(
+ ibv_create_wq.3
+ ibv_devices.1
+ ibv_devinfo.1
+- ibv_event_type_str.3.md
+- ibv_fork_init.3.md
+ ibv_get_async_event.3
+ ibv_get_cq_event.3
+- ibv_get_device_guid.3.md
+ ibv_get_device_list.3
+- ibv_get_device_name.3.md
+- ibv_get_srq_num.3.md
+- ibv_inc_rkey.3.md
+ ibv_modify_qp.3
+ ibv_modify_qp_rate_limit.3
+ ibv_modify_srq.3
+@@ -46,19 +38,12 @@ rdma_man_pages(
+ ibv_post_srq_recv.3
+ ibv_query_device.3
+ ibv_query_device_ex.3
+- ibv_query_gid.3.md
+- ibv_query_pkey.3.md
+ ibv_query_port.3
+ ibv_query_qp.3
+ ibv_query_rt_values_ex.3
+ ibv_query_srq.3
+- ibv_rate_to_mbps.3.md
+- ibv_rate_to_mult.3.md
+ ibv_rc_pingpong.1
+ ibv_reg_mr.3
+- ibv_req_notify_cq.3.md
+- ibv_rereg_mr.3.md
+- ibv_resize_cq.3.md
+ ibv_srq_pingpong.1
+ ibv_uc_pingpong.1
+ ibv_ud_pingpong.1
+diff --git a/providers/mlx5/man/CMakeLists.txt b/providers/mlx5/man/CMakeLists.txt
+index cdc7115e..876b6fcf 100644
+--- a/providers/mlx5/man/CMakeLists.txt
++++ b/providers/mlx5/man/CMakeLists.txt
+@@ -1,5 +1,4 @@
+ rdma_man_pages(
+- mlx5dv_flow_action_esp.3.md
+ mlx5dv_get_clock_info.3
+ mlx5dv_init_obj.3
+ mlx5dv_query_device.3
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch
new file mode 100644
index 0000000..b04c9b7
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch
@@ -0,0 +1,29 @@
+From f2df1db11f3a9580774300e703b6f53dbcdb28ef Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Jun 2018 20:17:57 -0700
+Subject: [PATCH] S_IFSOCK is defined in both glibc/musl
+
+Fixes
+
+preload.c:1183:46: error: '__S_IFSOCK' undeclared (first use in this function); did you mean 'S_IFSOCK'?
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ librdmacm/preload.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/librdmacm/preload.c b/librdmacm/preload.c
+index 0f2aa250..d46beb1b 100644
+--- a/librdmacm/preload.c
++++ b/librdmacm/preload.c
+@@ -1180,7 +1180,7 @@ int __fxstat(int ver, int socket, struct stat *buf)
+ if (fd_get(socket, &fd) == fd_rsocket) {
+ ret = real.fxstat(ver, socket, buf);
+ if (!ret)
+- buf->st_mode = (buf->st_mode & ~S_IFMT) | __S_IFSOCK;
++ buf->st_mode = (buf->st_mode & ~S_IFMT) | S_IFSOCK;
+ } else {
+ ret = real.fxstat(ver, fd, buf);
+ }
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch
new file mode 100644
index 0000000..aa33524
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch
@@ -0,0 +1,25 @@
+From 65b9a47c07be4611b4fbbcafff1993186bcb0537 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Jun 2018 19:15:52 -0700
+Subject: [PATCH 1/2] include endian.h for htole32 and friends
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ providers/hns/hns_roce_u.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h
+index bd66c6e7..b07424db 100644
+--- a/providers/hns/hns_roce_u.h
++++ b/providers/hns/hns_roce_u.h
+@@ -34,6 +34,7 @@
+ #define _HNS_ROCE_U_H
+
+ #include <stddef.h>
++#include <endian.h>
+ #include <util/compiler.h>
+
+ #include <infiniband/driver.h>
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch
new file mode 100644
index 0000000..347f964
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch
@@ -0,0 +1,27 @@
+From 3d9cae15c69c0b3260a024ad5d6802a8d85515a2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Jun 2018 19:18:24 -0700
+Subject: [PATCH 2/2] Remove unused include for execinfo.h
+
+Fixes build on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ providers/qedr/qelr_verbs.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/providers/qedr/qelr_verbs.c b/providers/qedr/qelr_verbs.c
+index e3b01f28..2ee1c832 100644
+--- a/providers/qedr/qelr_verbs.c
++++ b/providers/qedr/qelr_verbs.c
+@@ -54,7 +54,6 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <execinfo.h>
+
+ #define QELR_SQE_ELEMENT_SIZE (sizeof(struct rdma_sq_sge))
+ #define QELR_RQE_ELEMENT_SIZE (sizeof(struct rdma_rq_sge))
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch
new file mode 100644
index 0000000..e887f22
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch
@@ -0,0 +1,26 @@
+From 82486f7e1ee2aa07a5c12cb357834993aa8c1d20 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Jun 2018 20:19:13 -0700
+Subject: [PATCH] neigh.c: Do not include net/if_packet.h
+
+This header is glibc specific
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libibverbs/neigh.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/libibverbs/neigh.c b/libibverbs/neigh.c
+index 21177db0..cfc593a0 100644
+--- a/libibverbs/neigh.c
++++ b/libibverbs/neigh.c
+@@ -2,7 +2,6 @@
+ */
+
+ #include "config.h"
+-#include <net/if_packet.h>
+ #include <linux/netlink.h>
+ #include <linux/rtnetlink.h>
+ #include <endian.h>
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb
new file mode 100644
index 0000000..6ad864d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Userspace support for InfiniBand/RDMA verbs"
+DESCRIPTION = "This is the userspace components for the Linux Kernel's drivers Infiniband/RDMA subsystem."
+SECTION = "libs"
+
+DEPENDS = "libnl"
+RDEPENDS_${PN} = "bash perl"
+
+SRC_URI = "git://github.com/linux-rdma/rdma-core.git;branch=stable-v18 \
+ file://0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch \
+ file://0002-neigh.c-Do-not-include-net-if_packet.h.patch \
+ file://0001-include-endian.h-for-htole32-and-friends.patch \
+ file://0002-Remove-unused-include-for-execinfo.h.patch \
+ file://0001-Remove-man-files-which-cant-be-built.patch \
+ "
+SRCREV = "7844b3fbe5120623d63b29ecb43eb83a61129658"
+S = "${WORKDIR}/git"
+
+#Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md
+LICENSE = "BSD-2-Clause | GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.BSD_FB;md5=0ec18bae1a9df92c8d6ae01f94a289ae \
+ file://COPYING.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${libdir}/*"
+INSANE_SKIP_${PN} += "dev-so"
+
+inherit cmake
+
+OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb
new file mode 100644
index 0000000..30d0a76
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2013 Wind River Systems, Inc.
+#
+
+SUMMARY = "Simple Protocol for Independent Computing Environments"
+DESCRIPTION = "SPICE (the Simple Protocol for Independent Computing \
+Environments) is a remote-display system built for virtual \
+environments which allows users to view a computing 'desktop' \
+environment - not only on its computer-server machine, but also from \
+anywhere on the Internet and using a wide variety of machine \
+architectures."
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b37311cb5604f3e5cc2fb0fd23527e95"
+
+PV = "0.12.13+git${SRCPV}"
+
+SRCREV = "87441524f4e7b79658e42bd8f1f6c3e3c8649aa5"
+
+SRC_URI = " \
+ git://anongit.freedesktop.org/spice/spice-protocol \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gettext pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch
new file mode 100644
index 0000000..505b7c8
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch
@@ -0,0 +1,66 @@
+From 0726ce6d6f52e135e28f15ca8392568c84909b1d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Jun 2018 16:21:39 -0700
+Subject: [PATCH] Convert pthread_t to be numeric
+
+typecast pthread_t to unsigned long
+pthread_t is implemented as a struct point in musl and its as per standard
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ server/red-channel.c | 5 +++--
+ server/red-client.c | 6 +++---
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/server/red-channel.c b/server/red-channel.c
+index 1b38f04d..11dc667b 100644
+--- a/server/red-channel.c
++++ b/server/red-channel.c
+@@ -192,7 +192,7 @@ red_channel_constructed(GObject *object)
+ {
+ RedChannel *self = RED_CHANNEL(object);
+
+- red_channel_debug(self, "thread_id 0x%lx", self->priv->thread_id);
++ red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id);
+
+ RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
+
+@@ -475,7 +475,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc)
+ red_channel_warning(channel, "channel->thread_id (0x%lx) != pthread_self (0x%lx)."
+ "If one of the threads is != io-thread && != vcpu-thread, "
+ "this might be a BUG",
+- channel->priv->thread_id, pthread_self());
++ (unsigned long)channel->priv->thread_id,
++ (unsigned long)pthread_self());
+ }
+ spice_return_if_fail(channel);
+ link = g_list_find(channel->priv->clients, rcc);
+diff --git a/server/red-client.c b/server/red-client.c
+index ddfc5400..76986640 100644
+--- a/server/red-client.c
++++ b/server/red-client.c
+@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *client)
+ spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)."
+ "If one of the threads is != io-thread && != vcpu-thread,"
+ " this might be a BUG",
+- client->thread_id, pthread_self());
++ (unsigned long)client->thread_id, (unsigned long)pthread_self());
+ }
+ FOREACH_CHANNEL_CLIENT(client, rcc) {
+ if (red_channel_client_is_connected(rcc)) {
+@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *client)
+ spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)."
+ "If one of the threads is != io-thread && != vcpu-thread,"
+ " this might be a BUG",
+- client->thread_id,
+- pthread_self());
++ (unsigned long)client->thread_id,
++ (unsigned long)pthread_self());
+ }
+ red_client_set_disconnecting(client);
+ FOREACH_CHANNEL_CLIENT(client, rcc) {
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch
new file mode 100644
index 0000000..1f9d5fd
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch
@@ -0,0 +1,36 @@
+From 7023732c65b4dc509c46a54fb7715da275b5597f Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 13 Sep 2018 12:39:44 +0800
+Subject: [PATCH] spice: fix compile fail problem
+
+compile error:
+format '%d' expects argument of type 'int', but argument 6 has
+type 'long unsigned int' [-Werror=format=]
+
+spice compile failed on 32bit system, since upstream commit
+9541cd2fe(in V0.14.1) change %ld to %PRIdPTR, %PRIdPTR is %d, but argument
+strm.total_out is uLong.
+
+Upstream-Status: Submitted[https://github.com/freedesktop/spice/pull/1]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ server/red-replay-qxl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
+index 1fce76c..bd33b58 100644
+--- a/server/red-replay-qxl.c
++++ b/server/red-replay-qxl.c
+@@ -266,7 +266,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz
+ exit(1);
+ }
+ if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) {
+- spice_error("inflate error %d (disc: %" PRIdPTR ")", ret, *size - strm.total_out);
++ spice_error("inflate error %d (disc: %ld)", ret, *size - strm.total_out);
+ if (ret == Z_DATA_ERROR) {
+ /* last operation may be wrong. since we do the recording
+ * in red_worker, when there is a shutdown from the vcpu/io thread
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb
new file mode 100644
index 0000000..1ad46c2
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb
@@ -0,0 +1,57 @@
+#
+# Copyright (C) 2013 Wind River Systems, Inc.
+#
+
+SUMMARY = "Simple Protocol for Independent Computing Environments"
+DESCRIPTION = "SPICE (the Simple Protocol for Independent Computing \
+Environments) is a remote-display system built for virtual \
+environments which allows users to view a computing 'desktop' \
+environment - not only on its computer-server machine, but also from \
+anywhere on the Internet and using a wide variety of machine \
+architectures."
+
+LICENSE = "BSD & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+PV = "0.14.1+git${SRCPV}"
+
+SRCREV_spice = "eaa07ef15cfc3bf57a69da2576af66f028787774"
+SRCREV_spice-common = "6b93b3fce8909b836ef1d1434d191900d8aa00be"
+
+SRCREV_FORMAT = "spice_spice-common"
+
+SRC_URI = " \
+ git://anongit.freedesktop.org/spice/spice;name=spice \
+ git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common \
+ file://0001-Convert-pthread_t-to-be-numeric.patch \
+ file://0001-spice-fix-compile-fail-problem.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gettext pythonnative python-dir pkgconfig
+
+DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0 python-pyparsing-native python-six-native glib-2.0-native"
+DEPENDS_append_class-nativesdk = "nativesdk-openssl"
+
+export PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python"
+export PYTHONPATH="${PKG_CONFIG_SYSROOT_DIR}${libdir}/python2.7/site-packages"
+
+PACKAGECONFIG_class-native = ""
+PACKAGECONFIG_class-nativesdk = ""
+PACKAGECONFIG ?= "sasl"
+
+PACKAGECONFIG[celt051] = "--enable-celt051,--disable-celt051,celt051"
+PACKAGECONFIG[smartcard] = "--enable-smartcard,--disable-smartcard,libcacard,"
+PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,"
+PACKAGECONFIG[client] = "--enable-client,--disable-client,,"
+PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,,"
+PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus,"
+PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,,"
+PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama,"
+
+COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
+
+BBCLASSEXTEND = "native nativesdk"
+
+EXTRA_OECONF_toolchain-clang += "--disable-werror"
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/usbredir_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/usbredir_git.bb
new file mode 100644
index 0000000..3fea752
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/spice/usbredir_git.bb
@@ -0,0 +1,21 @@
+SUMMARY = "usbredir libraries and utilities"
+
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4b54a1fd55a448865a0b32d41598759d \
+"
+
+DEPENDS = "libusb1"
+
+SRCREV = "39aa3c69f61bba28856a3eef3fe4ab37a3968e88"
+PV = "0.7.1+git${SRCPV}"
+
+SRC_URI = " \
+ git://anongit.freedesktop.org/spice/usbredir \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch b/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch
index be660d1..5945507 100644
--- a/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch
+++ b/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch
@@ -3,7 +3,7 @@
Date: Tue, 4 Mar 2014 14:38:42 +0800
Subject: [PATCH] fix the function parameter
-Upstream-Status: pending
+Upstream-Status: Pending
Original openssl_diffie_hellman_create has three parameters, but
it is reassigned a function pointer which has one parameter, and
diff --git a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb
deleted file mode 100644
index f2fe1f1..0000000
--- a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb
+++ /dev/null
@@ -1,132 +0,0 @@
-DESCRIPTION = "strongSwan is an OpenSource IPsec implementation for the \
-Linux operating system."
-SUMMARY = "strongSwan is an OpenSource IPsec implementation"
-HOMEPAGE = "http://www.strongswan.org"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gmp openssl flex-native flex bison-native"
-
-SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \
- file://fix-funtion-parameter.patch \
- file://0001-memory.h-Include-stdint.h-for-uintptr_t.patch \
- "
-
-SRC_URI[md5sum] = "46aa3aa18fbc4bd528f9a0345ce79913"
-SRC_URI[sha256sum] = "e0a60a30ebf3c534c223559e1686497a21ded709a5d605c5123c2f52bcc22e92"
-
-EXTRA_OECONF = " \
- --without-lib-prefix \
-"
-
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
-
-
-PACKAGECONFIG ??= "charon curl gmp openssl stroke sqlite3 \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ldap', d)} \
-"
-PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni"
-PACKAGECONFIG[charon] = "--enable-charon,--disable-charon,"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,${PN}-plugin-curl"
-PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp,${PN}-plugin-gmp"
-PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap,${PN}-plugin-ldap"
-PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,${PN}-plugin-mysql"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl,${PN}-plugin-openssl"
-PACKAGECONFIG[scep] = "--enable-scepclient,--disable-scepclient,"
-PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4,${PN}-plugin-soup"
-PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3,${PN}-plugin-sqlite"
-PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke,,${PN}-plugin-stroke"
-PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc"
-
-# requires swanctl
-PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd,"
-
-inherit autotools systemd pkgconfig
-
-RRECOMMENDS_${PN} = "kernel-module-ipsec"
-
-FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS}"
-FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/ipsec/.debug ${libexecdir}/ipsec/.debug"
-FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la"
-FILES_${PN}-staticdev += "${libdir}/ipsec/*.a"
-
-CONFFILES_${PN} = "${sysconfdir}/*.conf ${sysconfdir}/ipsec.d/*.conf ${sysconfdir}/strongswan.d/*.conf"
-
-PACKAGES += "${PN}-plugins"
-ALLOW_EMPTY_${PN}-plugins = "1"
-
-PACKAGES_DYNAMIC += "^${PN}-plugin-.*$"
-NOAUTOPACKAGEDEBUG = "1"
-
-python split_strongswan_plugins () {
- sysconfdir = d.expand('${sysconfdir}/strongswan.d/charon')
- libdir = d.expand('${libdir}/ipsec/plugins')
- dbglibdir = os.path.join(libdir, '.debug')
-
- def add_plugin_conf(f, pkg, file_regex, output_pattern, modulename):
- dvar = d.getVar('PKGD', True)
- oldfiles = d.getVar('CONFFILES_' + pkg, True)
- newfile = '/' + os.path.relpath(f, dvar)
-
- if not oldfiles:
- d.setVar('CONFFILES_' + pkg, newfile)
- else:
- d.setVar('CONFFILES_' + pkg, oldfiles + " " + newfile)
-
- split_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True)
- do_split_packages(d, sysconfdir, '(.*)\.conf', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True, hook=add_plugin_conf)
-
- split_dbg_packages = do_split_packages(d, dbglibdir, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s-dbg', 'strongSwan %s plugin - Debugging files', prepend=True, extra_depends='${PN}-dbg')
- split_dev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.la', '${PN}-plugin-%s-dev', 'strongSwan %s plugin - Development files', prepend=True, extra_depends='${PN}-dev')
- split_staticdev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.a', '${PN}-plugin-%s-staticdev', 'strongSwan %s plugin - Development files (Static Libraries)', prepend=True, extra_depends='${PN}-staticdev')
-
- if split_packages:
- pn = d.getVar('PN', True)
- d.setVar('RRECOMMENDS_' + pn + '-plugins', ' '.join(split_packages))
- d.appendVar('RRECOMMENDS_' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages))
- d.appendVar('RRECOMMENDS_' + pn + '-dev', ' ' + ' '.join(split_dev_packages))
- d.appendVar('RRECOMMENDS_' + pn + '-staticdev', ' ' + ' '.join(split_staticdev_packages))
-}
-
-PACKAGESPLITFUNCS_prepend = "split_strongswan_plugins "
-
-# Install some default plugins based on default strongSwan ./configure options
-# See https://wiki.strongswan.org/projects/strongswan/wiki/Pluginlist
-RDEPENDS_${PN} += "\
- ${PN}-plugin-aes \
- ${PN}-plugin-attr \
- ${PN}-plugin-cmac \
- ${PN}-plugin-constraints \
- ${PN}-plugin-des \
- ${PN}-plugin-dnskey \
- ${PN}-plugin-hmac \
- ${PN}-plugin-kernel-netlink \
- ${PN}-plugin-md5 \
- ${PN}-plugin-nonce \
- ${PN}-plugin-pem \
- ${PN}-plugin-pgp \
- ${PN}-plugin-pkcs1 \
- ${PN}-plugin-pkcs7 \
- ${PN}-plugin-pkcs8 \
- ${PN}-plugin-pkcs12 \
- ${PN}-plugin-pubkey \
- ${PN}-plugin-random \
- ${PN}-plugin-rc2 \
- ${PN}-plugin-resolve \
- ${PN}-plugin-revocation \
- ${PN}-plugin-sha1 \
- ${PN}-plugin-sha2 \
- ${PN}-plugin-socket-default \
- ${PN}-plugin-sshkey \
- ${PN}-plugin-updown \
- ${PN}-plugin-vici \
- ${PN}-plugin-x509 \
- ${PN}-plugin-xauth-generic \
- ${PN}-plugin-xcbc \
- ${PN}-plugin-curve25519 \
- "
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}-swanctl.service', '${BPN}.service', d)}"
diff --git a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb
new file mode 100644
index 0000000..c8bb17c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb
@@ -0,0 +1,134 @@
+DESCRIPTION = "strongSwan is an OpenSource IPsec implementation for the \
+Linux operating system."
+SUMMARY = "strongSwan is an OpenSource IPsec implementation"
+HOMEPAGE = "http://www.strongswan.org"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "gmp openssl flex-native flex bison-native"
+
+SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \
+ file://fix-funtion-parameter.patch \
+ file://0001-memory.h-Include-stdint.h-for-uintptr_t.patch \
+ "
+
+SRC_URI[md5sum] = "86b7e9321cde075cf382268fd282e0b0"
+SRC_URI[sha256sum] = "006f9c9126e2a2f4e7a874b5e1bd2abec1bbbb193c8b3b3a4c6ccd8c2d454bec"
+
+UPSTREAM_CHECK_REGEX = "strongswan-(?P<pver>\d+(\.\d+)+)\.tar"
+
+EXTRA_OECONF = " \
+ --without-lib-prefix \
+"
+
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
+
+
+PACKAGECONFIG ??= "charon curl gmp openssl stroke sqlite3 \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ldap', d)} \
+"
+PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni"
+PACKAGECONFIG[charon] = "--enable-charon,--disable-charon,"
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,${PN}-plugin-curl"
+PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp,${PN}-plugin-gmp"
+PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap,${PN}-plugin-ldap"
+PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,${PN}-plugin-mysql"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl,${PN}-plugin-openssl"
+PACKAGECONFIG[scep] = "--enable-scepclient,--disable-scepclient,"
+PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4,${PN}-plugin-soup"
+PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3,${PN}-plugin-sqlite"
+PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke,,${PN}-plugin-stroke"
+PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc"
+
+# requires swanctl
+PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd,"
+
+inherit autotools systemd pkgconfig
+
+RRECOMMENDS_${PN} = "kernel-module-ipsec"
+
+FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS}"
+FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/ipsec/.debug ${libexecdir}/ipsec/.debug"
+FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la"
+FILES_${PN}-staticdev += "${libdir}/ipsec/*.a"
+
+CONFFILES_${PN} = "${sysconfdir}/*.conf ${sysconfdir}/ipsec.d/*.conf ${sysconfdir}/strongswan.d/*.conf"
+
+PACKAGES += "${PN}-plugins"
+ALLOW_EMPTY_${PN}-plugins = "1"
+
+PACKAGES_DYNAMIC += "^${PN}-plugin-.*$"
+NOAUTOPACKAGEDEBUG = "1"
+
+python split_strongswan_plugins () {
+ sysconfdir = d.expand('${sysconfdir}/strongswan.d/charon')
+ libdir = d.expand('${libdir}/ipsec/plugins')
+ dbglibdir = os.path.join(libdir, '.debug')
+
+ def add_plugin_conf(f, pkg, file_regex, output_pattern, modulename):
+ dvar = d.getVar('PKGD', True)
+ oldfiles = d.getVar('CONFFILES_' + pkg, True)
+ newfile = '/' + os.path.relpath(f, dvar)
+
+ if not oldfiles:
+ d.setVar('CONFFILES_' + pkg, newfile)
+ else:
+ d.setVar('CONFFILES_' + pkg, oldfiles + " " + newfile)
+
+ split_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True)
+ do_split_packages(d, sysconfdir, '(.*)\.conf', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True, hook=add_plugin_conf)
+
+ split_dbg_packages = do_split_packages(d, dbglibdir, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s-dbg', 'strongSwan %s plugin - Debugging files', prepend=True, extra_depends='${PN}-dbg')
+ split_dev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.la', '${PN}-plugin-%s-dev', 'strongSwan %s plugin - Development files', prepend=True, extra_depends='${PN}-dev')
+ split_staticdev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.a', '${PN}-plugin-%s-staticdev', 'strongSwan %s plugin - Development files (Static Libraries)', prepend=True, extra_depends='${PN}-staticdev')
+
+ if split_packages:
+ pn = d.getVar('PN', True)
+ d.setVar('RRECOMMENDS_' + pn + '-plugins', ' '.join(split_packages))
+ d.appendVar('RRECOMMENDS_' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages))
+ d.appendVar('RRECOMMENDS_' + pn + '-dev', ' ' + ' '.join(split_dev_packages))
+ d.appendVar('RRECOMMENDS_' + pn + '-staticdev', ' ' + ' '.join(split_staticdev_packages))
+}
+
+PACKAGESPLITFUNCS_prepend = "split_strongswan_plugins "
+
+# Install some default plugins based on default strongSwan ./configure options
+# See https://wiki.strongswan.org/projects/strongswan/wiki/Pluginlist
+RDEPENDS_${PN} += "\
+ ${PN}-plugin-aes \
+ ${PN}-plugin-attr \
+ ${PN}-plugin-cmac \
+ ${PN}-plugin-constraints \
+ ${PN}-plugin-des \
+ ${PN}-plugin-dnskey \
+ ${PN}-plugin-hmac \
+ ${PN}-plugin-kernel-netlink \
+ ${PN}-plugin-md5 \
+ ${PN}-plugin-nonce \
+ ${PN}-plugin-pem \
+ ${PN}-plugin-pgp \
+ ${PN}-plugin-pkcs1 \
+ ${PN}-plugin-pkcs7 \
+ ${PN}-plugin-pkcs8 \
+ ${PN}-plugin-pkcs12 \
+ ${PN}-plugin-pubkey \
+ ${PN}-plugin-random \
+ ${PN}-plugin-rc2 \
+ ${PN}-plugin-resolve \
+ ${PN}-plugin-revocation \
+ ${PN}-plugin-sha1 \
+ ${PN}-plugin-sha2 \
+ ${PN}-plugin-socket-default \
+ ${PN}-plugin-sshkey \
+ ${PN}-plugin-updown \
+ ${PN}-plugin-vici \
+ ${PN}-plugin-x509 \
+ ${PN}-plugin-xauth-generic \
+ ${PN}-plugin-xcbc \
+ ${PN}-plugin-curve25519 \
+ "
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}-swanctl.service', '${BPN}.service', d)}"
diff --git a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
deleted file mode 100644
index ec8478d..0000000
--- a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Program for providing universal TLS/SSL tunneling service"
-HOMEPAGE = "http://www.stunnel.org/"
-DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server."
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=866cdc7459d91e092b174388fab8d283"
-DEPENDS = "openssl zlib tcp-wrappers"
-
-RDEPENDS_${PN} += "perl"
-
-SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz \
- file://fix-openssl-no-des.patch \
-"
-
-SRC_URI[md5sum] = "9079f5fafbccaf88b7d92b227d78249a"
-SRC_URI[sha256sum] = "ffa386ae4c825f35f35157c285e7402a6d58779ad8c3822f74a9d355b54aba1d"
-
-inherit autotools
-
-EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)}"
-PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.49.bb b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.49.bb
new file mode 100644
index 0000000..eca77cf
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.49.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Program for providing universal TLS/SSL tunneling service"
+DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server."
+HOMEPAGE = "https://www.stunnel.org/"
+SECTION = "net"
+# Note: Linking stunnel statically or dynamically with other modules is making
+# a combined work based on stunnel. Thus, the terms and conditions of the GNU
+# General Public License cover the whole combination.
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f6b7fe7379c9c2d7db6c80f7bd41e06d"
+
+DEPENDS = "autoconf-archive libnsl2 openssl"
+
+SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz \
+ file://fix-openssl-no-des.patch \
+"
+
+SRC_URI[md5sum] = "0b41240e5585ec7d55ca343feed5530f"
+SRC_URI[sha256sum] = "3d6641213a82175c19f23fde1c3d1c841738385289eb7ca1554f4a58b96d955e"
+
+inherit autotools
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} libwrap"
+
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[libwrap] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
+PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
+
+EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips"
+
+# When cross compiling, configure defaults to nobody, but provides no option to change it.
+EXTRA_OEMAKE += "DEFAULT_GROUP='nogroup'"
+
+# stunnel3 is a Perl wrapper to allow use of the legacy stunnel 3.x commandline
+# syntax with stunnel >= 4.05
+PACKAGES =+ "stunnel3"
+FILES_stunnel3 = "${bindir}/stunnel3"
+RDEPENDS_stunnel3 += "${PN} perl"
diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
index 01d0236..91508d7 100644
--- a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
+++ b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
@@ -1,19 +1,40 @@
---- a/configure.ac 2016-01-01 17:42:27.000000000 +0100
-+++ b/configure.ac 2017-04-20 14:03:37.238254471 +0200
-@@ -284,24 +284,12 @@
- AC_SUBST(LIBS)
- AC_SUBST(ADDITIONAL_OBJECTS)
+From b71eb384522b5ce4629dee6e8be257fb4880fef3 Mon Sep 17 00:00:00 2001
+From: Benjamin Gaignard <benjamin.gaignard@linaro.org>
+Date: Thu, 20 Apr 2017 14:25:18 +0200
+
+---
+ Makefile.am | 1 -
+ configure.ac | 9 ---------
+ 2 files changed, 10 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index e9113c2..2fe3d54 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,7 +2,6 @@ SUBDIRS = \
+ src \
+ data \
+ etc \
+- docs \
+ m4macros \
+ tests
+
+diff --git a/configure.ac b/configure.ac
+index 48ee0b2..a1a5fa1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -194,10 +194,6 @@ AC_SUBST(ADDITIONAL_OBJECTS)
+ AC_PATH_PROG(XSLTPROC, xsltproc, no)
+ AM_CONDITIONAL(HAVE_XSLTPROC, test "x$XSLTPROC" != "xno")
-# Check for asciidoc
-AC_PATH_PROG(A2X, a2x, no)
-AM_CONDITIONAL(HAVE_A2X, test "x$A2X" != "xno")
--if test x"$A2X" = x"no"; then
-- AC_MSG_ERROR([Test for asciidoc failed. See the file 'INSTALL' for help.])
--fi
-
- AC_CONFIG_FILES([
- Makefile
- src/Makefile
+ # checking xmllint
+ AC_PATH_PROG(XMLLINT, xmllint, no)
+ if test "x$XMLLINT" != "xno"; then
+@@ -219,11 +215,6 @@ src/Makefile
data/Makefile
data/templates/Makefile
etc/Makefile
@@ -25,13 +46,3 @@
m4macros/Makefile
tests/Makefile
tests/scripts/Makefile
---- a/Makefile.am 2016-01-01 17:42:27.000000000 +0100
-+++ b/Makefile.am 2017-04-20 14:03:53.842822997 +0200
-@@ -2,7 +2,6 @@
- src \
- data \
- etc \
-- docs \
- m4macros \
- tests
-
diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service
index ea079f9..df42745 100644
--- a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service
+++ b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service
@@ -8,7 +8,7 @@
ExecStartPre=/bin/chown -R nobody.tinyproxy /var/log/tinyproxy
ExecStartPre=/bin/mkdir -p /var/run/tinyproxy
ExecStartPre=/bin/chown -R nobody.tinyproxy /var/run/tinyproxy
-ExecStart=/usr/sbin/tinyproxy -d
+ExecStart=/usr/bin/tinyproxy -d
[Install]
WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb
new file mode 100644
index 0000000..144dcf3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Lightweight http(s) proxy daemon"
+HOMEPAGE = "https://tinyproxy.github.io/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.gz \
+ file://disable-documentation.patch \
+ file://tinyproxy.service"
+
+SRC_URI[md5sum] = "423047c8dc53a15e19f78e238198549c"
+SRC_URI[sha256sum] = "6020955e6a0ef0ef898ad5bb17a448c47f9e4c003c464b4ae7c4dba063272055"
+
+EXTRA_OECONF += " \
+ --enable-filter \
+ --enable-transparent \
+ --enable-reverse \
+ --enable-upstream \
+ --enable-xtinyproxy \
+ "
+
+inherit autotools systemd useradd
+
+#User specific
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --home /dev/null \
+ --no-user-group --gid nogroup tinypoxy"
+
+SYSTEMD_PACKAGES += "${BPN}"
+SYSTEMD_SERVICE_${PN} = "tinyproxy.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/tinyproxy.service ${D}${systemd_system_unitdir}
+ fi
+}
diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb
deleted file mode 100644
index 98192dc..0000000
--- a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Lightweight http(s) proxy daemon"
-HOMEPAGE = "https://tinyproxy.github.io/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.gz \
- file://disable-documentation.patch \
- file://tinyproxy.service"
-
-SRC_URI[md5sum] = "3b60f7d08e0821ed1a3e2cf1e5778cac"
-SRC_URI[sha256sum] = "8234c879a129feee61efa98bac14a1a3e46e5cf08f01696a216940872aa70faf"
-
-EXTRA_OECONF += " \
- --enable-filter \
- --enable-transparent \
- --disable-regexcheck \
- --enable-reverse \
- --enable-upstream \
- --enable-xtinyproxy \
- "
-
-inherit autotools systemd useradd
-
-#User specific
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --home /dev/null \
- --no-user-group --gid nogroup tinypoxy"
-
-SYSTEMD_PACKAGES += "${BPN}"
-SYSTEMD_SERVICE_${PN} = "tinyproxy.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/tinyproxy.service ${D}${systemd_system_unitdir}
- fi
-}
diff --git a/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb b/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb
deleted file mode 100644
index 1166f9a..0000000
--- a/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Encrypted UDP based FTP with multicast"
-HOMEPAGE = "https://sourceforge.net/projects/uftp-multicast"
-SECTION = "libs/network"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz"
-SRC_URI[md5sum] = "231d6ba7820d89a712fe7d727ab0f8e6"
-SRC_URI[sha256sum] = "9e9215af0315257c6cc4f40fbc6161057e861be1fff10a38a5564f699e99c78f"
-
-DEPENDS = "openssl"
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
diff --git a/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.8.bb b/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.8.bb
new file mode 100644
index 0000000..0bbdd6b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.8.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Encrypted UDP based FTP with multicast"
+HOMEPAGE = "https://sourceforge.net/projects/uftp-multicast"
+SECTION = "libs/network"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz"
+SRC_URI[md5sum] = "f7a5affd3000b5aafbb13df49719b6c0"
+SRC_URI[sha256sum] = "e98c6318e497124d777ca71eae752d213207c35de9f782c8bcaaf82ece20e599"
+
+DEPENDS = "openssl"
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/files/libgcrypt.patch b/meta-openembedded/meta-networking/recipes-support/wireshark/files/libgcrypt.patch
deleted file mode 100644
index 2aa58f7..0000000
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/files/libgcrypt.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-use OR PKG_CONFIG scheme for libgcrypt
-
-Upstream-Status: Inappropriate OE specific
-
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Index: wireshark-2.4.4/m4/libgcrypt.m4
-===================================================================
---- wireshark-2.4.4.orig/m4/libgcrypt.m4
-+++ wireshark-2.4.4/m4/libgcrypt.m4
-@@ -27,11 +27,11 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
- libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
- if test x$libgcrypt_config_prefix != x ; then
- if test x${LIBGCRYPT_CONFIG+set} != xset ; then
-- LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config
-+ LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/libgcrypt.pc
- fi
- fi
-
-- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
-+ AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt.pc, no)
- tmp=ifelse([$1], ,1:1.2.0,$1)
- if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
- req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
-@@ -50,7 +50,7 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
- req_micro=`echo $min_libgcrypt_version | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
-+ libgcrypt_config_version=`$PKG_CONFIG --modversion libgcrypt`
- major=`echo $libgcrypt_config_version | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
- minor=`echo $libgcrypt_config_version | \
-@@ -82,7 +82,7 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
- # If we have a recent libgcrypt, we should also check that the
- # API is compatible
- if test "$req_libgcrypt_api" -gt 0 ; then
-- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
-+ tmp=`$PKG_CONFIG --api-version libgcrypt 2>/dev/null || echo 0`
- if test "$tmp" -gt 0 ; then
- AC_MSG_CHECKING([LIBGCRYPT API version])
- if test "$req_libgcrypt_api" -eq "$tmp" ; then
-@@ -95,8 +95,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
- fi
- fi
- if test $ok = yes; then
-- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
-- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
-+ LIBGCRYPT_CFLAGS=`$PKG_CONFIG --cflags libgcrypt`
-+ LIBGCRYPT_LIBS=`$PKG_CONFIG --libs libgcrypt`
- ifelse([$2], , :, [$2])
- else
- LIBGCRYPT_CFLAGS=""
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch
new file mode 100644
index 0000000..e65ef9b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch
@@ -0,0 +1,29 @@
+From 1a6a5d2bcb1adec9ba138c2ebee7bbc994620aff Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Jun 2018 23:23:44 -0700
+Subject: [PATCH] Add libm to link for fmod() API
+
+fixes
+ld: CMakeFiles/tshark.dir/ui/cli/tap-comparestat.c.o: undefined reference to symbol 'fmod@@GLIBC_2.2.5'
+| /mnt/a/oe/build/tmp/work/core2-64-bec-linux/wireshark/1_2.6.1-r0/recipe-sysroot/lib/libm.so.6: error adding symbols: DSO missing from command line
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7950e85..acee140 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2494,6 +2494,7 @@ if(BUILD_tshark)
+ ${LIBEPAN_LIBS}
+ ${APPLE_CORE_FOUNDATION_LIBRARY}
+ ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
++ m
+ )
+ set(tshark_FILES
+ capture_opts.c
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.4.8.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.4.8.bb
deleted file mode 100644
index 51a7aa8..0000000
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.4.8.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-DESCRIPTION = "wireshark - a popular network protocol analyzer"
-HOMEPAGE = "http://www.wireshark.org"
-SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77"
-
-DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error"
-
-SRC_URI = "https://1.as.dl.wireshark.org/src/all-versions/${BP}.tar.xz"
-SRC_URI += "file://libgcrypt.patch"
-
-UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
-
-SRC_URI[md5sum] = "25f93aa6a2b3fdd9d1f01a49f84d224f"
-SRC_URI[sha256sum] = "db8ed7828c157e4ffb91fb8c41fa5a2f37fd44259175951a5c37848bf641f5e8"
-
-PE = "1"
-
-inherit autotools pkgconfig perlnative upstream-version-is-even
-
-ARM_INSTRUCTION_SET = "arm"
-
-PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
-PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk2 graphics", "", d)}"
-
-PACKAGECONFIG[libcap] = "--with-libcap=${STAGING_DIR_HOST}/usr, --with-libcap=no --enable-pcap-ng-default , libcap"
-PACKAGECONFIG[libpcap] = "--with-pcap=${STAGING_DIR_HOST}/usr --with-pcap-remote, --with-pcap=no --enable-pcap-ng-default , libpcap"
-PACKAGECONFIG[libsmi] = "--with-libsmi=yes, --with-libsmi=no, libsmi"
-PACKAGECONFIG[libnl] = "--with-libnl=yes, --with-libnl=no, libnl"
-PACKAGECONFIG[portaudio] = "--with-portaudio=yes, --with-portaudio=no, portaudio-v19"
-PACKAGECONFIG[gtk2] = "--with-gtk=2, , gtk+"
-PACKAGECONFIG[gtk3] = "--with-gtk=3, , gtk+3"
-PACKAGECONFIG[graphics] = "--enable-wireshark, --with-gtk=no --disable-wireshark,"
-PACKAGECONFIG[gnutls] = "--with-gnutls=yes, --with-gnutls=no, gnutls"
-PACKAGECONFIG[ssl] = "--with-ssl=yes, --with-ssl=no, openssl"
-PACKAGECONFIG[krb5] = "--with-krb5=yes, --with-krb5=no, krb5"
-PACKAGECONFIG[lua] = "--with-lua=yes, --with-lua=no, lua"
-PACKAGECONFIG[zlib] = "--with-zlib=yes, --with-zlib=no, zlib"
-PACKAGECONFIG[geoip] = "--with-geoip=yes, --with-geoip=no, geoip"
-PACKAGECONFIG[plugins] = "--with-plugins=yes, --with-plugins=no"
-PACKAGECONFIG[sbc] = "--with-sbc=yes, --with-sbc=no, sbc"
-PACKAGECONFIG[libssh] = "--with-libssh=${STAGING_DIR_HOST}/usr, --with-libssh=no, libssh2"
-PACKAGECONFIG[lz4] = "--with-lz4=${STAGING_DIR_HOST}/usr, --with-lz4=no, lz4"
-
-# these next two options require addional layers
-PACKAGECONFIG[c-ares] = "--with-c-ares=yes, --with-c-ares=no, c-ares"
-
-EXTRA_OECONF += "--with-libgcrypt-prefix=${PKG_CONFIG_DIR} --with-qt=no --enable-tshark --enable-rawshark"
-
-LDFLAGS_append = " -lgpg-error"
-
-# Currently wireshark does not install header files
-do_install_append () {
-
- install -d ${D}/${includedir}/${BPN}
- install -d ${D}/${includedir}/${BPN}/epan
- install -d ${D}/${includedir}/${BPN}/epan/crypt
- install -d ${D}/${includedir}/${BPN}/epan/dfilter
- install -d ${D}/${includedir}/${BPN}/epan/dissectors
- install -d ${D}/${includedir}/${BPN}/epan/ftypes
- install -d ${D}/${includedir}/${BPN}/epan/wmem
-
- install config.h ${D}/${includedir}/${BPN}
- install ${S}/register.h ${D}/${includedir}/${BPN}
- install -D ${S}/epan/*.h ${D}/${includedir}/${BPN}/epan
- install -D ${S}/epan/crypt/*.h ${D}/${includedir}/${BPN}/epan/crypt
- install -D ${S}/epan/dfilter/*.h ${D}/${includedir}/${BPN}/epan/dfilter
- install -D ${S}/epan/dissectors/*.h ${D}/${includedir}/${BPN}/epan/dissectors
- install -D ${S}/epan/ftypes/*.h ${D}/${includedir}/${BPN}/epan/ftypes
- install -D ${S}/epan/wmem/*.h ${D}/${includedir}/${BPN}/epan/wmem
-}
-
-FILES_${PN} += "${datadir}*"
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.4.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.4.bb
new file mode 100644
index 0000000..595502e
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.4.bb
@@ -0,0 +1,94 @@
+DESCRIPTION = "wireshark - a popular network protocol analyzer"
+HOMEPAGE = "http://www.wireshark.org"
+SECTION = "net"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77"
+
+DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2 bison-native"
+
+DEPENDS_append_class-target = " wireshark-native chrpath-replacement-native "
+
+SRC_URI = "https://1.as.dl.wireshark.org/src/all-versions/${BP}.tar.xz \
+ file://0001-Add-libm-to-link-for-fmod-API.patch \
+ "
+
+UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
+
+SRC_URI[md5sum] = "8aa7b8c8ce0b6ce4256a081493819d6f"
+SRC_URI[sha256sum] = "a06b007e6343f148b8b93443b2fcfc9bb3204311cd268565d54d1b71660bc861"
+
+PE = "1"
+
+inherit cmake pkgconfig pythonnative perlnative upstream-version-is-even
+
+ARM_INSTRUCTION_SET = "arm"
+
+# Options: gtk+, gtk+3 and qt5
+GTK = "gtk+3"
+
+PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
+PACKAGECONFIG_append_class-target = " ${@bb.utils.contains("DISTRO_FEATURES", "x11", " ${GTK}", "", d)}"
+
+PACKAGECONFIG_class-native = "libpcap gnutls ssl libssh"
+
+PACKAGECONFIG[libcap] = "-DENABLE_CAP=ON,-DENABLE_CAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON, libcap"
+PACKAGECONFIG[libpcap] = "-DENABLE_PCAP=ON,-DENABLE_PCAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON , libpcap"
+PACKAGECONFIG[libsmi] = "-DENABLE_SMI=ON,-DENABLE_SMI=OFF,libsmi"
+PACKAGECONFIG[libnl] = ",,libnl"
+PACKAGECONFIG[portaudio] = "-DENABLE_PORTAUDIO=ON,-DENABLE_PORTAUDIO=OFF, portaudio-v19"
+PACKAGECONFIG[gtk+] = "-DENABLE_GTK=ON -DBUILD_wireshark_gtk=ON, -DENABLE_GTK=OFF, gtk+"
+PACKAGECONFIG[gtk+3] = "-DENABLE_GTK3=ON -DBUILD_wireshark_gtk=ON, -DENABLE_GTK3=OFF, gtk+3"
+PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF, gnutls"
+PACKAGECONFIG[ssl] = ",,openssl"
+PACKAGECONFIG[krb5] = "-DENABLE_KRB5=ON,-DENABLE_KRB5=OFF, krb5"
+PACKAGECONFIG[lua] = "-DENABLE_LUA=ON,-DENABLE_LUA=OFF, lua"
+PACKAGECONFIG[zlib] = "-DENABLE_ZLIB=ON,-DENABLE_ZLIB=OFF, zlib"
+PACKAGECONFIG[geoip] = ",, geoip"
+PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF"
+PACKAGECONFIG[sbc] = "-DENABLE_SBC=ON,-DENABLE_SBC=OFF, sbc"
+PACKAGECONFIG[libssh] = ",,libssh2"
+PACKAGECONFIG[lz4] = "-DENABLE_LZ4=ON,-DENABLE_LZ4=OFF, lz4"
+
+# these next two options require addional layers
+PACKAGECONFIG[c-ares] = "-DENABLE_CARES=ON,-DENABLE_CARES=OFF, c-ares"
+PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON -DBUILD_wireshark=ON, -DENABLE_QT5=OFF -DBUILD_wireshark=OFF, qtbase"
+
+EXTRA_OECMAKE += "-DENABLE_NETLINK=ON \
+ -DBUILD_mmdbresolve=OFF \
+ -DBUILD_randpktdump=OFF \
+ -DBUILD_androiddump=OFF \
+ -DBUILD_dcerpcidl2wrs=OFF \
+ -DM_INCLUDE_DIR=${includedir} \
+ -DM_LIBRARY=${libdir} \
+ "
+CFLAGS_append = " -lm"
+
+do_install_append_class-native() {
+ install -d ${D}${bindir}
+ for f in lemon
+ do
+ install -m 0755 ${B}/run/$f ${D}${bindir}
+ done
+}
+
+do_install_append_class-target() {
+ for f in `find ${D}${libdir} ${D}${bindir} -type f -executable`
+ do
+ chrpath --delete $f
+ done
+}
+
+PACKAGE_BEFORE_PN += "tshark"
+PACKAGE_BEFORE_PN += "${PN}-gtk"
+
+FILES_tshark = "${bindir}/tshark ${mandir}/man1/tshark.*"
+FILES_${PN}-gtk = "${bindir}/wireshark-gtk ${datadir}/icons ${datadir}/appdata \
+ ${datadir}/applications ${datadir}/wireshark ${datadir}/mime \
+ ${mandir}/man1/wireshark.* "
+
+FILES_${PN} += "${datadir}*"
+
+RDEPENDS_tshark = "wireshark"
+RDEPENDS_${PN}-gtk = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "${GTK}", "", d)} wireshark"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/README b/meta-openembedded/meta-oe/README
index 7cde0a2..de351f2 100644
--- a/meta-openembedded/meta-oe/README
+++ b/meta-openembedded/meta-oe/README
@@ -1,14 +1,22 @@
+meta-oe
+=======
+
This layer depends on:
-URI: git://github.com/openembedded/oe-core.git
-branch: master
+URI: git://github.com/openembedded/openembedded-core.git
+branch: thud
revision: HEAD
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][thud]' in the subject'
When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe[thud][PATCH'
-You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
+You are encouraged to fork the mirror on GitHub https://github.com/openembedded/openembedded-core
+to share your patches, this is preferred for patch sets consisting of more than one patch.
-Main layer maintainer: Armin Kuster <akuster808@gmail.com>
+Other services like gitorious, repo.or.cz or self-hosted setups are of course accepted as well,
+'git fetch <remote>' works the same on all of them. We recommend GitHub because it is free, easy
+to use, has been proven to be reliable and has a really good web GUI.
+
+Thud maintainer: Armin Kuster <akuster808@gmail.com>
diff --git a/meta-openembedded/meta-oe/classes/dos2unix.bbclass b/meta-openembedded/meta-oe/classes/dos2unix.bbclass
deleted file mode 100644
index 1bad998..0000000
--- a/meta-openembedded/meta-oe/classes/dos2unix.bbclass
+++ /dev/null
@@ -1,14 +0,0 @@
-# Class for use to convert all CRLF line terminators to LF
-# provided that some projects are being developed/maintained
-# on Windows so they have different line terminators(CRLF) vs
-# on Linux(LF), which can cause annoying patching errors during
-# git push/checkout processes.
-
-do_convert_crlf_to_lf[depends] += "dos2unix-native:do_populate_sysroot"
-
-# Convert CRLF line terminators to LF
-do_convert_crlf_to_lf () {
- find ${S} -type f -exec dos2unix {} \;
-}
-
-addtask convert_crlf_to_lf after do_unpack before do_patch
diff --git a/meta-openembedded/meta-oe/classes/scancode.bbclass b/meta-openembedded/meta-oe/classes/scancode.bbclass
new file mode 100644
index 0000000..701660f
--- /dev/null
+++ b/meta-openembedded/meta-oe/classes/scancode.bbclass
@@ -0,0 +1,35 @@
+# We use scancode utlity for extacting licence information.
+# scancode itself is an OSS Utlitity.
+# For more informaiton https://github.com/nexB/scancode-toolkit
+
+SCANCODE_FORMAT ?= "html-app"
+EXT = "${@'html' if d.getVar('SCANCODE_FORMAT', True) == 'html-app' else 'json'}"
+SCANCODE_TOOLKIT = "${@get_scancode_toolkit(d)}"
+SCANCODE_TAG = "v2.2.1"
+SCANCODE_GIT_LOCATION ?= "https://github.com/nexB/scancode-toolkit.git"
+SCANCODE_SRC_LOCATION ?= "${DL_DIR}/scancode"
+
+def get_scancode_toolkit(d):
+ lf = bb.utils.lockfile(d.getVar('SCANCODE_SRC_LOCATION', True) + ".lock")
+ if (not os.path.exists(d.getVar('SCANCODE_SRC_LOCATION', True))):
+ os.system("git clone %s %s -b %s" % (d.getVar('SCANCODE_GIT_LOCATION', True), d.getVar('SCANCODE_SRC_LOCATION', True), d.getVar('SCANCODE_TAG', True)))
+ bb.utils.unlockfile(lf)
+ return (d.getVar('SCANCODE_SRC_LOCATION', True))
+
+do_scancode() {
+ mkdir -p ${DEPLOY_DIR_IMAGE}/scancode
+ cd ${SCANCODE_TOOLKIT}
+ if [ -d "${S}" ]; then
+ ./scancode ${S} --format ${SCANCODE_FORMAT} ${DEPLOY_DIR_IMAGE}/scancode/${PN}.${EXT}
+ fi
+}
+
+addtask scancode after do_patch
+
+do_scancode_oss() {
+ echo "We are done running scancode"
+}
+
+do_scancode_oss[recrdeptask] = "do_scancode_oss do_scancode"
+do_scancode_oss[nostamp] = "1"
+addtask do_scancode_oss after do_scancode
diff --git a/meta-openembedded/meta-oe/conf/layer.conf b/meta-openembedded/meta-oe/conf/layer.conf
index 1a43575..23c10ce 100644
--- a/meta-openembedded/meta-oe/conf/layer.conf
+++ b/meta-openembedded/meta-oe/conf/layer.conf
@@ -29,7 +29,7 @@
LAYERDEPENDS_openembedded-layer = "core"
-LAYERSERIES_COMPAT_openembedded-layer = "sumo"
+LAYERSERIES_COMPAT_openembedded-layer = "thud"
LICENSE_PATH += "${LAYERDIR}/licenses"
@@ -77,3 +77,5 @@
source-han-sans-kr-fonts->fontconfig \
source-han-sans-tw-fonts->fontconfig \
"
+
+DEFAULT_TEST_SUITES_pn-meta-oe-ptest-image = " ${PTESTTESTSUITE}"
diff --git a/meta-openembedded/meta-oe/lib/oeqa/selftest/cases/meta_oe_sources.py b/meta-openembedded/meta-oe/lib/oeqa/selftest/cases/meta_oe_sources.py
new file mode 100644
index 0000000..b17c795
--- /dev/null
+++ b/meta-openembedded/meta-oe/lib/oeqa/selftest/cases/meta_oe_sources.py
@@ -0,0 +1,30 @@
+import os
+import re
+import glob as g
+import shutil
+import tempfile
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
+
+class MetaOESourceMirroring(OESelftestTestCase):
+ # Can we download everything from the OpenEmbedded Sources Mirror over http only
+ def test_oe_source_mirror(self):
+ self.write_config("""
+BB_ALLOWED_NETWORKS = " sources.openembedded.org"
+MIRRORS = ""
+DL_DIR = "${TMPDIR}/test_oe_downloads"
+PREMIRRORS = "\\
+ bzr://.*/.* http://sources.openembedded.org/ \\n \\
+ cvs://.*/.* http://sources.openembedded.org/ \\n \\
+ git://.*/.* http://sources.openembedded.org/ \\n \\
+ gitsm://.*/.* http://sources.openembedded.org/ \\n \\
+ hg://.*/.* http://sources.openembedded.org/ \\n \\
+ osc://.*/.* http://sources.openembedded.org/ \\n \\
+ p4://.*/.* http://sources.openembedded.org/ \\n \\
+ svn://.*/.* http://sources.openembedded.org/ \\n \\
+ ftp://.*/.* http://sources.openembedded.org/ \\n \\
+ http://.*/.* http://sources.openembedded.org/ \\n \\
+ https://.*/.* http://sources.openembedded.org/ \\n"
+ """)
+
+ bitbake("world --runall fetch")
diff --git a/meta-openembedded/meta-oe/licenses/Khronos b/meta-openembedded/meta-oe/licenses/Khronos
new file mode 100644
index 0000000..7afedf6
--- /dev/null
+++ b/meta-openembedded/meta-oe/licenses/Khronos
@@ -0,0 +1,35 @@
+Copyright (c) 2016 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software source and associated documentation files (the "Materials"),
+to deal in the Materials without restriction, including without limitation
+the rights to use, copy, modify, compile, merge, publish, distribute,
+sublicense, and/or sell copies of the Materials, and to permit persons to
+whom the Materials are furnished to do so, subject the following terms and
+conditions:
+
+All modifications to the Materials used to create a binary that is
+distributed to third parties shall be provided to Khronos with an
+unrestricted license to use for the purposes of implementing bug fixes and
+enhancements to the Materials;
+
+If the binary is used as part of an OpenCL(TM) implementation, whether binary
+is distributed together with or separately to that implementation, then
+recipient must become an OpenCL Adopter and follow the published OpenCL
+conformance process for that implementation, details at:
+http://www.khronos.org/conformance/;
+
+The above copyright notice, the OpenCL trademark license, and this permission
+notice shall be included in all copies or substantial portions of the
+Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN
+THE MATERIALS.
+
+OpenCL is a trademark of Apple Inc. used under license by Khronos.
+
diff --git a/meta-openembedded/meta-oe/licenses/Mini-XML-License b/meta-openembedded/meta-oe/licenses/Mini-XML-License
new file mode 100644
index 0000000..4d0aa78
--- /dev/null
+++ b/meta-openembedded/meta-oe/licenses/Mini-XML-License
@@ -0,0 +1,507 @@
+ Mini-XML License
+ September 18, 2010
+
+
+The Mini-XML library and included programs are provided under the
+terms of the GNU Library General Public License version 2 (LGPL2)
+with the following exceptions:
+
+ 1. Static linking of applications to the Mini-XML library
+does not constitute a derivative work and does not require
+the author to provide source code for the application, use
+the shared Mini-XML libraries, or link their applications
+against a user-supplied version of Mini-XML.
+
+If you link the application to a modified version of
+Mini-XML, then the changes to Mini-XML must be provided
+under the terms of the LGPL2 in sections 1, 2, and 4.
+
+ 2. You do not have to provide a copy of the Mini-XML license
+with programs that are linked to the Mini-XML library, nor
+do you have to identify the Mini-XML license in your
+program or documentation as required by section 6 of the
+LGPL2.
+
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ [This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb b/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb
deleted file mode 100644
index 2c1217e..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Tests large file IO and creation/deletion of small files"
-HOMEPAGE = "http://www.coker.com.au/bonnie++/"
-SECTION = "benchmark/tests"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://copyright.txt;md5=cd4dde95a6b9d122f0a9150ae9cc3ee0"
-
-SRC_URI = "http://www.coker.com.au/bonnie++/${BPN}-${PV}.tgz \
- file://gcc-4.3-fixes.patch \
-"
-SRC_URI[md5sum] = "750aa5b5051263a99c6c195888c74968"
-SRC_URI[sha256sum] = "cb3866116634bf65760b6806be4afa7e24a1cad6f145c876df8721f01ba2e2cb"
-
-inherit autotools-brokensep
-
-SCRIPTS = "bon_csv2html bon_csv2txt"
-EXES = "bonnie++ zcav"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install () {
- install -d ${D}/${bindir}
- install -d ${D}/${sbindir}
- install -m 0755 ${EXES} ${D}/${sbindir}
- install -m 0755 ${SCRIPTS} ${D}/${bindir}
-}
-
-PACKAGES =+ "bonnie-scripts"
-
-FILES_${PN} = "${sbindir}"
-FILES_bonnie-scripts = "${bindir}"
-
-RDEPENDS_bonnie-scripts += "perl"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.04.bb b/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.04.bb
new file mode 100644
index 0000000..d7583f0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.04.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Tests large file IO and creation/deletion of small files"
+HOMEPAGE = "http://www.coker.com.au/bonnie++/"
+SECTION = "benchmark/tests"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://copyright.txt;md5=cd4dde95a6b9d122f0a9150ae9cc3ee0"
+
+SRC_URI = "http://www.coker.com.au/bonnie++/${BPN}_${PV}.tgz \
+"
+SRC_URI[md5sum] = "1414aab86e2db1b4691bd4be82031012"
+SRC_URI[sha256sum] = "507bd2ce5360c7c98b91b0fdc2bed5c9320b5c9699f7d4a3d1c86b256896c15e"
+
+inherit autotools-brokensep
+
+SCRIPTS = "bon_csv2html bon_csv2txt"
+EXES = "bonnie++ zcav"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+ install -d ${D}/${bindir}
+ install -d ${D}/${sbindir}
+ install -m 0755 ${EXES} ${D}/${sbindir}
+ install -m 0755 ${SCRIPTS} ${D}/${bindir}
+}
+
+PACKAGES =+ "bonnie-scripts"
+
+FILES_${PN} = "${sbindir}"
+FILES_bonnie-scripts = "${bindir}"
+
+RDEPENDS_bonnie-scripts += "perl"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch b/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch
deleted file mode 100644
index 67f1b74..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Includes string.h to one of the source file.
-
-Upstream-Status: Inappropriate [not author.]
----
- zcav.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: bonnie++-1.03a/zcav.cpp
-===================================================================
---- bonnie++-1.03a.orig/zcav.cpp
-+++ bonnie++-1.03a/zcav.cpp
-@@ -15,6 +15,7 @@ using namespace std;
- #else
- #include <vector.h>
- #endif
-+#include <string.h>
-
- // Read the specified number of megabytes of data from the fd and return the
- // amount of time elapsed in seconds.
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb b/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
index 1915e4c..fb6a96e 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
@@ -14,12 +14,13 @@
inherit autotools
-PACKAGES =+ "tbench tbench-dbg"
+PACKAGES =+ "tbench"
+
+RPROVIDES_${PN}-dbg += "tbench-dbg"
TARGET_CC_ARCH += "${LDFLAGS}"
FILES_tbench = "${bindir}/tbench* ${prefix}/share/client.txt"
-FILES_tbench-dbg += "${bindir}/.debug/tbench*"
SRC_URI[md5sum] = "1fe56ff71b9a416f8889d7150ac54da4"
SRC_URI[sha256sum] = "6001893f34e68a3cfeb5d424e1f2bfef005df96a22d86f35dc770c5bccf3aa8a"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/files/0001-update-the-interpreter-paths.patch b/meta-openembedded/meta-oe/recipes-benchmark/fio/files/0001-update-the-interpreter-paths.patch
new file mode 100644
index 0000000..327b9f5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/fio/files/0001-update-the-interpreter-paths.patch
@@ -0,0 +1,94 @@
+From 55078e494bdf7da7dd9cb76077fa7ac2a66b6dd6 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 20 Jul 2018 02:33:25 -0700
+Subject: [PATCH] update the interpreter paths
+
+Update the interpreter path to make it more
+compatible
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ tools/fio_jsonplus_clat2csv | 2 +-
+ tools/fiologparser.py | 2 +-
+ tools/genfio | 2 +-
+ tools/hist/fiologparser_hist.py | 2 +-
+ tools/hist/half-bins.py | 2 +-
+ tools/plot/fio2gnuplot | 2 +-
+ t/steadystate_tests.py | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/tools/fio_jsonplus_clat2csv b/tools/fio_jsonplus_clat2csv
+index 78a007e5..0524b6e6 100755
+--- a/tools/fio_jsonplus_clat2csv
++++ b/tools/fio_jsonplus_clat2csv
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python2.7
++#!/usr/bin/env python
+ # Note: this script is python2 and python3 compatible.
+ #
+ # fio_jsonplus_clat2csv
+diff --git a/tools/fiologparser.py b/tools/fiologparser.py
+index cc29f1c7..ea60e783 100755
+--- a/tools/fiologparser.py
++++ b/tools/fiologparser.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python2.7
++#!/usr/bin/env python
+ # Note: this script is python2 and python 3 compatible.
+ #
+ # fiologparser.py
+diff --git a/tools/genfio b/tools/genfio
+index 286d814d..8518bbcc 100755
+--- a/tools/genfio
++++ b/tools/genfio
+@@ -1,4 +1,4 @@
+-#!/usr/bin/bash
++#!/bin/bash
+ #
+ # Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
+ # Author: Erwan Velu <erwan@enovance.com>
+diff --git a/tools/hist/fiologparser_hist.py b/tools/hist/fiologparser_hist.py
+index 8910d5fa..b77c2933 100755
+--- a/tools/hist/fiologparser_hist.py
++++ b/tools/hist/fiologparser_hist.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python2.7
++#!/usr/bin/env python
+ """
+ Utility for converting *_clat_hist* files generated by fio into latency statistics.
+
+diff --git a/tools/hist/half-bins.py b/tools/hist/half-bins.py
+index 1bba8ff7..58d53e36 100755
+--- a/tools/hist/half-bins.py
++++ b/tools/hist/half-bins.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python2.7
++#!/usr/bin/env python
+ """ Cut the number bins in half in fio histogram output. Example usage:
+
+ $ half-bins.py -c 2 output_clat_hist.1.log > smaller_clat_hist.1.log
+diff --git a/tools/plot/fio2gnuplot b/tools/plot/fio2gnuplot
+index 4d1815cf..509141af 100755
+--- a/tools/plot/fio2gnuplot
++++ b/tools/plot/fio2gnuplot
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python2.7
++#!/usr/bin/env python
+ # Note: this script is python2 and python3 compatible.
+ #
+ # Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
+diff --git a/t/steadystate_tests.py b/t/steadystate_tests.py
+index 50254dcc..95e7dfde 100755
+--- a/t/steadystate_tests.py
++++ b/t/steadystate_tests.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python2.7
++#!/usr/bin/env python
+ # Note: this script is python2 and python 3 compatible.
+ #
+ # steadystate_tests.py
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.9.bb b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.9.bb
deleted file mode 100644
index 67b513f..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.9.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Filesystem and hardware benchmark and stress tool"
-DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \
-stress/hardware verification. It has support for a number of I/O engines, \
-I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \
-and much more. It can work on block devices as well as files. fio accepts \
-job descriptions in a simple-to-understand text format. Several example job \
-files are included. fio displays all sorts of I/O performance information."
-HOMEPAGE = "http://freecode.com/projects/fio"
-SECTION = "console/tests"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-
-DEPENDS = "libaio zlib"
-
-PACKAGECONFIG_NUMA = "numa"
-# ARM does not currently support NUMA
-PACKAGECONFIG_NUMA_arm = ""
-
-PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
-PACKAGECONFIG[numa] = ",--disable-numa,numactl"
-
-# rev for v2.9
-SRCREV = "fe8d0f4c54f0c308c9a02a4e3c2f5084e8bf5461"
-SRC_URI = "git://git.kernel.dk/fio.git"
-
-S = "${WORKDIR}/git"
-
-# avoids build breaks when using no-static-libs.inc
-DISABLE_STATIC = ""
-
-EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
-
-do_configure() {
- ./configure ${EXTRA_OECONF}
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir}
- install -d ${D}/${docdir}/${PN}
- cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/
-}
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.12.bb b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.12.bb
new file mode 100644
index 0000000..2deb42d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.12.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Filesystem and hardware benchmark and stress tool"
+DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \
+stress/hardware verification. It has support for a number of I/O engines, \
+I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \
+and much more. It can work on block devices as well as files. fio accepts \
+job descriptions in a simple-to-understand text format. Several example job \
+files are included. fio displays all sorts of I/O performance information."
+HOMEPAGE = "http://freecode.com/projects/fio"
+SECTION = "console/tests"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "libaio zlib"
+RDEPENDS_${PN} = "python bash"
+
+PACKAGECONFIG_NUMA = "numa"
+# ARM does not currently support NUMA
+PACKAGECONFIG_NUMA_arm = ""
+
+PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
+PACKAGECONFIG[numa] = ",--disable-numa,numactl"
+
+# rev for v3.8
+SRCREV = "16500b5a0b03ee0142d592bb74a46943a223b06e"
+SRC_URI = "git://git.kernel.dk/fio.git \
+ file://0001-update-the-interpreter-paths.patch \
+"
+
+S = "${WORKDIR}/git"
+
+# avoids build breaks when using no-static-libs.inc
+DISABLE_STATIC = ""
+
+EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
+EXTRA_OECONF = "--disable-optimizations"
+
+do_configure() {
+ ./configure ${EXTRA_OECONF}
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir}
+ install -d ${D}/${docdir}/${PN}
+ cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/
+}
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index b72ced0..99050e7 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -36,8 +36,8 @@
PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11"
PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11"
-PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm"
-PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm"
+PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm virtual/libgbm"
+PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm virtual/libgbm"
PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland"
PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb
deleted file mode 100644
index 2864a4d..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb
+++ /dev/null
@@ -1,117 +0,0 @@
-SUMMARY = "Filesystem and Disk Benchmarking Tool"
-HOMEPAGE = "http://www.iozone.org/"
-AUTHOR = "Don Capps <don.capps2@verizon.net>, William D. Norcott <wnorcott@us.oracle.com>"
-SECTION = "console/tests"
-LICENSE = "iozone3"
-LIC_FILES_CHKSUM = "file://iozone.c;beginline=37;endline=48;md5=7331260091868dcad0f9edea735b5f4b \
- file://iozone.c;beginline=260;endline=266;md5=77f9ee51e45b57a7e7519c4fa0b4f00b \
-"
-SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
- file://parallelism.patch \
- file://copyright.txt \
-"
-SRC_URI[md5sum] = "c924e5e46fb1cf8145f420e8e57eb954"
-SRC_URI[sha256sum] = "2e3d72916e7d7340a7c505fc0c3d28553fcc5ff2daf41d811368e55bd4e6a293"
-
-S = "${WORKDIR}/${BPN}_${PV}/src/current/"
-
-#
-# All other arches can use the default OEMAKE except those
-# explicitly listed below. Another, the iozone3 Makefile
-# needs to be told about the cross-compiler explicitly here.
-#
-EXTRA_OEMAKE_powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE_powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE_x86-64 = "linux-AMD64 CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE_arm = "linux-arm CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- install -d ${D}${bindir} \
- ${D}${mandir}/man1 \
- ${D}${datadir}/doc/${BPN}/examples
-
- install -m 0755 ${S}/iozone ${D}${bindir}
- install -m 0755 ${S}/fileop ${D}${bindir}
- install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/iozone.1 ${D}${mandir}/man1/
- install -m 0644 ${WORKDIR}/copyright.txt ${D}${datadir}/doc/${BPN}/
-
- install -m 0644 ${S}/*.dem ${D}${datadir}/doc/${BPN}/examples
- install -m 0644 ${S}/client_list ${D}${datadir}/doc/${BPN}/examples
- install -m 0644 ${S}/Gnuplot.txt ${D}${datadir}/doc/${BPN}/examples
-
- install -m 0755 ${S}/Generate_Graphs ${D}${datadir}/doc/${BPN}/examples
- install -m 0755 ${S}/gengnuplot.sh ${D}${datadir}/doc/${BPN}/examples
- install -m 0755 ${S}/report.pl ${D}${datadir}/doc/${BPN}/examples
-
- install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Iozone_ps.gz ${D}${datadir}/doc/${BPN}/
- install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/IOzone_msword_98.pdf ${D}${datadir}/doc/${BPN}/
- install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Run_rules.doc ${D}${datadir}/doc/${BPN}/
-}
-
-FILES_${PN} += "${datadir}/doc/${PN}/copyright.txt"
-
-# LICENSE:
-#
-# Copyright 1991, 1992, 1994, 1998, 1999, 2002 William D. Norcott
-#
-# License to freely use and distribute this software is hereby granted
-# by the author, subject to the condition that this copyright notice
-# remains intact. The author retains the exclusive right to publish
-# derivative works based on this work, including, but not limited to
-# revised versions of this work.
-#
-
-#
-# Below is author reply to question about distributing iozone3 in
-# OpenEmbedded:
-#
-# ========================================================================
-#
-# Marcin,
-#
-# Re-distribution is permitted as long as the copyright is
-# maintained and the source code is not changed. I do not
-# see a problem with your mods to enable fileop for Linux-arm,
-# as these mods have been returned to the Iozone folks,
-# and they have been accepted for inclusion in the next
-# release :-)
-#
-# Thank you for your contribution,
-# Don Capps
-#
-# ----- Original Message -----
-# From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
-# To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott"
-# <wnorcott@us.oracle.com>
-# Sent: Sunday, October 29, 2006 4:55 PM
-# Subject: iozone3 263 patch for arm and License question
-#
-#
-# > Morning
-# >
-# > I want to include iozone3 in OpenEmbedded [1] metadata to give it for
-# > other developers. Currently OE is used to build few distributions for
-# > misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
-# > machines (PDA, settopbox, devboards, desktops, thin clients, routers).
-# >
-# > According to your distribution of derivations is forbidden. Packaging
-# > iozone3 in OpenEmbedded will not involve any source code changes. But
-# > when I was building it for ARM I discovered that fileop binary was not
-# > built - so I created patch for it (attached). Not yet tested it on target
-# > device.
-# >
-# > Thus, I seek your written permission via e-mail to distribute a package of
-# > the unmodified source code and also a package of the pre-compiled binary.
-# > Your copyright statement will be included in the package.
-# >
-# >
-# > 1. http://www.openembedded.org/
-# >
-# > Regards
-# > --
-# > JID: hrw-jabber.org
-# > OpenEmbedded developer/consultant
-
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_484.bb b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_484.bb
new file mode 100644
index 0000000..f218b87
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_484.bb
@@ -0,0 +1,119 @@
+SUMMARY = "Filesystem and Disk Benchmarking Tool"
+HOMEPAGE = "http://www.iozone.org/"
+AUTHOR = "Don Capps <don.capps2@verizon.net>, William D. Norcott <wnorcott@us.oracle.com>"
+SECTION = "console/tests"
+LICENSE = "iozone3"
+LIC_FILES_CHKSUM = "file://iozone.c;beginline=37;endline=48;md5=7331260091868dcad0f9edea735b5f4b \
+ file://iozone.c;beginline=269;endline=275;md5=77f9ee51e45b57a7e7519c4fa0b4f00b \
+"
+SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
+ file://parallelism.patch \
+ file://copyright.txt \
+"
+SRC_URI[md5sum] = "aa6b88ab83793cb6809ca06949a6ab01"
+SRC_URI[sha256sum] = "e816e6ae2f02003f2a6d19d47fcd9a50fdd8078da4f35fe3d4b9caf91c3d7216"
+
+UPSTREAM_CHECK_REGEX = "iozone3_(?P<pver>\d+).tar"
+
+S = "${WORKDIR}/${BPN}_${PV}/src/current/"
+
+#
+# All other arches can use the default OEMAKE except those
+# explicitly listed below. Another, the iozone3 Makefile
+# needs to be told about the cross-compiler explicitly here.
+#
+EXTRA_OEMAKE_powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE_powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE_x86-64 = "linux-AMD64 CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE_arm = "linux-arm CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+ install -d ${D}${bindir} \
+ ${D}${mandir}/man1 \
+ ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0755 ${S}/iozone ${D}${bindir}
+ install -m 0755 ${S}/fileop ${D}${bindir}
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/iozone.1 ${D}${mandir}/man1/
+ install -m 0644 ${WORKDIR}/copyright.txt ${D}${datadir}/doc/${BPN}/
+
+ install -m 0644 ${S}/*.dem ${D}${datadir}/doc/${BPN}/examples
+ install -m 0644 ${S}/client_list ${D}${datadir}/doc/${BPN}/examples
+ install -m 0644 ${S}/Gnuplot.txt ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0755 ${S}/Generate_Graphs ${D}${datadir}/doc/${BPN}/examples
+ install -m 0755 ${S}/gengnuplot.sh ${D}${datadir}/doc/${BPN}/examples
+ install -m 0755 ${S}/report.pl ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Iozone_ps.gz ${D}${datadir}/doc/${BPN}/
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/IOzone_msword_98.pdf ${D}${datadir}/doc/${BPN}/
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Run_rules.doc ${D}${datadir}/doc/${BPN}/
+}
+
+FILES_${PN} += "${datadir}/doc/${PN}/copyright.txt"
+
+# LICENSE:
+#
+# Copyright 1991, 1992, 1994, 1998, 1999, 2002 William D. Norcott
+#
+# License to freely use and distribute this software is hereby granted
+# by the author, subject to the condition that this copyright notice
+# remains intact. The author retains the exclusive right to publish
+# derivative works based on this work, including, but not limited to
+# revised versions of this work.
+#
+
+#
+# Below is author reply to question about distributing iozone3 in
+# OpenEmbedded:
+#
+# ========================================================================
+#
+# Marcin,
+#
+# Re-distribution is permitted as long as the copyright is
+# maintained and the source code is not changed. I do not
+# see a problem with your mods to enable fileop for Linux-arm,
+# as these mods have been returned to the Iozone folks,
+# and they have been accepted for inclusion in the next
+# release :-)
+#
+# Thank you for your contribution,
+# Don Capps
+#
+# ----- Original Message -----
+# From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
+# To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott"
+# <wnorcott@us.oracle.com>
+# Sent: Sunday, October 29, 2006 4:55 PM
+# Subject: iozone3 263 patch for arm and License question
+#
+#
+# > Morning
+# >
+# > I want to include iozone3 in OpenEmbedded [1] metadata to give it for
+# > other developers. Currently OE is used to build few distributions for
+# > misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
+# > machines (PDA, settopbox, devboards, desktops, thin clients, routers).
+# >
+# > According to your distribution of derivations is forbidden. Packaging
+# > iozone3 in OpenEmbedded will not involve any source code changes. But
+# > when I was building it for ARM I discovered that fileop binary was not
+# > built - so I created patch for it (attached). Not yet tested it on target
+# > device.
+# >
+# > Thus, I seek your written permission via e-mail to distribute a package of
+# > the unmodified source code and also a package of the pre-compiled binary.
+# > Your copyright statement will be included in the package.
+# >
+# >
+# > 1. http://www.openembedded.org/
+# >
+# > Regards
+# > --
+# > JID: hrw-jabber.org
+# > OpenEmbedded developer/consultant
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
deleted file mode 100644
index 2ed0811..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Network benchmark tool"
-DESCRIPTION = "\
-iperf is a tool for active measurements of the maximum achievable bandwidth \
-on IP networks. It supports tuning of various parameters related to timing, \
-protocols, and buffers. For each test it reports the bandwidth, loss, and \
-other parameters."
-HOMEPAGE = "http://software.es.net/iperf/"
-SECTION = "console/network"
-BUGTRACKER = "https://github.com/esnet/iperf/issues"
-AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d098223e44bdd19585315ee75cd9d2d7"
-
-DEPENDS = "openssl"
-
-SRC_URI = "git://github.com/esnet/iperf.git \
- file://automake-foreign.patch \
- file://0002-Remove-pg-from-profile_CFLAGS.patch \
- "
-
-SRCREV = "88d907f7fb58bfab5d086c5da60c922e1c582c92"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-PACKAGECONFIG[lksctp] = "ac_cv_header_netinet_sctp_h=yes,ac_cv_header_netinet_sctp_h=no,lksctp-tools"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-EXTRA_OECONF = "--with-openssl=${RECIPE_SYSROOT}"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.6.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.6.bb
new file mode 100644
index 0000000..4e11d82
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.6.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Network benchmark tool"
+DESCRIPTION = "\
+iperf is a tool for active measurements of the maximum achievable bandwidth \
+on IP networks. It supports tuning of various parameters related to timing, \
+protocols, and buffers. For each test it reports the bandwidth, loss, and \
+other parameters."
+HOMEPAGE = "http://software.es.net/iperf/"
+SECTION = "console/network"
+BUGTRACKER = "https://github.com/esnet/iperf/issues"
+AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a9a036136b748453e839c0eb8906ef2e"
+
+DEPENDS = "openssl"
+
+SRC_URI = "git://github.com/esnet/iperf.git \
+ file://automake-foreign.patch \
+ file://0002-Remove-pg-from-profile_CFLAGS.patch \
+ "
+
+SRCREV = "88f3ad87f38762081a6d7127890ff5c3a052b06a"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG[lksctp] = "ac_cv_header_netinet_sctp_h=yes,ac_cv_header_netinet_sctp_h=no,lksctp-tools"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+EXTRA_OECONF = "--with-openssl=${RECIPE_SYSROOT}${prefix}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch
new file mode 100644
index 0000000..a84414c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch
@@ -0,0 +1,23 @@
+From 351d1de09dd80049b7a2cb02c5750635d0389873 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:25:57 -0700
+Subject: [PATCH] include stddef.h for ptrdiff_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ morecore.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/morecore.c b/morecore.c
+index 6563bbd..0eef782 100644
+--- a/morecore.c
++++ b/morecore.c
+@@ -19,6 +19,7 @@
+
+ #define _GNU_SOURCE
+
++#include <stddef.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <malloc.h>
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
index 3082d7e..53f35ab 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
@@ -1,4 +1,4 @@
-From a85fc43243f8bfad12d306a4a0e230fb8b3e828a Mon Sep 17 00:00:00 2001
+From 0077532b07e268347cb8557be6d70148d5f0e840 Mon Sep 17 00:00:00 2001
From: Ting Liu <b28495@freescale.com>
Date: Wed, 21 Aug 2013 15:44:57 +0800
Subject: [PATCH] run_test.py: not use hard coded path ../obj/hugeadm
@@ -9,15 +9,16 @@
Upstream-Status: Submitted
Signed-off-by: Ting Liu <b28495@freescale.com>
+
---
- tests/run_tests.py | 12 +++++++++++-
- 1 files changed, 11 insertions(+), 1 deletions(-)
+ tests/run_tests.py | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/tests/run_tests.py b/tests/run_tests.py
-index d9a6b35..a9bab8f 100755
+index 3c95a03..560df6b 100755
--- a/tests/run_tests.py
+++ b/tests/run_tests.py
-@@ -232,9 +232,19 @@ def get_pagesizes():
+@@ -234,9 +234,19 @@ def get_pagesizes():
Use libhugetlbfs' hugeadm utility to get a list of page sizes that have
active mount points and at least one huge page allocated to the pool.
"""
@@ -38,6 +39,3 @@
if rc != 0 or out == "": return sizes
for size in out.split("\n"): sizes.add(int(size))
---
-1.7.3.4
-
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch
new file mode 100644
index 0000000..8cb184a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch
@@ -0,0 +1,37 @@
+From 0f548286848c70aa325c6748d80e8651389b4938 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:32:59 -0700
+Subject: [PATCH] Mark glibc specific code so
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ morecore.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/morecore.c b/morecore.c
+index 0eef782..d48509c 100644
+--- a/morecore.c
++++ b/morecore.c
+@@ -364,6 +364,7 @@ void hugetlbfs_setup_morecore(void)
+
+ INFO("setup_morecore(): heapaddr = 0x%lx\n", heapaddr);
+
++#ifdef __GLIBC__
+ heaptop = heapbase = (void *)heapaddr;
+ if (__hugetlb_opts.thp_morecore)
+ __morecore = &thp_morecore;
+@@ -371,7 +372,6 @@ void hugetlbfs_setup_morecore(void)
+ __morecore = &hugetlbfs_morecore;
+
+ /* Set some allocator options more appropriate for hugepages */
+-
+ if (__hugetlb_opts.shrink_ok)
+ mallopt(M_TRIM_THRESHOLD, hpage_size + hpage_size / 2);
+ else
+@@ -381,4 +381,5 @@ void hugetlbfs_setup_morecore(void)
+ * This doesn't appear to prohibit malloc() from falling back
+ * to mmap() if we run out of hugepages. */
+ mallopt(M_MMAP_MAX, 0);
++#endif
+ }
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
new file mode 100644
index 0000000..aca7e80
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
@@ -0,0 +1,46 @@
+From 9ff04d7acc700387e3837f8ab11a41efea5ee8b0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:44:26 -0700
+Subject: [PATCH] alloc.c: Avoid sysconf(_SC_LEVEL2_CACHE_LINESIZE) on linux
+
+musl does not have it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ alloc.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/alloc.c b/alloc.c
+index bce9464..cf7eb40 100644
+--- a/alloc.c
++++ b/alloc.c
+@@ -245,6 +245,19 @@ void free_huge_pages(void *ptr)
+ __free_huge_pages(ptr, 1);
+ }
+
++static size_t get_cacheline_size() {
++#if defined(__linux__)
++ FILE * fp = fopen("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", "r");
++ unsigned int line_size = 0;
++ if (fp) {
++ fscanf(fp, "%d", &line_size);
++ fclose(fp);
++ }
++ return line_size;
++#else
++ return sysconf(_SC_LEVEL2_CACHE_LINESIZE);
++#endif
++}
+ /*
+ * Offset the buffer using bytes wasted due to alignment to avoid using the
+ * same cache lines for the start of every buffer returned by
+@@ -261,7 +274,7 @@ void *cachecolor(void *buf, size_t len, size_t color_bytes)
+
+ /* Lookup our cacheline size once */
+ if (cacheline_size == 0) {
+- cacheline_size = sysconf(_SC_LEVEL2_CACHE_LINESIZE);
++ cacheline_size = get_cacheline_size();
+ linemod = time(NULL);
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch
new file mode 100644
index 0000000..58776e8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch
@@ -0,0 +1,28 @@
+From 9ce323432a7f4d99f617970c7e35b607b9bbf843 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:48:04 -0700
+Subject: [PATCH] shm.c: Mark glibc specific changes so
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ shm.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/shm.c b/shm.c
+index 1f82cab..9447b63 100644
+--- a/shm.c
++++ b/shm.c
+@@ -48,10 +48,11 @@
+ * system shmget() may be performed without worry as there is no dynamic
+ * call chain.
+ */
++#ifdef __GLIBC__
+ extern void *dlsym (void *__restrict __handle, __const char *__restrict __name)
+ __attribute__((weak)) __THROW __nonnull ((2));
+ extern char *dlerror (void) __attribute__((weak)) __THROW;
+-
++#endif
+
+ /* call syscall shmget through the generic syscall mechanism */
+ static int syscall_shmget(key_t key, size_t size, int shmflg)
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
new file mode 100644
index 0000000..0817420
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
@@ -0,0 +1,26 @@
+From bb8c370aaaf25b1fe1fbf984e73177018026cb91 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:51:02 -0700
+Subject: [PATCH] Include dirent.h for ino_t
+
+Fixes
+error: unknown type name 'ino_t'; did you mean 'int'?
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ tests/hugetests.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/hugetests.h b/tests/hugetests.h
+index 8b1d8d9..056042c 100644
+--- a/tests/hugetests.h
++++ b/tests/hugetests.h
+@@ -22,6 +22,7 @@
+
+ #include <errno.h>
+ #include <string.h>
++#include <dirent.h>
+
+ #include "libhugetlbfs_privutils.h"
+ #include "libhugetlbfs_testprobes.h"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch
new file mode 100644
index 0000000..2ead21f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch
@@ -0,0 +1,40 @@
+From 5f64aa8c47c2d3a155a97e262f89cc47394a69eb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:58:53 -0700
+Subject: [PATCH] include limits.h for PATH_MAX
+
+Fixes
+
+error: 'PATH_MAX' undeclared
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ hugeadm.c | 1 +
+ tests/gethugepagesizes.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/hugeadm.c b/hugeadm.c
+index fe4211d..8db274c 100644
+--- a/hugeadm.c
++++ b/hugeadm.c
+@@ -33,6 +33,7 @@
+ #include <grp.h>
+ #include <pwd.h>
+ #include <fcntl.h>
++#include <limits.h>
+
+ #include <sys/stat.h>
+ #include <sys/types.h>
+diff --git a/tests/gethugepagesizes.c b/tests/gethugepagesizes.c
+index 9551b38..2645e3f 100644
+--- a/tests/gethugepagesizes.c
++++ b/tests/gethugepagesizes.c
+@@ -29,6 +29,7 @@
+ #include <fcntl.h>
+ #include <stdarg.h>
+ #include <hugetlbfs.h>
++#include <limits.h>
+
+ #include "hugetests.h"
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch
deleted file mode 100644
index ce6974d..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 3c6f8d0e3c0694f79244ec6ad5ad9ba3ca26bc0a Mon Sep 17 00:00:00 2001
-From: Yang Shi <yang.shi@linaro.org>
-Date: Mon, 7 Dec 2015 14:12:13 -0800
-Subject: [PATCH] Force text segment alignment to 0x08000000 for i386 with gold
- linker
-
-Upstream-Status: Backport
-
-When build libhugetlbfs tests with gold linker for i386, the below error occurs:
-
-i586-oe-linux-gcc -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu
--Wl,--as-needed
---sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -I..
--O2
--Wall -g -o obj32/linkhuge_rw.o -c linkhuge_rw.c
-| i586-oe-linux-gcc -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu
--Wl,--as-needed
---sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86
--B./obj32
--Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -ldl
--L../obj32
--o obj32/linkhuge_rw -Wl,--no-as-needed -lpthread -ldl -lhugetlbfs_privutils
--Wl,--hugetlbfs-align obj32/linkhuge_rw.o obj32/testutils.o
-| i586-oe-linux-ld: internal error in do_write, at
-/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-oe-linux/binutils-cross-i586/2.25-r0/git/gold/output.cc:464
-| collect2: error: ld returned 1 exit status
-
-But, it works well with GNU linker. --hugetlbfs-align flag passes
-"-zcommon-page-size=$SLICE_SIZE -zmax-page-size=$SLICE_SIZE", that are supported by gold linker too.
-But, it looks gold linker deal with them in a different way from gnu linker for i586.
-
-The readelf shows the below result with GNU linker:
-
-Elf file type is EXEC (Executable file)
-Entry point 0x8048fbd
-There are 8 program headers, starting at offset 52
-
-Program Headers:
- Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
- PHDR 0x000034 0x08000034 0x08000034 0x00100 0x00100 R E 0x4
- INTERP 0x048134 0x08048134 0x08048134 0x00013 0x00013 R 0x1
- [Requesting program interpreter: /lib/ld-linux.so.2]
- LOAD 0x000000 0x08000000 0x08000000 0x5a5bc 0x5a5bc R E 0x400000
- LOAD 0x05a5bc 0x0845a5bc 0x0845a5bc 0x1028c 0x202cc RW 0x400000
- DYNAMIC 0x05a5d0 0x0845a5d0 0x0845a5d0 0x000e8 0x000e8 RW 0x4
- NOTE 0x048148 0x08048148 0x08048148 0x00044 0x00044 R 0x4
- GNU_EH_FRAME 0x059e5c 0x08059e5c 0x08059e5c 0x0009c 0x0009c R 0x4
- GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
-
-"--relax" linker option doesn't solve this problem.
-Forced textsegment alignment to 0x08000000 with gold linker, the build will pass and
-readelf shows the same result with GNU linker:
-
-Elf file type is EXEC (Executable file)
-Entry point 0x8048fbd
-There are 8 program headers, starting at offset 52
-
-Program Headers:
- Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
- PHDR 0x000034 0x08000034 0x08000034 0x00100 0x00100 R E 0x4
- INTERP 0x048134 0x08048134 0x08048134 0x00013 0x00013 R 0x1
- [Requesting program interpreter: /lib/ld-linux.so.2]
- LOAD 0x000000 0x08000000 0x08000000 0x5a5bc 0x5a5bc R E 0x400000
- LOAD 0x05a5bc 0x0845a5bc 0x0845a5bc 0x1028c 0x202cc RW 0x400000
- DYNAMIC 0x05a5d0 0x0845a5d0 0x0845a5d0 0x000e8 0x000e8 RW 0x4
- NOTE 0x048148 0x08048148 0x08048148 0x00044 0x00044 R 0x4
- GNU_EH_FRAME 0x059e5c 0x08059e5c 0x08059e5c 0x0009c 0x0009c R 0x4
- GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
-
-The fix just have impact on hugelink_rw test case, which needs --hugetlbfs-align flag.
-
-Signed-off-by: Yang Shi <yang.shi@linaro.org>
-Signed-off-by: Eric B Munson <emunson@mgebm.net>
----
- ld.hugetlbfs | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ld.hugetlbfs b/ld.hugetlbfs
-index 4417442..32bc6fb 100755
---- a/ld.hugetlbfs
-+++ b/ld.hugetlbfs
-@@ -98,6 +98,7 @@ if [ "$HTLB_ALIGN" == "slice" ]; then
- # otherwise it will be NULL.
- case "$EMU" in
- armelf*_linux_eabi) HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" ;;
-+ elf_i386) HTLBOPTS="$HTLBOPTS -Ttext-segment=0x08000000" ;;
- esac
- fi
-
---
-2.0.2
-
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
index b3fd843..f95e9e8 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
@@ -1,19 +1,20 @@
-From 0a2877400a086e9d6ddd32a80462b7a931921dc2 Mon Sep 17 00:00:00 2001
+From 82a4f60ab24dff121f5f9d3bbcd9a8a28bb7caef Mon Sep 17 00:00:00 2001
From: Chunrong Guo <B40290@freescale.com>
Date: Sun, 8 Sep 2013 23:21:49 -0500
-Subject: [PATCH] libhugetlbfs: avoid search host library path for cross
+Subject: [PATCH] libhugetlbfs: avoid search host library path for cross
compilation
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Chunrong Guo <B40290@freescale.com>
+
---
- ldscripts/elf32ppclinux.xB | 2 +-
- ldscripts/elf32ppclinux.xBDT | 2 +-
- ldscripts/elf64ppc.xB | 2 +-
- ldscripts/elf64ppc.xBDT | 2 +-
- ldscripts/elf_x86_64.xB | 2 +-
- ldscripts/elf_x86_64.xBDT | 2 +-
+ ldscripts/elf32ppclinux.xB | 2 +-
+ ldscripts/elf32ppclinux.xBDT | 2 +-
+ ldscripts/elf64ppc.xB | 2 +-
+ ldscripts/elf64ppc.xBDT | 2 +-
+ ldscripts/elf_x86_64.xB | 2 +-
+ ldscripts/elf_x86_64.xBDT | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/ldscripts/elf32ppclinux.xB b/ldscripts/elf32ppclinux.xB
@@ -94,6 +95,3 @@
INPUT(-lhugetlbfs);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
---
-1.7.9.7
-
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
index 1566488..7cc180a 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
@@ -1,14 +1,16 @@
-From 889e52753d30179ba4ac940023cb4ed561436ab8 Mon Sep 17 00:00:00 2001
+From b5887693d90c430291b644c2f5713b5fdd1777ce Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Tue, 4 Nov 2014 00:49:11 -0800
-Subject: [PATCH] libhugetlbfs/elf_i386: avoid search host library path for cross compilation
+Subject: [PATCH] libhugetlbfs/elf_i386: avoid search host library path for
+ cross compilation
Upstream-Status: Inappropriate [cross compile specific]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
---
- ldscripts/elf_i386.xB | 1 -
- ldscripts/elf_i386.xBDT | 1 -
+ ldscripts/elf_i386.xB | 1 -
+ ldscripts/elf_i386.xBDT | 1 -
2 files changed, 2 deletions(-)
diff --git a/ldscripts/elf_i386.xB b/ldscripts/elf_i386.xB
@@ -35,6 +37,3 @@
INPUT(-lhugetlbfs);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
---
-1.7.9.5
-
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
index 07a9971..a13c538 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
@@ -1,17 +1,20 @@
-From 355c014573de7f95202cc7c819f81f0f230e4a1a Mon Sep 17 00:00:00 2001
+From 183a4dafe141197de5840f2e48c266ef209307aa Mon Sep 17 00:00:00 2001
From: Ting Liu <b28495@freescale.com>
Date: Mon, 18 Jun 2012 16:37:05 +0800
Subject: [PATCH] skip checking LIB32 and LIB64 if they point to the same place
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Ting Liu <b28495@freescale.com>
+
---
+ Makefile | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 91502e1..bfb3414 100644
+index 51e41f0..373df3c 100644
--- a/Makefile
+++ b/Makefile
-@@ -167,7 +167,6 @@ REALLIB32 = $(realpath $(PREFIX)/$(LIB32))
+@@ -177,7 +177,6 @@ REALLIB32 = $(realpath $(PREFIX)/$(LIB32))
REALLIB64 = $(realpath $(PREFIX)/$(LIB64))
ifneq ($(realpath $(PREFIX)),)
ifeq ($(REALLIB32),$(REALLIB64))
@@ -19,5 +22,3 @@
endif
endif
---
-1.9.2
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
index 249f6e1..b8b2f8e 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
@@ -1,12 +1,23 @@
+From f1ad8ff887f16daee8d06eca3df0f2541bfdaac0 Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Mon, 23 Sep 2013 08:00:55 +0000
+Subject: [PATCH] libhugetlbfs: add recipe
+
Upstream-Status: Submitted
TESTS_64 is empty, install will fail due to missing file operand
Signed-off-by: Ting Liu <b28495@freescale.com>
---- a/tests/Makefileold 2013-10-12 02:32:55.262391998 -0500
-+++ b/tests/Makefile 2013-10-12 02:33:45.929394722 -0500
-@@ -292,7 +292,7 @@
+---
+ tests/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/Makefile b/tests/Makefile
+index 073df96..0ca3716 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -295,7 +295,7 @@ obj64/install:
$(INSTALL) -m 755 wrapper-utils.sh $(DESTDIR)$(INST_TESTSDIR64)/obj64
$(INSTALL) -m 755 $(HELPERS:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
$(INSTALL) -m 755 $(HELPER_LIBS:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
index a63494a..66fd8e2 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -3,14 +3,14 @@
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
-DEPENDS = "sysfsutils perl"
-RDEPENDS_${PN} += "bash perl python python-io python-lang python-subprocess python-resource ${PN}-perl"
+DEPENDS = "sysfsutils"
+RDEPENDS_${PN} += "bash python python-io python-lang python-subprocess python-resource"
RDEPENDS_${PN}-tests += "bash"
-PV = "2.20"
+PV = "2.21"
PE = "1"
-SRCREV = "e44180072b796c0e28e53c4d01ef6279caaa2a99"
+SRCREV = "73d06e69108f231696e9c5c44f4b42690fc5d752"
SRC_URI = " \
git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \
file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \
@@ -18,9 +18,16 @@
file://tests-Makefile-install-static-4G-edge-testcases.patch \
file://0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch \
file://libhugetlbfs-elf_i386-avoid-search-host-library-path.patch \
- file://Force-text-segment-alignment-to-0x08000000-for-i386-.patch \
+ file://0001-include-stddef.h-for-ptrdiff_t.patch \
+ file://0002-Mark-glibc-specific-code-so.patch \
+ file://0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch \
+ file://0004-shm.c-Mark-glibc-specific-changes-so.patch \
+ file://0005-Include-dirent.h-for-ino_t.patch \
+ file://0006-include-limits.h-for-PATH_MAX.patch \
"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+
S = "${WORKDIR}/git"
COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64|aarch64|arm).*-linux*"
@@ -43,14 +50,6 @@
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then
sed -i 's/CUSTOM_LDSCRIPTS = yes/CUSTOM_LDSCRIPTS = no/' Makefile
fi
-
- # fixup perl module directory hardcoded to perl5
- sed -i 's/perl5/perl/g' Makefile
-
- # fixup to install perl module under $(LIBDIR)/perl/${@get_perl_version(d)}/TLBC
- # to avoid below error
- # Can't locate TLBC/OpCollect.pm in @INC
- sed -i '/^PMDIR/ s:perl:perl/${@get_perl_version(d)}:g' Makefile
}
do_install() {
@@ -61,11 +60,10 @@
}
-PACKAGES =+ "${PN}-perl ${PN}-tests "
+PACKAGES =+ "${PN}-tests "
FILES_${PN} += "${libdir}/*.so"
FILES_${PN}-dev = "${includedir}"
FILES_${PN}-dbg += "${libdir}/libhugetlbfs/tests/obj32/.debug ${libdir}/libhugetlbfs/tests/obj64/.debug"
-FILES_${PN}-perl = "${libdir}/perl"
FILES_${PN}-tests += "${libdir}/libhugetlbfs/tests"
INSANE_SKIP_${PN} = "dev-so"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch
new file mode 100644
index 0000000..04cef96
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch
@@ -0,0 +1,34 @@
+From ea683a0dbaa30a0bf101adb09a1a2531c7112c62 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Mon, 27 Aug 2018 11:02:45 +0800
+Subject: [PATCH] src/Makefile: use libdir instead of hardcoded /lib
+
+use libdir instead of hardcoded /lib
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ src/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 4678d54..b73ddb6 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -141,10 +141,10 @@ install-target:
+ if [ ! -d $(BASE) ]; then mkdir $(BASE); fi
+ if [ ! -d $(BASE)/bin ]; then mkdir $(BASE)/bin; fi
+ if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
+- if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
++ if [ ! -d $(DESTDIR)$(libdir) ]; then mkdir $(DESTDIR)$(libdir); fi
+ cp $(EXES) $(BASE)/bin
+ cp $(INCS) $(BASE)/include
+- cp $O/lmbench.a $(BASE)/lib/libmbench.a
++ cp $O/lmbench.a $(DESTDIR)$(libdir)/libmbench.a
+ cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
+
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
deleted file mode 100644
index c6e9465..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 73fdc58ca4eb9e2f24d854b3af3a4e5daac5a33e Mon Sep 17 00:00:00 2001
-From: Ting Liu <b28495@freescale.com>
-Date: Fri, 22 Nov 2013 15:20:08 +0800
-Subject: [PATCH] use base_libdir instead of hardcoded /lib
-
-Upstream Status: Inappropriate [configuration]
-
-Signed-off-by: Ting Liu <b28495@freescale.com>
-
----
- src/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index c7a8c79..c7e4e3c 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -143,10 +143,10 @@ install-target:
- if [ ! -d $(BASE) ]; then mkdir $(BASE); fi
- if [ ! -d $(BASE)/bin ]; then mkdir $(BASE)/bin; fi
- if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
-- if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
-+ if [ ! -d $(BASE)$(base_libdir) ]; then mkdir $(BASE)$(base_libdir); fi
- cp $(EXES) $(BASE)/bin
- cp $(INCS) $(BASE)/include
-- cp $O/lmbench.a $(BASE)/lib/libmbench.a
-+ cp $O/lmbench.a $(BASE)$(base_libdir)
- cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
-
-
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
index 03b3721..8e6e803 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
@@ -7,9 +7,9 @@
inherit autotools-brokensep
-DEPENDS_append_libc-musl = " libtirpc"
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDLIBS_append_libc-musl = " -ltirpc "
+DEPENDS += "libtirpc"
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LDLIBS += " -ltirpc "
PR = "r2"
@@ -19,17 +19,20 @@
file://update-results-script.patch \
file://obey-ranlib.patch \
file://update-config-script.patch \
- file://use-base_libdir-instead-of-hardcoded-lib.patch \
file://lmbench_result_html_report.patch \
file://fix-lmbench-memory-check-failure.patch \
file://0001-avoid-gcc-optimize-away-the-loops.patch \
file://0001-lat_http.c-Add-printf-format.patch \
file://0001-Check-for-musl-define-guard-before-redefining-sockle.patch \
file://0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch \
+ file://0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch \
"
SRC_URI[md5sum] = "b3351a3294db66a72e2864a199d37cbf"
SRC_URI[sha256sum] = "cbd5777d15f44eab7666dcac418054c3c09df99826961a397d9acf43d8a2a551"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/lmbench/files/development/"
+UPSTREAM_CHECK_REGEX = "lmbench-(?P<pver>\d+(\.\d+)+-[a-z]+\d+)"
+
EXTRA_OEMAKE = 'CC="${CC}" AR="${AR}" RANLIB="${RANLIB}" CFLAGS="${CFLAGS}" \
LDFLAGS="${LDFLAGS}" LDLIBS="${LDLIBS}" LD="${LD}" OS="${TARGET_SYS}" \
TARGET="${TARGET_OS}" BASE="${prefix}" MANDIR="${mandir}"'
@@ -63,6 +66,7 @@
fi
oe_runmake BASE="${D}${prefix}" MANDIR="${D}${mandir}" \
+ DESTDIR="${D}" \
-C src install
mv ${D}${bindir}/line ${D}${bindir}/lm_line
install -m 0755 ${WORKDIR}/lmbench-run ${D}${bindir}/
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb b/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
index da2cb4b..22bb041 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
@@ -16,7 +16,7 @@
EXTRA_OEMAKE = "-e MAKEFLAGS="
-TARGET_CC_ARCH += "${CFLAGS} ${LDFLAGS}"
+TARGET_CC_ARCH += "${LDFLAGS}"
do_compile() {
oe_runmake
}
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb
deleted file mode 100644
index 1f90a71..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Phoronix Test Suite"
-DESCRIPTION = "The Phoronix Test Suite is designed to carry out both qualitative \
-and quantitative benchmarks in a clean, reproducible, and easy-to-use manner."
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SECTION = "console/tests"
-
-SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "850843bd9252823e7e24bc0849773000"
-SRC_URI[sha256sum] = "cd6c869841f28e4ac1e8a5e4cda05fafce9a523a6b4f0f3a47805efd30494d88"
-
-S = "${WORKDIR}/phoronix-test-suite"
-
-inherit systemd allarch
-
-do_install() {
- DESTDIR=${D} ./install-sh ${exec_prefix}
-
- if [ "${systemd_unitdir}" != "/usr/lib/systemd" ]; then
- install -d ${D}/${systemd_unitdir}/system/
- mv ${D}/usr/lib/systemd/system/* ${D}/${systemd_unitdir}/system/
- rm -rf ${D}/usr/lib/
- fi
-}
-
-# It is not advisable to enable these services by default since they can cause
-# continual target reboots if they encounter network problems.
-#
-SYSTEMD_AUTO_ENABLE = "disable"
-SYSTEMD_SERVICE_${PN} = "phoromatic-client.service phoromatic-server.service"
-
-RDEPENDS_${PN} += "bash python php-cli"
-
-FILES_${PN} += " \
- ${datadir}/phoronix-test-suite \
- ${datadir}/appdata/phoronix-test-suite.appdata.xml \
- ${datadir}/icons/hicolor/48x48/apps/phoronix-test-suite.png \
- ${datadir}/icons/hicolor/64x64/mimetypes/application-x-openbenchmarking.png \
- ${datadir}/mime/packages/openbenchmarking-mime.xml \
- ${systemd_unitdir}/* \
-"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.0.1.bb b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.0.1.bb
new file mode 100644
index 0000000..b1fa51b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.0.1.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Phoronix Test Suite"
+DESCRIPTION = "The Phoronix Test Suite is designed to carry out both qualitative \
+and quantitative benchmarks in a clean, reproducible, and easy-to-use manner."
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+SECTION = "console/tests"
+
+SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
+SRC_URI[md5sum] = "3dc3a0e490e909f188379a9e05fd4780"
+SRC_URI[sha256sum] = "6306549109c7254baf31edb385265b19557b5692217d2dfcf96f6fb17de8e842"
+
+S = "${WORKDIR}/phoronix-test-suite"
+
+inherit systemd allarch
+
+do_install() {
+ DESTDIR=${D} ./install-sh ${exec_prefix}
+
+ if [ "${systemd_unitdir}" != "/usr/lib/systemd" ]; then
+ install -d ${D}/${systemd_unitdir}/system/
+ mv ${D}/usr/lib/systemd/system/* ${D}/${systemd_unitdir}/system/
+ rm -rf ${D}/usr/lib/
+ fi
+}
+
+# It is not advisable to enable these services by default since they can cause
+# continual target reboots if they encounter network problems.
+#
+SYSTEMD_AUTO_ENABLE = "disable"
+SYSTEMD_SERVICE_${PN} = "phoromatic-client.service phoromatic-server.service"
+
+RDEPENDS_${PN} += "bash python php-cli util-linux-lscpu os-release lsb"
+
+FILES_${PN} += " \
+ ${datadir}/phoronix-test-suite \
+ ${datadir}/appdata/phoronix-test-suite.appdata.xml \
+ ${datadir}/icons/hicolor/48x48/apps/phoronix-test-suite.png \
+ ${datadir}/icons/hicolor/64x64/mimetypes/application-x-openbenchmarking.png \
+ ${datadir}/mime/packages/openbenchmarking-mime.xml \
+ ${systemd_unitdir}/* \
+"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb
new file mode 100644
index 0000000..77d1728
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Small collection of benchmarks for storage I/O"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b529aaa6a0c50f15d29f89609b5c22f3"
+
+SRCREV = "79698f645bfb28d0d966484ddad3a1efb562246d"
+PV = "0.0+git${SRCPV}"
+SRC_URI = "git://github.com/Algodev-github/S.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+# installing in /opt/S-suite since the package has
+# dependencies to the directory structure.
+do_install() {
+ install -d ${D}/opt/S-suite
+ for i in $(find ${S}/* -type d); do
+ install -d ${D}/opt/S-suite/$(basename $i)
+ install -m0755 -p ${S}/$(basename $i)/* ${D}/opt/S-suite/$(basename $i)
+ done
+
+ install -m0755 ${S}/config_params.sh ${D}/opt/S-suite
+ install -m0755 ${S}/def_config_params.sh ${D}/opt/S-suite
+}
+
+RDEPENDS_${PN} = "bash bc coreutils gawk g++ gcc fio libaio libaio-dev sysstat"
+
+FILES_${PN} = "/opt/S-suite/"
+
+# added to INSANE_SKIP since s-suite have an runtime
+# dependency (RDEPENDS) on libaio-dev.
+INSANE_SKIP_${PN} += "dev-deps"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb b/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb
deleted file mode 100644
index 9cc62a9..0000000
--- a/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "Linux user-space application to modify the EFI Boot Manager."
-SUMMARY = "EFI Boot Manager"
-HOMEPAGE = "https://github.com/rhinstaller/efibootmgr"
-SECTION = "base"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-DEPENDS = "pciutils zlib efivar"
-
-COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
-
-SRCREV = "5c14da22802576a99ebb854f7aa174f796f7b031"
-SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \
- "
-S = "${WORKDIR}/git"
-
-inherit pkgconfig
-
-EXTRA_OEMAKE = "'EFIDIR=/' 'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/src/include `pkg-config --cflags efivar`'"
-
-CFLAGS_append_toolchain-clang = " -Wno-error"
-do_install () {
- install -D -p -m0755 ${B}/src/efibootmgr ${D}/${sbindir}/efibootmgr
-}
-
-CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.16.bb b/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.16.bb
new file mode 100644
index 0000000..6497e09
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.16.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Linux user-space application to modify the EFI Boot Manager."
+SUMMARY = "EFI Boot Manager"
+HOMEPAGE = "https://github.com/rhinstaller/efibootmgr"
+SECTION = "base"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+DEPENDS = "pciutils zlib efivar"
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
+
+SRCREV = "a5103251a11663adddc85c86e0b8d3d3b73cbb4a"
+SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \
+ "
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE = "'EFIDIR=/' 'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/src/include `pkg-config --cflags efivar`'"
+
+CFLAGS_append_toolchain-clang = " -Wno-error"
+do_install () {
+ install -D -p -m0755 ${B}/src/efibootmgr ${D}/${sbindir}/efibootmgr
+}
+
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
deleted file mode 100644
index b4ce132..0000000
--- a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d65c325dd8681edf2ee3332eeb0a547229c7ffb5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 24 Aug 2017 15:54:47 -0700
-Subject: [PATCH] efivar-dp.h: Add -Wunknown-attributes when using clang
-
-change !dp check to a comparision against NULL to silent clang warning
-nonnull parameter 'dp' will evaluate to 'true' on first encounter
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/include/efivar/efivar-dp.h | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/include/efivar/efivar-dp.h b/src/include/efivar/efivar-dp.h
-index 3a509b7..c140e8d 100644
---- a/src/include/efivar/efivar-dp.h
-+++ b/src/include/efivar/efivar-dp.h
-@@ -783,9 +783,14 @@ extern int efidp_append_instance(const_efidp dp, const_efidp dpi, efidp *out);
- * though older or other compilers might just ignore that attribute if they
- * don't support it. Ugh.
- */
-+#pragma GCC diagnostic push
- #if defined(__GNUC__) && __GNUC__ >= 6
- #pragma GCC diagnostic ignored "-Wnonnull-compare"
- #endif
-+#if defined(__clang__)
-+#pragma GCC diagnostic ignored "-Wunknown-attributes"
-+#pragma GCC diagnostic ignored "-Wpointer-bool-conversion"
-+#endif
-
- static inline int16_t
- __attribute__((__artificial__))
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
deleted file mode 100644
index 2a6eb06..0000000
--- a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From dd4291265b7b3d7d7ffa1d8adf32781ae25dbfeb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 00:29:42 -0700
-Subject: [PATCH] makeguids: Do not use __bswap_constant_{16|32} macros
-
-not available on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/makeguids.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/makeguids.c b/src/makeguids.c
-index da2f5f7..daf821a 100644
---- a/src/makeguids.c
-+++ b/src/makeguids.c
-@@ -155,13 +155,13 @@ main(int argc, char *argv[])
- #if BYTE_ORDER == BIG_ENDIAN\n\
- #define cpu_to_be32(n) (n)\n\
- #define cpu_to_be16(n) (n)\n\
--#define cpu_to_le32(n) (__bswap_constant_32(n))\n\
--#define cpu_to_le16(n) (__bswap_constant_16(n))\n\
-+#define cpu_to_le32(n) ((uint32_t) ((n)>>24 | (n)>>8&0xff00 | (n)<<8&0xff0000 | (n)<<24))\n\
-+#define cpu_to_le16(n) ((uint16_t) ((n)<<8 | (n)>>8))\n\
- #else\n\
- #define cpu_to_le32(n) (n)\n\
- #define cpu_to_le16(n) (n)\n\
--#define cpu_to_be32(n) (__bswap_constant_32(n))\n\
--#define cpu_to_be16(n) (__bswap_constant_16(n))\n\
-+#define cpu_to_be32(n) ((uint32_t) ((n)>>24 | (n)>>8&0xff00 | (n)<<8&0xff0000 | (n)<<24))\n\
-+#define cpu_to_be16(n) ((uint16_t) ((n)<<8 | (n)>>8))\n\
- #endif\n\
- """);
-
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
deleted file mode 100644
index 83105fe..0000000
--- a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From dea4a55714249b2734a36701120fd22c91c64ec2 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sat, 7 May 2016 02:06:47 -0400
-Subject: [PATCH] Makefile: fix efivar.pc not found
-
-It fixes efivar.pc not found:
-...
-| install -d -m 755 efivar/0.23-r0/image/usr/lib/pkgconfig/
-| install -m 644 efivar.pc efivar/0.23-r0/image/usr/lib/pkgconfig/
-; install -m 644 efiboot.pc efivar/0.23-r0/image/usr/lib/pkgconfig/
-;
-| install: cannot stat 'efivar.pc': No such file or directory
-| install: cannot stat 'efiboot.pc': No such file or directory
-| make[1]: *** [install] Error 1
-| make[1]: Leaving directory `efivar/0.23-r0/git/src'
-| make: *** [install] Error 2
-| ERROR: oe_runmake failed
-...
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- src/Makefile | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index dcc7fc8..691aa8a 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -94,7 +94,9 @@ install : all
- ln -fs $(x).1.$(VERSION) $(DESTDIR)$(libdir)/$(x) ;\
- )
- $(INSTALL) -d -m 755 $(DESTDIR)$(PCDIR)
-- $(foreach x, $(PCTARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)$(PCDIR) ;)
-+ $(foreach x, $(PCTARGETS), $(INSTALL) -m 644 $(TOPDIR)/src/$(x).in $(DESTDIR)$(PCDIR)/$(x) ;\
-+ sed -i -e "s:@@LIBDIR@@:$(libdir):g" -e "s:@@VERSION@@:$(VERSION):g" \
-+ $(DESTDIR)$(PCDIR)/$(x); )
- $(INSTALL) -d -m 755 $(DESTDIR)$(includedir)/efivar
- $(foreach x, $(wildcard $(TOPDIR)/src/include/efivar/*.h), $(INSTALL) -m 644 $(x) $(DESTDIR)$(includedir)/efivar/$(notdir $(x));)
- $(INSTALL) -d -m 755 $(DESTDIR)$(bindir)
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch
index f88af1f..043b07a 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch
+++ b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch
@@ -1,6 +1,6 @@
-From c801dcb03d42eb533a9bead0b397d7ce4fc5a6fe Mon Sep 17 00:00:00 2001
-From: Kai Kang <kai.kang@windriver.com>
-Date: Wed, 10 Aug 2016 17:49:50 +0800
+From c10368b397483a2fc7b493c099d8416d902f8cd8 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 31 Jul 2018 14:18:35 +0800
Subject: [PATCH] allow multi definitions for native
Upstream-Status: Pending
@@ -14,12 +14,13 @@
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
Make.rules | 1 +
1 file changed, 1 insertion(+)
diff --git a/Make.rules b/Make.rules
-index 88b9aa7..799332f 100644
+index 042585b..257ba45 100644
--- a/Make.rules
+++ b/Make.rules
@@ -20,6 +20,7 @@ include $(TOPDIR)/Make.version
@@ -28,5 +29,8 @@
-Wl,--version-script=$(MAP) \
+ -Wl,-z,muldefs \
-o $@ $^ $(LDLIBS)
+ ln -vfs $@ $@.1
- %.abixml : %.so
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch
deleted file mode 100644
index 5864ac6..0000000
--- a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 8000b9afc858472912aace985004b44f8eb467e0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 18 Aug 2017 09:49:49 -0700
-Subject: [PATCH] support musl
-
-Upstream-Status: Pending
----
- src/linux.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/linux.c b/src/linux.c
-index 34ed479..1304f2b 100644
---- a/src/linux.c
-+++ b/src/linux.c
-@@ -40,6 +40,10 @@
- #include <efivar.h>
- #include <efiboot.h>
-
-+#if !defined(__GLIBC__)
-+#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s)
-+#endif
-+
- #include "dp.h"
- #include "linux.h"
- #include "util.h"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.31.bb b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.31.bb
deleted file mode 100644
index 9d4cdc9..0000000
--- a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.31.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "Tools to manipulate UEFI variables"
-DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility"
-HOMEPAGE = "https://github.com/rhinstaller/efivar"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393"
-
-DEPENDS = "popt"
-DEPENDS_append_class-target = " efivar-native"
-
-inherit pkgconfig
-
-COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
-
-SRCREV = "11324799c68193116e1dd5f94b416591bd324f90"
-SRC_URI = "git://github.com/rhinstaller/efivar.git \
- file://allow-multi-definitions-for-native.patch \
- file://0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch \
- file://musl-strndupa.patch \
- file://0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch \
- "
-SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch \
- file://0003-efivar-fix-for-cross-compile.patch \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', '', d)} \
- "
-SRC_URI_append_class-native = " file://fix-compile-failure-with-host-gcc-4.6.patch \
- "
-
-S = "${WORKDIR}/git"
-
-# Setting CROSS_COMPILE breaks pkgconfig, so just set AR
-EXTRA_OEMAKE = "AR=${TARGET_PREFIX}gcc-ar"
-
-do_compile_prepend() {
- sed -i -e s:-Werror::g ${S}/gcc.specs
-}
-
-do_compile_class-native() {
- oe_runmake -C src makeguids
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
-
-do_install_class-native() {
- install -D -m 0755 ${B}/src/makeguids ${D}${bindir}/makeguids
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.36.bb b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.36.bb
new file mode 100644
index 0000000..20588ee
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.36.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Tools to manipulate UEFI variables"
+DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility"
+HOMEPAGE = "https://github.com/rhinstaller/efivar"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393"
+
+DEPENDS = "popt"
+DEPENDS_append_class-target = " efivar-native"
+
+inherit pkgconfig
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
+
+SRCREV = "ef3449223ecd1e7b1098c523d66b2f960fe839ea"
+SRC_URI = "git://github.com/rhinstaller/efivar.git \
+ file://allow-multi-definitions-for-native.patch \
+ "
+SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', '', d)} \
+ "
+SRC_URI_append_class-native = " file://fix-compile-failure-with-host-gcc-4.6.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+do_compile_prepend() {
+ sed -i -e s:-Werror::g ${S}/gcc.specs
+}
+
+do_compile_class-native() {
+ oe_runmake -C src makeguids CC_FOR_BUILD="${BUILD_CC}"
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+do_install_class-native() {
+ install -D -m 0755 ${B}/src/makeguids ${D}${bindir}/makeguids
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch
new file mode 100644
index 0000000..df80286
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch
@@ -0,0 +1,39 @@
+From e5f68189ab3602b1042cc8423fd6a3a23abd5455 Mon Sep 17 00:00:00 2001
+From: Alex James <theracermaster@gmail.com>
+Date: Sat, 14 Apr 2018 22:59:57 -0500
+Subject: [PATCH] ch341a_spi: Avoid deprecated libusb functions
+
+libusb 1.0.22 marked libusb_set_debug as deprecated. For such versions
+of libusb, use libusb_set_option instead.
+
+Change-Id: Ib71ebe812316eaf49136979a942a946ef9e4d487
+Signed-off-by: Alex James <theracermaster@gmail.com>
+Reviewed-on: https://review.coreboot.org/25681
+Tested-by: Nico Huber <nico.h@gmx.de>
+Reviewed-by: David Hendricks <david.hendricks@gmail.com>
+---
+Upstream-Status: Backport
+ ch341a_spi.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/ch341a_spi.c b/ch341a_spi.c
+index 6eb2804..d880510 100644
+--- a/ch341a_spi.c
++++ b/ch341a_spi.c
+@@ -444,7 +444,12 @@ int ch341a_spi_init(void)
+ return -1;
+ }
+
+- libusb_set_debug(NULL, 3); // Enable information, warning and error messages (only).
++ /* Enable information, warning, and error messages (only). */
++#if LIBUSB_API_VERSION < 0x01000106
++ libusb_set_debug(NULL, 3);
++#else
++ libusb_set_option(NULL, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_INFO);
++#endif
+
+ uint16_t vid = devs_ch341a_spi[0].vendor_id;
+ uint16_t pid = devs_ch341a_spi[0].device_id;
+--
+2.17.0
+
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
index 9eac876..1c17246 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
@@ -8,6 +8,7 @@
SRC_URI = "https://download.flashrom.org/releases/flashrom-${PV}.tar.bz2 \
file://sst26.patch \
file://0001-platform-Add-riscv-to-known-platforms.patch \
+ file://0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch \
"
SRC_URI[md5sum] = "42d999990c735d88653627cefcc13b9a"
SRC_URI[sha256sum] = "3702fa215ba5fb5af8e54c852d239899cfa1389194c1e51cb2a170c4dc9dee64"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
index 454a69f..ffab5d6 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
@@ -16,6 +16,14 @@
SRC_URI[md5sum] = "1e9f117cbfa11be1955adc96df71eadb"
SRC_URI[sha256sum] = "e334c1c2b06f7290e3e66bdae330a5d36054701ffd47a5dde7a06f9a7402cb4e"
+# It is using '-' but not '.' as delimiter for the version in the releases page,
+# which causes the version comparison unmatched.
+#UPSTREAM_CHECK_URI = "https://github.com/groeck/lm-sensors/releases"
+
+RECIPE_UPSTREAM_VERSION = "3.4.0"
+RECIPE_UPSTREAM_DATE = "Jun 25, 2015"
+CHECK_DATE = "May 28, 2018"
+
inherit update-rc.d systemd
RDEPENDS_${PN}-dev = ""
@@ -68,14 +76,16 @@
fi
}
+RPROVIDES_${PN}-dbg += "${PN}-libsensors-dbg ${PN}-sensors-dbg ${PN}-sensord-dbg ${PN}-isatools-dbg"
+
# libsensors packages
-PACKAGES =+ "${PN}-libsensors ${PN}-libsensors-dbg ${PN}-libsensors-dev ${PN}-libsensors-staticdev ${PN}-libsensors-doc"
+PACKAGES =+ "${PN}-libsensors ${PN}-libsensors-dev ${PN}-libsensors-staticdev ${PN}-libsensors-doc"
# sensors command packages
-PACKAGES =+ "${PN}-sensors ${PN}-sensors-dbg ${PN}-sensors-doc"
+PACKAGES =+ "${PN}-sensors ${PN}-sensors-doc"
# sensord logging daemon
-PACKAGES =+ "${PN}-sensord ${PN}-sensord-dbg ${PN}-sensord-doc"
+PACKAGES =+ "${PN}-sensord ${PN}-sensord-doc"
# fancontrol script
PACKAGES =+ "${PN}-fancontrol ${PN}-fancontrol-doc"
@@ -90,11 +100,11 @@
PACKAGES =+ "${PN}-pwmconfig ${PN}-pwmconfig-doc"
# isadump and isaset helper program
-PACKAGES =+ "${PN}-isatools ${PN}-isatools-dbg ${PN}-isatools-doc"
+PACKAGES =+ "${PN}-isatools ${PN}-isatools-doc"
+
# libsensors files
FILES_${PN}-libsensors = "${libdir}/libsensors.so.* ${sysconfdir}/sensors3.conf ${sysconfdir}/sensors.d"
-FILES_${PN}-libsensors-dbg = "${libdir}/.debug ${prefix}/src/debug"
FILES_${PN}-libsensors-dev = "${libdir}/libsensors.so ${includedir}"
FILES_${PN}-libsensors-staticdev = "${libdir}/libsensors.a"
FILES_${PN}-libsensors-doc = "${mandir}/man3"
@@ -102,13 +112,11 @@
# sensors command files
FILES_${PN}-sensors = "${bindir}/sensors"
-FILES_${PN}-sensors-dbg = "${bindir}/.debug/sensors"
FILES_${PN}-sensors-doc = "${mandir}/man1 ${mandir}/man5"
RDEPENDS_${PN}-sensors = "${PN}-libsensors"
# sensord logging daemon
FILES_${PN}-sensord = "${sbindir}/sensord ${sysconfdir}/init.d/sensord ${systemd_unitdir}/system/sensord.service"
-FILES_${PN}-sensord-dbg = "${bindir}/.debug/sensord"
FILES_${PN}-sensord-doc = "${mandir}/man8/sensord.8"
RDEPENDS_${PN}-sensord = "${PN}-sensors rrdtool"
RRECOMMENDS_${PN}-sensord = "lmsensors-config-sensord"
@@ -136,5 +144,4 @@
# isadump and isaset helper program files
FILES_${PN}-isatools = "${sbindir}/isa*"
-FILES_${PN}-isatools-dbg = "${sbindir}/.debug/isa*"
FILES_${PN}-isatools-doc = "${mandir}/man8/isa*"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb b/meta-openembedded/meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb
deleted file mode 100644
index 4b8cbaf..0000000
--- a/meta-openembedded/meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "The lsscsi command lists information about SCSI devices in Linux"
-HOMEPAGE = "http://sg.danny.cz/scsi/lsscsi.html"
-LICENSE = "GPLv2"
-SECTION = "base"
-LIC_FILES_CHKSUM="file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "http://sg.danny.cz/scsi/${BP}.tgz"
-
-SRC_URI[md5sum] = "4a39e3b09cd422e2cae3edbaf56b3176"
-SRC_URI[sha256sum] = "025d009a1af42bc5b2fca664c44c9ecdfd754356e4a44f5c6aced2420afadd50"
-
-inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-bsp/lsscsi/lsscsi_0.30.bb b/meta-openembedded/meta-oe/recipes-bsp/lsscsi/lsscsi_0.30.bb
new file mode 100644
index 0000000..af34cdc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/lsscsi/lsscsi_0.30.bb
@@ -0,0 +1,14 @@
+SUMMARY = "The lsscsi command lists information about SCSI devices in Linux"
+HOMEPAGE = "http://sg.danny.cz/scsi/lsscsi.html"
+LICENSE = "GPLv2"
+SECTION = "base"
+LIC_FILES_CHKSUM="file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://sg.danny.cz/scsi/${BP}.tgz"
+
+SRC_URI[md5sum] = "298a700cd50bb4be1382d618f7b038f4"
+SRC_URI[sha256sum] = "619a2187405f02c5f57682f3478bffc75326803cd08839e39d434250c5518b15"
+
+inherit autotools
+
+S = "${WORKDIR}/lsscsi-030r154"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/files/0001-Makefile-fix-bash-completion-install-path.patch b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/files/0001-Makefile-fix-bash-completion-install-path.patch
new file mode 100644
index 0000000..154e140
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/files/0001-Makefile-fix-bash-completion-install-path.patch
@@ -0,0 +1,33 @@
+From ef64032b34190079aab591c64a25f7535a977390 Mon Sep 17 00:00:00 2001
+From: Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>
+Date: Tue, 9 Oct 2018 11:26:34 +0200
+Subject: [PATCH] Makefile: fix bash completion install path
+
+Change path to bash-completion upstream recommendation used by most
+distributions.
+
+Upstream-Status: Accepted
+
+Signed-off-by: Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index fa587dd..433bc41 100644
+--- a/Makefile
++++ b/Makefile
+@@ -69,8 +69,8 @@ install-bin: default
+ $(INSTALL) -m 755 nvme $(DESTDIR)$(SBINDIR)
+
+ install-bash-completion:
+- $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/bash_completion.d
+- $(INSTALL) -m 644 -T ./completions/bash-nvme-completion.sh $(DESTDIR)$(PREFIX)/share/bash_completion.d/nvme
++ $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/bash-completion/completions
++ $(INSTALL) -m 644 -T ./completions/bash-nvme-completion.sh $(DESTDIR)$(PREFIX)/share/bash-completion/completions/nvme
+
+ install: install-bin install-man install-bash-completion
+
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.6.bb b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.6.bb
new file mode 100644
index 0000000..9b7e6cd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.6.bb
@@ -0,0 +1,21 @@
+SUMMARY = "NVMe management command line interface"
+AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
+HOMEPAGE = "https://github.com/linux-nvme/nvme-cli"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8264535c0c4e9c6c335635c4026a8022"
+DEPENDS = "util-linux"
+PV .= "+git${SRCPV}"
+
+SRC_URI = "git://github.com/linux-nvme/nvme-cli.git \
+ file://0001-Makefile-fix-bash-completion-install-path.patch \
+ "
+SRCREV = "642d426faf8a67ed01e90f7c35c0d967f8cc52a3"
+
+S = "${WORKDIR}/git"
+
+inherit bash-completion
+
+do_install() {
+ oe_runmake PREFIX=${prefix} DESTDIR=${D} install
+}
diff --git a/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/lex_sys_types.patch b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/lex_sys_types.patch
new file mode 100644
index 0000000..d4c2bed
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/lex_sys_types.patch
@@ -0,0 +1,21 @@
+Include sys/types.h for u_long definition
+
+Fix errors like
+In file included from src/lex_config.l:34:0:
+src/yacc_config.y:45:5: error: unknown type name 'u_long'
+ u_long num;
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: pcmciautils-018/src/lex_config.l
+===================================================================
+--- pcmciautils-018.orig/src/lex_config.l
++++ pcmciautils-018/src/lex_config.l
+@@ -22,6 +22,7 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <syslog.h>
++#include <sys/types.h>
+
+ #ifdef HAS_WORDEXP
+ #include <wordexp.h>
diff --git a/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_fix.patch b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_fix.patch
new file mode 100644
index 0000000..7b0ce21
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_fix.patch
@@ -0,0 +1,101 @@
+Upstream-Status: Inappropriate [configuration]
+
+Hardcoded paths are bad...
+This lets us use the install from OE's native sysroot
+rebase the patch to 018, removing hardcoded path for true
+as well. Removing of -D in install invocation is a little
+questionable, is it some GNU extention?
+
+-Khem Raj <raj.khem@gmail.com>
+
+Index: pcmciautils-018/Makefile
+===================================================================
+--- pcmciautils-018.orig/Makefile
++++ pcmciautils-018/Makefile
+@@ -76,7 +76,7 @@ sbindir = ${exec_prefix}/sbin
+ mandir = ${prefix}/usr/share/man
+ udevdir = ${prefix}/lib/udev
+
+-INSTALL = /usr/bin/install -c
++INSTALL = install -c
+ INSTALL_PROGRAM = ${INSTALL}
+ INSTALL_DATA = ${INSTALL} -m 644
+ INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+@@ -180,7 +180,7 @@ endif
+ # if DEBUG is enabled, then we do not strip or optimize
+ ifeq ($(strip $(DEBUG)),true)
+ CFLAGS += -O1 -g -DDEBUG -D_GNU_SOURCE
+- STRIPCMD = /bin/true -Since_we_are_debugging
++ STRIPCMD = true -Since_we_are_debugging
+ else
+ CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer -D_GNU_SOURCE
+ STRIPCMD = $(STRIP) -s --remove-section=.note --remove-section=.comment
+@@ -273,30 +273,32 @@ clean:
+
+ install-hotplug:
+ $(INSTALL) -d $(DESTDIR)$(hotplugdir)
+- $(INSTALL_PROGRAM) -D hotplug/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.agent
+- $(INSTALL_PROGRAM) -D hotplug/pcmcia.rc $(DESTDIR)$(hotplugdir)/pcmcia.rc
++ $(INSTALL_PROGRAM) hotplug/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.agent
++ $(INSTALL_PROGRAM) hotplug/pcmcia.rc $(DESTDIR)$(hotplugdir)/pcmcia.rc
+
+ uninstall-hotplug:
+ - rm -f $(DESTDIR)$(hotplugdir)/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.rc
+
+ install-socket-hotplug:
+- $(INSTALL_PROGRAM) -D hotplug/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent
+- $(INSTALL_PROGRAM) -D hotplug/pcmcia_socket.rc $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc
++ $(INSTALL_PROGRAM) hotplug/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent
++ $(INSTALL_PROGRAM) hotplug/pcmcia_socket.rc $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc
+
+ uninstall-socket-hotplug:
+ - rm -f $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc
+
+ install-socket-tools:
+- $(INSTALL_PROGRAM) -D $(PCMCIA_SOCKET_STARTUP) $(DESTDIR)$(udevhelperdir)/$(PCMCIA_SOCKET_STARTUP)
++ $(INSTALL) -d $(DESTDIR)$(udevhelperdir)
++ $(INSTALL_PROGRAM) $(PCMCIA_SOCKET_STARTUP) $(DESTDIR)$(udevhelperdir)/$(PCMCIA_SOCKET_STARTUP)
+
+ uninstall-socket-tools:
+ - rm -f $(DESTDIR)$(udevhelperdir)/$(PCMCIA_SOCKET_STARTUP)
+
+ install-tools:
+ $(INSTALL) -d $(DESTDIR)$(sbindir)
+- $(INSTALL_PROGRAM) -D $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(PCCARDCTL)
++ $(INSTALL) -d $(DESTDIR)$(udevhelperdir)
++ $(INSTALL_PROGRAM) $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(PCCARDCTL)
+ $(SYMLINK) $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(LSPCMCIA)
+- $(INSTALL_PROGRAM) -D $(PCMCIA_CHECK_BROKEN_CIS) $(DESTDIR)$(udevhelperdir)/$(PCMCIA_CHECK_BROKEN_CIS)
++ $(INSTALL_PROGRAM) $(PCMCIA_CHECK_BROKEN_CIS) $(DESTDIR)$(udevhelperdir)/$(PCMCIA_CHECK_BROKEN_CIS)
+
+ uninstall-tools:
+ - rm -f $(DESTDIR)$(sbindir)/$(PCCARDCTL)
+@@ -305,22 +307,24 @@ uninstall-tools:
+
+ install-config:
+ $(INSTALL) -d $(DESTDIR)$(pcmciaconfdir)
+- $(INSTALL_DATA) -D config/config.opts $(DESTDIR)$(pcmciaconfdir)/config.opts
++ $(INSTALL_DATA) config/config.opts $(DESTDIR)$(pcmciaconfdir)/config.opts
+ if [ -f config/config.opts.$(ARCH) ]; then \
+- $(INSTALL_DATA) -D config/config.opts.$(ARCH) $(DESTDIR)$(pcmciaconfdir)/config.opts; \
++ $(INSTALL_DATA) config/config.opts.$(ARCH) $(DESTDIR)$(pcmciaconfdir)/config.opts; \
+ fi
+
+ uninstall-config:
+ # - rm -f $(DESTDIR)$(pcmciaconfdir)/config.opts
+
+ install-udev:
+- $(INSTALL_DATA) -D $(UDEV_RULES_FILE) $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules
++ $(INSTALL) -d $(DESTDIR)$(udevrulesdir)
++ $(INSTALL_DATA) $(UDEV_RULES_FILE) $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules
+
+ uninstall-udev:
+ - rm -f $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules
+
+ install-man:
+- $(INSTALL_DATA) -D man/man8/pccardctl.8 $(DESTDIR)$(mandir)/man8/pccardctl.8
++ $(INSTALL) -d $(DESTDIR)$(mandir)/man8
++ $(INSTALL_DATA) man/man8/pccardctl.8 $(DESTDIR)$(mandir)/man8/pccardctl.8
+ $(SYMLINK) pccardctl.8 $(DESTDIR)$(mandir)/man8/lspcmcia.8
+
+ uninstall-man:
diff --git a/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_race.patch b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_race.patch
new file mode 100644
index 0000000..4c5eba7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_race.patch
@@ -0,0 +1,29 @@
+"make src/lex_config.o"
+
+results in:
+
+src/lex_config.l:35:25: fatal error: yacc_config.h: No such file or directory
+
+so add missing dependency through a missing rule. Also remove a rule which
+doesn't appear to do anything.
+
+RP
+2016/1/31
+
+Upstream-Status: Pending
+
+Index: pcmciautils-018/Makefile
+===================================================================
+--- pcmciautils-018.orig/Makefile
++++ pcmciautils-018/Makefile
+@@ -246,8 +246,8 @@ $(PCMCIA_SOCKET_STARTUP): $(LIBC) src/st
+ $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) src/startup.o src/yacc_config.o src/lex_config.o $(LIB_OBJS) $(ARCH_LIB_OBJS)
+ $(QUIET) $(STRIPCMD) $@
+
+-yacc_config.o lex_config.o: %.o: %.c
+- $(CC) -c -MD -O -pipe $(CPPFLAGS) $<
++src/lex_config.o : src/lex_config.c src/yacc_config.h ccdv
++ $(QUIET) $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+ debugtools: ccdv $(CBDUMP) $(CISDUMP)
+
diff --git a/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
new file mode 100644
index 0000000..fc06455
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Linux kernel userland utilities for the PCMCIA subsystem"
+HOMEPAGE = "https://www.kernel.org/pub/linux/utils/kernel/pcmcia/"
+SECTION = "kernel/userland"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "udev sysfsutils flex-native bison-native"
+RDEPENDS_${PN} = "udev module-init-tools"
+
+PR = "r1"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/pcmcia/${BP}.tar.xz \
+ file://makefile_fix.patch \
+ file://makefile_race.patch \
+ file://lex_sys_types.patch \
+"
+
+SRC_URI[md5sum] = "885431c3cefb76ffdad8cb985134e996"
+SRC_URI[sha256sum] = "57c27be8f04ef4d535bcfa988567316cc57659fe69068327486dab53791e6558"
+
+inherit pkgconfig
+
+export HOSTCC = "${BUILD_CC}"
+export etcdir = "${sysconfdir}"
+export sbindir = "${base_sbindir}"
+export pcmciaconfdir = "${sysconfdir}/pcmcia"
+export udevdir = "`pkg-config --variable=udevdir udev`"
+export udevrulesdir = "`pkg-config --variable=udevdir udev`/rules.d"
+export UDEV = "1"
+LD = "${CC}"
+CFLAGS =+ "-I${S}/src"
+CFLAGS =+ "-DPCMCIAUTILS_VERSION=\\"${PV}\\""
+
+EXTRA_OEMAKE = "-e 'STRIP=echo' 'LIB_OBJS=-lc -lsysfs' 'LEX=flex'"
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+CONFFILES_${PN} += "${sysconfdir}/pcmcia/config.opts"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd-CVE-2018-14526.patch b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd-CVE-2018-14526.patch
new file mode 100644
index 0000000..522fc39
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd-CVE-2018-14526.patch
@@ -0,0 +1,44 @@
+hostapd-2.6: Fix CVE-2018-14526
+
+[No upstream tracking] -- https://w1.fi/security/2018-1/unauthenticated-eapol-key-decryption.txt
+
+wpa: Ignore unauthenticated encrypted EAPOL-Key data
+
+Ignore unauthenticated encrypted EAPOL-Key data in supplicant
+processing. When using WPA2, these are frames that have the Encrypted
+flag set, but not the MIC flag.
+
+When using WPA2, EAPOL-Key frames that had the Encrypted flag set but
+not the MIC flag, had their data field decrypted without first verifying
+the MIC. In case the data field was encrypted using RC4 (i.e., when
+negotiating TKIP as the pairwise cipher), this meant that
+unauthenticated but decrypted data would then be processed. An adversary
+could abuse this as a decryption oracle to recover sensitive information
+in the data field of EAPOL-Key messages (e.g., the group key).
+
+Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/src/rsn_supp/wpa.c?id=3e34cfdff6b192fe337c6fb3f487f73e96582961]
+CVE: CVE-2018-14526
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+
+diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
+index 3c47879..6bdf923 100644
+--- a/src/rsn_supp/wpa.c
++++ b/src/rsn_supp/wpa.c
+@@ -2016,6 +2016,17 @@ int wpa_sm_rx_eapol(struct wpa_sm *sm, const u8 *src_addr,
+
+ if ((sm->proto == WPA_PROTO_RSN || sm->proto == WPA_PROTO_OSEN) &&
+ (key_info & WPA_KEY_INFO_ENCR_KEY_DATA)) {
++ /*
++ * Only decrypt the Key Data field if the frame's authenticity
++ * was verified. When using AES-SIV (FILS), the MIC flag is not
++ * set, so this check should only be performed if mic_len != 0
++ * which is the case in this code branch.
++ */
++ if (!(key_info & WPA_KEY_INFO_MIC)) {
++ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
++ "WPA: Ignore EAPOL-Key with encrypted but unauthenticated data");
++ goto out;
++ }
+ if (wpa_supplicant_decrypt_key_data(sm, key, ver, key_data,
+ &key_data_len))
+ goto out;
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb
index 250add8..42aae42 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb
@@ -18,6 +18,7 @@
file://0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch \
file://0006-TDLS-Reject-TPK-TK-reconfiguration.patch \
file://0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch \
+ file://hostapd-CVE-2018-14526.patch \
"
SRC_URI[md5sum] = "eaa56dce9bd8f1d195eb62596eab34c7"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.1.bb
new file mode 100644
index 0000000..11748cb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.1.bb
@@ -0,0 +1,188 @@
+SUMMARY = "A network authentication protocol"
+DESCRIPTION = "Kerberos is a system for authenticating users and services on a network. \
+ Kerberos is a trusted third-party service. That means that there is a \
+ third party (the Kerberos server) that is trusted by all the entities on \
+ the network (users and services, usually called "principals"). \
+ . \
+ This is the MIT reference implementation of Kerberos V5. \
+ . \
+ This package contains the Kerberos key server (KDC). The KDC manages all \
+ authentication credentials for a Kerberos realm, holds the master keys \
+ for the realm, and responds to authentication requests. This package \
+ should be installed on both master and slave KDCs."
+
+HOMEPAGE = "http://web.mit.edu/Kerberos/"
+SECTION = "console/network"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=7f95bc3d8d0351aa481d56d5e9de20c3"
+DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
+
+inherit autotools-brokensep binconfig perlnative systemd update-rc.d
+
+SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
+ file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \
+ file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
+ file://crosscompile_nm.patch \
+ file://etc/init.d/krb5-kdc \
+ file://etc/init.d/krb5-admin-server \
+ file://etc/default/krb5-kdc \
+ file://etc/default/krb5-admin-server \
+ file://krb5-kdc.service \
+ file://krb5-admin-server.service \
+"
+SRC_URI[md5sum] = "848e9b80d6aaaa798e3f3df24b83c407"
+SRC_URI[sha256sum] = "214ffe394e3ad0c730564074ec44f1da119159d94281bbec541dc29168d21117"
+
+CVE_PRODUCT = "kerberos"
+
+S = "${WORKDIR}/${BP}/src"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
+PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl"
+PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+
+EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath"
+CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
+ ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
+ ac_cv_file__etc_TIMEZONE=no"
+
+CFLAGS_append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et"
+CFLAGS_append_riscv64 = " -D_REENTRANT -pthread"
+LDFLAGS_append = " -pthread"
+
+do_configure() {
+ gnu-configize --force
+ autoreconf
+ oe_runconf
+}
+
+do_install_append() {
+ rm -rf ${D}/${localstatedir}/run
+ rm -f ${D}${bindir}/sclient
+ rm -f ${D}${bindir}/sim_client
+ rm -f ${D}${bindir}/uuclient
+ rm -f ${D}${sbindir}/krb5-send-pr
+ rm -f ${D}${sbindir}/sim_server
+ rm -f ${D}${sbindir}/sserver
+ rm -f ${D}${sbindir}/uuserver
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ mkdir -p ${D}/${sysconfdir}/init.d ${D}/${sysconfdir}/default
+ install -m 0755 ${WORKDIR}/etc/init.d/* ${D}/${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
+
+ mkdir -p ${D}/${sysconfdir}/default/volatiles
+ echo "d root root 0755 ${localstatedir}/run/krb5kdc none" \
+ > ${D}${sysconfdir}/default/volatiles/87_krb5
+
+ echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /run/krb5kdc - - - -" \
+ > ${D}${sysconfdir}/tmpfiles.d/krb5.conf
+
+ mkdir -p ${D}/${sysconfdir}/default
+ install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/krb5-admin-server.service ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/krb5-kdc.service ${D}${systemd_system_unitdir}
+ fi
+}
+
+PACKAGES =+ "${PN}-admin-server \
+ ${PN}-gss-samples \
+ ${PN}-k5tls \
+ ${PN}-kdc \
+ ${PN}-kdc-ldap \
+ ${PN}-kpropd \
+ ${PN}-otp \
+ ${PN}-pkinit \
+ ${PN}-user \
+ libgssapi-krb5 \
+ libgssrpc \
+ libk5crypto \
+ libkadm5clnt-mit \
+ libkadm5srv-mit \
+ libkdb5 \
+ libkrad \
+ libkrb5 \
+ libkrb5support \
+ libverto"
+
+FILES_${PN} = "${libdir}/krb5/plugins/preauth/test.so"
+FILES_${PN}-doc += "${datadir}/examples"
+FILES_${PN}-dbg += "${libdir}/krb5/plugins/*/.debug"
+
+FILES_${PN}-admin-server = "${sbindir}/kadmin.local \
+ ${sbindir}/kadmind \
+ ${sbindir}/kprop \
+ ${sysconfdir}/default/krb5-admin-server \
+ ${sysconfdir}/init.d/krb5-admin-server \
+ ${systemd_system_unitdir}/krb5-admin-server.service"
+
+FILES_${PN}-gss-samples = "${bindir}/gss-client \
+ ${sbindir}/gss-server"
+
+FILES_${PN}-k5tls = "${libdir}/krb5/plugins/tls/k5tls.so"
+
+FILES_${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \
+ ${localstatedir}/krb5kdc \
+ ${sbindir}/kdb5_util \
+ ${sbindir}/kproplog \
+ ${sbindir}/krb5kdc \
+ ${sysconfdir}/default/krb5-kdc \
+ ${sysconfdir}/default/volatiles/87_krb5 \
+ ${sysconfdir}/init.d/krb5-kdc \
+ ${sysconfdir}/tmpfiles.d/krb5.conf \
+ ${systemd_system_unitdir}/krb5-kdc.service"
+
+FILES_${PN}-kdc-ldap = "${libdir}/krb5/libkdb_ldap${SOLIBS} \
+ ${libdir}/krb5/plugins/kdb/kldap.so \
+ ${sbindir}/kdb5_ldap_util"
+
+FILES_${PN}-kpropd = "${sbindir}/kpropd"
+FILES_${PN}-otp = "${libdir}/krb5/plugins/preauth/otp.so"
+FILES_${PN}-pkinit = "${libdir}/krb5/plugins/preauth/pkinit.so"
+FILES_${PN}-user = "${bindir}/k*"
+
+FILES_libgssapi-krb5 = "${libdir}/libgssapi_krb5${SOLIBS}"
+FILES_libgssrpc = "${libdir}/libgssrpc${SOLIBS}"
+FILES_libk5crypto = "${libdir}/libk5crypto${SOLIBS}"
+FILES_libkadm5clnt-mit = "${libdir}/libkadm5clnt_mit${SOLIBS}"
+FILES_libkadm5srv-mit = "${libdir}/libkadm5srv_mit${SOLIBS}"
+FILES_libkdb5 = "${libdir}/libkdb5${SOLIBS}"
+FILES_libkrad = "${libdir}/libkrad${SOLIBS}"
+FILES_libkrb5 = "${libdir}/libkrb5${SOLIBS} \
+ ${libdir}/krb5/plugins/authdata \
+ ${libdir}/krb5/plugins/libkrb5"
+FILES_libkrb5support = "${libdir}/libkrb5support${SOLIBS}"
+FILES_libverto = "${libdir}/libverto${SOLIBS}"
+
+RDEPENDS_${PN}-kadmin-server = "${PN}-kdc"
+RDEPENDS_${PN}-kpropd = "${PN}-kdc"
+
+INITSCRIPT_PACKAGES = "${PN}-admin-server ${PN}-kdc"
+INITSCRIPT_NAME_${PN}-admin-server = "krb5-admin-server"
+INITSCRIPT_NAME_${PN}-kdc = "krb5-kdc"
+
+SYSTEMD_PACKAGES = "${PN}-admin-server ${PN}-kdc"
+SYSTEMD_SERVICE_${PN}-admin-server = "krb5-admin-server.service"
+SYSTEMD_SERVICE_${PN}-kdc = "krb5-kdc.service"
+
+pkg_postinst_${PN}-kdc () {
+ if [ -z "$D" ]; then
+ if command -v systemd-tmpfiles >/dev/null; then
+ systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/krb5.conf
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+ fi
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb
deleted file mode 100644
index f95240f..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb
+++ /dev/null
@@ -1,188 +0,0 @@
-SUMMARY = "A network authentication protocol"
-DESCRIPTION = "Kerberos is a system for authenticating users and services on a network. \
- Kerberos is a trusted third-party service. That means that there is a \
- third party (the Kerberos server) that is trusted by all the entities on \
- the network (users and services, usually called "principals"). \
- . \
- This is the MIT reference implementation of Kerberos V5. \
- . \
- This package contains the Kerberos key server (KDC). The KDC manages all \
- authentication credentials for a Kerberos realm, holds the master keys \
- for the realm, and responds to authentication requests. This package \
- should be installed on both master and slave KDCs."
-
-HOMEPAGE = "http://web.mit.edu/Kerberos/"
-SECTION = "console/network"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=59b8da652f07186b44782a8454574f30"
-DEPENDS = "ncurses util-linux e2fsprogs e2fsprogs-native openssl"
-
-inherit autotools-brokensep binconfig perlnative systemd update-rc.d
-
-SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
- file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \
- file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
- file://crosscompile_nm.patch \
- file://etc/init.d/krb5-kdc \
- file://etc/init.d/krb5-admin-server \
- file://etc/default/krb5-kdc \
- file://etc/default/krb5-admin-server \
- file://krb5-kdc.service \
- file://krb5-admin-server.service \
-"
-SRC_URI[md5sum] = "23c5e9f07642db4a67f7a5b6168b1319"
-SRC_URI[sha256sum] = "faeb125f83b0fb4cdb2f99f088140631bb47d975982de0956d18c85842969e08"
-
-CVE_PRODUCT = "kerberos"
-
-S = "${WORKDIR}/${BP}/src"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
-PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl"
-PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils"
-PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
-PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
-
-EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath"
-CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
- ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
- ac_cv_file__etc_TIMEZONE=no"
-
-CFLAGS_append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et"
-CFLAGS_append_riscv64 = " -D_REENTRANT -pthread"
-LDFLAGS_append = " -pthread"
-
-do_configure() {
- gnu-configize --force
- autoreconf
- oe_runconf
-}
-
-do_install_append() {
- rm -rf ${D}/${localstatedir}/run
- rm -f ${D}${bindir}/sclient
- rm -f ${D}${bindir}/sim_client
- rm -f ${D}${bindir}/uuclient
- rm -f ${D}${sbindir}/krb5-send-pr
- rm -f ${D}${sbindir}/sim_server
- rm -f ${D}${sbindir}/sserver
- rm -f ${D}${sbindir}/uuserver
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- mkdir -p ${D}/${sysconfdir}/init.d ${D}/${sysconfdir}/default
- install -m 0755 ${WORKDIR}/etc/init.d/* ${D}/${sysconfdir}/init.d
- install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
-
- mkdir -p ${D}/${sysconfdir}/default/volatiles
- echo "d root root 0755 ${localstatedir}/run/krb5kdc none" \
- > ${D}${sysconfdir}/default/volatiles/87_krb5
-
- echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server
- fi
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /run/krb5kdc - - - -" \
- > ${D}${sysconfdir}/tmpfiles.d/krb5.conf
-
- mkdir -p ${D}/${sysconfdir}/default
- install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/krb5-admin-server.service ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/krb5-kdc.service ${D}${systemd_system_unitdir}
- fi
-}
-
-PACKAGES =+ "${PN}-admin-server \
- ${PN}-gss-samples \
- ${PN}-k5tls \
- ${PN}-kdc \
- ${PN}-kdc-ldap \
- ${PN}-kpropd \
- ${PN}-otp \
- ${PN}-pkinit \
- ${PN}-user \
- libgssapi-krb5 \
- libgssrpc \
- libk5crypto \
- libkadm5clnt-mit \
- libkadm5srv-mit \
- libkdb5 \
- libkrad \
- libkrb5 \
- libkrb5support \
- libverto"
-
-FILES_${PN} = "${libdir}/krb5/plugins/preauth/test.so"
-FILES_${PN}-doc += "${datadir}/examples"
-FILES_${PN}-dbg += "${libdir}/krb5/plugins/*/.debug"
-
-FILES_${PN}-admin-server = "${sbindir}/kadmin.local \
- ${sbindir}/kadmind \
- ${sbindir}/kprop \
- ${sysconfdir}/default/krb5-admin-server \
- ${sysconfdir}/init.d/krb5-admin-server \
- ${systemd_system_unitdir}/krb5-admin-server.service"
-
-FILES_${PN}-gss-samples = "${bindir}/gss-client \
- ${sbindir}/gss-server"
-
-FILES_${PN}-k5tls = "${libdir}/krb5/plugins/tls/k5tls.so"
-
-FILES_${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \
- ${localstatedir}/krb5kdc \
- ${sbindir}/kdb5_util \
- ${sbindir}/kproplog \
- ${sbindir}/krb5kdc \
- ${sysconfdir}/default/krb5-kdc \
- ${sysconfdir}/default/volatiles/87_krb5 \
- ${sysconfdir}/init.d/krb5-kdc \
- ${sysconfdir}/tmpfiles.d/krb5.conf \
- ${systemd_system_unitdir}/krb5-kdc.service"
-
-FILES_${PN}-kdc-ldap = "${libdir}/krb5/libkdb_ldap${SOLIBS} \
- ${libdir}/krb5/plugins/kdb/kldap.so \
- ${sbindir}/kdb5_ldap_util"
-
-FILES_${PN}-kpropd = "${sbindir}/kpropd"
-FILES_${PN}-otp = "${libdir}/krb5/plugins/preauth/otp.so"
-FILES_${PN}-pkinit = "${libdir}/krb5/plugins/preauth/pkinit.so"
-FILES_${PN}-user = "${bindir}/k*"
-
-FILES_libgssapi-krb5 = "${libdir}/libgssapi_krb5${SOLIBS}"
-FILES_libgssrpc = "${libdir}/libgssrpc${SOLIBS}"
-FILES_libk5crypto = "${libdir}/libk5crypto${SOLIBS}"
-FILES_libkadm5clnt-mit = "${libdir}/libkadm5clnt_mit${SOLIBS}"
-FILES_libkadm5srv-mit = "${libdir}/libkadm5srv_mit${SOLIBS}"
-FILES_libkdb5 = "${libdir}/libkdb5${SOLIBS}"
-FILES_libkrad = "${libdir}/libkrad${SOLIBS}"
-FILES_libkrb5 = "${libdir}/libkrb5${SOLIBS} \
- ${libdir}/krb5/plugins/authdata \
- ${libdir}/krb5/plugins/libkrb5"
-FILES_libkrb5support = "${libdir}/libkrb5support${SOLIBS}"
-FILES_libverto = "${libdir}/libverto${SOLIBS}"
-
-RDEPENDS_${PN}-kadmin-server = "${PN}-kdc"
-RDEPENDS_${PN}-kpropd = "${PN}-kdc"
-
-INITSCRIPT_PACKAGES = "${PN}-admin-server ${PN}-kdc"
-INITSCRIPT_NAME_${PN}-admin-server = "krb5-admin-server"
-INITSCRIPT_NAME_${PN}-kdc = "krb5-kdc"
-
-SYSTEMD_PACKAGES = "${PN}-admin-server ${PN}-kdc"
-SYSTEMD_SERVICE_${PN}-admin-server = "krb5-admin-server.service"
-SYSTEMD_SERVICE_${PN}-kdc = "krb5-kdc.service"
-
-pkg_postinst_${PN}-kdc () {
- if [ -z "$D" ]; then
- if command -v systemd-tmpfiles >/dev/null; then
- systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/krb5.conf
- elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
- fi
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.24.bb b/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.24.bb
index 5e0f3a5..a5838d3 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.24.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.24.bb
@@ -9,8 +9,6 @@
SRC_URI[md5sum] = "94459a5a22db041dec6f98424d6efe54"
SRC_URI[sha256sum] = "973593d3479abdf657674a55afe5f78624b0e440614e2b8cb3a07f16d4d7f821"
-S = "${WORKDIR}/${PN}-${PV}"
-
inherit autotools
EXTRA_OECONF += "--with-pic"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch
deleted file mode 100644
index 9a7895f..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fix link error with gcc 5 toolchains
-
- afc.c:258: error: undefined reference to 'debug_buffer'
- collect2: error: ld returned 1 exit status
-
-debug.h header was declaring things inline without providing a definition.
-Files that included this header then failed to link against the corresponding
-external symbol in debug.c, because the linker took the 'inline' keyword
-seriously rather than ignoring it.
-
---- libimobiledevice-1.1.4/src/debug.h.orig 2015-10-03 16:24:08.758740386 -0700
-+++ libimobiledevice-1.1.4/src/debug.h 2015-10-03 16:24:22.706740355 -0700
-@@ -44,14 +44,14 @@
- #define debug_plist(a)
- #endif
-
--LIBIMOBILEDEVICE_INTERNAL inline void debug_info_real(const char *func,
-+LIBIMOBILEDEVICE_INTERNAL void debug_info_real(const char *func,
- const char *file,
- int line,
- const char *format, ...);
-
--LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer(const char *data, const int length);
--LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer_to_file(const char *file, const char *data, const int length);
--LIBIMOBILEDEVICE_INTERNAL inline void debug_plist_real(const char *func,
-+LIBIMOBILEDEVICE_INTERNAL void debug_buffer(const char *data, const int length);
-+LIBIMOBILEDEVICE_INTERNAL void debug_buffer_to_file(const char *file, const char *data, const int length);
-+LIBIMOBILEDEVICE_INTERNAL void debug_plist_real(const char *func,
- const char *file,
- int line,
- plist_t plist);
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb
deleted file mode 100644
index 32aca96..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "A protocol library to access an iPhone or iPod Touch in Linux"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
- file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \
-"
-
-HOMEPAGE ="http://www.libimobiledevice.org/"
-
-DEPENDS = "libplist usbmuxd libtasn1 gnutls libgcrypt"
-
-SRC_URI = " \
- http://www.libimobiledevice.org/downloads/libimobiledevice-${PV}.tar.bz2 \
- file://configure-fix-largefile.patch \
- file://inline-without-definition.patch \
-"
-
-SRC_URI[md5sum] = "3f28cbc6a2e30d34685049c0abde5183"
-SRC_URI[sha256sum] = "67499cfaa6172f566ee6b0783605acffe484fb7ddc3b09881ab7ac58667ee5b8"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = " --without-cython "
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
new file mode 100644
index 0000000..908b98d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A protocol library to access an iPhone or iPod Touch in Linux"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
+ file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \
+"
+
+HOMEPAGE ="http://www.libimobiledevice.org/"
+
+DEPENDS = "libplist usbmuxd libusbmuxd libtasn1 gnutls libgcrypt"
+
+SRCREV = "fb71aeef10488ed7b0e60a1c8a553193301428c0"
+PV = "1.2.0+git${SRCPV}"
+SRC_URI = "\
+ git://github.com/libimobiledevice/libimobiledevice;protocol=https \
+ file://configure-fix-largefile.patch \
+"
+
+S = "${WORKDIR}/git"
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " --without-cython "
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb
deleted file mode 100644
index f89ef9d..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol"
-DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = "glib-2.0 glib-2.0-native libgudev"
-
-inherit autotools pkgconfig bash-completion
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
- file://clang.patch \
-"
-SRC_URI[md5sum] = "2ed809e65c85353d3ab59e372890e549"
-SRC_URI[sha256sum] = "ca8d52a95a18cbabae8f15f83f1572316e888b6504f946e6645d24405127ab5b"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb
new file mode 100644
index 0000000..5260c0f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol"
+DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = "glib-2.0 glib-2.0-native libgudev"
+
+inherit autotools pkgconfig bash-completion
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
+ file://clang.patch \
+"
+SRC_URI[md5sum] = "76ea4d8381989919b1d9b91c818fed80"
+SRC_URI[sha256sum] = "c8ca50beeddd4b43309df5b698917268303bf176cea58fe4fe53d5bf0e93fac2"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch b/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch
deleted file mode 100644
index 15aa94e..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 94e9a082d76414f82794b0c9817d0c24e3868275 Mon Sep 17 00:00:00 2001
-From: Kylie McClain <somasis@exherbo.org>
-Date: Sat, 21 May 2016 21:24:36 -0400
-Subject: [PATCH] ndptool: Fix compilation on musl libc
-
-FD_ZERO, fd_set, etc are defined within sys/select.h on musl.
-
-Signed-off-by: Kylie McClain <somasis@exherbo.org>
-Signed-off-by: Jiri Pirko <jiri@mellanox.com>
----
- utils/ndptool.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/utils/ndptool.c b/utils/ndptool.c
-index 1d96f4c..96479fa 100644
---- a/utils/ndptool.c
-+++ b/utils/ndptool.c
-@@ -28,6 +28,7 @@
- #include <arpa/inet.h>
- #include <errno.h>
- #include <ndp.h>
-+#include <sys/select.h>
-
- enum verbosity_level {
- VERB1,
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb
deleted file mode 100644
index 5148798..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Library for IPv6 Neighbor Discovery Protocol"
-HOMEPAGE = "http://libndp.org/"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "git://github.com/jpirko/libndp \
- file://0001-include-sys-select.h-for-fd_-definitions.patch \
- "
-# tag for v1.6
-SRCREV = "2f721c4ff519f38f46695a60d9f9d88f35bf3c1d"
-S = "${WORKDIR}/git"
-
-inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.7.bb b/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.7.bb
new file mode 100644
index 0000000..07a7a1d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.7.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Library for IPv6 Neighbor Discovery Protocol"
+HOMEPAGE = "http://libndp.org/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://github.com/jpirko/libndp \
+ "
+# tag for v1.6
+SRCREV = "96674e7d4f4d569c2c961e865cc16152dfab5f09"
+S = "${WORKDIR}/git"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb b/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
index dfc2049..c991344 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
@@ -15,6 +15,9 @@
SRC_URI[md5sum] = "f051e6e5bdecddb90f77c701c2ca1804"
SRC_URI[sha256sum] = "72c380785ad44183005e654b47cc12485ee0228d7fa6b0a87109ff7614be4a63"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libnet-dev/files/"
+UPSTREAM_CHECK_REGEX = "libnet-(?P<pver>\d+(\.\d+)+-*[a-z]*\d*)\.tar"
+
S = "${WORKDIR}/${BPN}-${PV}"
inherit autotools binconfig
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch
new file mode 100644
index 0000000..d230d68
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch
@@ -0,0 +1,41 @@
+From 8269f4d86927fbe19e78776a12736680fe9169b6 Mon Sep 17 00:00:00 2001
+From: Adrian Bunk <bunk@stusta.de>
+Date: Mon, 1 Oct 2018 16:53:31 +0300
+Subject: [PATCH] qmi-network: Don't create invalid --wds-start-network when
+ APN is not set
+
+In 1.20.2 the warning for this was turned into an error.
+
+(cherry picked from commit 289d8ad6419895e2e1fba3d78a54a0db65da521d)
+---
+Upstream-Status: Backport
+
+ utils/qmi-network.in | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/utils/qmi-network.in b/utils/qmi-network.in
+index bf7bed9..a9e5299 100755
+--- a/utils/qmi-network.in
++++ b/utils/qmi-network.in
+@@ -334,11 +334,13 @@ start_network ()
+
+ setup_data_format
+
+- START_NETWORK_ARGS="apn='$APN'"
+- if [ -n "$APN_USER" ]; then
+- START_NETWORK_ARGS="${START_NETWORK_ARGS},username='$APN_USER'"
+- if [ -n "$APN_PASS" ]; then
+- START_NETWORK_ARGS="${START_NETWORK_ARGS},password='$APN_PASS'"
++ if [ -n "$APN" ]; then
++ START_NETWORK_ARGS="apn='$APN'"
++ if [ -n "$APN_USER" ]; then
++ START_NETWORK_ARGS="${START_NETWORK_ARGS},username='$APN_USER'"
++ if [ -n "$APN_PASS" ]; then
++ START_NETWORK_ARGS="${START_NETWORK_ARGS},password='$APN_PASS'"
++ fi
+ fi
+ fi
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb
deleted file mode 100644
index 9301cbd..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol"
-DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = "glib-2.0 libgudev libmbim glib-2.0-native"
-
-inherit autotools pkgconfig bash-completion
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
- file://0001-Detect-clang.patch \
- "
-SRC_URI[md5sum] = "797e365521df76b77b067e6317618b41"
-SRC_URI[sha256sum] = "21428cd3749c56246565123f707fee51238651a22c60bdc85ebce97388626eb4"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.2.bb
new file mode 100644
index 0000000..f0bc81c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol"
+DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = "glib-2.0 glib-2.0-native"
+
+inherit autotools pkgconfig bash-completion
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
+ file://0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch \
+ file://0001-Detect-clang.patch \
+ "
+SRC_URI[md5sum] = "584214476ab75c394160cb85fbccaa1d"
+SRC_URI[sha256sum] = "c73459ca8bfe1213f8047858d4946fc1f58e164d4f488a7a6904edee25e2ca44"
+
+PACKAGECONFIG ??= "udev mbim"
+PACKAGECONFIG[udev] = ",--without-udev,libgudev"
+PACKAGECONFIG[mbim] = "--enable-mbim-qmux,--disable-mbim-qmux,libmbim"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch
index 79d4f29..8d8867a 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch
@@ -4,91 +4,25 @@
Upstream-Status: Pending
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-Index: libtorrent-0.13.3/scripts/checks.m4
+Index: git/scripts/common.m4
===================================================================
---- libtorrent-0.13.3.orig/scripts/checks.m4 2012-05-14 14:17:04.000000000 +0300
-+++ libtorrent-0.13.3/scripts/checks.m4 2013-02-10 15:28:37.414445524 +0200
-@@ -95,40 +95,6 @@
-
- AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
- AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
--
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
-- #include <fcntl.h>
-- #include <stdlib.h>
-- #include <unistd.h>
-- #include <sys/event.h>
-- #include <sys/time.h>
-- int main() {
-- struct kevent ev@<:@2@:>@, ev_out@<:@2@:>@;
-- struct timespec ts = { 0, 0 };
-- int pfd@<:@2@:>@, pty@<:@2@:>@, kfd, n;
-- char buffer@<:@9001@:>@;
-- if (pipe(pfd) == -1) return 1;
-- if (fcntl(pfd@<:@1@:>@, F_SETFL, O_NONBLOCK) == -1) return 2;
-- while ((n = write(pfd@<:@1@:>@, buffer, sizeof(buffer))) == sizeof(buffer));
-- if ((pty@<:@0@:>@=posix_openpt(O_RDWR | O_NOCTTY)) == -1) return 3;
-- if ((pty@<:@1@:>@=grantpt(pty@<:@0@:>@)) == -1) return 4;
-- EV_SET(ev+0, pfd@<:@1@:>@, EVFILT_WRITE, EV_ADD | EV_ENABLE, 0, 0, NULL);
-- EV_SET(ev+1, pty@<:@1@:>@, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, NULL);
-- if ((kfd = kqueue()) == -1) return 5;
-- if ((n = kevent(kfd, ev, 2, NULL, 0, NULL)) == -1) return 6;
-- if (ev_out@<:@0@:>@.flags & EV_ERROR) return 7;
-- if (ev_out@<:@1@:>@.flags & EV_ERROR) return 8;
-- read(pfd@<:@0@:>@, buffer, sizeof(buffer));
-- if ((n = kevent(kfd, NULL, 0, ev_out, 2, &ts)) < 1) return 9;
-- return 0;
-- }
-- ])],
-- [
-- AC_MSG_RESULT(yes)
-- ], [
-- AC_DEFINE(KQUEUE_SOCKET_ONLY, 1, kqueue only supports sockets.)
-- AC_MSG_RESULT(no)
-- ])
- ])
-
- AC_DEFUN([TORRENT_WITH_KQUEUE], [
-Index: libtorrent-0.13.3/scripts/common.m4
-===================================================================
---- libtorrent-0.13.3.orig/scripts/common.m4 2012-05-14 14:17:04.000000000 +0300
-+++ libtorrent-0.13.3/scripts/common.m4 2013-02-10 15:27:55.874446741 +0200
-@@ -222,38 +222,10 @@
-
+--- git.orig/scripts/common.m4
++++ git/scripts/common.m4
+@@ -153,7 +153,7 @@ dnl Need to fix this so that it uses t
AC_DEFUN([TORRENT_CHECK_EXECINFO], [
AC_MSG_CHECKING(for execinfo.h)
--
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
-- #include <execinfo.h>
-- int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
-- ])],
-- [
-- AC_MSG_RESULT(yes)
-- AC_DEFINE(USE_EXECINFO, 1, Use execinfo.h)
-- ], [
-- AC_MSG_RESULT(no)
-- ])
- ])
-
+
+- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <execinfo.h>
+ int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
+ ])],
+@@ -168,7 +168,7 @@ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
AC_DEFUN([TORRENT_CHECK_ALIGNED], [
AC_MSG_CHECKING(the byte alignment)
--
+
- AC_RUN_IFELSE([AC_LANG_SOURCE([
-- #include <inttypes.h>
-- int main() {
-- char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
-- int i;
-- for (i = 1; i < 4; ++i)
-- if (*(uint32_t*)(buf + i) == 0) return -1;
-- return 0;
-- }
-- ])],
-- [
-- AC_MSG_RESULT(none needed)
-- ], [
-- AC_DEFINE(USE_ALIGNED, 1, Require byte alignment)
-- AC_MSG_RESULT(required)
-- ])
- ])
-
-
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <inttypes.h>
+ int main() {
+ char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
index 92e6528..b2dffcd 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
@@ -11,9 +11,9 @@
file://0001-implement-64bit-atomic-for-mips.patch \
file://0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch \
"
-SRCREV = "c167c5a9e0bcf0df23ae5efd91396aae0e37eb87"
+SRCREV = "074f6ec51a2e4bc5c6140b4dad13c9bb56f3f0dc"
-PV = "0.13.6+git${SRCPV}"
+PV = "0.13.7+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb
deleted file mode 100644
index ca4685a..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A multi-platform support library with a focus on asynchronous I/O"
-HOMEPAGE = "https://github.com/libuv/libuv"
-BUGTRACKER = "https://github.com/libuv/libuv/issues"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bb5ea0d651f4c3519327171906045775"
-
-S = "${WORKDIR}/git"
-SRCREV = "7452ef4e06a4f99ee26b694c65476401534f2725"
-BRANCH = "v1.x"
-SRC_URI = "git://github.com/libuv/libuv.git;protocol=https;branch=${BRANCH};"
-
-inherit autotools
-
-do_configure() {
- ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
- oe_runconf
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb
new file mode 100644
index 0000000..a11ff9d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A multi-platform support library with a focus on asynchronous I/O"
+HOMEPAGE = "https://github.com/libuv/libuv"
+BUGTRACKER = "https://github.com/libuv/libuv/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
+
+S = "${WORKDIR}/git"
+SRCREV = "8cfd67e59195251dff793ee47c185c9d6a8f3818"
+BRANCH = "v1.x"
+SRC_URI = "git://github.com/libuv/libuv.git;protocol=https;branch=${BRANCH};"
+
+inherit autotools
+
+do_configure() {
+ ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
+ oe_runconf
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb
deleted file mode 100644
index 100f3a3..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Canonical libwebsockets.org websocket library"
-HOMEPAGE = "https://libwebsockets.org/"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e3393a657830d4a118c5a6ed35ba53d0"
-
-DEPENDS = "zlib"
-
-S = "${WORKDIR}/git"
-SRCREV = "73557509bd15f95a1ad081a6f4fab48ff7743215"
-SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;"
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG ?= "libuv client server http2 ssl"
-PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
-PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
-PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
-PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
-PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
-PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
-PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
-PACKAGECONFIG[testapps] = "-DLWS_WITHOUT_TESTAPPS=OFF,-DLWS_WITHOUT_TESTAPPS=ON,"
-
-PACKAGES =+ "${PN}-testapps"
-
-FILES_${PN}-dev += "${libdir}/cmake"
-FILES_${PN}-testapps += "${datadir}/libwebsockets-test-server/*"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb
new file mode 100644
index 0000000..f384148
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Canonical libwebsockets.org websocket library"
+HOMEPAGE = "https://libwebsockets.org/"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4ce87f3facb6f911c142c8bef9bfb380"
+
+DEPENDS = "zlib"
+
+S = "${WORKDIR}/git"
+SRCREV = "eaa935a80adb38b5cc4d09ce06ec987b87dcddfa"
+SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ?= "libuv client server http2 ssl"
+PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
+PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
+PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
+PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
+PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
+PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
+PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
+PACKAGECONFIG[testapps] = "-DLWS_WITHOUT_TESTAPPS=OFF,-DLWS_WITHOUT_TESTAPPS=ON,"
+
+PACKAGES =+ "${PN}-testapps"
+
+FILES_${PN}-testapps += "${datadir}/libwebsockets-test-server/*"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch
deleted file mode 100644
index a3fb0f3..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Fixes errors found bt Clang
-
-| ../../ModemManager-1.6.4/src/mm-bearer-qmi.c:774:50: error: implicit conversion from enumeration type 'MMBearerStatus' to different enumeration type 'MMBearerConnectionStatus' [-Werror,-Wenum-conversion]
-| MMBearerConnectionStatus bearer_status = mm_base_bearer_get_status (MM_BASE_BEARER (self));
-| ~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-| 1 error generated.
-
-
-Index: ModemManager-1.6.4/src/mm-bearer-qmi.c
-===================================================================
---- ModemManager-1.6.4.orig/src/mm-bearer-qmi.c
-+++ ModemManager-1.6.4/src/mm-bearer-qmi.c
-@@ -771,7 +771,7 @@ packet_service_status_indication_cb (Qmi
- &connection_status,
- NULL,
- NULL)) {
-- MMBearerConnectionStatus bearer_status = mm_base_bearer_get_status (MM_BASE_BEARER (self));
-+ MMBearerConnectionStatus bearer_status = (MMBearerConnectionStatus)mm_base_bearer_get_status (MM_BASE_BEARER (self));
-
- if (connection_status == QMI_WDS_CONNECTION_STATUS_DISCONNECTED &&
- bearer_status != MM_BEARER_CONNECTION_STATUS_DISCONNECTED &&
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb
deleted file mode 100644
index e60cd4b..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "ModemManager is a daemon controlling broadband devices/connections"
-DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/"
-LICENSE = "GPL-2.0 & LGPL-2.1"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-inherit gnomebase gettext systemd vala gobject-introspection bash-completion
-
-DEPENDS = "glib-2.0 libgudev dbus-glib intltool-native"
-
-SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \
- file://enum-conversion.patch \
-"
-SRC_URI[md5sum] = "06488186c7dd53f8104183b86f7a1568"
-SRC_URI[sha256sum] = "cdd5b4cb1e4d7643643a28ccbfc4bb354bfa9cb89a77ea160ebdf7926171c668"
-
-S = "${WORKDIR}/ModemManager-${PV}"
-
-PACKAGECONFIG ??= "mbim qmi polkit \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
-"
-
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,"
-PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit"
-# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
-PACKAGECONFIG[mbim] = "--with-mbim,--enable-mbim=no,libmbim"
-# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol.
-PACKAGECONFIG[qmi] = "--with-qmi,--without-qmi,libqmi"
-
-FILES_${PN} += " \
- ${datadir}/icons \
- ${datadir}/polkit-1 \
- ${datadir}/dbus-1 \
- ${libdir}/ModemManager \
- ${systemd_unitdir}/system \
-"
-
-FILES_${PN}-dev += " \
- ${libdir}/ModemManager/*.la \
-"
-
-FILES_${PN}-staticdev += " \
- ${libdir}/ModemManager/*.a \
-"
-
-FILES_${PN}-dbg += "${libdir}/ModemManager/.debug"
-
-SYSTEMD_SERVICE_${PN} = "ModemManager.service"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb
new file mode 100644
index 0000000..dec4b67
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb
@@ -0,0 +1,55 @@
+SUMMARY = "ModemManager is a daemon controlling broadband devices/connections"
+DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/"
+LICENSE = "GPL-2.0 & LGPL-2.1"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+inherit gnomebase gettext systemd vala gobject-introspection bash-completion
+
+DEPENDS = "glib-2.0 libgudev dbus-glib intltool-native"
+
+SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \
+ "
+
+SRC_URI[md5sum] = "a49c9f73e46c7b89e5efedda250d22c0"
+SRC_URI[sha256sum] = "96f2a5f0ed15532b4c4c185b756fdc0326e7c2027cea26a1264f91e098260f80"
+
+S = "${WORKDIR}/ModemManager-${PV}"
+
+PACKAGECONFIG ??= "mbim qmi polkit \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,"
+PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit"
+# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
+PACKAGECONFIG[mbim] = "--with-mbim,--with-mbim=no,libmbim"
+# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol.
+PACKAGECONFIG[qmi] = "--with-qmi,--without-qmi,libqmi"
+
+EXTRA_OECONF = " \
+ --with-udev-base-dir=${nonarch_base_libdir}/udev \
+"
+
+FILES_${PN} += " \
+ ${datadir}/icons \
+ ${datadir}/polkit-1 \
+ ${datadir}/dbus-1 \
+ ${libdir}/ModemManager \
+ ${systemd_unitdir}/system \
+"
+
+FILES_${PN}-dev += " \
+ ${libdir}/ModemManager/*.la \
+"
+
+FILES_${PN}-staticdev += " \
+ ${libdir}/ModemManager/*.a \
+"
+
+FILES_${PN}-dbg += "${libdir}/ModemManager/.debug"
+
+SYSTEMD_SERVICE_${PN} = "ModemManager.service"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch b/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch
deleted file mode 100644
index a5aa277..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0be38301249d797ec1f59071cc868ceda6d4720a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
-Date: Tue, 12 Apr 2016 12:50:32 +0100
-Subject: [PATCH 1/2] config.mk: allow prefix / mandir / localedir from
- environment
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We want to control them using OE environment variables.
-
-Upstream-Status: Inappropriate [embedded-specific]
-Signed-off-by: André Draszik <andre.draszik@jci.com>
----
- config.mk | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/config.mk b/config.mk
-index 71f17e5..81d9702 100644
---- a/config.mk
-+++ b/config.mk
-@@ -249,7 +249,7 @@ ifeq ($(WITH_DOCS),yes)
- endif
-
- INSTALL?=install
--prefix=/usr/local
--mandir=${prefix}/share/man
--localedir=${prefix}/share/locale
-+prefix?=/usr/local
-+mandir?=${prefix}/share/man
-+localedir?=${prefix}/share/locale
- STRIP?=strip
---
-2.15.1
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init
deleted file mode 100644
index d2a27b2..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init
+++ /dev/null
@@ -1,89 +0,0 @@
-#! /bin/sh
-
-# Based on the Debian initscript for mosquitto
-
-### BEGIN INIT INFO
-# Provides: mosquitto
-# Required-Start: $remote_fs $syslog
-# Required-Stop: $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: mosquitto MQTT v3.1 message broker
-# Description:
-# This is a message broker that supports version 3.1 of the MQ Telemetry
-# Transport (MQTT) protocol.
-#
-# MQTT provides a method of carrying out messaging using a publish/subscribe
-# model. It is lightweight, both in terms of bandwidth usage and ease of
-# implementation. This makes it particularly useful at the edge of the network
-# where a sensor or other simple device may be implemented using an arduino for
-# example.
-### END INIT INFO
-
-set -e
-
-PIDFILE=@LOCALSTATEDIR@/run/mosquitto.pid
-DAEMON=@SBINDIR@/mosquitto
-
-# start and stop the mosquitto MQTT message broker
-
-test -x ${DAEMON} || exit 0
-
-umask 022
-
-. @SYSCONFDIR@/init.d/functions
-
-export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@"
-
-case "$1" in
- start)
- echo "Starting Mosquitto message broker" "mosquitto"
- if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then
- exit 0
- else
- exit 1
- fi
- ;;
- stop)
- echo "Stopping Mosquitto message broker" "mosquitto"
- if start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE}; then
- rm -f ${PIDFILE}
- exit 0
- else
- exit 1
- fi
- ;;
-
-
- reload|force-reload)
- if [ -f ${PIDFILE} ] ; then
- echo "Reloading configuration for mosquitto"
- pid=`cat ${PIDFILE}`
- kill -HUP $pid
- else
- echo "mosquitto does not seem to be running"
- fi
- ;;
-
- restart)
- echo "Restarting Mosquitto message broker" "mosquitto"
- if start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${PIDFILE}; then
- rm -f ${PIDFILE}
- fi
- if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then
- exit 0
- else
- exit 1
- fi
- ;;
-
- status)
- status ${DAEMON} && exit 0 || exit $?
- ;;
-
- *)
- echo "Usage: $0 {start|stop|reload|force-reload|restart|status}"
- exit 1
-esac
-
-exit 0
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service b/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service
deleted file mode 100644
index 25f68fa..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=Mosquitto - lightweight server implementation of the MQTT and MQTT-SN protocols
-ConditionPathExists=/etc/mosquitto/mosquitto.conf
-After=network.target
-
-[Service]
-Type=simple
-ExecStartPre=/bin/rm -f /var/run/mosquitto.pid
-ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
-ExecReload=/bin/kill -HUP $MAINPID
-PIDFile=/var/run/mosquitto.pid
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb b/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb
deleted file mode 100644
index 13ce381..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb
+++ /dev/null
@@ -1,83 +0,0 @@
-SUMMARY = "Open source MQTT v3.1/3.1.1 implemention"
-DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker that implements the MQ Telemetry Transport protocol version 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. "
-HOMEPAGE = "http://mosquitto.org/"
-SECTION = "console/network"
-LICENSE = "EPL-1.0 | EDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62ddc846179e908dc0c8efec4a42ef20 \
- file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \
- file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \
- file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
-"
-DEPENDS = "uthash"
-
-SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
- file://0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch \
- file://0002-uthash-remove-in-tree-version.patch \
- file://mosquitto.service \
- file://mosquitto.init \
-"
-
-SRC_URI[md5sum] = "6b0966e93f118bc71ad7b61600a6c2d3"
-SRC_URI[sha256sum] = "156b1fa731d12baad4b8b22f7b6a8af50ba881fc711b81e9919ec103cf2942d1"
-
-inherit systemd update-rc.d useradd
-
-PACKAGECONFIG ??= "ssl uuid"
-
-PACKAGECONFIG[dns-srv] = ",,c-ares"
-PACKAGECONFIG[ssl] = ",,openssl"
-PACKAGECONFIG[uuid] = ",,util-linux"
-EXTRA_OEMAKE = "${@bb.utils.contains('PACKAGECONFIG', 'dns-srv', 'WITH_SRV=yes', 'WITH_SRV=no', d)} \
- STRIP=/bin/true \
- WITH_DOCS=no \
- ${@bb.utils.contains('PACKAGECONFIG', 'ssl', 'WITH_TLS=yes WITH_TLS_PSK=yes', 'WITH_TLS=no WITH_TLS_PSK=no', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'uuid', 'WITH_UUID=yes', 'WITH_UUID=no', d)}"
-
-export LIB_SUFFIX="${@d.getVar('baselib', True).replace('lib', '')}"
-
-do_compile() {
- oe_runmake PREFIX=${prefix}
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D}
- install -d ${D}${libdir}
- install -m 0644 lib/libmosquitto.a ${D}${libdir}/
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/mosquitto.service ${D}${systemd_unitdir}/system/
-
- install -d ${D}${sysconfdir}/init.d/
- install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto
- sed -i -e 's,@SBINDIR@,${sbindir},g' \
- -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
- -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- ${D}${sysconfdir}/init.d/mosquitto
-}
-
-PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients"
-
-FILES_${PN} = "${sbindir}/mosquitto \
- ${bindir}/mosquitto_passwd \
- ${sysconfdir}/mosquitto \
- ${sysconfdir}/init.d \
- ${systemd_unitdir}/system/mosquitto.service \
-"
-
-FILES_libmosquitto1 = "${libdir}/libmosquitto.so.1"
-
-FILES_libmosquittopp1 = "${libdir}/libmosquittopp.so.1"
-
-FILES_${PN}-clients = "${bindir}/mosquitto_pub \
- ${bindir}/mosquitto_sub \
-"
-
-SYSTEMD_SERVICE_${PN} = "mosquitto.service"
-
-INITSCRIPT_NAME = "mosquitto"
-INITSCRIPT_PARAMS = "defaults 30"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false \
- --user-group mosquitto"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
index 1b56685..3fb8cb1 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
@@ -2,29 +2,26 @@
Object Exchange (OBEX) protocol."
HOMEPAGE = "http://openobex.triq.net"
SECTION = "libs"
-DEPENDS = "virtual/libusb0"
-DEPENDS_append_class-target = " ${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}"
-
LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
"
+DEPENDS = "virtual/libusb0"
+DEPENDS_append_class-target = " ${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}"
+
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}-Source.tar.gz \
"
-
SRC_URI[md5sum] = "f6e0b6cb7dcfd731460a7e9a91429a3a"
SRC_URI[sha256sum] = "158860aaea52f0fce0c8e4b64550daaae06df2689e05834697b7e8c7d73dd4fc"
-inherit cmake pkgconfig
-
S = "${WORKDIR}/${BP}-Source"
+inherit cmake pkgconfig
+
EXTRA_OECONF = " -DCMAKE_SKIP_RPATH=ON "
EXTRA_OECMAKE += "-DBUILD_DOCUMENTATION=OFF"
-#--enable-apps --enable-syslog
-
ASNEEDED = ""
do_install_append () {
@@ -34,7 +31,7 @@
PACKAGES =+ "openobex-apps"
FILES_${PN}-apps = "${bindir}/*"
FILES_${PN} += "${libdir}/lib*.so.*"
-FILES_${PN}-dev += "${bindir}/openobex-config ${libdir}/cmake"
+FILES_${PN}-dev += "${bindir}/openobex-config"
DEBIAN_NOAUTONAME_${PN}-apps = "1"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb
deleted file mode 100644
index fec380c..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols"
-DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
-HOMEPAGE = "http://www.eclipse.org/paho/"
-SECTION = "console/network"
-LICENSE = "EPL-1.0 | EDL-1.0"
-
-LIC_FILES_CHKSUM = " \
- file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
- file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \
- file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
- file://about.html;md5=dcde438d73cf42393da9d40fabc0c9bc \
-"
-
-SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http"
-
-SRCREV = "e8d34da24ad807f5e698b327d67591fd4b4bfa7e"
-
-DEPENDS = "openssl"
-
-S = "${WORKDIR}/git"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- install -d ${D}${libdir}
- oe_libinstall -C build/output -so libpaho-mqtt3a ${D}${libdir}
- oe_libinstall -C build/output -so libpaho-mqtt3as ${D}${libdir}
- oe_libinstall -C build/output -so libpaho-mqtt3c ${D}${libdir}
- oe_libinstall -C build/output -so libpaho-mqtt3cs ${D}${libdir}
- install -d ${D}${includedir}
- install -m 644 src/MQTTAsync.h ${D}${includedir}
- install -m 644 src/MQTTClient.h ${D}${includedir}
- install -m 644 src/MQTTClientPersistence.h ${D}${includedir}
-}
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.1.bb
new file mode 100644
index 0000000..a7a9b5a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols"
+DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
+HOMEPAGE = "http://www.eclipse.org/paho/"
+SECTION = "console/network"
+LICENSE = "EPL-1.0 | EDL-1.0"
+
+LIC_FILES_CHKSUM = " \
+ file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
+ file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \
+ file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
+ file://about.html;md5=dcde438d73cf42393da9d40fabc0c9bc \
+"
+
+SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http"
+
+SRCREV = "09fe0744e02f317b907e96dd5afcc02224ddbb85"
+
+DEPENDS = "openssl"
+
+S = "${WORKDIR}/git"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+ install -d ${D}${libdir}
+ oe_libinstall -C build/output -so libpaho-mqtt3a ${D}${libdir}
+ oe_libinstall -C build/output -so libpaho-mqtt3as ${D}${libdir}
+ oe_libinstall -C build/output -so libpaho-mqtt3c ${D}${libdir}
+ oe_libinstall -C build/output -so libpaho-mqtt3cs ${D}${libdir}
+ install -d ${D}${includedir}
+ install -m 644 src/MQTTAsync.h ${D}${includedir}
+ install -m 644 src/MQTTClient.h ${D}${includedir}
+ install -m 644 src/MQTTClientPersistence.h ${D}${includedir}
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
index c731cf7..9bb81c4 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
@@ -8,9 +8,10 @@
SRC_URI = "git://github.com/rakshasa/rtorrent \
file://don-t-run-code-while-configuring-package.patch \
"
-SRCREV = "226e670decf92e7adaa845a6982aca4f164ea740"
+# v0.9.7
+SRCREV = "327164f9d86aafcd2500a317d485374df32ea622"
-PV = "0.9.6+git${SRCPV}"
+PV = "0.9.7+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb
deleted file mode 100644
index 708650f..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A serial to network proxy"
-SECTION = "console/network"
-HOMEPAGE = "http://sourceforge.net/projects/ser2net/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "562274d783534276a9feac913b7d8c4e"
-SRC_URI[sha256sum] = "d846066e27c3072565990745d030357aa0c278f96b7d1d4f59023347c1db8824"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.5.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.5.bb
new file mode 100644
index 0000000..f64776c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.5.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A serial to network proxy"
+SECTION = "console/network"
+HOMEPAGE = "http://sourceforge.net/projects/ser2net/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "e10e7c8c97e5bade5e85ce6e89bdf1f4"
+SRC_URI[sha256sum] = "ba9e1d60a89fd7ed075553b4a2074352902203f7fbd9b65b15048c05f0e3f3be"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch
index fcc2f08..a77cd28 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch
+++ b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch
@@ -1,9 +1,10 @@
-From b3da0d8677b7e8467367a303c18551c56ed20e15 Mon Sep 17 00:00:00 2001
+From a5544d8e543436e413379422b702f6f56ac7eb8e Mon Sep 17 00:00:00 2001
From: Philip Balister <philip@balister.org>
Date: Tue, 12 Apr 2016 17:30:15 -0400
Subject: [PATCH] Forcibly disable check for Qt5.
Signed-off-by: Philip Balister <philip@balister.org>
+
---
build/cmake/DefineOptions.cmake | 3 ---
1 file changed, 3 deletions(-)
@@ -22,6 +23,3 @@
if(${WITH_QT4} AND ${WITH_QT5} AND ${CMAKE_MAJOR_VERSION} LESS 3)
# cmake < 3.0.0 causes conflict when building both Qt4 and Qt5
set(WITH_QT4 OFF)
---
-2.5.5
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch
index 7cc8d17..182eacc 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch
+++ b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch
@@ -1,7 +1,7 @@
-From bc577820ad25795543b31f123e309cdaebc7d6c6 Mon Sep 17 00:00:00 2001
+From b8e254a2f4ba49412e541598c72159869a7770f8 Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
Date: Mon, 16 May 2016 15:21:10 -0400
-Subject: [PATCH 1/2] THRIFT-3828 In cmake avoid use of both quoted paths and
+Subject: [PATCH] THRIFT-3828 In cmake avoid use of both quoted paths and
SYSTEM with include_directories()
This allows us to avoid issues where there are no paths to be added to
@@ -11,6 +11,7 @@
Specifically, gcc-6 requires that libraries stop passing paths like
'/usr/include' (or they will get libstdc++ build errors), so these paths
will be empty more often in the future.
+
---
lib/cpp/CMakeLists.txt | 8 ++++----
lib/cpp/test/CMakeLists.txt | 2 +-
@@ -105,6 +106,3 @@
#Make sure gen-cpp files can be included
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
---
-2.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch
index f13adbb..37715c2 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch
+++ b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch
@@ -1,7 +1,7 @@
-From f6cad0580e5391c37af7f60adddb71bf1a403dc4 Mon Sep 17 00:00:00 2001
+From 7b05a74432f08ef34d0f8743dd6438ad012e3b5e Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
Date: Fri, 9 Sep 2016 15:50:26 -0400
-Subject: [PATCH 2/2] THRIFT-3831 in test/cpp explicitly use `signed char`
+Subject: [PATCH] THRIFT-3831 in test/cpp explicitly use `signed char`
`char`'s signed-ness is implimentation dependent, and in the case where
`char` was not signed, we previously recieved errors like
@@ -9,15 +9,16 @@
thrift/0.9.3-r0/git/test/cpp/src/TestClient.cpp:404:15: error: narrowing conversion of '-127' from 'int' to 'char' inside { } [-Wnarrowing]
(This example from gcc-6 on arm)
+
---
test/cpp/src/TestClient.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp
-index e709899..4a961f8 100644
+index 7c425a9..7145ebb 100644
--- a/test/cpp/src/TestClient.cpp
+++ b/test/cpp/src/TestClient.cpp
-@@ -383,7 +383,7 @@ int main(int argc, char** argv) {
+@@ -381,7 +381,7 @@ int main(int argc, char** argv) {
* BINARY TEST
*/
printf("testBinary([-128..127]) = {");
@@ -26,7 +27,7 @@
= {-128, -127, -126, -125, -124, -123, -122, -121, -120, -119, -118, -117, -116, -115, -114,
-113, -112, -111, -110, -109, -108, -107, -106, -105, -104, -103, -102, -101, -100, -99,
-98, -97, -96, -95, -94, -93, -92, -91, -90, -89, -88, -87, -86, -85, -84,
-@@ -404,7 +404,7 @@ int main(int argc, char** argv) {
+@@ -402,7 +402,7 @@ int main(int argc, char** argv) {
127};
try {
string bin_result;
@@ -35,6 +36,3 @@
if (bin_result.size() != 256) {
printf("}\n*** FAILED ***\n");
printf("invalid length: %lu\n", bin_result.size());
---
-2.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch
new file mode 100644
index 0000000..500cfab
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch
@@ -0,0 +1,41 @@
+From 5f2c7e50b99d72177250c44236c41b99bfc161b5 Mon Sep 17 00:00:00 2001
+From: Andrej Valek <andrej.valek@siemens.com>
+Date: Thu, 7 Jun 2018 15:21:06 +0200
+Subject: [PATCH 4/6] %% original patch:
+ 0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch
+
+---
+ lib/cpp/src/thrift/transport/TSSLSocket.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
+index 98c5326..3da9e45 100644
+--- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp
++++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
+@@ -39,6 +39,7 @@
+ #include <thrift/transport/PlatformSocket.h>
+
+ #define OPENSSL_VERSION_NO_THREAD_ID 0x10000000L
++#define OPENSSL_VERSION_WITH_TLSv1_1_AND_TLSv1_2 0x10100000L
+
+ using namespace std;
+ using namespace apache::thrift::concurrency;
+@@ -143,10 +144,15 @@ SSLContext::SSLContext(const SSLProtocol& protocol) {
+ ctx_ = SSL_CTX_new(SSLv3_method());
+ } else if (protocol == TLSv1_0) {
+ ctx_ = SSL_CTX_new(TLSv1_method());
++#if (OPENSSL_VERSION_NUMBER >= OPENSSL_VERSION_WITH_TLSv1_1_AND_TLSv1_2)
+ } else if (protocol == TLSv1_1) {
+ ctx_ = SSL_CTX_new(TLSv1_1_method());
+ } else if (protocol == TLSv1_2) {
+ ctx_ = SSL_CTX_new(TLSv1_2_method());
++#else
++ //Support for this versions will end on 2016-12-31
++ //https://www.openssl.org/about/releasestrat.html
++#endif
+ } else {
+ /// UNKNOWN PROTOCOL!
+ throw TSSLException("SSL_CTX_new: Unknown protocol");
+--
+2.19.0
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch
new file mode 100644
index 0000000..f4482b1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch
@@ -0,0 +1,26 @@
+From 81f36e7174097a1f1f3e7f94a97574b2ec68577f Mon Sep 17 00:00:00 2001
+From: "James E. King, III" <jim.king@simplivity.com>
+Date: Thu, 29 Sep 2016 15:04:09 -0400
+Subject: [PATCH] THRIFT-3878: fix interop with newer OpenSSL libraries
+
+---
+ lib/cpp/src/thrift/transport/TSSLSocket.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
+index 3da9e45..0a3a124 100644
+--- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp
++++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
+@@ -97,7 +97,12 @@ void initializeOpenSSL() {
+ SSL_library_init();
+ SSL_load_error_strings();
+ // static locking
++ // newer versions of OpenSSL changed CRYPTO_num_locks - see THRIFT-3878
++#ifdef CRYPTO_num_locks
++ mutexes = boost::shared_array<Mutex>(new Mutex[CRYPTO_num_locks()]);
++#else
+ mutexes = boost::shared_array<Mutex>(new Mutex[ ::CRYPTO_num_locks()]);
++#endif
+ if (mutexes == NULL) {
+ throw TTransportException(TTransportException::INTERNAL_ERROR,
+ "initializeOpenSSL() failed, "
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch
new file mode 100644
index 0000000..dfaa2fb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch
@@ -0,0 +1,46 @@
+From 4cd49f470ca983369451d1141acc80fe1115cab4 Mon Sep 17 00:00:00 2001
+From: Nobuaki Sukegawa <nsuke@apache.org>
+Date: Sun, 13 Mar 2016 08:55:38 +0900
+Subject: [PATCH] THRIFT-3736 C++ library build fails if OpenSSL does not
+
+ surrpot SSLv3
+
+---
+ lib/cpp/src/thrift/transport/TSSLSocket.cpp | 2 ++
+ lib/cpp/test/SecurityTest.cpp | 8 ++++++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
+index 0a3a124..3e79354 100644
+--- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp
++++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
+@@ -145,8 +145,10 @@ static char uppercase(char c);
+ SSLContext::SSLContext(const SSLProtocol& protocol) {
+ if (protocol == SSLTLS) {
+ ctx_ = SSL_CTX_new(SSLv23_method());
++#ifndef OPENSSL_NO_SSL3
+ } else if (protocol == SSLv3) {
+ ctx_ = SSL_CTX_new(SSLv3_method());
++#endif
+ } else if (protocol == TLSv1_0) {
+ ctx_ = SSL_CTX_new(TLSv1_method());
+ #if (OPENSSL_VERSION_NUMBER >= OPENSSL_VERSION_WITH_TLSv1_1_AND_TLSv1_2)
+diff --git a/lib/cpp/test/SecurityTest.cpp b/lib/cpp/test/SecurityTest.cpp
+index 213efd4..08110e7 100644
+--- a/lib/cpp/test/SecurityTest.cpp
++++ b/lib/cpp/test/SecurityTest.cpp
+@@ -239,6 +239,14 @@ BOOST_AUTO_TEST_CASE(ssl_security_matrix)
+ continue;
+ }
+
++#ifdef OPENSSL_NO_SSL3
++ if (si == 2 || ci == 2)
++ {
++ // Skip all SSLv3 cases - protocol not supported
++ continue;
++ }
++#endif
++
+ boost::mutex::scoped_lock lock(mMutex);
+
+ BOOST_TEST_MESSAGE(boost::format("TEST: Server = %1%, Client = %2%")
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb
index aa93283..7ab7402 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb
@@ -12,6 +12,9 @@
file://0001-Forcibly-disable-check-for-Qt5.patch \
file://0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch \
file://0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch \
+ file://0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch \
+ file://0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch \
+ file://0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch \
"
SRC_URI[md5sum] = "88d667a8ae870d5adeca8cb7d6795442"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch b/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch
deleted file mode 100644
index 8192056..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From f567740cf64978ac9db014c786b6d0267b244f33 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Mar 2018 22:30:30 -0800
-Subject: [PATCH 1/2] replace SIGCLD with SIGCHLD and include sys/types.h
-
-Fixes
-main.c:129:10: error: 'SIGCLD' undeclared (first use in this function); did you mean 'SIGCHLD'?
- signal(SIGCLD, sig_child);
- ^~~~~~
- SIGCHLD
-
-main.c:125:2: warning: implicit declaration of function 'umask' [-Wimplicit-function-declaration]
- umask(0);
- ^~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/main.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/main.c b/src/main.c
-index 3cf4072..cd34196 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -31,6 +31,7 @@
- #include <sys/ioctl.h>
- #include <sys/wait.h>
- #include <sys/param.h>
-+#include <sys/types.h>
- #include <pthread.h>
- #include <fcntl.h>
- #include <unistd.h>
-@@ -126,9 +127,9 @@ static void daemon_start(int ignsigcld)
-
- if (ignsigcld) {
- #ifdef SIGTSTP
-- signal(SIGCLD, sig_child);
-+ signal(SIGCHLD, sig_child);
- #else
-- signal(SIGCLD, SIG_IGN);
-+ signal(SIGCHLD, SIG_IGN);
- #endif
- }
- }
---
-2.16.2
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb
deleted file mode 100644
index 0c120bf..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Mobile IPv6 and NEMO for Linux"
-DESCRIPTION = "UMIP is an open source implementation of Mobile IPv6 and NEMO \
-Basic Support for Linux. It is released under the GPLv2 license. It supports \
-the following IETF RFC: RFC6275 (Mobile IPv6), RFC3963 (NEMO), RFC3776 and \
-RFC4877 (IPsec and IKEv2)."
-HOMEPAGE = "http://umip.org/"
-SECTION = "System Environment/Base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=073dc31ccb2ebed70db54f1e8aeb4c33"
-DEPENDS = "rpm indent-native"
-
-SRC_URI = "git://github.com/jlanza/umip \
- file://add-dependency-to-support-parallel-compilation.patch \
- file://mip6d \
- file://mip6d.service \
- file://0001-Add-format-string-to-fprintf-call.patch \
- file://0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch \
- file://0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch \
- "
-SRCREV = "7d67209cd1bba2dd0e183a0fa07eeef07964dd14"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF = "--enable-vt"
-
-inherit autotools-brokensep systemd update-rc.d
-
-INITSCRIPT_NAME = "mip6d"
-INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE_${PN} = "mip6d.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_install_append() {
- install -D -m 0755 ${WORKDIR}/mip6d ${D}${sysconfdir}/init.d/mip6d
- install -D -m 0644 ${WORKDIR}/mip6d.service ${D}${systemd_system_unitdir}/mip6d.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- ${D}${systemd_system_unitdir}/mip6d.service
-}
-
-RRECOMMENDS_${PN} = "kernel-module-mip6 kernel-module-ipv6"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
index 4365aa4..7284234 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
@@ -1,24 +1,21 @@
DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
LICENSE = "GPLv3 & GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=ebb5c50ab7cab4baeffba14977030c07 \
- file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LGPLv2.1;md5=6ab17b41640564434dda85c06b7124f7"
+ file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "udev libusb1"
+DEPENDS = "udev libusb1 libplist"
-inherit cmake pkgconfig gitpkgv
+inherit autotools pkgconfig gitpkgv systemd
PKGV = "${GITPKGVTAG}"
-SRCREV = "919587580c5e77f3936f3432115d2e10c7bac7c5"
-SRC_URI = "git://git.sukimashita.com/usbmuxd.git;protocol=http"
+SRCREV = "ee85938c21043ef5f7cd4dfbc7677f385814d4d8"
+SRC_URI = "git://github.com/libimobiledevice/usbmuxd;protocol=https"
S = "${WORKDIR}/git"
+EXTRA_OECONF += "--without-preflight"
+
FILES_${PN} += "${base_libdir}/udev/rules.d/"
-# fix usbmuxd installing files to /usr/lib64 on 64bit hosts:
-EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[plist] = "-DWANT_PLIST=1,-DWANT_PLIST=0,libplist"
+SYSTEMD_SERVICE_${PN} = "usbmuxd.service"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
index 3a71fb9..5154208 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
@@ -30,3 +30,5 @@
do_install() {
oe_runmake prefix=${D}/usr PPPDIR=${D}/etc/ppp/peers install
}
+# http://errors.yoctoproject.org/Errors/Details/186959/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch
new file mode 100644
index 0000000..19a2e26
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch
@@ -0,0 +1,557 @@
+From 0c35749891bf834c1f3c1c4c330266bd2f4733cc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 9 Sep 2018 10:40:09 -0700
+Subject: [PATCH] Forward port to OpenSSL 1.1.x
+
+* import patch from debian
+https://sources.debian.org/src/wvstreams/4.6.1-14/debian/patches/wvstreams_openssl1.1.patch
+Author: Reiner Herrmann <reiner@reiner-h.de>
+
+Upstream-Status: Submitted [https://github.com/apenwarr/wvstreams/pull/2]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ crypto/wvcrl.cc | 38 +++++++++++++-------------------------
+ crypto/wvdiffiehellman.cc | 30 +++++++++++++++++++-----------
+ crypto/wvdigest.cc | 16 ++++++++--------
+ crypto/wvocsp.cc | 35 +++++++++--------------------------
+ crypto/wvx509.cc | 31 ++++++++++++++++---------------
+ crypto/wvx509mgr.cc | 27 ++++++++++++++++-----------
+ include/wvdiffiehellman.h | 2 +-
+ include/wvdigest.h | 14 ++++++--------
+ include/wvtripledes.h | 10 +++++-----
+ 9 files changed, 93 insertions(+), 110 deletions(-)
+
+diff --git a/crypto/wvcrl.cc b/crypto/wvcrl.cc
+index fa00c76..880ad85 100644
+--- a/crypto/wvcrl.cc
++++ b/crypto/wvcrl.cc
+@@ -357,31 +357,19 @@ bool WvCRL::isrevoked(WvStringParm serial_number) const
+ ASN1_INTEGER *serial = serial_to_int(serial_number);
+ if (serial)
+ {
+- X509_REVOKED mayberevoked;
+- mayberevoked.serialNumber = serial;
+- if (crl->crl->revoked)
+- {
+- int idx = sk_X509_REVOKED_find(crl->crl->revoked,
+- &mayberevoked);
+- ASN1_INTEGER_free(serial);
+- if (idx >= 0)
+- {
+- debug("Certificate is revoked.\n");
+- return true;
+- }
+- else
+- {
+- debug("Certificate is not revoked.\n");
+- return false;
+- }
+- }
+- else
+- {
+- ASN1_INTEGER_free(serial);
+- debug("CRL does not have revoked list.\n");
+- return false;
+- }
+-
++ X509_REVOKED *revoked_entry = NULL;
++ int idx = X509_CRL_get0_by_serial(crl, &revoked_entry, serial);
++ ASN1_INTEGER_free(serial);
++ if (idx >= 1 || revoked_entry)
++ {
++ debug("Certificate is revoked.\n");
++ return true;
++ }
++ else
++ {
++ debug("Certificate is not revoked.\n");
++ return false;
++ }
+ }
+ else
+ debug(WvLog::Warning, "Can't convert serial number to ASN1 format. "
+diff --git a/crypto/wvdiffiehellman.cc b/crypto/wvdiffiehellman.cc
+index 7c0bf32..15cd104 100644
+--- a/crypto/wvdiffiehellman.cc
++++ b/crypto/wvdiffiehellman.cc
+@@ -39,24 +39,25 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen,
+ {
+ int problems;
+ int check;
+- {
++
+ info = DH_new();
+- info->p = BN_bin2bn(_key, _keylen, NULL);
++ BIGNUM *p = BN_bin2bn(_key, _keylen, NULL);
+ // info->p->top = 0;
+ // info->p->dmax = _keylen * 8 / BN_BITS2;
+ // info->p->neg = 0;
+ // info->p->flags = 0;
+
+- info->g = BN_new();
+- BN_set_word(info->g, generator);
++ BIGNUM *g = BN_new();
++ BN_set_word(g, generator);
+ // info->g->d = &generator;
+ // info->g->top = 0;
+ // info->g->dmax = 1;
+ // info->g->neg = 0;
+ // info->g->flags = 0;
+- }
+
+- check = BN_mod_word(info->p, 24);
++ DH_set0_pqg(info, p, NULL, g);
++
++ check = BN_mod_word(p, 24);
+ DH_check(info, &problems);
+ if (problems & DH_CHECK_P_NOT_PRIME)
+ log(WvLog::Error, "Using a composite number for authentication.\n");
+@@ -64,7 +65,7 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen,
+ log(WvLog::Error,"Using an unsafe prime number for authentication.\n");
+ if (problems & DH_NOT_SUITABLE_GENERATOR)
+ log(WvLog::Error, "Can you just use 2 instead of %s (%s)!!\n",
+- BN_bn2hex(info->g), check);
++ BN_bn2hex(g), check);
+ if (problems & DH_UNABLE_TO_CHECK_GENERATOR)
+ log(WvLog::Notice, "Using a strange argument for diffie-hellman.\n");
+ DH_generate_key(info);
+@@ -72,18 +73,23 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen,
+
+ int WvDiffieHellman::pub_key_len()
+ {
+- return BN_num_bytes(info->pub_key);
++ const BIGNUM *pub_key = NULL;
++ DH_get0_key(info, &pub_key, NULL);
++ return BN_num_bytes(pub_key);
+ }
+
+ int WvDiffieHellman::get_public_value(WvBuf &outbuf, int len)
+ {
+- int key_len = BN_num_bytes(info->pub_key);
++ const BIGNUM *pub_key = NULL;
++ DH_get0_key(info, &pub_key, NULL);
++
++ int key_len = BN_num_bytes(pub_key);
+ if (key_len < len)
+ len = key_len;
+
+ // alloca is stack allocated, don't free it.
+ unsigned char *foo = (unsigned char*)alloca(key_len);
+- BN_bn2bin(info->pub_key, foo);
++ BN_bn2bin(pub_key, foo);
+ outbuf.put(foo, len);
+
+ return len;
+@@ -91,8 +97,10 @@ int WvDiffieHellman::get_public_value(WvBuf &outbuf, int len)
+
+ bool WvDiffieHellman::create_secret(WvBuf &inbuf, size_t in_len, WvBuf& outbuf)
+ {
++ const BIGNUM *pub_key = NULL;
++ DH_get0_key(info, &pub_key, NULL);
+ unsigned char *foo = (unsigned char *)alloca(DH_size(info));
+- log("My public value\n%s\nYour public value\n%s\n",BN_bn2hex(info->pub_key),
++ log("My public value\n%s\nYour public value\n%s\n",BN_bn2hex(pub_key),
+ hexdump_buffer(inbuf.peek(0, in_len), in_len, false));
+ int len = DH_compute_key (foo, BN_bin2bn(inbuf.get(in_len), in_len, NULL),
+ info);
+diff --git a/crypto/wvdigest.cc b/crypto/wvdigest.cc
+index 150edee..73ebb5d 100644
+--- a/crypto/wvdigest.cc
++++ b/crypto/wvdigest.cc
+@@ -13,10 +13,10 @@
+
+ /***** WvEVPMDDigest *****/
+
+-WvEVPMDDigest::WvEVPMDDigest(const env_md_st *_evpmd) :
++WvEVPMDDigest::WvEVPMDDigest(const EVP_MD*_evpmd) :
+ evpmd(_evpmd), active(false)
+ {
+- evpctx = new EVP_MD_CTX;
++ evpctx = EVP_MD_CTX_new();
+ _reset();
+ }
+
+@@ -24,7 +24,7 @@ WvEVPMDDigest::WvEVPMDDigest(const env_md_st *_evpmd) :
+ WvEVPMDDigest::~WvEVPMDDigest()
+ {
+ cleanup();
+- delete evpctx;
++ EVP_MD_CTX_free(evpctx);
+ }
+
+
+@@ -60,7 +60,7 @@ bool WvEVPMDDigest::_reset()
+ // the typecast is necessary for API compatibility with different
+ // versions of openssl. None of them *actually* change the contents of
+ // the pointer.
+- EVP_DigestInit(evpctx, (env_md_st *)evpmd);
++ EVP_DigestInit(evpctx, evpmd);
+ active = true;
+ return true;
+ }
+@@ -79,7 +79,7 @@ void WvEVPMDDigest::cleanup()
+
+ size_t WvEVPMDDigest::digestsize() const
+ {
+- return EVP_MD_size((env_md_st *)evpmd);
++ return EVP_MD_size(evpmd);
+ }
+
+
+@@ -104,14 +104,14 @@ WvHMACDigest::WvHMACDigest(WvEVPMDDigest *_digest,
+ {
+ key = new unsigned char[keysize];
+ memcpy(key, _key, keysize);
+- hmacctx = new HMAC_CTX;
++ hmacctx = HMAC_CTX_new();
+ _reset();
+ }
+
+ WvHMACDigest::~WvHMACDigest()
+ {
+ cleanup();
+- delete hmacctx;
++ HMAC_CTX_free(hmacctx);
+ deletev key;
+ delete digest;
+ }
+@@ -145,7 +145,7 @@ bool WvHMACDigest::_finish(WvBuf &outbuf)
+ bool WvHMACDigest::_reset()
+ {
+ cleanup();
+- HMAC_Init(hmacctx, key, keysize, (env_md_st *)digest->getevpmd());
++ HMAC_Init(hmacctx, key, keysize, digest->getevpmd());
+ active = true;
+ return true;
+ }
+diff --git a/crypto/wvocsp.cc b/crypto/wvocsp.cc
+index ddb2de4..7d5da07 100644
+--- a/crypto/wvocsp.cc
++++ b/crypto/wvocsp.cc
+@@ -118,9 +118,10 @@ bool WvOCSPResp::check_nonce(const WvOCSPReq &req) const
+
+ bool WvOCSPResp::signedbycert(const WvX509 &cert) const
+ {
+- EVP_PKEY *skey = X509_get_pubkey(cert.cert);
+- int i = OCSP_BASICRESP_verify(bs, skey, 0);
+- EVP_PKEY_free(skey);
++ STACK_OF(X509) *sk = sk_X509_new_null();
++ sk_X509_push(sk, cert.cert);
++ int i = OCSP_basic_verify(bs, sk, NULL, OCSP_NOVERIFY);
++ sk_X509_free(sk);
+
+ if(i > 0)
+ return true;
+@@ -131,33 +132,15 @@ bool WvOCSPResp::signedbycert(const WvX509 &cert) const
+
+ WvX509 WvOCSPResp::get_signing_cert() const
+ {
+- if (!bs || !sk_X509_num(bs->certs))
++ const STACK_OF(X509) *certs = OCSP_resp_get0_certs(bs);
++ if (!bs || !sk_X509_num(certs))
+ return WvX509();
+
+- // note: the following bit of code is taken almost verbatim from
+- // ocsp_vfy.c in OpenSSL 0.9.8. Copyright and attribution should
+- // properly belong to them
+-
+- OCSP_RESPID *id = bs->tbsResponseData->responderId;
+-
+- if (id->type == V_OCSP_RESPID_NAME)
+- {
+- X509 *x = X509_find_by_subject(bs->certs, id->value.byName);
+- if (x)
+- return WvX509(X509_dup(x));
++ X509 *signer = NULL;
++ if (OCSP_resp_get0_signer(bs, &signer, NULL) == 1) {
++ return WvX509(X509_dup(signer));
+ }
+
+- if (id->value.byKey->length != SHA_DIGEST_LENGTH) return NULL;
+- unsigned char tmphash[SHA_DIGEST_LENGTH];
+- unsigned char *keyhash = id->value.byKey->data;
+- for (int i = 0; i < sk_X509_num(bs->certs); i++)
+- {
+- X509 *x = sk_X509_value(bs->certs, i);
+- X509_pubkey_digest(x, EVP_sha1(), tmphash, NULL);
+- if(!memcmp(keyhash, tmphash, SHA_DIGEST_LENGTH))
+- return WvX509(X509_dup(x));
+- }
+-
+ return WvX509();
+ }
+
+diff --git a/crypto/wvx509.cc b/crypto/wvx509.cc
+index e4925ce..984156c 100644
+--- a/crypto/wvx509.cc
++++ b/crypto/wvx509.cc
+@@ -974,7 +974,7 @@ static void add_aia(WvStringParm type, WvString identifier,
+ sk_ACCESS_DESCRIPTION_push(ainfo, acc);
+ acc->method = OBJ_txt2obj(type.cstr(), 0);
+ acc->location->type = GEN_URI;
+- acc->location->d.ia5 = M_ASN1_IA5STRING_new();
++ acc->location->d.ia5 = ASN1_IA5STRING_new();
+ unsigned char *cident
+ = reinterpret_cast<unsigned char *>(identifier.edit());
+ ASN1_STRING_set(acc->location->d.ia5, cident, identifier.len());
+@@ -1059,7 +1059,7 @@ void WvX509::set_crl_urls(WvStringList &urls)
+ GENERAL_NAMES *uris = GENERAL_NAMES_new();
+ GENERAL_NAME *uri = GENERAL_NAME_new();
+ uri->type = GEN_URI;
+- uri->d.ia5 = M_ASN1_IA5STRING_new();
++ uri->d.ia5 = ASN1_IA5STRING_new();
+ unsigned char *cident
+ = reinterpret_cast<unsigned char *>(i().edit());
+ ASN1_STRING_set(uri->d.ia5, cident, i().len());
+@@ -1162,10 +1162,11 @@ WvString WvX509::get_extension(int nid) const
+ #else
+ X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
+ #endif
++ ASN1_OCTET_STRING *ext_data_str = X509_EXTENSION_get_data(ext);
+ if (!method)
+ {
+ WvDynBuf buf;
+- buf.put(ext->value->data, ext->value->length);
++ buf.put(ext_data_str->data, ext_data_str->length);
+ retval = buf.getstr();
+ }
+ else
+@@ -1176,21 +1177,21 @@ WvString WvX509::get_extension(int nid) const
+ // even though it's const (at least as of version 0.9.8e).
+ // gah.
+ #if OPENSSL_VERSION_NUMBER >= 0x0090800fL
+- const unsigned char * ext_value_data = ext->value->data;
++ const unsigned char * ext_value_data = ext_data_str->data;
+ #else
+ unsigned char *ext_value_data = ext->value->data;
+ #endif
+ if (method->it)
+ {
+ ext_data = ASN1_item_d2i(NULL, &ext_value_data,
+- ext->value->length,
++ ext_data_str->length,
+ ASN1_ITEM_ptr(method->it));
+ TRACE("Applied generic conversion!\n");
+ }
+ else
+ {
+ ext_data = method->d2i(NULL, &ext_value_data,
+- ext->value->length);
++ ext_data_str->length);
+ TRACE("Applied method specific conversion!\n");
+ }
+
+@@ -1325,13 +1326,13 @@ bool WvX509::verify(WvBuf &original, WvStringParm signature) const
+ return false;
+
+ /* Verify the signature */
+- EVP_MD_CTX sig_ctx;
+- EVP_VerifyInit(&sig_ctx, EVP_sha1());
+- EVP_VerifyUpdate(&sig_ctx, original.peek(0, original.used()),
++ EVP_MD_CTX *sig_ctx = EVP_MD_CTX_new();
++ EVP_VerifyInit(sig_ctx, EVP_sha1());
++ EVP_VerifyUpdate(sig_ctx, original.peek(0, original.used()),
+ original.used());
+- int sig_err = EVP_VerifyFinal(&sig_ctx, sig_buf, sig_size, pk);
++ int sig_err = EVP_VerifyFinal(sig_ctx, sig_buf, sig_size, pk);
+ EVP_PKEY_free(pk);
+- EVP_MD_CTX_cleanup(&sig_ctx); // Again, not my fault...
++ EVP_MD_CTX_free(sig_ctx); // Again, not my fault...
+ if (sig_err != 1)
+ {
+ debug("Verify failed!\n");
+@@ -1450,19 +1451,19 @@ void WvX509::set_ski()
+ {
+ CHECK_CERT_EXISTS_SET("ski");
+
+- ASN1_OCTET_STRING *oct = M_ASN1_OCTET_STRING_new();
+- ASN1_BIT_STRING *pk = cert->cert_info->key->public_key;
++ ASN1_OCTET_STRING *oct = ASN1_OCTET_STRING_new();
++ ASN1_BIT_STRING *pk = X509_get0_pubkey_bitstr(cert);
+ unsigned char pkey_dig[EVP_MAX_MD_SIZE];
+ unsigned int diglen;
+
+ EVP_Digest(pk->data, pk->length, pkey_dig, &diglen, EVP_sha1(), NULL);
+
+- M_ASN1_OCTET_STRING_set(oct, pkey_dig, diglen);
++ ASN1_OCTET_STRING_set(oct, pkey_dig, diglen);
+ X509_EXTENSION *ext = X509V3_EXT_i2d(NID_subject_key_identifier, 0,
+ oct);
+ X509_add_ext(cert, ext, -1);
+ X509_EXTENSION_free(ext);
+- M_ASN1_OCTET_STRING_free(oct);
++ ASN1_OCTET_STRING_free(oct);
+ }
+
+
+diff --git a/crypto/wvx509mgr.cc b/crypto/wvx509mgr.cc
+index f249eec..156d3a4 100644
+--- a/crypto/wvx509mgr.cc
++++ b/crypto/wvx509mgr.cc
+@@ -350,6 +350,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const
+ return false;
+ }
+
++ uint32_t ex_flags = X509_get_extension_flags(cert);
++ uint32_t ex_kusage = X509_get_key_usage(cert);
+ if (cert == unsignedcert.cert)
+ {
+ debug("Self Signing!\n");
+@@ -362,8 +364,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const
+ return false;
+ }
+ #endif
+- else if (!((cert->ex_flags & EXFLAG_KUSAGE) &&
+- (cert->ex_kusage & KU_KEY_CERT_SIGN)))
++ else if (!((ex_flags & EXFLAG_KUSAGE) &&
++ (ex_kusage & KU_KEY_CERT_SIGN)))
+ {
+ debug("This Certificate is not allowed to sign certificates!\n");
+ return false;
+@@ -390,6 +392,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const
+
+ bool WvX509Mgr::signcrl(WvCRL &crl) const
+ {
++ uint32_t ex_flags = X509_get_extension_flags(cert);
++ uint32_t ex_kusage = X509_get_key_usage(cert);
+ if (!isok() || !crl.isok())
+ {
+ debug(WvLog::Warning, "Asked to sign CRL, but certificate or CRL (or "
+@@ -403,12 +407,12 @@ bool WvX509Mgr::signcrl(WvCRL &crl) const
+ "CRLs!\n");
+ return false;
+ }
+- else if (!((cert->ex_flags & EXFLAG_KUSAGE) &&
+- (cert->ex_kusage & KU_CRL_SIGN)))
++ else if (!((ex_flags & EXFLAG_KUSAGE) &&
++ (ex_kusage & KU_CRL_SIGN)))
+ {
+ debug("Certificate not allowed to sign CRLs! (%s %s)\n",
+- (cert->ex_flags & EXFLAG_KUSAGE),
+- (cert->ex_kusage & KU_CRL_SIGN));
++ (ex_flags & EXFLAG_KUSAGE),
++ (ex_kusage & KU_CRL_SIGN));
+ return false;
+ }
+ #endif
+@@ -454,7 +458,6 @@ WvString WvX509Mgr::sign(WvBuf &data) const
+ {
+ assert(rsa);
+
+- EVP_MD_CTX sig_ctx;
+ unsigned char sig_buf[4096];
+
+ EVP_PKEY *pk = EVP_PKEY_new();
+@@ -467,20 +470,22 @@ WvString WvX509Mgr::sign(WvBuf &data) const
+ return WvString::null;
+ }
+
+- EVP_SignInit(&sig_ctx, EVP_sha1());
+- EVP_SignUpdate(&sig_ctx, data.peek(0, data.used()), data.used());
++ EVP_MD_CTX *sig_ctx = EVP_MD_CTX_new();
++ EVP_SignInit(sig_ctx, EVP_sha1());
++ EVP_SignUpdate(sig_ctx, data.peek(0, data.used()), data.used());
+ unsigned int sig_len = sizeof(sig_buf);
+- int sig_err = EVP_SignFinal(&sig_ctx, sig_buf,
++ int sig_err = EVP_SignFinal(sig_ctx, sig_buf,
+ &sig_len, pk);
+ if (sig_err != 1)
+ {
+ debug("Error while signing.\n");
+ EVP_PKEY_free(pk);
++ EVP_MD_CTX_free(sig_ctx);
+ return WvString::null;
+ }
+
+ EVP_PKEY_free(pk);
+- EVP_MD_CTX_cleanup(&sig_ctx); // this isn't my fault ://
++ EVP_MD_CTX_free(sig_ctx); // this isn't my fault ://
+ WvDynBuf buf;
+ buf.put(sig_buf, sig_len);
+ debug("Signature size: %s\n", buf.used());
+diff --git a/include/wvdiffiehellman.h b/include/wvdiffiehellman.h
+index af75ffa..a2d001f 100644
+--- a/include/wvdiffiehellman.h
++++ b/include/wvdiffiehellman.h
+@@ -27,7 +27,7 @@ public:
+ bool create_secret(WvBuf &inbuf, size_t in_len, WvBuf& outbuf);
+
+ protected:
+- struct dh_st *info;
++ DH *info;
+ BN_ULONG generator;
+
+ private:
+diff --git a/include/wvdigest.h b/include/wvdigest.h
+index fdc39bd..f2eed40 100644
+--- a/include/wvdigest.h
++++ b/include/wvdigest.h
+@@ -9,10 +9,8 @@
+
+ #include "wvencoder.h"
+ #include <stdint.h>
++#include <openssl/evp.h>
+
+-struct env_md_st;
+-struct env_md_ctx_st;
+-struct hmac_ctx_st;
+
+ /**
+ * Superclass for all message digests.
+@@ -45,8 +43,8 @@ public:
+ class WvEVPMDDigest : public WvDigest
+ {
+ friend class WvHMACDigest;
+- const env_md_st *evpmd;
+- env_md_ctx_st *evpctx;
++ const EVP_MD *evpmd;
++ EVP_MD_CTX *evpctx;
+ bool active;
+
+ public:
+@@ -54,13 +52,13 @@ public:
+ virtual size_t digestsize() const;
+
+ protected:
+- WvEVPMDDigest(const env_md_st *_evpmd);
++ WvEVPMDDigest(const EVP_MD *_evpmd);
+ virtual bool _encode(WvBuf &inbuf, WvBuf &outbuf,
+ bool flush); // consumes input
+ virtual bool _finish(WvBuf &outbuf); // outputs digest
+ virtual bool _reset(); // supported: resets digest value
+
+- const env_md_st *getevpmd()
++ const EVP_MD *getevpmd()
+ { return evpmd; }
+
+ private:
+@@ -104,7 +102,7 @@ class WvHMACDigest : public WvDigest
+ WvEVPMDDigest *digest;
+ unsigned char *key;
+ size_t keysize;
+- hmac_ctx_st *hmacctx;
++ HMAC_CTX *hmacctx;
+ bool active;
+
+ public:
+diff --git a/include/wvtripledes.h b/include/wvtripledes.h
+index 185fe8a..a442e7a 100644
+--- a/include/wvtripledes.h
++++ b/include/wvtripledes.h
+@@ -70,11 +70,11 @@ protected:
+
+ private:
+ Mode mode;
+- des_cblock key;
+- des_key_schedule deskey1;
+- des_key_schedule deskey2;
+- des_key_schedule deskey3;
+- des_cblock ivec; // initialization vector
++ DES_cblock key;
++ DES_key_schedule deskey1;
++ DES_key_schedule deskey2;
++ DES_key_schedule deskey3;
++ DES_cblock ivec; // initialization vector
+ int ivecoff; // current offset into initvec
+ };
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
index 8e4fd03..616843d 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
@@ -1,16 +1,3 @@
-Index: wvstreams-4.6.1/crypto/wvx509.cc
-===================================================================
---- wvstreams-4.6.1.orig/crypto/wvx509.cc 2011-05-20 00:02:38.119136584 +0200
-+++ wvstreams-4.6.1/crypto/wvx509.cc 2011-05-20 00:02:26.035136589 +0200
-@@ -1157,7 +1157,7 @@
-
- if (ext)
- {
-- X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
-+ X509V3_EXT_METHOD *method = (X509V3_EXT_METHOD *)X509V3_EXT_get(ext);
- if (!method)
- {
- WvDynBuf buf;
Index: wvstreams-4.6.1/ipstreams/wvunixdgsocket.cc
===================================================================
--- wvstreams-4.6.1.orig/ipstreams/wvunixdgsocket.cc 2011-05-20 00:02:38.391136584 +0200
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch
new file mode 100644
index 0000000..1c7005c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch
@@ -0,0 +1,16 @@
+Index: wvstreams-4.6.1/crypto/wvx509.cc
+===================================================================
+--- wvstreams-4.6.1.orig/crypto/wvx509.cc
++++ wvstreams-4.6.1/crypto/wvx509.cc
+@@ -1157,7 +1157,11 @@ WvString WvX509::get_extension(int nid)
+
+ if (ext)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ const X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++#else
+ X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++#endif
+ if (!method)
+ {
+ WvDynBuf buf;
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
index e3d5e7d..b9f62da 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
@@ -21,6 +21,8 @@
file://0005-check-for-libexecinfo-during-configure.patch \
file://0001-build-fix-parallel-make.patch \
file://0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch \
+ file://openssl-buildfix.patch \
+ file://0001-Forward-port-to-OpenSSL-1.1.x.patch \
"
SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c"
@@ -34,23 +36,21 @@
EXTRA_OECONF = " --without-tcl --without-qt --without-pam --without-valgrind"
-PACKAGES_prepend = "libuniconf libuniconf-dbg "
-PACKAGES_prepend = "uniconfd uniconfd-dbg "
-PACKAGES_prepend = "libwvstreams-base libwvstreams-base-dbg "
-PACKAGES_prepend = "libwvstreams-extras libwvstreams-extras-dbg "
+PACKAGES_prepend = "libuniconf "
+PACKAGES_prepend = "uniconfd "
+PACKAGES_prepend = "libwvstreams-base "
+PACKAGES_prepend = "libwvstreams-extras "
PACKAGES_prepend = "${PN}-valgrind "
+RPROVIDES_${PN}-dbg += "libuniconf-dbg uniconfd-dbg libwvstreams-base-dbg libwvstreams-extras-dbg"
+
FILES_libuniconf = "${libdir}/libuniconf.so.*"
-FILES_libuniconf-dbg = "${libdir}/.debug/libuniconf.so.*"
FILES_uniconfd = "${sbindir}/uniconfd ${sysconfdir}/uniconf.conf ${localstatedir}/uniconf"
-FILES_uniconfd-dbg = "${sbindir}/.debug/uniconfd"
FILES_libwvstreams-base = "${libdir}/libwvutils.so.*"
-FILES_libwvstreams-base-dbg = "${libdir}/.debug/libwvutils.so.*"
FILES_libwvstreams-extras = "${libdir}/libwvbase.so.* ${libdir}/libwvstreams.so.*"
-FILES_libwvstreams-extras-dbg = "${libdir}/.debug/libwvbase.so.* ${libdir}/.debug/libwvstreams.so.*"
FILES_${PN}-valgrind = "${libdir}/valgrind/wvstreams.supp"
RDEPENDS_${PN} += "perl"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
index 4920bce..9aff59c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
@@ -11,10 +11,7 @@
S = "${WORKDIR}/git"
-do_install () {
- install -d ${D}/usr/include
- install -m 0755 ${S}/zmq.hpp ${D}/usr/include/
-}
+inherit cmake
PACKAGES = "${PN}-dev"
diff --git a/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-dhcp-include-if_arp.h-from-libc-instead-of-linux-hea.patch b/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-dhcp-include-if_arp.h-from-libc-instead-of-linux-hea.patch
new file mode 100644
index 0000000..ada6540
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-dhcp-include-if_arp.h-from-libc-instead-of-linux-hea.patch
@@ -0,0 +1,39 @@
+From d8236d1d789f496a193dae5d2a15d706b81f6482 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= <martin@geanix.com>
+Date: Thu, 12 Jul 2018 10:19:50 +0200
+Subject: [PATCH] dhcp: include if_arp.h from libc instead of linux headers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+To: ell@lists.01.org
+
+Compilation with musl libc fails due to redefinition of 'struct
+arp{req,req_old,hdr}' in linux/if_arp.h, since it is already defined and
+included in net/if_arp.h (through net/ethernet.h -> net/if_ether.h).
+
+The only symbols used from if_arp.h is ARPHRD_ETHER, so it should be
+safe to avoid the compile error by including the if_arp.h header from
+the c-library instead.
+
+Upstream-Status: Backport [https://lists.01.org/pipermail/ell/2018-July/001244.html]
+Signed-off-by: Martin Hundebøll <martin@geanix.com>
+---
+ ell/dhcp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ell/dhcp.c b/ell/dhcp.c
+index 6c90370..0d99f74 100644
+--- a/ell/dhcp.c
++++ b/ell/dhcp.c
+@@ -27,7 +27,7 @@
+ #include <netinet/ip.h>
+ #include <net/ethernet.h>
+ #include <linux/types.h>
+-#include <linux/if_arp.h>
++#include <net/if_arp.h>
+ #include <errno.h>
+ #include <time.h>
+
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch
deleted file mode 100644
index a172a93..0000000
--- a/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 4f8c68757b05d12392cd1a8aed174cb8e56f80e3 Mon Sep 17 00:00:00 2001
-From: "Maxin B. John" <maxin.john@intel.com>
-Date: Thu, 5 Apr 2018 17:19:44 +0300
-Subject: [PATCH] ell: fix build with musl libc
-
-musl libc doesn't implement TEMP_FAILURE_RETRY. Use the
-TEMP_FAILURE_RETRY from glibc to fix build.
-
-Upstream-Status: Submitted [https://lists.01.org/pipermail/ell/2018-April/001209.html]
-
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- ell/dbus.h | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/ell/dbus.h b/ell/dbus.h
-index a7c08d2..3ff5e0f 100644
---- a/ell/dbus.h
-+++ b/ell/dbus.h
-@@ -28,6 +28,16 @@
- #include <stddef.h>
- #include <stdarg.h>
-
-+/* taken from glibc unistd.h for musl support */
-+#ifndef TEMP_FAILURE_RETRY
-+#define TEMP_FAILURE_RETRY(expression) \
-+ (__extension__ \
-+ ({ long int __result; \
-+ do __result = (long int) (expression); \
-+ while (__result == -1L && errno == EINTR); \
-+ __result; }))
-+#endif
-+
- #ifdef __cplusplus
- extern "C" {
- #endif
---
-2.4.0
-
diff --git a/meta-openembedded/meta-oe/recipes-core/ell/ell_0.4.bb b/meta-openembedded/meta-oe/recipes-core/ell/ell_0.4.bb
deleted file mode 100644
index 1524bd6..0000000
--- a/meta-openembedded/meta-oe/recipes-core/ell/ell_0.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Embedded Linux Library"
-DESCRIPTION = "ELL is a DBUS library which provides DBUS bindings."
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
-SECTION = "libs"
-
-inherit autotools pkgconfig
-
-S = "${WORKDIR}/git"
-SRCREV = "b4aea06fabb2af1af01f861f8f394c75950b6d47"
-SRC_URI = "git://git.kernel.org/pub/scm/libs/ell/ell.git \
- file://0001-ell-fix-build-with-musl-libc.patch \
- "
-
-do_configure_prepend () {
- mkdir ${S}/build-aux
-}
-
-DEPENDS = "dbus"
diff --git a/meta-openembedded/meta-oe/recipes-core/ell/ell_0.8.bb b/meta-openembedded/meta-oe/recipes-core/ell/ell_0.8.bb
new file mode 100644
index 0000000..0428cab
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/ell/ell_0.8.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Embedded Linux Library"
+DESCRIPTION = "ELL is a DBUS library which provides DBUS bindings."
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
+SECTION = "libs"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
+SRCREV = "d572281caedef357c392a7c9aa65a3b21a18cfdb"
+SRC_URI = "git://git.kernel.org/pub/scm/libs/ell/ell.git"
+
+do_configure_prepend () {
+ mkdir -p ${S}/build-aux
+}
+
+DEPENDS = "dbus"
diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch
deleted file mode 100644
index 7899022..0000000
--- a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 838fe84c2ddcc9af51c34f751defbf3dd0ba8a06 Mon Sep 17 00:00:00 2001
-From: Kjell Ahlstedt <kjellahlstedt@gmail.com>
-Date: Wed, 20 Dec 2017 20:00:32 +0100
-Subject: [PATCH] Glib::Threads::Private: Fix gobj()
-
-Bug 791711
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Backport [https://github.com/GNOME/glibmm/commit/37d57ae9572b7d74aa385a30313eceae7f2d3fce]
- glib/glibmm/threads.h | 2 +-
- glib/src/threads.hg | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/glib/glibmm/threads.h b/glib/glibmm/threads.h
-index f7e2b82a..2c0cbe8c 100644
---- a/glib/glibmm/threads.h
-+++ b/glib/glibmm/threads.h
-@@ -657,7 +657,7 @@ public:
- */
- inline void replace(T* data);
-
-- GPrivate* gobj() { return gobject_; }
-+ GPrivate* gobj() { return &gobject_; }
-
- private:
- GPrivate gobject_;
-diff --git a/glib/src/threads.hg b/glib/src/threads.hg
-index 86d7a17b..c82a6130 100644
---- a/glib/src/threads.hg
-+++ b/glib/src/threads.hg
-@@ -628,7 +628,7 @@ public:
- */
- inline void replace(T* data);
-
-- GPrivate* gobj() { return gobject_; }
-+ GPrivate* gobj() { return &gobject_; }
-
- private:
- GPrivate gobject_;
diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb
deleted file mode 100644
index 4706432..0000000
--- a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "C++ bindings for the glib library"
-HOMEPAGE = "http://www.gtkmm.org/"
-SECTION = "libs"
-LICENSE = "LGPLv2.1 & GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \
- file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "mm-common glib-2.0 libsigc++-2.0 glib-2.0-native"
-inherit autotools pkgconfig
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-
-SRC_URI = " \
- ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/${SHRT_VER}/glibmm-${PV}.tar.xz \
- file://remove-examples.patch \
- file://0001-Glib-Threads-Private-Fix-gobj.patch \
-"
-SRC_URI[md5sum] = "dee5ebe309f5976c3dacfcf5c43a062b"
-SRC_URI[sha256sum] = "7cc28c732b04d70ed34f0c923543129083cfb90580ea4a2b4be5b38802bf6a4a"
-
-do_install_append() {
- install -d ${D}${datadir}/glibmm-2.4
- install -d ${D}${datadir}/aclocal
-
- install -m 0644 glib/glibmmconfig.h ${D}${datadir}/glibmm-2.4/
- install -m 0644 scripts/glibmm_check_perl.m4 ${D}${datadir}/aclocal/ || true
-
- for i in generate_wrap_init.pl gmmproc; do
- sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.4/proc/$i
- done
-}
-
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-dev += "${datadir}/glibmm-* ${libdir}/glibmm-2.4/include/ ${libdir}/glibmm-2.4/proc/ ${libdir}/giomm-2.4/include/"
-
-RDEPENDS_${PN}-dev = "perl"
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.56.0.bb b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.56.0.bb
new file mode 100644
index 0000000..2f048d2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.56.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "C++ bindings for the glib library"
+HOMEPAGE = "http://www.gtkmm.org/"
+SECTION = "libs"
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \
+ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "mm-common glib-2.0 libsigc++-2.0 glib-2.0-native"
+inherit autotools pkgconfig
+
+SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
+
+SRC_URI = " \
+ ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/${SHRT_VER}/glibmm-${PV}.tar.xz \
+ file://remove-examples.patch \
+"
+SRC_URI[md5sum] = "5aa7a60084fe3e01d746c96f4a115302"
+SRC_URI[sha256sum] = "6e74fcba0d245451c58fc8a196e9d103789bc510e1eee1a9b1e816c5209e79a9"
+
+do_install_append() {
+ install -d ${D}${datadir}/glibmm-2.4
+ install -d ${D}${datadir}/aclocal
+
+ install -m 0644 glib/glibmmconfig.h ${D}${datadir}/glibmm-2.4/
+ install -m 0644 scripts/glibmm_check_perl.m4 ${D}${datadir}/aclocal/ || true
+
+ for i in generate_wrap_init.pl gmmproc; do
+ sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.4/proc/$i
+ done
+}
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${datadir}/glibmm-* ${libdir}/glibmm-2.4/include/ ${libdir}/glibmm-2.4/proc/ ${libdir}/giomm-2.4/include/"
+
+RDEPENDS_${PN}-dev = "perl"
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-image-base.bb b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-image-base.bb
new file mode 100644
index 0000000..df92f16
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-image-base.bb
@@ -0,0 +1,7 @@
+SUMMARY = "meta-oe build test image"
+
+IMAGE_INSTALL = "packagegroup-core-boot"
+
+LICENSE = "MIT"
+
+inherit core-image
diff --git a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-image.bb b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-image.bb
new file mode 100644
index 0000000..1565549
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-image.bb
@@ -0,0 +1,5 @@
+require meta-oe-image-base.bb
+
+SUMMARY = "meta-oe build test image"
+
+IMAGE_INSTALL += "packagegroup-meta-oe"
diff --git a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
new file mode 100644
index 0000000..0166b9c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
@@ -0,0 +1,5 @@
+require meta-oe-image-base.bb
+
+SUMMARY = "meta-oe ptest test image"
+
+IMAGE_INSTALL += "packagegroup-meta-oe"
diff --git a/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb b/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb
deleted file mode 100644
index 591caa7..0000000
--- a/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-inherit gnomebase
-
-SRC_URI[archive.md5sum] = "d6f2a43589480d2315672da0b5839b56"
-SRC_URI[archive.sha256sum] = "20d1e7466ca4c83c92e29f9e8dfcc8e5721fdf1337f53157bed97be3b73b32a8"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.12.bb b/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.12.bb
new file mode 100644
index 0000000..4f91f31
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.12.bb
@@ -0,0 +1,9 @@
+inherit gnomebase
+
+SRC_URI[archive.md5sum] = "be1c61587db989c7677375a729b94672"
+SRC_URI[archive.sha256sum] = "ceffdcce1e5b52742884c233ec604bf6fded12eea9da077ce7a62c02c87e7c0b"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_git.bb b/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_git.bb
new file mode 100644
index 0000000..048f166
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_git.bb
@@ -0,0 +1,33 @@
+SUMMARY = "libnvdimm utility library"
+DESCRIPTION = "Utility library for managing the libnvdimm \
+(non-volatile memory device) sub-system in the Linux kernel. \
+The LIBNVDIMM subsystem provides support for three types of \
+NVDIMMs, namely,PMEM, BLK, and NVDIMM devices that can \
+simultaneously support both PMEM and BLK mode access."
+HOMEPAGE = "https://git.kernel.org/cgit/linux/kernel/git/nvdimm/nvdimm.git/tree/Documentation/nvdimm/nvdimm.txt?h=libnvdimm-for-next"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e66651809cac5da60c8b80e9e4e79e08"
+
+inherit autotools-brokensep pkgconfig module-base bash-completion systemd
+
+# v62
+SRCREV = "11f560f4048c1d38b7011a49566871a1e8a07c94"
+SRC_URI = "git://github.com/pmem/ndctl.git"
+
+DEPENDS = "virtual/kernel kmod udev json-c"
+
+PV = "v62+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "--enable-test --enable-destructive --disable-docs"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[systemd] = "--with-systemd-unit-dir=${systemd_system_unitdir}, --without-systemd-unit-dir,"
+
+do_configure_prepend() {
+ ${S}/autogen.sh
+}
+
+SYSTEMD_SERVICE_${PN} = "ndctl-monitor.service"
+
+COMPATIBLE_HOST='(x86_64).*'
diff --git a/meta-openembedded/meta-oe/recipes-core/opencl-headers/opencl-headers_git.bb b/meta-openembedded/meta-oe/recipes-core/opencl-headers/opencl-headers_git.bb
new file mode 100644
index 0000000..dec1bea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/opencl-headers/opencl-headers_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "OpenCL API Headers"
+DESCRIPTION = "OpenCL compute API headers from Khronos Group"
+LICENSE = "Khronos"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dcefc90f4c3c689ec0c2489064e7273b"
+SECTION = "base"
+
+S = "${WORKDIR}/git"
+SRCREV = "40c5d226c7c0706f0176884e9b94b3886679c983"
+SRC_URI = "git://github.com/KhronosGroup/OpenCL-Headers.git"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install () {
+ install -d ${D}${includedir}/CL/
+ install -m 0644 ${S}/CL/*.h ${D}${includedir}/CL
+}
diff --git a/meta-openembedded/meta-oe/recipes-core/opencl-icd-loader/opencl-icd-loader_git.bb b/meta-openembedded/meta-oe/recipes-core/opencl-icd-loader/opencl-icd-loader_git.bb
new file mode 100644
index 0000000..7c49c8d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/opencl-icd-loader/opencl-icd-loader_git.bb
@@ -0,0 +1,45 @@
+SUMMARY = "OpenCL ICD Loader"
+DESCRIPTION = "OpenCL compute ICD Loader from Khronos Group"
+LICENSE = "Khronos"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ec724732ce73269486574c718ef0c79b"
+SECTION = "base"
+
+inherit pkgconfig cmake
+
+S = "${WORKDIR}/git"
+SRCREV = "b342ff7b7f70a4b3f2cfc53215af8fa20adc3d86"
+SRC_URI = "git://github.com/KhronosGroup/OpenCL-ICD-Loader.git"
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/bin/icd_loader_test ${D}${bindir}/
+ chrpath -d ${D}${bindir}/icd_loader_test
+ install -d ${D}${libdir}
+ install -m 0644 ${B}/lib/libIcdLog.so ${D}${libdir}/
+ install -m 0644 ${B}/lib/libOpenCLDriverStub.so ${D}${libdir}/
+ chrpath -d ${D}${libdir}/libOpenCLDriverStub.so
+ install -m 0644 ${B}/lib/libOpenCL.so.1.2 ${D}${libdir}/
+ cd ${D}${libdir}
+ ln -s libOpenCL.so.1.2 libOpenCL.so.1
+ ln -s libOpenCL.so.1 libOpenCL.so
+}
+
+PACKAGES = "opencl-icd-loader opencl-icd-loader-dev"
+PACKAGES += "libicdlog libicdlog-dbg"
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+FILES_${PN} = " \
+ ${bindir}/icd_loader_test \
+ ${libdir}/libOpenCLDriverStub.so \
+ ${libdir}/libOpenCL.so.1.2 \
+"
+FILES_${PN}-dev = " \
+ ${libdir}/libOpenCL.so \
+ ${libdir}/libOpenCL.so.1 \
+"
+
+FILES_libicdlog = "${libdir}/libIcdLog.so"
+FILES_libicdlog-dbg = "${libdir}/.debug/libIcdLog.so"
+
+DEPENDS = "opencl-headers"
+RDEPENDS_${PN} = "libicdlog"
diff --git a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
new file mode 100644
index 0000000..08b4bbf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -0,0 +1,253 @@
+SUMMARY = "Meta-oe ptest packagegroups"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+ packagegroup-meta-oe \
+ packagegroup-meta-oe-benchmarks \
+ packagegroup-meta-oe-connectivity \
+ packagegroup-meta-oe-core \
+ packagegroup-meta-oe-crypto \
+ packagegroup-meta-oe-bsp \
+ packagegroup-meta-oe-dbs \
+ packagegroup-meta-oe-devtools \
+ packagegroup-meta-oe-extended \
+ packagegroup-meta-oe-kernel \
+ packagegroup-meta-oe-multimedia \
+ packagegroup-meta-oe-navigation \
+ packagegroup-meta-oe-security \
+ packagegroup-meta-oe-support \
+ packagegroup-meta-oe-test \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-gnome", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-graphics", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-meta-oe-ptest", "", d)} \
+'
+
+RDEPENDS_packagegroup-meta-oe = "\
+ packagegroup-meta-oe-benchmarks \
+ packagegroup-meta-oe-connectivity \
+ packagegroup-meta-oe-core \
+ packagegroup-meta-oe-crypto \
+ packagegroup-meta-oe-bsp \
+ packagegroup-meta-oe-dbs \
+ packagegroup-meta-oe-devtools \
+ packagegroup-meta-oe-extended \
+ packagegroup-meta-oe-kernel \
+ packagegroup-meta-oe-multimedia \
+ packagegroup-meta-oe-navigation \
+ packagegroup-meta-oe-security \
+ packagegroup-meta-oe-support \
+ packagegroup-meta-oe-test \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-gnome", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-graphics", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-meta-oe-ptest", "", d)} \
+"
+
+RDEPENDS_packagegroup-meta-oe-benchmarks = "\
+ analyze-suspend dhrystone iperf2 linpack phoronix-test-suite \
+ tiobench bonnie++ fio iperf2 iperf3 lmbench s-suite whetstone \
+ libc-bench memtester sysbench dbench iozone3 libhugetlbfs \
+ nbench-byte tinymembench \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 wayland opengl", "glmark2", "", d)} \
+"
+
+RDEPENDS_packagegroup-meta-oe-connectivity ="\
+ gammu hostapd irssi krb5 libev libimobiledevice \
+ libmbim libmtp libndp libqmi libtorrent \
+ libuv libwebsockets linuxptp lirc loudmouth \
+ modemmanager mosh \
+ paho-mqtt-c phonet-utils rabbitmq-c rfkill rtorrent \
+ ser2net smstools3 telepathy-glib telepathy-idle thrift \
+ usbmuxd wvstreams zabbix zeromq \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pulseadio bluez4", "libmikmod", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluez4", "obexftp openobex libnet wvdial", "", d)} \
+ "
+
+# dracut needs dracut
+RDEPENDS_packagegroup-meta-oe-core ="\
+ dbus-daemon-proxy libdbus-c++ eggdbus \
+ ell glibmm libsigc++-2.0 libxml++ distro-feed-configs \
+ mm-common opencl-headers opencl-icd-loader \
+ proxy-libintl usleep \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "dbus-broker ndctl", "", d)} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-crypto ="\
+ botan cryptsetup libkcapi libmcrypt \
+ libsodium pkcs11-helper \
+ "
+RDEPENDS_packagegroup-meta-oe-bsp ="\
+ acpitool cpufrequtils edac-utils efibootmgr \
+ efivar flashrom lmsensors lmsensors-config \
+ lsscsi nvme-cli pcmciautils pointercal \
+ "
+RDEPENDS_packagegroup-meta-oe-dbs ="\
+ leveldb libdbi mariadb mariadb-native \
+ mysql-python postgresql psqlodbc rocksdb soci \
+ sqlite \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluez4", "mongodb", "", d)} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-devtools ="\
+ android-tools android-tools-conf bootchart breakpad \
+ capnproto cgdb cscope ctags \
+ debootstrap dejagnu dmalloc flatbuffers \
+ giflib icon-slicer iptraf-ng jq jsoncpp jsonrpc json-spirit \
+ kconfig-frontends lemon libedit libgee libsombok3 \
+ libubox log4cplus lshw ltrace lua mcpp memstat mercurial \
+ mpich msgpack-c nlohmann-json nodejs openocd pax-utils \
+ ipc-run libdbd-mysql-perl libdbi-perl libio-pty-perl php \
+ protobuf protobuf-c python3-distutils-extra \
+ python-cpuset python-distutils-extra python-futures python-pygobject \
+ rapidjson serialcheck sip3 sip tclap uftrace uw-imap valijson \
+ xmlrpc-c yajl yasm \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geany geany-plugins glade tk", "", d)} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-extended ="\
+ byacc cfengine cfengine-masterfiles cmpi-bindings \
+ ddrescue dialog dumb-init enscript fluentbit \
+ haveged hexedit hiredis hplip hwloc indent iotop isomd5sum \
+ jansson konkretcmpi lcdproc libblockdev libcec libconfig \
+ libdivecomputer libplist libusbmuxd \
+ liblockfile liblogging liblognorm libmodbus libmodbus \
+ libpwquality libqb libuio \
+ lockfile-progs logwatch lprng mailx md5deep \
+ mozjs mraa nana nicstat \
+ p7zip p8platform libfile-fnmatch-perl polkit \
+ polkit-group-rule-datetime polkit-group-rule-network \
+ rarpd redis rrdtool libfastjson librelp rsyslog sanlock \
+ sblim-cmpi-devel sblim-sfc-common sblim-sfcc \
+ scsirastools sgpio smartmontools snappy can-isotp \
+ can-utils libsocketcan tipcutils tiptop \
+ tmux uml-utilities upm vlock volume-key wipe zlog zram \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 wayland opengl", "boinc-client", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", " libgxim t1lib gnuplot libwmf gtkmathview", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluez", "collectd", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-plugin-ccreds pam-plugin-ldapdb", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-ssh-agent-auth openwsman sblim-sfcb ", "", d)} \
+ ${@bb.utils.contains("BBPATH", "meta-python", "openlmi-tools", "", d)} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-gnome ="\
+ atkmm gnome-common gnome-doc-utils-stub gtkmm \
+ gtkmm3 pyxdg vte9 \
+ "
+
+RDEPENDS_packagegroup-meta-oe-graphics ="\
+ babl cairomm dietsplash directfb directfb-examples dnfdragora \
+ fbgrab fbida fontforge fvwm gegl gimp glm gphoto2 libgphoto2 \
+ gtkperf jasper leptonica libmng libsdl2-image libsdl2-mixer libsdl2-net \
+ libsdl-gfx libsdl-image libsdl-mixer libsdl-net libsdl-ttf \
+ libvncserver libyui libyui-ncurses lxdm numlockx openbox openjpeg \
+ packagegroup-fonts-truetype pangomm qrencode takao-fonts terminus-font \
+ tesseract tesseract-lang tigervnc tslib source-han-sans-cn-fonts \
+ source-han-sans-jp-fonts source-han-sans-kr-fonts source-han-sans-tw-fonts ttf-abyssinica \
+ libvdpau x11vnc xcursorgen xdotool \
+ bdftopcf iceauth sessreg setxkbmap twm xclock xfontsel xgamma xkbevd xkbprint xkbutils \
+ xlsatoms xlsclients xlsfonts xmag xmessage xrdb xrefresh xsetmode xsetroot xstdcmap \
+ xterm xwd xwud xbitmaps xorg-sgml-doctools \
+ font-adobe-100dpi font-adobe-utopia-100dpi \
+ font-bh-100dpi font-bh-lucidatypewriter-100dpi font-bitstream-100dpi font-cursor-misc \
+ font-misc-misc xorg-fonts-100dpi liblbxutil libxaw libxkbui libxpresent xserver-common \
+ ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "freeglut libsdl2-ttf", "", d)} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-kernel ="\
+ agent-proxy bpftool broadcom-bt-firmware cpupower \
+ crash ipmitool minicoredumper oprofile \
+ "
+
+RDEPENDS_packagegroup-meta-oe-multimedia ="\
+ alsa-oss audiofile cdrkit esound id3lib \
+ a2jmidid jack libass libburn libcdio libcdio-paranoia \
+ libdvdread libmms libmodplug libopus live555 \
+ mplayer-common opus-tools \
+ sound-theme-freedesktop v4l-utils yavta wavpack libvpx \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "xpext pavucontrol xsp", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pulseadio bluez4", "libmikmod", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad faad2 mpv", "", d)} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-navigation ="\
+ geoclue geos libspatialite proj \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "orrery", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluz4", "gpsd gpsd-machine-conf", "", d)} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-security ="\
+ tomoyo-tools \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "passwdqc", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluz5", "nmap", "", d)} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-shells ="\
+ dash tcsh zsh \
+ "
+
+NE10 = ""
+NE10_aarch64 = "ne10"
+NE10_arm7 = "ne10"
+
+RDEPENDS_packagegroup-meta-oe-support ="\
+ anthy asio atop augeas avro-c bdwgc frame grail \
+ ccid ceres-solver ckermit cpprest ctapi-common daemonize \
+ daemontools debsums devmem2 dfu-util dfu-util-native digitemp \
+ dstat eject enca epeg espeak espeak-data fbset fbset-modes \
+ fftw fltk-native gd gflags glog gnulib gperftools \
+ gpm gradm gsl gsoap hddtemp hidapi htop hunspell hwdata iksemel \
+ libinih inotify-tools joe lcms lcov libatasmart libbytesize \
+ libcereal libcyusbserial libee libeigen libestr libftdi libgit2 \
+ libgpiod libiio libjs-jquery libjs-sizzle liblinebreak libmicrohttpd \
+ libmxml libnih liboauth libol liboop libp11 libraw1394 libsmi libsoc libssh2 \
+ libssh libtar libteam libtinyxml2 libtinyxml libusbg libusb-compat libutempter \
+ links lio-utils lockdev log4c log4cpp logwarn libdevmapper lvm2 \
+ mailcap mbuffer mg minini \
+ multipath-tools nano neon nmon numactl onig openct openldap \
+ opensc wbxml2 p910nd pcsc-lite picocom libotr pidgin \
+ pngcheck poco poppler poppler-data portaudio-v19 pps-tools \
+ pv pxaregs raptor2 rdfind read-edid rsnapshot s3c24xx-gpio s3c64xx-gpio \
+ sjf2410-linux-native satyr sdparm pty-forward-native serial-forward \
+ sg3-utils sharutils smem spitools srecord ssiapi start-stop-daemon stm32flash \
+ syslog-ng system-config-keyboard tbb thin-provisioning-tools tokyocabinet \
+ tree udisks udisks2 uhubctl unixodbc upower uriparser usb-modeswitch \
+ usb-modeswitch-data usbpath uthash utouch-evemu utouch-frame \
+ vim vim-tiny websocketpp wmiconfig xdelta3 xdg-user-dirs xmlstarlet \
+ zbar zile \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geis toscoterm uim synergy utouch-mtview links-x11 fltk pidgin-otr", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pulseadio bluez4", "libcanberra", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 pam", "xorgxrdp xrdp", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluez4", "procmail", "", d)} \
+ ${NE10} \
+ "
+
+RDEPENDS_packagegroup-meta-oe-support-egl ="\
+ freerdp libnice opencv \
+ "
+
+RDEPENDS_packagegroup-meta-oe-test ="\
+ catch2 cppunit cunit cxxtest evtest fb-test \
+ fwts gtest pm-qa stress-ng testfloat \
+ "
+
+RDEPENDS_packagegroup-meta-oe-ptest = "\
+ zeromq-ptest \
+ libxml-ptest \
+ soci-ptest \
+ leveldb-ptest \
+ psqlodbc-ptest \
+ lua-ptest \
+ protobuf-ptest \
+ libdbi-ptest \
+ rsyslog-ptest \
+ oprofile-ptest \
+ libteam-ptest \
+ uthash-ptest \
+ mcelog-ptest \
+ openldap-ptest \
+ libee-ptest \
+ numactl-ptest \
+ poco-ptest \
+ "
diff --git a/meta-openembedded/meta-oe/recipes-core/plymouth/files/0002-Fix-build-with-glibc-2.28.patch b/meta-openembedded/meta-oe/recipes-core/plymouth/files/0002-Fix-build-with-glibc-2.28.patch
new file mode 100644
index 0000000..8638f75
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/plymouth/files/0002-Fix-build-with-glibc-2.28.patch
@@ -0,0 +1,34 @@
+From 0c0345303b7971d6cec478fd8b81d64bc1fbe0f6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 21 Aug 2018 23:26:45 +0200
+Subject: [PATCH] Fix build with >= glibc 2.28
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Stolen from [1]
+
+[1] https://bugs.freedesktop.org/show_bug.cgi?id=102191
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/libply-splash-core/ply-terminal.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/libply-splash-core/ply-terminal.c b/src/libply-splash-core/ply-terminal.c
+index a0954f2..f3b32fe 100644
+--- a/src/libply-splash-core/ply-terminal.c
++++ b/src/libply-splash-core/ply-terminal.c
+@@ -32,6 +32,7 @@
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <termios.h>
+ #include <unistd.h>
+ #include <wchar.h>
+--
+2.14.4
+
diff --git a/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb b/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
index 7e8d6e3..a5b16c9 100644
--- a/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
+++ b/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
@@ -19,6 +19,7 @@
SRC_URI = " \
http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.bz2 \
file://0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch \
+ file://0002-Fix-build-with-glibc-2.28.patch \
"
SRC_URI[md5sum] = "ff420994deb7ea203df678df92e7ab7d"
SRC_URI[sha256sum] = "2f0ce82042cf9c7eadd2517a1f74c8a85fa8699781d9f294a06eade29fbed57f"
diff --git a/meta-openembedded/meta-oe/recipes-core/toybox/toybox/OE-path-changes.patch b/meta-openembedded/meta-oe/recipes-core/toybox/toybox/OE-path-changes.patch
new file mode 100644
index 0000000..e42c22e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/toybox/toybox/OE-path-changes.patch
@@ -0,0 +1,195 @@
+diff --git a/toys/net/microcom.c b/toys/net/microcom.c
+index d34e1fe..a369e6c 100644
+--- a/toys/net/microcom.c
++++ b/toys/net/microcom.c
+@@ -2,7 +2,7 @@
+ *
+ * Copyright 2017 The Android Open Source Project.
+
+-USE_MICROCOM(NEWTOY(microcom, "<1>1s:X", TOYFLAG_BIN))
++USE_MICROCOM(NEWTOY(microcom, "<1>1s:X", TOYFLAG_USR|TOYFLAG_BIN))
+
+ config MICROCOM
+ bool "microcom"
+diff --git a/toys/other/blockdev.c b/toys/other/blockdev.c
+index 38e0993..c5d9fcd 100644
+--- a/toys/other/blockdev.c
++++ b/toys/other/blockdev.c
+@@ -4,7 +4,7 @@
+ *
+ * No Standard.
+
+-USE_BLOCKDEV(NEWTOY(blockdev, "<1>1(setro)(setrw)(getro)(getss)(getbsz)(setbsz)#<0(getsz)(getsize)(getsize64)(flushbufs)(rereadpt)",TOYFLAG_USR|TOYFLAG_BIN))
++USE_BLOCKDEV(NEWTOY(blockdev, "<1>1(setro)(setrw)(getro)(getss)(getbsz)(setbsz)#<0(getsz)(getsize)(getsize64)(flushbufs)(rereadpt)",TOYFLAG_SBIN))
+
+ config BLOCKDEV
+ bool "blockdev"
+diff --git a/toys/other/chrt.c b/toys/other/chrt.c
+index a1c37a0..d6db3a5 100644
+--- a/toys/other/chrt.c
++++ b/toys/other/chrt.c
+@@ -4,7 +4,7 @@
+ *
+ * Note: -ibrfo flags sorted to match SCHED positions for highest_bit()
+
+-USE_CHRT(NEWTOY(chrt, "^mp#<0iRbrfo[!ibrfo]", TOYFLAG_USR|TOYFLAG_SBIN))
++USE_CHRT(NEWTOY(chrt, "^mp#<0iRbrfo[!ibrfo]", TOYFLAG_USR|TOYFLAG_BIN))
+
+ config CHRT
+ bool "chrt"
+diff --git a/toys/other/hwclock.c b/toys/other/hwclock.c
+index 1d313e3..412582d 100644
+--- a/toys/other/hwclock.c
++++ b/toys/other/hwclock.c
+@@ -4,7 +4,7 @@
+ *
+ * No standard, but see Documentation/rtc.txt in the linux kernel source..
+ *
+-USE_HWCLOCK(NEWTOY(hwclock, ">0(fast)f(rtc):u(utc)l(localtime)t(systz)s(hctosys)r(show)w(systohc)[-ul][!rtsw]", TOYFLAG_USR|TOYFLAG_BIN))
++USE_HWCLOCK(NEWTOY(hwclock, ">0(fast)f(rtc):u(utc)l(localtime)t(systz)s(hctosys)r(show)w(systohc)[-ul][!rtsw]", TOYFLAG_SBIN))
+
+ config HWCLOCK
+ bool "hwclock"
+diff --git a/toys/other/modinfo.c b/toys/other/modinfo.c
+index 1178d67..966a9de 100644
+--- a/toys/other/modinfo.c
++++ b/toys/other/modinfo.c
+@@ -4,7 +4,7 @@
+ *
+ * TODO: cleanup
+
+-USE_MODINFO(NEWTOY(modinfo, "<1b:k:F:0", TOYFLAG_BIN))
++USE_MODINFO(NEWTOY(modinfo, "<1b:k:F:0", TOYFLAG_SBIN))
+
+ config MODINFO
+ bool "modinfo"
+diff --git a/toys/other/pmap.c b/toys/other/pmap.c
+index abb0a33..2acef02 100644
+--- a/toys/other/pmap.c
++++ b/toys/other/pmap.c
+@@ -5,7 +5,7 @@
+ *
+ * No Standard.
+
+-USE_PMAP(NEWTOY(pmap, "<1xq", TOYFLAG_BIN))
++USE_PMAP(NEWTOY(pmap, "<1xq", TOYFLAG_USR|TOYFLAG_BIN))
+
+ config PMAP
+ bool "pmap"
+diff --git a/toys/other/printenv.c b/toys/other/printenv.c
+index e8bcf29..65f62ed 100644
+--- a/toys/other/printenv.c
++++ b/toys/other/printenv.c
+@@ -2,7 +2,7 @@
+ *
+ * Copyright 2012 Georgi Chorbadzhiyski <georgi@unixsol.org>
+
+-USE_PRINTENV(NEWTOY(printenv, "0(null)", TOYFLAG_USR|TOYFLAG_BIN))
++USE_PRINTENV(NEWTOY(printenv, "0(null)", TOYFLAG_BIN))
+
+ config PRINTENV
+ bool "printenv"
+diff --git a/toys/other/taskset.c b/toys/other/taskset.c
+index 8ffdab7..89fd528 100644
+--- a/toys/other/taskset.c
++++ b/toys/other/taskset.c
+@@ -2,7 +2,7 @@
+ *
+ * Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>
+
+-USE_TASKSET(NEWTOY(taskset, "<1^pa", TOYFLAG_BIN|TOYFLAG_STAYROOT))
++USE_TASKSET(NEWTOY(taskset, "<1^pa", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT))
+ USE_NPROC(NEWTOY(nproc, "(all)", TOYFLAG_USR|TOYFLAG_BIN))
+
+ config NPROC
+diff --git a/toys/other/timeout.c b/toys/other/timeout.c
+index 9b93466..e1d0f4d 100644
+--- a/toys/other/timeout.c
++++ b/toys/other/timeout.c
+@@ -4,7 +4,7 @@
+ *
+ * No standard
+
+-USE_TIMEOUT(NEWTOY(timeout, "<2^vk:s: ", TOYFLAG_BIN))
++USE_TIMEOUT(NEWTOY(timeout, "<2^vk:s: ", TOYFLAG_USR|TOYFLAG_BIN))
+
+ config TIMEOUT
+ bool "timeout"
+diff --git a/toys/other/truncate.c b/toys/other/truncate.c
+index 142d3c7..40eb1e5 100644
+--- a/toys/other/truncate.c
++++ b/toys/other/truncate.c
+@@ -2,7 +2,7 @@
+ *
+ * Copyright 2011 Rob Landley <rob@landley.net>
+
+-USE_TRUNCATE(NEWTOY(truncate, "<1s:|c", TOYFLAG_BIN))
++USE_TRUNCATE(NEWTOY(truncate, "<1s:|c", TOYFLAG_USR|TOYFLAG_BIN))
+
+ config TRUNCATE
+ bool "truncate"
+diff --git a/toys/posix/nice.c b/toys/posix/nice.c
+index 4b587ee..9f7b119 100644
+--- a/toys/posix/nice.c
++++ b/toys/posix/nice.c
+@@ -4,7 +4,7 @@
+ *
+ * See http://opengroup.org/onlinepubs/9699919799/utilities/nice.html
+
+-USE_NICE(NEWTOY(nice, "^<1n#", TOYFLAG_USR|TOYFLAG_BIN))
++USE_NICE(NEWTOY(nice, "^<1n#", TOYFLAG_BIN))
+
+ config NICE
+ bool "nice"
+diff --git a/toys/posix/nl.c b/toys/posix/nl.c
+index 9b02bfa..41e1b89 100644
+--- a/toys/posix/nl.c
++++ b/toys/posix/nl.c
+@@ -7,7 +7,7 @@
+ * This implements a subset: only one logical page (-ip), no sections (-dfh).
+ * todo: -lv
+
+-USE_NL(NEWTOY(nl, "v#<1=1l#b:n:s:w#<0=6E", TOYFLAG_BIN))
++USE_NL(NEWTOY(nl, "v#<1=1l#b:n:s:w#<0=6E", TOYFLAG_USR|TOYFLAG_BIN))
+
+ config NL
+ bool "nl"
+diff --git a/toys/posix/paste.c b/toys/posix/paste.c
+index ea04f02..8972f71 100644
+--- a/toys/posix/paste.c
++++ b/toys/posix/paste.c
+@@ -6,7 +6,7 @@
+ *
+ * Deviations from posix: the FILE argument isn't mandatory, none == '-'
+
+-USE_PASTE(NEWTOY(paste, "d:s", TOYFLAG_BIN|TOYFLAG_LOCALE))
++USE_PASTE(NEWTOY(paste, "d:s", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
+
+ config PASTE
+ bool "paste"
+diff --git a/toys/posix/ps.c b/toys/posix/ps.c
+index aef2a7f..b559e09 100644
+--- a/toys/posix/ps.c
++++ b/toys/posix/ps.c
+@@ -44,7 +44,7 @@
+ * TODO: top: thread support and SMP
+ * TODO: pgrep -f only searches the amount of cmdline that fits in toybuf.
+
+-USE_PS(NEWTOY(ps, "k(sort)*P(ppid)*aAdeflMno*O*p(pid)*s*t*Tu*U*g*G*wZ[!ol][+Ae][!oO]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
++USE_PS(NEWTOY(ps, "k(sort)*P(ppid)*aAdeflMno*O*p(pid)*s*t*Tu*U*g*G*wZ[!ol][+Ae][!oO]", TOYFLAG_BIN|TOYFLAG_LOCALE))
+ // stayroot because iotop needs root to read other process' proc/$$/io
+ USE_TOP(NEWTOY(top, ">0m" "O*Hk*o*p*u*s#<1d#=3<1n#<1bq[!oO]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
+ USE_IOTOP(NEWTOY(iotop, ">0AaKO" "k*o*p*u*s#<1=7d#=3<1n#<1bq", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT|TOYFLAG_LOCALE))
+diff --git a/toys/posix/sed.c b/toys/posix/sed.c
+index cf7d15e..130ac08 100644
+--- a/toys/posix/sed.c
++++ b/toys/posix/sed.c
+@@ -10,7 +10,7 @@
+ * TODO: handle error return from emit(), error_msg/exit consistently
+ * What's the right thing to do for -i when write fails? Skip to next?
+
+-USE_SED(NEWTOY(sed, "(help)(version)e*f*inEr[+Er]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE|TOYFLAG_NOHELP))
++USE_SED(NEWTOY(sed, "(help)(version)e*f*inEr[+Er]", TOYFLAG_BIN|TOYFLAG_LOCALE|TOYFLAG_NOHELP))
+
+ config SED
+ bool "sed"
diff --git a/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb b/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb
index 347c285..7e8e7b2 100644
--- a/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb
+++ b/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb
@@ -1,11 +1,13 @@
SUMMARY = "Toybox combines common utilities together into a single executable."
HOMEPAGE = "http://www.landley.net/toybox/"
-DEPENDS = "attr"
+DEPENDS = "attr virtual/crypt"
LICENSE = "BSD-0-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f0b8b3dd6431bcaa245da0a08bd0d511"
-SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz"
+SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz \
+ file://OE-path-changes.patch \
+ "
SRC_URI[md5sum] = "a8bb502a1be941f06dd2644fff25f547"
SRC_URI[sha256sum] = "3ada450ac1eab1dfc352fee915ea6129b9a4349c1885f1394b61bd2d89a46c04"
diff --git a/meta-openembedded/meta-oe/recipes-core/usleep/usleep_1.0.bb b/meta-openembedded/meta-oe/recipes-core/usleep/usleep_1.0.bb
index 9e9c7ed..370dd4a 100644
--- a/meta-openembedded/meta-oe/recipes-core/usleep/usleep_1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-core/usleep/usleep_1.0.bb
@@ -22,3 +22,12 @@
install -m 0755 ${WORKDIR}/usleep ${D}${base_bindir}
install -m 0644 ${WORKDIR}/usleep.1 ${D}${mandir}/man1
}
+
+inherit update-alternatives
+
+ALTERNATIVE_${PN} = "usleep"
+ALTERNATIVE_PRIORITY = "80"
+ALTERNATIVE_LINK_NAME[usleep] = "${base_bindir}/usleep"
+
+ALTERNATIVE_${PN}-doc = "usleep.1"
+ALTERNATIVE_LINK_NAME[usleep.1] = "${mandir}/man1/usleep.1"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.7.0.bb b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.7.0.bb
new file mode 100644
index 0000000..92853d0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.7.0.bb
@@ -0,0 +1,55 @@
+# Copyright (C) 2018 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Crypto and TLS for C++11"
+HOMEPAGE = "https://botan.randombit.net"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://license.txt;md5=bf361fc63df3fa25652ee82c43b7601a"
+SECTION = "libs"
+
+
+#v2.7.0
+SRCREV = "5874000d42c338ec95a7ff24cdc0c64e70f967b5"
+SRC_URI = "git://github.com/randombit/botan.git"
+
+S = "${WORKDIR}/git"
+
+inherit python3native siteinfo lib_package
+
+CPU ?= "${TARGET_ARCH}"
+CPU_x86 = "x86_32"
+CPU_armv7a = "armv7"
+CPU_armv7ve = "armv7"
+
+do_configure() {
+ python3 ${S}/configure.py \
+ --prefix="${D}${prefix}" \
+ --cpu="${CPU}" \
+ --cc-bin="${CXX}" \
+ --cxxflags="${CXXFLAGS}" \
+ --ldflags="${LDFLAGS}" \
+ --with-endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
+ ${@bb.utils.contains("TUNE_FEATURES","neon","","--disable-neon",d)} \
+ --with-sysroot-dir=${STAGING_DIR_TARGET} \
+ --with-build-dir="${B}" \
+ --optimize-for-size \
+ --with-stack-protector \
+ --enable-shared-library \
+ --with-python-versions=3 \
+ ${EXTRA_OECONF}
+}
+
+do_compile() {
+ oe_runmake
+}
+do_install() {
+ oe_runmake install
+ sed -i -e "s|${D}||g" ${D}${libdir}/pkgconfig/botan-2.pc
+}
+
+PACKAGES += "${PN}-python3"
+
+FILES_${PN}-python3 = "${libdir}/python3"
+
+RDEPENDS_${PN}-python3 += "python3"
+
diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_1.7.4.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_1.7.4.bb
deleted file mode 100644
index c13b764..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_1.7.4.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes"
-DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \
-device-mapper mappings. These include plain dm-crypt volumes and \
-LUKS volumes. The difference is that LUKS uses a metadata header \
-and can hence offer more features than plain dm-crypt. On the other \
-hand, the header is visible and vulnerable to damage."
-HOMEPAGE = "http://code.google.com/p/cryptsetup/"
-SECTION = "console"
-LICENSE = "GPL-2.0-with-OpenSSL-exception"
-LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
-
-DEPENDS = "util-linux libdevmapper popt libgcrypt"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v1.7/${BP}.tar.xz"
-SRC_URI[md5sum] = "058ed35c5b776032c2a036838f9e22a7"
-SRC_URI[sha256sum] = "7ccf893ef79a38fb92d61f03c17b964982119f5319cdaa85a1335b8558cca016"
-
-inherit autotools gettext pkgconfig
-
-# Use openssl because libgcrypt drops root privileges
-# if libgcrypt is linked with libcap support
-PACKAGECONFIG ??= "openssl"
-PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
-PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt"
-
-RRECOMMENDS_${PN} = "kernel-module-aes-generic \
- kernel-module-dm-crypt \
- kernel-module-md5 \
- kernel-module-cbc \
- kernel-module-sha256-generic \
- kernel-module-xts \
-"
-
-EXTRA_OECONF = "--enable-static"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.0.4.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.0.4.bb
new file mode 100644
index 0000000..cc7bc6e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.0.4.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes"
+DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \
+device-mapper mappings. These include plain dm-crypt volumes and \
+LUKS volumes. The difference is that LUKS uses a metadata header \
+and can hence offer more features than plain dm-crypt. On the other \
+hand, the header is visible and vulnerable to damage."
+HOMEPAGE = "https://gitlab.com/cryptsetup/cryptsetup"
+SECTION = "console"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
+
+DEPENDS = "util-linux libdevmapper popt libgcrypt json-c"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v2.0/${BP}.tar.xz"
+SRC_URI[md5sum] = "ed42b31f67d05b05e392d1943d467b8d"
+SRC_URI[sha256sum] = "9d3a3c7033293e0c97f0ad0501fd5b4d4913ae497cbf70cca06633ccc54b5734"
+
+inherit autotools gettext pkgconfig
+
+# Use openssl because libgcrypt drops root privileges
+# if libgcrypt is linked with libcap support
+PACKAGECONFIG ??= "openssl"
+PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
+PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt"
+
+RRECOMMENDS_${PN} = "kernel-module-aes-generic \
+ kernel-module-dm-crypt \
+ kernel-module-md5 \
+ kernel-module-cbc \
+ kernel-module-sha256-generic \
+ kernel-module-xts \
+"
+
+EXTRA_OECONF = "--enable-static"
+
+FILES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/cryptsetup.conf', '', d)}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/engine-pkcs11/engine-pkcs11_0.2.2.bb b/meta-openembedded/meta-oe/recipes-crypto/engine-pkcs11/engine-pkcs11_0.2.2.bb
deleted file mode 100644
index bc79f35..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/engine-pkcs11/engine-pkcs11_0.2.2.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "A PKCS"
-DESCRIPTION = "\
-Engine_pkcs11 is an implementation of an engine for OpenSSL. It can be \
-loaded using code, config file or command line and will pass any function \
-call by openssl to a PKCS cards and software for using smart cards in PKCS"
-HOMEPAGE = "https://github.com/OpenSC/engine_pkcs11"
-SECTION = "Development/Libraries"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://src/engine_pkcs11.h;beginline=1;endline=26;md5=973a19f8a6105de047f2adfbbfc04c33"
-DEPENDS = "openssl libp11"
-
-SRC_URI = "git://github.com/OpenSC/engine_pkcs11.git"
-SRCREV = "132fcf2c8b319f9f4b2ebdc8dcb54ff496dc0519"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "\
- --disable-static \
- --libdir ${libdir}/engines \
-"
-
-do_install_append () {
- rm -f ${D}${libdir}/engines/libpkcs11.la
-}
-
-FILES_${PN} += "${libdir}/engines/libpkcs11${SOLIBSDEV}"
-FILES_${PN}-dbg += "${libdir}/engines/.debug/"
-
-RDEPENDS_${PN} += "openssl libp11 opensc"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb
new file mode 100644
index 0000000..a93ddc8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Linux Kernel Crypto API User Space Interface Library"
+HOMEPAGE = "http://www.chronox.de/libkcapi.html"
+LICENSE = "BSD | GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d0421cf231423bda10cea691b613e866"
+
+DEPENDS = "libtool"
+
+S = "${WORKDIR}/git"
+# Use v1.1.3 with changes on top for building in OE
+SRCREV = "1c736c43eb71fbb5640d00efaf34a1edf1972c49"
+PV = "1.1.3+git${SRCPV}"
+SRC_URI = " \
+ git://github.com/smuellerDD/libkcapi.git \
+"
+
+inherit autotools
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[testapp] = "--enable-kcapi-test,,,"
+PACKAGECONFIG[apps] = "--enable-kcapi-speed --enable-kcapi-hasher --enable-kcapi-rngapp --enable-kcapi-encapp --enable-kcapi-dgstapp,,,"
+
+do_install_append() {
+ # bindir contains testapp and apps. However it is always created, even
+ # when no binaries are installed (empty bin_PROGRAMS in Makefile.am),
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+}
+
+CPPFLAGS_append_libc-musl_toolchain-clang = " -Wno-error=sign-compare"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb b/meta-openembedded/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
index 2a133c6..be413a1 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
@@ -9,4 +9,7 @@
SRC_URI[md5sum] = "0821830d930a86a5c69110837c55b7da"
SRC_URI[sha256sum] = "e4eb6c074bbab168ac47b947c195ff8cef9d51a211cdd18ca9c9ef34d27a373e"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/mcrypt/files/Libmcrypt/"
+UPSTREAM_CHECK_REGEX = "Libmcrypt/(?P<pver>\d+(\.\d+)+)/"
+
inherit autotools-brokensep gettext binconfig
diff --git a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb
deleted file mode 100644
index db71bd0..0000000
--- a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "A library for using PKCS"
-DESCRIPTION = "pkcs11-helper is a library that simplifies the interaction with PKCS \
-providers for end-user applications using a simple API and optional OpenSSL \
-engine. The library allows using multiple PKCS enumerating available token \
-certificates, or selecting a certificate directly by serialized id, handling \
-card removal and card insert events, handling card ie-insert to a different \
-slot, supporting session expiration and much more all using a simple API."
-
-HOMEPAGE = "http://www.opensc-project.org/pkcs11-helper/"
-SECTION = "Development/Libraries"
-
-LICENSE = "GPLv2 & BSD"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=4948810631bcac142af53d32df5b6ee1 \
- file://COPYING.GPL;md5=8a71d0475d08eee76d8b6d0c6dbec543 \
- file://COPYING.BSD;md5=f79f90ea7a106796af80b5d05f1f8da1 \
-"
-SRC_URI = "git://github.com/OpenSC/${BPN}.git"
-SRC_URI[md5sum] = "9f62af9f475901b89355266141306673"
-SRC_URI[sha256sum] = "494ec59c93e7c56c528f335d9353849e2e7c94a6b1b41c89604694e738113386"
-
-S = "${WORKDIR}/git"
-SRCREV = "e7adf8f35be232a4f04c53b4ac409be52792093e"
-
-DEPENDS = "zlib nettle gnutls gmp openssl nss nspr"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-static"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.25.1.bb b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.25.1.bb
new file mode 100644
index 0000000..271f2ea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.25.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A library for using PKCS"
+DESCRIPTION = "pkcs11-helper is a library that simplifies the interaction with PKCS \
+providers for end-user applications using a simple API and optional OpenSSL \
+engine. The library allows using multiple PKCS enumerating available token \
+certificates, or selecting a certificate directly by serialized id, handling \
+card removal and card insert events, handling card ie-insert to a different \
+slot, supporting session expiration and much more all using a simple API."
+
+HOMEPAGE = "http://www.opensc-project.org/pkcs11-helper/"
+SECTION = "Development/Libraries"
+
+LICENSE = "GPLv2 & BSD"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=30f10d22cfb1ba98ccd714a41ad3311a \
+ file://COPYING.GPL;md5=8a71d0475d08eee76d8b6d0c6dbec543 \
+ file://COPYING.BSD;md5=66b7a37c3c10483c1fd86007726104d7 \
+"
+SRC_URI = "git://github.com/OpenSC/${BPN}.git"
+
+S = "${WORKDIR}/git"
+# v1.25.1
+SRCREV = "2713cb09dcd90104cb7bceb5f14cd6f90834f7b1"
+
+DEPENDS = "zlib nettle gnutls gmp openssl nss nspr"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-static"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
index 5da3448..4d7ac3a 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
@@ -18,19 +18,16 @@
src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
-index 2b3f76db86..cc80305775 100755
---- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
-+++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
-@@ -42,7 +42,7 @@
- #include <ctype.h>
+Index: git/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+===================================================================
+--- git.orig/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
++++ git/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+@@ -43,7 +43,7 @@
+ #if 0 // MongoDB Modification -- just `#include <stddef.h>`
// Fix system header issue on Sun solaris and define required type by ourselves
-#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__)
+#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) && !defined(__DEFINED_wchar_t)
typedef int wchar_t;
#endif
-
---
-2.14.1
-
+ #else
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch
new file mode 100644
index 0000000..070411a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch
@@ -0,0 +1,33 @@
+From 5994023a03634dfc0318976c293e7391fe6aa060 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 24 Aug 2018 12:56:22 -0700
+Subject: [PATCH 1/2] Support deprecated resolver functions
+
+Needed for musl libc
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/dns_query_posix-impl.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/mongo/util/dns_query_posix-impl.h b/src/mongo/util/dns_query_posix-impl.h
+index d19958010c..bbca3309ed 100644
+--- a/src/mongo/util/dns_query_posix-impl.h
++++ b/src/mongo/util/dns_query_posix-impl.h
+@@ -53,6 +53,12 @@
+
+ #include <boost/noncopyable.hpp>
+
++#ifndef res_ninit
++#define res_nclose(arg)
++#define res_ninit(arg) res_init()
++#define res_nsearch(sta, nam, clas, typ, ans, alen) res_search(nam, clas, typ, ans, alen)
++#endif
++
+ namespace mongo {
+ namespace dns {
+ // The anonymous namespace is safe, in this header, as it is not really a header. It is only used
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
index aa01e95..a6d721a 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
@@ -13,7 +13,7 @@
===================================================================
--- git.orig/SConstruct
+++ git/SConstruct
-@@ -548,6 +548,7 @@ def variable_arch_converter(val):
+@@ -564,6 +564,7 @@ def variable_arch_converter(val):
'amd64': 'x86_64',
'emt64': 'x86_64',
'x86': 'i386',
@@ -21,7 +21,7 @@
}
val = val.lower()
-@@ -627,7 +628,8 @@ env_vars.Add(
+@@ -652,7 +653,8 @@ env_vars.Add(
)
env_vars.Add('CC',
@@ -31,7 +31,7 @@
env_vars.Add('CCFLAGS',
help='Sets flags for the C and C++ compiler',
-@@ -647,7 +649,8 @@ env_vars.Add('CPPPATH',
+@@ -672,7 +674,8 @@ env_vars.Add('CPPPATH',
converter=variable_shlex_converter)
env_vars.Add('CXX',
@@ -41,19 +41,19 @@
env_vars.Add('CXXFLAGS',
help='Sets flags for the C++ compiler',
-@@ -895,6 +898,7 @@ envDict = dict(BUILD_ROOT=buildDir,
+@@ -961,6 +964,7 @@ envDict = dict(BUILD_ROOT=buildDir,
)
env = Environment(variables=env_vars, **envDict)
+env.PrependENVPath('PATH', os.getenv('PATH'))
del envDict
- env.AddMethod(env_os_is_wrapper, 'TargetOSIs')
+ env.AddMethod(mongo_platform.env_os_is_wrapper, 'TargetOSIs')
Index: git/src/mongo/util/SConscript
===================================================================
--- git.orig/src/mongo/util/SConscript
+++ git/src/mongo/util/SConscript
-@@ -274,6 +274,8 @@ if env['MONGO_ALLOCATOR'] == 'tcmalloc':
+@@ -329,6 +329,8 @@ if env['MONGO_ALLOCATOR'] == 'tcmalloc':
'MONGO_HAVE_GPERFTOOLS_SIZE_CLASS_STATS'
]
)
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
index f8c419d..c17ebf1 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
@@ -9,34 +9,25 @@
src/mongo/util/processinfo_linux.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
-diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp
-index 910015215e..bf8c1ffd15 100644
---- a/src/mongo/util/processinfo_linux.cpp
-+++ b/src/mongo/util/processinfo_linux.cpp
-@@ -40,7 +40,7 @@
- #include <sys/mman.h>
- #include <sys/utsname.h>
+Index: git/src/mongo/util/processinfo_linux.cpp
+===================================================================
+--- git.orig/src/mongo/util/processinfo_linux.cpp
++++ git/src/mongo/util/processinfo_linux.cpp
+@@ -44,10 +44,10 @@
#include <unistd.h>
--#ifdef __UCLIBC__
-+#ifndef __GLIBC__
- #include <features.h>
- #else
+ #ifdef __BIONIC__
+ #include <android/api-level.h>
+-#elif __UCLIBC__
+-#include <features.h>
+-#else
++#elif defined(__GLIBC__) && !defined(__UCLIBC__)
#include <gnu/libc-version.h>
-@@ -451,11 +451,13 @@ double ProcessInfo::getSystemMemoryPressurePercentage() {
- }
++#else
++#include <features.h>
+ #endif
- void ProcessInfo::getExtraInfo(BSONObjBuilder& info) {
-+#if defined(__GLIBC__)
- LinuxProc p(_pid);
- if (p._maj_flt <= std::numeric_limits<long long>::max())
- info.appendNumber("page_faults", static_cast<long long>(p._maj_flt));
- else
- info.appendNumber("page_faults", static_cast<double>(p._maj_flt));
-+#endif
- }
-
- /**
-@@ -491,7 +493,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() {
+ #include <boost/filesystem.hpp>
+@@ -503,7 +503,7 @@ void ProcessInfo::SystemInfo::collectSys
stringstream ss;
ss << "uClibc-" << __UCLIBC_MAJOR__ << "." << __UCLIBC_MINOR__ << "." << __UCLIBC_SUBLEVEL__;
bExtra.append("libcVersion", ss.str());
@@ -45,6 +36,3 @@
bExtra.append("libcVersion", gnu_get_libc_version());
#endif
if (!verSig.empty())
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
index 389b302..99edad3 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
@@ -44,7 +44,7 @@
if (!parseNumberFromString(stringValue, &value).isOK()) {
value = 0;
-@@ -426,7 +426,7 @@ Status parseProcDiskStats(const std::vec
+@@ -522,7 +522,7 @@ Status parseProcDiskStats(const std::vec
StringData data,
BSONObjBuilder* builder) {
bool foundKeys = false;
@@ -53,7 +53,7 @@
stats.reserve(kDiskFieldCount);
using string_split_iterator = boost::split_iterator<StringData::const_iterator>;
-@@ -501,7 +501,7 @@ Status parseProcDiskStats(const std::vec
+@@ -597,7 +597,7 @@ Status parseProcDiskStats(const std::vec
StringData stringValue((*partIt).begin(), (*partIt).end());
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
deleted file mode 100644
index 0334d99..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a4dfc92ff342e59596ab64267a8d4f22f173c23b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 2 Sep 2017 12:40:41 -0700
-Subject: [PATCH 1/4] Use strerror_r only on glibc systems
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/mongo/util/log.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mongo/util/log.cpp b/src/mongo/util/log.cpp
-index 1957eb4791..ddf3908818 100644
---- a/src/mongo/util/log.cpp
-+++ b/src/mongo/util/log.cpp
-@@ -101,7 +101,7 @@ string errnoWithDescription(int errNumber) {
- char buf[kBuflen];
- char* msg{nullptr};
-
--#if defined(__GNUC__) && defined(_GNU_SOURCE)
-+#if defined(__GNUC__) && defined(_GNU_SOURCE) && defined(__GLIBC__)
- msg = strerror_r(errNumber, buf, kBuflen);
- #elif defined(_WIN32)
-
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch
new file mode 100644
index 0000000..085fa50
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch
@@ -0,0 +1,39 @@
+From 98543889f7ba38c02eb7cd9822f45e27d619edd6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 24 Aug 2018 13:07:01 -0700
+Subject: [PATCH 2/2] Fix default stack size to 256K
+
+On musl default stack size is ~80K which is too low
+for mongodb
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../platform/stack_locator_pthread_getattr_np.cpp | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/mongo/platform/stack_locator_pthread_getattr_np.cpp b/src/mongo/platform/stack_locator_pthread_getattr_np.cpp
+index 648d26a41c..6e398f00c9 100644
+--- a/src/mongo/platform/stack_locator_pthread_getattr_np.cpp
++++ b/src/mongo/platform/stack_locator_pthread_getattr_np.cpp
+@@ -35,6 +35,16 @@
+ #include "mongo/util/assert_util.h"
+ #include "mongo/util/scopeguard.h"
+
++__attribute__((constructor))
++static void set_default_stack_size(void)
++{
++ pthread_attr_t attr;
++ invariant(pthread_attr_init(&attr) == 0);
++ invariant(pthread_attr_setstacksize(&attr, 256*1024) == 0);
++ pthread_setattr_default_np(&attr);
++ invariant(pthread_attr_destroy(&attr) == 0);
++}
++
+ namespace mongo {
+
+ StackLocator::StackLocator() {
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
deleted file mode 100644
index dc488ad..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 5759878e5d278f11a1063e8fccd1e6b7b54caadf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 2 Aug 2017 16:25:37 -0700
-Subject: [PATCH 2/2] d_state.cpp: Add missing dependenncy on
- local_sharding_info
-
-Fixes
-| src/mongo/s/d_state.cpp:81: error: undefined reference to 'mongo::enableLocalShardingInfo(mongo::ServiceContext*, std::function<bool (mongo::OperationContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/mongo/s/SConscript | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: git/src/mongo/s/SConscript
-===================================================================
---- git.orig/src/mongo/s/SConscript
-+++ git/src/mongo/s/SConscript
-@@ -317,5 +317,6 @@ env.Library(
- "$BUILD_DIR/mongo/db/s/sharding",
- "$BUILD_DIR/mongo/executor/network_interface_factory",
- "$BUILD_DIR/mongo/s/client/shard_local",
-+ "$BUILD_DIR/mongo/s/local_sharding_info",
- ],
- )
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
deleted file mode 100644
index 1591f94..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 458f80f482a201b427a1c92235804d0c3f98fd51 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 2 Sep 2017 13:01:11 -0700
-Subject: [PATCH 3/4] Conditionalize glibc specific strerror_r
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- .../asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp | 11 ++++-------
- 1 file changed, 4 insertions(+), 7 deletions(-)
-
-diff --git a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
-index 4e7badb14a..0eeae884e2 100644
---- a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
-+++ b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
-@@ -97,17 +97,14 @@ public:
- #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
- using namespace std;
- return strerror(value);
--#elif defined(__MACH__) && defined(__APPLE__) \
-- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
-- || defined(_AIX) || defined(__hpux) || defined(__osf__) \
-- || defined(__ANDROID__)
-+#elif defined(__GLIBC__) && defined(_GNU_SOURCE)
-+ char buf[256] = "";
-+ return strerror_r(value, buf, sizeof(buf));
-+#else
- char buf[256] = "";
- using namespace std;
- strerror_r(value, buf, sizeof(buf));
- return buf;
--#else
-- char buf[256] = "";
-- return strerror_r(value, buf, sizeof(buf));
- #endif
- #endif // defined(ASIO_WINDOWS)
- }
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
index e871f2b..a2e1f79 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
@@ -8,11 +8,11 @@
src/third_party/wiredtiger/build_linux/wiredtiger_config.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
-index 1122e1e319..fdfd48687b 100644
---- a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
-+++ b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
-@@ -101,7 +101,7 @@
+Index: git/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
+===================================================================
+--- git.orig/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
++++ git/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
+@@ -104,7 +104,7 @@
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strtouq' function. */
@@ -21,6 +21,3 @@
/* Define to 1 if you have the `sync_file_range' function. */
/* #undef HAVE_SYNC_FILE_RANGE */
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch
index 9046bb2..c068987 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch
@@ -7,7 +7,7 @@
===================================================================
--- git.orig/SConstruct
+++ git/SConstruct
-@@ -990,6 +990,7 @@ elif endian == "big":
+@@ -1055,6 +1055,7 @@ elif endian == "big":
processor_macros = {
'arm' : { 'endian': 'little', 'defines': ('__arm__',) },
'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
@@ -19,7 +19,7 @@
===================================================================
--- git.orig/src/third_party/IntelRDFPMathLib20U1/SConscript
+++ git/src/third_party/IntelRDFPMathLib20U1/SConscript
-@@ -301,7 +301,7 @@ if processor == 'i386':
+@@ -308,7 +308,7 @@ if processor == 'i386':
elif processor == 'arm':
cpp_defines['IA32'] = '1'
cpp_defines['ia32'] = '1'
@@ -32,7 +32,7 @@
===================================================================
--- git.orig/src/third_party/wiredtiger/SConscript
+++ git/src/third_party/wiredtiger/SConscript
-@@ -139,7 +139,7 @@ condition_map = {
+@@ -151,7 +151,7 @@ condition_map = {
'POSIX_HOST' : not env.TargetOSIs('windows'),
'WINDOWS_HOST' : env.TargetOSIs('windows'),
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
index 5c5c20c..23d4923 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
@@ -5,7 +5,7 @@
===================================================================
--- git.orig/src/third_party/wiredtiger/SConscript
+++ git/src/third_party/wiredtiger/SConscript
-@@ -169,7 +169,9 @@ if useSnappy:
+@@ -181,7 +181,9 @@ if useSnappy:
# If not available at runtime, we fall back to software in some cases.
#
# On zSeries we may disable because SLES 11 kernel doe not support the instructions.
@@ -32,7 +32,7 @@
===================================================================
--- git.orig/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
+++ git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
-@@ -78,6 +78,7 @@ unsigned int __wt_crc32c_le(unsigned int
+@@ -77,6 +77,7 @@ unsigned int __wt_crc32c_le(unsigned int
return crc; \
}
@@ -40,7 +40,7 @@
/* Main CRC-32 functions */
DEFINE_CRC32_VX(__wt_crc32c_le_vx, __wt_crc32c_le_vgfm_16, __wt_crc32c_le)
-@@ -90,6 +91,7 @@ __wt_checksum_hw(const void *chunk, size
+@@ -89,6 +90,7 @@ __wt_checksum_hw(const void *chunk, size
{
return (~__wt_crc32c_le_vx(0xffffffff, chunk, len));
}
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
index bb3ff3b..d39ab0a 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
@@ -3,48 +3,44 @@
LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788 \
file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-DEPENDS = "openssl libpcre libpcap zlib python boost"
+DEPENDS = "openssl libpcre libpcap zlib boost curl python \
+ python-setuptools-native python-typing-native \
+ python-pyyaml-native python-cheetah-native \
+ "
-inherit scons dos2unix siteinfo
+inherit scons dos2unix siteinfo pythonnative
-PV = "3.4.13+git${SRCPV}"
-SRCREV = "fbdef2ccc53e0fcc9afb570063633d992b2aae42"
-SRC_URI = "git://github.com/mongodb/mongo.git;branch=v3.4 \
+PV = "4.0.1+git${SRCPV}"
+#v4.0.1
+SRCREV = "54f1582fc6eb01de4d4c42f26fc133e623f065fb"
+SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.0 \
file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
- file://0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch \
file://0001-Use-long-long-instead-of-int64_t.patch \
file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \
- file://0001-Use-strerror_r-only-on-glibc-systems.patch \
file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \
- file://0003-Conditionalize-glibc-specific-strerror_r.patch \
file://arm64-support.patch \
file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \
file://disable-hw-crc32-on-arm64-s390x.patch \
+ file://0001-Support-deprecated-resolver-functions.patch \
"
SRC_URI_append_libc-musl ="\
+ file://0002-Fix-default-stack-size-to-256K.patch \
file://0004-wiredtiger-Disable-strtouq-on-musl.patch \
"
S = "${WORKDIR}/git"
-# Wiredtiger supports only 64-bit platforms
-PACKAGECONFIG_x86-64 ??= "tcmalloc wiredtiger"
-PACKAGECONFIG_aarch64 ??= "tcmalloc wiredtiger"
+COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux'
+
+COMPATIBLE_HOST_arm = "null"
+COMPATIBLE_HOST_libc-musl_x86 = "null"
+
PACKAGECONFIG ??= "tcmalloc"
# gperftools compilation fails for arm below v7 because of missing support of
# dmb operation. So we use system-allocator instead of tcmalloc
PACKAGECONFIG_remove_armv6 = "tcmalloc"
PACKAGECONFIG_remove_libc-musl = "tcmalloc"
-#std::current_exception is undefined for arm < v6
-COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
-COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
-COMPATIBLE_MACHINE_armv7a = "(!.*armv7a).*"
-COMPATIBLE_MACHINE_armv7ve = "(!.*armv7ve).*"
-COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
-COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*"
-
PACKAGECONFIG[tcmalloc] = "--use-system-tcmalloc,--allocator=system,gperftools,"
-PACKAGECONFIG[wiredtiger] = "--wiredtiger=on,--wiredtiger=off,,"
EXTRA_OESCONS = "--prefix=${D}${prefix} \
LIBPATH=${STAGING_LIBDIR} \
@@ -58,6 +54,7 @@
--js-engine=none \
--nostrip \
--endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
+ --wiredtiger=${@['off','on'][d.getVar('SITEINFO_BITS') != '32']} \
${PACKAGECONFIG_CONFARGS} \
mongod mongos"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.59.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.62.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.59.bb
rename to meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.62.bb
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
index 99e7050..8ca5b2b 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -18,9 +18,10 @@
file://change-cc-to-cc-version.patch \
file://0001-disable-ucontext-on-musl.patch \
"
+SRC_URI[md5sum] = "6375d577e9539b839f44d857e70f82b9"
+SRC_URI[sha256sum] = "56a365af71b8a9ec8bfee0801e2dec95011da8ee7507986ca329be11296411db"
-SRC_URI[md5sum] = "3cec4afc06b468687ef576c90148d10d"
-SRC_URI[sha256sum] = "c3269ce20b45b177239fd1e3d6d9428a94131711f12758ebf5f65222278bb110"
+UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
S = "${WORKDIR}/mariadb-${PV}"
@@ -161,13 +162,15 @@
}
PACKAGES = "${PN}-dbg ${PN} \
- libmysqlclient-r libmysqlclient-r-dev libmysqlclient-r-staticdev libmysqlclient-r-dbg \
- libmysqlclient libmysqlclient-dev libmysqlclient-staticdev libmysqlclient-dbg \
+ libmysqlclient-r libmysqlclient-r-dev libmysqlclient-r-staticdev \
+ libmysqlclient libmysqlclient-dev libmysqlclient-staticdev \
libmysqld libmysqld-dev ${PN}-client ${PN}-server ${PN}-setupdb ${PN}-leftovers"
CONFFILES_${PN}-server += "${sysconfdir}/my.cnf ${sysconfdir}/my.cnf.d/server.cnf"
CONFFILES_${PN}-client += "${sysconfdir}/my.cnf.d/mysql-clients.cnf"
CONFFILES_libmysqlclient += "${sysconfdir}/my.cnf.d/client.cnf"
+RPROVIDES_${PN}-dbg += "libmysqlclient-r-dbg libmysqlclient-dbg"
+
FILES_${PN} = " "
RDEPENDS_${PN} = "${PN}-client ${PN}-server"
ALLOW_EMPTY_${PN} = "1"
@@ -200,8 +203,6 @@
${bindir}/mysql_config"
FILES_libmysqlclient-staticdev = "\
${libdir}/*.a"
-FILES_libmysqlclient-dbg = "${libdir}/plugin/.debug/ \
- ${datadir}/mysql-test/lib/My/SafeProcess/.debug/my_safe_process"
# Avoid warnings about ha_xtradb.so.0.0.0 and ha_innodb_plugin.so.0.0.0
# which are intentionally non-PIC on 32-bit x86 (see e.g.
@@ -212,7 +213,6 @@
FILES_libmysqlclient-r-dev = "\
${libdir}/libmysqlclient_r.so"
FILES_libmysqlclient-r-staticdev = "${libdir}/libmysqlclient_r.a"
-FILES_libmysqlclient-r-dbg = "${libdir}/plugin/.debuglibmysqlclient_r.so.*"
FILES_libmysqld = "\
${libdir}/libmysqld.so.*"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_5.5.59.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_5.5.62.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_5.5.59.bb
rename to meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_5.5.62.bb
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Sync-our-copy-of-the-timezone-library-with-IANA-rele.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Sync-our-copy-of-the-timezone-library-with-IANA-rele.patch
new file mode 100644
index 0000000..6d8c46e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Sync-our-copy-of-the-timezone-library-with-IANA-rele.patch
@@ -0,0 +1,1164 @@
+From 12bfb778ce688fc662a6cb35f6298734fcf4856f Mon Sep 17 00:00:00 2001
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Fri, 19 Oct 2018 19:36:34 -0400
+Subject: [PATCH] Sync our copy of the timezone library with IANA release
+ tzcode2018f.
+
+About half of this is purely cosmetic changes to reduce the diff between
+our code and theirs, like inserting "const" markers where they have them.
+
+The other half is tracking actual code changes in zic.c and localtime.c.
+I don't think any of these represent near-term compatibility hazards, but
+it seems best to stay up to date.
+
+I also fixed longstanding bugs in our code for producing the
+known_abbrevs.txt list, which by chance hadn't been exposed before,
+but which resulted in some garbage output after applying the upstream
+changes in zic.c. Notably, because upstream removed their old phony
+transitions at the Big Bang, it's now necessary to cope with TZif files
+containing no DST transition times at all.
+
+Upstream-Status: Backport
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ src/timezone/README | 2 +-
+ src/timezone/localtime.c | 126 ++++++++++++------
+ src/timezone/pgtz.h | 10 +-
+ src/timezone/private.h | 3 +
+ src/timezone/strftime.c | 10 +-
+ src/timezone/tzfile.h | 7 +-
+ src/timezone/zic.c | 330 ++++++++++++++++++++++++++---------------------
+ 7 files changed, 291 insertions(+), 197 deletions(-)
+
+Index: postgresql-10.5/src/timezone/README
+===================================================================
+--- postgresql-10.5.orig/src/timezone/README
++++ postgresql-10.5/src/timezone/README
+@@ -55,7 +55,7 @@ match properly on the old version.
+ Time Zone code
+ ==============
+
+-The code in this directory is currently synced with tzcode release 2018e.
++The code in this directory is currently synced with tzcode release 2018f.
+ There are many cosmetic (and not so cosmetic) differences from the
+ original tzcode library, but diffs in the upstream version should usually
+ be propagated to our version. Here are some notes about that.
+Index: postgresql-10.5/src/timezone/localtime.c
+===================================================================
+--- postgresql-10.5.orig/src/timezone/localtime.c
++++ postgresql-10.5/src/timezone/localtime.c
+@@ -1,3 +1,5 @@
++/* Convert timestamp from pg_time_t to struct pg_tm. */
++
+ /*
+ * This file is in the public domain, so clarified as of
+ * 1996-06-05 by Arthur David Olson.
+@@ -117,7 +119,7 @@ init_ttinfo(struct ttinfo *s, int32 gmto
+ }
+
+ static int32
+-detzcode(const char *codep)
++detzcode(const char *const codep)
+ {
+ int32 result;
+ int i;
+@@ -143,7 +145,7 @@ detzcode(const char *codep)
+ }
+
+ static int64
+-detzcode64(const char *codep)
++detzcode64(const char *const codep)
+ {
+ uint64 result;
+ int i;
+@@ -258,8 +260,13 @@ tzloadbody(char const *name, char *canon
+ int32 charcnt = detzcode(up->tzhead.tzh_charcnt);
+ char const *p = up->buf + tzheadsize;
+
++ /*
++ * Although tzfile(5) currently requires typecnt to be nonzero,
++ * support future formats that may allow zero typecnt in files that
++ * have a TZ string and no transitions.
++ */
+ if (!(0 <= leapcnt && leapcnt < TZ_MAX_LEAPS
+- && 0 < typecnt && typecnt < TZ_MAX_TYPES
++ && 0 <= typecnt && typecnt < TZ_MAX_TYPES
+ && 0 <= timecnt && timecnt < TZ_MAX_TIMES
+ && 0 <= charcnt && charcnt < TZ_MAX_CHARS
+ && (ttisstdcnt == typecnt || ttisstdcnt == 0)
+@@ -416,8 +423,7 @@ tzloadbody(char const *name, char *canon
+ struct state *ts = &lsp->u.st;
+
+ up->buf[nread - 1] = '\0';
+- if (tzparse(&up->buf[1], ts, false)
+- && ts->typecnt == 2)
++ if (tzparse(&up->buf[1], ts, false))
+ {
+ /*
+ * Attempt to reuse existing abbreviations. Without this,
+@@ -430,7 +436,7 @@ tzloadbody(char const *name, char *canon
+ int gotabbr = 0;
+ int charcnt = sp->charcnt;
+
+- for (i = 0; i < 2; i++)
++ for (i = 0; i < ts->typecnt; i++)
+ {
+ char *tsabbr = ts->chars + ts->ttis[i].tt_abbrind;
+ int j;
+@@ -455,7 +461,7 @@ tzloadbody(char const *name, char *canon
+ }
+ }
+ }
+- if (gotabbr == 2)
++ if (gotabbr == ts->typecnt)
+ {
+ sp->charcnt = charcnt;
+
+@@ -470,7 +476,8 @@ tzloadbody(char const *name, char *canon
+ sp->timecnt--;
+
+ for (i = 0; i < ts->timecnt; i++)
+- if (sp->ats[sp->timecnt - 1] < ts->ats[i])
++ if (sp->timecnt == 0
++ || sp->ats[sp->timecnt - 1] < ts->ats[i])
+ break;
+ while (i < ts->timecnt
+ && sp->timecnt < TZ_MAX_TIMES)
+@@ -481,11 +488,13 @@ tzloadbody(char const *name, char *canon
+ sp->timecnt++;
+ i++;
+ }
+- sp->ttis[sp->typecnt++] = ts->ttis[0];
+- sp->ttis[sp->typecnt++] = ts->ttis[1];
++ for (i = 0; i < ts->typecnt; i++)
++ sp->ttis[sp->typecnt++] = ts->ttis[i];
+ }
+ }
+ }
++ if (sp->typecnt == 0)
++ return EINVAL;
+ if (sp->timecnt > 1)
+ {
+ for (i = 1; i < sp->timecnt; ++i)
+@@ -507,6 +516,18 @@ tzloadbody(char const *name, char *canon
+ }
+
+ /*
++ * Infer sp->defaulttype from the data. Although this default type is
++ * always zero for data from recent tzdb releases, things are trickier for
++ * data from tzdb 2018e or earlier.
++ *
++ * The first set of heuristics work around bugs in 32-bit data generated
++ * by tzdb 2013c or earlier. The workaround is for zones like
++ * Australia/Macquarie where timestamps before the first transition have a
++ * time type that is not the earliest standard-time type. See:
++ * https://mm.icann.org/pipermail/tz/2013-May/019368.html
++ */
++
++ /*
+ * If type 0 is unused in transitions, it's the type to use for early
+ * times.
+ */
+@@ -529,6 +550,11 @@ tzloadbody(char const *name, char *canon
+ }
+
+ /*
++ * The next heuristics are for data generated by tzdb 2018e or earlier,
++ * for zones like EST5EDT where the first transition is to DST.
++ */
++
++ /*
+ * If no result yet, find the first standard type. If there is none, punt
+ * to type zero.
+ */
+@@ -542,7 +568,14 @@ tzloadbody(char const *name, char *canon
+ break;
+ }
+ }
++
++ /*
++ * A simple 'sp->defaulttype = 0;' would suffice here if we didn't have to
++ * worry about 2018e-or-earlier data. Even simpler would be to remove the
++ * defaulttype member and just use 0 in its place.
++ */
+ sp->defaulttype = i;
++
+ return 0;
+ }
+
+@@ -601,10 +634,11 @@ static const int year_lengths[2] = {
+ };
+
+ /*
+- * Given a pointer into a time zone string, scan until a character that is not
+- * a valid character in a zone name is found. Return a pointer to that
+- * character.
++ * Given a pointer into a timezone string, scan until a character that is not
++ * a valid character in a time zone abbreviation is found.
++ * Return a pointer to that character.
+ */
++
+ static const char *
+ getzname(const char *strp)
+ {
+@@ -617,15 +651,17 @@ getzname(const char *strp)
+ }
+
+ /*
+- * Given a pointer into an extended time zone string, scan until the ending
+- * delimiter of the zone name is located. Return a pointer to the delimiter.
++ * Given a pointer into an extended timezone string, scan until the ending
++ * delimiter of the time zone abbreviation is located.
++ * Return a pointer to the delimiter.
+ *
+ * As with getzname above, the legal character set is actually quite
+ * restricted, with other characters producing undefined results.
+ * We don't do any checking here; checking is done later in common-case code.
+ */
++
+ static const char *
+-getqzname(const char *strp, int delim)
++getqzname(const char *strp, const int delim)
+ {
+ int c;
+
+@@ -635,13 +671,14 @@ getqzname(const char *strp, int delim)
+ }
+
+ /*
+- * Given a pointer into a time zone string, extract a number from that string.
++ * Given a pointer into a timezone string, extract a number from that string.
+ * Check that the number is within a specified range; if it is not, return
+ * NULL.
+ * Otherwise, return a pointer to the first character not part of the number.
+ */
++
+ static const char *
+-getnum(const char *strp, int *nump, int min, int max)
++getnum(const char *strp, int *const nump, const int min, const int max)
+ {
+ char c;
+ int num;
+@@ -663,14 +700,15 @@ getnum(const char *strp, int *nump, int
+ }
+
+ /*
+- * Given a pointer into a time zone string, extract a number of seconds,
++ * Given a pointer into a timezone string, extract a number of seconds,
+ * in hh[:mm[:ss]] form, from the string.
+ * If any error occurs, return NULL.
+ * Otherwise, return a pointer to the first character not part of the number
+ * of seconds.
+ */
++
+ static const char *
+-getsecs(const char *strp, int32 *secsp)
++getsecs(const char *strp, int32 *const secsp)
+ {
+ int num;
+
+@@ -704,13 +742,14 @@ getsecs(const char *strp, int32 *secsp)
+ }
+
+ /*
+- * Given a pointer into a time zone string, extract an offset, in
++ * Given a pointer into a timezone string, extract an offset, in
+ * [+-]hh[:mm[:ss]] form, from the string.
+ * If any error occurs, return NULL.
+ * Otherwise, return a pointer to the first character not part of the time.
+ */
++
+ static const char *
+-getoffset(const char *strp, int32 *offsetp)
++getoffset(const char *strp, int32 *const offsetp)
+ {
+ bool neg = false;
+
+@@ -730,13 +769,14 @@ getoffset(const char *strp, int32 *offse
+ }
+
+ /*
+- * Given a pointer into a time zone string, extract a rule in the form
++ * Given a pointer into a timezone string, extract a rule in the form
+ * date[/time]. See POSIX section 8 for the format of "date" and "time".
+ * If a valid rule is not found, return NULL.
+ * Otherwise, return a pointer to the first character not part of the rule.
+ */
++
+ static const char *
+-getrule(const char *strp, struct rule *rulep)
++getrule(const char *strp, struct rule *const rulep)
+ {
+ if (*strp == 'J')
+ {
+@@ -795,9 +835,10 @@ getrule(const char *strp, struct rule *r
+ * Given a year, a rule, and the offset from UT at the time that rule takes
+ * effect, calculate the year-relative time that rule takes effect.
+ */
++
+ static int32
+-transtime(int year, const struct rule *rulep,
+- int32 offset)
++transtime(const int year, const struct rule *const rulep,
++ const int32 offset)
+ {
+ bool leapyear;
+ int32 value;
+@@ -981,7 +1022,7 @@ tzparse(const char *name, struct state *
+ {
+ dstname = name;
+ name = getzname(name);
+- dstlen = name - dstname; /* length of DST zone name */
++ dstlen = name - dstname; /* length of DST abbr. */
+ }
+ if (!dstlen)
+ return false;
+@@ -1023,8 +1064,8 @@ tzparse(const char *name, struct state *
+ /*
+ * Two transitions per year, from EPOCH_YEAR forward.
+ */
+- init_ttinfo(&sp->ttis[0], -dstoffset, true, stdlen + 1);
+- init_ttinfo(&sp->ttis[1], -stdoffset, false, 0);
++ init_ttinfo(&sp->ttis[0], -stdoffset, false, 0);
++ init_ttinfo(&sp->ttis[1], -dstoffset, true, stdlen + 1);
+ sp->defaulttype = 0;
+ timecnt = 0;
+ janfirst = 0;
+@@ -1073,19 +1114,15 @@ tzparse(const char *name, struct state *
+ if (!increment_overflow_time
+ (&sp->ats[timecnt],
+ janoffset + starttime))
+- sp->types[timecnt++] = reversed;
+- else if (janoffset)
+- sp->defaulttype = reversed;
++ sp->types[timecnt++] = !reversed;
+ sp->ats[timecnt] = janfirst;
+ if (!increment_overflow_time
+ (&sp->ats[timecnt],
+ janoffset + endtime))
+ {
+- sp->types[timecnt++] = !reversed;
++ sp->types[timecnt++] = reversed;
+ yearlim = year + YEARSPERREPEAT + 1;
+ }
+- else if (janoffset)
+- sp->defaulttype = !reversed;
+ }
+ if (increment_overflow_time
+ (&janfirst, janoffset + yearsecs))
+@@ -1094,7 +1131,10 @@ tzparse(const char *name, struct state *
+ }
+ sp->timecnt = timecnt;
+ if (!timecnt)
++ {
++ sp->ttis[0] = sp->ttis[1];
+ sp->typecnt = 1; /* Perpetual DST. */
++ }
+ else if (YEARSPERREPEAT < year - yearbeg)
+ sp->goback = sp->goahead = true;
+ }
+@@ -1163,7 +1203,6 @@ tzparse(const char *name, struct state *
+ * otherwise, add the standard time offset to the
+ * transition time.
+ */
+-
+ /*
+ * Transitions from DST to DDST will effectively disappear
+ * since POSIX provides for only one DST offset.
+@@ -1217,7 +1256,7 @@ tzparse(const char *name, struct state *
+ }
+
+ static void
+-gmtload(struct state *sp)
++gmtload(struct state *const sp)
+ {
+ if (tzload(gmt, NULL, sp, true) != 0)
+ tzparse(gmt, sp, true);
+@@ -1232,7 +1271,7 @@ gmtload(struct state *sp)
+ */
+ static struct pg_tm *
+ localsub(struct state const *sp, pg_time_t const *timep,
+- struct pg_tm *tmp)
++ struct pg_tm *const tmp)
+ {
+ const struct ttinfo *ttisp;
+ int i;
+@@ -1300,6 +1339,11 @@ localsub(struct state const *sp, pg_time
+ }
+ ttisp = &sp->ttis[i];
+
++ /*
++ * To get (wrong) behavior that's compatible with System V Release 2.0
++ * you'd replace the statement below with t += ttisp->tt_gmtoff;
++ * timesub(&t, 0L, sp, tmp);
++ */
+ result = timesub(&t, ttisp->tt_gmtoff, sp, tmp);
+ if (result)
+ {
+@@ -1322,8 +1366,10 @@ pg_localtime(const pg_time_t *timep, con
+ *
+ * Except we have a private "struct state" for GMT, so no sp is passed in.
+ */
++
+ static struct pg_tm *
+-gmtsub(pg_time_t const *timep, int32 offset, struct pg_tm *tmp)
++gmtsub(pg_time_t const *timep, int32 offset,
++ struct pg_tm *tmp)
+ {
+ struct pg_tm *result;
+
+@@ -1337,6 +1383,7 @@ gmtsub(pg_time_t const *timep, int32 off
+ gmt_is_set = true;
+ gmtload(gmtptr);
+ }
++
+ result = timesub(timep, offset, gmtptr, tmp);
+
+ /*
+@@ -1361,6 +1408,7 @@ pg_gmtime(const pg_time_t *timep)
+ * Return the number of leap years through the end of the given year
+ * where, to make the math easy, the answer for year zero is defined as zero.
+ */
++
+ static int
+ leaps_thru_end_of_nonneg(int y)
+ {
+Index: postgresql-10.5/src/timezone/pgtz.h
+===================================================================
+--- postgresql-10.5.orig/src/timezone/pgtz.h
++++ postgresql-10.5/src/timezone/pgtz.h
+@@ -49,10 +49,16 @@ struct state
+ pg_time_t ats[TZ_MAX_TIMES];
+ unsigned char types[TZ_MAX_TIMES];
+ struct ttinfo ttis[TZ_MAX_TYPES];
+- char chars[BIGGEST(BIGGEST(TZ_MAX_CHARS + 1, 3 /* sizeof gmt */ ),
++ char chars[BIGGEST(BIGGEST(TZ_MAX_CHARS + 1, 4 /* sizeof gmt */ ),
+ (2 * (TZ_STRLEN_MAX + 1)))];
+ struct lsinfo lsis[TZ_MAX_LEAPS];
+- int defaulttype; /* for early times or if no transitions */
++
++ /*
++ * The time type to use for early times or if no transitions. It is always
++ * zero for recent tzdb releases. It might be nonzero for data from tzdb
++ * 2018e or earlier.
++ */
++ int defaulttype;
+ };
+
+
+Index: postgresql-10.5/src/timezone/private.h
+===================================================================
+--- postgresql-10.5.orig/src/timezone/private.h
++++ postgresql-10.5/src/timezone/private.h
+@@ -1,4 +1,7 @@
++/* Private header for tzdb code. */
++
+ #ifndef PRIVATE_H
++
+ #define PRIVATE_H
+
+ /*
+Index: postgresql-10.5/src/timezone/strftime.c
+===================================================================
+--- postgresql-10.5.orig/src/timezone/strftime.c
++++ postgresql-10.5/src/timezone/strftime.c
+@@ -1,4 +1,4 @@
+-/* Convert a broken-down timestamp to a string. */
++/* Convert a broken-down timestamp to a string. */
+
+ /*
+ * Copyright 1989 The Regents of the University of California.
+@@ -115,7 +115,7 @@ static char *_add(const char *, char *,
+ static char *_conv(int, const char *, char *, const char *);
+ static char *_fmt(const char *, const struct pg_tm *, char *, const char *,
+ enum warn *);
+-static char *_yconv(int, int, bool, bool, char *, const char *);
++static char *_yconv(int, int, bool, bool, char *, char const *);
+
+
+ size_t
+@@ -441,7 +441,8 @@ _fmt(const char *format, const struct pg
+
+ /*
+ * C99 and later say that %Z must be replaced by the empty
+- * string if the time zone is not determinable.
++ * string if the time zone abbreviation is not
++ * determinable.
+ */
+ continue;
+ case 'z':
+@@ -519,6 +520,7 @@ _add(const char *str, char *pt, const ch
+ * same output as %Y, and that %Y contains at least 4 bytes,
+ * with more only if necessary.
+ */
++
+ static char *
+ _yconv(int a, int b, bool convert_top, bool convert_yy,
+ char *pt, const char *ptlim)
+@@ -526,7 +528,7 @@ _yconv(int a, int b, bool convert_top, b
+ int lead;
+ int trail;
+
+-#define DIVISOR 100
++#define DIVISOR 100
+ trail = a % DIVISOR + b % DIVISOR;
+ lead = a / DIVISOR + b / DIVISOR + trail / DIVISOR;
+ trail %= DIVISOR;
+Index: postgresql-10.5/src/timezone/tzfile.h
+===================================================================
+--- postgresql-10.5.orig/src/timezone/tzfile.h
++++ postgresql-10.5/src/timezone/tzfile.h
+@@ -1,4 +1,7 @@
++/* Layout and location of TZif files. */
++
+ #ifndef TZFILE_H
++
+ #define TZFILE_H
+
+ /*
+@@ -21,14 +24,14 @@
+ * Information about time zone files.
+ */
+
+-#define TZDEFAULT "localtime"
++#define TZDEFAULT "/etc/localtime"
+ #define TZDEFRULES "posixrules"
+
+ /*
+ * Each file begins with. . .
+ */
+
+-#define TZ_MAGIC "TZif"
++#define TZ_MAGIC "TZif"
+
+ struct tzhead
+ {
+Index: postgresql-10.5/src/timezone/zic.c
+===================================================================
+--- postgresql-10.5.orig/src/timezone/zic.c
++++ postgresql-10.5/src/timezone/zic.c
+@@ -1,3 +1,5 @@
++/* Compile .zi time zone data into TZif binary files. */
++
+ /*
+ * This file is in the public domain, so clarified as of
+ * 2006-07-17 by Arthur David Olson.
+@@ -130,8 +132,7 @@ static void adjleap(void);
+ static void associate(void);
+ static void dolink(const char *, const char *, bool);
+ static char **getfields(char *buf);
+-static zic_t gethms(const char *string, const char *errstring,
+- bool);
++static zic_t gethms(const char *string, const char *errstring);
+ static zic_t getstdoff(char *, bool *);
+ static void infile(const char *filename);
+ static void inleap(char **fields, int nfields);
+@@ -162,7 +163,7 @@ enum
+ PERCENT_Z_LEN_BOUND = sizeof "+995959" - 1};
+
+ /* If true, work around a bug in Qt 5.6.1 and earlier, which mishandles
+- tz binary files whose POSIX-TZ-style strings contain '<'; see
++ TZif files whose POSIX-TZ-style strings contain '<'; see
+ QTBUG-53071 <https://bugreports.qt.io/browse/QTBUG-53071>. This
+ workaround will no longer be needed when Qt 5.6.1 and earlier are
+ obsolete, say in the year 2021. */
+@@ -211,7 +212,7 @@ static int typecnt;
+ #define ZF_RULE 3
+ #define ZF_FORMAT 4
+ #define ZF_TILYEAR 5
+-#define ZF_TILMONTH 6
++#define ZF_TILMONTH 6
+ #define ZF_TILDAY 7
+ #define ZF_TILTIME 8
+ #define ZONE_MINFIELDS 5
+@@ -224,12 +225,12 @@ static int typecnt;
+ #define ZFC_GMTOFF 0
+ #define ZFC_RULE 1
+ #define ZFC_FORMAT 2
+-#define ZFC_TILYEAR 3
++#define ZFC_TILYEAR 3
+ #define ZFC_TILMONTH 4
+ #define ZFC_TILDAY 5
+-#define ZFC_TILTIME 6
+-#define ZONEC_MINFIELDS 3
+-#define ZONEC_MAXFIELDS 7
++#define ZFC_TILTIME 6
++#define ZONEC_MINFIELDS 3
++#define ZONEC_MAXFIELDS 7
+
+ /*
+ * Which files are which on a Rule line.
+@@ -244,7 +245,7 @@ static int typecnt;
+ #define RF_TOD 7
+ #define RF_STDOFF 8
+ #define RF_ABBRVAR 9
+-#define RULE_FIELDS 10
++#define RULE_FIELDS 10
+
+ /*
+ * Which fields are which on a Link line.
+@@ -252,7 +253,7 @@ static int typecnt;
+
+ #define LF_FROM 1
+ #define LF_TO 2
+-#define LINK_FIELDS 3
++#define LINK_FIELDS 3
+
+ /*
+ * Which fields are which on a Leap line.
+@@ -264,7 +265,7 @@ static int typecnt;
+ #define LP_TIME 4
+ #define LP_CORR 5
+ #define LP_ROLL 6
+-#define LEAP_FIELDS 7
++#define LEAP_FIELDS 7
+
+ /*
+ * Year synonyms.
+@@ -998,48 +999,6 @@ dolink(char const *fromfield, char const
+ static zic_t const min_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE);
+ static zic_t const max_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE);
+
+-/*
+- * Estimated time of the Big Bang, in seconds since the POSIX epoch.
+- * rounded downward to the negation of a power of two that is
+- * comfortably outside the error bounds.
+- *
+- * For the time of the Big Bang, see:
+- *
+- * Ade PAR, Aghanim N, Armitage-Caplan C et al. Planck 2013 results.
+- * I. Overview of products and scientific results.
+- * arXiv:1303.5062 2013-03-20 20:10:01 UTC
+- * <https://arxiv.org/pdf/1303.5062v1> [PDF]
+- *
+- * Page 36, Table 9, row Age/Gyr, column Planck+WP+highL+BAO 68% limits
+- * gives the value 13.798 plus-or-minus 0.037 billion years.
+- * Multiplying this by 1000000000 and then by 31557600 (the number of
+- * seconds in an astronomical year) gives a value that is comfortably
+- * less than 2**59, so BIG_BANG is - 2**59.
+- *
+- * BIG_BANG is approximate, and may change in future versions.
+- * Please do not rely on its exact value.
+- */
+-
+-#ifndef BIG_BANG
+-#define BIG_BANG (- (((zic_t) 1) << 59))
+-#endif
+-
+-/* If true, work around GNOME bug 730332
+- <https://bugzilla.gnome.org/show_bug.cgi?id=730332>
+- by refusing to output time stamps before BIG_BANG.
+- Such time stamps are physically suspect anyway.
+-
+- The GNOME bug is scheduled to be fixed in GNOME 3.22, and if so
+- this workaround will no longer be needed when GNOME 3.21 and
+- earlier are obsolete, say in the year 2021. */
+-enum
+-{
+-WORK_AROUND_GNOME_BUG_730332 = true};
+-
+-static const zic_t early_time = (WORK_AROUND_GNOME_BUG_730332
+- ? BIG_BANG
+- : MINVAL(zic_t, TIME_T_BITS_IN_FILE));
+-
+ /* Return true if NAME is a directory. */
+ static bool
+ itsdir(char const *name)
+@@ -1281,8 +1240,9 @@ infile(const char *name)
+ * A null string maps to zero.
+ * Call error with errstring and return zero on errors.
+ */
++
+ static zic_t
+-gethms(char const *string, char const *errstring, bool signable)
++gethms(char const *string, char const *errstring)
+ {
+ /* PG: make hh be int not zic_t to avoid sscanf portability issues */
+ int hh;
+@@ -1299,9 +1259,7 @@ gethms(char const *string, char const *e
+
+ if (string == NULL || *string == '\0')
+ return 0;
+- if (!signable)
+- sign = 1;
+- else if (*string == '-')
++ if (*string == '-')
+ {
+ sign = -1;
+ ++string;
+@@ -1384,7 +1342,7 @@ getstdoff(char *field, bool *isdst)
+ break;
+ }
+ }
+- stdoff = gethms(field, _("invalid saved time"), true);
++ stdoff = gethms(field, _("invalid saved time"));
+ *isdst = dst < 0 ? stdoff != 0 : dst;
+ return stdoff;
+ }
+@@ -1399,10 +1357,29 @@ inrule(char **fields, int nfields)
+ error(_("wrong number of fields on Rule line"));
+ return;
+ }
+- if (*fields[RF_NAME] == '\0')
++ switch (*fields[RF_NAME])
+ {
+- error(_("nameless rule"));
+- return;
++ case '\0':
++ case ' ':
++ case '\f':
++ case '\n':
++ case '\r':
++ case '\t':
++ case '\v':
++ case '+':
++ case '-':
++ case '0':
++ case '1':
++ case '2':
++ case '3':
++ case '4':
++ case '5':
++ case '6':
++ case '7':
++ case '8':
++ case '9':
++ error(_("Invalid rule name \"%s\""), fields[RF_NAME]);
++ return;
+ }
+ r.r_filename = filename;
+ r.r_linenum = linenum;
+@@ -1507,7 +1484,7 @@ inzsub(char **fields, int nfields, bool
+ }
+ z.z_filename = filename;
+ z.z_linenum = linenum;
+- z.z_gmtoff = gethms(fields[i_gmtoff], _("invalid UT offset"), true);
++ z.z_gmtoff = gethms(fields[i_gmtoff], _("invalid UT offset"));
+ if ((cp = strchr(fields[i_format], '%')) != NULL)
+ {
+ if ((*++cp != 's' && *cp != 'z') || strchr(cp, '%')
+@@ -1649,7 +1626,7 @@ inleap(char **fields, int nfields)
+ return;
+ }
+ t = dayoff * SECSPERDAY;
+- tod = gethms(fields[LP_TIME], _("invalid time of day"), false);
++ tod = gethms(fields[LP_TIME], _("invalid time of day"));
+ cp = fields[LP_CORR];
+ {
+ bool positive;
+@@ -1757,7 +1734,7 @@ rulesub(struct rule *rp, const char *loy
+ break;
+ }
+ }
+- rp->r_tod = gethms(dp, _("invalid time of day"), false);
++ rp->r_tod = gethms(dp, _("invalid time of day"));
+ free(dp);
+
+ /*
+@@ -1942,7 +1919,43 @@ is32(const zic_t x)
+ }
+
+ static void
+-writezone(const char *const name, const char *const string, char version)
++swaptypes(int i, int j)
++{
++ {
++ zic_t t = gmtoffs[i];
++
++ gmtoffs[i] = gmtoffs[j];
++ gmtoffs[j] = t;
++ }
++ {
++ char t = isdsts[i];
++
++ isdsts[i] = isdsts[j];
++ isdsts[j] = t;
++ }
++ {
++ unsigned char t = abbrinds[i];
++
++ abbrinds[i] = abbrinds[j];
++ abbrinds[j] = t;
++ }
++ {
++ bool t = ttisstds[i];
++
++ ttisstds[i] = ttisstds[j];
++ ttisstds[j] = t;
++ }
++ {
++ bool t = ttisgmts[i];
++
++ ttisgmts[i] = ttisgmts[j];
++ ttisgmts[j] = t;
++ }
++}
++
++static void
++writezone(const char *const name, const char *const string, char version,
++ int defaulttype)
+ {
+ FILE *fp;
+ ptrdiff_t i,
+@@ -1977,14 +1990,12 @@ writezone(const char *const name, const
+
+ toi = 0;
+ fromi = 0;
+- while (fromi < timecnt && attypes[fromi].at < early_time)
+- ++fromi;
+ for (; fromi < timecnt; ++fromi)
+ {
+- if (toi > 1 && ((attypes[fromi].at +
+- gmtoffs[attypes[toi - 1].type]) <=
+- (attypes[toi - 1].at +
+- gmtoffs[attypes[toi - 2].type])))
++ if (toi != 0 && ((attypes[fromi].at +
++ gmtoffs[attypes[toi - 1].type]) <=
++ (attypes[toi - 1].at + gmtoffs[toi == 1 ? 0
++ : attypes[toi - 2].type])))
+ {
+ attypes[toi - 1].type =
+ attypes[fromi].type;
+@@ -2019,8 +2030,8 @@ writezone(const char *const name, const
+ }
+
+ /*
+- * Work around QTBUG-53071 for time stamps less than y2038_boundary - 1,
+- * by inserting a no-op transition at time y2038_boundary - 1. This works
++ * Work around QTBUG-53071 for timestamps less than y2038_boundary - 1, by
++ * inserting a no-op transition at time y2038_boundary - 1. This works
+ * only for timestamps before the boundary, which should be good enough in
+ * practice as QTBUG-53071 should be long-dead by 2038.
+ */
+@@ -2116,7 +2127,8 @@ writezone(const char *const name, const
+ int thisleapi,
+ thisleapcnt,
+ thisleaplim;
+- int writetype[TZ_MAX_TYPES];
++ int old0;
++ char omittype[TZ_MAX_TYPES];
+ int typemap[TZ_MAX_TYPES];
+ int thistypecnt;
+ char thischars[TZ_MAX_CHARS];
+@@ -2144,28 +2156,19 @@ writezone(const char *const name, const
+ error(_("too many transition times"));
+ thistimelim = thistimei + thistimecnt;
+ thisleaplim = thisleapi + thisleapcnt;
+- for (i = 0; i < typecnt; ++i)
+- writetype[i] = thistimecnt == timecnt;
+- if (thistimecnt == 0)
+- {
+- /*
+- * No transition times fall in the current (32- or 64-bit) window.
+- */
+- if (typecnt != 0)
+- writetype[typecnt - 1] = true;
+- }
+- else
+- {
+- for (i = thistimei - 1; i < thistimelim; ++i)
+- if (i >= 0)
+- writetype[types[i]] = true;
++ memset(omittype, true, typecnt);
++ omittype[defaulttype] = false;
++ for (i = thistimei; i < thistimelim; i++)
++ omittype[types[i]] = false;
++
++ /*
++ * Reorder types to make DEFAULTTYPE type 0. Use TYPEMAP to swap OLD0
++ * and DEFAULTTYPE so that DEFAULTTYPE appears as type 0 in the output
++ * instead of OLD0. TYPEMAP also omits unused types.
++ */
++ old0 = strlen(omittype);
++ swaptypes(old0, defaulttype);
+
+- /*
+- * For America/Godthab and Antarctica/Palmer
+- */
+- if (thistimei == 0)
+- writetype[0] = true;
+- }
+ #ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH
+
+ /*
+@@ -2187,8 +2190,8 @@ writezone(const char *const name, const
+ mrudst = types[i];
+ else
+ mrustd = types[i];
+- for (i = 0; i < typecnt; ++i)
+- if (writetype[i])
++ for (i = old0; i < typecnt; i++)
++ if (!omittype[i])
+ {
+ if (isdsts[i])
+ hidst = i;
+@@ -2205,7 +2208,7 @@ writezone(const char *const name, const
+ ttisstds[mrudst],
+ ttisgmts[mrudst]);
+ isdsts[mrudst] = 1;
+- writetype[type] = true;
++ omittype[type] = false;
+ }
+ if (histd >= 0 && mrustd >= 0 && histd != mrustd &&
+ gmtoffs[histd] != gmtoffs[mrustd])
+@@ -2217,22 +2220,26 @@ writezone(const char *const name, const
+ ttisstds[mrustd],
+ ttisgmts[mrustd]);
+ isdsts[mrustd] = 0;
+- writetype[type] = true;
++ omittype[type] = false;
+ }
+ }
+ #endif /* !defined
+ * LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */
+ thistypecnt = 0;
+- for (i = 0; i < typecnt; ++i)
+- typemap[i] = writetype[i] ? thistypecnt++ : -1;
++ for (i = old0; i < typecnt; i++)
++ if (!omittype[i])
++ typemap[i == old0 ? defaulttype
++ : i == defaulttype ? old0 : i]
++ = thistypecnt++;
++
+ for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i)
+ indmap[i] = -1;
+ thischarcnt = 0;
+- for (i = 0; i < typecnt; ++i)
++ for (i = old0; i < typecnt; i++)
+ {
+ char *thisabbr;
+
+- if (!writetype[i])
++ if (omittype[i])
+ continue;
+ if (indmap[abbrinds[i]] >= 0)
+ continue;
+@@ -2267,23 +2274,16 @@ writezone(const char *const name, const
+ DO(tzh_typecnt);
+ DO(tzh_charcnt);
+ #undef DO
+- for (i = thistimei; i < thistimelim; ++i)
+- if (pass == 1)
+
+- /*
+- * Output an INT32_MIN "transition" if appropriate; see above.
+- */
+- puttzcode(((ats[i] < PG_INT32_MIN) ?
+- PG_INT32_MIN : ats[i]), fp);
+- else
++ /* PG: print current timezone abbreviations if requested */
++ if (print_abbrevs && pass == 2)
++ {
++ /* Print "type" data for periods ending after print_cutoff */
++ for (i = thistimei; i < thistimelim; ++i)
+ {
+- puttzcode64(ats[i], fp);
+-
+- /* Print current timezone abbreviations if requested */
+- if (print_abbrevs &&
+- (i == thistimelim - 1 || ats[i + 1] > print_cutoff))
++ if (i == thistimelim - 1 || ats[i + 1] > print_cutoff)
+ {
+- unsigned char tm = typemap[types[i]];
++ unsigned char tm = types[i];
+ char *thisabbrev = &thischars[indmap[abbrinds[tm]]];
+
+ /* filter out assorted junk entries */
+@@ -2295,6 +2295,32 @@ writezone(const char *const name, const
+ isdsts[tm] ? "\tD" : "");
+ }
+ }
++ /* Print the default type if we have no transitions at all */
++ if (thistimei >= thistimelim)
++ {
++ unsigned char tm = defaulttype;
++ char *thisabbrev = &thischars[indmap[abbrinds[tm]]];
++
++ /* filter out assorted junk entries */
++ if (strcmp(thisabbrev, GRANDPARENTED) != 0 &&
++ strcmp(thisabbrev, "zzz") != 0)
++ fprintf(stdout, "%s\t" INT64_FORMAT "%s\n",
++ thisabbrev,
++ gmtoffs[tm],
++ isdsts[tm] ? "\tD" : "");
++ }
++ }
++
++ for (i = thistimei; i < thistimelim; ++i)
++ if (pass == 1)
++
++ /*
++ * Output an INT32_MIN "transition" if appropriate; see above.
++ */
++ puttzcode(((ats[i] < PG_INT32_MIN) ?
++ PG_INT32_MIN : ats[i]), fp);
++ else
++ puttzcode64(ats[i], fp);
+ for (i = thistimei; i < thistimelim; ++i)
+ {
+ unsigned char uc;
+@@ -2302,8 +2328,8 @@ writezone(const char *const name, const
+ uc = typemap[types[i]];
+ fwrite(&uc, sizeof uc, 1, fp);
+ }
+- for (i = 0; i < typecnt; ++i)
+- if (writetype[i])
++ for (i = old0; i < typecnt; i++)
++ if (!omittype[i])
+ {
+ puttzcode(gmtoffs[i], fp);
+ putc(isdsts[i], fp);
+@@ -2346,12 +2372,13 @@ writezone(const char *const name, const
+ puttzcode64(todo, fp);
+ puttzcode(corr[i], fp);
+ }
+- for (i = 0; i < typecnt; ++i)
+- if (writetype[i])
++ for (i = old0; i < typecnt; i++)
++ if (!omittype[i])
+ putc(ttisstds[i], fp);
+- for (i = 0; i < typecnt; ++i)
+- if (writetype[i])
++ for (i = old0; i < typecnt; i++)
++ if (!omittype[i])
+ putc(ttisgmts[i], fp);
++ swaptypes(old0, defaulttype);
+ }
+ fprintf(fp, "\n%s\n", string);
+ close_file(fp, directory, name);
+@@ -2757,6 +2784,7 @@ outzone(const struct zone *zpfirst, ptrd
+ zic_t one = 1;
+ zic_t y2038_boundary = one << 31;
+ zic_t max_year0;
++ int defaulttype = -1;
+
+ max_abbr_len = 2 + max_format_len + max_abbrvar_len;
+ max_envvar_len = 2 * max_abbr_len + 5 * 9;
+@@ -2880,9 +2908,9 @@ outzone(const struct zone *zpfirst, ptrd
+ */
+ stdoff = 0;
+ zp = &zpfirst[i];
+- usestart = i > 0 && (zp - 1)->z_untiltime > early_time;
++ usestart = i > 0 && (zp - 1)->z_untiltime > min_time;
+ useuntil = i < (zonecount - 1);
+- if (useuntil && zp->z_untiltime <= early_time)
++ if (useuntil && zp->z_untiltime <= min_time)
+ continue;
+ gmtoff = zp->z_gmtoff;
+ eat(zp->z_filename, zp->z_linenum);
+@@ -2901,7 +2929,7 @@ outzone(const struct zone *zpfirst, ptrd
+ usestart = false;
+ }
+ else
+- addtt(early_time, type);
++ defaulttype = type;
+ }
+ else
+ for (year = min_year; year <= max_year; ++year)
+@@ -3032,6 +3060,8 @@ outzone(const struct zone *zpfirst, ptrd
+ offset = oadd(zp->z_gmtoff, rp->r_stdoff);
+ type = addtype(offset, ab, rp->r_isdst,
+ rp->r_todisstd, rp->r_todisgmt);
++ if (defaulttype < 0 && !rp->r_isdst)
++ defaulttype = type;
+ if (rp->r_hiyear == ZIC_MAX
+ && !(0 <= lastatmax
+ && ktime < attypes[lastatmax].at))
+@@ -3050,11 +3080,15 @@ outzone(const struct zone *zpfirst, ptrd
+ if (*startbuf == '\0')
+ error(_("cannot determine time zone abbreviation to use just after until time"));
+ else
+- addtt(starttime,
+- addtype(startoff, startbuf,
+- startoff != zp->z_gmtoff,
+- startttisstd,
+- startttisgmt));
++ {
++ bool isdst = startoff != zp->z_gmtoff;
++
++ type = addtype(startoff, startbuf, isdst,
++ startttisstd, startttisgmt);
++ if (defaulttype < 0 && !isdst)
++ defaulttype = type;
++ addtt(starttime, type);
++ }
+ }
+
+ /*
+@@ -3071,6 +3105,8 @@ outzone(const struct zone *zpfirst, ptrd
+ starttime = tadd(starttime, -gmtoff);
+ }
+ }
++ if (defaulttype < 0)
++ defaulttype = 0;
+ if (0 <= lastatmax)
+ attypes[lastatmax].dontmerge = true;
+ if (do_extend)
+@@ -3100,7 +3136,7 @@ outzone(const struct zone *zpfirst, ptrd
+ attypes[timecnt - 1].dontmerge = true;
+ }
+ }
+- writezone(zpfirst->z_name, envvar, version);
++ writezone(zpfirst->z_name, envvar, version, defaulttype);
+ free(startbuf);
+ free(ab);
+ free(envvar);
+@@ -3109,21 +3145,6 @@ outzone(const struct zone *zpfirst, ptrd
+ static void
+ addtt(zic_t starttime, int type)
+ {
+- if (starttime <= early_time
+- || (timecnt == 1 && attypes[0].at < early_time))
+- {
+- gmtoffs[0] = gmtoffs[type];
+- isdsts[0] = isdsts[type];
+- ttisstds[0] = ttisstds[type];
+- ttisgmts[0] = ttisgmts[type];
+- if (abbrinds[type] != 0)
+- strcpy(chars, &chars[abbrinds[type]]);
+- abbrinds[0] = 0;
+- charcnt = strlen(chars) + 1;
+- typecnt = 1;
+- timecnt = 0;
+- type = 0;
+- }
+ attypes = growalloc(attypes, sizeof *attypes, timecnt, &timecnt_alloc);
+ attypes[timecnt].at = starttime;
+ attypes[timecnt].dontmerge = false;
+@@ -3361,7 +3382,7 @@ is_alpha(char a)
+ }
+
+ /* If A is an uppercase character in the C locale, return its lowercase
+- * counterpart. Otherwise, return A. */
++ counterpart. Otherwise, return A. */
+ static char
+ lowerit(char a)
+ {
+@@ -3628,6 +3649,18 @@ rpytime(const struct rule *rp, zic_t wan
+ dayoff = 0;
+ m = TM_JANUARY;
+ y = EPOCH_YEAR;
++ if (y < wantedy)
++ {
++ wantedy -= y;
++ dayoff = (wantedy / YEARSPERREPEAT) * (SECSPERREPEAT / SECSPERDAY);
++ wantedy %= YEARSPERREPEAT;
++ wantedy += y;
++ }
++ else if (wantedy < 0)
++ {
++ dayoff = (wantedy / YEARSPERREPEAT) * (SECSPERREPEAT / SECSPERDAY);
++ wantedy %= YEARSPERREPEAT;
++ }
+ while (wantedy != y)
+ {
+ if (wantedy > y)
+@@ -3706,7 +3739,6 @@ will not work with pre-2004 versions of
+ if (dayoff > max_time / SECSPERDAY)
+ return max_time;
+ t = (zic_t) dayoff * SECSPERDAY;
+-
+ return tadd(t, rp->r_tod);
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Update-time-zone-data-files-to-tzdata-release-2018f.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Update-time-zone-data-files-to-tzdata-release-2018f.patch
new file mode 100644
index 0000000..41e763c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Update-time-zone-data-files-to-tzdata-release-2018f.patch
@@ -0,0 +1,6452 @@
+From 13877d30f2ec93f6043937f76af207dcc614a4e7 Mon Sep 17 00:00:00 2001
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Fri, 19 Oct 2018 17:01:34 -0400
+Subject: [PATCH] Update time zone data files to tzdata release 2018f.
+
+DST law changes in Chile, Fiji, and Russia (Volgograd).
+Historical corrections for China, Japan, Macau, and North Korea.
+
+Note: like the previous tzdata update, this involves a depressingly
+large amount of semantically-meaningless churn in tzdata.zi. That
+is a consequence of upstream's data compression method assigning
+unstable abbreviations to DST rulesets. I complained about that
+to them last time, and this version now uses an assignment method
+that pays some heed to not changing abbreviations unnecessarily.
+So hopefully, that'll be better going forward.
+
+Upstream-Status: Backport
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ src/timezone/data/tzdata.zi | 5273 +++++++++++++++++++-------------------
+ src/timezone/known_abbrevs.txt | 1 +
+ src/timezone/tznames/America.txt | 3 +
+ src/timezone/tznames/Asia.txt | 4 +
+ src/timezone/tznames/Default | 3 +
+ src/timezone/tznames/Pacific.txt | 3 +
+ 6 files changed, 2660 insertions(+), 2627 deletions(-)
+
+diff --git a/src/timezone/data/tzdata.zi b/src/timezone/data/tzdata.zi
+index c470112..6d98902 100644
+--- a/src/timezone/data/tzdata.zi
++++ b/src/timezone/data/tzdata.zi
+@@ -1,36 +1,36 @@
+-# version 2018e
++# version 2018f
+ # This zic input file is in the public domain.
+-R A 1916 o - Jun 14 23s 1 S
+-R A 1916 1919 - O Sun>=1 23s 0 -
+-R A 1917 o - Mar 24 23s 1 S
+-R A 1918 o - Mar 9 23s 1 S
+-R A 1919 o - Mar 1 23s 1 S
+-R A 1920 o - F 14 23s 1 S
+-R A 1920 o - O 23 23s 0 -
+-R A 1921 o - Mar 14 23s 1 S
+-R A 1921 o - Jun 21 23s 0 -
+-R A 1939 o - S 11 23s 1 S
+-R A 1939 o - N 19 1 0 -
+-R A 1944 1945 - Ap M>=1 2 1 S
+-R A 1944 o - O 8 2 0 -
+-R A 1945 o - S 16 1 0 -
+-R A 1971 o - Ap 25 23s 1 S
+-R A 1971 o - S 26 23s 0 -
+-R A 1977 o - May 6 0 1 S
+-R A 1977 o - O 21 0 0 -
+-R A 1978 o - Mar 24 1 1 S
+-R A 1978 o - S 22 3 0 -
+-R A 1980 o - Ap 25 0 1 S
+-R A 1980 o - O 31 2 0 -
++R d 1916 o - Jun 14 23s 1 S
++R d 1916 1919 - O Sun>=1 23s 0 -
++R d 1917 o - Mar 24 23s 1 S
++R d 1918 o - Mar 9 23s 1 S
++R d 1919 o - Mar 1 23s 1 S
++R d 1920 o - F 14 23s 1 S
++R d 1920 o - O 23 23s 0 -
++R d 1921 o - Mar 14 23s 1 S
++R d 1921 o - Jun 21 23s 0 -
++R d 1939 o - S 11 23s 1 S
++R d 1939 o - N 19 1 0 -
++R d 1944 1945 - Ap M>=1 2 1 S
++R d 1944 o - O 8 2 0 -
++R d 1945 o - S 16 1 0 -
++R d 1971 o - Ap 25 23s 1 S
++R d 1971 o - S 26 23s 0 -
++R d 1977 o - May 6 0 1 S
++R d 1977 o - O 21 0 0 -
++R d 1978 o - Mar 24 1 1 S
++R d 1978 o - S 22 3 0 -
++R d 1980 o - Ap 25 0 1 S
++R d 1980 o - O 31 2 0 -
+ Z Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:1
+ 0:9:21 - PMT 1911 Mar 11
+-0 A WE%sT 1940 F 25 2
+-1 A CE%sT 1946 O 7
++0 d WE%sT 1940 F 25 2
++1 d CE%sT 1946 O 7
+ 0 - WET 1956 Ja 29
+ 1 - CET 1963 Ap 14
+-0 A WE%sT 1977 O 21
+-1 A CE%sT 1979 O 26
+-0 A WE%sT 1981 May
++0 d WE%sT 1977 O 21
++1 d CE%sT 1979 O 26
++0 d WE%sT 1981 May
+ 1 - CET
+ Z Atlantic/Cape_Verde -1:34:4 - LMT 1912 Ja 1 2u
+ -2 - -02 1942 S
+@@ -52,44 +52,44 @@ Li Africa/Abidjan Africa/Lome
+ Li Africa/Abidjan Africa/Nouakchott
+ Li Africa/Abidjan Africa/Ouagadougou
+ Li Africa/Abidjan Atlantic/St_Helena
+-R B 1940 o - Jul 15 0 1 S
+-R B 1940 o - O 1 0 0 -
+-R B 1941 o - Ap 15 0 1 S
+-R B 1941 o - S 16 0 0 -
+-R B 1942 1944 - Ap 1 0 1 S
+-R B 1942 o - O 27 0 0 -
+-R B 1943 1945 - N 1 0 0 -
+-R B 1945 o - Ap 16 0 1 S
+-R B 1957 o - May 10 0 1 S
+-R B 1957 1958 - O 1 0 0 -
+-R B 1958 o - May 1 0 1 S
+-R B 1959 1981 - May 1 1 1 S
+-R B 1959 1965 - S 30 3 0 -
+-R B 1966 1994 - O 1 3 0 -
+-R B 1982 o - Jul 25 1 1 S
+-R B 1983 o - Jul 12 1 1 S
+-R B 1984 1988 - May 1 1 1 S
+-R B 1989 o - May 6 1 1 S
+-R B 1990 1994 - May 1 1 1 S
+-R B 1995 2010 - Ap lastF 0s 1 S
+-R B 1995 2005 - S lastTh 24 0 -
+-R B 2006 o - S 21 24 0 -
+-R B 2007 o - S Th>=1 24 0 -
+-R B 2008 o - Au lastTh 24 0 -
+-R B 2009 o - Au 20 24 0 -
+-R B 2010 o - Au 10 24 0 -
+-R B 2010 o - S 9 24 1 S
+-R B 2010 o - S lastTh 24 0 -
+-R B 2014 o - May 15 24 1 S
+-R B 2014 o - Jun 26 24 0 -
+-R B 2014 o - Jul 31 24 1 S
+-R B 2014 o - S lastTh 24 0 -
++R K 1940 o - Jul 15 0 1 S
++R K 1940 o - O 1 0 0 -
++R K 1941 o - Ap 15 0 1 S
++R K 1941 o - S 16 0 0 -
++R K 1942 1944 - Ap 1 0 1 S
++R K 1942 o - O 27 0 0 -
++R K 1943 1945 - N 1 0 0 -
++R K 1945 o - Ap 16 0 1 S
++R K 1957 o - May 10 0 1 S
++R K 1957 1958 - O 1 0 0 -
++R K 1958 o - May 1 0 1 S
++R K 1959 1981 - May 1 1 1 S
++R K 1959 1965 - S 30 3 0 -
++R K 1966 1994 - O 1 3 0 -
++R K 1982 o - Jul 25 1 1 S
++R K 1983 o - Jul 12 1 1 S
++R K 1984 1988 - May 1 1 1 S
++R K 1989 o - May 6 1 1 S
++R K 1990 1994 - May 1 1 1 S
++R K 1995 2010 - Ap lastF 0s 1 S
++R K 1995 2005 - S lastTh 24 0 -
++R K 2006 o - S 21 24 0 -
++R K 2007 o - S Th>=1 24 0 -
++R K 2008 o - Au lastTh 24 0 -
++R K 2009 o - Au 20 24 0 -
++R K 2010 o - Au 10 24 0 -
++R K 2010 o - S 9 24 1 S
++R K 2010 o - S lastTh 24 0 -
++R K 2014 o - May 15 24 1 S
++R K 2014 o - Jun 26 24 0 -
++R K 2014 o - Jul 31 24 1 S
++R K 2014 o - S lastTh 24 0 -
+ Z Africa/Cairo 2:5:9 - LMT 1900 O
+-2 B EE%sT
+-R C 1920 1942 - S 1 0 0:20 -
+-R C 1920 1942 - D 31 0 0 -
++2 K EE%sT
++R GH 1920 1942 - S 1 0 0:20 -
++R GH 1920 1942 - D 31 0 0 -
+ Z Africa/Accra -0:0:52 - LMT 1918
+-0 C GMT/+0020
++0 GH GMT/+0020
+ Z Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u
+ -1 - -01 1975
+ 0 - GMT
+@@ -111,99 +111,99 @@ Z Africa/Monrovia -0:43:8 - LMT 1882
+ -0:43:8 - MMT 1919 Mar
+ -0:44:30 - MMT 1972 Ja 7
+ 0 - GMT
+-R D 1951 o - O 14 2 1 S
+-R D 1952 o - Ja 1 0 0 -
+-R D 1953 o - O 9 2 1 S
+-R D 1954 o - Ja 1 0 0 -
+-R D 1955 o - S 30 0 1 S
+-R D 1956 o - Ja 1 0 0 -
+-R D 1982 1984 - Ap 1 0 1 S
+-R D 1982 1985 - O 1 0 0 -
+-R D 1985 o - Ap 6 0 1 S
+-R D 1986 o - Ap 4 0 1 S
+-R D 1986 o - O 3 0 0 -
+-R D 1987 1989 - Ap 1 0 1 S
+-R D 1987 1989 - O 1 0 0 -
+-R D 1997 o - Ap 4 0 1 S
+-R D 1997 o - O 4 0 0 -
+-R D 2013 o - Mar lastF 1 1 S
+-R D 2013 o - O lastF 2 0 -
++R L 1951 o - O 14 2 1 S
++R L 1952 o - Ja 1 0 0 -
++R L 1953 o - O 9 2 1 S
++R L 1954 o - Ja 1 0 0 -
++R L 1955 o - S 30 0 1 S
++R L 1956 o - Ja 1 0 0 -
++R L 1982 1984 - Ap 1 0 1 S
++R L 1982 1985 - O 1 0 0 -
++R L 1985 o - Ap 6 0 1 S
++R L 1986 o - Ap 4 0 1 S
++R L 1986 o - O 3 0 0 -
++R L 1987 1989 - Ap 1 0 1 S
++R L 1987 1989 - O 1 0 0 -
++R L 1997 o - Ap 4 0 1 S
++R L 1997 o - O 4 0 0 -
++R L 2013 o - Mar lastF 1 1 S
++R L 2013 o - O lastF 2 0 -
+ Z Africa/Tripoli 0:52:44 - LMT 1920
+-1 D CE%sT 1959
++1 L CE%sT 1959
+ 2 - EET 1982
+-1 D CE%sT 1990 May 4
++1 L CE%sT 1990 May 4
+ 2 - EET 1996 S 30
+-1 D CE%sT 1997 O 4
++1 L CE%sT 1997 O 4
+ 2 - EET 2012 N 10 2
+-1 D CE%sT 2013 O 25 2
++1 L CE%sT 2013 O 25 2
+ 2 - EET
+-R E 1982 o - O 10 0 1 -
+-R E 1983 o - Mar 21 0 0 -
+-R E 2008 o - O lastSun 2 1 -
+-R E 2009 o - Mar lastSun 2 0 -
++R MU 1982 o - O 10 0 1 -
++R MU 1983 o - Mar 21 0 0 -
++R MU 2008 o - O lastSun 2 1 -
++R MU 2009 o - Mar lastSun 2 0 -
+ Z Indian/Mauritius 3:50 - LMT 1907
+-4 E +04/+05
+-R F 1939 o - S 12 0 1 S
+-R F 1939 o - N 19 0 0 -
+-R F 1940 o - F 25 0 1 S
+-R F 1945 o - N 18 0 0 -
+-R F 1950 o - Jun 11 0 1 S
+-R F 1950 o - O 29 0 0 -
+-R F 1967 o - Jun 3 12 1 S
+-R F 1967 o - O 1 0 0 -
+-R F 1974 o - Jun 24 0 1 S
+-R F 1974 o - S 1 0 0 -
+-R F 1976 1977 - May 1 0 1 S
+-R F 1976 o - Au 1 0 0 -
+-R F 1977 o - S 28 0 0 -
+-R F 1978 o - Jun 1 0 1 S
+-R F 1978 o - Au 4 0 0 -
+-R F 2008 o - Jun 1 0 1 S
+-R F 2008 o - S 1 0 0 -
+-R F 2009 o - Jun 1 0 1 S
+-R F 2009 o - Au 21 0 0 -
+-R F 2010 o - May 2 0 1 S
+-R F 2010 o - Au 8 0 0 -
+-R F 2011 o - Ap 3 0 1 S
+-R F 2011 o - Jul 31 0 0 -
+-R F 2012 2013 - Ap lastSun 2 1 S
+-R F 2012 o - Jul 20 3 0 -
+-R F 2012 o - Au 20 2 1 S
+-R F 2012 o - S 30 3 0 -
+-R F 2013 o - Jul 7 3 0 -
+-R F 2013 o - Au 10 2 1 S
+-R F 2013 ma - O lastSun 3 0 -
+-R F 2014 2021 - Mar lastSun 2 1 S
+-R F 2014 o - Jun 28 3 0 -
+-R F 2014 o - Au 2 2 1 S
+-R F 2015 o - Jun 14 3 0 -
+-R F 2015 o - Jul 19 2 1 S
+-R F 2016 o - Jun 5 3 0 -
+-R F 2016 o - Jul 10 2 1 S
+-R F 2017 o - May 21 3 0 -
+-R F 2017 o - Jul 2 2 1 S
+-R F 2018 o - May 13 3 0 -
+-R F 2018 o - Jun 17 2 1 S
+-R F 2019 o - May 5 3 0 -
+-R F 2019 o - Jun 9 2 1 S
+-R F 2020 o - Ap 19 3 0 -
+-R F 2020 o - May 24 2 1 S
+-R F 2021 o - Ap 11 3 0 -
+-R F 2021 o - May 16 2 1 S
+-R F 2022 o - May 8 2 1 S
+-R F 2023 o - Ap 23 2 1 S
+-R F 2024 o - Ap 14 2 1 S
+-R F 2025 o - Ap 6 2 1 S
+-R F 2026 ma - Mar lastSun 2 1 S
+-R F 2036 o - O 19 3 0 -
+-R F 2037 o - O 4 3 0 -
++4 MU +04/+05
++R M 1939 o - S 12 0 1 S
++R M 1939 o - N 19 0 0 -
++R M 1940 o - F 25 0 1 S
++R M 1945 o - N 18 0 0 -
++R M 1950 o - Jun 11 0 1 S
++R M 1950 o - O 29 0 0 -
++R M 1967 o - Jun 3 12 1 S
++R M 1967 o - O 1 0 0 -
++R M 1974 o - Jun 24 0 1 S
++R M 1974 o - S 1 0 0 -
++R M 1976 1977 - May 1 0 1 S
++R M 1976 o - Au 1 0 0 -
++R M 1977 o - S 28 0 0 -
++R M 1978 o - Jun 1 0 1 S
++R M 1978 o - Au 4 0 0 -
++R M 2008 o - Jun 1 0 1 S
++R M 2008 o - S 1 0 0 -
++R M 2009 o - Jun 1 0 1 S
++R M 2009 o - Au 21 0 0 -
++R M 2010 o - May 2 0 1 S
++R M 2010 o - Au 8 0 0 -
++R M 2011 o - Ap 3 0 1 S
++R M 2011 o - Jul 31 0 0 -
++R M 2012 2013 - Ap lastSun 2 1 S
++R M 2012 o - Jul 20 3 0 -
++R M 2012 o - Au 20 2 1 S
++R M 2012 o - S 30 3 0 -
++R M 2013 o - Jul 7 3 0 -
++R M 2013 o - Au 10 2 1 S
++R M 2013 ma - O lastSun 3 0 -
++R M 2014 2021 - Mar lastSun 2 1 S
++R M 2014 o - Jun 28 3 0 -
++R M 2014 o - Au 2 2 1 S
++R M 2015 o - Jun 14 3 0 -
++R M 2015 o - Jul 19 2 1 S
++R M 2016 o - Jun 5 3 0 -
++R M 2016 o - Jul 10 2 1 S
++R M 2017 o - May 21 3 0 -
++R M 2017 o - Jul 2 2 1 S
++R M 2018 o - May 13 3 0 -
++R M 2018 o - Jun 17 2 1 S
++R M 2019 o - May 5 3 0 -
++R M 2019 o - Jun 9 2 1 S
++R M 2020 o - Ap 19 3 0 -
++R M 2020 o - May 24 2 1 S
++R M 2021 o - Ap 11 3 0 -
++R M 2021 o - May 16 2 1 S
++R M 2022 o - May 8 2 1 S
++R M 2023 o - Ap 23 2 1 S
++R M 2024 o - Ap 14 2 1 S
++R M 2025 o - Ap 6 2 1 S
++R M 2026 ma - Mar lastSun 2 1 S
++R M 2036 o - O 19 3 0 -
++R M 2037 o - O 4 3 0 -
+ Z Africa/Casablanca -0:30:20 - LMT 1913 O 26
+-0 F WE%sT 1984 Mar 16
++0 M WE%sT 1984 Mar 16
+ 1 - CET 1986
+-0 F WE%sT
++0 M WE%sT
+ Z Africa/El_Aaiun -0:52:48 - LMT 1934
+ -1 - -01 1976 Ap 14
+-0 F WE%sT
++0 M WE%sT
+ Z Africa/Maputo 2:10:20 - LMT 1903 Mar
+ 2 - CAT
+ Li Africa/Maputo Africa/Blantyre
+@@ -213,15 +213,15 @@ Li Africa/Maputo Africa/Harare
+ Li Africa/Maputo Africa/Kigali
+ Li Africa/Maputo Africa/Lubumbashi
+ Li Africa/Maputo Africa/Lusaka
+-R G 1994 o - Mar 21 0 -1 WAT
+-R G 1994 2017 - S Sun>=1 2 0 CAT
+-R G 1995 2017 - Ap Sun>=1 2 -1 WAT
++R NA 1994 o - Mar 21 0 -1 WAT
++R NA 1994 2017 - S Sun>=1 2 0 CAT
++R NA 1995 2017 - Ap Sun>=1 2 -1 WAT
+ Z Africa/Windhoek 1:8:24 - LMT 1892 F 8
+ 1:30 - +0130 1903 Mar
+ 2 - SAST 1942 S 20 2
+ 2 1 SAST 1943 Mar 21 2
+ 2 - SAST 1990 Mar 21
+-2 G %s
++2 NA %s
+ Z Africa/Lagos 0:13:36 - LMT 1919 S
+ 1 - WAT
+ Li Africa/Lagos Africa/Bangui
+@@ -241,52 +241,52 @@ Z Africa/Sao_Tome 0:26:56 - LMT 1884
+ 1 - WAT
+ Z Indian/Mahe 3:41:48 - LMT 1906 Jun
+ 4 - +04
+-R H 1942 1943 - S Sun>=15 2 1 -
+-R H 1943 1944 - Mar Sun>=15 2 0 -
++R SA 1942 1943 - S Sun>=15 2 1 -
++R SA 1943 1944 - Mar Sun>=15 2 0 -
+ Z Africa/Johannesburg 1:52 - LMT 1892 F 8
+ 1:30 - SAST 1903 Mar
+-2 H SAST
++2 SA SAST
+ Li Africa/Johannesburg Africa/Maseru
+ Li Africa/Johannesburg Africa/Mbabane
+-R I 1970 o - May 1 0 1 S
+-R I 1970 1985 - O 15 0 0 -
+-R I 1971 o - Ap 30 0 1 S
+-R I 1972 1985 - Ap lastSun 0 1 S
++R SD 1970 o - May 1 0 1 S
++R SD 1970 1985 - O 15 0 0 -
++R SD 1971 o - Ap 30 0 1 S
++R SD 1972 1985 - Ap lastSun 0 1 S
+ Z Africa/Khartoum 2:10:8 - LMT 1931
+-2 I CA%sT 2000 Ja 15 12
++2 SD CA%sT 2000 Ja 15 12
+ 3 - EAT 2017 N
+ 2 - CAT
+ Z Africa/Juba 2:6:28 - LMT 1931
+-2 I CA%sT 2000 Ja 15 12
++2 SD CA%sT 2000 Ja 15 12
+ 3 - EAT
+-R J 1939 o - Ap 15 23s 1 S
+-R J 1939 o - N 18 23s 0 -
+-R J 1940 o - F 25 23s 1 S
+-R J 1941 o - O 6 0 0 -
+-R J 1942 o - Mar 9 0 1 S
+-R J 1942 o - N 2 3 0 -
+-R J 1943 o - Mar 29 2 1 S
+-R J 1943 o - Ap 17 2 0 -
+-R J 1943 o - Ap 25 2 1 S
+-R J 1943 o - O 4 2 0 -
+-R J 1944 1945 - Ap M>=1 2 1 S
+-R J 1944 o - O 8 0 0 -
+-R J 1945 o - S 16 0 0 -
+-R J 1977 o - Ap 30 0s 1 S
+-R J 1977 o - S 24 0s 0 -
+-R J 1978 o - May 1 0s 1 S
+-R J 1978 o - O 1 0s 0 -
+-R J 1988 o - Jun 1 0s 1 S
+-R J 1988 1990 - S lastSun 0s 0 -
+-R J 1989 o - Mar 26 0s 1 S
+-R J 1990 o - May 1 0s 1 S
+-R J 2005 o - May 1 0s 1 S
+-R J 2005 o - S 30 1s 0 -
+-R J 2006 2008 - Mar lastSun 2s 1 S
+-R J 2006 2008 - O lastSun 2s 0 -
++R n 1939 o - Ap 15 23s 1 S
++R n 1939 o - N 18 23s 0 -
++R n 1940 o - F 25 23s 1 S
++R n 1941 o - O 6 0 0 -
++R n 1942 o - Mar 9 0 1 S
++R n 1942 o - N 2 3 0 -
++R n 1943 o - Mar 29 2 1 S
++R n 1943 o - Ap 17 2 0 -
++R n 1943 o - Ap 25 2 1 S
++R n 1943 o - O 4 2 0 -
++R n 1944 1945 - Ap M>=1 2 1 S
++R n 1944 o - O 8 0 0 -
++R n 1945 o - S 16 0 0 -
++R n 1977 o - Ap 30 0s 1 S
++R n 1977 o - S 24 0s 0 -
++R n 1978 o - May 1 0s 1 S
++R n 1978 o - O 1 0s 0 -
++R n 1988 o - Jun 1 0s 1 S
++R n 1988 1990 - S lastSun 0s 0 -
++R n 1989 o - Mar 26 0s 1 S
++R n 1990 o - May 1 0s 1 S
++R n 2005 o - May 1 0s 1 S
++R n 2005 o - S 30 1s 0 -
++R n 2006 2008 - Mar lastSun 2s 1 S
++R n 2006 2008 - O lastSun 2s 0 -
+ Z Africa/Tunis 0:40:44 - LMT 1881 May 12
+ 0:9:21 - PMT 1911 Mar 11
+-1 J CE%sT
++1 n CE%sT
+ Z Antarctica/Casey 0 - -00 1969
+ 8 - +08 2009 O 18 2
+ 11 - +11 2010 Mar 5 2
+@@ -314,10 +314,10 @@ Z Antarctica/DumontDUrville 0 - -00 1947
+ 10 - +10
+ Z Antarctica/Syowa 0 - -00 1957 Ja 29
+ 3 - +03
+-R K 2005 ma - Mar lastSun 1u 2 +02
+-R K 2004 ma - O lastSun 1u 0 +00
++R Tr 2005 ma - Mar lastSun 1u 2 +02
++R Tr 2004 ma - O lastSun 1u 0 +00
+ Z Antarctica/Troll 0 - -00 2005 F 12
+-0 K %s
++0 Tr %s
+ Z Antarctica/Vostok 0 - -00 1957 D 16
+ 6 - +06
+ Z Antarctica/Rothera 0 - -00 1976 D
+@@ -325,33 +325,33 @@ Z Antarctica/Rothera 0 - -00 1976 D
+ Z Asia/Kabul 4:36:48 - LMT 1890
+ 4 - +04 1945
+ 4:30 - +0430
+-R L 2011 o - Mar lastSun 2s 1 -
+-R L 2011 o - O lastSun 2s 0 -
++R AM 2011 o - Mar lastSun 2s 1 -
++R AM 2011 o - O lastSun 2s 0 -
+ Z Asia/Yerevan 2:58 - LMT 1924 May 2
+ 3 - +03 1957 Mar
+-4 M +04/+05 1991 Mar 31 2s
+-3 M +03/+04 1995 S 24 2s
++4 R +04/+05 1991 Mar 31 2s
++3 R +03/+04 1995 S 24 2s
+ 4 - +04 1997
+-4 M +04/+05 2011
+-4 L +04/+05
+-R N 1997 2015 - Mar lastSun 4 1 -
+-R N 1997 2015 - O lastSun 5 0 -
++4 R +04/+05 2011
++4 AM +04/+05
++R AZ 1997 2015 - Mar lastSun 4 1 -
++R AZ 1997 2015 - O lastSun 5 0 -
+ Z Asia/Baku 3:19:24 - LMT 1924 May 2
+ 3 - +03 1957 Mar
+-4 M +04/+05 1991 Mar 31 2s
+-3 M +03/+04 1992 S lastSun 2s
++4 R +04/+05 1991 Mar 31 2s
++3 R +03/+04 1992 S lastSun 2s
+ 4 - +04 1996
+-4 O +04/+05 1997
+-4 N +04/+05
+-R P 2009 o - Jun 19 23 1 -
+-R P 2009 o - D 31 24 0 -
++4 E +04/+05 1997
++4 AZ +04/+05
++R BD 2009 o - Jun 19 23 1 -
++R BD 2009 o - D 31 24 0 -
+ Z Asia/Dhaka 6:1:40 - LMT 1890
+ 5:53:20 - HMT 1941 O
+ 6:30 - +0630 1942 May 15
+ 5:30 - +0530 1942 S
+ 6:30 - +0630 1951 S 30
+ 6 - +06 2009
+-6 P +06/+07
++6 BD +06/+07
+ Z Asia/Thimphu 5:58:36 - LMT 1947 Au 15
+ 5:30 - +0530 1987 O
+ 6 - +06
+@@ -366,103 +366,127 @@ Z Asia/Yangon 6:24:47 - LMT 1880
+ 6:30 - +0630 1942 May
+ 9 - +09 1945 May 3
+ 6:30 - +0630
+-R Q 1940 o - Jun 3 0 1 D
+-R Q 1940 1941 - O 1 0 0 S
+-R Q 1941 o - Mar 16 0 1 D
+-R R 1986 o - May 4 0 1 D
+-R R 1986 1991 - S Sun>=11 0 0 S
+-R R 1987 1991 - Ap Sun>=10 0 1 D
++R Sh 1940 o - Jun 1 0 1 D
++R Sh 1940 o - O 12 24 0 S
++R Sh 1941 o - Mar 15 0 1 D
++R Sh 1941 o - N 1 24 0 S
++R Sh 1942 o - Ja 31 0 1 D
++R Sh 1945 o - S 1 24 0 S
++R Sh 1946 o - May 15 0 1 D
++R Sh 1946 o - S 30 24 0 S
++R Sh 1947 o - Ap 15 0 1 D
++R Sh 1947 o - O 31 24 0 S
++R Sh 1948 1949 - May 1 0 1 D
++R Sh 1948 1949 - S 30 24 0 S
++R CN 1986 o - May 4 2 1 D
++R CN 1986 1991 - S Sun>=11 2 0 S
++R CN 1987 1991 - Ap Sun>=11 2 1 D
+ Z Asia/Shanghai 8:5:43 - LMT 1901
+-8 Q C%sT 1949
+-8 R C%sT
++8 Sh C%sT 1949 May 28
++8 CN C%sT
+ Z Asia/Urumqi 5:50:20 - LMT 1928
+ 6 - +06
+-R S 1941 o - Ap 1 3:30 1 S
+-R S 1941 o - S 30 3:30 0 -
+-R S 1946 o - Ap 20 3:30 1 S
+-R S 1946 o - D 1 3:30 0 -
+-R S 1947 o - Ap 13 3:30 1 S
+-R S 1947 o - D 30 3:30 0 -
+-R S 1948 o - May 2 3:30 1 S
+-R S 1948 1951 - O lastSun 3:30 0 -
+-R S 1952 o - O 25 3:30 0 -
+-R S 1949 1953 - Ap Sun>=1 3:30 1 S
+-R S 1953 o - N 1 3:30 0 -
+-R S 1954 1964 - Mar Sun>=18 3:30 1 S
+-R S 1954 o - O 31 3:30 0 -
+-R S 1955 1964 - N Sun>=1 3:30 0 -
+-R S 1965 1976 - Ap Sun>=16 3:30 1 S
+-R S 1965 1976 - O Sun>=16 3:30 0 -
+-R S 1973 o - D 30 3:30 1 S
+-R S 1979 o - May Sun>=8 3:30 1 S
+-R S 1979 o - O Sun>=16 3:30 0 -
++R HK 1941 o - Ap 1 3:30 1 S
++R HK 1941 o - S 30 3:30 0 -
++R HK 1946 o - Ap 20 3:30 1 S
++R HK 1946 o - D 1 3:30 0 -
++R HK 1947 o - Ap 13 3:30 1 S
++R HK 1947 o - D 30 3:30 0 -
++R HK 1948 o - May 2 3:30 1 S
++R HK 1948 1951 - O lastSun 3:30 0 -
++R HK 1952 o - O 25 3:30 0 -
++R HK 1949 1953 - Ap Sun>=1 3:30 1 S
++R HK 1953 o - N 1 3:30 0 -
++R HK 1954 1964 - Mar Sun>=18 3:30 1 S
++R HK 1954 o - O 31 3:30 0 -
++R HK 1955 1964 - N Sun>=1 3:30 0 -
++R HK 1965 1976 - Ap Sun>=16 3:30 1 S
++R HK 1965 1976 - O Sun>=16 3:30 0 -
++R HK 1973 o - D 30 3:30 1 S
++R HK 1979 o - May Sun>=8 3:30 1 S
++R HK 1979 o - O Sun>=16 3:30 0 -
+ Z Asia/Hong_Kong 7:36:42 - LMT 1904 O 30
+-8 S HK%sT 1941 D 25
++8 HK HK%sT 1941 D 25
+ 9 - JST 1945 S 15
+-8 S HK%sT
+-R T 1946 o - May 15 0 1 D
+-R T 1946 o - O 1 0 0 S
+-R T 1947 o - Ap 15 0 1 D
+-R T 1947 o - N 1 0 0 S
+-R T 1948 1951 - May 1 0 1 D
+-R T 1948 1951 - O 1 0 0 S
+-R T 1952 o - Mar 1 0 1 D
+-R T 1952 1954 - N 1 0 0 S
+-R T 1953 1959 - Ap 1 0 1 D
+-R T 1955 1961 - O 1 0 0 S
+-R T 1960 1961 - Jun 1 0 1 D
+-R T 1974 1975 - Ap 1 0 1 D
+-R T 1974 1975 - O 1 0 0 S
+-R T 1979 o - Jul 1 0 1 D
+-R T 1979 o - O 1 0 0 S
++8 HK HK%sT
++R f 1946 o - May 15 0 1 D
++R f 1946 o - O 1 0 0 S
++R f 1947 o - Ap 15 0 1 D
++R f 1947 o - N 1 0 0 S
++R f 1948 1951 - May 1 0 1 D
++R f 1948 1951 - O 1 0 0 S
++R f 1952 o - Mar 1 0 1 D
++R f 1952 1954 - N 1 0 0 S
++R f 1953 1959 - Ap 1 0 1 D
++R f 1955 1961 - O 1 0 0 S
++R f 1960 1961 - Jun 1 0 1 D
++R f 1974 1975 - Ap 1 0 1 D
++R f 1974 1975 - O 1 0 0 S
++R f 1979 o - Jul 1 0 1 D
++R f 1979 o - O 1 0 0 S
+ Z Asia/Taipei 8:6 - LMT 1896
+ 8 - CST 1937 O
+ 9 - JST 1945 S 21 1
+-8 T C%sT
+-R U 1961 1962 - Mar Sun>=16 3:30 1 D
+-R U 1961 1964 - N Sun>=1 3:30 0 S
+-R U 1963 o - Mar Sun>=16 0 1 D
+-R U 1964 o - Mar Sun>=16 3:30 1 D
+-R U 1965 o - Mar Sun>=16 0 1 D
+-R U 1965 o - O 31 0 0 S
+-R U 1966 1971 - Ap Sun>=16 3:30 1 D
+-R U 1966 1971 - O Sun>=16 3:30 0 S
+-R U 1972 1974 - Ap Sun>=15 0 1 D
+-R U 1972 1973 - O Sun>=15 0 0 S
+-R U 1974 1977 - O Sun>=15 3:30 0 S
+-R U 1975 1977 - Ap Sun>=15 3:30 1 D
+-R U 1978 1980 - Ap Sun>=15 0 1 D
+-R U 1978 1980 - O Sun>=15 0 0 S
+-Z Asia/Macau 7:34:20 - LMT 1911 D 31 16u
+-8 U C%sT
+-R V 1975 o - Ap 13 0 1 S
+-R V 1975 o - O 12 0 0 -
+-R V 1976 o - May 15 0 1 S
+-R V 1976 o - O 11 0 0 -
+-R V 1977 1980 - Ap Sun>=1 0 1 S
+-R V 1977 o - S 25 0 0 -
+-R V 1978 o - O 2 0 0 -
+-R V 1979 1997 - S lastSun 0 0 -
+-R V 1981 1998 - Mar lastSun 0 1 S
++8 f C%sT
++R _ 1942 1943 - Ap 30 23 1 -
++R _ 1942 o - N 17 23 0 -
++R _ 1943 o - S 30 23 0 S
++R _ 1946 o - Ap 30 23s 1 D
++R _ 1946 o - S 30 23s 0 S
++R _ 1947 o - Ap 19 23s 1 D
++R _ 1947 o - N 30 23s 0 S
++R _ 1948 o - May 2 23s 1 D
++R _ 1948 o - O 31 23s 0 S
++R _ 1949 1950 - Ap Sat>=1 23s 1 D
++R _ 1949 1950 - O lastSat 23s 0 S
++R _ 1951 o - Mar 31 23s 1 D
++R _ 1951 o - O 28 23s 0 S
++R _ 1952 1953 - Ap Sat>=1 23s 1 D
++R _ 1952 o - N 1 23s 0 S
++R _ 1953 1954 - O lastSat 23s 0 S
++R _ 1954 1956 - Mar Sat>=17 23s 1 D
++R _ 1955 o - N 5 23s 0 S
++R _ 1956 1964 - N Sun>=1 3:30 0 S
++R _ 1957 1964 - Mar Sun>=18 3:30 1 D
++R _ 1965 1973 - Ap Sun>=16 3:30 1 D
++R _ 1965 1966 - O Sun>=16 2:30 0 S
++R _ 1967 1976 - O Sun>=16 3:30 0 S
++R _ 1973 o - D 30 3:30 1 D
++R _ 1975 1976 - Ap Sun>=16 3:30 1 D
++R _ 1979 o - May 13 3:30 1 D
++R _ 1979 o - O Sun>=16 3:30 0 S
++Z Asia/Macau 7:34:10 - LMT 1904 O 30
++8 - CST 1941 D 21 23
++9 _ +09/+10 1945 S 30 24
++8 _ C%sT
++R CY 1975 o - Ap 13 0 1 S
++R CY 1975 o - O 12 0 0 -
++R CY 1976 o - May 15 0 1 S
++R CY 1976 o - O 11 0 0 -
++R CY 1977 1980 - Ap Sun>=1 0 1 S
++R CY 1977 o - S 25 0 0 -
++R CY 1978 o - O 2 0 0 -
++R CY 1979 1997 - S lastSun 0 0 -
++R CY 1981 1998 - Mar lastSun 0 1 S
+ Z Asia/Nicosia 2:13:28 - LMT 1921 N 14
+-2 V EE%sT 1998 S
+-2 O EE%sT
++2 CY EE%sT 1998 S
++2 E EE%sT
+ Z Asia/Famagusta 2:15:48 - LMT 1921 N 14
+-2 V EE%sT 1998 S
+-2 O EE%sT 2016 S 8
++2 CY EE%sT 1998 S
++2 E EE%sT 2016 S 8
+ 3 - +03 2017 O 29 1u
+-2 O EE%sT
++2 E EE%sT
+ Li Asia/Nicosia Europe/Nicosia
+ Z Asia/Tbilisi 2:59:11 - LMT 1880
+ 2:59:11 - TBMT 1924 May 2
+ 3 - +03 1957 Mar
+-4 M +04/+05 1991 Mar 31 2s
+-3 M +03/+04 1992
+-3 W +03/+04 1994 S lastSun
+-4 W +04/+05 1996 O lastSun
++4 R +04/+05 1991 Mar 31 2s
++3 R +03/+04 1992
++3 e +03/+04 1994 S lastSun
++4 e +04/+05 1996 O lastSun
+ 4 1 +05 1997 Mar lastSun
+-4 W +04/+05 2004 Jun 27
+-3 M +03/+04 2005 Mar lastSun 2
++4 e +04/+05 2004 Jun 27
++3 R +03/+04 2005 Mar lastSun 2
+ 4 - +04
+ Z Asia/Dili 8:22:20 - LMT 1912
+ 8 - +08 1942 F 21 23
+@@ -504,72 +528,72 @@ Z Asia/Jayapura 9:22:48 - LMT 1932 N
+ 9 - +09 1944 S
+ 9:30 - +0930 1964
+ 9 - WIT
+-R X 1978 1980 - Mar 21 0 1 -
+-R X 1978 o - O 21 0 0 -
+-R X 1979 o - S 19 0 0 -
+-R X 1980 o - S 23 0 0 -
+-R X 1991 o - May 3 0 1 -
+-R X 1992 1995 - Mar 22 0 1 -
+-R X 1991 1995 - S 22 0 0 -
+-R X 1996 o - Mar 21 0 1 -
+-R X 1996 o - S 21 0 0 -
+-R X 1997 1999 - Mar 22 0 1 -
+-R X 1997 1999 - S 22 0 0 -
+-R X 2000 o - Mar 21 0 1 -
+-R X 2000 o - S 21 0 0 -
+-R X 2001 2003 - Mar 22 0 1 -
+-R X 2001 2003 - S 22 0 0 -
+-R X 2004 o - Mar 21 0 1 -
+-R X 2004 o - S 21 0 0 -
+-R X 2005 o - Mar 22 0 1 -
+-R X 2005 o - S 22 0 0 -
+-R X 2008 o - Mar 21 0 1 -
+-R X 2008 o - S 21 0 0 -
+-R X 2009 2011 - Mar 22 0 1 -
+-R X 2009 2011 - S 22 0 0 -
+-R X 2012 o - Mar 21 0 1 -
+-R X 2012 o - S 21 0 0 -
+-R X 2013 2015 - Mar 22 0 1 -
+-R X 2013 2015 - S 22 0 0 -
+-R X 2016 o - Mar 21 0 1 -
+-R X 2016 o - S 21 0 0 -
+-R X 2017 2019 - Mar 22 0 1 -
+-R X 2017 2019 - S 22 0 0 -
+-R X 2020 o - Mar 21 0 1 -
+-R X 2020 o - S 21 0 0 -
+-R X 2021 2023 - Mar 22 0 1 -
+-R X 2021 2023 - S 22 0 0 -
+-R X 2024 o - Mar 21 0 1 -
+-R X 2024 o - S 21 0 0 -
+-R X 2025 2027 - Mar 22 0 1 -
+-R X 2025 2027 - S 22 0 0 -
+-R X 2028 2029 - Mar 21 0 1 -
+-R X 2028 2029 - S 21 0 0 -
+-R X 2030 2031 - Mar 22 0 1 -
+-R X 2030 2031 - S 22 0 0 -
+-R X 2032 2033 - Mar 21 0 1 -
+-R X 2032 2033 - S 21 0 0 -
+-R X 2034 2035 - Mar 22 0 1 -
+-R X 2034 2035 - S 22 0 0 -
+-R X 2036 ma - Mar 21 0 1 -
+-R X 2036 ma - S 21 0 0 -
++R i 1978 1980 - Mar 21 0 1 -
++R i 1978 o - O 21 0 0 -
++R i 1979 o - S 19 0 0 -
++R i 1980 o - S 23 0 0 -
++R i 1991 o - May 3 0 1 -
++R i 1992 1995 - Mar 22 0 1 -
++R i 1991 1995 - S 22 0 0 -
++R i 1996 o - Mar 21 0 1 -
++R i 1996 o - S 21 0 0 -
++R i 1997 1999 - Mar 22 0 1 -
++R i 1997 1999 - S 22 0 0 -
++R i 2000 o - Mar 21 0 1 -
++R i 2000 o - S 21 0 0 -
++R i 2001 2003 - Mar 22 0 1 -
++R i 2001 2003 - S 22 0 0 -
++R i 2004 o - Mar 21 0 1 -
++R i 2004 o - S 21 0 0 -
++R i 2005 o - Mar 22 0 1 -
++R i 2005 o - S 22 0 0 -
++R i 2008 o - Mar 21 0 1 -
++R i 2008 o - S 21 0 0 -
++R i 2009 2011 - Mar 22 0 1 -
++R i 2009 2011 - S 22 0 0 -
++R i 2012 o - Mar 21 0 1 -
++R i 2012 o - S 21 0 0 -
++R i 2013 2015 - Mar 22 0 1 -
++R i 2013 2015 - S 22 0 0 -
++R i 2016 o - Mar 21 0 1 -
++R i 2016 o - S 21 0 0 -
++R i 2017 2019 - Mar 22 0 1 -
++R i 2017 2019 - S 22 0 0 -
++R i 2020 o - Mar 21 0 1 -
++R i 2020 o - S 21 0 0 -
++R i 2021 2023 - Mar 22 0 1 -
++R i 2021 2023 - S 22 0 0 -
++R i 2024 o - Mar 21 0 1 -
++R i 2024 o - S 21 0 0 -
++R i 2025 2027 - Mar 22 0 1 -
++R i 2025 2027 - S 22 0 0 -
++R i 2028 2029 - Mar 21 0 1 -
++R i 2028 2029 - S 21 0 0 -
++R i 2030 2031 - Mar 22 0 1 -
++R i 2030 2031 - S 22 0 0 -
++R i 2032 2033 - Mar 21 0 1 -
++R i 2032 2033 - S 21 0 0 -
++R i 2034 2035 - Mar 22 0 1 -
++R i 2034 2035 - S 22 0 0 -
++R i 2036 ma - Mar 21 0 1 -
++R i 2036 ma - S 21 0 0 -
+ Z Asia/Tehran 3:25:44 - LMT 1916
+ 3:25:44 - TMT 1946
+ 3:30 - +0330 1977 N
+-4 X +04/+05 1979
+-3:30 X +0330/+0430
+-R Y 1982 o - May 1 0 1 -
+-R Y 1982 1984 - O 1 0 0 -
+-R Y 1983 o - Mar 31 0 1 -
+-R Y 1984 1985 - Ap 1 0 1 -
+-R Y 1985 1990 - S lastSun 1s 0 -
+-R Y 1986 1990 - Mar lastSun 1s 1 -
+-R Y 1991 2007 - Ap 1 3s 1 -
+-R Y 1991 2007 - O 1 3s 0 -
++4 i +04/+05 1979
++3:30 i +0330/+0430
++R IQ 1982 o - May 1 0 1 -
++R IQ 1982 1984 - O 1 0 0 -
++R IQ 1983 o - Mar 31 0 1 -
++R IQ 1984 1985 - Ap 1 0 1 -
++R IQ 1985 1990 - S lastSun 1s 0 -
++R IQ 1986 1990 - Mar lastSun 1s 1 -
++R IQ 1991 2007 - Ap 1 3s 1 -
++R IQ 1991 2007 - O 1 3s 0 -
+ Z Asia/Baghdad 2:57:40 - LMT 1890
+ 2:57:36 - BMT 1918
+ 3 - +03 1982 May
+-3 Y +03/+04
++3 IQ +03/+04
+ R Z 1940 o - Jun 1 0 1 D
+ R Z 1942 1944 - N 1 0 0 S
+ R Z 1943 o - Ap 1 2 1 D
+@@ -659,163 +683,163 @@ R Z 2013 ma - O lastSun 2 0 S
+ Z Asia/Jerusalem 2:20:54 - LMT 1880
+ 2:20:40 - JMT 1918
+ 2 Z I%sT
+-R a 1948 o - May Sat>=1 24 1 D
+-R a 1948 1951 - S Sun>=9 0 0 S
+-R a 1949 o - Ap Sat>=1 24 1 D
+-R a 1950 1951 - May Sat>=1 24 1 D
++R JP 1948 o - May Sat>=1 24 1 D
++R JP 1948 1951 - S Sat>=8 25 0 S
++R JP 1949 o - Ap Sat>=1 24 1 D
++R JP 1950 1951 - May Sat>=1 24 1 D
+ Z Asia/Tokyo 9:18:59 - LMT 1887 D 31 15u
+-9 a J%sT
+-R b 1973 o - Jun 6 0 1 S
+-R b 1973 1975 - O 1 0 0 -
+-R b 1974 1977 - May 1 0 1 S
+-R b 1976 o - N 1 0 0 -
+-R b 1977 o - O 1 0 0 -
+-R b 1978 o - Ap 30 0 1 S
+-R b 1978 o - S 30 0 0 -
+-R b 1985 o - Ap 1 0 1 S
+-R b 1985 o - O 1 0 0 -
+-R b 1986 1988 - Ap F>=1 0 1 S
+-R b 1986 1990 - O F>=1 0 0 -
+-R b 1989 o - May 8 0 1 S
+-R b 1990 o - Ap 27 0 1 S
+-R b 1991 o - Ap 17 0 1 S
+-R b 1991 o - S 27 0 0 -
+-R b 1992 o - Ap 10 0 1 S
+-R b 1992 1993 - O F>=1 0 0 -
+-R b 1993 1998 - Ap F>=1 0 1 S
+-R b 1994 o - S F>=15 0 0 -
+-R b 1995 1998 - S F>=15 0s 0 -
+-R b 1999 o - Jul 1 0s 1 S
+-R b 1999 2002 - S lastF 0s 0 -
+-R b 2000 2001 - Mar lastTh 0s 1 S
+-R b 2002 2012 - Mar lastTh 24 1 S
+-R b 2003 o - O 24 0s 0 -
+-R b 2004 o - O 15 0s 0 -
+-R b 2005 o - S lastF 0s 0 -
+-R b 2006 2011 - O lastF 0s 0 -
+-R b 2013 o - D 20 0 0 -
+-R b 2014 ma - Mar lastTh 24 1 S
+-R b 2014 ma - O lastF 0s 0 -
++9 JP J%sT
++R J 1973 o - Jun 6 0 1 S
++R J 1973 1975 - O 1 0 0 -
++R J 1974 1977 - May 1 0 1 S
++R J 1976 o - N 1 0 0 -
++R J 1977 o - O 1 0 0 -
++R J 1978 o - Ap 30 0 1 S
++R J 1978 o - S 30 0 0 -
++R J 1985 o - Ap 1 0 1 S
++R J 1985 o - O 1 0 0 -
++R J 1986 1988 - Ap F>=1 0 1 S
++R J 1986 1990 - O F>=1 0 0 -
++R J 1989 o - May 8 0 1 S
++R J 1990 o - Ap 27 0 1 S
++R J 1991 o - Ap 17 0 1 S
++R J 1991 o - S 27 0 0 -
++R J 1992 o - Ap 10 0 1 S
++R J 1992 1993 - O F>=1 0 0 -
++R J 1993 1998 - Ap F>=1 0 1 S
++R J 1994 o - S F>=15 0 0 -
++R J 1995 1998 - S F>=15 0s 0 -
++R J 1999 o - Jul 1 0s 1 S
++R J 1999 2002 - S lastF 0s 0 -
++R J 2000 2001 - Mar lastTh 0s 1 S
++R J 2002 2012 - Mar lastTh 24 1 S
++R J 2003 o - O 24 0s 0 -
++R J 2004 o - O 15 0s 0 -
++R J 2005 o - S lastF 0s 0 -
++R J 2006 2011 - O lastF 0s 0 -
++R J 2013 o - D 20 0 0 -
++R J 2014 ma - Mar lastTh 24 1 S
++R J 2014 ma - O lastF 0s 0 -
+ Z Asia/Amman 2:23:44 - LMT 1931
+-2 b EE%sT
++2 J EE%sT
+ Z Asia/Almaty 5:7:48 - LMT 1924 May 2
+ 5 - +05 1930 Jun 21
+-6 M +06/+07 1991 Mar 31 2s
+-5 M +05/+06 1992 Ja 19 2s
+-6 M +06/+07 2004 O 31 2s
++6 R +06/+07 1991 Mar 31 2s
++5 R +05/+06 1992 Ja 19 2s
++6 R +06/+07 2004 O 31 2s
+ 6 - +06
+ Z Asia/Qyzylorda 4:21:52 - LMT 1924 May 2
+ 4 - +04 1930 Jun 21
+ 5 - +05 1981 Ap
+ 5 1 +06 1981 O
+ 6 - +06 1982 Ap
+-5 M +05/+06 1991 Mar 31 2s
+-4 M +04/+05 1991 S 29 2s
+-5 M +05/+06 1992 Ja 19 2s
+-6 M +06/+07 1992 Mar 29 2s
+-5 M +05/+06 2004 O 31 2s
++5 R +05/+06 1991 Mar 31 2s
++4 R +04/+05 1991 S 29 2s
++5 R +05/+06 1992 Ja 19 2s
++6 R +06/+07 1992 Mar 29 2s
++5 R +05/+06 2004 O 31 2s
+ 6 - +06
+ Z Asia/Aqtobe 3:48:40 - LMT 1924 May 2
+ 4 - +04 1930 Jun 21
+ 5 - +05 1981 Ap
+ 5 1 +06 1981 O
+ 6 - +06 1982 Ap
+-5 M +05/+06 1991 Mar 31 2s
+-4 M +04/+05 1992 Ja 19 2s
+-5 M +05/+06 2004 O 31 2s
++5 R +05/+06 1991 Mar 31 2s
++4 R +04/+05 1992 Ja 19 2s
++5 R +05/+06 2004 O 31 2s
+ 5 - +05
+ Z Asia/Aqtau 3:21:4 - LMT 1924 May 2
+ 4 - +04 1930 Jun 21
+ 5 - +05 1981 O
+ 6 - +06 1982 Ap
+-5 M +05/+06 1991 Mar 31 2s
+-4 M +04/+05 1992 Ja 19 2s
+-5 M +05/+06 1994 S 25 2s
+-4 M +04/+05 2004 O 31 2s
++5 R +05/+06 1991 Mar 31 2s
++4 R +04/+05 1992 Ja 19 2s
++5 R +05/+06 1994 S 25 2s
++4 R +04/+05 2004 O 31 2s
+ 5 - +05
+ Z Asia/Atyrau 3:27:44 - LMT 1924 May 2
+ 3 - +03 1930 Jun 21
+ 5 - +05 1981 O
+ 6 - +06 1982 Ap
+-5 M +05/+06 1991 Mar 31 2s
+-4 M +04/+05 1992 Ja 19 2s
+-5 M +05/+06 1999 Mar 28 2s
+-4 M +04/+05 2004 O 31 2s
++5 R +05/+06 1991 Mar 31 2s
++4 R +04/+05 1992 Ja 19 2s
++5 R +05/+06 1999 Mar 28 2s
++4 R +04/+05 2004 O 31 2s
+ 5 - +05
+ Z Asia/Oral 3:25:24 - LMT 1924 May 2
+ 3 - +03 1930 Jun 21
+ 5 - +05 1981 Ap
+ 5 1 +06 1981 O
+ 6 - +06 1982 Ap
+-5 M +05/+06 1989 Mar 26 2s
+-4 M +04/+05 1992 Ja 19 2s
+-5 M +05/+06 1992 Mar 29 2s
+-4 M +04/+05 2004 O 31 2s
++5 R +05/+06 1989 Mar 26 2s
++4 R +04/+05 1992 Ja 19 2s
++5 R +05/+06 1992 Mar 29 2s
++4 R +04/+05 2004 O 31 2s
+ 5 - +05
+-R c 1992 1996 - Ap Sun>=7 0s 1 -
+-R c 1992 1996 - S lastSun 0 0 -
+-R c 1997 2005 - Mar lastSun 2:30 1 -
+-R c 1997 2004 - O lastSun 2:30 0 -
++R KG 1992 1996 - Ap Sun>=7 0s 1 -
++R KG 1992 1996 - S lastSun 0 0 -
++R KG 1997 2005 - Mar lastSun 2:30 1 -
++R KG 1997 2004 - O lastSun 2:30 0 -
+ Z Asia/Bishkek 4:58:24 - LMT 1924 May 2
+ 5 - +05 1930 Jun 21
+-6 M +06/+07 1991 Mar 31 2s
+-5 M +05/+06 1991 Au 31 2
+-5 c +05/+06 2005 Au 12
++6 R +06/+07 1991 Mar 31 2s
++5 R +05/+06 1991 Au 31 2
++5 KG +05/+06 2005 Au 12
+ 6 - +06
+-R d 1948 o - Jun 1 0 1 D
+-R d 1948 o - S 13 0 0 S
+-R d 1949 o - Ap 3 0 1 D
+-R d 1949 1951 - S Sun>=8 0 0 S
+-R d 1950 o - Ap 1 0 1 D
+-R d 1951 o - May 6 0 1 D
+-R d 1955 o - May 5 0 1 D
+-R d 1955 o - S 9 0 0 S
+-R d 1956 o - May 20 0 1 D
+-R d 1956 o - S 30 0 0 S
+-R d 1957 1960 - May Sun>=1 0 1 D
+-R d 1957 1960 - S Sun>=18 0 0 S
+-R d 1987 1988 - May Sun>=8 2 1 D
+-R d 1987 1988 - O Sun>=8 3 0 S
++R KR 1948 o - Jun 1 0 1 D
++R KR 1948 o - S 13 0 0 S
++R KR 1949 o - Ap 3 0 1 D
++R KR 1949 1951 - S Sun>=8 0 0 S
++R KR 1950 o - Ap 1 0 1 D
++R KR 1951 o - May 6 0 1 D
++R KR 1955 o - May 5 0 1 D
++R KR 1955 o - S 9 0 0 S
++R KR 1956 o - May 20 0 1 D
++R KR 1956 o - S 30 0 0 S
++R KR 1957 1960 - May Sun>=1 0 1 D
++R KR 1957 1960 - S Sun>=18 0 0 S
++R KR 1987 1988 - May Sun>=8 2 1 D
++R KR 1987 1988 - O Sun>=8 3 0 S
+ Z Asia/Seoul 8:27:52 - LMT 1908 Ap
+ 8:30 - KST 1912
+ 9 - JST 1945 S 8
+ 9 - KST 1954 Mar 21
+-8:30 d K%sT 1961 Au 10
+-9 d K%sT
++8:30 KR K%sT 1961 Au 10
++9 KR K%sT
+ Z Asia/Pyongyang 8:23 - LMT 1908 Ap
+ 8:30 - KST 1912
+ 9 - JST 1945 Au 24
+ 9 - KST 2015 Au 15
+-8:30 - KST 2018 May 5
++8:30 - KST 2018 May 4 23:30
+ 9 - KST
+-R e 1920 o - Mar 28 0 1 S
+-R e 1920 o - O 25 0 0 -
+-R e 1921 o - Ap 3 0 1 S
+-R e 1921 o - O 3 0 0 -
+-R e 1922 o - Mar 26 0 1 S
+-R e 1922 o - O 8 0 0 -
+-R e 1923 o - Ap 22 0 1 S
+-R e 1923 o - S 16 0 0 -
+-R e 1957 1961 - May 1 0 1 S
+-R e 1957 1961 - O 1 0 0 -
+-R e 1972 o - Jun 22 0 1 S
+-R e 1972 1977 - O 1 0 0 -
+-R e 1973 1977 - May 1 0 1 S
+-R e 1978 o - Ap 30 0 1 S
+-R e 1978 o - S 30 0 0 -
+-R e 1984 1987 - May 1 0 1 S
+-R e 1984 1991 - O 16 0 0 -
+-R e 1988 o - Jun 1 0 1 S
+-R e 1989 o - May 10 0 1 S
+-R e 1990 1992 - May 1 0 1 S
+-R e 1992 o - O 4 0 0 -
+-R e 1993 ma - Mar lastSun 0 1 S
+-R e 1993 1998 - S lastSun 0 0 -
+-R e 1999 ma - O lastSun 0 0 -
++R l 1920 o - Mar 28 0 1 S
++R l 1920 o - O 25 0 0 -
++R l 1921 o - Ap 3 0 1 S
++R l 1921 o - O 3 0 0 -
++R l 1922 o - Mar 26 0 1 S
++R l 1922 o - O 8 0 0 -
++R l 1923 o - Ap 22 0 1 S
++R l 1923 o - S 16 0 0 -
++R l 1957 1961 - May 1 0 1 S
++R l 1957 1961 - O 1 0 0 -
++R l 1972 o - Jun 22 0 1 S
++R l 1972 1977 - O 1 0 0 -
++R l 1973 1977 - May 1 0 1 S
++R l 1978 o - Ap 30 0 1 S
++R l 1978 o - S 30 0 0 -
++R l 1984 1987 - May 1 0 1 S
++R l 1984 1991 - O 16 0 0 -
++R l 1988 o - Jun 1 0 1 S
++R l 1989 o - May 10 0 1 S
++R l 1990 1992 - May 1 0 1 S
++R l 1992 o - O 4 0 0 -
++R l 1993 ma - Mar lastSun 0 1 S
++R l 1993 1998 - S lastSun 0 0 -
++R l 1999 ma - O lastSun 0 0 -
+ Z Asia/Beirut 2:22 - LMT 1880
+-2 e EE%sT
+-R f 1935 1941 - S 14 0 0:20 -
+-R f 1935 1941 - D 14 0 0 -
++2 l EE%sT
++R NB 1935 1941 - S 14 0 0:20 -
++R NB 1935 1941 - D 14 0 0 -
+ Z Asia/Kuala_Lumpur 6:46:46 - LMT 1901
+ 6:55:25 - SMT 1905 Jun
+ 7 - +07 1933
+@@ -827,98 +851,98 @@ Z Asia/Kuala_Lumpur 6:46:46 - LMT 1901
+ 8 - +08
+ Z Asia/Kuching 7:21:20 - LMT 1926 Mar
+ 7:30 - +0730 1933
+-8 f +08/+0820 1942 F 16
++8 NB +08/+0820 1942 F 16
+ 9 - +09 1945 S 12
+ 8 - +08
+ Z Indian/Maldives 4:54 - LMT 1880
+ 4:54 - MMT 1960
+ 5 - +05
+-R g 1983 1984 - Ap 1 0 1 -
+-R g 1983 o - O 1 0 0 -
+-R g 1985 1998 - Mar lastSun 0 1 -
+-R g 1984 1998 - S lastSun 0 0 -
+-R g 2001 o - Ap lastSat 2 1 -
+-R g 2001 2006 - S lastSat 2 0 -
+-R g 2002 2006 - Mar lastSat 2 1 -
+-R g 2015 2016 - Mar lastSat 2 1 -
+-R g 2015 2016 - S lastSat 0 0 -
++R X 1983 1984 - Ap 1 0 1 -
++R X 1983 o - O 1 0 0 -
++R X 1985 1998 - Mar lastSun 0 1 -
++R X 1984 1998 - S lastSun 0 0 -
++R X 2001 o - Ap lastSat 2 1 -
++R X 2001 2006 - S lastSat 2 0 -
++R X 2002 2006 - Mar lastSat 2 1 -
++R X 2015 2016 - Mar lastSat 2 1 -
++R X 2015 2016 - S lastSat 0 0 -
+ Z Asia/Hovd 6:6:36 - LMT 1905 Au
+ 6 - +06 1978
+-7 g +07/+08
++7 X +07/+08
+ Z Asia/Ulaanbaatar 7:7:32 - LMT 1905 Au
+ 7 - +07 1978
+-8 g +08/+09
++8 X +08/+09
+ Z Asia/Choibalsan 7:38 - LMT 1905 Au
+ 7 - +07 1978
+ 8 - +08 1983 Ap
+-9 g +09/+10 2008 Mar 31
+-8 g +08/+09
++9 X +09/+10 2008 Mar 31
++8 X +08/+09
+ Z Asia/Kathmandu 5:41:16 - LMT 1920
+ 5:30 - +0530 1986
+ 5:45 - +0545
+-R h 2002 o - Ap Sun>=2 0 1 S
+-R h 2002 o - O Sun>=2 0 0 -
+-R h 2008 o - Jun 1 0 1 S
+-R h 2008 2009 - N 1 0 0 -
+-R h 2009 o - Ap 15 0 1 S
++R PK 2002 o - Ap Sun>=2 0 1 S
++R PK 2002 o - O Sun>=2 0 0 -
++R PK 2008 o - Jun 1 0 1 S
++R PK 2008 2009 - N 1 0 0 -
++R PK 2009 o - Ap 15 0 1 S
+ Z Asia/Karachi 4:28:12 - LMT 1907
+ 5:30 - +0530 1942 S
+ 5:30 1 +0630 1945 O 15
+ 5:30 - +0530 1951 S 30
+ 5 - +05 1971 Mar 26
+-5 h PK%sT
+-R i 1999 2005 - Ap F>=15 0 1 S
+-R i 1999 2003 - O F>=15 0 0 -
+-R i 2004 o - O 1 1 0 -
+-R i 2005 o - O 4 2 0 -
+-R i 2006 2007 - Ap 1 0 1 S
+-R i 2006 o - S 22 0 0 -
+-R i 2007 o - S Th>=8 2 0 -
+-R i 2008 2009 - Mar lastF 0 1 S
+-R i 2008 o - S 1 0 0 -
+-R i 2009 o - S F>=1 1 0 -
+-R i 2010 o - Mar 26 0 1 S
+-R i 2010 o - Au 11 0 0 -
+-R i 2011 o - Ap 1 0:1 1 S
+-R i 2011 o - Au 1 0 0 -
+-R i 2011 o - Au 30 0 1 S
+-R i 2011 o - S 30 0 0 -
+-R i 2012 2014 - Mar lastTh 24 1 S
+-R i 2012 o - S 21 1 0 -
+-R i 2013 o - S F>=21 0 0 -
+-R i 2014 2015 - O F>=21 0 0 -
+-R i 2015 o - Mar lastF 24 1 S
+-R i 2016 ma - Mar Sat>=22 1 1 S
+-R i 2016 ma - O lastSat 1 0 -
++5 PK PK%sT
++R P 1999 2005 - Ap F>=15 0 1 S
++R P 1999 2003 - O F>=15 0 0 -
++R P 2004 o - O 1 1 0 -
++R P 2005 o - O 4 2 0 -
++R P 2006 2007 - Ap 1 0 1 S
++R P 2006 o - S 22 0 0 -
++R P 2007 o - S Th>=8 2 0 -
++R P 2008 2009 - Mar lastF 0 1 S
++R P 2008 o - S 1 0 0 -
++R P 2009 o - S F>=1 1 0 -
++R P 2010 o - Mar 26 0 1 S
++R P 2010 o - Au 11 0 0 -
++R P 2011 o - Ap 1 0:1 1 S
++R P 2011 o - Au 1 0 0 -
++R P 2011 o - Au 30 0 1 S
++R P 2011 o - S 30 0 0 -
++R P 2012 2014 - Mar lastTh 24 1 S
++R P 2012 o - S 21 1 0 -
++R P 2013 o - S F>=21 0 0 -
++R P 2014 2015 - O F>=21 0 0 -
++R P 2015 o - Mar lastF 24 1 S
++R P 2016 ma - Mar Sat>=22 1 1 S
++R P 2016 ma - O lastSat 1 0 -
+ Z Asia/Gaza 2:17:52 - LMT 1900 O
+ 2 Z EET/EEST 1948 May 15
+-2 B EE%sT 1967 Jun 5
++2 K EE%sT 1967 Jun 5
+ 2 Z I%sT 1996
+-2 b EE%sT 1999
+-2 i EE%sT 2008 Au 29
++2 J EE%sT 1999
++2 P EE%sT 2008 Au 29
+ 2 - EET 2008 S
+-2 i EE%sT 2010
++2 P EE%sT 2010
+ 2 - EET 2010 Mar 27 0:1
+-2 i EE%sT 2011 Au
++2 P EE%sT 2011 Au
+ 2 - EET 2012
+-2 i EE%sT
++2 P EE%sT
+ Z Asia/Hebron 2:20:23 - LMT 1900 O
+ 2 Z EET/EEST 1948 May 15
+-2 B EE%sT 1967 Jun 5
++2 K EE%sT 1967 Jun 5
+ 2 Z I%sT 1996
+-2 b EE%sT 1999
+-2 i EE%sT
+-R j 1936 o - N 1 0 1 -
+-R j 1937 o - F 1 0 0 -
+-R j 1954 o - Ap 12 0 1 -
+-R j 1954 o - Jul 1 0 0 -
+-R j 1978 o - Mar 22 0 1 -
+-R j 1978 o - S 21 0 0 -
++2 J EE%sT 1999
++2 P EE%sT
++R PH 1936 o - N 1 0 1 D
++R PH 1937 o - F 1 0 0 S
++R PH 1954 o - Ap 12 0 1 D
++R PH 1954 o - Jul 1 0 0 S
++R PH 1978 o - Mar 22 0 1 D
++R PH 1978 o - S 21 0 0 S
+ Z Asia/Manila -15:56 - LMT 1844 D 31
+ 8:4 - LMT 1899 May 11
+-8 j +08/+09 1942 May
+-9 - +09 1944 N
+-8 j +08/+09
++8 PH P%sT 1942 May
++9 - JST 1944 N
++8 PH P%sT
+ Z Asia/Qatar 3:26:8 - LMT 1920
+ 4 - +04 1972 Jun
+ 3 - +03
+@@ -945,52 +969,52 @@ Z Asia/Colombo 5:19:24 - LMT 1880
+ 6:30 - +0630 1996 O 26 0:30
+ 6 - +06 2006 Ap 15 0:30
+ 5:30 - +0530
+-R k 1920 1923 - Ap Sun>=15 2 1 S
+-R k 1920 1923 - O Sun>=1 2 0 -
+-R k 1962 o - Ap 29 2 1 S
+-R k 1962 o - O 1 2 0 -
+-R k 1963 1965 - May 1 2 1 S
+-R k 1963 o - S 30 2 0 -
+-R k 1964 o - O 1 2 0 -
+-R k 1965 o - S 30 2 0 -
+-R k 1966 o - Ap 24 2 1 S
+-R k 1966 1976 - O 1 2 0 -
+-R k 1967 1978 - May 1 2 1 S
+-R k 1977 1978 - S 1 2 0 -
+-R k 1983 1984 - Ap 9 2 1 S
+-R k 1983 1984 - O 1 2 0 -
+-R k 1986 o - F 16 2 1 S
+-R k 1986 o - O 9 2 0 -
+-R k 1987 o - Mar 1 2 1 S
+-R k 1987 1988 - O 31 2 0 -
+-R k 1988 o - Mar 15 2 1 S
+-R k 1989 o - Mar 31 2 1 S
+-R k 1989 o - O 1 2 0 -
+-R k 1990 o - Ap 1 2 1 S
+-R k 1990 o - S 30 2 0 -
+-R k 1991 o - Ap 1 0 1 S
+-R k 1991 1992 - O 1 0 0 -
+-R k 1992 o - Ap 8 0 1 S
+-R k 1993 o - Mar 26 0 1 S
+-R k 1993 o - S 25 0 0 -
+-R k 1994 1996 - Ap 1 0 1 S
+-R k 1994 2005 - O 1 0 0 -
+-R k 1997 1998 - Mar lastM 0 1 S
+-R k 1999 2006 - Ap 1 0 1 S
+-R k 2006 o - S 22 0 0 -
+-R k 2007 o - Mar lastF 0 1 S
+-R k 2007 o - N F>=1 0 0 -
+-R k 2008 o - Ap F>=1 0 1 S
+-R k 2008 o - N 1 0 0 -
+-R k 2009 o - Mar lastF 0 1 S
+-R k 2010 2011 - Ap F>=1 0 1 S
+-R k 2012 ma - Mar lastF 0 1 S
+-R k 2009 ma - O lastF 0 0 -
++R S 1920 1923 - Ap Sun>=15 2 1 S
++R S 1920 1923 - O Sun>=1 2 0 -
++R S 1962 o - Ap 29 2 1 S
++R S 1962 o - O 1 2 0 -
++R S 1963 1965 - May 1 2 1 S
++R S 1963 o - S 30 2 0 -
++R S 1964 o - O 1 2 0 -
++R S 1965 o - S 30 2 0 -
++R S 1966 o - Ap 24 2 1 S
++R S 1966 1976 - O 1 2 0 -
++R S 1967 1978 - May 1 2 1 S
++R S 1977 1978 - S 1 2 0 -
++R S 1983 1984 - Ap 9 2 1 S
++R S 1983 1984 - O 1 2 0 -
++R S 1986 o - F 16 2 1 S
++R S 1986 o - O 9 2 0 -
++R S 1987 o - Mar 1 2 1 S
++R S 1987 1988 - O 31 2 0 -
++R S 1988 o - Mar 15 2 1 S
++R S 1989 o - Mar 31 2 1 S
++R S 1989 o - O 1 2 0 -
++R S 1990 o - Ap 1 2 1 S
++R S 1990 o - S 30 2 0 -
++R S 1991 o - Ap 1 0 1 S
++R S 1991 1992 - O 1 0 0 -
++R S 1992 o - Ap 8 0 1 S
++R S 1993 o - Mar 26 0 1 S
++R S 1993 o - S 25 0 0 -
++R S 1994 1996 - Ap 1 0 1 S
++R S 1994 2005 - O 1 0 0 -
++R S 1997 1998 - Mar lastM 0 1 S
++R S 1999 2006 - Ap 1 0 1 S
++R S 2006 o - S 22 0 0 -
++R S 2007 o - Mar lastF 0 1 S
++R S 2007 o - N F>=1 0 0 -
++R S 2008 o - Ap F>=1 0 1 S
++R S 2008 o - N 1 0 0 -
++R S 2009 o - Mar lastF 0 1 S
++R S 2010 2011 - Ap F>=1 0 1 S
++R S 2012 ma - Mar lastF 0 1 S
++R S 2009 ma - O lastF 0 0 -
+ Z Asia/Damascus 2:25:12 - LMT 1920
+-2 k EE%sT
++2 S EE%sT
+ Z Asia/Dushanbe 4:35:12 - LMT 1924 May 2
+ 5 - +05 1930 Jun 21
+-6 M +06/+07 1991 Mar 31 2s
++6 R +06/+07 1991 Mar 31 2s
+ 5 1 +05/+06 1991 S 9 2s
+ 5 - +05
+ Z Asia/Bangkok 6:42:4 - LMT 1880
+@@ -1000,8 +1024,8 @@ Li Asia/Bangkok Asia/Phnom_Penh
+ Li Asia/Bangkok Asia/Vientiane
+ Z Asia/Ashgabat 3:53:32 - LMT 1924 May 2
+ 4 - +04 1930 Jun 21
+-5 M +05/+06 1991 Mar 31 2
+-4 M +04/+05 1992 Ja 19 2
++5 R +05/+06 1991 Mar 31 2
++4 R +04/+05 1992 Ja 19 2
+ 5 - +05
+ Z Asia/Dubai 3:41:12 - LMT 1920
+ 4 - +04
+@@ -1011,12 +1035,12 @@ Z Asia/Samarkand 4:27:53 - LMT 1924 May 2
+ 5 - +05 1981 Ap
+ 5 1 +06 1981 O
+ 6 - +06 1982 Ap
+-5 M +05/+06 1992
++5 R +05/+06 1992
+ 5 - +05
+ Z Asia/Tashkent 4:37:11 - LMT 1924 May 2
+ 5 - +05 1930 Jun 21
+-6 M +06/+07 1991 Mar 31 2
+-5 M +05/+06 1992
++6 R +06/+07 1991 Mar 31 2
++5 R +05/+06 1992
+ 5 - +05
+ Z Asia/Ho_Chi_Minh 7:6:40 - LMT 1906 Jul
+ 7:6:30 - PLMT 1911 May
+@@ -1028,176 +1052,176 @@ Z Asia/Ho_Chi_Minh 7:6:40 - LMT 1906 Jul
+ 7 - +07 1959 D 31 23
+ 8 - +08 1975 Jun 13
+ 7 - +07
+-R l 1917 o - Ja 1 0:1 1 D
+-R l 1917 o - Mar 25 2 0 S
+-R l 1942 o - Ja 1 2 1 D
+-R l 1942 o - Mar 29 2 0 S
+-R l 1942 o - S 27 2 1 D
+-R l 1943 1944 - Mar lastSun 2 0 S
+-R l 1943 o - O 3 2 1 D
++R AU 1917 o - Ja 1 0:1 1 D
++R AU 1917 o - Mar 25 2 0 S
++R AU 1942 o - Ja 1 2 1 D
++R AU 1942 o - Mar 29 2 0 S
++R AU 1942 o - S 27 2 1 D
++R AU 1943 1944 - Mar lastSun 2 0 S
++R AU 1943 o - O 3 2 1 D
+ Z Australia/Darwin 8:43:20 - LMT 1895 F
+ 9 - ACST 1899 May
+-9:30 l AC%sT
+-R m 1974 o - O lastSun 2s 1 D
+-R m 1975 o - Mar Sun>=1 2s 0 S
+-R m 1983 o - O lastSun 2s 1 D
+-R m 1984 o - Mar Sun>=1 2s 0 S
+-R m 1991 o - N 17 2s 1 D
+-R m 1992 o - Mar Sun>=1 2s 0 S
+-R m 2006 o - D 3 2s 1 D
+-R m 2007 2009 - Mar lastSun 2s 0 S
+-R m 2007 2008 - O lastSun 2s 1 D
++9:30 AU AC%sT
++R AW 1974 o - O lastSun 2s 1 D
++R AW 1975 o - Mar Sun>=1 2s 0 S
++R AW 1983 o - O lastSun 2s 1 D
++R AW 1984 o - Mar Sun>=1 2s 0 S
++R AW 1991 o - N 17 2s 1 D
++R AW 1992 o - Mar Sun>=1 2s 0 S
++R AW 2006 o - D 3 2s 1 D
++R AW 2007 2009 - Mar lastSun 2s 0 S
++R AW 2007 2008 - O lastSun 2s 1 D
+ Z Australia/Perth 7:43:24 - LMT 1895 D
+-8 l AW%sT 1943 Jul
+-8 m AW%sT
++8 AU AW%sT 1943 Jul
++8 AW AW%sT
+ Z Australia/Eucla 8:35:28 - LMT 1895 D
+-8:45 l +0845/+0945 1943 Jul
+-8:45 m +0845/+0945
+-R n 1971 o - O lastSun 2s 1 D
+-R n 1972 o - F lastSun 2s 0 S
+-R n 1989 1991 - O lastSun 2s 1 D
+-R n 1990 1992 - Mar Sun>=1 2s 0 S
+-R o 1992 1993 - O lastSun 2s 1 D
+-R o 1993 1994 - Mar Sun>=1 2s 0 S
++8:45 AU +0845/+0945 1943 Jul
++8:45 AW +0845/+0945
++R AQ 1971 o - O lastSun 2s 1 D
++R AQ 1972 o - F lastSun 2s 0 S
++R AQ 1989 1991 - O lastSun 2s 1 D
++R AQ 1990 1992 - Mar Sun>=1 2s 0 S
++R Ho 1992 1993 - O lastSun 2s 1 D
++R Ho 1993 1994 - Mar Sun>=1 2s 0 S
+ Z Australia/Brisbane 10:12:8 - LMT 1895
+-10 l AE%sT 1971
+-10 n AE%sT
++10 AU AE%sT 1971
++10 AQ AE%sT
+ Z Australia/Lindeman 9:55:56 - LMT 1895
+-10 l AE%sT 1971
+-10 n AE%sT 1992 Jul
+-10 o AE%sT
+-R p 1971 1985 - O lastSun 2s 1 D
+-R p 1986 o - O 19 2s 1 D
+-R p 1987 2007 - O lastSun 2s 1 D
+-R p 1972 o - F 27 2s 0 S
+-R p 1973 1985 - Mar Sun>=1 2s 0 S
+-R p 1986 1990 - Mar Sun>=15 2s 0 S
+-R p 1991 o - Mar 3 2s 0 S
+-R p 1992 o - Mar 22 2s 0 S
+-R p 1993 o - Mar 7 2s 0 S
+-R p 1994 o - Mar 20 2s 0 S
+-R p 1995 2005 - Mar lastSun 2s 0 S
+-R p 2006 o - Ap 2 2s 0 S
+-R p 2007 o - Mar lastSun 2s 0 S
+-R p 2008 ma - Ap Sun>=1 2s 0 S
+-R p 2008 ma - O Sun>=1 2s 1 D
++10 AU AE%sT 1971
++10 AQ AE%sT 1992 Jul
++10 Ho AE%sT
++R AS 1971 1985 - O lastSun 2s 1 D
++R AS 1986 o - O 19 2s 1 D
++R AS 1987 2007 - O lastSun 2s 1 D
++R AS 1972 o - F 27 2s 0 S
++R AS 1973 1985 - Mar Sun>=1 2s 0 S
++R AS 1986 1990 - Mar Sun>=15 2s 0 S
++R AS 1991 o - Mar 3 2s 0 S
++R AS 1992 o - Mar 22 2s 0 S
++R AS 1993 o - Mar 7 2s 0 S
++R AS 1994 o - Mar 20 2s 0 S
++R AS 1995 2005 - Mar lastSun 2s 0 S
++R AS 2006 o - Ap 2 2s 0 S
++R AS 2007 o - Mar lastSun 2s 0 S
++R AS 2008 ma - Ap Sun>=1 2s 0 S
++R AS 2008 ma - O Sun>=1 2s 1 D
+ Z Australia/Adelaide 9:14:20 - LMT 1895 F
+ 9 - ACST 1899 May
+-9:30 l AC%sT 1971
+-9:30 p AC%sT
+-R q 1967 o - O Sun>=1 2s 1 D
+-R q 1968 o - Mar lastSun 2s 0 S
+-R q 1968 1985 - O lastSun 2s 1 D
+-R q 1969 1971 - Mar Sun>=8 2s 0 S
+-R q 1972 o - F lastSun 2s 0 S
+-R q 1973 1981 - Mar Sun>=1 2s 0 S
+-R q 1982 1983 - Mar lastSun 2s 0 S
+-R q 1984 1986 - Mar Sun>=1 2s 0 S
+-R q 1986 o - O Sun>=15 2s 1 D
+-R q 1987 1990 - Mar Sun>=15 2s 0 S
+-R q 1987 o - O Sun>=22 2s 1 D
+-R q 1988 1990 - O lastSun 2s 1 D
+-R q 1991 1999 - O Sun>=1 2s 1 D
+-R q 1991 2005 - Mar lastSun 2s 0 S
+-R q 2000 o - Au lastSun 2s 1 D
+-R q 2001 ma - O Sun>=1 2s 1 D
+-R q 2006 o - Ap Sun>=1 2s 0 S
+-R q 2007 o - Mar lastSun 2s 0 S
+-R q 2008 ma - Ap Sun>=1 2s 0 S
++9:30 AU AC%sT 1971
++9:30 AS AC%sT
++R AT 1967 o - O Sun>=1 2s 1 D
++R AT 1968 o - Mar lastSun 2s 0 S
++R AT 1968 1985 - O lastSun 2s 1 D
++R AT 1969 1971 - Mar Sun>=8 2s 0 S
++R AT 1972 o - F lastSun 2s 0 S
++R AT 1973 1981 - Mar Sun>=1 2s 0 S
++R AT 1982 1983 - Mar lastSun 2s 0 S
++R AT 1984 1986 - Mar Sun>=1 2s 0 S
++R AT 1986 o - O Sun>=15 2s 1 D
++R AT 1987 1990 - Mar Sun>=15 2s 0 S
++R AT 1987 o - O Sun>=22 2s 1 D
++R AT 1988 1990 - O lastSun 2s 1 D
++R AT 1991 1999 - O Sun>=1 2s 1 D
++R AT 1991 2005 - Mar lastSun 2s 0 S
++R AT 2000 o - Au lastSun 2s 1 D
++R AT 2001 ma - O Sun>=1 2s 1 D
++R AT 2006 o - Ap Sun>=1 2s 0 S
++R AT 2007 o - Mar lastSun 2s 0 S
++R AT 2008 ma - Ap Sun>=1 2s 0 S
+ Z Australia/Hobart 9:49:16 - LMT 1895 S
+ 10 - AEST 1916 O 1 2
+ 10 1 AEDT 1917 F
+-10 l AE%sT 1967
+-10 q AE%sT
++10 AU AE%sT 1967
++10 AT AE%sT
+ Z Australia/Currie 9:35:28 - LMT 1895 S
+ 10 - AEST 1916 O 1 2
+ 10 1 AEDT 1917 F
+-10 l AE%sT 1971 Jul
+-10 q AE%sT
+-R r 1971 1985 - O lastSun 2s 1 D
+-R r 1972 o - F lastSun 2s 0 S
+-R r 1973 1985 - Mar Sun>=1 2s 0 S
+-R r 1986 1990 - Mar Sun>=15 2s 0 S
+-R r 1986 1987 - O Sun>=15 2s 1 D
+-R r 1988 1999 - O lastSun 2s 1 D
+-R r 1991 1994 - Mar Sun>=1 2s 0 S
+-R r 1995 2005 - Mar lastSun 2s 0 S
+-R r 2000 o - Au lastSun 2s 1 D
+-R r 2001 2007 - O lastSun 2s 1 D
+-R r 2006 o - Ap Sun>=1 2s 0 S
+-R r 2007 o - Mar lastSun 2s 0 S
+-R r 2008 ma - Ap Sun>=1 2s 0 S
+-R r 2008 ma - O Sun>=1 2s 1 D
++10 AU AE%sT 1971 Jul
++10 AT AE%sT
++R AV 1971 1985 - O lastSun 2s 1 D
++R AV 1972 o - F lastSun 2s 0 S
++R AV 1973 1985 - Mar Sun>=1 2s 0 S
++R AV 1986 1990 - Mar Sun>=15 2s 0 S
++R AV 1986 1987 - O Sun>=15 2s 1 D
++R AV 1988 1999 - O lastSun 2s 1 D
++R AV 1991 1994 - Mar Sun>=1 2s 0 S
++R AV 1995 2005 - Mar lastSun 2s 0 S
++R AV 2000 o - Au lastSun 2s 1 D
++R AV 2001 2007 - O lastSun 2s 1 D
++R AV 2006 o - Ap Sun>=1 2s 0 S
++R AV 2007 o - Mar lastSun 2s 0 S
++R AV 2008 ma - Ap Sun>=1 2s 0 S
++R AV 2008 ma - O Sun>=1 2s 1 D
+ Z Australia/Melbourne 9:39:52 - LMT 1895 F
+-10 l AE%sT 1971
+-10 r AE%sT
+-R s 1971 1985 - O lastSun 2s 1 D
+-R s 1972 o - F 27 2s 0 S
+-R s 1973 1981 - Mar Sun>=1 2s 0 S
+-R s 1982 o - Ap Sun>=1 2s 0 S
+-R s 1983 1985 - Mar Sun>=1 2s 0 S
+-R s 1986 1989 - Mar Sun>=15 2s 0 S
+-R s 1986 o - O 19 2s 1 D
+-R s 1987 1999 - O lastSun 2s 1 D
+-R s 1990 1995 - Mar Sun>=1 2s 0 S
+-R s 1996 2005 - Mar lastSun 2s 0 S
+-R s 2000 o - Au lastSun 2s 1 D
+-R s 2001 2007 - O lastSun 2s 1 D
+-R s 2006 o - Ap Sun>=1 2s 0 S
+-R s 2007 o - Mar lastSun 2s 0 S
+-R s 2008 ma - Ap Sun>=1 2s 0 S
+-R s 2008 ma - O Sun>=1 2s 1 D
++10 AU AE%sT 1971
++10 AV AE%sT
++R AN 1971 1985 - O lastSun 2s 1 D
++R AN 1972 o - F 27 2s 0 S
++R AN 1973 1981 - Mar Sun>=1 2s 0 S
++R AN 1982 o - Ap Sun>=1 2s 0 S
++R AN 1983 1985 - Mar Sun>=1 2s 0 S
++R AN 1986 1989 - Mar Sun>=15 2s 0 S
++R AN 1986 o - O 19 2s 1 D
++R AN 1987 1999 - O lastSun 2s 1 D
++R AN 1990 1995 - Mar Sun>=1 2s 0 S
++R AN 1996 2005 - Mar lastSun 2s 0 S
++R AN 2000 o - Au lastSun 2s 1 D
++R AN 2001 2007 - O lastSun 2s 1 D
++R AN 2006 o - Ap Sun>=1 2s 0 S
++R AN 2007 o - Mar lastSun 2s 0 S
++R AN 2008 ma - Ap Sun>=1 2s 0 S
++R AN 2008 ma - O Sun>=1 2s 1 D
+ Z Australia/Sydney 10:4:52 - LMT 1895 F
+-10 l AE%sT 1971
+-10 s AE%sT
++10 AU AE%sT 1971
++10 AN AE%sT
+ Z Australia/Broken_Hill 9:25:48 - LMT 1895 F
+ 10 - AEST 1896 Au 23
+ 9 - ACST 1899 May
+-9:30 l AC%sT 1971
+-9:30 s AC%sT 2000
+-9:30 p AC%sT
+-R t 1981 1984 - O lastSun 2 1 -
+-R t 1982 1985 - Mar Sun>=1 2 0 -
+-R t 1985 o - O lastSun 2 0:30 -
+-R t 1986 1989 - Mar Sun>=15 2 0 -
+-R t 1986 o - O 19 2 0:30 -
+-R t 1987 1999 - O lastSun 2 0:30 -
+-R t 1990 1995 - Mar Sun>=1 2 0 -
+-R t 1996 2005 - Mar lastSun 2 0 -
+-R t 2000 o - Au lastSun 2 0:30 -
+-R t 2001 2007 - O lastSun 2 0:30 -
+-R t 2006 o - Ap Sun>=1 2 0 -
+-R t 2007 o - Mar lastSun 2 0 -
+-R t 2008 ma - Ap Sun>=1 2 0 -
+-R t 2008 ma - O Sun>=1 2 0:30 -
++9:30 AU AC%sT 1971
++9:30 AN AC%sT 2000
++9:30 AS AC%sT
++R LH 1981 1984 - O lastSun 2 1 -
++R LH 1982 1985 - Mar Sun>=1 2 0 -
++R LH 1985 o - O lastSun 2 0:30 -
++R LH 1986 1989 - Mar Sun>=15 2 0 -
++R LH 1986 o - O 19 2 0:30 -
++R LH 1987 1999 - O lastSun 2 0:30 -
++R LH 1990 1995 - Mar Sun>=1 2 0 -
++R LH 1996 2005 - Mar lastSun 2 0 -
++R LH 2000 o - Au lastSun 2 0:30 -
++R LH 2001 2007 - O lastSun 2 0:30 -
++R LH 2006 o - Ap Sun>=1 2 0 -
++R LH 2007 o - Mar lastSun 2 0 -
++R LH 2008 ma - Ap Sun>=1 2 0 -
++R LH 2008 ma - O Sun>=1 2 0:30 -
+ Z Australia/Lord_Howe 10:36:20 - LMT 1895 F
+ 10 - AEST 1981 Mar
+-10:30 t +1030/+1130 1985 Jul
+-10:30 t +1030/+11
++10:30 LH +1030/+1130 1985 Jul
++10:30 LH +1030/+11
+ Z Antarctica/Macquarie 0 - -00 1899 N
+ 10 - AEST 1916 O 1 2
+ 10 1 AEDT 1917 F
+-10 l AE%sT 1919 Ap 1 0s
++10 AU AE%sT 1919 Ap 1 0s
+ 0 - -00 1948 Mar 25
+-10 l AE%sT 1967
+-10 q AE%sT 2010 Ap 4 3
++10 AU AE%sT 1967
++10 AT AE%sT 2010 Ap 4 3
+ 11 - +11
+ Z Indian/Christmas 7:2:52 - LMT 1895 F
+ 7 - +07
+ Z Indian/Cocos 6:27:40 - LMT 1900
+ 6:30 - +0630
+-R u 1998 1999 - N Sun>=1 2 1 -
+-R u 1999 2000 - F lastSun 3 0 -
+-R u 2009 o - N 29 2 1 -
+-R u 2010 o - Mar lastSun 3 0 -
+-R u 2010 2013 - O Sun>=21 2 1 -
+-R u 2011 o - Mar Sun>=1 3 0 -
+-R u 2012 2013 - Ja Sun>=18 3 0 -
+-R u 2014 o - Ja Sun>=18 2 0 -
+-R u 2014 ma - N Sun>=1 2 1 -
+-R u 2015 ma - Ja Sun>=14 3 0 -
++R FJ 1998 1999 - N Sun>=1 2 1 -
++R FJ 1999 2000 - F lastSun 3 0 -
++R FJ 2009 o - N 29 2 1 -
++R FJ 2010 o - Mar lastSun 3 0 -
++R FJ 2010 2013 - O Sun>=21 2 1 -
++R FJ 2011 o - Mar Sun>=1 3 0 -
++R FJ 2012 2013 - Ja Sun>=18 3 0 -
++R FJ 2014 o - Ja Sun>=18 2 0 -
++R FJ 2014 ma - N Sun>=1 2 1 -
++R FJ 2015 ma - Ja Sun>=13 3 0 -
+ Z Pacific/Fiji 11:55:44 - LMT 1915 O 26
+-12 u +12/+13
++12 FJ +12/+13
+ Z Pacific/Gambier -8:59:48 - LMT 1912 O
+ -9 - -09
+ Z Pacific/Marquesas -9:18 - LMT 1912 O
+@@ -1239,50 +1263,50 @@ Z Pacific/Nauru 11:7:40 - LMT 1921 Ja 15
+ 9 - +09 1944 Au 15
+ 11:30 - +1130 1979 May
+ 12 - +12
+-R v 1977 1978 - D Sun>=1 0 1 -
+-R v 1978 1979 - F 27 0 0 -
+-R v 1996 o - D 1 2s 1 -
+-R v 1997 o - Mar 2 2s 0 -
++R NC 1977 1978 - D Sun>=1 0 1 -
++R NC 1978 1979 - F 27 0 0 -
++R NC 1996 o - D 1 2s 1 -
++R NC 1997 o - Mar 2 2s 0 -
+ Z Pacific/Noumea 11:5:48 - LMT 1912 Ja 13
+-11 v +11/+12
+-R w 1927 o - N 6 2 1 S
+-R w 1928 o - Mar 4 2 0 M
+-R w 1928 1933 - O Sun>=8 2 0:30 S
+-R w 1929 1933 - Mar Sun>=15 2 0 M
+-R w 1934 1940 - Ap lastSun 2 0 M
+-R w 1934 1940 - S lastSun 2 0:30 S
+-R w 1946 o - Ja 1 0 0 S
+-R w 1974 o - N Sun>=1 2s 1 D
+-R x 1974 o - N Sun>=1 2:45s 1 -
+-R w 1975 o - F lastSun 2s 0 S
+-R x 1975 o - F lastSun 2:45s 0 -
+-R w 1975 1988 - O lastSun 2s 1 D
+-R x 1975 1988 - O lastSun 2:45s 1 -
+-R w 1976 1989 - Mar Sun>=1 2s 0 S
+-R x 1976 1989 - Mar Sun>=1 2:45s 0 -
+-R w 1989 o - O Sun>=8 2s 1 D
+-R x 1989 o - O Sun>=8 2:45s 1 -
+-R w 1990 2006 - O Sun>=1 2s 1 D
+-R x 1990 2006 - O Sun>=1 2:45s 1 -
+-R w 1990 2007 - Mar Sun>=15 2s 0 S
+-R x 1990 2007 - Mar Sun>=15 2:45s 0 -
+-R w 2007 ma - S lastSun 2s 1 D
+-R x 2007 ma - S lastSun 2:45s 1 -
+-R w 2008 ma - Ap Sun>=1 2s 0 S
+-R x 2008 ma - Ap Sun>=1 2:45s 0 -
++11 NC +11/+12
++R NZ 1927 o - N 6 2 1 S
++R NZ 1928 o - Mar 4 2 0 M
++R NZ 1928 1933 - O Sun>=8 2 0:30 S
++R NZ 1929 1933 - Mar Sun>=15 2 0 M
++R NZ 1934 1940 - Ap lastSun 2 0 M
++R NZ 1934 1940 - S lastSun 2 0:30 S
++R NZ 1946 o - Ja 1 0 0 S
++R NZ 1974 o - N Sun>=1 2s 1 D
++R k 1974 o - N Sun>=1 2:45s 1 -
++R NZ 1975 o - F lastSun 2s 0 S
++R k 1975 o - F lastSun 2:45s 0 -
++R NZ 1975 1988 - O lastSun 2s 1 D
++R k 1975 1988 - O lastSun 2:45s 1 -
++R NZ 1976 1989 - Mar Sun>=1 2s 0 S
++R k 1976 1989 - Mar Sun>=1 2:45s 0 -
++R NZ 1989 o - O Sun>=8 2s 1 D
++R k 1989 o - O Sun>=8 2:45s 1 -
++R NZ 1990 2006 - O Sun>=1 2s 1 D
++R k 1990 2006 - O Sun>=1 2:45s 1 -
++R NZ 1990 2007 - Mar Sun>=15 2s 0 S
++R k 1990 2007 - Mar Sun>=15 2:45s 0 -
++R NZ 2007 ma - S lastSun 2s 1 D
++R k 2007 ma - S lastSun 2:45s 1 -
++R NZ 2008 ma - Ap Sun>=1 2s 0 S
++R k 2008 ma - Ap Sun>=1 2:45s 0 -
+ Z Pacific/Auckland 11:39:4 - LMT 1868 N 2
+-11:30 w NZ%sT 1946
+-12 w NZ%sT
++11:30 NZ NZ%sT 1946
++12 NZ NZ%sT
+ Z Pacific/Chatham 12:13:48 - LMT 1868 N 2
+ 12:15 - +1215 1946
+-12:45 x +1245/+1345
++12:45 k +1245/+1345
+ Li Pacific/Auckland Antarctica/McMurdo
+-R y 1978 o - N 12 0 0:30 -
+-R y 1979 1991 - Mar Sun>=1 0 0 -
+-R y 1979 1990 - O lastSun 0 0:30 -
++R CK 1978 o - N 12 0 0:30 -
++R CK 1979 1991 - Mar Sun>=1 0 0 -
++R CK 1979 1990 - O lastSun 0 0:30 -
+ Z Pacific/Rarotonga -10:39:4 - LMT 1901
+ -10:30 - -1030 1978 N 12
+--10 y -10/-0930
++-10 CK -10/-0930
+ Z Pacific/Niue -11:19:40 - LMT 1901
+ -11:20 - -1120 1951
+ -11:30 - -1130 1978 O
+@@ -1311,570 +1335,570 @@ Z Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5
+ -11:22:48 - LMT 1911
+ -11 - SST
+ Li Pacific/Pago_Pago Pacific/Midway
+-R z 2010 o - S lastSun 0 1 -
+-R z 2011 o - Ap Sat>=1 4 0 -
+-R z 2011 o - S lastSat 3 1 -
+-R z 2012 ma - Ap Sun>=1 4 0 -
+-R z 2012 ma - S lastSun 3 1 -
++R WS 2010 o - S lastSun 0 1 -
++R WS 2011 o - Ap Sat>=1 4 0 -
++R WS 2011 o - S lastSat 3 1 -
++R WS 2012 ma - Ap Sun>=1 4 0 -
++R WS 2012 ma - S lastSun 3 1 -
+ Z Pacific/Apia 12:33:4 - LMT 1892 Jul 5
+ -11:26:56 - LMT 1911
+ -11:30 - -1130 1950
+--11 z -11/-10 2011 D 29 24
+-13 z +13/+14
++-11 WS -11/-10 2011 D 29 24
++13 WS +13/+14
+ Z Pacific/Guadalcanal 10:39:48 - LMT 1912 O
+ 11 - +11
+ Z Pacific/Fakaofo -11:24:56 - LMT 1901
+ -11 - -11 2011 D 30
+ 13 - +13
+-R ! 1999 o - O 7 2s 1 -
+-R ! 2000 o - Mar 19 2s 0 -
+-R ! 2000 2001 - N Sun>=1 2 1 -
+-R ! 2001 2002 - Ja lastSun 2 0 -
+-R ! 2016 o - N Sun>=1 2 1 -
+-R ! 2017 o - Ja Sun>=15 3 0 -
++R TO 1999 o - O 7 2s 1 -
++R TO 2000 o - Mar 19 2s 0 -
++R TO 2000 2001 - N Sun>=1 2 1 -
++R TO 2001 2002 - Ja lastSun 2 0 -
++R TO 2016 o - N Sun>=1 2 1 -
++R TO 2017 o - Ja Sun>=15 3 0 -
+ Z Pacific/Tongatapu 12:19:20 - LMT 1901
+ 12:20 - +1220 1941
+ 13 - +13 1999
+-13 ! +13/+14
++13 TO +13/+14
+ Z Pacific/Funafuti 11:56:52 - LMT 1901
+ 12 - +12
+ Z Pacific/Wake 11:6:28 - LMT 1901
+ 12 - +12
+-R $ 1983 o - S 25 0 1 -
+-R $ 1984 1991 - Mar Sun>=23 0 0 -
+-R $ 1984 o - O 23 0 1 -
+-R $ 1985 1991 - S Sun>=23 0 1 -
+-R $ 1992 1993 - Ja Sun>=23 0 0 -
+-R $ 1992 o - O Sun>=23 0 1 -
++R VU 1983 o - S 25 0 1 -
++R VU 1984 1991 - Mar Sun>=23 0 0 -
++R VU 1984 o - O 23 0 1 -
++R VU 1985 1991 - S Sun>=23 0 1 -
++R VU 1992 1993 - Ja Sun>=23 0 0 -
++R VU 1992 o - O Sun>=23 0 1 -
+ Z Pacific/Efate 11:13:16 - LMT 1912 Ja 13
+-11 $ +11/+12
++11 VU +11/+12
+ Z Pacific/Wallis 12:15:20 - LMT 1901
+ 12 - +12
+-R % 1916 o - May 21 2s 1 BST
+-R % 1916 o - O 1 2s 0 GMT
+-R % 1917 o - Ap 8 2s 1 BST
+-R % 1917 o - S 17 2s 0 GMT
+-R % 1918 o - Mar 24 2s 1 BST
+-R % 1918 o - S 30 2s 0 GMT
+-R % 1919 o - Mar 30 2s 1 BST
+-R % 1919 o - S 29 2s 0 GMT
+-R % 1920 o - Mar 28 2s 1 BST
+-R % 1920 o - O 25 2s 0 GMT
+-R % 1921 o - Ap 3 2s 1 BST
+-R % 1921 o - O 3 2s 0 GMT
+-R % 1922 o - Mar 26 2s 1 BST
+-R % 1922 o - O 8 2s 0 GMT
+-R % 1923 o - Ap Sun>=16 2s 1 BST
+-R % 1923 1924 - S Sun>=16 2s 0 GMT
+-R % 1924 o - Ap Sun>=9 2s 1 BST
+-R % 1925 1926 - Ap Sun>=16 2s 1 BST
+-R % 1925 1938 - O Sun>=2 2s 0 GMT
+-R % 1927 o - Ap Sun>=9 2s 1 BST
+-R % 1928 1929 - Ap Sun>=16 2s 1 BST
+-R % 1930 o - Ap Sun>=9 2s 1 BST
+-R % 1931 1932 - Ap Sun>=16 2s 1 BST
+-R % 1933 o - Ap Sun>=9 2s 1 BST
+-R % 1934 o - Ap Sun>=16 2s 1 BST
+-R % 1935 o - Ap Sun>=9 2s 1 BST
+-R % 1936 1937 - Ap Sun>=16 2s 1 BST
+-R % 1938 o - Ap Sun>=9 2s 1 BST
+-R % 1939 o - Ap Sun>=16 2s 1 BST
+-R % 1939 o - N Sun>=16 2s 0 GMT
+-R % 1940 o - F Sun>=23 2s 1 BST
+-R % 1941 o - May Sun>=2 1s 2 BDST
+-R % 1941 1943 - Au Sun>=9 1s 1 BST
+-R % 1942 1944 - Ap Sun>=2 1s 2 BDST
+-R % 1944 o - S Sun>=16 1s 1 BST
+-R % 1945 o - Ap M>=2 1s 2 BDST
+-R % 1945 o - Jul Sun>=9 1s 1 BST
+-R % 1945 1946 - O Sun>=2 2s 0 GMT
+-R % 1946 o - Ap Sun>=9 2s 1 BST
+-R % 1947 o - Mar 16 2s 1 BST
+-R % 1947 o - Ap 13 1s 2 BDST
+-R % 1947 o - Au 10 1s 1 BST
+-R % 1947 o - N 2 2s 0 GMT
+-R % 1948 o - Mar 14 2s 1 BST
+-R % 1948 o - O 31 2s 0 GMT
+-R % 1949 o - Ap 3 2s 1 BST
+-R % 1949 o - O 30 2s 0 GMT
+-R % 1950 1952 - Ap Sun>=14 2s 1 BST
+-R % 1950 1952 - O Sun>=21 2s 0 GMT
+-R % 1953 o - Ap Sun>=16 2s 1 BST
+-R % 1953 1960 - O Sun>=2 2s 0 GMT
+-R % 1954 o - Ap Sun>=9 2s 1 BST
+-R % 1955 1956 - Ap Sun>=16 2s 1 BST
+-R % 1957 o - Ap Sun>=9 2s 1 BST
+-R % 1958 1959 - Ap Sun>=16 2s 1 BST
+-R % 1960 o - Ap Sun>=9 2s 1 BST
+-R % 1961 1963 - Mar lastSun 2s 1 BST
+-R % 1961 1968 - O Sun>=23 2s 0 GMT
+-R % 1964 1967 - Mar Sun>=19 2s 1 BST
+-R % 1968 o - F 18 2s 1 BST
+-R % 1972 1980 - Mar Sun>=16 2s 1 BST
+-R % 1972 1980 - O Sun>=23 2s 0 GMT
+-R % 1981 1995 - Mar lastSun 1u 1 BST
+-R % 1981 1989 - O Sun>=23 1u 0 GMT
+-R % 1990 1995 - O Sun>=22 1u 0 GMT
++R G 1916 o - May 21 2s 1 BST
++R G 1916 o - O 1 2s 0 GMT
++R G 1917 o - Ap 8 2s 1 BST
++R G 1917 o - S 17 2s 0 GMT
++R G 1918 o - Mar 24 2s 1 BST
++R G 1918 o - S 30 2s 0 GMT
++R G 1919 o - Mar 30 2s 1 BST
++R G 1919 o - S 29 2s 0 GMT
++R G 1920 o - Mar 28 2s 1 BST
++R G 1920 o - O 25 2s 0 GMT
++R G 1921 o - Ap 3 2s 1 BST
++R G 1921 o - O 3 2s 0 GMT
++R G 1922 o - Mar 26 2s 1 BST
++R G 1922 o - O 8 2s 0 GMT
++R G 1923 o - Ap Sun>=16 2s 1 BST
++R G 1923 1924 - S Sun>=16 2s 0 GMT
++R G 1924 o - Ap Sun>=9 2s 1 BST
++R G 1925 1926 - Ap Sun>=16 2s 1 BST
++R G 1925 1938 - O Sun>=2 2s 0 GMT
++R G 1927 o - Ap Sun>=9 2s 1 BST
++R G 1928 1929 - Ap Sun>=16 2s 1 BST
++R G 1930 o - Ap Sun>=9 2s 1 BST
++R G 1931 1932 - Ap Sun>=16 2s 1 BST
++R G 1933 o - Ap Sun>=9 2s 1 BST
++R G 1934 o - Ap Sun>=16 2s 1 BST
++R G 1935 o - Ap Sun>=9 2s 1 BST
++R G 1936 1937 - Ap Sun>=16 2s 1 BST
++R G 1938 o - Ap Sun>=9 2s 1 BST
++R G 1939 o - Ap Sun>=16 2s 1 BST
++R G 1939 o - N Sun>=16 2s 0 GMT
++R G 1940 o - F Sun>=23 2s 1 BST
++R G 1941 o - May Sun>=2 1s 2 BDST
++R G 1941 1943 - Au Sun>=9 1s 1 BST
++R G 1942 1944 - Ap Sun>=2 1s 2 BDST
++R G 1944 o - S Sun>=16 1s 1 BST
++R G 1945 o - Ap M>=2 1s 2 BDST
++R G 1945 o - Jul Sun>=9 1s 1 BST
++R G 1945 1946 - O Sun>=2 2s 0 GMT
++R G 1946 o - Ap Sun>=9 2s 1 BST
++R G 1947 o - Mar 16 2s 1 BST
++R G 1947 o - Ap 13 1s 2 BDST
++R G 1947 o - Au 10 1s 1 BST
++R G 1947 o - N 2 2s 0 GMT
++R G 1948 o - Mar 14 2s 1 BST
++R G 1948 o - O 31 2s 0 GMT
++R G 1949 o - Ap 3 2s 1 BST
++R G 1949 o - O 30 2s 0 GMT
++R G 1950 1952 - Ap Sun>=14 2s 1 BST
++R G 1950 1952 - O Sun>=21 2s 0 GMT
++R G 1953 o - Ap Sun>=16 2s 1 BST
++R G 1953 1960 - O Sun>=2 2s 0 GMT
++R G 1954 o - Ap Sun>=9 2s 1 BST
++R G 1955 1956 - Ap Sun>=16 2s 1 BST
++R G 1957 o - Ap Sun>=9 2s 1 BST
++R G 1958 1959 - Ap Sun>=16 2s 1 BST
++R G 1960 o - Ap Sun>=9 2s 1 BST
++R G 1961 1963 - Mar lastSun 2s 1 BST
++R G 1961 1968 - O Sun>=23 2s 0 GMT
++R G 1964 1967 - Mar Sun>=19 2s 1 BST
++R G 1968 o - F 18 2s 1 BST
++R G 1972 1980 - Mar Sun>=16 2s 1 BST
++R G 1972 1980 - O Sun>=23 2s 0 GMT
++R G 1981 1995 - Mar lastSun 1u 1 BST
++R G 1981 1989 - O Sun>=23 1u 0 GMT
++R G 1990 1995 - O Sun>=22 1u 0 GMT
+ Z Europe/London -0:1:15 - LMT 1847 D 1 0s
+-0 % %s 1968 O 27
++0 G %s 1968 O 27
+ 1 - BST 1971 O 31 2u
+-0 % %s 1996
+-0 O GMT/BST
++0 G %s 1996
++0 E GMT/BST
+ Li Europe/London Europe/Jersey
+ Li Europe/London Europe/Guernsey
+ Li Europe/London Europe/Isle_of_Man
+-R & 1971 o - O 31 2u -1 -
+-R & 1972 1980 - Mar Sun>=16 2u 0 -
+-R & 1972 1980 - O Sun>=23 2u -1 -
+-R & 1981 ma - Mar lastSun 1u 0 -
+-R & 1981 1989 - O Sun>=23 1u -1 -
+-R & 1990 1995 - O Sun>=22 1u -1 -
+-R & 1996 ma - O lastSun 1u -1 -
++R IE 1971 o - O 31 2u -1 -
++R IE 1972 1980 - Mar Sun>=16 2u 0 -
++R IE 1972 1980 - O Sun>=23 2u -1 -
++R IE 1981 ma - Mar lastSun 1u 0 -
++R IE 1981 1989 - O Sun>=23 1u -1 -
++R IE 1990 1995 - O Sun>=22 1u -1 -
++R IE 1996 ma - O lastSun 1u -1 -
+ Z Europe/Dublin -0:25 - LMT 1880 Au 2
+ -0:25:21 - DMT 1916 May 21 2s
+ -0:25:21 1 IST 1916 O 1 2s
+-0 % %s 1921 D 6
+-0 % GMT/IST 1940 F 25 2s
++0 G %s 1921 D 6
++0 G GMT/IST 1940 F 25 2s
+ 0 1 IST 1946 O 6 2s
+ 0 - GMT 1947 Mar 16 2s
+ 0 1 IST 1947 N 2 2s
+ 0 - GMT 1948 Ap 18 2s
+-0 % GMT/IST 1968 O 27
+-1 & IST/GMT
+-R O 1977 1980 - Ap Sun>=1 1u 1 S
+-R O 1977 o - S lastSun 1u 0 -
+-R O 1978 o - O 1 1u 0 -
+-R O 1979 1995 - S lastSun 1u 0 -
+-R O 1981 ma - Mar lastSun 1u 1 S
+-R O 1996 ma - O lastSun 1u 0 -
+-R ' 1977 1980 - Ap Sun>=1 1s 1 S
+-R ' 1977 o - S lastSun 1s 0 -
+-R ' 1978 o - O 1 1s 0 -
+-R ' 1979 1995 - S lastSun 1s 0 -
+-R ' 1981 ma - Mar lastSun 1s 1 S
+-R ' 1996 ma - O lastSun 1s 0 -
+-R ( 1916 o - Ap 30 23 1 S
+-R ( 1916 o - O 1 1 0 -
+-R ( 1917 1918 - Ap M>=15 2s 1 S
+-R ( 1917 1918 - S M>=15 2s 0 -
+-R ( 1940 o - Ap 1 2s 1 S
+-R ( 1942 o - N 2 2s 0 -
+-R ( 1943 o - Mar 29 2s 1 S
+-R ( 1943 o - O 4 2s 0 -
+-R ( 1944 1945 - Ap M>=1 2s 1 S
+-R ( 1944 o - O 2 2s 0 -
+-R ( 1945 o - S 16 2s 0 -
+-R ( 1977 1980 - Ap Sun>=1 2s 1 S
+-R ( 1977 o - S lastSun 2s 0 -
+-R ( 1978 o - O 1 2s 0 -
+-R ( 1979 1995 - S lastSun 2s 0 -
+-R ( 1981 ma - Mar lastSun 2s 1 S
+-R ( 1996 ma - O lastSun 2s 0 -
+-R W 1977 1980 - Ap Sun>=1 0 1 S
+-R W 1977 o - S lastSun 0 0 -
+-R W 1978 o - O 1 0 0 -
+-R W 1979 1995 - S lastSun 0 0 -
+-R W 1981 ma - Mar lastSun 0 1 S
+-R W 1996 ma - O lastSun 0 0 -
+-R M 1917 o - Jul 1 23 1 MST
+-R M 1917 o - D 28 0 0 MMT
+-R M 1918 o - May 31 22 2 MDST
+-R M 1918 o - S 16 1 1 MST
+-R M 1919 o - May 31 23 2 MDST
+-R M 1919 o - Jul 1 0u 1 MSD
+-R M 1919 o - Au 16 0 0 MSK
+-R M 1921 o - F 14 23 1 MSD
+-R M 1921 o - Mar 20 23 2 +05
+-R M 1921 o - S 1 0 1 MSD
+-R M 1921 o - O 1 0 0 -
+-R M 1981 1984 - Ap 1 0 1 S
+-R M 1981 1983 - O 1 0 0 -
+-R M 1984 1995 - S lastSun 2s 0 -
+-R M 1985 2010 - Mar lastSun 2s 1 S
+-R M 1996 2010 - O lastSun 2s 0 -
+-Z WET 0 O WE%sT
+-Z CET 1 ( CE%sT
+-Z MET 1 ( ME%sT
+-Z EET 2 O EE%sT
+-R ) 1940 o - Jun 16 0 1 S
+-R ) 1942 o - N 2 3 0 -
+-R ) 1943 o - Mar 29 2 1 S
+-R ) 1943 o - Ap 10 3 0 -
+-R ) 1974 o - May 4 0 1 S
+-R ) 1974 o - O 2 0 0 -
+-R ) 1975 o - May 1 0 1 S
+-R ) 1975 o - O 2 0 0 -
+-R ) 1976 o - May 2 0 1 S
+-R ) 1976 o - O 3 0 0 -
+-R ) 1977 o - May 8 0 1 S
+-R ) 1977 o - O 2 0 0 -
+-R ) 1978 o - May 6 0 1 S
+-R ) 1978 o - O 1 0 0 -
+-R ) 1979 o - May 5 0 1 S
+-R ) 1979 o - S 30 0 0 -
+-R ) 1980 o - May 3 0 1 S
+-R ) 1980 o - O 4 0 0 -
+-R ) 1981 o - Ap 26 0 1 S
+-R ) 1981 o - S 27 0 0 -
+-R ) 1982 o - May 2 0 1 S
+-R ) 1982 o - O 3 0 0 -
+-R ) 1983 o - Ap 18 0 1 S
+-R ) 1983 o - O 1 0 0 -
+-R ) 1984 o - Ap 1 0 1 S
++0 G GMT/IST 1968 O 27
++1 IE IST/GMT
++R E 1977 1980 - Ap Sun>=1 1u 1 S
++R E 1977 o - S lastSun 1u 0 -
++R E 1978 o - O 1 1u 0 -
++R E 1979 1995 - S lastSun 1u 0 -
++R E 1981 ma - Mar lastSun 1u 1 S
++R E 1996 ma - O lastSun 1u 0 -
++R W- 1977 1980 - Ap Sun>=1 1s 1 S
++R W- 1977 o - S lastSun 1s 0 -
++R W- 1978 o - O 1 1s 0 -
++R W- 1979 1995 - S lastSun 1s 0 -
++R W- 1981 ma - Mar lastSun 1s 1 S
++R W- 1996 ma - O lastSun 1s 0 -
++R c 1916 o - Ap 30 23 1 S
++R c 1916 o - O 1 1 0 -
++R c 1917 1918 - Ap M>=15 2s 1 S
++R c 1917 1918 - S M>=15 2s 0 -
++R c 1940 o - Ap 1 2s 1 S
++R c 1942 o - N 2 2s 0 -
++R c 1943 o - Mar 29 2s 1 S
++R c 1943 o - O 4 2s 0 -
++R c 1944 1945 - Ap M>=1 2s 1 S
++R c 1944 o - O 2 2s 0 -
++R c 1945 o - S 16 2s 0 -
++R c 1977 1980 - Ap Sun>=1 2s 1 S
++R c 1977 o - S lastSun 2s 0 -
++R c 1978 o - O 1 2s 0 -
++R c 1979 1995 - S lastSun 2s 0 -
++R c 1981 ma - Mar lastSun 2s 1 S
++R c 1996 ma - O lastSun 2s 0 -
++R e 1977 1980 - Ap Sun>=1 0 1 S
++R e 1977 o - S lastSun 0 0 -
++R e 1978 o - O 1 0 0 -
++R e 1979 1995 - S lastSun 0 0 -
++R e 1981 ma - Mar lastSun 0 1 S
++R e 1996 ma - O lastSun 0 0 -
++R R 1917 o - Jul 1 23 1 MST
++R R 1917 o - D 28 0 0 MMT
++R R 1918 o - May 31 22 2 MDST
++R R 1918 o - S 16 1 1 MST
++R R 1919 o - May 31 23 2 MDST
++R R 1919 o - Jul 1 0u 1 MSD
++R R 1919 o - Au 16 0 0 MSK
++R R 1921 o - F 14 23 1 MSD
++R R 1921 o - Mar 20 23 2 +05
++R R 1921 o - S 1 0 1 MSD
++R R 1921 o - O 1 0 0 -
++R R 1981 1984 - Ap 1 0 1 S
++R R 1981 1983 - O 1 0 0 -
++R R 1984 1995 - S lastSun 2s 0 -
++R R 1985 2010 - Mar lastSun 2s 1 S
++R R 1996 2010 - O lastSun 2s 0 -
++Z WET 0 E WE%sT
++Z CET 1 c CE%sT
++Z MET 1 c ME%sT
++Z EET 2 E EE%sT
++R q 1940 o - Jun 16 0 1 S
++R q 1942 o - N 2 3 0 -
++R q 1943 o - Mar 29 2 1 S
++R q 1943 o - Ap 10 3 0 -
++R q 1974 o - May 4 0 1 S
++R q 1974 o - O 2 0 0 -
++R q 1975 o - May 1 0 1 S
++R q 1975 o - O 2 0 0 -
++R q 1976 o - May 2 0 1 S
++R q 1976 o - O 3 0 0 -
++R q 1977 o - May 8 0 1 S
++R q 1977 o - O 2 0 0 -
++R q 1978 o - May 6 0 1 S
++R q 1978 o - O 1 0 0 -
++R q 1979 o - May 5 0 1 S
++R q 1979 o - S 30 0 0 -
++R q 1980 o - May 3 0 1 S
++R q 1980 o - O 4 0 0 -
++R q 1981 o - Ap 26 0 1 S
++R q 1981 o - S 27 0 0 -
++R q 1982 o - May 2 0 1 S
++R q 1982 o - O 3 0 0 -
++R q 1983 o - Ap 18 0 1 S
++R q 1983 o - O 1 0 0 -
++R q 1984 o - Ap 1 0 1 S
+ Z Europe/Tirane 1:19:20 - LMT 1914
+ 1 - CET 1940 Jun 16
+-1 ) CE%sT 1984 Jul
+-1 O CE%sT
++1 q CE%sT 1984 Jul
++1 E CE%sT
+ Z Europe/Andorra 0:6:4 - LMT 1901
+ 0 - WET 1946 S 30
+ 1 - CET 1985 Mar 31 2
+-1 O CE%sT
+-R * 1920 o - Ap 5 2s 1 S
+-R * 1920 o - S 13 2s 0 -
+-R * 1946 o - Ap 14 2s 1 S
+-R * 1946 1948 - O Sun>=1 2s 0 -
+-R * 1947 o - Ap 6 2s 1 S
+-R * 1948 o - Ap 18 2s 1 S
+-R * 1980 o - Ap 6 0 1 S
+-R * 1980 o - S 28 0 0 -
++1 E CE%sT
++R a 1920 o - Ap 5 2s 1 S
++R a 1920 o - S 13 2s 0 -
++R a 1946 o - Ap 14 2s 1 S
++R a 1946 1948 - O Sun>=1 2s 0 -
++R a 1947 o - Ap 6 2s 1 S
++R a 1948 o - Ap 18 2s 1 S
++R a 1980 o - Ap 6 0 1 S
++R a 1980 o - S 28 0 0 -
+ Z Europe/Vienna 1:5:21 - LMT 1893 Ap
+-1 ( CE%sT 1920
+-1 * CE%sT 1940 Ap 1 2s
+-1 ( CE%sT 1945 Ap 2 2s
++1 c CE%sT 1920
++1 a CE%sT 1940 Ap 1 2s
++1 c CE%sT 1945 Ap 2 2s
+ 1 1 CEST 1945 Ap 12 2s
+ 1 - CET 1946
+-1 * CE%sT 1981
+-1 O CE%sT
++1 a CE%sT 1981
++1 E CE%sT
+ Z Europe/Minsk 1:50:16 - LMT 1880
+ 1:50 - MMT 1924 May 2
+ 2 - EET 1930 Jun 21
+ 3 - MSK 1941 Jun 28
+-1 ( CE%sT 1944 Jul 3
+-3 M MSK/MSD 1990
++1 c CE%sT 1944 Jul 3
++3 R MSK/MSD 1990
+ 3 - MSK 1991 Mar 31 2s
+-2 M EE%sT 2011 Mar 27 2s
++2 R EE%sT 2011 Mar 27 2s
+ 3 - +03
+-R + 1918 o - Mar 9 0s 1 S
+-R + 1918 1919 - O Sat>=1 23s 0 -
+-R + 1919 o - Mar 1 23s 1 S
+-R + 1920 o - F 14 23s 1 S
+-R + 1920 o - O 23 23s 0 -
+-R + 1921 o - Mar 14 23s 1 S
+-R + 1921 o - O 25 23s 0 -
+-R + 1922 o - Mar 25 23s 1 S
+-R + 1922 1927 - O Sat>=1 23s 0 -
+-R + 1923 o - Ap 21 23s 1 S
+-R + 1924 o - Mar 29 23s 1 S
+-R + 1925 o - Ap 4 23s 1 S
+-R + 1926 o - Ap 17 23s 1 S
+-R + 1927 o - Ap 9 23s 1 S
+-R + 1928 o - Ap 14 23s 1 S
+-R + 1928 1938 - O Sun>=2 2s 0 -
+-R + 1929 o - Ap 21 2s 1 S
+-R + 1930 o - Ap 13 2s 1 S
+-R + 1931 o - Ap 19 2s 1 S
+-R + 1932 o - Ap 3 2s 1 S
+-R + 1933 o - Mar 26 2s 1 S
+-R + 1934 o - Ap 8 2s 1 S
+-R + 1935 o - Mar 31 2s 1 S
+-R + 1936 o - Ap 19 2s 1 S
+-R + 1937 o - Ap 4 2s 1 S
+-R + 1938 o - Mar 27 2s 1 S
+-R + 1939 o - Ap 16 2s 1 S
+-R + 1939 o - N 19 2s 0 -
+-R + 1940 o - F 25 2s 1 S
+-R + 1944 o - S 17 2s 0 -
+-R + 1945 o - Ap 2 2s 1 S
+-R + 1945 o - S 16 2s 0 -
+-R + 1946 o - May 19 2s 1 S
+-R + 1946 o - O 7 2s 0 -
++R b 1918 o - Mar 9 0s 1 S
++R b 1918 1919 - O Sat>=1 23s 0 -
++R b 1919 o - Mar 1 23s 1 S
++R b 1920 o - F 14 23s 1 S
++R b 1920 o - O 23 23s 0 -
++R b 1921 o - Mar 14 23s 1 S
++R b 1921 o - O 25 23s 0 -
++R b 1922 o - Mar 25 23s 1 S
++R b 1922 1927 - O Sat>=1 23s 0 -
++R b 1923 o - Ap 21 23s 1 S
++R b 1924 o - Mar 29 23s 1 S
++R b 1925 o - Ap 4 23s 1 S
++R b 1926 o - Ap 17 23s 1 S
++R b 1927 o - Ap 9 23s 1 S
++R b 1928 o - Ap 14 23s 1 S
++R b 1928 1938 - O Sun>=2 2s 0 -
++R b 1929 o - Ap 21 2s 1 S
++R b 1930 o - Ap 13 2s 1 S
++R b 1931 o - Ap 19 2s 1 S
++R b 1932 o - Ap 3 2s 1 S
++R b 1933 o - Mar 26 2s 1 S
++R b 1934 o - Ap 8 2s 1 S
++R b 1935 o - Mar 31 2s 1 S
++R b 1936 o - Ap 19 2s 1 S
++R b 1937 o - Ap 4 2s 1 S
++R b 1938 o - Mar 27 2s 1 S
++R b 1939 o - Ap 16 2s 1 S
++R b 1939 o - N 19 2s 0 -
++R b 1940 o - F 25 2s 1 S
++R b 1944 o - S 17 2s 0 -
++R b 1945 o - Ap 2 2s 1 S
++R b 1945 o - S 16 2s 0 -
++R b 1946 o - May 19 2s 1 S
++R b 1946 o - O 7 2s 0 -
+ Z Europe/Brussels 0:17:30 - LMT 1880
+ 0:17:30 - BMT 1892 May 1 12
+ 0 - WET 1914 N 8
+ 1 - CET 1916 May
+-1 ( CE%sT 1918 N 11 11u
+-0 + WE%sT 1940 May 20 2s
+-1 ( CE%sT 1944 S 3
+-1 + CE%sT 1977
+-1 O CE%sT
+-R , 1979 o - Mar 31 23 1 S
+-R , 1979 o - O 1 1 0 -
+-R , 1980 1982 - Ap Sat>=1 23 1 S
+-R , 1980 o - S 29 1 0 -
+-R , 1981 o - S 27 2 0 -
++1 c CE%sT 1918 N 11 11u
++0 b WE%sT 1940 May 20 2s
++1 c CE%sT 1944 S 3
++1 b CE%sT 1977
++1 E CE%sT
++R BG 1979 o - Mar 31 23 1 S
++R BG 1979 o - O 1 1 0 -
++R BG 1980 1982 - Ap Sat>=1 23 1 S
++R BG 1980 o - S 29 1 0 -
++R BG 1981 o - S 27 2 0 -
+ Z Europe/Sofia 1:33:16 - LMT 1880
+ 1:56:56 - IMT 1894 N 30
+ 2 - EET 1942 N 2 3
+-1 ( CE%sT 1945
++1 c CE%sT 1945
+ 1 - CET 1945 Ap 2 3
+ 2 - EET 1979 Mar 31 23
+-2 , EE%sT 1982 S 26 3
+-2 ( EE%sT 1991
+-2 W EE%sT 1997
+-2 O EE%sT
+-R . 1945 o - Ap M>=1 2s 1 S
+-R . 1945 o - O 1 2s 0 -
+-R . 1946 o - May 6 2s 1 S
+-R . 1946 1949 - O Sun>=1 2s 0 -
+-R . 1947 1948 - Ap Sun>=15 2s 1 S
+-R . 1949 o - Ap 9 2s 1 S
++2 BG EE%sT 1982 S 26 3
++2 c EE%sT 1991
++2 e EE%sT 1997
++2 E EE%sT
++R CZ 1945 o - Ap M>=1 2s 1 S
++R CZ 1945 o - O 1 2s 0 -
++R CZ 1946 o - May 6 2s 1 S
++R CZ 1946 1949 - O Sun>=1 2s 0 -
++R CZ 1947 1948 - Ap Sun>=15 2s 1 S
++R CZ 1949 o - Ap 9 2s 1 S
+ Z Europe/Prague 0:57:44 - LMT 1850
+ 0:57:44 - PMT 1891 O
+-1 ( CE%sT 1945 May 9
+-1 . CE%sT 1946 D 1 3
++1 c CE%sT 1945 May 9
++1 CZ CE%sT 1946 D 1 3
+ 1 -1 GMT 1947 F 23 2
+-1 . CE%sT 1979
+-1 O CE%sT
+-R / 1916 o - May 14 23 1 S
+-R / 1916 o - S 30 23 0 -
+-R / 1940 o - May 15 0 1 S
+-R / 1945 o - Ap 2 2s 1 S
+-R / 1945 o - Au 15 2s 0 -
+-R / 1946 o - May 1 2s 1 S
+-R / 1946 o - S 1 2s 0 -
+-R / 1947 o - May 4 2s 1 S
+-R / 1947 o - Au 10 2s 0 -
+-R / 1948 o - May 9 2s 1 S
+-R / 1948 o - Au 8 2s 0 -
++1 CZ CE%sT 1979
++1 E CE%sT
++R D 1916 o - May 14 23 1 S
++R D 1916 o - S 30 23 0 -
++R D 1940 o - May 15 0 1 S
++R D 1945 o - Ap 2 2s 1 S
++R D 1945 o - Au 15 2s 0 -
++R D 1946 o - May 1 2s 1 S
++R D 1946 o - S 1 2s 0 -
++R D 1947 o - May 4 2s 1 S
++R D 1947 o - Au 10 2s 0 -
++R D 1948 o - May 9 2s 1 S
++R D 1948 o - Au 8 2s 0 -
+ Z Europe/Copenhagen 0:50:20 - LMT 1890
+ 0:50:20 - CMT 1894
+-1 / CE%sT 1942 N 2 2s
+-1 ( CE%sT 1945 Ap 2 2
+-1 / CE%sT 1980
+-1 O CE%sT
++1 D CE%sT 1942 N 2 2s
++1 c CE%sT 1945 Ap 2 2
++1 D CE%sT 1980
++1 E CE%sT
+ Z Atlantic/Faroe -0:27:4 - LMT 1908 Ja 11
+ 0 - WET 1981
+-0 O WE%sT
+-R : 1991 1992 - Mar lastSun 2 1 D
+-R : 1991 1992 - S lastSun 2 0 S
+-R : 1993 2006 - Ap Sun>=1 2 1 D
+-R : 1993 2006 - O lastSun 2 0 S
+-R : 2007 ma - Mar Sun>=8 2 1 D
+-R : 2007 ma - N Sun>=1 2 0 S
++0 E WE%sT
++R Th 1991 1992 - Mar lastSun 2 1 D
++R Th 1991 1992 - S lastSun 2 0 S
++R Th 1993 2006 - Ap Sun>=1 2 1 D
++R Th 1993 2006 - O lastSun 2 0 S
++R Th 2007 ma - Mar Sun>=8 2 1 D
++R Th 2007 ma - N Sun>=1 2 0 S
+ Z America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28
+ -3 - -03 1980 Ap 6 2
+--3 O -03/-02 1996
++-3 E -03/-02 1996
+ 0 - GMT
+ Z America/Scoresbysund -1:27:52 - LMT 1916 Jul 28
+ -2 - -02 1980 Ap 6 2
+--2 ( -02/-01 1981 Mar 29
+--1 O -01/+00
++-2 c -02/-01 1981 Mar 29
++-1 E -01/+00
+ Z America/Godthab -3:26:56 - LMT 1916 Jul 28
+ -3 - -03 1980 Ap 6 2
+--3 O -03/-02
++-3 E -03/-02
+ Z America/Thule -4:35:8 - LMT 1916 Jul 28
+--4 : A%sT
++-4 Th A%sT
+ Z Europe/Tallinn 1:39 - LMT 1880
+ 1:39 - TMT 1918 F
+-1 ( CE%sT 1919 Jul
++1 c CE%sT 1919 Jul
+ 1:39 - TMT 1921 May
+ 2 - EET 1940 Au 6
+ 3 - MSK 1941 S 15
+-1 ( CE%sT 1944 S 22
+-3 M MSK/MSD 1989 Mar 26 2s
++1 c CE%sT 1944 S 22
++3 R MSK/MSD 1989 Mar 26 2s
+ 2 1 EEST 1989 S 24 2s
+-2 ( EE%sT 1998 S 22
+-2 O EE%sT 1999 O 31 4
++2 c EE%sT 1998 S 22
++2 E EE%sT 1999 O 31 4
+ 2 - EET 2002 F 21
+-2 O EE%sT
+-R ; 1942 o - Ap 2 24 1 S
+-R ; 1942 o - O 4 1 0 -
+-R ; 1981 1982 - Mar lastSun 2 1 S
+-R ; 1981 1982 - S lastSun 3 0 -
++2 E EE%sT
++R FI 1942 o - Ap 2 24 1 S
++R FI 1942 o - O 4 1 0 -
++R FI 1981 1982 - Mar lastSun 2 1 S
++R FI 1981 1982 - S lastSun 3 0 -
+ Z Europe/Helsinki 1:39:49 - LMT 1878 May 31
+ 1:39:49 - HMT 1921 May
+-2 ; EE%sT 1983
+-2 O EE%sT
++2 FI EE%sT 1983
++2 E EE%sT
+ Li Europe/Helsinki Europe/Mariehamn
+-R < 1916 o - Jun 14 23s 1 S
+-R < 1916 1919 - O Sun>=1 23s 0 -
+-R < 1917 o - Mar 24 23s 1 S
+-R < 1918 o - Mar 9 23s 1 S
+-R < 1919 o - Mar 1 23s 1 S
+-R < 1920 o - F 14 23s 1 S
+-R < 1920 o - O 23 23s 0 -
+-R < 1921 o - Mar 14 23s 1 S
+-R < 1921 o - O 25 23s 0 -
+-R < 1922 o - Mar 25 23s 1 S
+-R < 1922 1938 - O Sat>=1 23s 0 -
+-R < 1923 o - May 26 23s 1 S
+-R < 1924 o - Mar 29 23s 1 S
+-R < 1925 o - Ap 4 23s 1 S
+-R < 1926 o - Ap 17 23s 1 S
+-R < 1927 o - Ap 9 23s 1 S
+-R < 1928 o - Ap 14 23s 1 S
+-R < 1929 o - Ap 20 23s 1 S
+-R < 1930 o - Ap 12 23s 1 S
+-R < 1931 o - Ap 18 23s 1 S
+-R < 1932 o - Ap 2 23s 1 S
+-R < 1933 o - Mar 25 23s 1 S
+-R < 1934 o - Ap 7 23s 1 S
+-R < 1935 o - Mar 30 23s 1 S
+-R < 1936 o - Ap 18 23s 1 S
+-R < 1937 o - Ap 3 23s 1 S
+-R < 1938 o - Mar 26 23s 1 S
+-R < 1939 o - Ap 15 23s 1 S
+-R < 1939 o - N 18 23s 0 -
+-R < 1940 o - F 25 2 1 S
+-R < 1941 o - May 5 0 2 M
+-R < 1941 o - O 6 0 1 S
+-R < 1942 o - Mar 9 0 2 M
+-R < 1942 o - N 2 3 1 S
+-R < 1943 o - Mar 29 2 2 M
+-R < 1943 o - O 4 3 1 S
+-R < 1944 o - Ap 3 2 2 M
+-R < 1944 o - O 8 1 1 S
+-R < 1945 o - Ap 2 2 2 M
+-R < 1945 o - S 16 3 0 -
+-R < 1976 o - Mar 28 1 1 S
+-R < 1976 o - S 26 1 0 -
++R F 1916 o - Jun 14 23s 1 S
++R F 1916 1919 - O Sun>=1 23s 0 -
++R F 1917 o - Mar 24 23s 1 S
++R F 1918 o - Mar 9 23s 1 S
++R F 1919 o - Mar 1 23s 1 S
++R F 1920 o - F 14 23s 1 S
++R F 1920 o - O 23 23s 0 -
++R F 1921 o - Mar 14 23s 1 S
++R F 1921 o - O 25 23s 0 -
++R F 1922 o - Mar 25 23s 1 S
++R F 1922 1938 - O Sat>=1 23s 0 -
++R F 1923 o - May 26 23s 1 S
++R F 1924 o - Mar 29 23s 1 S
++R F 1925 o - Ap 4 23s 1 S
++R F 1926 o - Ap 17 23s 1 S
++R F 1927 o - Ap 9 23s 1 S
++R F 1928 o - Ap 14 23s 1 S
++R F 1929 o - Ap 20 23s 1 S
++R F 1930 o - Ap 12 23s 1 S
++R F 1931 o - Ap 18 23s 1 S
++R F 1932 o - Ap 2 23s 1 S
++R F 1933 o - Mar 25 23s 1 S
++R F 1934 o - Ap 7 23s 1 S
++R F 1935 o - Mar 30 23s 1 S
++R F 1936 o - Ap 18 23s 1 S
++R F 1937 o - Ap 3 23s 1 S
++R F 1938 o - Mar 26 23s 1 S
++R F 1939 o - Ap 15 23s 1 S
++R F 1939 o - N 18 23s 0 -
++R F 1940 o - F 25 2 1 S
++R F 1941 o - May 5 0 2 M
++R F 1941 o - O 6 0 1 S
++R F 1942 o - Mar 9 0 2 M
++R F 1942 o - N 2 3 1 S
++R F 1943 o - Mar 29 2 2 M
++R F 1943 o - O 4 3 1 S
++R F 1944 o - Ap 3 2 2 M
++R F 1944 o - O 8 1 1 S
++R F 1945 o - Ap 2 2 2 M
++R F 1945 o - S 16 3 0 -
++R F 1976 o - Mar 28 1 1 S
++R F 1976 o - S 26 1 0 -
+ Z Europe/Paris 0:9:21 - LMT 1891 Mar 15 0:1
+ 0:9:21 - PMT 1911 Mar 11 0:1
+-0 < WE%sT 1940 Jun 14 23
+-1 ( CE%sT 1944 Au 25
+-0 < WE%sT 1945 S 16 3
+-1 < CE%sT 1977
+-1 O CE%sT
+-R = 1946 o - Ap 14 2s 1 S
+-R = 1946 o - O 7 2s 0 -
+-R = 1947 1949 - O Sun>=1 2s 0 -
+-R = 1947 o - Ap 6 3s 1 S
+-R = 1947 o - May 11 2s 2 M
+-R = 1947 o - Jun 29 3 1 S
+-R = 1948 o - Ap 18 2s 1 S
+-R = 1949 o - Ap 10 2s 1 S
+-R > 1945 o - May 24 2 2 M
+-R > 1945 o - S 24 3 1 S
+-R > 1945 o - N 18 2s 0 -
++0 F WE%sT 1940 Jun 14 23
++1 c CE%sT 1944 Au 25
++0 F WE%sT 1945 S 16 3
++1 F CE%sT 1977
++1 E CE%sT
++R DE 1946 o - Ap 14 2s 1 S
++R DE 1946 o - O 7 2s 0 -
++R DE 1947 1949 - O Sun>=1 2s 0 -
++R DE 1947 o - Ap 6 3s 1 S
++R DE 1947 o - May 11 2s 2 M
++R DE 1947 o - Jun 29 3 1 S
++R DE 1948 o - Ap 18 2s 1 S
++R DE 1949 o - Ap 10 2s 1 S
++R So 1945 o - May 24 2 2 M
++R So 1945 o - S 24 3 1 S
++R So 1945 o - N 18 2s 0 -
+ Z Europe/Berlin 0:53:28 - LMT 1893 Ap
+-1 ( CE%sT 1945 May 24 2
+-1 > CE%sT 1946
+-1 = CE%sT 1980
+-1 O CE%sT
++1 c CE%sT 1945 May 24 2
++1 So CE%sT 1946
++1 DE CE%sT 1980
++1 E CE%sT
+ Li Europe/Zurich Europe/Busingen
+ Z Europe/Gibraltar -0:21:24 - LMT 1880 Au 2 0s
+-0 % %s 1957 Ap 14 2
++0 G %s 1957 Ap 14 2
+ 1 - CET 1982
+-1 O CE%sT
+-R ? 1932 o - Jul 7 0 1 S
+-R ? 1932 o - S 1 0 0 -
+-R ? 1941 o - Ap 7 0 1 S
+-R ? 1942 o - N 2 3 0 -
+-R ? 1943 o - Mar 30 0 1 S
+-R ? 1943 o - O 4 0 0 -
+-R ? 1952 o - Jul 1 0 1 S
+-R ? 1952 o - N 2 0 0 -
+-R ? 1975 o - Ap 12 0s 1 S
+-R ? 1975 o - N 26 0s 0 -
+-R ? 1976 o - Ap 11 2s 1 S
+-R ? 1976 o - O 10 2s 0 -
+-R ? 1977 1978 - Ap Sun>=1 2s 1 S
+-R ? 1977 o - S 26 2s 0 -
+-R ? 1978 o - S 24 4 0 -
+-R ? 1979 o - Ap 1 9 1 S
+-R ? 1979 o - S 29 2 0 -
+-R ? 1980 o - Ap 1 0 1 S
+-R ? 1980 o - S 28 0 0 -
++1 E CE%sT
++R g 1932 o - Jul 7 0 1 S
++R g 1932 o - S 1 0 0 -
++R g 1941 o - Ap 7 0 1 S
++R g 1942 o - N 2 3 0 -
++R g 1943 o - Mar 30 0 1 S
++R g 1943 o - O 4 0 0 -
++R g 1952 o - Jul 1 0 1 S
++R g 1952 o - N 2 0 0 -
++R g 1975 o - Ap 12 0s 1 S
++R g 1975 o - N 26 0s 0 -
++R g 1976 o - Ap 11 2s 1 S
++R g 1976 o - O 10 2s 0 -
++R g 1977 1978 - Ap Sun>=1 2s 1 S
++R g 1977 o - S 26 2s 0 -
++R g 1978 o - S 24 4 0 -
++R g 1979 o - Ap 1 9 1 S
++R g 1979 o - S 29 2 0 -
++R g 1980 o - Ap 1 0 1 S
++R g 1980 o - S 28 0 0 -
+ Z Europe/Athens 1:34:52 - LMT 1895 S 14
+ 1:34:52 - AMT 1916 Jul 28 0:1
+-2 ? EE%sT 1941 Ap 30
+-1 ? CE%sT 1944 Ap 4
+-2 ? EE%sT 1981
+-2 O EE%sT
+-R @ 1918 o - Ap 1 3 1 S
+-R @ 1918 o - S 16 3 0 -
+-R @ 1919 o - Ap 15 3 1 S
+-R @ 1919 o - N 24 3 0 -
+-R @ 1945 o - May 1 23 1 S
+-R @ 1945 o - N 1 0 0 -
+-R @ 1946 o - Mar 31 2s 1 S
+-R @ 1946 1949 - O Sun>=1 2s 0 -
+-R @ 1947 1949 - Ap Sun>=4 2s 1 S
+-R @ 1950 o - Ap 17 2s 1 S
+-R @ 1950 o - O 23 2s 0 -
+-R @ 1954 1955 - May 23 0 1 S
+-R @ 1954 1955 - O 3 0 0 -
+-R @ 1956 o - Jun Sun>=1 0 1 S
+-R @ 1956 o - S lastSun 0 0 -
+-R @ 1957 o - Jun Sun>=1 1 1 S
+-R @ 1957 o - S lastSun 3 0 -
+-R @ 1980 o - Ap 6 1 1 S
++2 g EE%sT 1941 Ap 30
++1 g CE%sT 1944 Ap 4
++2 g EE%sT 1981
++2 E EE%sT
++R h 1918 o - Ap 1 3 1 S
++R h 1918 o - S 16 3 0 -
++R h 1919 o - Ap 15 3 1 S
++R h 1919 o - N 24 3 0 -
++R h 1945 o - May 1 23 1 S
++R h 1945 o - N 1 0 0 -
++R h 1946 o - Mar 31 2s 1 S
++R h 1946 1949 - O Sun>=1 2s 0 -
++R h 1947 1949 - Ap Sun>=4 2s 1 S
++R h 1950 o - Ap 17 2s 1 S
++R h 1950 o - O 23 2s 0 -
++R h 1954 1955 - May 23 0 1 S
++R h 1954 1955 - O 3 0 0 -
++R h 1956 o - Jun Sun>=1 0 1 S
++R h 1956 o - S lastSun 0 0 -
++R h 1957 o - Jun Sun>=1 1 1 S
++R h 1957 o - S lastSun 3 0 -
++R h 1980 o - Ap 6 1 1 S
+ Z Europe/Budapest 1:16:20 - LMT 1890 O
+-1 ( CE%sT 1918
+-1 @ CE%sT 1941 Ap 8
+-1 ( CE%sT 1945
+-1 @ CE%sT 1980 S 28 2s
+-1 O CE%sT
+-R [ 1917 1919 - F 19 23 1 -
+-R [ 1917 o - O 21 1 0 -
+-R [ 1918 1919 - N 16 1 0 -
+-R [ 1921 o - Mar 19 23 1 -
+-R [ 1921 o - Jun 23 1 0 -
+-R [ 1939 o - Ap 29 23 1 -
+-R [ 1939 o - O 29 2 0 -
+-R [ 1940 o - F 25 2 1 -
+-R [ 1940 1941 - N Sun>=2 1s 0 -
+-R [ 1941 1942 - Mar Sun>=2 1s 1 -
+-R [ 1943 1946 - Mar Sun>=1 1s 1 -
+-R [ 1942 1948 - O Sun>=22 1s 0 -
+-R [ 1947 1967 - Ap Sun>=1 1s 1 -
+-R [ 1949 o - O 30 1s 0 -
+-R [ 1950 1966 - O Sun>=22 1s 0 -
+-R [ 1967 o - O 29 1s 0 -
++1 c CE%sT 1918
++1 h CE%sT 1941 Ap 8
++1 c CE%sT 1945
++1 h CE%sT 1980 S 28 2s
++1 E CE%sT
++R w 1917 1919 - F 19 23 1 -
++R w 1917 o - O 21 1 0 -
++R w 1918 1919 - N 16 1 0 -
++R w 1921 o - Mar 19 23 1 -
++R w 1921 o - Jun 23 1 0 -
++R w 1939 o - Ap 29 23 1 -
++R w 1939 o - O 29 2 0 -
++R w 1940 o - F 25 2 1 -
++R w 1940 1941 - N Sun>=2 1s 0 -
++R w 1941 1942 - Mar Sun>=2 1s 1 -
++R w 1943 1946 - Mar Sun>=1 1s 1 -
++R w 1942 1948 - O Sun>=22 1s 0 -
++R w 1947 1967 - Ap Sun>=1 1s 1 -
++R w 1949 o - O 30 1s 0 -
++R w 1950 1966 - O Sun>=22 1s 0 -
++R w 1967 o - O 29 1s 0 -
+ Z Atlantic/Reykjavik -1:28 - LMT 1908
+--1 [ -01/+00 1968 Ap 7 1s
++-1 w -01/+00 1968 Ap 7 1s
+ 0 - GMT
+-R \ 1916 o - Jun 3 24 1 S
+-R \ 1916 1917 - S 30 24 0 -
+-R \ 1917 o - Mar 31 24 1 S
+-R \ 1918 o - Mar 9 24 1 S
+-R \ 1918 o - O 6 24 0 -
+-R \ 1919 o - Mar 1 24 1 S
+-R \ 1919 o - O 4 24 0 -
+-R \ 1920 o - Mar 20 24 1 S
+-R \ 1920 o - S 18 24 0 -
+-R \ 1940 o - Jun 14 24 1 S
+-R \ 1942 o - N 2 2s 0 -
+-R \ 1943 o - Mar 29 2s 1 S
+-R \ 1943 o - O 4 2s 0 -
+-R \ 1944 o - Ap 2 2s 1 S
+-R \ 1944 o - S 17 2s 0 -
+-R \ 1945 o - Ap 2 2 1 S
+-R \ 1945 o - S 15 1 0 -
+-R \ 1946 o - Mar 17 2s 1 S
+-R \ 1946 o - O 6 2s 0 -
+-R \ 1947 o - Mar 16 0s 1 S
+-R \ 1947 o - O 5 0s 0 -
+-R \ 1948 o - F 29 2s 1 S
+-R \ 1948 o - O 3 2s 0 -
+-R \ 1966 1968 - May Sun>=22 0s 1 S
+-R \ 1966 o - S 24 24 0 -
+-R \ 1967 1969 - S Sun>=22 0s 0 -
+-R \ 1969 o - Jun 1 0s 1 S
+-R \ 1970 o - May 31 0s 1 S
+-R \ 1970 o - S lastSun 0s 0 -
+-R \ 1971 1972 - May Sun>=22 0s 1 S
+-R \ 1971 o - S lastSun 0s 0 -
+-R \ 1972 o - O 1 0s 0 -
+-R \ 1973 o - Jun 3 0s 1 S
+-R \ 1973 1974 - S lastSun 0s 0 -
+-R \ 1974 o - May 26 0s 1 S
+-R \ 1975 o - Jun 1 0s 1 S
+-R \ 1975 1977 - S lastSun 0s 0 -
+-R \ 1976 o - May 30 0s 1 S
+-R \ 1977 1979 - May Sun>=22 0s 1 S
+-R \ 1978 o - O 1 0s 0 -
+-R \ 1979 o - S 30 0s 0 -
++R I 1916 o - Jun 3 24 1 S
++R I 1916 1917 - S 30 24 0 -
++R I 1917 o - Mar 31 24 1 S
++R I 1918 o - Mar 9 24 1 S
++R I 1918 o - O 6 24 0 -
++R I 1919 o - Mar 1 24 1 S
++R I 1919 o - O 4 24 0 -
++R I 1920 o - Mar 20 24 1 S
++R I 1920 o - S 18 24 0 -
++R I 1940 o - Jun 14 24 1 S
++R I 1942 o - N 2 2s 0 -
++R I 1943 o - Mar 29 2s 1 S
++R I 1943 o - O 4 2s 0 -
++R I 1944 o - Ap 2 2s 1 S
++R I 1944 o - S 17 2s 0 -
++R I 1945 o - Ap 2 2 1 S
++R I 1945 o - S 15 1 0 -
++R I 1946 o - Mar 17 2s 1 S
++R I 1946 o - O 6 2s 0 -
++R I 1947 o - Mar 16 0s 1 S
++R I 1947 o - O 5 0s 0 -
++R I 1948 o - F 29 2s 1 S
++R I 1948 o - O 3 2s 0 -
++R I 1966 1968 - May Sun>=22 0s 1 S
++R I 1966 o - S 24 24 0 -
++R I 1967 1969 - S Sun>=22 0s 0 -
++R I 1969 o - Jun 1 0s 1 S
++R I 1970 o - May 31 0s 1 S
++R I 1970 o - S lastSun 0s 0 -
++R I 1971 1972 - May Sun>=22 0s 1 S
++R I 1971 o - S lastSun 0s 0 -
++R I 1972 o - O 1 0s 0 -
++R I 1973 o - Jun 3 0s 1 S
++R I 1973 1974 - S lastSun 0s 0 -
++R I 1974 o - May 26 0s 1 S
++R I 1975 o - Jun 1 0s 1 S
++R I 1975 1977 - S lastSun 0s 0 -
++R I 1976 o - May 30 0s 1 S
++R I 1977 1979 - May Sun>=22 0s 1 S
++R I 1978 o - O 1 0s 0 -
++R I 1979 o - S 30 0s 0 -
+ Z Europe/Rome 0:49:56 - LMT 1866 S 22
+ 0:49:56 - RMT 1893 O 31 23:49:56
+-1 \ CE%sT 1943 S 10
+-1 ( CE%sT 1944 Jun 4
+-1 \ CE%sT 1980
+-1 O CE%sT
++1 I CE%sT 1943 S 10
++1 c CE%sT 1944 Jun 4
++1 I CE%sT 1980
++1 E CE%sT
+ Li Europe/Rome Europe/Vatican
+ Li Europe/Rome Europe/San_Marino
+-R ] 1989 1996 - Mar lastSun 2s 1 S
+-R ] 1989 1996 - S lastSun 2s 0 -
++R LV 1989 1996 - Mar lastSun 2s 1 S
++R LV 1989 1996 - S lastSun 2s 0 -
+ Z Europe/Riga 1:36:34 - LMT 1880
+ 1:36:34 - RMT 1918 Ap 15 2
+ 1:36:34 1 LST 1918 S 16 3
+@@ -1883,13 +1907,13 @@ Z Europe/Riga 1:36:34 - LMT 1880
+ 1:36:34 - RMT 1926 May 11
+ 2 - EET 1940 Au 5
+ 3 - MSK 1941 Jul
+-1 ( CE%sT 1944 O 13
+-3 M MSK/MSD 1989 Mar lastSun 2s
++1 c CE%sT 1944 O 13
++3 R MSK/MSD 1989 Mar lastSun 2s
+ 2 1 EEST 1989 S lastSun 2s
+-2 ] EE%sT 1997 Ja 21
+-2 O EE%sT 2000 F 29
++2 LV EE%sT 1997 Ja 21
++2 E EE%sT 2000 F 29
+ 2 - EET 2001 Ja 2
+-2 O EE%sT
++2 E EE%sT
+ Li Europe/Zurich Europe/Vaduz
+ Z Europe/Vilnius 1:41:16 - LMT 1880
+ 1:24 - WMT 1917
+@@ -1898,783 +1922,776 @@ Z Europe/Vilnius 1:41:16 - LMT 1880
+ 2 - EET 1920 O 9
+ 1 - CET 1940 Au 3
+ 3 - MSK 1941 Jun 24
+-1 ( CE%sT 1944 Au
+-3 M MSK/MSD 1989 Mar 26 2s
+-2 M EE%sT 1991 S 29 2s
+-2 ( EE%sT 1998
++1 c CE%sT 1944 Au
++3 R MSK/MSD 1989 Mar 26 2s
++2 R EE%sT 1991 S 29 2s
++2 c EE%sT 1998
+ 2 - EET 1998 Mar 29 1u
+-1 O CE%sT 1999 O 31 1u
++1 E CE%sT 1999 O 31 1u
+ 2 - EET 2003
+-2 O EE%sT
+-R ^ 1916 o - May 14 23 1 S
+-R ^ 1916 o - O 1 1 0 -
+-R ^ 1917 o - Ap 28 23 1 S
+-R ^ 1917 o - S 17 1 0 -
+-R ^ 1918 o - Ap M>=15 2s 1 S
+-R ^ 1918 o - S M>=15 2s 0 -
+-R ^ 1919 o - Mar 1 23 1 S
+-R ^ 1919 o - O 5 3 0 -
+-R ^ 1920 o - F 14 23 1 S
+-R ^ 1920 o - O 24 2 0 -
+-R ^ 1921 o - Mar 14 23 1 S
+-R ^ 1921 o - O 26 2 0 -
+-R ^ 1922 o - Mar 25 23 1 S
+-R ^ 1922 o - O Sun>=2 1 0 -
+-R ^ 1923 o - Ap 21 23 1 S
+-R ^ 1923 o - O Sun>=2 2 0 -
+-R ^ 1924 o - Mar 29 23 1 S
+-R ^ 1924 1928 - O Sun>=2 1 0 -
+-R ^ 1925 o - Ap 5 23 1 S
+-R ^ 1926 o - Ap 17 23 1 S
+-R ^ 1927 o - Ap 9 23 1 S
+-R ^ 1928 o - Ap 14 23 1 S
+-R ^ 1929 o - Ap 20 23 1 S
++2 E EE%sT
++R LX 1916 o - May 14 23 1 S
++R LX 1916 o - O 1 1 0 -
++R LX 1917 o - Ap 28 23 1 S
++R LX 1917 o - S 17 1 0 -
++R LX 1918 o - Ap M>=15 2s 1 S
++R LX 1918 o - S M>=15 2s 0 -
++R LX 1919 o - Mar 1 23 1 S
++R LX 1919 o - O 5 3 0 -
++R LX 1920 o - F 14 23 1 S
++R LX 1920 o - O 24 2 0 -
++R LX 1921 o - Mar 14 23 1 S
++R LX 1921 o - O 26 2 0 -
++R LX 1922 o - Mar 25 23 1 S
++R LX 1922 o - O Sun>=2 1 0 -
++R LX 1923 o - Ap 21 23 1 S
++R LX 1923 o - O Sun>=2 2 0 -
++R LX 1924 o - Mar 29 23 1 S
++R LX 1924 1928 - O Sun>=2 1 0 -
++R LX 1925 o - Ap 5 23 1 S
++R LX 1926 o - Ap 17 23 1 S
++R LX 1927 o - Ap 9 23 1 S
++R LX 1928 o - Ap 14 23 1 S
++R LX 1929 o - Ap 20 23 1 S
+ Z Europe/Luxembourg 0:24:36 - LMT 1904 Jun
+-1 ^ CE%sT 1918 N 25
+-0 ^ WE%sT 1929 O 6 2s
+-0 + WE%sT 1940 May 14 3
+-1 ( WE%sT 1944 S 18 3
+-1 + CE%sT 1977
+-1 O CE%sT
+-R _ 1973 o - Mar 31 0s 1 S
+-R _ 1973 o - S 29 0s 0 -
+-R _ 1974 o - Ap 21 0s 1 S
+-R _ 1974 o - S 16 0s 0 -
+-R _ 1975 1979 - Ap Sun>=15 2 1 S
+-R _ 1975 1980 - S Sun>=15 2 0 -
+-R _ 1980 o - Mar 31 2 1 S
++1 LX CE%sT 1918 N 25
++0 LX WE%sT 1929 O 6 2s
++0 b WE%sT 1940 May 14 3
++1 c WE%sT 1944 S 18 3
++1 b CE%sT 1977
++1 E CE%sT
++R MT 1973 o - Mar 31 0s 1 S
++R MT 1973 o - S 29 0s 0 -
++R MT 1974 o - Ap 21 0s 1 S
++R MT 1974 o - S 16 0s 0 -
++R MT 1975 1979 - Ap Sun>=15 2 1 S
++R MT 1975 1980 - S Sun>=15 2 0 -
++R MT 1980 o - Mar 31 2 1 S
+ Z Europe/Malta 0:58:4 - LMT 1893 N 2 0s
+-1 \ CE%sT 1973 Mar 31
+-1 _ CE%sT 1981
+-1 O CE%sT
+-R ` 1997 ma - Mar lastSun 2 1 S
+-R ` 1997 ma - O lastSun 3 0 -
++1 I CE%sT 1973 Mar 31
++1 MT CE%sT 1981
++1 E CE%sT
++R MD 1997 ma - Mar lastSun 2 1 S
++R MD 1997 ma - O lastSun 3 0 -
+ Z Europe/Chisinau 1:55:20 - LMT 1880
+ 1:55 - CMT 1918 F 15
+ 1:44:24 - BMT 1931 Jul 24
+-2 { EE%sT 1940 Au 15
++2 z EE%sT 1940 Au 15
+ 2 1 EEST 1941 Jul 17
+-1 ( CE%sT 1944 Au 24
+-3 M MSK/MSD 1990 May 6 2
+-2 M EE%sT 1992
+-2 W EE%sT 1997
+-2 ` EE%sT
++1 c CE%sT 1944 Au 24
++3 R MSK/MSD 1990 May 6 2
++2 R EE%sT 1992
++2 e EE%sT 1997
++2 MD EE%sT
+ Z Europe/Monaco 0:29:32 - LMT 1891 Mar 15
+ 0:9:21 - PMT 1911 Mar 11
+-0 < WE%sT 1945 S 16 3
+-1 < CE%sT 1977
+-1 O CE%sT
+-R | 1916 o - May 1 0 1 NST
+-R | 1916 o - O 1 0 0 AMT
+-R | 1917 o - Ap 16 2s 1 NST
+-R | 1917 o - S 17 2s 0 AMT
+-R | 1918 1921 - Ap M>=1 2s 1 NST
+-R | 1918 1921 - S lastM 2s 0 AMT
+-R | 1922 o - Mar lastSun 2s 1 NST
+-R | 1922 1936 - O Sun>=2 2s 0 AMT
+-R | 1923 o - Jun F>=1 2s 1 NST
+-R | 1924 o - Mar lastSun 2s 1 NST
+-R | 1925 o - Jun F>=1 2s 1 NST
+-R | 1926 1931 - May 15 2s 1 NST
+-R | 1932 o - May 22 2s 1 NST
+-R | 1933 1936 - May 15 2s 1 NST
+-R | 1937 o - May 22 2s 1 NST
+-R | 1937 o - Jul 1 0 1 S
+-R | 1937 1939 - O Sun>=2 2s 0 -
+-R | 1938 1939 - May 15 2s 1 S
+-R | 1945 o - Ap 2 2s 1 S
+-R | 1945 o - S 16 2s 0 -
++0 F WE%sT 1945 S 16 3
++1 F CE%sT 1977
++1 E CE%sT
++R N 1916 o - May 1 0 1 NST
++R N 1916 o - O 1 0 0 AMT
++R N 1917 o - Ap 16 2s 1 NST
++R N 1917 o - S 17 2s 0 AMT
++R N 1918 1921 - Ap M>=1 2s 1 NST
++R N 1918 1921 - S lastM 2s 0 AMT
++R N 1922 o - Mar lastSun 2s 1 NST
++R N 1922 1936 - O Sun>=2 2s 0 AMT
++R N 1923 o - Jun F>=1 2s 1 NST
++R N 1924 o - Mar lastSun 2s 1 NST
++R N 1925 o - Jun F>=1 2s 1 NST
++R N 1926 1931 - May 15 2s 1 NST
++R N 1932 o - May 22 2s 1 NST
++R N 1933 1936 - May 15 2s 1 NST
++R N 1937 o - May 22 2s 1 NST
++R N 1937 o - Jul 1 0 1 S
++R N 1937 1939 - O Sun>=2 2s 0 -
++R N 1938 1939 - May 15 2s 1 S
++R N 1945 o - Ap 2 2s 1 S
++R N 1945 o - S 16 2s 0 -
+ Z Europe/Amsterdam 0:19:32 - LMT 1835
+-0:19:32 | %s 1937 Jul
+-0:20 | +0020/+0120 1940 May 16
+-1 ( CE%sT 1945 Ap 2 2
+-1 | CE%sT 1977
+-1 O CE%sT
+-R } 1916 o - May 22 1 1 S
+-R } 1916 o - S 30 0 0 -
+-R } 1945 o - Ap 2 2s 1 S
+-R } 1945 o - O 1 2s 0 -
+-R } 1959 1964 - Mar Sun>=15 2s 1 S
+-R } 1959 1965 - S Sun>=15 2s 0 -
+-R } 1965 o - Ap 25 2s 1 S
++0:19:32 N %s 1937 Jul
++0:20 N +0020/+0120 1940 May 16
++1 c CE%sT 1945 Ap 2 2
++1 N CE%sT 1977
++1 E CE%sT
++R NO 1916 o - May 22 1 1 S
++R NO 1916 o - S 30 0 0 -
++R NO 1945 o - Ap 2 2s 1 S
++R NO 1945 o - O 1 2s 0 -
++R NO 1959 1964 - Mar Sun>=15 2s 1 S
++R NO 1959 1965 - S Sun>=15 2s 0 -
++R NO 1965 o - Ap 25 2s 1 S
+ Z Europe/Oslo 0:43 - LMT 1895
+-1 } CE%sT 1940 Au 10 23
+-1 ( CE%sT 1945 Ap 2 2
+-1 } CE%sT 1980
+-1 O CE%sT
++1 NO CE%sT 1940 Au 10 23
++1 c CE%sT 1945 Ap 2 2
++1 NO CE%sT 1980
++1 E CE%sT
+ Li Europe/Oslo Arctic/Longyearbyen
+-R ~ 1918 1919 - S 16 2s 0 -
+-R ~ 1919 o - Ap 15 2s 1 S
+-R ~ 1944 o - Ap 3 2s 1 S
+-R ~ 1944 o - O 4 2 0 -
+-R ~ 1945 o - Ap 29 0 1 S
+-R ~ 1945 o - N 1 0 0 -
+-R ~ 1946 o - Ap 14 0s 1 S
+-R ~ 1946 o - O 7 2s 0 -
+-R ~ 1947 o - May 4 2s 1 S
+-R ~ 1947 1949 - O Sun>=1 2s 0 -
+-R ~ 1948 o - Ap 18 2s 1 S
+-R ~ 1949 o - Ap 10 2s 1 S
+-R ~ 1957 o - Jun 2 1s 1 S
+-R ~ 1957 1958 - S lastSun 1s 0 -
+-R ~ 1958 o - Mar 30 1s 1 S
+-R ~ 1959 o - May 31 1s 1 S
+-R ~ 1959 1961 - O Sun>=1 1s 0 -
+-R ~ 1960 o - Ap 3 1s 1 S
+-R ~ 1961 1964 - May lastSun 1s 1 S
+-R ~ 1962 1964 - S lastSun 1s 0 -
++R O 1918 1919 - S 16 2s 0 -
++R O 1919 o - Ap 15 2s 1 S
++R O 1944 o - Ap 3 2s 1 S
++R O 1944 o - O 4 2 0 -
++R O 1945 o - Ap 29 0 1 S
++R O 1945 o - N 1 0 0 -
++R O 1946 o - Ap 14 0s 1 S
++R O 1946 o - O 7 2s 0 -
++R O 1947 o - May 4 2s 1 S
++R O 1947 1949 - O Sun>=1 2s 0 -
++R O 1948 o - Ap 18 2s 1 S
++R O 1949 o - Ap 10 2s 1 S
++R O 1957 o - Jun 2 1s 1 S
++R O 1957 1958 - S lastSun 1s 0 -
++R O 1958 o - Mar 30 1s 1 S
++R O 1959 o - May 31 1s 1 S
++R O 1959 1961 - O Sun>=1 1s 0 -
++R O 1960 o - Ap 3 1s 1 S
++R O 1961 1964 - May lastSun 1s 1 S
++R O 1962 1964 - S lastSun 1s 0 -
+ Z Europe/Warsaw 1:24 - LMT 1880
+ 1:24 - WMT 1915 Au 5
+-1 ( CE%sT 1918 S 16 3
+-2 ~ EE%sT 1922 Jun
+-1 ~ CE%sT 1940 Jun 23 2
+-1 ( CE%sT 1944 O
+-1 ~ CE%sT 1977
+-1 ' CE%sT 1988
+-1 O CE%sT
+-R AA 1916 o - Jun 17 23 1 S
+-R AA 1916 o - N 1 1 0 -
+-R AA 1917 o - F 28 23s 1 S
+-R AA 1917 1921 - O 14 23s 0 -
+-R AA 1918 o - Mar 1 23s 1 S
+-R AA 1919 o - F 28 23s 1 S
+-R AA 1920 o - F 29 23s 1 S
+-R AA 1921 o - F 28 23s 1 S
+-R AA 1924 o - Ap 16 23s 1 S
+-R AA 1924 o - O 14 23s 0 -
+-R AA 1926 o - Ap 17 23s 1 S
+-R AA 1926 1929 - O Sat>=1 23s 0 -
+-R AA 1927 o - Ap 9 23s 1 S
+-R AA 1928 o - Ap 14 23s 1 S
+-R AA 1929 o - Ap 20 23s 1 S
+-R AA 1931 o - Ap 18 23s 1 S
+-R AA 1931 1932 - O Sat>=1 23s 0 -
+-R AA 1932 o - Ap 2 23s 1 S
+-R AA 1934 o - Ap 7 23s 1 S
+-R AA 1934 1938 - O Sat>=1 23s 0 -
+-R AA 1935 o - Mar 30 23s 1 S
+-R AA 1936 o - Ap 18 23s 1 S
+-R AA 1937 o - Ap 3 23s 1 S
+-R AA 1938 o - Mar 26 23s 1 S
+-R AA 1939 o - Ap 15 23s 1 S
+-R AA 1939 o - N 18 23s 0 -
+-R AA 1940 o - F 24 23s 1 S
+-R AA 1940 1941 - O 5 23s 0 -
+-R AA 1941 o - Ap 5 23s 1 S
+-R AA 1942 1945 - Mar Sat>=8 23s 1 S
+-R AA 1942 o - Ap 25 22s 2 M
+-R AA 1942 o - Au 15 22s 1 S
+-R AA 1942 1945 - O Sat>=24 23s 0 -
+-R AA 1943 o - Ap 17 22s 2 M
+-R AA 1943 1945 - Au Sat>=25 22s 1 S
+-R AA 1944 1945 - Ap Sat>=21 22s 2 M
+-R AA 1946 o - Ap Sat>=1 23s 1 S
+-R AA 1946 o - O Sat>=1 23s 0 -
+-R AA 1947 1949 - Ap Sun>=1 2s 1 S
+-R AA 1947 1949 - O Sun>=1 2s 0 -
+-R AA 1951 1965 - Ap Sun>=1 2s 1 S
+-R AA 1951 1965 - O Sun>=1 2s 0 -
+-R AA 1977 o - Mar 27 0s 1 S
+-R AA 1977 o - S 25 0s 0 -
+-R AA 1978 1979 - Ap Sun>=1 0s 1 S
+-R AA 1978 o - O 1 0s 0 -
+-R AA 1979 1982 - S lastSun 1s 0 -
+-R AA 1980 o - Mar lastSun 0s 1 S
+-R AA 1981 1982 - Mar lastSun 1s 1 S
+-R AA 1983 o - Mar lastSun 2s 1 S
++1 c CE%sT 1918 S 16 3
++2 O EE%sT 1922 Jun
++1 O CE%sT 1940 Jun 23 2
++1 c CE%sT 1944 O
++1 O CE%sT 1977
++1 W- CE%sT 1988
++1 E CE%sT
++R p 1916 o - Jun 17 23 1 S
++R p 1916 o - N 1 1 0 -
++R p 1917 o - F 28 23s 1 S
++R p 1917 1921 - O 14 23s 0 -
++R p 1918 o - Mar 1 23s 1 S
++R p 1919 o - F 28 23s 1 S
++R p 1920 o - F 29 23s 1 S
++R p 1921 o - F 28 23s 1 S
++R p 1924 o - Ap 16 23s 1 S
++R p 1924 o - O 14 23s 0 -
++R p 1926 o - Ap 17 23s 1 S
++R p 1926 1929 - O Sat>=1 23s 0 -
++R p 1927 o - Ap 9 23s 1 S
++R p 1928 o - Ap 14 23s 1 S
++R p 1929 o - Ap 20 23s 1 S
++R p 1931 o - Ap 18 23s 1 S
++R p 1931 1932 - O Sat>=1 23s 0 -
++R p 1932 o - Ap 2 23s 1 S
++R p 1934 o - Ap 7 23s 1 S
++R p 1934 1938 - O Sat>=1 23s 0 -
++R p 1935 o - Mar 30 23s 1 S
++R p 1936 o - Ap 18 23s 1 S
++R p 1937 o - Ap 3 23s 1 S
++R p 1938 o - Mar 26 23s 1 S
++R p 1939 o - Ap 15 23s 1 S
++R p 1939 o - N 18 23s 0 -
++R p 1940 o - F 24 23s 1 S
++R p 1940 1941 - O 5 23s 0 -
++R p 1941 o - Ap 5 23s 1 S
++R p 1942 1945 - Mar Sat>=8 23s 1 S
++R p 1942 o - Ap 25 22s 2 M
++R p 1942 o - Au 15 22s 1 S
++R p 1942 1945 - O Sat>=24 23s 0 -
++R p 1943 o - Ap 17 22s 2 M
++R p 1943 1945 - Au Sat>=25 22s 1 S
++R p 1944 1945 - Ap Sat>=21 22s 2 M
++R p 1946 o - Ap Sat>=1 23s 1 S
++R p 1946 o - O Sat>=1 23s 0 -
++R p 1947 1949 - Ap Sun>=1 2s 1 S
++R p 1947 1949 - O Sun>=1 2s 0 -
++R p 1951 1965 - Ap Sun>=1 2s 1 S
++R p 1951 1965 - O Sun>=1 2s 0 -
++R p 1977 o - Mar 27 0s 1 S
++R p 1977 o - S 25 0s 0 -
++R p 1978 1979 - Ap Sun>=1 0s 1 S
++R p 1978 o - O 1 0s 0 -
++R p 1979 1982 - S lastSun 1s 0 -
++R p 1980 o - Mar lastSun 0s 1 S
++R p 1981 1982 - Mar lastSun 1s 1 S
++R p 1983 o - Mar lastSun 2s 1 S
+ Z Europe/Lisbon -0:36:45 - LMT 1884
+ -0:36:45 - LMT 1912 Ja 1 0u
+-0 AA WE%sT 1966 Ap 3 2
++0 p WE%sT 1966 Ap 3 2
+ 1 - CET 1976 S 26 1
+-0 AA WE%sT 1983 S 25 1s
+-0 ' WE%sT 1992 S 27 1s
+-1 O CE%sT 1996 Mar 31 1u
+-0 O WE%sT
++0 p WE%sT 1983 S 25 1s
++0 W- WE%sT 1992 S 27 1s
++1 E CE%sT 1996 Mar 31 1u
++0 E WE%sT
+ Z Atlantic/Azores -1:42:40 - LMT 1884
+ -1:54:32 - HMT 1912 Ja 1 2u
+--2 AA -02/-01 1942 Ap 25 22s
+--2 AA +00 1942 Au 15 22s
+--2 AA -02/-01 1943 Ap 17 22s
+--2 AA +00 1943 Au 28 22s
+--2 AA -02/-01 1944 Ap 22 22s
+--2 AA +00 1944 Au 26 22s
+--2 AA -02/-01 1945 Ap 21 22s
+--2 AA +00 1945 Au 25 22s
+--2 AA -02/-01 1966 Ap 3 2
+--1 AA -01/+00 1983 S 25 1s
+--1 ' -01/+00 1992 S 27 1s
+-0 O WE%sT 1993 Mar 28 1u
+--1 O -01/+00
++-2 p -02/-01 1942 Ap 25 22s
++-2 p +00 1942 Au 15 22s
++-2 p -02/-01 1943 Ap 17 22s
++-2 p +00 1943 Au 28 22s
++-2 p -02/-01 1944 Ap 22 22s
++-2 p +00 1944 Au 26 22s
++-2 p -02/-01 1945 Ap 21 22s
++-2 p +00 1945 Au 25 22s
++-2 p -02/-01 1966 Ap 3 2
++-1 p -01/+00 1983 S 25 1s
++-1 W- -01/+00 1992 S 27 1s
++0 E WE%sT 1993 Mar 28 1u
++-1 E -01/+00
+ Z Atlantic/Madeira -1:7:36 - LMT 1884
+ -1:7:36 - FMT 1912 Ja 1 1u
+--1 AA -01/+00 1942 Ap 25 22s
+--1 AA +01 1942 Au 15 22s
+--1 AA -01/+00 1943 Ap 17 22s
+--1 AA +01 1943 Au 28 22s
+--1 AA -01/+00 1944 Ap 22 22s
+--1 AA +01 1944 Au 26 22s
+--1 AA -01/+00 1945 Ap 21 22s
+--1 AA +01 1945 Au 25 22s
+--1 AA -01/+00 1966 Ap 3 2
+-0 AA WE%sT 1983 S 25 1s
+-0 O WE%sT
+-R { 1932 o - May 21 0s 1 S
+-R { 1932 1939 - O Sun>=1 0s 0 -
+-R { 1933 1939 - Ap Sun>=2 0s 1 S
+-R { 1979 o - May 27 0 1 S
+-R { 1979 o - S lastSun 0 0 -
+-R { 1980 o - Ap 5 23 1 S
+-R { 1980 o - S lastSun 1 0 -
+-R { 1991 1993 - Mar lastSun 0s 1 S
+-R { 1991 1993 - S lastSun 0s 0 -
++-1 p -01/+00 1942 Ap 25 22s
++-1 p +01 1942 Au 15 22s
++-1 p -01/+00 1943 Ap 17 22s
++-1 p +01 1943 Au 28 22s
++-1 p -01/+00 1944 Ap 22 22s
++-1 p +01 1944 Au 26 22s
++-1 p -01/+00 1945 Ap 21 22s
++-1 p +01 1945 Au 25 22s
++-1 p -01/+00 1966 Ap 3 2
++0 p WE%sT 1983 S 25 1s
++0 E WE%sT
++R z 1932 o - May 21 0s 1 S
++R z 1932 1939 - O Sun>=1 0s 0 -
++R z 1933 1939 - Ap Sun>=2 0s 1 S
++R z 1979 o - May 27 0 1 S
++R z 1979 o - S lastSun 0 0 -
++R z 1980 o - Ap 5 23 1 S
++R z 1980 o - S lastSun 1 0 -
++R z 1991 1993 - Mar lastSun 0s 1 S
++R z 1991 1993 - S lastSun 0s 0 -
+ Z Europe/Bucharest 1:44:24 - LMT 1891 O
+ 1:44:24 - BMT 1931 Jul 24
+-2 { EE%sT 1981 Mar 29 2s
+-2 ( EE%sT 1991
+-2 { EE%sT 1994
+-2 W EE%sT 1997
+-2 O EE%sT
++2 z EE%sT 1981 Mar 29 2s
++2 c EE%sT 1991
++2 z EE%sT 1994
++2 e EE%sT 1997
++2 E EE%sT
+ Z Europe/Kaliningrad 1:22 - LMT 1893 Ap
+-1 ( CE%sT 1945
+-2 ~ CE%sT 1946
+-3 M MSK/MSD 1989 Mar 26 2s
+-2 M EE%sT 2011 Mar 27 2s
++1 c CE%sT 1945
++2 O CE%sT 1946
++3 R MSK/MSD 1989 Mar 26 2s
++2 R EE%sT 2011 Mar 27 2s
+ 3 - +03 2014 O 26 2s
+ 2 - EET
+ Z Europe/Moscow 2:30:17 - LMT 1880
+ 2:30:17 - MMT 1916 Jul 3
+-2:31:19 M %s 1919 Jul 1 0u
+-3 M %s 1921 O
+-3 M MSK/MSD 1922 O
++2:31:19 R %s 1919 Jul 1 0u
++3 R %s 1921 O
++3 R MSK/MSD 1922 O
+ 2 - EET 1930 Jun 21
+-3 M MSK/MSD 1991 Mar 31 2s
+-2 M EE%sT 1992 Ja 19 2s
+-3 M MSK/MSD 2011 Mar 27 2s
++3 R MSK/MSD 1991 Mar 31 2s
++2 R EE%sT 1992 Ja 19 2s
++3 R MSK/MSD 2011 Mar 27 2s
+ 4 - MSK 2014 O 26 2s
+ 3 - MSK
+ Z Europe/Simferopol 2:16:24 - LMT 1880
+ 2:16 - SMT 1924 May 2
+ 2 - EET 1930 Jun 21
+ 3 - MSK 1941 N
+-1 ( CE%sT 1944 Ap 13
+-3 M MSK/MSD 1990
++1 c CE%sT 1944 Ap 13
++3 R MSK/MSD 1990
+ 3 - MSK 1990 Jul 1 2
+ 2 - EET 1992
+-2 W EE%sT 1994 May
+-3 W MSK/MSD 1996 Mar 31 0s
++2 e EE%sT 1994 May
++3 e MSK/MSD 1996 Mar 31 0s
+ 3 1 MSD 1996 O 27 3s
+-3 M MSK/MSD 1997
++3 R MSK/MSD 1997
+ 3 - MSK 1997 Mar lastSun 1u
+-2 O EE%sT 2014 Mar 30 2
++2 E EE%sT 2014 Mar 30 2
+ 4 - MSK 2014 O 26 2s
+ 3 - MSK
+ Z Europe/Astrakhan 3:12:12 - LMT 1924 May
+ 3 - +03 1930 Jun 21
+-4 M +04/+05 1989 Mar 26 2s
+-3 M +03/+04 1991 Mar 31 2s
++4 R +04/+05 1989 Mar 26 2s
++3 R +03/+04 1991 Mar 31 2s
+ 4 - +04 1992 Mar 29 2s
+-3 M +03/+04 2011 Mar 27 2s
++3 R +03/+04 2011 Mar 27 2s
+ 4 - +04 2014 O 26 2s
+ 3 - +03 2016 Mar 27 2s
+ 4 - +04
+ Z Europe/Volgograd 2:57:40 - LMT 1920 Ja 3
+ 3 - +03 1930 Jun 21
+ 4 - +04 1961 N 11
+-4 M +04/+05 1988 Mar 27 2s
+-3 M +03/+04 1991 Mar 31 2s
++4 R +04/+05 1988 Mar 27 2s
++3 R +03/+04 1991 Mar 31 2s
+ 4 - +04 1992 Mar 29 2s
+-3 M +03/+04 2011 Mar 27 2s
++3 R +03/+04 2011 Mar 27 2s
+ 4 - +04 2014 O 26 2s
+-3 - +03
++3 - +03 2018 O 28 2s
++4 - +04
+ Z Europe/Saratov 3:4:18 - LMT 1919 Jul 1 0u
+ 3 - +03 1930 Jun 21
+-4 M +04/+05 1988 Mar 27 2s
+-3 M +03/+04 1991 Mar 31 2s
++4 R +04/+05 1988 Mar 27 2s
++3 R +03/+04 1991 Mar 31 2s
+ 4 - +04 1992 Mar 29 2s
+-3 M +03/+04 2011 Mar 27 2s
++3 R +03/+04 2011 Mar 27 2s
+ 4 - +04 2014 O 26 2s
+ 3 - +03 2016 D 4 2s
+ 4 - +04
+ Z Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0u
+ 3 - +03 1930 Jun 21
+-4 M +04/+05 1989 Mar 26 2s
+-3 M +03/+04 1991 Mar 31 2s
++4 R +04/+05 1989 Mar 26 2s
++3 R +03/+04 1991 Mar 31 2s
+ 4 - +04 1992 Mar 29 2s
+-3 M +03/+04 2011 Mar 27 2s
++3 R +03/+04 2011 Mar 27 2s
+ 4 - +04 2014 O 26 2s
+ 3 - +03
+ Z Europe/Samara 3:20:20 - LMT 1919 Jul 1 0u
+ 3 - +03 1930 Jun 21
+ 4 - +04 1935 Ja 27
+-4 M +04/+05 1989 Mar 26 2s
+-3 M +03/+04 1991 Mar 31 2s
+-2 M +02/+03 1991 S 29 2s
++4 R +04/+05 1989 Mar 26 2s
++3 R +03/+04 1991 Mar 31 2s
++2 R +02/+03 1991 S 29 2s
+ 3 - +03 1991 O 20 3
+-4 M +04/+05 2010 Mar 28 2s
+-3 M +03/+04 2011 Mar 27 2s
++4 R +04/+05 2010 Mar 28 2s
++3 R +03/+04 2011 Mar 27 2s
+ 4 - +04
+ Z Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0u
+ 3 - +03 1930 Jun 21
+-4 M +04/+05 1989 Mar 26 2s
+-3 M +03/+04 1991 Mar 31 2s
+-2 M +02/+03 1992 Ja 19 2s
+-3 M +03/+04 2011 Mar 27 2s
++4 R +04/+05 1989 Mar 26 2s
++3 R +03/+04 1991 Mar 31 2s
++2 R +02/+03 1992 Ja 19 2s
++3 R +03/+04 2011 Mar 27 2s
+ 4 - +04 2014 O 26 2s
+ 3 - +03 2016 Mar 27 2s
+ 4 - +04
+ Z Asia/Yekaterinburg 4:2:33 - LMT 1916 Jul 3
+ 3:45:5 - PMT 1919 Jul 15 4
+ 4 - +04 1930 Jun 21
+-5 M +05/+06 1991 Mar 31 2s
+-4 M +04/+05 1992 Ja 19 2s
+-5 M +05/+06 2011 Mar 27 2s
++5 R +05/+06 1991 Mar 31 2s
++4 R +04/+05 1992 Ja 19 2s
++5 R +05/+06 2011 Mar 27 2s
+ 6 - +06 2014 O 26 2s
+ 5 - +05
+ Z Asia/Omsk 4:53:30 - LMT 1919 N 14
+ 5 - +05 1930 Jun 21
+-6 M +06/+07 1991 Mar 31 2s
+-5 M +05/+06 1992 Ja 19 2s
+-6 M +06/+07 2011 Mar 27 2s
++6 R +06/+07 1991 Mar 31 2s
++5 R +05/+06 1992 Ja 19 2s
++6 R +06/+07 2011 Mar 27 2s
+ 7 - +07 2014 O 26 2s
+ 6 - +06
+ Z Asia/Barnaul 5:35 - LMT 1919 D 10
+ 6 - +06 1930 Jun 21
+-7 M +07/+08 1991 Mar 31 2s
+-6 M +06/+07 1992 Ja 19 2s
+-7 M +07/+08 1995 May 28
+-6 M +06/+07 2011 Mar 27 2s
++7 R +07/+08 1991 Mar 31 2s
++6 R +06/+07 1992 Ja 19 2s
++7 R +07/+08 1995 May 28
++6 R +06/+07 2011 Mar 27 2s
+ 7 - +07 2014 O 26 2s
+ 6 - +06 2016 Mar 27 2s
+ 7 - +07
+ Z Asia/Novosibirsk 5:31:40 - LMT 1919 D 14 6
+ 6 - +06 1930 Jun 21
+-7 M +07/+08 1991 Mar 31 2s
+-6 M +06/+07 1992 Ja 19 2s
+-7 M +07/+08 1993 May 23
+-6 M +06/+07 2011 Mar 27 2s
++7 R +07/+08 1991 Mar 31 2s
++6 R +06/+07 1992 Ja 19 2s
++7 R +07/+08 1993 May 23
++6 R +06/+07 2011 Mar 27 2s
+ 7 - +07 2014 O 26 2s
+ 6 - +06 2016 Jul 24 2s
+ 7 - +07
+ Z Asia/Tomsk 5:39:51 - LMT 1919 D 22
+ 6 - +06 1930 Jun 21
+-7 M +07/+08 1991 Mar 31 2s
+-6 M +06/+07 1992 Ja 19 2s
+-7 M +07/+08 2002 May 1 3
+-6 M +06/+07 2011 Mar 27 2s
++7 R +07/+08 1991 Mar 31 2s
++6 R +06/+07 1992 Ja 19 2s
++7 R +07/+08 2002 May 1 3
++6 R +06/+07 2011 Mar 27 2s
+ 7 - +07 2014 O 26 2s
+ 6 - +06 2016 May 29 2s
+ 7 - +07
+ Z Asia/Novokuznetsk 5:48:48 - LMT 1924 May
+ 6 - +06 1930 Jun 21
+-7 M +07/+08 1991 Mar 31 2s
+-6 M +06/+07 1992 Ja 19 2s
+-7 M +07/+08 2010 Mar 28 2s
+-6 M +06/+07 2011 Mar 27 2s
++7 R +07/+08 1991 Mar 31 2s
++6 R +06/+07 1992 Ja 19 2s
++7 R +07/+08 2010 Mar 28 2s
++6 R +06/+07 2011 Mar 27 2s
+ 7 - +07
+ Z Asia/Krasnoyarsk 6:11:26 - LMT 1920 Ja 6
+ 6 - +06 1930 Jun 21
+-7 M +07/+08 1991 Mar 31 2s
+-6 M +06/+07 1992 Ja 19 2s
+-7 M +07/+08 2011 Mar 27 2s
++7 R +07/+08 1991 Mar 31 2s
++6 R +06/+07 1992 Ja 19 2s
++7 R +07/+08 2011 Mar 27 2s
+ 8 - +08 2014 O 26 2s
+ 7 - +07
+ Z Asia/Irkutsk 6:57:5 - LMT 1880
+ 6:57:5 - IMT 1920 Ja 25
+ 7 - +07 1930 Jun 21
+-8 M +08/+09 1991 Mar 31 2s
+-7 M +07/+08 1992 Ja 19 2s
+-8 M +08/+09 2011 Mar 27 2s
++8 R +08/+09 1991 Mar 31 2s
++7 R +07/+08 1992 Ja 19 2s
++8 R +08/+09 2011 Mar 27 2s
+ 9 - +09 2014 O 26 2s
+ 8 - +08
+ Z Asia/Chita 7:33:52 - LMT 1919 D 15
+ 8 - +08 1930 Jun 21
+-9 M +09/+10 1991 Mar 31 2s
+-8 M +08/+09 1992 Ja 19 2s
+-9 M +09/+10 2011 Mar 27 2s
++9 R +09/+10 1991 Mar 31 2s
++8 R +08/+09 1992 Ja 19 2s
++9 R +09/+10 2011 Mar 27 2s
+ 10 - +10 2014 O 26 2s
+ 8 - +08 2016 Mar 27 2
+ 9 - +09
+ Z Asia/Yakutsk 8:38:58 - LMT 1919 D 15
+ 8 - +08 1930 Jun 21
+-9 M +09/+10 1991 Mar 31 2s
+-8 M +08/+09 1992 Ja 19 2s
+-9 M +09/+10 2011 Mar 27 2s
++9 R +09/+10 1991 Mar 31 2s
++8 R +08/+09 1992 Ja 19 2s
++9 R +09/+10 2011 Mar 27 2s
+ 10 - +10 2014 O 26 2s
+ 9 - +09
+ Z Asia/Vladivostok 8:47:31 - LMT 1922 N 15
+ 9 - +09 1930 Jun 21
+-10 M +10/+11 1991 Mar 31 2s
+-9 M +09/+10 1992 Ja 19 2s
+-10 M +10/+11 2011 Mar 27 2s
++10 R +10/+11 1991 Mar 31 2s
++9 R +09/+10 1992 Ja 19 2s
++10 R +10/+11 2011 Mar 27 2s
+ 11 - +11 2014 O 26 2s
+ 10 - +10
+ Z Asia/Khandyga 9:2:13 - LMT 1919 D 15
+ 8 - +08 1930 Jun 21
+-9 M +09/+10 1991 Mar 31 2s
+-8 M +08/+09 1992 Ja 19 2s
+-9 M +09/+10 2004
+-10 M +10/+11 2011 Mar 27 2s
++9 R +09/+10 1991 Mar 31 2s
++8 R +08/+09 1992 Ja 19 2s
++9 R +09/+10 2004
++10 R +10/+11 2011 Mar 27 2s
+ 11 - +11 2011 S 13 0s
+ 10 - +10 2014 O 26 2s
+ 9 - +09
+ Z Asia/Sakhalin 9:30:48 - LMT 1905 Au 23
+ 9 - +09 1945 Au 25
+-11 M +11/+12 1991 Mar 31 2s
+-10 M +10/+11 1992 Ja 19 2s
+-11 M +11/+12 1997 Mar lastSun 2s
+-10 M +10/+11 2011 Mar 27 2s
++11 R +11/+12 1991 Mar 31 2s
++10 R +10/+11 1992 Ja 19 2s
++11 R +11/+12 1997 Mar lastSun 2s
++10 R +10/+11 2011 Mar 27 2s
+ 11 - +11 2014 O 26 2s
+ 10 - +10 2016 Mar 27 2s
+ 11 - +11
+ Z Asia/Magadan 10:3:12 - LMT 1924 May 2
+ 10 - +10 1930 Jun 21
+-11 M +11/+12 1991 Mar 31 2s
+-10 M +10/+11 1992 Ja 19 2s
+-11 M +11/+12 2011 Mar 27 2s
++11 R +11/+12 1991 Mar 31 2s
++10 R +10/+11 1992 Ja 19 2s
++11 R +11/+12 2011 Mar 27 2s
+ 12 - +12 2014 O 26 2s
+ 10 - +10 2016 Ap 24 2s
+ 11 - +11
+ Z Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2
+ 10 - +10 1930 Jun 21
+-11 M +11/+12 1991 Mar 31 2s
+-10 M +10/+11 1992 Ja 19 2s
+-11 M +11/+12 2011 Mar 27 2s
++11 R +11/+12 1991 Mar 31 2s
++10 R +10/+11 1992 Ja 19 2s
++11 R +11/+12 2011 Mar 27 2s
+ 12 - +12 2014 O 26 2s
+ 11 - +11
+ Z Asia/Ust-Nera 9:32:54 - LMT 1919 D 15
+ 8 - +08 1930 Jun 21
+-9 M +09/+10 1981 Ap
+-11 M +11/+12 1991 Mar 31 2s
+-10 M +10/+11 1992 Ja 19 2s
+-11 M +11/+12 2011 Mar 27 2s
++9 R +09/+10 1981 Ap
++11 R +11/+12 1991 Mar 31 2s
++10 R +10/+11 1992 Ja 19 2s
++11 R +11/+12 2011 Mar 27 2s
+ 12 - +12 2011 S 13 0s
+ 11 - +11 2014 O 26 2s
+ 10 - +10
+ Z Asia/Kamchatka 10:34:36 - LMT 1922 N 10
+ 11 - +11 1930 Jun 21
+-12 M +12/+13 1991 Mar 31 2s
+-11 M +11/+12 1992 Ja 19 2s
+-12 M +12/+13 2010 Mar 28 2s
+-11 M +11/+12 2011 Mar 27 2s
++12 R +12/+13 1991 Mar 31 2s
++11 R +11/+12 1992 Ja 19 2s
++12 R +12/+13 2010 Mar 28 2s
++11 R +11/+12 2011 Mar 27 2s
+ 12 - +12
+ Z Asia/Anadyr 11:49:56 - LMT 1924 May 2
+ 12 - +12 1930 Jun 21
+-13 M +13/+14 1982 Ap 1 0s
+-12 M +12/+13 1991 Mar 31 2s
+-11 M +11/+12 1992 Ja 19 2s
+-12 M +12/+13 2010 Mar 28 2s
+-11 M +11/+12 2011 Mar 27 2s
++13 R +13/+14 1982 Ap 1 0s
++12 R +12/+13 1991 Mar 31 2s
++11 R +11/+12 1992 Ja 19 2s
++12 R +12/+13 2010 Mar 28 2s
++11 R +11/+12 2011 Mar 27 2s
+ 12 - +12
+ Z Europe/Belgrade 1:22 - LMT 1884
+ 1 - CET 1941 Ap 18 23
+-1 ( CE%sT 1945
++1 c CE%sT 1945
+ 1 - CET 1945 May 8 2s
+ 1 1 CEST 1945 S 16 2s
+ 1 - CET 1982 N 27
+-1 O CE%sT
++1 E CE%sT
+ Li Europe/Belgrade Europe/Ljubljana
+ Li Europe/Belgrade Europe/Podgorica
+ Li Europe/Belgrade Europe/Sarajevo
+ Li Europe/Belgrade Europe/Skopje
+ Li Europe/Belgrade Europe/Zagreb
+ Li Europe/Prague Europe/Bratislava
+-R AB 1918 o - Ap 15 23 1 S
+-R AB 1918 1919 - O 6 24s 0 -
+-R AB 1919 o - Ap 6 23 1 S
+-R AB 1924 o - Ap 16 23 1 S
+-R AB 1924 o - O 4 24s 0 -
+-R AB 1926 o - Ap 17 23 1 S
+-R AB 1926 1929 - O Sat>=1 24s 0 -
+-R AB 1927 o - Ap 9 23 1 S
+-R AB 1928 o - Ap 15 0 1 S
+-R AB 1929 o - Ap 20 23 1 S
+-R AB 1937 o - Jun 16 23 1 S
+-R AB 1937 o - O 2 24s 0 -
+-R AB 1938 o - Ap 2 23 1 S
+-R AB 1938 o - Ap 30 23 2 M
+-R AB 1938 o - O 2 24 1 S
+-R AB 1939 o - O 7 24s 0 -
+-R AB 1942 o - May 2 23 1 S
+-R AB 1942 o - S 1 1 0 -
+-R AB 1943 1946 - Ap Sat>=13 23 1 S
+-R AB 1943 1944 - O Sun>=1 1 0 -
+-R AB 1945 1946 - S lastSun 1 0 -
+-R AB 1949 o - Ap 30 23 1 S
+-R AB 1949 o - O 2 1 0 -
+-R AB 1974 1975 - Ap Sat>=12 23 1 S
+-R AB 1974 1975 - O Sun>=1 1 0 -
+-R AB 1976 o - Mar 27 23 1 S
+-R AB 1976 1977 - S lastSun 1 0 -
+-R AB 1977 o - Ap 2 23 1 S
+-R AB 1978 o - Ap 2 2s 1 S
+-R AB 1978 o - O 1 2s 0 -
+-R AC 1967 o - Jun 3 12 1 S
+-R AC 1967 o - O 1 0 0 -
+-R AC 1974 o - Jun 24 0 1 S
+-R AC 1974 o - S 1 0 0 -
+-R AC 1976 1977 - May 1 0 1 S
+-R AC 1976 o - Au 1 0 0 -
+-R AC 1977 o - S 28 0 0 -
+-R AC 1978 o - Jun 1 0 1 S
+-R AC 1978 o - Au 4 0 0 -
++R s 1918 o - Ap 15 23 1 S
++R s 1918 1919 - O 6 24s 0 -
++R s 1919 o - Ap 6 23 1 S
++R s 1924 o - Ap 16 23 1 S
++R s 1924 o - O 4 24s 0 -
++R s 1926 o - Ap 17 23 1 S
++R s 1926 1929 - O Sat>=1 24s 0 -
++R s 1927 o - Ap 9 23 1 S
++R s 1928 o - Ap 15 0 1 S
++R s 1929 o - Ap 20 23 1 S
++R s 1937 o - Jun 16 23 1 S
++R s 1937 o - O 2 24s 0 -
++R s 1938 o - Ap 2 23 1 S
++R s 1938 o - Ap 30 23 2 M
++R s 1938 o - O 2 24 1 S
++R s 1939 o - O 7 24s 0 -
++R s 1942 o - May 2 23 1 S
++R s 1942 o - S 1 1 0 -
++R s 1943 1946 - Ap Sat>=13 23 1 S
++R s 1943 1944 - O Sun>=1 1 0 -
++R s 1945 1946 - S lastSun 1 0 -
++R s 1949 o - Ap 30 23 1 S
++R s 1949 o - O 2 1 0 -
++R s 1974 1975 - Ap Sat>=12 23 1 S
++R s 1974 1975 - O Sun>=1 1 0 -
++R s 1976 o - Mar 27 23 1 S
++R s 1976 1977 - S lastSun 1 0 -
++R s 1977 o - Ap 2 23 1 S
++R s 1978 o - Ap 2 2s 1 S
++R s 1978 o - O 1 2s 0 -
+ Z Europe/Madrid -0:14:44 - LMT 1900 D 31 23:45:16
+-0 AB WE%sT 1940 Mar 16 23
+-1 AB CE%sT 1979
+-1 O CE%sT
++0 s WE%sT 1940 Mar 16 23
++1 s CE%sT 1979
++1 E CE%sT
+ Z Africa/Ceuta -0:21:16 - LMT 1900 D 31 23:38:44
+ 0 - WET 1918 May 6 23
+ 0 1 WEST 1918 O 7 23
+ 0 - WET 1924
+-0 AB WE%sT 1929
+-0 AC WE%sT 1984 Mar 16
++0 s WE%sT 1929
++0 - WET 1967
++0 M WE%sT 1984 Mar 16
+ 1 - CET 1986
+-1 O CE%sT
++1 E CE%sT
+ Z Atlantic/Canary -1:1:36 - LMT 1922 Mar
+ -1 - -01 1946 S 30 1
+ 0 - WET 1980 Ap 6 0s
+ 0 1 WEST 1980 S 28 1u
+-0 O WE%sT
++0 E WE%sT
+ Z Europe/Stockholm 1:12:12 - LMT 1879
+ 1:0:14 - SET 1900
+ 1 - CET 1916 May 14 23
+ 1 1 CEST 1916 O 1 1
+ 1 - CET 1980
+-1 O CE%sT
+-R AD 1941 1942 - May M>=1 1 1 S
+-R AD 1941 1942 - O M>=1 2 0 -
++1 E CE%sT
++R CH 1941 1942 - May M>=1 1 1 S
++R CH 1941 1942 - O M>=1 2 0 -
+ Z Europe/Zurich 0:34:8 - LMT 1853 Jul 16
+ 0:29:46 - BMT 1894 Jun
+-1 AD CE%sT 1981
+-1 O CE%sT
+-R AE 1916 o - May 1 0 1 S
+-R AE 1916 o - O 1 0 0 -
+-R AE 1920 o - Mar 28 0 1 S
+-R AE 1920 o - O 25 0 0 -
+-R AE 1921 o - Ap 3 0 1 S
+-R AE 1921 o - O 3 0 0 -
+-R AE 1922 o - Mar 26 0 1 S
+-R AE 1922 o - O 8 0 0 -
+-R AE 1924 o - May 13 0 1 S
+-R AE 1924 1925 - O 1 0 0 -
+-R AE 1925 o - May 1 0 1 S
+-R AE 1940 o - Jun 30 0 1 S
+-R AE 1940 o - O 5 0 0 -
+-R AE 1940 o - D 1 0 1 S
+-R AE 1941 o - S 21 0 0 -
+-R AE 1942 o - Ap 1 0 1 S
+-R AE 1942 o - N 1 0 0 -
+-R AE 1945 o - Ap 2 0 1 S
+-R AE 1945 o - O 8 0 0 -
+-R AE 1946 o - Jun 1 0 1 S
+-R AE 1946 o - O 1 0 0 -
+-R AE 1947 1948 - Ap Sun>=16 0 1 S
+-R AE 1947 1950 - O Sun>=2 0 0 -
+-R AE 1949 o - Ap 10 0 1 S
+-R AE 1950 o - Ap 19 0 1 S
+-R AE 1951 o - Ap 22 0 1 S
+-R AE 1951 o - O 8 0 0 -
+-R AE 1962 o - Jul 15 0 1 S
+-R AE 1962 o - O 8 0 0 -
+-R AE 1964 o - May 15 0 1 S
+-R AE 1964 o - O 1 0 0 -
+-R AE 1970 1972 - May Sun>=2 0 1 S
+-R AE 1970 1972 - O Sun>=2 0 0 -
+-R AE 1973 o - Jun 3 1 1 S
+-R AE 1973 o - N 4 3 0 -
+-R AE 1974 o - Mar 31 2 1 S
+-R AE 1974 o - N 3 5 0 -
+-R AE 1975 o - Mar 30 0 1 S
+-R AE 1975 1976 - O lastSun 0 0 -
+-R AE 1976 o - Jun 1 0 1 S
+-R AE 1977 1978 - Ap Sun>=1 0 1 S
+-R AE 1977 o - O 16 0 0 -
+-R AE 1979 1980 - Ap Sun>=1 3 1 S
+-R AE 1979 1982 - O M>=11 0 0 -
+-R AE 1981 1982 - Mar lastSun 3 1 S
+-R AE 1983 o - Jul 31 0 1 S
+-R AE 1983 o - O 2 0 0 -
+-R AE 1985 o - Ap 20 0 1 S
+-R AE 1985 o - S 28 0 0 -
+-R AE 1986 1993 - Mar lastSun 1s 1 S
+-R AE 1986 1995 - S lastSun 1s 0 -
+-R AE 1994 o - Mar 20 1s 1 S
+-R AE 1995 2006 - Mar lastSun 1s 1 S
+-R AE 1996 2006 - O lastSun 1s 0 -
++1 CH CE%sT 1981
++1 E CE%sT
++R T 1916 o - May 1 0 1 S
++R T 1916 o - O 1 0 0 -
++R T 1920 o - Mar 28 0 1 S
++R T 1920 o - O 25 0 0 -
++R T 1921 o - Ap 3 0 1 S
++R T 1921 o - O 3 0 0 -
++R T 1922 o - Mar 26 0 1 S
++R T 1922 o - O 8 0 0 -
++R T 1924 o - May 13 0 1 S
++R T 1924 1925 - O 1 0 0 -
++R T 1925 o - May 1 0 1 S
++R T 1940 o - Jun 30 0 1 S
++R T 1940 o - O 5 0 0 -
++R T 1940 o - D 1 0 1 S
++R T 1941 o - S 21 0 0 -
++R T 1942 o - Ap 1 0 1 S
++R T 1942 o - N 1 0 0 -
++R T 1945 o - Ap 2 0 1 S
++R T 1945 o - O 8 0 0 -
++R T 1946 o - Jun 1 0 1 S
++R T 1946 o - O 1 0 0 -
++R T 1947 1948 - Ap Sun>=16 0 1 S
++R T 1947 1950 - O Sun>=2 0 0 -
++R T 1949 o - Ap 10 0 1 S
++R T 1950 o - Ap 19 0 1 S
++R T 1951 o - Ap 22 0 1 S
++R T 1951 o - O 8 0 0 -
++R T 1962 o - Jul 15 0 1 S
++R T 1962 o - O 8 0 0 -
++R T 1964 o - May 15 0 1 S
++R T 1964 o - O 1 0 0 -
++R T 1970 1972 - May Sun>=2 0 1 S
++R T 1970 1972 - O Sun>=2 0 0 -
++R T 1973 o - Jun 3 1 1 S
++R T 1973 o - N 4 3 0 -
++R T 1974 o - Mar 31 2 1 S
++R T 1974 o - N 3 5 0 -
++R T 1975 o - Mar 30 0 1 S
++R T 1975 1976 - O lastSun 0 0 -
++R T 1976 o - Jun 1 0 1 S
++R T 1977 1978 - Ap Sun>=1 0 1 S
++R T 1977 o - O 16 0 0 -
++R T 1979 1980 - Ap Sun>=1 3 1 S
++R T 1979 1982 - O M>=11 0 0 -
++R T 1981 1982 - Mar lastSun 3 1 S
++R T 1983 o - Jul 31 0 1 S
++R T 1983 o - O 2 0 0 -
++R T 1985 o - Ap 20 0 1 S
++R T 1985 o - S 28 0 0 -
++R T 1986 1993 - Mar lastSun 1s 1 S
++R T 1986 1995 - S lastSun 1s 0 -
++R T 1994 o - Mar 20 1s 1 S
++R T 1995 2006 - Mar lastSun 1s 1 S
++R T 1996 2006 - O lastSun 1s 0 -
+ Z Europe/Istanbul 1:55:52 - LMT 1880
+ 1:56:56 - IMT 1910 O
+-2 AE EE%sT 1978 O 15
+-3 AE +03/+04 1985 Ap 20
+-2 AE EE%sT 2007
+-2 O EE%sT 2011 Mar 27 1u
++2 T EE%sT 1978 O 15
++3 T +03/+04 1985 Ap 20
++2 T EE%sT 2007
++2 E EE%sT 2011 Mar 27 1u
+ 2 - EET 2011 Mar 28 1u
+-2 O EE%sT 2014 Mar 30 1u
++2 E EE%sT 2014 Mar 30 1u
+ 2 - EET 2014 Mar 31 1u
+-2 O EE%sT 2015 O 25 1u
++2 E EE%sT 2015 O 25 1u
+ 2 1 EEST 2015 N 8 1u
+-2 O EE%sT 2016 S 7
++2 E EE%sT 2016 S 7
+ 3 - +03
+ Li Europe/Istanbul Asia/Istanbul
+ Z Europe/Kiev 2:2:4 - LMT 1880
+ 2:2:4 - KMT 1924 May 2
+ 2 - EET 1930 Jun 21
+ 3 - MSK 1941 S 20
+-1 ( CE%sT 1943 N 6
+-3 M MSK/MSD 1990 Jul 1 2
++1 c CE%sT 1943 N 6
++3 R MSK/MSD 1990 Jul 1 2
+ 2 1 EEST 1991 S 29 3
+-2 W EE%sT 1995
+-2 O EE%sT
++2 e EE%sT 1995
++2 E EE%sT
+ Z Europe/Uzhgorod 1:29:12 - LMT 1890 O
+ 1 - CET 1940
+-1 ( CE%sT 1944 O
++1 c CE%sT 1944 O
+ 1 1 CEST 1944 O 26
+ 1 - CET 1945 Jun 29
+-3 M MSK/MSD 1990
++3 R MSK/MSD 1990
+ 3 - MSK 1990 Jul 1 2
+ 1 - CET 1991 Mar 31 3
+ 2 - EET 1992
+-2 W EE%sT 1995
+-2 O EE%sT
++2 e EE%sT 1995
++2 E EE%sT
+ Z Europe/Zaporozhye 2:20:40 - LMT 1880
+ 2:20 - +0220 1924 May 2
+ 2 - EET 1930 Jun 21
+ 3 - MSK 1941 Au 25
+-1 ( CE%sT 1943 O 25
+-3 M MSK/MSD 1991 Mar 31 2
+-2 W EE%sT 1995
+-2 O EE%sT
+-R AF 1918 1919 - Mar lastSun 2 1 D
+-R AF 1918 1919 - O lastSun 2 0 S
+-R AF 1942 o - F 9 2 1 W
+-R AF 1945 o - Au 14 23u 1 P
+-R AF 1945 o - S lastSun 2 0 S
+-R AF 1967 2006 - O lastSun 2 0 S
+-R AF 1967 1973 - Ap lastSun 2 1 D
+-R AF 1974 o - Ja 6 2 1 D
+-R AF 1975 o - F 23 2 1 D
+-R AF 1976 1986 - Ap lastSun 2 1 D
+-R AF 1987 2006 - Ap Sun>=1 2 1 D
+-R AF 2007 ma - Mar Sun>=8 2 1 D
+-R AF 2007 ma - N Sun>=1 2 0 S
++1 c CE%sT 1943 O 25
++3 R MSK/MSD 1991 Mar 31 2
++2 e EE%sT 1995
++2 E EE%sT
++R u 1918 1919 - Mar lastSun 2 1 D
++R u 1918 1919 - O lastSun 2 0 S
++R u 1942 o - F 9 2 1 W
++R u 1945 o - Au 14 23u 1 P
++R u 1945 o - S lastSun 2 0 S
++R u 1967 2006 - O lastSun 2 0 S
++R u 1967 1973 - Ap lastSun 2 1 D
++R u 1974 o - Ja 6 2 1 D
++R u 1975 o - F 23 2 1 D
++R u 1976 1986 - Ap lastSun 2 1 D
++R u 1987 2006 - Ap Sun>=1 2 1 D
++R u 2007 ma - Mar Sun>=8 2 1 D
++R u 2007 ma - N Sun>=1 2 0 S
+ Z EST -5 - EST
+ Z MST -7 - MST
+ Z HST -10 - HST
+-Z EST5EDT -5 AF E%sT
+-Z CST6CDT -6 AF C%sT
+-Z MST7MDT -7 AF M%sT
+-Z PST8PDT -8 AF P%sT
+-R AG 1920 o - Mar lastSun 2 1 D
+-R AG 1920 o - O lastSun 2 0 S
+-R AG 1921 1966 - Ap lastSun 2 1 D
+-R AG 1921 1954 - S lastSun 2 0 S
+-R AG 1955 1966 - O lastSun 2 0 S
++Z EST5EDT -5 u E%sT
++Z CST6CDT -6 u C%sT
++Z MST7MDT -7 u M%sT
++Z PST8PDT -8 u P%sT
++R NY 1920 o - Mar lastSun 2 1 D
++R NY 1920 o - O lastSun 2 0 S
++R NY 1921 1966 - Ap lastSun 2 1 D
++R NY 1921 1954 - S lastSun 2 0 S
++R NY 1955 1966 - O lastSun 2 0 S
+ Z America/New_York -4:56:2 - LMT 1883 N 18 12:3:58
+--5 AF E%sT 1920
+--5 AG E%sT 1942
+--5 AF E%sT 1946
+--5 AG E%sT 1967
+--5 AF E%sT
+-R AH 1920 o - Jun 13 2 1 D
+-R AH 1920 1921 - O lastSun 2 0 S
+-R AH 1921 o - Mar lastSun 2 1 D
+-R AH 1922 1966 - Ap lastSun 2 1 D
+-R AH 1922 1954 - S lastSun 2 0 S
+-R AH 1955 1966 - O lastSun 2 0 S
++-5 u E%sT 1920
++-5 NY E%sT 1942
++-5 u E%sT 1946
++-5 NY E%sT 1967
++-5 u E%sT
++R Ch 1920 o - Jun 13 2 1 D
++R Ch 1920 1921 - O lastSun 2 0 S
++R Ch 1921 o - Mar lastSun 2 1 D
++R Ch 1922 1966 - Ap lastSun 2 1 D
++R Ch 1922 1954 - S lastSun 2 0 S
++R Ch 1955 1966 - O lastSun 2 0 S
+ Z America/Chicago -5:50:36 - LMT 1883 N 18 12:9:24
+--6 AF C%sT 1920
+--6 AH C%sT 1936 Mar 1 2
++-6 u C%sT 1920
++-6 Ch C%sT 1936 Mar 1 2
+ -5 - EST 1936 N 15 2
+--6 AH C%sT 1942
+--6 AF C%sT 1946
+--6 AH C%sT 1967
+--6 AF C%sT
++-6 Ch C%sT 1942
++-6 u C%sT 1946
++-6 Ch C%sT 1967
++-6 u C%sT
+ Z America/North_Dakota/Center -6:45:12 - LMT 1883 N 18 12:14:48
+--7 AF M%sT 1992 O 25 2
+--6 AF C%sT
++-7 u M%sT 1992 O 25 2
++-6 u C%sT
+ Z America/North_Dakota/New_Salem -6:45:39 - LMT 1883 N 18 12:14:21
+--7 AF M%sT 2003 O 26 2
+--6 AF C%sT
++-7 u M%sT 2003 O 26 2
++-6 u C%sT
+ Z America/North_Dakota/Beulah -6:47:7 - LMT 1883 N 18 12:12:53
+--7 AF M%sT 2010 N 7 2
+--6 AF C%sT
+-R AI 1920 1921 - Mar lastSun 2 1 D
+-R AI 1920 o - O lastSun 2 0 S
+-R AI 1921 o - May 22 2 0 S
+-R AI 1965 1966 - Ap lastSun 2 1 D
+-R AI 1965 1966 - O lastSun 2 0 S
++-7 u M%sT 2010 N 7 2
++-6 u C%sT
++R De 1920 1921 - Mar lastSun 2 1 D
++R De 1920 o - O lastSun 2 0 S
++R De 1921 o - May 22 2 0 S
++R De 1965 1966 - Ap lastSun 2 1 D
++R De 1965 1966 - O lastSun 2 0 S
+ Z America/Denver -6:59:56 - LMT 1883 N 18 12:0:4
+--7 AF M%sT 1920
+--7 AI M%sT 1942
+--7 AF M%sT 1946
+--7 AI M%sT 1967
+--7 AF M%sT
+-R AJ 1948 o - Mar 14 2:1 1 D
+-R AJ 1949 o - Ja 1 2 0 S
+-R AJ 1950 1966 - Ap lastSun 1 1 D
+-R AJ 1950 1961 - S lastSun 2 0 S
+-R AJ 1962 1966 - O lastSun 2 0 S
++-7 u M%sT 1920
++-7 De M%sT 1942
++-7 u M%sT 1946
++-7 De M%sT 1967
++-7 u M%sT
++R CA 1948 o - Mar 14 2:1 1 D
++R CA 1949 o - Ja 1 2 0 S
++R CA 1950 1966 - Ap lastSun 1 1 D
++R CA 1950 1961 - S lastSun 2 0 S
++R CA 1962 1966 - O lastSun 2 0 S
+ Z America/Los_Angeles -7:52:58 - LMT 1883 N 18 12:7:2
+--8 AF P%sT 1946
+--8 AJ P%sT 1967
+--8 AF P%sT
++-8 u P%sT 1946
++-8 CA P%sT 1967
++-8 u P%sT
+ Z America/Juneau 15:2:19 - LMT 1867 O 19 15:33:32
+ -8:57:41 - LMT 1900 Au 20 12
+ -8 - PST 1942
+--8 AF P%sT 1946
++-8 u P%sT 1946
+ -8 - PST 1969
+--8 AF P%sT 1980 Ap 27 2
+--9 AF Y%sT 1980 O 26 2
+--8 AF P%sT 1983 O 30 2
+--9 AF Y%sT 1983 N 30
+--9 AF AK%sT
++-8 u P%sT 1980 Ap 27 2
++-9 u Y%sT 1980 O 26 2
++-8 u P%sT 1983 O 30 2
++-9 u Y%sT 1983 N 30
++-9 u AK%sT
+ Z America/Sitka 14:58:47 - LMT 1867 O 19 15:30
+ -9:1:13 - LMT 1900 Au 20 12
+ -8 - PST 1942
+--8 AF P%sT 1946
++-8 u P%sT 1946
+ -8 - PST 1969
+--8 AF P%sT 1983 O 30 2
+--9 AF Y%sT 1983 N 30
+--9 AF AK%sT
++-8 u P%sT 1983 O 30 2
++-9 u Y%sT 1983 N 30
++-9 u AK%sT
+ Z America/Metlakatla 15:13:42 - LMT 1867 O 19 15:44:55
+ -8:46:18 - LMT 1900 Au 20 12
+ -8 - PST 1942
+--8 AF P%sT 1946
++-8 u P%sT 1946
+ -8 - PST 1969
+--8 AF P%sT 1983 O 30 2
++-8 u P%sT 1983 O 30 2
+ -8 - PST 2015 N 1 2
+--9 AF AK%sT
++-9 u AK%sT
+ Z America/Yakutat 14:41:5 - LMT 1867 O 19 15:12:18
+ -9:18:55 - LMT 1900 Au 20 12
+ -9 - YST 1942
+--9 AF Y%sT 1946
++-9 u Y%sT 1946
+ -9 - YST 1969
+--9 AF Y%sT 1983 N 30
+--9 AF AK%sT
++-9 u Y%sT 1983 N 30
++-9 u AK%sT
+ Z America/Anchorage 14:0:24 - LMT 1867 O 19 14:31:37
+ -9:59:36 - LMT 1900 Au 20 12
+ -10 - AST 1942
+--10 AF A%sT 1967 Ap
++-10 u A%sT 1967 Ap
+ -10 - AHST 1969
+--10 AF AH%sT 1983 O 30 2
+--9 AF Y%sT 1983 N 30
+--9 AF AK%sT
++-10 u AH%sT 1983 O 30 2
++-9 u Y%sT 1983 N 30
++-9 u AK%sT
+ Z America/Nome 12:58:22 - LMT 1867 O 19 13:29:35
+ -11:1:38 - LMT 1900 Au 20 12
+ -11 - NST 1942
+--11 AF N%sT 1946
++-11 u N%sT 1946
+ -11 - NST 1967 Ap
+ -11 - BST 1969
+--11 AF B%sT 1983 O 30 2
+--9 AF Y%sT 1983 N 30
+--9 AF AK%sT
++-11 u B%sT 1983 O 30 2
++-9 u Y%sT 1983 N 30
++-9 u AK%sT
+ Z America/Adak 12:13:22 - LMT 1867 O 19 12:44:35
+ -11:46:38 - LMT 1900 Au 20 12
+ -11 - NST 1942
+--11 AF N%sT 1946
++-11 u N%sT 1946
+ -11 - NST 1967 Ap
+ -11 - BST 1969
+--11 AF B%sT 1983 O 30 2
+--10 AF AH%sT 1983 N 30
+--10 AF H%sT
++-11 u B%sT 1983 O 30 2
++-10 u AH%sT 1983 N 30
++-10 u H%sT
+ Z Pacific/Honolulu -10:31:26 - LMT 1896 Ja 13 12
+ -10:30 - HST 1933 Ap 30 2
+ -10:30 1 HDT 1933 May 21 12
+@@ -2683,531 +2700,531 @@ Z Pacific/Honolulu -10:31:26 - LMT 1896 Ja 13 12
+ -10:30 - HST 1947 Jun 8 2
+ -10 - HST
+ Z America/Phoenix -7:28:18 - LMT 1883 N 18 11:31:42
+--7 AF M%sT 1944 Ja 1 0:1
++-7 u M%sT 1944 Ja 1 0:1
+ -7 - MST 1944 Ap 1 0:1
+--7 AF M%sT 1944 O 1 0:1
++-7 u M%sT 1944 O 1 0:1
+ -7 - MST 1967
+--7 AF M%sT 1968 Mar 21
++-7 u M%sT 1968 Mar 21
+ -7 - MST
+ Z America/Boise -7:44:49 - LMT 1883 N 18 12:15:11
+--8 AF P%sT 1923 May 13 2
+--7 AF M%sT 1974
++-8 u P%sT 1923 May 13 2
++-7 u M%sT 1974
+ -7 - MST 1974 F 3 2
+--7 AF M%sT
+-R AK 1941 o - Jun 22 2 1 D
+-R AK 1941 1954 - S lastSun 2 0 S
+-R AK 1946 1954 - Ap lastSun 2 1 D
++-7 u M%sT
++R In 1941 o - Jun 22 2 1 D
++R In 1941 1954 - S lastSun 2 0 S
++R In 1946 1954 - Ap lastSun 2 1 D
+ Z America/Indiana/Indianapolis -5:44:38 - LMT 1883 N 18 12:15:22
+--6 AF C%sT 1920
+--6 AK C%sT 1942
+--6 AF C%sT 1946
+--6 AK C%sT 1955 Ap 24 2
++-6 u C%sT 1920
++-6 In C%sT 1942
++-6 u C%sT 1946
++-6 In C%sT 1955 Ap 24 2
+ -5 - EST 1957 S 29 2
+ -6 - CST 1958 Ap 27 2
+ -5 - EST 1969
+--5 AF E%sT 1971
++-5 u E%sT 1971
+ -5 - EST 2006
+--5 AF E%sT
+-R AL 1951 o - Ap lastSun 2 1 D
+-R AL 1951 o - S lastSun 2 0 S
+-R AL 1954 1960 - Ap lastSun 2 1 D
+-R AL 1954 1960 - S lastSun 2 0 S
++-5 u E%sT
++R Ma 1951 o - Ap lastSun 2 1 D
++R Ma 1951 o - S lastSun 2 0 S
++R Ma 1954 1960 - Ap lastSun 2 1 D
++R Ma 1954 1960 - S lastSun 2 0 S
+ Z America/Indiana/Marengo -5:45:23 - LMT 1883 N 18 12:14:37
+--6 AF C%sT 1951
+--6 AL C%sT 1961 Ap 30 2
++-6 u C%sT 1951
++-6 Ma C%sT 1961 Ap 30 2
+ -5 - EST 1969
+--5 AF E%sT 1974 Ja 6 2
++-5 u E%sT 1974 Ja 6 2
+ -6 1 CDT 1974 O 27 2
+--5 AF E%sT 1976
++-5 u E%sT 1976
+ -5 - EST 2006
+--5 AF E%sT
+-R AM 1946 o - Ap lastSun 2 1 D
+-R AM 1946 o - S lastSun 2 0 S
+-R AM 1953 1954 - Ap lastSun 2 1 D
+-R AM 1953 1959 - S lastSun 2 0 S
+-R AM 1955 o - May 1 0 1 D
+-R AM 1956 1963 - Ap lastSun 2 1 D
+-R AM 1960 o - O lastSun 2 0 S
+-R AM 1961 o - S lastSun 2 0 S
+-R AM 1962 1963 - O lastSun 2 0 S
++-5 u E%sT
++R V 1946 o - Ap lastSun 2 1 D
++R V 1946 o - S lastSun 2 0 S
++R V 1953 1954 - Ap lastSun 2 1 D
++R V 1953 1959 - S lastSun 2 0 S
++R V 1955 o - May 1 0 1 D
++R V 1956 1963 - Ap lastSun 2 1 D
++R V 1960 o - O lastSun 2 0 S
++R V 1961 o - S lastSun 2 0 S
++R V 1962 1963 - O lastSun 2 0 S
+ Z America/Indiana/Vincennes -5:50:7 - LMT 1883 N 18 12:9:53
+--6 AF C%sT 1946
+--6 AM C%sT 1964 Ap 26 2
++-6 u C%sT 1946
++-6 V C%sT 1964 Ap 26 2
+ -5 - EST 1969
+--5 AF E%sT 1971
++-5 u E%sT 1971
+ -5 - EST 2006 Ap 2 2
+--6 AF C%sT 2007 N 4 2
+--5 AF E%sT
+-R AN 1946 o - Ap lastSun 2 1 D
+-R AN 1946 o - S lastSun 2 0 S
+-R AN 1953 1954 - Ap lastSun 2 1 D
+-R AN 1953 1959 - S lastSun 2 0 S
+-R AN 1955 o - May 1 0 1 D
+-R AN 1956 1963 - Ap lastSun 2 1 D
+-R AN 1960 o - O lastSun 2 0 S
+-R AN 1961 o - S lastSun 2 0 S
+-R AN 1962 1963 - O lastSun 2 0 S
++-6 u C%sT 2007 N 4 2
++-5 u E%sT
++R Pe 1946 o - Ap lastSun 2 1 D
++R Pe 1946 o - S lastSun 2 0 S
++R Pe 1953 1954 - Ap lastSun 2 1 D
++R Pe 1953 1959 - S lastSun 2 0 S
++R Pe 1955 o - May 1 0 1 D
++R Pe 1956 1963 - Ap lastSun 2 1 D
++R Pe 1960 o - O lastSun 2 0 S
++R Pe 1961 o - S lastSun 2 0 S
++R Pe 1962 1963 - O lastSun 2 0 S
+ Z America/Indiana/Tell_City -5:47:3 - LMT 1883 N 18 12:12:57
+--6 AF C%sT 1946
+--6 AN C%sT 1964 Ap 26 2
++-6 u C%sT 1946
++-6 Pe C%sT 1964 Ap 26 2
+ -5 - EST 1969
+--5 AF E%sT 1971
++-5 u E%sT 1971
+ -5 - EST 2006 Ap 2 2
+--6 AF C%sT
+-R AO 1955 o - May 1 0 1 D
+-R AO 1955 1960 - S lastSun 2 0 S
+-R AO 1956 1964 - Ap lastSun 2 1 D
+-R AO 1961 1964 - O lastSun 2 0 S
++-6 u C%sT
++R Pi 1955 o - May 1 0 1 D
++R Pi 1955 1960 - S lastSun 2 0 S
++R Pi 1956 1964 - Ap lastSun 2 1 D
++R Pi 1961 1964 - O lastSun 2 0 S
+ Z America/Indiana/Petersburg -5:49:7 - LMT 1883 N 18 12:10:53
+--6 AF C%sT 1955
+--6 AO C%sT 1965 Ap 25 2
++-6 u C%sT 1955
++-6 Pi C%sT 1965 Ap 25 2
+ -5 - EST 1966 O 30 2
+--6 AF C%sT 1977 O 30 2
++-6 u C%sT 1977 O 30 2
+ -5 - EST 2006 Ap 2 2
+--6 AF C%sT 2007 N 4 2
+--5 AF E%sT
+-R AP 1947 1961 - Ap lastSun 2 1 D
+-R AP 1947 1954 - S lastSun 2 0 S
+-R AP 1955 1956 - O lastSun 2 0 S
+-R AP 1957 1958 - S lastSun 2 0 S
+-R AP 1959 1961 - O lastSun 2 0 S
++-6 u C%sT 2007 N 4 2
++-5 u E%sT
++R St 1947 1961 - Ap lastSun 2 1 D
++R St 1947 1954 - S lastSun 2 0 S
++R St 1955 1956 - O lastSun 2 0 S
++R St 1957 1958 - S lastSun 2 0 S
++R St 1959 1961 - O lastSun 2 0 S
+ Z America/Indiana/Knox -5:46:30 - LMT 1883 N 18 12:13:30
+--6 AF C%sT 1947
+--6 AP C%sT 1962 Ap 29 2
++-6 u C%sT 1947
++-6 St C%sT 1962 Ap 29 2
+ -5 - EST 1963 O 27 2
+--6 AF C%sT 1991 O 27 2
++-6 u C%sT 1991 O 27 2
+ -5 - EST 2006 Ap 2 2
+--6 AF C%sT
+-R AQ 1946 1960 - Ap lastSun 2 1 D
+-R AQ 1946 1954 - S lastSun 2 0 S
+-R AQ 1955 1956 - O lastSun 2 0 S
+-R AQ 1957 1960 - S lastSun 2 0 S
++-6 u C%sT
++R Pu 1946 1960 - Ap lastSun 2 1 D
++R Pu 1946 1954 - S lastSun 2 0 S
++R Pu 1955 1956 - O lastSun 2 0 S
++R Pu 1957 1960 - S lastSun 2 0 S
+ Z America/Indiana/Winamac -5:46:25 - LMT 1883 N 18 12:13:35
+--6 AF C%sT 1946
+--6 AQ C%sT 1961 Ap 30 2
++-6 u C%sT 1946
++-6 Pu C%sT 1961 Ap 30 2
+ -5 - EST 1969
+--5 AF E%sT 1971
++-5 u E%sT 1971
+ -5 - EST 2006 Ap 2 2
+--6 AF C%sT 2007 Mar 11 2
+--5 AF E%sT
++-6 u C%sT 2007 Mar 11 2
++-5 u E%sT
+ Z America/Indiana/Vevay -5:40:16 - LMT 1883 N 18 12:19:44
+--6 AF C%sT 1954 Ap 25 2
++-6 u C%sT 1954 Ap 25 2
+ -5 - EST 1969
+--5 AF E%sT 1973
++-5 u E%sT 1973
+ -5 - EST 2006
+--5 AF E%sT
+-R AR 1921 o - May 1 2 1 D
+-R AR 1921 o - S 1 2 0 S
+-R AR 1941 1961 - Ap lastSun 2 1 D
+-R AR 1941 o - S lastSun 2 0 S
+-R AR 1946 o - Jun 2 2 0 S
+-R AR 1950 1955 - S lastSun 2 0 S
+-R AR 1956 1960 - O lastSun 2 0 S
++-5 u E%sT
++R v 1921 o - May 1 2 1 D
++R v 1921 o - S 1 2 0 S
++R v 1941 1961 - Ap lastSun 2 1 D
++R v 1941 o - S lastSun 2 0 S
++R v 1946 o - Jun 2 2 0 S
++R v 1950 1955 - S lastSun 2 0 S
++R v 1956 1960 - O lastSun 2 0 S
+ Z America/Kentucky/Louisville -5:43:2 - LMT 1883 N 18 12:16:58
+--6 AF C%sT 1921
+--6 AR C%sT 1942
+--6 AF C%sT 1946
+--6 AR C%sT 1961 Jul 23 2
++-6 u C%sT 1921
++-6 v C%sT 1942
++-6 u C%sT 1946
++-6 v C%sT 1961 Jul 23 2
+ -5 - EST 1968
+--5 AF E%sT 1974 Ja 6 2
++-5 u E%sT 1974 Ja 6 2
+ -6 1 CDT 1974 O 27 2
+--5 AF E%sT
++-5 u E%sT
+ Z America/Kentucky/Monticello -5:39:24 - LMT 1883 N 18 12:20:36
+--6 AF C%sT 1946
++-6 u C%sT 1946
+ -6 - CST 1968
+--6 AF C%sT 2000 O 29 2
+--5 AF E%sT
+-R AS 1948 o - Ap lastSun 2 1 D
+-R AS 1948 o - S lastSun 2 0 S
++-6 u C%sT 2000 O 29 2
++-5 u E%sT
++R Dt 1948 o - Ap lastSun 2 1 D
++R Dt 1948 o - S lastSun 2 0 S
+ Z America/Detroit -5:32:11 - LMT 1905
+ -6 - CST 1915 May 15 2
+ -5 - EST 1942
+--5 AF E%sT 1946
+--5 AS E%sT 1973
+--5 AF E%sT 1975
++-5 u E%sT 1946
++-5 Dt E%sT 1973
++-5 u E%sT 1975
+ -5 - EST 1975 Ap 27 2
+--5 AF E%sT
+-R AT 1946 o - Ap lastSun 2 1 D
+-R AT 1946 o - S lastSun 2 0 S
+-R AT 1966 o - Ap lastSun 2 1 D
+-R AT 1966 o - O lastSun 2 0 S
++-5 u E%sT
++R Me 1946 o - Ap lastSun 2 1 D
++R Me 1946 o - S lastSun 2 0 S
++R Me 1966 o - Ap lastSun 2 1 D
++R Me 1966 o - O lastSun 2 0 S
+ Z America/Menominee -5:50:27 - LMT 1885 S 18 12
+--6 AF C%sT 1946
+--6 AT C%sT 1969 Ap 27 2
++-6 u C%sT 1946
++-6 Me C%sT 1969 Ap 27 2
+ -5 - EST 1973 Ap 29 2
+--6 AF C%sT
+-R AU 1918 o - Ap 14 2 1 D
+-R AU 1918 o - O 27 2 0 S
+-R AU 1942 o - F 9 2 1 W
+-R AU 1945 o - Au 14 23u 1 P
+-R AU 1945 o - S 30 2 0 S
+-R AU 1974 1986 - Ap lastSun 2 1 D
+-R AU 1974 2006 - O lastSun 2 0 S
+-R AU 1987 2006 - Ap Sun>=1 2 1 D
+-R AU 2007 ma - Mar Sun>=8 2 1 D
+-R AU 2007 ma - N Sun>=1 2 0 S
+-R AV 1917 o - Ap 8 2 1 D
+-R AV 1917 o - S 17 2 0 S
+-R AV 1919 o - May 5 23 1 D
+-R AV 1919 o - Au 12 23 0 S
+-R AV 1920 1935 - May Sun>=1 23 1 D
+-R AV 1920 1935 - O lastSun 23 0 S
+-R AV 1936 1941 - May M>=9 0 1 D
+-R AV 1936 1941 - O M>=2 0 0 S
+-R AV 1946 1950 - May Sun>=8 2 1 D
+-R AV 1946 1950 - O Sun>=2 2 0 S
+-R AV 1951 1986 - Ap lastSun 2 1 D
+-R AV 1951 1959 - S lastSun 2 0 S
+-R AV 1960 1986 - O lastSun 2 0 S
+-R AV 1987 o - Ap Sun>=1 0:1 1 D
+-R AV 1987 2006 - O lastSun 0:1 0 S
+-R AV 1988 o - Ap Sun>=1 0:1 2 DD
+-R AV 1989 2006 - Ap Sun>=1 0:1 1 D
+-R AV 2007 2011 - Mar Sun>=8 0:1 1 D
+-R AV 2007 2010 - N Sun>=1 0:1 0 S
++-6 u C%sT
++R C 1918 o - Ap 14 2 1 D
++R C 1918 o - O 27 2 0 S
++R C 1942 o - F 9 2 1 W
++R C 1945 o - Au 14 23u 1 P
++R C 1945 o - S 30 2 0 S
++R C 1974 1986 - Ap lastSun 2 1 D
++R C 1974 2006 - O lastSun 2 0 S
++R C 1987 2006 - Ap Sun>=1 2 1 D
++R C 2007 ma - Mar Sun>=8 2 1 D
++R C 2007 ma - N Sun>=1 2 0 S
++R j 1917 o - Ap 8 2 1 D
++R j 1917 o - S 17 2 0 S
++R j 1919 o - May 5 23 1 D
++R j 1919 o - Au 12 23 0 S
++R j 1920 1935 - May Sun>=1 23 1 D
++R j 1920 1935 - O lastSun 23 0 S
++R j 1936 1941 - May M>=9 0 1 D
++R j 1936 1941 - O M>=2 0 0 S
++R j 1946 1950 - May Sun>=8 2 1 D
++R j 1946 1950 - O Sun>=2 2 0 S
++R j 1951 1986 - Ap lastSun 2 1 D
++R j 1951 1959 - S lastSun 2 0 S
++R j 1960 1986 - O lastSun 2 0 S
++R j 1987 o - Ap Sun>=1 0:1 1 D
++R j 1987 2006 - O lastSun 0:1 0 S
++R j 1988 o - Ap Sun>=1 0:1 2 DD
++R j 1989 2006 - Ap Sun>=1 0:1 1 D
++R j 2007 2011 - Mar Sun>=8 0:1 1 D
++R j 2007 2010 - N Sun>=1 0:1 0 S
+ Z America/St_Johns -3:30:52 - LMT 1884
+--3:30:52 AV N%sT 1918
+--3:30:52 AU N%sT 1919
+--3:30:52 AV N%sT 1935 Mar 30
+--3:30 AV N%sT 1942 May 11
+--3:30 AU N%sT 1946
+--3:30 AV N%sT 2011 N
+--3:30 AU N%sT
++-3:30:52 j N%sT 1918
++-3:30:52 C N%sT 1919
++-3:30:52 j N%sT 1935 Mar 30
++-3:30 j N%sT 1942 May 11
++-3:30 C N%sT 1946
++-3:30 j N%sT 2011 N
++-3:30 C N%sT
+ Z America/Goose_Bay -4:1:40 - LMT 1884
+ -3:30:52 - NST 1918
+--3:30:52 AU N%sT 1919
++-3:30:52 C N%sT 1919
+ -3:30:52 - NST 1935 Mar 30
+ -3:30 - NST 1936
+--3:30 AV N%sT 1942 May 11
+--3:30 AU N%sT 1946
+--3:30 AV N%sT 1966 Mar 15 2
+--4 AV A%sT 2011 N
+--4 AU A%sT
+-R AW 1916 o - Ap 1 0 1 D
+-R AW 1916 o - O 1 0 0 S
+-R AW 1920 o - May 9 0 1 D
+-R AW 1920 o - Au 29 0 0 S
+-R AW 1921 o - May 6 0 1 D
+-R AW 1921 1922 - S 5 0 0 S
+-R AW 1922 o - Ap 30 0 1 D
+-R AW 1923 1925 - May Sun>=1 0 1 D
+-R AW 1923 o - S 4 0 0 S
+-R AW 1924 o - S 15 0 0 S
+-R AW 1925 o - S 28 0 0 S
+-R AW 1926 o - May 16 0 1 D
+-R AW 1926 o - S 13 0 0 S
+-R AW 1927 o - May 1 0 1 D
+-R AW 1927 o - S 26 0 0 S
+-R AW 1928 1931 - May Sun>=8 0 1 D
+-R AW 1928 o - S 9 0 0 S
+-R AW 1929 o - S 3 0 0 S
+-R AW 1930 o - S 15 0 0 S
+-R AW 1931 1932 - S M>=24 0 0 S
+-R AW 1932 o - May 1 0 1 D
+-R AW 1933 o - Ap 30 0 1 D
+-R AW 1933 o - O 2 0 0 S
+-R AW 1934 o - May 20 0 1 D
+-R AW 1934 o - S 16 0 0 S
+-R AW 1935 o - Jun 2 0 1 D
+-R AW 1935 o - S 30 0 0 S
+-R AW 1936 o - Jun 1 0 1 D
+-R AW 1936 o - S 14 0 0 S
+-R AW 1937 1938 - May Sun>=1 0 1 D
+-R AW 1937 1941 - S M>=24 0 0 S
+-R AW 1939 o - May 28 0 1 D
+-R AW 1940 1941 - May Sun>=1 0 1 D
+-R AW 1946 1949 - Ap lastSun 2 1 D
+-R AW 1946 1949 - S lastSun 2 0 S
+-R AW 1951 1954 - Ap lastSun 2 1 D
+-R AW 1951 1954 - S lastSun 2 0 S
+-R AW 1956 1959 - Ap lastSun 2 1 D
+-R AW 1956 1959 - S lastSun 2 0 S
+-R AW 1962 1973 - Ap lastSun 2 1 D
+-R AW 1962 1973 - O lastSun 2 0 S
++-3:30 j N%sT 1942 May 11
++-3:30 C N%sT 1946
++-3:30 j N%sT 1966 Mar 15 2
++-4 j A%sT 2011 N
++-4 C A%sT
++R H 1916 o - Ap 1 0 1 D
++R H 1916 o - O 1 0 0 S
++R H 1920 o - May 9 0 1 D
++R H 1920 o - Au 29 0 0 S
++R H 1921 o - May 6 0 1 D
++R H 1921 1922 - S 5 0 0 S
++R H 1922 o - Ap 30 0 1 D
++R H 1923 1925 - May Sun>=1 0 1 D
++R H 1923 o - S 4 0 0 S
++R H 1924 o - S 15 0 0 S
++R H 1925 o - S 28 0 0 S
++R H 1926 o - May 16 0 1 D
++R H 1926 o - S 13 0 0 S
++R H 1927 o - May 1 0 1 D
++R H 1927 o - S 26 0 0 S
++R H 1928 1931 - May Sun>=8 0 1 D
++R H 1928 o - S 9 0 0 S
++R H 1929 o - S 3 0 0 S
++R H 1930 o - S 15 0 0 S
++R H 1931 1932 - S M>=24 0 0 S
++R H 1932 o - May 1 0 1 D
++R H 1933 o - Ap 30 0 1 D
++R H 1933 o - O 2 0 0 S
++R H 1934 o - May 20 0 1 D
++R H 1934 o - S 16 0 0 S
++R H 1935 o - Jun 2 0 1 D
++R H 1935 o - S 30 0 0 S
++R H 1936 o - Jun 1 0 1 D
++R H 1936 o - S 14 0 0 S
++R H 1937 1938 - May Sun>=1 0 1 D
++R H 1937 1941 - S M>=24 0 0 S
++R H 1939 o - May 28 0 1 D
++R H 1940 1941 - May Sun>=1 0 1 D
++R H 1946 1949 - Ap lastSun 2 1 D
++R H 1946 1949 - S lastSun 2 0 S
++R H 1951 1954 - Ap lastSun 2 1 D
++R H 1951 1954 - S lastSun 2 0 S
++R H 1956 1959 - Ap lastSun 2 1 D
++R H 1956 1959 - S lastSun 2 0 S
++R H 1962 1973 - Ap lastSun 2 1 D
++R H 1962 1973 - O lastSun 2 0 S
+ Z America/Halifax -4:14:24 - LMT 1902 Jun 15
+--4 AW A%sT 1918
+--4 AU A%sT 1919
+--4 AW A%sT 1942 F 9 2s
+--4 AU A%sT 1946
+--4 AW A%sT 1974
+--4 AU A%sT
++-4 H A%sT 1918
++-4 C A%sT 1919
++-4 H A%sT 1942 F 9 2s
++-4 C A%sT 1946
++-4 H A%sT 1974
++-4 C A%sT
+ Z America/Glace_Bay -3:59:48 - LMT 1902 Jun 15
+--4 AU A%sT 1953
+--4 AW A%sT 1954
++-4 C A%sT 1953
++-4 H A%sT 1954
+ -4 - AST 1972
+--4 AW A%sT 1974
+--4 AU A%sT
+-R AX 1933 1935 - Jun Sun>=8 1 1 D
+-R AX 1933 1935 - S Sun>=8 1 0 S
+-R AX 1936 1938 - Jun Sun>=1 1 1 D
+-R AX 1936 1938 - S Sun>=1 1 0 S
+-R AX 1939 o - May 27 1 1 D
+-R AX 1939 1941 - S Sat>=21 1 0 S
+-R AX 1940 o - May 19 1 1 D
+-R AX 1941 o - May 4 1 1 D
+-R AX 1946 1972 - Ap lastSun 2 1 D
+-R AX 1946 1956 - S lastSun 2 0 S
+-R AX 1957 1972 - O lastSun 2 0 S
+-R AX 1993 2006 - Ap Sun>=1 0:1 1 D
+-R AX 1993 2006 - O lastSun 0:1 0 S
++-4 H A%sT 1974
++-4 C A%sT
++R o 1933 1935 - Jun Sun>=8 1 1 D
++R o 1933 1935 - S Sun>=8 1 0 S
++R o 1936 1938 - Jun Sun>=1 1 1 D
++R o 1936 1938 - S Sun>=1 1 0 S
++R o 1939 o - May 27 1 1 D
++R o 1939 1941 - S Sat>=21 1 0 S
++R o 1940 o - May 19 1 1 D
++R o 1941 o - May 4 1 1 D
++R o 1946 1972 - Ap lastSun 2 1 D
++R o 1946 1956 - S lastSun 2 0 S
++R o 1957 1972 - O lastSun 2 0 S
++R o 1993 2006 - Ap Sun>=1 0:1 1 D
++R o 1993 2006 - O lastSun 0:1 0 S
+ Z America/Moncton -4:19:8 - LMT 1883 D 9
+ -5 - EST 1902 Jun 15
+--4 AU A%sT 1933
+--4 AX A%sT 1942
+--4 AU A%sT 1946
+--4 AX A%sT 1973
+--4 AU A%sT 1993
+--4 AX A%sT 2007
+--4 AU A%sT
++-4 C A%sT 1933
++-4 o A%sT 1942
++-4 C A%sT 1946
++-4 o A%sT 1973
++-4 C A%sT 1993
++-4 o A%sT 2007
++-4 C A%sT
+ Z America/Blanc-Sablon -3:48:28 - LMT 1884
+--4 AU A%sT 1970
++-4 C A%sT 1970
+ -4 - AST
+-R AY 1919 o - Mar 30 23:30 1 D
+-R AY 1919 o - O 26 0 0 S
+-R AY 1920 o - May 2 2 1 D
+-R AY 1920 o - S 26 0 0 S
+-R AY 1921 o - May 15 2 1 D
+-R AY 1921 o - S 15 2 0 S
+-R AY 1922 1923 - May Sun>=8 2 1 D
+-R AY 1922 1926 - S Sun>=15 2 0 S
+-R AY 1924 1927 - May Sun>=1 2 1 D
+-R AY 1927 1932 - S lastSun 2 0 S
+-R AY 1928 1931 - Ap lastSun 2 1 D
+-R AY 1932 o - May 1 2 1 D
+-R AY 1933 1940 - Ap lastSun 2 1 D
+-R AY 1933 o - O 1 2 0 S
+-R AY 1934 1939 - S lastSun 2 0 S
+-R AY 1945 1946 - S lastSun 2 0 S
+-R AY 1946 o - Ap lastSun 2 1 D
+-R AY 1947 1949 - Ap lastSun 0 1 D
+-R AY 1947 1948 - S lastSun 0 0 S
+-R AY 1949 o - N lastSun 0 0 S
+-R AY 1950 1973 - Ap lastSun 2 1 D
+-R AY 1950 o - N lastSun 2 0 S
+-R AY 1951 1956 - S lastSun 2 0 S
+-R AY 1957 1973 - O lastSun 2 0 S
++R t 1919 o - Mar 30 23:30 1 D
++R t 1919 o - O 26 0 0 S
++R t 1920 o - May 2 2 1 D
++R t 1920 o - S 26 0 0 S
++R t 1921 o - May 15 2 1 D
++R t 1921 o - S 15 2 0 S
++R t 1922 1923 - May Sun>=8 2 1 D
++R t 1922 1926 - S Sun>=15 2 0 S
++R t 1924 1927 - May Sun>=1 2 1 D
++R t 1927 1932 - S lastSun 2 0 S
++R t 1928 1931 - Ap lastSun 2 1 D
++R t 1932 o - May 1 2 1 D
++R t 1933 1940 - Ap lastSun 2 1 D
++R t 1933 o - O 1 2 0 S
++R t 1934 1939 - S lastSun 2 0 S
++R t 1945 1946 - S lastSun 2 0 S
++R t 1946 o - Ap lastSun 2 1 D
++R t 1947 1949 - Ap lastSun 0 1 D
++R t 1947 1948 - S lastSun 0 0 S
++R t 1949 o - N lastSun 0 0 S
++R t 1950 1973 - Ap lastSun 2 1 D
++R t 1950 o - N lastSun 2 0 S
++R t 1951 1956 - S lastSun 2 0 S
++R t 1957 1973 - O lastSun 2 0 S
+ Z America/Toronto -5:17:32 - LMT 1895
+--5 AU E%sT 1919
+--5 AY E%sT 1942 F 9 2s
+--5 AU E%sT 1946
+--5 AY E%sT 1974
+--5 AU E%sT
++-5 C E%sT 1919
++-5 t E%sT 1942 F 9 2s
++-5 C E%sT 1946
++-5 t E%sT 1974
++-5 C E%sT
+ Z America/Thunder_Bay -5:57 - LMT 1895
+ -6 - CST 1910
+ -5 - EST 1942
+--5 AU E%sT 1970
+--5 AY E%sT 1973
++-5 C E%sT 1970
++-5 t E%sT 1973
+ -5 - EST 1974
+--5 AU E%sT
++-5 C E%sT
+ Z America/Nipigon -5:53:4 - LMT 1895
+--5 AU E%sT 1940 S 29
++-5 C E%sT 1940 S 29
+ -5 1 EDT 1942 F 9 2s
+--5 AU E%sT
++-5 C E%sT
+ Z America/Rainy_River -6:18:16 - LMT 1895
+--6 AU C%sT 1940 S 29
++-6 C C%sT 1940 S 29
+ -6 1 CDT 1942 F 9 2s
+--6 AU C%sT
++-6 C C%sT
+ Z America/Atikokan -6:6:28 - LMT 1895
+--6 AU C%sT 1940 S 29
++-6 C C%sT 1940 S 29
+ -6 1 CDT 1942 F 9 2s
+--6 AU C%sT 1945 S 30 2
++-6 C C%sT 1945 S 30 2
+ -5 - EST
+-R AZ 1916 o - Ap 23 0 1 D
+-R AZ 1916 o - S 17 0 0 S
+-R AZ 1918 o - Ap 14 2 1 D
+-R AZ 1918 o - O 27 2 0 S
+-R AZ 1937 o - May 16 2 1 D
+-R AZ 1937 o - S 26 2 0 S
+-R AZ 1942 o - F 9 2 1 W
+-R AZ 1945 o - Au 14 23u 1 P
+-R AZ 1945 o - S lastSun 2 0 S
+-R AZ 1946 o - May 12 2 1 D
+-R AZ 1946 o - O 13 2 0 S
+-R AZ 1947 1949 - Ap lastSun 2 1 D
+-R AZ 1947 1949 - S lastSun 2 0 S
+-R AZ 1950 o - May 1 2 1 D
+-R AZ 1950 o - S 30 2 0 S
+-R AZ 1951 1960 - Ap lastSun 2 1 D
+-R AZ 1951 1958 - S lastSun 2 0 S
+-R AZ 1959 o - O lastSun 2 0 S
+-R AZ 1960 o - S lastSun 2 0 S
+-R AZ 1963 o - Ap lastSun 2 1 D
+-R AZ 1963 o - S 22 2 0 S
+-R AZ 1966 1986 - Ap lastSun 2s 1 D
+-R AZ 1966 2005 - O lastSun 2s 0 S
+-R AZ 1987 2005 - Ap Sun>=1 2s 1 D
++R W 1916 o - Ap 23 0 1 D
++R W 1916 o - S 17 0 0 S
++R W 1918 o - Ap 14 2 1 D
++R W 1918 o - O 27 2 0 S
++R W 1937 o - May 16 2 1 D
++R W 1937 o - S 26 2 0 S
++R W 1942 o - F 9 2 1 W
++R W 1945 o - Au 14 23u 1 P
++R W 1945 o - S lastSun 2 0 S
++R W 1946 o - May 12 2 1 D
++R W 1946 o - O 13 2 0 S
++R W 1947 1949 - Ap lastSun 2 1 D
++R W 1947 1949 - S lastSun 2 0 S
++R W 1950 o - May 1 2 1 D
++R W 1950 o - S 30 2 0 S
++R W 1951 1960 - Ap lastSun 2 1 D
++R W 1951 1958 - S lastSun 2 0 S
++R W 1959 o - O lastSun 2 0 S
++R W 1960 o - S lastSun 2 0 S
++R W 1963 o - Ap lastSun 2 1 D
++R W 1963 o - S 22 2 0 S
++R W 1966 1986 - Ap lastSun 2s 1 D
++R W 1966 2005 - O lastSun 2s 0 S
++R W 1987 2005 - Ap Sun>=1 2s 1 D
+ Z America/Winnipeg -6:28:36 - LMT 1887 Jul 16
+--6 AZ C%sT 2006
+--6 AU C%sT
+-R Aa 1918 o - Ap 14 2 1 D
+-R Aa 1918 o - O 27 2 0 S
+-R Aa 1930 1934 - May Sun>=1 0 1 D
+-R Aa 1930 1934 - O Sun>=1 0 0 S
+-R Aa 1937 1941 - Ap Sun>=8 0 1 D
+-R Aa 1937 o - O Sun>=8 0 0 S
+-R Aa 1938 o - O Sun>=1 0 0 S
+-R Aa 1939 1941 - O Sun>=8 0 0 S
+-R Aa 1942 o - F 9 2 1 W
+-R Aa 1945 o - Au 14 23u 1 P
+-R Aa 1945 o - S lastSun 2 0 S
+-R Aa 1946 o - Ap Sun>=8 2 1 D
+-R Aa 1946 o - O Sun>=8 2 0 S
+-R Aa 1947 1957 - Ap lastSun 2 1 D
+-R Aa 1947 1957 - S lastSun 2 0 S
+-R Aa 1959 o - Ap lastSun 2 1 D
+-R Aa 1959 o - O lastSun 2 0 S
+-R Ab 1957 o - Ap lastSun 2 1 D
+-R Ab 1957 o - O lastSun 2 0 S
+-R Ab 1959 1961 - Ap lastSun 2 1 D
+-R Ab 1959 o - O lastSun 2 0 S
+-R Ab 1960 1961 - S lastSun 2 0 S
++-6 W C%sT 2006
++-6 C C%sT
++R r 1918 o - Ap 14 2 1 D
++R r 1918 o - O 27 2 0 S
++R r 1930 1934 - May Sun>=1 0 1 D
++R r 1930 1934 - O Sun>=1 0 0 S
++R r 1937 1941 - Ap Sun>=8 0 1 D
++R r 1937 o - O Sun>=8 0 0 S
++R r 1938 o - O Sun>=1 0 0 S
++R r 1939 1941 - O Sun>=8 0 0 S
++R r 1942 o - F 9 2 1 W
++R r 1945 o - Au 14 23u 1 P
++R r 1945 o - S lastSun 2 0 S
++R r 1946 o - Ap Sun>=8 2 1 D
++R r 1946 o - O Sun>=8 2 0 S
++R r 1947 1957 - Ap lastSun 2 1 D
++R r 1947 1957 - S lastSun 2 0 S
++R r 1959 o - Ap lastSun 2 1 D
++R r 1959 o - O lastSun 2 0 S
++R Sw 1957 o - Ap lastSun 2 1 D
++R Sw 1957 o - O lastSun 2 0 S
++R Sw 1959 1961 - Ap lastSun 2 1 D
++R Sw 1959 o - O lastSun 2 0 S
++R Sw 1960 1961 - S lastSun 2 0 S
+ Z America/Regina -6:58:36 - LMT 1905 S
+--7 Aa M%sT 1960 Ap lastSun 2
++-7 r M%sT 1960 Ap lastSun 2
+ -6 - CST
+ Z America/Swift_Current -7:11:20 - LMT 1905 S
+--7 AU M%sT 1946 Ap lastSun 2
+--7 Aa M%sT 1950
+--7 Ab M%sT 1972 Ap lastSun 2
++-7 C M%sT 1946 Ap lastSun 2
++-7 r M%sT 1950
++-7 Sw M%sT 1972 Ap lastSun 2
+ -6 - CST
+-R Ac 1918 1919 - Ap Sun>=8 2 1 D
+-R Ac 1918 o - O 27 2 0 S
+-R Ac 1919 o - May 27 2 0 S
+-R Ac 1920 1923 - Ap lastSun 2 1 D
+-R Ac 1920 o - O lastSun 2 0 S
+-R Ac 1921 1923 - S lastSun 2 0 S
+-R Ac 1942 o - F 9 2 1 W
+-R Ac 1945 o - Au 14 23u 1 P
+-R Ac 1945 o - S lastSun 2 0 S
+-R Ac 1947 o - Ap lastSun 2 1 D
+-R Ac 1947 o - S lastSun 2 0 S
+-R Ac 1967 o - Ap lastSun 2 1 D
+-R Ac 1967 o - O lastSun 2 0 S
+-R Ac 1969 o - Ap lastSun 2 1 D
+-R Ac 1969 o - O lastSun 2 0 S
+-R Ac 1972 1986 - Ap lastSun 2 1 D
+-R Ac 1972 2006 - O lastSun 2 0 S
++R Ed 1918 1919 - Ap Sun>=8 2 1 D
++R Ed 1918 o - O 27 2 0 S
++R Ed 1919 o - May 27 2 0 S
++R Ed 1920 1923 - Ap lastSun 2 1 D
++R Ed 1920 o - O lastSun 2 0 S
++R Ed 1921 1923 - S lastSun 2 0 S
++R Ed 1942 o - F 9 2 1 W
++R Ed 1945 o - Au 14 23u 1 P
++R Ed 1945 o - S lastSun 2 0 S
++R Ed 1947 o - Ap lastSun 2 1 D
++R Ed 1947 o - S lastSun 2 0 S
++R Ed 1967 o - Ap lastSun 2 1 D
++R Ed 1967 o - O lastSun 2 0 S
++R Ed 1969 o - Ap lastSun 2 1 D
++R Ed 1969 o - O lastSun 2 0 S
++R Ed 1972 1986 - Ap lastSun 2 1 D
++R Ed 1972 2006 - O lastSun 2 0 S
+ Z America/Edmonton -7:33:52 - LMT 1906 S
+--7 Ac M%sT 1987
+--7 AU M%sT
+-R Ad 1918 o - Ap 14 2 1 D
+-R Ad 1918 o - O 27 2 0 S
+-R Ad 1942 o - F 9 2 1 W
+-R Ad 1945 o - Au 14 23u 1 P
+-R Ad 1945 o - S 30 2 0 S
+-R Ad 1946 1986 - Ap lastSun 2 1 D
+-R Ad 1946 o - O 13 2 0 S
+-R Ad 1947 1961 - S lastSun 2 0 S
+-R Ad 1962 2006 - O lastSun 2 0 S
++-7 Ed M%sT 1987
++-7 C M%sT
++R Va 1918 o - Ap 14 2 1 D
++R Va 1918 o - O 27 2 0 S
++R Va 1942 o - F 9 2 1 W
++R Va 1945 o - Au 14 23u 1 P
++R Va 1945 o - S 30 2 0 S
++R Va 1946 1986 - Ap lastSun 2 1 D
++R Va 1946 o - O 13 2 0 S
++R Va 1947 1961 - S lastSun 2 0 S
++R Va 1962 2006 - O lastSun 2 0 S
+ Z America/Vancouver -8:12:28 - LMT 1884
+--8 Ad P%sT 1987
+--8 AU P%sT
++-8 Va P%sT 1987
++-8 C P%sT
+ Z America/Dawson_Creek -8:0:56 - LMT 1884
+--8 AU P%sT 1947
+--8 Ad P%sT 1972 Au 30 2
++-8 C P%sT 1947
++-8 Va P%sT 1972 Au 30 2
+ -7 - MST
+ Z America/Fort_Nelson -8:10:47 - LMT 1884
+--8 Ad P%sT 1946
++-8 Va P%sT 1946
+ -8 - PST 1947
+--8 Ad P%sT 1987
+--8 AU P%sT 2015 Mar 8 2
++-8 Va P%sT 1987
++-8 C P%sT 2015 Mar 8 2
+ -7 - MST
+ Z America/Creston -7:46:4 - LMT 1884
+ -7 - MST 1916 O
+ -8 - PST 1918 Jun 2
+ -7 - MST
+-R Ae 1918 o - Ap 14 2 1 D
+-R Ae 1918 o - O 27 2 0 S
+-R Ae 1919 o - May 25 2 1 D
+-R Ae 1919 o - N 1 0 0 S
+-R Ae 1942 o - F 9 2 1 W
+-R Ae 1945 o - Au 14 23u 1 P
+-R Ae 1945 o - S 30 2 0 S
+-R Ae 1965 o - Ap lastSun 0 2 DD
+-R Ae 1965 o - O lastSun 2 0 S
+-R Ae 1980 1986 - Ap lastSun 2 1 D
+-R Ae 1980 2006 - O lastSun 2 0 S
+-R Ae 1987 2006 - Ap Sun>=1 2 1 D
++R Y 1918 o - Ap 14 2 1 D
++R Y 1918 o - O 27 2 0 S
++R Y 1919 o - May 25 2 1 D
++R Y 1919 o - N 1 0 0 S
++R Y 1942 o - F 9 2 1 W
++R Y 1945 o - Au 14 23u 1 P
++R Y 1945 o - S 30 2 0 S
++R Y 1965 o - Ap lastSun 0 2 DD
++R Y 1965 o - O lastSun 2 0 S
++R Y 1980 1986 - Ap lastSun 2 1 D
++R Y 1980 2006 - O lastSun 2 0 S
++R Y 1987 2006 - Ap Sun>=1 2 1 D
+ Z America/Pangnirtung 0 - -00 1921
+--4 Ae A%sT 1995 Ap Sun>=1 2
+--5 AU E%sT 1999 O 31 2
+--6 AU C%sT 2000 O 29 2
+--5 AU E%sT
++-4 Y A%sT 1995 Ap Sun>=1 2
++-5 C E%sT 1999 O 31 2
++-6 C C%sT 2000 O 29 2
++-5 C E%sT
+ Z America/Iqaluit 0 - -00 1942 Au
+--5 Ae E%sT 1999 O 31 2
+--6 AU C%sT 2000 O 29 2
+--5 AU E%sT
++-5 Y E%sT 1999 O 31 2
++-6 C C%sT 2000 O 29 2
++-5 C E%sT
+ Z America/Resolute 0 - -00 1947 Au 31
+--6 Ae C%sT 2000 O 29 2
++-6 Y C%sT 2000 O 29 2
+ -5 - EST 2001 Ap 1 3
+--6 AU C%sT 2006 O 29 2
++-6 C C%sT 2006 O 29 2
+ -5 - EST 2007 Mar 11 3
+--6 AU C%sT
++-6 C C%sT
+ Z America/Rankin_Inlet 0 - -00 1957
+--6 Ae C%sT 2000 O 29 2
++-6 Y C%sT 2000 O 29 2
+ -5 - EST 2001 Ap 1 3
+--6 AU C%sT
++-6 C C%sT
+ Z America/Cambridge_Bay 0 - -00 1920
+--7 Ae M%sT 1999 O 31 2
+--6 AU C%sT 2000 O 29 2
++-7 Y M%sT 1999 O 31 2
++-6 C C%sT 2000 O 29 2
+ -5 - EST 2000 N 5
+ -6 - CST 2001 Ap 1 3
+--7 AU M%sT
++-7 C M%sT
+ Z America/Yellowknife 0 - -00 1935
+--7 Ae M%sT 1980
+--7 AU M%sT
++-7 Y M%sT 1980
++-7 C M%sT
+ Z America/Inuvik 0 - -00 1953
+--8 Ae P%sT 1979 Ap lastSun 2
+--7 Ae M%sT 1980
+--7 AU M%sT
++-8 Y P%sT 1979 Ap lastSun 2
++-7 Y M%sT 1980
++-7 C M%sT
+ Z America/Whitehorse -9:0:12 - LMT 1900 Au 20
+--9 Ae Y%sT 1967 May 28
+--8 Ae P%sT 1980
+--8 AU P%sT
++-9 Y Y%sT 1967 May 28
++-8 Y P%sT 1980
++-8 C P%sT
+ Z America/Dawson -9:17:40 - LMT 1900 Au 20
+--9 Ae Y%sT 1973 O 28
+--8 Ae P%sT 1980
+--8 AU P%sT
+-R Af 1939 o - F 5 0 1 D
+-R Af 1939 o - Jun 25 0 0 S
+-R Af 1940 o - D 9 0 1 D
+-R Af 1941 o - Ap 1 0 0 S
+-R Af 1943 o - D 16 0 1 W
+-R Af 1944 o - May 1 0 0 S
+-R Af 1950 o - F 12 0 1 D
+-R Af 1950 o - Jul 30 0 0 S
+-R Af 1996 2000 - Ap Sun>=1 2 1 D
+-R Af 1996 2000 - O lastSun 2 0 S
+-R Af 2001 o - May Sun>=1 2 1 D
+-R Af 2001 o - S lastSun 2 0 S
+-R Af 2002 ma - Ap Sun>=1 2 1 D
+-R Af 2002 ma - O lastSun 2 0 S
++-9 Y Y%sT 1973 O 28
++-8 Y P%sT 1980
++-8 C P%sT
++R m 1939 o - F 5 0 1 D
++R m 1939 o - Jun 25 0 0 S
++R m 1940 o - D 9 0 1 D
++R m 1941 o - Ap 1 0 0 S
++R m 1943 o - D 16 0 1 W
++R m 1944 o - May 1 0 0 S
++R m 1950 o - F 12 0 1 D
++R m 1950 o - Jul 30 0 0 S
++R m 1996 2000 - Ap Sun>=1 2 1 D
++R m 1996 2000 - O lastSun 2 0 S
++R m 2001 o - May Sun>=1 2 1 D
++R m 2001 o - S lastSun 2 0 S
++R m 2002 ma - Ap Sun>=1 2 1 D
++R m 2002 ma - O lastSun 2 0 S
+ Z America/Cancun -5:47:4 - LMT 1922 Ja 1 0:12:56
+ -6 - CST 1981 D 23
+--5 Af E%sT 1998 Au 2 2
+--6 Af C%sT 2015 F 1 2
++-5 m E%sT 1998 Au 2 2
++-6 m C%sT 2015 F 1 2
+ -5 - EST
+ Z America/Merida -5:58:28 - LMT 1922 Ja 1 0:1:32
+ -6 - CST 1981 D 23
+ -5 - EST 1982 D 2
+--6 Af C%sT
++-6 m C%sT
+ Z America/Matamoros -6:40 - LMT 1921 D 31 23:20
+ -6 - CST 1988
+--6 AF C%sT 1989
+--6 Af C%sT 2010
+--6 AF C%sT
++-6 u C%sT 1989
++-6 m C%sT 2010
++-6 u C%sT
+ Z America/Monterrey -6:41:16 - LMT 1921 D 31 23:18:44
+ -6 - CST 1988
+--6 AF C%sT 1989
+--6 Af C%sT
++-6 u C%sT 1989
++-6 m C%sT
+ Z America/Mexico_City -6:36:36 - LMT 1922 Ja 1 0:23:24
+ -7 - MST 1927 Jun 10 23
+ -6 - CST 1930 N 15
+ -7 - MST 1931 May 1 23
+ -6 - CST 1931 O
+ -7 - MST 1932 Ap
+--6 Af C%sT 2001 S 30 2
++-6 m C%sT 2001 S 30 2
+ -6 - CST 2002 F 20
+--6 Af C%sT
++-6 m C%sT
+ Z America/Ojinaga -6:57:40 - LMT 1922 Ja 1 0:2:20
+ -7 - MST 1927 Jun 10 23
+ -6 - CST 1930 N 15
+@@ -3215,10 +3232,10 @@ Z America/Ojinaga -6:57:40 - LMT 1922 Ja 1 0:2:20
+ -6 - CST 1931 O
+ -7 - MST 1932 Ap
+ -6 - CST 1996
+--6 Af C%sT 1998
++-6 m C%sT 1998
+ -6 - CST 1998 Ap Sun>=1 3
+--7 Af M%sT 2010
+--7 AF M%sT
++-7 m M%sT 2010
++-7 u M%sT
+ Z America/Chihuahua -7:4:20 - LMT 1921 D 31 23:55:40
+ -7 - MST 1927 Jun 10 23
+ -6 - CST 1930 N 15
+@@ -3226,9 +3243,9 @@ Z America/Chihuahua -7:4:20 - LMT 1921 D 31 23:55:40
+ -6 - CST 1931 O
+ -7 - MST 1932 Ap
+ -6 - CST 1996
+--6 Af C%sT 1998
++-6 m C%sT 1998
+ -6 - CST 1998 Ap Sun>=1 3
+--7 Af M%sT
++-7 m M%sT
+ Z America/Hermosillo -7:23:52 - LMT 1921 D 31 23:36:8
+ -7 - MST 1927 Jun 10 23
+ -6 - CST 1930 N 15
+@@ -3238,7 +3255,7 @@ Z America/Hermosillo -7:23:52 - LMT 1921 D 31 23:36:8
+ -6 - CST 1942 Ap 24
+ -7 - MST 1949 Ja 14
+ -8 - PST 1970
+--7 Af M%sT 1999
++-7 m M%sT 1999
+ -7 - MST
+ Z America/Mazatlan -7:5:40 - LMT 1921 D 31 23:54:20
+ -7 - MST 1927 Jun 10 23
+@@ -3249,7 +3266,7 @@ Z America/Mazatlan -7:5:40 - LMT 1921 D 31 23:54:20
+ -6 - CST 1942 Ap 24
+ -7 - MST 1949 Ja 14
+ -8 - PST 1970
+--7 Af M%sT
++-7 m M%sT
+ Z America/Bahia_Banderas -7:1 - LMT 1921 D 31 23:59
+ -7 - MST 1927 Jun 10 23
+ -6 - CST 1930 N 15
+@@ -3259,8 +3276,8 @@ Z America/Bahia_Banderas -7:1 - LMT 1921 D 31 23:59
+ -6 - CST 1942 Ap 24
+ -7 - MST 1949 Ja 14
+ -8 - PST 1970
+--7 Af M%sT 2010 Ap 4 2
+--6 Af C%sT
++-7 m M%sT 2010 Ap 4 2
++-6 m C%sT
+ Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 0:11:56
+ -7 - MST 1924
+ -8 - PST 1927 Jun 10 23
+@@ -3273,315 +3290,315 @@ Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 0:11:56
+ -8 - PST 1948 Ap 5
+ -8 1 PDT 1949 Ja 14
+ -8 - PST 1954
+--8 AJ P%sT 1961
++-8 CA P%sT 1961
+ -8 - PST 1976
+--8 AF P%sT 1996
+--8 Af P%sT 2001
+--8 AF P%sT 2002 F 20
+--8 Af P%sT 2010
+--8 AF P%sT
+-R Ag 1964 1975 - O lastSun 2 0 S
+-R Ag 1964 1975 - Ap lastSun 2 1 D
++-8 u P%sT 1996
++-8 m P%sT 2001
++-8 u P%sT 2002 F 20
++-8 m P%sT 2010
++-8 u P%sT
++R BS 1964 1975 - O lastSun 2 0 S
++R BS 1964 1975 - Ap lastSun 2 1 D
+ Z America/Nassau -5:9:30 - LMT 1912 Mar 2
+--5 Ag E%sT 1976
+--5 AF E%sT
+-R Ah 1977 o - Jun 12 2 1 D
+-R Ah 1977 1978 - O Sun>=1 2 0 S
+-R Ah 1978 1980 - Ap Sun>=15 2 1 D
+-R Ah 1979 o - S 30 2 0 S
+-R Ah 1980 o - S 25 2 0 S
++-5 BS E%sT 1976
++-5 u E%sT
++R BB 1977 o - Jun 12 2 1 D
++R BB 1977 1978 - O Sun>=1 2 0 S
++R BB 1978 1980 - Ap Sun>=15 2 1 D
++R BB 1979 o - S 30 2 0 S
++R BB 1980 o - S 25 2 0 S
+ Z America/Barbados -3:58:29 - LMT 1924
+ -3:58:29 - BMT 1932
+--4 Ah A%sT
+-R Ai 1918 1942 - O Sun>=2 0 0:30 -0530
+-R Ai 1919 1943 - F Sun>=9 0 0 CST
+-R Ai 1973 o - D 5 0 1 CDT
+-R Ai 1974 o - F 9 0 0 CST
+-R Ai 1982 o - D 18 0 1 CDT
+-R Ai 1983 o - F 12 0 0 CST
++-4 BB A%sT
++R BZ 1918 1942 - O Sun>=2 0 0:30 -0530
++R BZ 1919 1943 - F Sun>=9 0 0 CST
++R BZ 1973 o - D 5 0 1 CDT
++R BZ 1974 o - F 9 0 0 CST
++R BZ 1982 o - D 18 0 1 CDT
++R BZ 1983 o - F 12 0 0 CST
+ Z America/Belize -5:52:48 - LMT 1912 Ap
+--6 Ai %s
++-6 BZ %s
+ Z Atlantic/Bermuda -4:19:18 - LMT 1930 Ja 1 2
+ -4 - AST 1974 Ap 28 2
+--4 AU A%sT 1976
+--4 AF A%sT
+-R Aj 1979 1980 - F lastSun 0 1 D
+-R Aj 1979 1980 - Jun Sun>=1 0 0 S
+-R Aj 1991 1992 - Ja Sat>=15 0 1 D
+-R Aj 1991 o - Jul 1 0 0 S
+-R Aj 1992 o - Mar 15 0 0 S
++-4 C A%sT 1976
++-4 u A%sT
++R CR 1979 1980 - F lastSun 0 1 D
++R CR 1979 1980 - Jun Sun>=1 0 0 S
++R CR 1991 1992 - Ja Sat>=15 0 1 D
++R CR 1991 o - Jul 1 0 0 S
++R CR 1992 o - Mar 15 0 0 S
+ Z America/Costa_Rica -5:36:13 - LMT 1890
+ -5:36:13 - SJMT 1921 Ja 15
+--6 Aj C%sT
+-R Ak 1928 o - Jun 10 0 1 D
+-R Ak 1928 o - O 10 0 0 S
+-R Ak 1940 1942 - Jun Sun>=1 0 1 D
+-R Ak 1940 1942 - S Sun>=1 0 0 S
+-R Ak 1945 1946 - Jun Sun>=1 0 1 D
+-R Ak 1945 1946 - S Sun>=1 0 0 S
+-R Ak 1965 o - Jun 1 0 1 D
+-R Ak 1965 o - S 30 0 0 S
+-R Ak 1966 o - May 29 0 1 D
+-R Ak 1966 o - O 2 0 0 S
+-R Ak 1967 o - Ap 8 0 1 D
+-R Ak 1967 1968 - S Sun>=8 0 0 S
+-R Ak 1968 o - Ap 14 0 1 D
+-R Ak 1969 1977 - Ap lastSun 0 1 D
+-R Ak 1969 1971 - O lastSun 0 0 S
+-R Ak 1972 1974 - O 8 0 0 S
+-R Ak 1975 1977 - O lastSun 0 0 S
+-R Ak 1978 o - May 7 0 1 D
+-R Ak 1978 1990 - O Sun>=8 0 0 S
+-R Ak 1979 1980 - Mar Sun>=15 0 1 D
+-R Ak 1981 1985 - May Sun>=5 0 1 D
+-R Ak 1986 1989 - Mar Sun>=14 0 1 D
+-R Ak 1990 1997 - Ap Sun>=1 0 1 D
+-R Ak 1991 1995 - O Sun>=8 0s 0 S
+-R Ak 1996 o - O 6 0s 0 S
+-R Ak 1997 o - O 12 0s 0 S
+-R Ak 1998 1999 - Mar lastSun 0s 1 D
+-R Ak 1998 2003 - O lastSun 0s 0 S
+-R Ak 2000 2003 - Ap Sun>=1 0s 1 D
+-R Ak 2004 o - Mar lastSun 0s 1 D
+-R Ak 2006 2010 - O lastSun 0s 0 S
+-R Ak 2007 o - Mar Sun>=8 0s 1 D
+-R Ak 2008 o - Mar Sun>=15 0s 1 D
+-R Ak 2009 2010 - Mar Sun>=8 0s 1 D
+-R Ak 2011 o - Mar Sun>=15 0s 1 D
+-R Ak 2011 o - N 13 0s 0 S
+-R Ak 2012 o - Ap 1 0s 1 D
+-R Ak 2012 ma - N Sun>=1 0s 0 S
+-R Ak 2013 ma - Mar Sun>=8 0s 1 D
++-6 CR C%sT
++R Q 1928 o - Jun 10 0 1 D
++R Q 1928 o - O 10 0 0 S
++R Q 1940 1942 - Jun Sun>=1 0 1 D
++R Q 1940 1942 - S Sun>=1 0 0 S
++R Q 1945 1946 - Jun Sun>=1 0 1 D
++R Q 1945 1946 - S Sun>=1 0 0 S
++R Q 1965 o - Jun 1 0 1 D
++R Q 1965 o - S 30 0 0 S
++R Q 1966 o - May 29 0 1 D
++R Q 1966 o - O 2 0 0 S
++R Q 1967 o - Ap 8 0 1 D
++R Q 1967 1968 - S Sun>=8 0 0 S
++R Q 1968 o - Ap 14 0 1 D
++R Q 1969 1977 - Ap lastSun 0 1 D
++R Q 1969 1971 - O lastSun 0 0 S
++R Q 1972 1974 - O 8 0 0 S
++R Q 1975 1977 - O lastSun 0 0 S
++R Q 1978 o - May 7 0 1 D
++R Q 1978 1990 - O Sun>=8 0 0 S
++R Q 1979 1980 - Mar Sun>=15 0 1 D
++R Q 1981 1985 - May Sun>=5 0 1 D
++R Q 1986 1989 - Mar Sun>=14 0 1 D
++R Q 1990 1997 - Ap Sun>=1 0 1 D
++R Q 1991 1995 - O Sun>=8 0s 0 S
++R Q 1996 o - O 6 0s 0 S
++R Q 1997 o - O 12 0s 0 S
++R Q 1998 1999 - Mar lastSun 0s 1 D
++R Q 1998 2003 - O lastSun 0s 0 S
++R Q 2000 2003 - Ap Sun>=1 0s 1 D
++R Q 2004 o - Mar lastSun 0s 1 D
++R Q 2006 2010 - O lastSun 0s 0 S
++R Q 2007 o - Mar Sun>=8 0s 1 D
++R Q 2008 o - Mar Sun>=15 0s 1 D
++R Q 2009 2010 - Mar Sun>=8 0s 1 D
++R Q 2011 o - Mar Sun>=15 0s 1 D
++R Q 2011 o - N 13 0s 0 S
++R Q 2012 o - Ap 1 0s 1 D
++R Q 2012 ma - N Sun>=1 0s 0 S
++R Q 2013 ma - Mar Sun>=8 0s 1 D
+ Z America/Havana -5:29:28 - LMT 1890
+ -5:29:36 - HMT 1925 Jul 19 12
+--5 Ak C%sT
+-R Al 1966 o - O 30 0 1 EDT
+-R Al 1967 o - F 28 0 0 EST
+-R Al 1969 1973 - O lastSun 0 0:30 -0430
+-R Al 1970 o - F 21 0 0 EST
+-R Al 1971 o - Ja 20 0 0 EST
+-R Al 1972 1974 - Ja 21 0 0 EST
++-5 Q C%sT
++R DO 1966 o - O 30 0 1 EDT
++R DO 1967 o - F 28 0 0 EST
++R DO 1969 1973 - O lastSun 0 0:30 -0430
++R DO 1970 o - F 21 0 0 EST
++R DO 1971 o - Ja 20 0 0 EST
++R DO 1972 1974 - Ja 21 0 0 EST
+ Z America/Santo_Domingo -4:39:36 - LMT 1890
+ -4:40 - SDMT 1933 Ap 1 12
+--5 Al %s 1974 O 27
++-5 DO %s 1974 O 27
+ -4 - AST 2000 O 29 2
+--5 AF E%sT 2000 D 3 1
++-5 u E%sT 2000 D 3 1
+ -4 - AST
+-R Am 1987 1988 - May Sun>=1 0 1 D
+-R Am 1987 1988 - S lastSun 0 0 S
++R SV 1987 1988 - May Sun>=1 0 1 D
++R SV 1987 1988 - S lastSun 0 0 S
+ Z America/El_Salvador -5:56:48 - LMT 1921
+--6 Am C%sT
+-R An 1973 o - N 25 0 1 D
+-R An 1974 o - F 24 0 0 S
+-R An 1983 o - May 21 0 1 D
+-R An 1983 o - S 22 0 0 S
+-R An 1991 o - Mar 23 0 1 D
+-R An 1991 o - S 7 0 0 S
+-R An 2006 o - Ap 30 0 1 D
+-R An 2006 o - O 1 0 0 S
++-6 SV C%sT
++R GT 1973 o - N 25 0 1 D
++R GT 1974 o - F 24 0 0 S
++R GT 1983 o - May 21 0 1 D
++R GT 1983 o - S 22 0 0 S
++R GT 1991 o - Mar 23 0 1 D
++R GT 1991 o - S 7 0 0 S
++R GT 2006 o - Ap 30 0 1 D
++R GT 2006 o - O 1 0 0 S
+ Z America/Guatemala -6:2:4 - LMT 1918 O 5
+--6 An C%sT
+-R Ao 1983 o - May 8 0 1 D
+-R Ao 1984 1987 - Ap lastSun 0 1 D
+-R Ao 1983 1987 - O lastSun 0 0 S
+-R Ao 1988 1997 - Ap Sun>=1 1s 1 D
+-R Ao 1988 1997 - O lastSun 1s 0 S
+-R Ao 2005 2006 - Ap Sun>=1 0 1 D
+-R Ao 2005 2006 - O lastSun 0 0 S
+-R Ao 2012 2015 - Mar Sun>=8 2 1 D
+-R Ao 2012 2015 - N Sun>=1 2 0 S
+-R Ao 2017 ma - Mar Sun>=8 2 1 D
+-R Ao 2017 ma - N Sun>=1 2 0 S
++-6 GT C%sT
++R HT 1983 o - May 8 0 1 D
++R HT 1984 1987 - Ap lastSun 0 1 D
++R HT 1983 1987 - O lastSun 0 0 S
++R HT 1988 1997 - Ap Sun>=1 1s 1 D
++R HT 1988 1997 - O lastSun 1s 0 S
++R HT 2005 2006 - Ap Sun>=1 0 1 D
++R HT 2005 2006 - O lastSun 0 0 S
++R HT 2012 2015 - Mar Sun>=8 2 1 D
++R HT 2012 2015 - N Sun>=1 2 0 S
++R HT 2017 ma - Mar Sun>=8 2 1 D
++R HT 2017 ma - N Sun>=1 2 0 S
+ Z America/Port-au-Prince -4:49:20 - LMT 1890
+ -4:49 - PPMT 1917 Ja 24 12
+--5 Ao E%sT
+-R Ap 1987 1988 - May Sun>=1 0 1 D
+-R Ap 1987 1988 - S lastSun 0 0 S
+-R Ap 2006 o - May Sun>=1 0 1 D
+-R Ap 2006 o - Au M>=1 0 0 S
++-5 HT E%sT
++R HN 1987 1988 - May Sun>=1 0 1 D
++R HN 1987 1988 - S lastSun 0 0 S
++R HN 2006 o - May Sun>=1 0 1 D
++R HN 2006 o - Au M>=1 0 0 S
+ Z America/Tegucigalpa -5:48:52 - LMT 1921 Ap
+--6 Ap C%sT
++-6 HN C%sT
+ Z America/Jamaica -5:7:10 - LMT 1890
+ -5:7:10 - KMT 1912 F
+ -5 - EST 1974
+--5 AF E%sT 1984
++-5 u E%sT 1984
+ -5 - EST
+ Z America/Martinique -4:4:20 - LMT 1890
+ -4:4:20 - FFMT 1911 May
+ -4 - AST 1980 Ap 6
+ -4 1 ADT 1980 S 28
+ -4 - AST
+-R Aq 1979 1980 - Mar Sun>=16 0 1 D
+-R Aq 1979 1980 - Jun M>=23 0 0 S
+-R Aq 2005 o - Ap 10 0 1 D
+-R Aq 2005 o - O Sun>=1 0 0 S
+-R Aq 2006 o - Ap 30 2 1 D
+-R Aq 2006 o - O Sun>=1 1 0 S
++R NI 1979 1980 - Mar Sun>=16 0 1 D
++R NI 1979 1980 - Jun M>=23 0 0 S
++R NI 2005 o - Ap 10 0 1 D
++R NI 2005 o - O Sun>=1 0 0 S
++R NI 2006 o - Ap 30 2 1 D
++R NI 2006 o - O Sun>=1 1 0 S
+ Z America/Managua -5:45:8 - LMT 1890
+ -5:45:12 - MMT 1934 Jun 23
+ -6 - CST 1973 May
+ -5 - EST 1975 F 16
+--6 Aq C%sT 1992 Ja 1 4
++-6 NI C%sT 1992 Ja 1 4
+ -5 - EST 1992 S 24
+ -6 - CST 1993
+ -5 - EST 1997
+--6 Aq C%sT
++-6 NI C%sT
+ Z America/Panama -5:18:8 - LMT 1890
+ -5:19:36 - CMT 1908 Ap 22
+ -5 - EST
+ Li America/Panama America/Cayman
+ Z America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12
+ -4 - AST 1942 May 3
+--4 AF A%sT 1946
++-4 u A%sT 1946
+ -4 - AST
+ Z America/Miquelon -3:44:40 - LMT 1911 May 15
+ -4 - AST 1980 May
+ -3 - -03 1987
+--3 AU -03/-02
++-3 C -03/-02
+ Z America/Grand_Turk -4:44:32 - LMT 1890
+ -5:7:10 - KMT 1912 F
+ -5 - EST 1979
+--5 AF E%sT 2015 N Sun>=1 2
++-5 u E%sT 2015 N Sun>=1 2
+ -4 - AST 2018 Mar 11 3
+--5 AF E%sT
+-R Ar 1930 o - D 1 0 1 -
+-R Ar 1931 o - Ap 1 0 0 -
+-R Ar 1931 o - O 15 0 1 -
+-R Ar 1932 1940 - Mar 1 0 0 -
+-R Ar 1932 1939 - N 1 0 1 -
+-R Ar 1940 o - Jul 1 0 1 -
+-R Ar 1941 o - Jun 15 0 0 -
+-R Ar 1941 o - O 15 0 1 -
+-R Ar 1943 o - Au 1 0 0 -
+-R Ar 1943 o - O 15 0 1 -
+-R Ar 1946 o - Mar 1 0 0 -
+-R Ar 1946 o - O 1 0 1 -
+-R Ar 1963 o - O 1 0 0 -
+-R Ar 1963 o - D 15 0 1 -
+-R Ar 1964 1966 - Mar 1 0 0 -
+-R Ar 1964 1966 - O 15 0 1 -
+-R Ar 1967 o - Ap 2 0 0 -
+-R Ar 1967 1968 - O Sun>=1 0 1 -
+-R Ar 1968 1969 - Ap Sun>=1 0 0 -
+-R Ar 1974 o - Ja 23 0 1 -
+-R Ar 1974 o - May 1 0 0 -
+-R Ar 1988 o - D 1 0 1 -
+-R Ar 1989 1993 - Mar Sun>=1 0 0 -
+-R Ar 1989 1992 - O Sun>=15 0 1 -
+-R Ar 1999 o - O Sun>=1 0 1 -
+-R Ar 2000 o - Mar 3 0 0 -
+-R Ar 2007 o - D 30 0 1 -
+-R Ar 2008 2009 - Mar Sun>=15 0 0 -
+-R Ar 2008 o - O Sun>=15 0 1 -
++-5 u E%sT
++R A 1930 o - D 1 0 1 -
++R A 1931 o - Ap 1 0 0 -
++R A 1931 o - O 15 0 1 -
++R A 1932 1940 - Mar 1 0 0 -
++R A 1932 1939 - N 1 0 1 -
++R A 1940 o - Jul 1 0 1 -
++R A 1941 o - Jun 15 0 0 -
++R A 1941 o - O 15 0 1 -
++R A 1943 o - Au 1 0 0 -
++R A 1943 o - O 15 0 1 -
++R A 1946 o - Mar 1 0 0 -
++R A 1946 o - O 1 0 1 -
++R A 1963 o - O 1 0 0 -
++R A 1963 o - D 15 0 1 -
++R A 1964 1966 - Mar 1 0 0 -
++R A 1964 1966 - O 15 0 1 -
++R A 1967 o - Ap 2 0 0 -
++R A 1967 1968 - O Sun>=1 0 1 -
++R A 1968 1969 - Ap Sun>=1 0 0 -
++R A 1974 o - Ja 23 0 1 -
++R A 1974 o - May 1 0 0 -
++R A 1988 o - D 1 0 1 -
++R A 1989 1993 - Mar Sun>=1 0 0 -
++R A 1989 1992 - O Sun>=15 0 1 -
++R A 1999 o - O Sun>=1 0 1 -
++R A 2000 o - Mar 3 0 0 -
++R A 2007 o - D 30 0 1 -
++R A 2008 2009 - Mar Sun>=15 0 0 -
++R A 2008 o - O Sun>=15 0 1 -
+ Z America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
+--3 Ar -03/-02
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
++-3 A -03/-02
+ Z America/Argentina/Cordoba -4:16:48 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1991 Mar 3
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1991 Mar 3
+ -4 - -04 1991 O 20
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
+--3 Ar -03/-02
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
++-3 A -03/-02
+ Z America/Argentina/Salta -4:21:40 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1991 Mar 3
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1991 Mar 3
+ -4 - -04 1991 O 20
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
+--3 Ar -03/-02 2008 O 18
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
++-3 A -03/-02 2008 O 18
+ -3 - -03
+ Z America/Argentina/Tucuman -4:20:52 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1991 Mar 3
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1991 Mar 3
+ -4 - -04 1991 O 20
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
+ -3 - -03 2004 Jun
+ -4 - -04 2004 Jun 13
+--3 Ar -03/-02
++-3 A -03/-02
+ Z America/Argentina/La_Rioja -4:27:24 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1991 Mar
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1991 Mar
+ -4 - -04 1991 May 7
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
+ -3 - -03 2004 Jun
+ -4 - -04 2004 Jun 20
+--3 Ar -03/-02 2008 O 18
++-3 A -03/-02 2008 O 18
+ -3 - -03
+ Z America/Argentina/San_Juan -4:34:4 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1991 Mar
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1991 Mar
+ -4 - -04 1991 May 7
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
+ -3 - -03 2004 May 31
+ -4 - -04 2004 Jul 25
+--3 Ar -03/-02 2008 O 18
++-3 A -03/-02 2008 O 18
+ -3 - -03
+ Z America/Argentina/Jujuy -4:21:12 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1990 Mar 4
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1990 Mar 4
+ -4 - -04 1990 O 28
+ -4 1 -03 1991 Mar 17
+ -4 - -04 1991 O 6
+ -3 1 -02 1992
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
+--3 Ar -03/-02 2008 O 18
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
++-3 A -03/-02 2008 O 18
+ -3 - -03
+ Z America/Argentina/Catamarca -4:23:8 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1991 Mar 3
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1991 Mar 3
+ -4 - -04 1991 O 20
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
+ -3 - -03 2004 Jun
+ -4 - -04 2004 Jun 20
+--3 Ar -03/-02 2008 O 18
++-3 A -03/-02 2008 O 18
+ -3 - -03
+ Z America/Argentina/Mendoza -4:35:16 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1990 Mar 4
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1990 Mar 4
+ -4 - -04 1990 O 15
+ -4 1 -03 1991 Mar
+ -4 - -04 1991 O 15
+ -4 1 -03 1992 Mar
+ -4 - -04 1992 O 18
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
+ -3 - -03 2004 May 23
+ -4 - -04 2004 S 26
+--3 Ar -03/-02 2008 O 18
++-3 A -03/-02 2008 O 18
+ -3 - -03
+-R As 2008 2009 - Mar Sun>=8 0 0 -
+-R As 2007 2008 - O Sun>=8 0 1 -
++R Sa 2008 2009 - Mar Sun>=8 0 0 -
++R Sa 2007 2008 - O Sun>=8 0 1 -
+ Z America/Argentina/San_Luis -4:25:24 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1990
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1990
+ -3 1 -02 1990 Mar 14
+ -4 - -04 1990 O 15
+ -4 1 -03 1991 Mar
+@@ -3590,286 +3607,288 @@ Z America/Argentina/San_Luis -4:25:24 - LMT 1894 O 31
+ -4 1 -03 2000 Mar 3
+ -3 - -03 2004 May 31
+ -4 - -04 2004 Jul 25
+--3 Ar -03/-02 2008 Ja 21
+--4 As -04/-03 2009 O 11
++-3 A -03/-02 2008 Ja 21
++-4 Sa -04/-03 2009 O 11
+ -3 - -03
+ Z America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
+ -3 - -03 2004 Jun
+ -4 - -04 2004 Jun 20
+--3 Ar -03/-02 2008 O 18
++-3 A -03/-02 2008 O 18
+ -3 - -03
+ Z America/Argentina/Ushuaia -4:33:12 - LMT 1894 O 31
+ -4:16:48 - CMT 1920 May
+ -4 - -04 1930 D
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1999 O 3
+--4 Ar -04/-03 2000 Mar 3
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1999 O 3
++-4 A -04/-03 2000 Mar 3
+ -3 - -03 2004 May 30
+ -4 - -04 2004 Jun 20
+--3 Ar -03/-02 2008 O 18
++-3 A -03/-02 2008 O 18
+ -3 - -03
+ Li America/Curacao America/Aruba
+ Z America/La_Paz -4:32:36 - LMT 1890
+ -4:32:36 - CMT 1931 O 15
+ -4:32:36 1 BST 1932 Mar 21
+ -4 - -04
+-R At 1931 o - O 3 11 1 -
+-R At 1932 1933 - Ap 1 0 0 -
+-R At 1932 o - O 3 0 1 -
+-R At 1949 1952 - D 1 0 1 -
+-R At 1950 o - Ap 16 1 0 -
+-R At 1951 1952 - Ap 1 0 0 -
+-R At 1953 o - Mar 1 0 0 -
+-R At 1963 o - D 9 0 1 -
+-R At 1964 o - Mar 1 0 0 -
+-R At 1965 o - Ja 31 0 1 -
+-R At 1965 o - Mar 31 0 0 -
+-R At 1965 o - D 1 0 1 -
+-R At 1966 1968 - Mar 1 0 0 -
+-R At 1966 1967 - N 1 0 1 -
+-R At 1985 o - N 2 0 1 -
+-R At 1986 o - Mar 15 0 0 -
+-R At 1986 o - O 25 0 1 -
+-R At 1987 o - F 14 0 0 -
+-R At 1987 o - O 25 0 1 -
+-R At 1988 o - F 7 0 0 -
+-R At 1988 o - O 16 0 1 -
+-R At 1989 o - Ja 29 0 0 -
+-R At 1989 o - O 15 0 1 -
+-R At 1990 o - F 11 0 0 -
+-R At 1990 o - O 21 0 1 -
+-R At 1991 o - F 17 0 0 -
+-R At 1991 o - O 20 0 1 -
+-R At 1992 o - F 9 0 0 -
+-R At 1992 o - O 25 0 1 -
+-R At 1993 o - Ja 31 0 0 -
+-R At 1993 1995 - O Sun>=11 0 1 -
+-R At 1994 1995 - F Sun>=15 0 0 -
+-R At 1996 o - F 11 0 0 -
+-R At 1996 o - O 6 0 1 -
+-R At 1997 o - F 16 0 0 -
+-R At 1997 o - O 6 0 1 -
+-R At 1998 o - Mar 1 0 0 -
+-R At 1998 o - O 11 0 1 -
+-R At 1999 o - F 21 0 0 -
+-R At 1999 o - O 3 0 1 -
+-R At 2000 o - F 27 0 0 -
+-R At 2000 2001 - O Sun>=8 0 1 -
+-R At 2001 2006 - F Sun>=15 0 0 -
+-R At 2002 o - N 3 0 1 -
+-R At 2003 o - O 19 0 1 -
+-R At 2004 o - N 2 0 1 -
+-R At 2005 o - O 16 0 1 -
+-R At 2006 o - N 5 0 1 -
+-R At 2007 o - F 25 0 0 -
+-R At 2007 o - O Sun>=8 0 1 -
+-R At 2008 2017 - O Sun>=15 0 1 -
+-R At 2008 2011 - F Sun>=15 0 0 -
+-R At 2012 o - F Sun>=22 0 0 -
+-R At 2013 2014 - F Sun>=15 0 0 -
+-R At 2015 o - F Sun>=22 0 0 -
+-R At 2016 2022 - F Sun>=15 0 0 -
+-R At 2018 ma - N Sun>=1 0 1 -
+-R At 2023 o - F Sun>=22 0 0 -
+-R At 2024 2025 - F Sun>=15 0 0 -
+-R At 2026 o - F Sun>=22 0 0 -
+-R At 2027 2033 - F Sun>=15 0 0 -
+-R At 2034 o - F Sun>=22 0 0 -
+-R At 2035 2036 - F Sun>=15 0 0 -
+-R At 2037 o - F Sun>=22 0 0 -
+-R At 2038 ma - F Sun>=15 0 0 -
++R B 1931 o - O 3 11 1 -
++R B 1932 1933 - Ap 1 0 0 -
++R B 1932 o - O 3 0 1 -
++R B 1949 1952 - D 1 0 1 -
++R B 1950 o - Ap 16 1 0 -
++R B 1951 1952 - Ap 1 0 0 -
++R B 1953 o - Mar 1 0 0 -
++R B 1963 o - D 9 0 1 -
++R B 1964 o - Mar 1 0 0 -
++R B 1965 o - Ja 31 0 1 -
++R B 1965 o - Mar 31 0 0 -
++R B 1965 o - D 1 0 1 -
++R B 1966 1968 - Mar 1 0 0 -
++R B 1966 1967 - N 1 0 1 -
++R B 1985 o - N 2 0 1 -
++R B 1986 o - Mar 15 0 0 -
++R B 1986 o - O 25 0 1 -
++R B 1987 o - F 14 0 0 -
++R B 1987 o - O 25 0 1 -
++R B 1988 o - F 7 0 0 -
++R B 1988 o - O 16 0 1 -
++R B 1989 o - Ja 29 0 0 -
++R B 1989 o - O 15 0 1 -
++R B 1990 o - F 11 0 0 -
++R B 1990 o - O 21 0 1 -
++R B 1991 o - F 17 0 0 -
++R B 1991 o - O 20 0 1 -
++R B 1992 o - F 9 0 0 -
++R B 1992 o - O 25 0 1 -
++R B 1993 o - Ja 31 0 0 -
++R B 1993 1995 - O Sun>=11 0 1 -
++R B 1994 1995 - F Sun>=15 0 0 -
++R B 1996 o - F 11 0 0 -
++R B 1996 o - O 6 0 1 -
++R B 1997 o - F 16 0 0 -
++R B 1997 o - O 6 0 1 -
++R B 1998 o - Mar 1 0 0 -
++R B 1998 o - O 11 0 1 -
++R B 1999 o - F 21 0 0 -
++R B 1999 o - O 3 0 1 -
++R B 2000 o - F 27 0 0 -
++R B 2000 2001 - O Sun>=8 0 1 -
++R B 2001 2006 - F Sun>=15 0 0 -
++R B 2002 o - N 3 0 1 -
++R B 2003 o - O 19 0 1 -
++R B 2004 o - N 2 0 1 -
++R B 2005 o - O 16 0 1 -
++R B 2006 o - N 5 0 1 -
++R B 2007 o - F 25 0 0 -
++R B 2007 o - O Sun>=8 0 1 -
++R B 2008 2017 - O Sun>=15 0 1 -
++R B 2008 2011 - F Sun>=15 0 0 -
++R B 2012 o - F Sun>=22 0 0 -
++R B 2013 2014 - F Sun>=15 0 0 -
++R B 2015 o - F Sun>=22 0 0 -
++R B 2016 2022 - F Sun>=15 0 0 -
++R B 2018 ma - N Sun>=1 0 1 -
++R B 2023 o - F Sun>=22 0 0 -
++R B 2024 2025 - F Sun>=15 0 0 -
++R B 2026 o - F Sun>=22 0 0 -
++R B 2027 2033 - F Sun>=15 0 0 -
++R B 2034 o - F Sun>=22 0 0 -
++R B 2035 2036 - F Sun>=15 0 0 -
++R B 2037 o - F Sun>=22 0 0 -
++R B 2038 ma - F Sun>=15 0 0 -
+ Z America/Noronha -2:9:40 - LMT 1914
+--2 At -02/-01 1990 S 17
++-2 B -02/-01 1990 S 17
+ -2 - -02 1999 S 30
+--2 At -02/-01 2000 O 15
++-2 B -02/-01 2000 O 15
+ -2 - -02 2001 S 13
+--2 At -02/-01 2002 O
++-2 B -02/-01 2002 O
+ -2 - -02
+ Z America/Belem -3:13:56 - LMT 1914
+--3 At -03/-02 1988 S 12
++-3 B -03/-02 1988 S 12
+ -3 - -03
+ Z America/Santarem -3:38:48 - LMT 1914
+--4 At -04/-03 1988 S 12
++-4 B -04/-03 1988 S 12
+ -4 - -04 2008 Jun 24
+ -3 - -03
+ Z America/Fortaleza -2:34 - LMT 1914
+--3 At -03/-02 1990 S 17
++-3 B -03/-02 1990 S 17
+ -3 - -03 1999 S 30
+--3 At -03/-02 2000 O 22
++-3 B -03/-02 2000 O 22
+ -3 - -03 2001 S 13
+--3 At -03/-02 2002 O
++-3 B -03/-02 2002 O
+ -3 - -03
+ Z America/Recife -2:19:36 - LMT 1914
+--3 At -03/-02 1990 S 17
++-3 B -03/-02 1990 S 17
+ -3 - -03 1999 S 30
+--3 At -03/-02 2000 O 15
++-3 B -03/-02 2000 O 15
+ -3 - -03 2001 S 13
+--3 At -03/-02 2002 O
++-3 B -03/-02 2002 O
+ -3 - -03
+ Z America/Araguaina -3:12:48 - LMT 1914
+--3 At -03/-02 1990 S 17
++-3 B -03/-02 1990 S 17
+ -3 - -03 1995 S 14
+--3 At -03/-02 2003 S 24
++-3 B -03/-02 2003 S 24
+ -3 - -03 2012 O 21
+--3 At -03/-02 2013 S
++-3 B -03/-02 2013 S
+ -3 - -03
+ Z America/Maceio -2:22:52 - LMT 1914
+--3 At -03/-02 1990 S 17
++-3 B -03/-02 1990 S 17
+ -3 - -03 1995 O 13
+--3 At -03/-02 1996 S 4
++-3 B -03/-02 1996 S 4
+ -3 - -03 1999 S 30
+--3 At -03/-02 2000 O 22
++-3 B -03/-02 2000 O 22
+ -3 - -03 2001 S 13
+--3 At -03/-02 2002 O
++-3 B -03/-02 2002 O
+ -3 - -03
+ Z America/Bahia -2:34:4 - LMT 1914
+--3 At -03/-02 2003 S 24
++-3 B -03/-02 2003 S 24
+ -3 - -03 2011 O 16
+--3 At -03/-02 2012 O 21
++-3 B -03/-02 2012 O 21
+ -3 - -03
+ Z America/Sao_Paulo -3:6:28 - LMT 1914
+--3 At -03/-02 1963 O 23
++-3 B -03/-02 1963 O 23
+ -3 1 -02 1964
+--3 At -03/-02
++-3 B -03/-02
+ Z America/Campo_Grande -3:38:28 - LMT 1914
+--4 At -04/-03
++-4 B -04/-03
+ Z America/Cuiaba -3:44:20 - LMT 1914
+--4 At -04/-03 2003 S 24
++-4 B -04/-03 2003 S 24
+ -4 - -04 2004 O
+--4 At -04/-03
++-4 B -04/-03
+ Z America/Porto_Velho -4:15:36 - LMT 1914
+--4 At -04/-03 1988 S 12
++-4 B -04/-03 1988 S 12
+ -4 - -04
+ Z America/Boa_Vista -4:2:40 - LMT 1914
+--4 At -04/-03 1988 S 12
++-4 B -04/-03 1988 S 12
+ -4 - -04 1999 S 30
+--4 At -04/-03 2000 O 15
++-4 B -04/-03 2000 O 15
+ -4 - -04
+ Z America/Manaus -4:0:4 - LMT 1914
+--4 At -04/-03 1988 S 12
++-4 B -04/-03 1988 S 12
+ -4 - -04 1993 S 28
+--4 At -04/-03 1994 S 22
++-4 B -04/-03 1994 S 22
+ -4 - -04
+ Z America/Eirunepe -4:39:28 - LMT 1914
+--5 At -05/-04 1988 S 12
++-5 B -05/-04 1988 S 12
+ -5 - -05 1993 S 28
+--5 At -05/-04 1994 S 22
++-5 B -05/-04 1994 S 22
+ -5 - -05 2008 Jun 24
+ -4 - -04 2013 N 10
+ -5 - -05
+ Z America/Rio_Branco -4:31:12 - LMT 1914
+--5 At -05/-04 1988 S 12
++-5 B -05/-04 1988 S 12
+ -5 - -05 2008 Jun 24
+ -4 - -04 2013 N 10
+ -5 - -05
+-R Au 1927 1931 - S 1 0 1 -
+-R Au 1928 1932 - Ap 1 0 0 -
+-R Au 1968 o - N 3 4u 1 -
+-R Au 1969 o - Mar 30 3u 0 -
+-R Au 1969 o - N 23 4u 1 -
+-R Au 1970 o - Mar 29 3u 0 -
+-R Au 1971 o - Mar 14 3u 0 -
+-R Au 1970 1972 - O Sun>=9 4u 1 -
+-R Au 1972 1986 - Mar Sun>=9 3u 0 -
+-R Au 1973 o - S 30 4u 1 -
+-R Au 1974 1987 - O Sun>=9 4u 1 -
+-R Au 1987 o - Ap 12 3u 0 -
+-R Au 1988 1990 - Mar Sun>=9 3u 0 -
+-R Au 1988 1989 - O Sun>=9 4u 1 -
+-R Au 1990 o - S 16 4u 1 -
+-R Au 1991 1996 - Mar Sun>=9 3u 0 -
+-R Au 1991 1997 - O Sun>=9 4u 1 -
+-R Au 1997 o - Mar 30 3u 0 -
+-R Au 1998 o - Mar Sun>=9 3u 0 -
+-R Au 1998 o - S 27 4u 1 -
+-R Au 1999 o - Ap 4 3u 0 -
+-R Au 1999 2010 - O Sun>=9 4u 1 -
+-R Au 2000 2007 - Mar Sun>=9 3u 0 -
+-R Au 2008 o - Mar 30 3u 0 -
+-R Au 2009 o - Mar Sun>=9 3u 0 -
+-R Au 2010 o - Ap Sun>=1 3u 0 -
+-R Au 2011 o - May Sun>=2 3u 0 -
+-R Au 2011 o - Au Sun>=16 4u 1 -
+-R Au 2012 2014 - Ap Sun>=23 3u 0 -
+-R Au 2012 2014 - S Sun>=2 4u 1 -
+-R Au 2016 ma - May Sun>=9 3u 0 -
+-R Au 2016 ma - Au Sun>=9 4u 1 -
++R x 1927 1931 - S 1 0 1 -
++R x 1928 1932 - Ap 1 0 0 -
++R x 1968 o - N 3 4u 1 -
++R x 1969 o - Mar 30 3u 0 -
++R x 1969 o - N 23 4u 1 -
++R x 1970 o - Mar 29 3u 0 -
++R x 1971 o - Mar 14 3u 0 -
++R x 1970 1972 - O Sun>=9 4u 1 -
++R x 1972 1986 - Mar Sun>=9 3u 0 -
++R x 1973 o - S 30 4u 1 -
++R x 1974 1987 - O Sun>=9 4u 1 -
++R x 1987 o - Ap 12 3u 0 -
++R x 1988 1990 - Mar Sun>=9 3u 0 -
++R x 1988 1989 - O Sun>=9 4u 1 -
++R x 1990 o - S 16 4u 1 -
++R x 1991 1996 - Mar Sun>=9 3u 0 -
++R x 1991 1997 - O Sun>=9 4u 1 -
++R x 1997 o - Mar 30 3u 0 -
++R x 1998 o - Mar Sun>=9 3u 0 -
++R x 1998 o - S 27 4u 1 -
++R x 1999 o - Ap 4 3u 0 -
++R x 1999 2010 - O Sun>=9 4u 1 -
++R x 2000 2007 - Mar Sun>=9 3u 0 -
++R x 2008 o - Mar 30 3u 0 -
++R x 2009 o - Mar Sun>=9 3u 0 -
++R x 2010 o - Ap Sun>=1 3u 0 -
++R x 2011 o - May Sun>=2 3u 0 -
++R x 2011 o - Au Sun>=16 4u 1 -
++R x 2012 2014 - Ap Sun>=23 3u 0 -
++R x 2012 2014 - S Sun>=2 4u 1 -
++R x 2016 2018 - May Sun>=9 3u 0 -
++R x 2016 2018 - Au Sun>=9 4u 1 -
++R x 2019 ma - Ap Sun>=2 3u 0 -
++R x 2019 ma - S Sun>=2 4u 1 -
+ Z America/Santiago -4:42:46 - LMT 1890
+ -4:42:46 - SMT 1910 Ja 10
+ -5 - -05 1916 Jul
+ -4:42:46 - SMT 1918 S 10
+ -4 - -04 1919 Jul
+ -4:42:46 - SMT 1927 S
+--5 Au -05/-04 1932 S
++-5 x -05/-04 1932 S
+ -4 - -04 1942 Jun
+ -5 - -05 1942 Au
+ -4 - -04 1946 Jul 15
+ -4 1 -03 1946 S
+ -4 - -04 1947 Ap
+ -5 - -05 1947 May 21 23
+--4 Au -04/-03
++-4 x -04/-03
+ Z America/Punta_Arenas -4:43:40 - LMT 1890
+ -4:42:46 - SMT 1910 Ja 10
+ -5 - -05 1916 Jul
+ -4:42:46 - SMT 1918 S 10
+ -4 - -04 1919 Jul
+ -4:42:46 - SMT 1927 S
+--5 Au -05/-04 1932 S
++-5 x -05/-04 1932 S
+ -4 - -04 1942 Jun
+ -5 - -05 1942 Au
+ -4 - -04 1947 Ap
+ -5 - -05 1947 May 21 23
+--4 Au -04/-03 2016 D 4
++-4 x -04/-03 2016 D 4
+ -3 - -03
+ Z Pacific/Easter -7:17:28 - LMT 1890
+ -7:17:28 - EMT 1932 S
+--7 Au -07/-06 1982 Mar 14 3u
+--6 Au -06/-05
++-7 x -07/-06 1982 Mar 14 3u
++-6 x -06/-05
+ Z Antarctica/Palmer 0 - -00 1965
+--4 Ar -04/-03 1969 O 5
+--3 Ar -03/-02 1982 May
+--4 Au -04/-03 2016 D 4
++-4 A -04/-03 1969 O 5
++-3 A -03/-02 1982 May
++-4 x -04/-03 2016 D 4
+ -3 - -03
+-R Av 1992 o - May 3 0 1 -
+-R Av 1993 o - Ap 4 0 0 -
++R CO 1992 o - May 3 0 1 -
++R CO 1993 o - Ap 4 0 0 -
+ Z America/Bogota -4:56:16 - LMT 1884 Mar 13
+ -4:56:16 - BMT 1914 N 23
+--5 Av -05/-04
++-5 CO -05/-04
+ Z America/Curacao -4:35:47 - LMT 1912 F 12
+ -4:30 - -0430 1965
+ -4 - AST
+ Li America/Curacao America/Lower_Princes
+ Li America/Curacao America/Kralendijk
+-R Aw 1992 o - N 28 0 1 -
+-R Aw 1993 o - F 5 0 0 -
++R EC 1992 o - N 28 0 1 -
++R EC 1993 o - F 5 0 0 -
+ Z America/Guayaquil -5:19:20 - LMT 1890
+ -5:14 - QMT 1931
+--5 Aw -05/-04
++-5 EC -05/-04
+ Z Pacific/Galapagos -5:58:24 - LMT 1931
+ -5 - -05 1986
+--6 Aw -06/-05
+-R Ax 1937 1938 - S lastSun 0 1 -
+-R Ax 1938 1942 - Mar Sun>=19 0 0 -
+-R Ax 1939 o - O 1 0 1 -
+-R Ax 1940 1942 - S lastSun 0 1 -
+-R Ax 1943 o - Ja 1 0 0 -
+-R Ax 1983 o - S lastSun 0 1 -
+-R Ax 1984 1985 - Ap lastSun 0 0 -
+-R Ax 1984 o - S 16 0 1 -
+-R Ax 1985 2000 - S Sun>=9 0 1 -
+-R Ax 1986 2000 - Ap Sun>=16 0 0 -
+-R Ax 2001 2010 - Ap Sun>=15 2 0 -
+-R Ax 2001 2010 - S Sun>=1 2 1 -
++-6 EC -06/-05
++R FK 1937 1938 - S lastSun 0 1 -
++R FK 1938 1942 - Mar Sun>=19 0 0 -
++R FK 1939 o - O 1 0 1 -
++R FK 1940 1942 - S lastSun 0 1 -
++R FK 1943 o - Ja 1 0 0 -
++R FK 1983 o - S lastSun 0 1 -
++R FK 1984 1985 - Ap lastSun 0 0 -
++R FK 1984 o - S 16 0 1 -
++R FK 1985 2000 - S Sun>=9 0 1 -
++R FK 1986 2000 - Ap Sun>=16 0 0 -
++R FK 2001 2010 - Ap Sun>=15 2 0 -
++R FK 2001 2010 - S Sun>=1 2 1 -
+ Z Atlantic/Stanley -3:51:24 - LMT 1890
+ -3:51:24 - SMT 1912 Mar 12
+--4 Ax -04/-03 1983 May
+--3 Ax -03/-02 1985 S 15
+--4 Ax -04/-03 2010 S 5 2
++-4 FK -04/-03 1983 May
++-3 FK -03/-02 1985 S 15
++-4 FK -04/-03 2010 S 5 2
+ -3 - -03
+ Z America/Cayenne -3:29:20 - LMT 1911 Jul
+ -4 - -04 1967 O
+@@ -3878,46 +3897,46 @@ Z America/Guyana -3:52:40 - LMT 1915 Mar
+ -3:45 - -0345 1975 Jul 31
+ -3 - -03 1991
+ -4 - -04
+-R Ay 1975 1988 - O 1 0 1 -
+-R Ay 1975 1978 - Mar 1 0 0 -
+-R Ay 1979 1991 - Ap 1 0 0 -
+-R Ay 1989 o - O 22 0 1 -
+-R Ay 1990 o - O 1 0 1 -
+-R Ay 1991 o - O 6 0 1 -
+-R Ay 1992 o - Mar 1 0 0 -
+-R Ay 1992 o - O 5 0 1 -
+-R Ay 1993 o - Mar 31 0 0 -
+-R Ay 1993 1995 - O 1 0 1 -
+-R Ay 1994 1995 - F lastSun 0 0 -
+-R Ay 1996 o - Mar 1 0 0 -
+-R Ay 1996 2001 - O Sun>=1 0 1 -
+-R Ay 1997 o - F lastSun 0 0 -
+-R Ay 1998 2001 - Mar Sun>=1 0 0 -
+-R Ay 2002 2004 - Ap Sun>=1 0 0 -
+-R Ay 2002 2003 - S Sun>=1 0 1 -
+-R Ay 2004 2009 - O Sun>=15 0 1 -
+-R Ay 2005 2009 - Mar Sun>=8 0 0 -
+-R Ay 2010 ma - O Sun>=1 0 1 -
+-R Ay 2010 2012 - Ap Sun>=8 0 0 -
+-R Ay 2013 ma - Mar Sun>=22 0 0 -
++R y 1975 1988 - O 1 0 1 -
++R y 1975 1978 - Mar 1 0 0 -
++R y 1979 1991 - Ap 1 0 0 -
++R y 1989 o - O 22 0 1 -
++R y 1990 o - O 1 0 1 -
++R y 1991 o - O 6 0 1 -
++R y 1992 o - Mar 1 0 0 -
++R y 1992 o - O 5 0 1 -
++R y 1993 o - Mar 31 0 0 -
++R y 1993 1995 - O 1 0 1 -
++R y 1994 1995 - F lastSun 0 0 -
++R y 1996 o - Mar 1 0 0 -
++R y 1996 2001 - O Sun>=1 0 1 -
++R y 1997 o - F lastSun 0 0 -
++R y 1998 2001 - Mar Sun>=1 0 0 -
++R y 2002 2004 - Ap Sun>=1 0 0 -
++R y 2002 2003 - S Sun>=1 0 1 -
++R y 2004 2009 - O Sun>=15 0 1 -
++R y 2005 2009 - Mar Sun>=8 0 0 -
++R y 2010 ma - O Sun>=1 0 1 -
++R y 2010 2012 - Ap Sun>=8 0 0 -
++R y 2013 ma - Mar Sun>=22 0 0 -
+ Z America/Asuncion -3:50:40 - LMT 1890
+ -3:50:40 - AMT 1931 O 10
+ -4 - -04 1972 O
+ -3 - -03 1974 Ap
+--4 Ay -04/-03
+-R Az 1938 o - Ja 1 0 1 -
+-R Az 1938 o - Ap 1 0 0 -
+-R Az 1938 1939 - S lastSun 0 1 -
+-R Az 1939 1940 - Mar Sun>=24 0 0 -
+-R Az 1986 1987 - Ja 1 0 1 -
+-R Az 1986 1987 - Ap 1 0 0 -
+-R Az 1990 o - Ja 1 0 1 -
+-R Az 1990 o - Ap 1 0 0 -
+-R Az 1994 o - Ja 1 0 1 -
+-R Az 1994 o - Ap 1 0 0 -
++-4 y -04/-03
++R PE 1938 o - Ja 1 0 1 -
++R PE 1938 o - Ap 1 0 0 -
++R PE 1938 1939 - S lastSun 0 1 -
++R PE 1939 1940 - Mar Sun>=24 0 0 -
++R PE 1986 1987 - Ja 1 0 1 -
++R PE 1986 1987 - Ap 1 0 0 -
++R PE 1990 o - Ja 1 0 1 -
++R PE 1990 o - Ap 1 0 0 -
++R PE 1994 o - Ja 1 0 1 -
++R PE 1994 o - Ap 1 0 0 -
+ Z America/Lima -5:8:12 - LMT 1890
+ -5:8:36 - LMT 1908 Jul 28
+--5 Az -05/-04
++-5 PE -05/-04
+ Z Atlantic/South_Georgia -2:26:8 - LMT 1890
+ -2 - -02
+ Z America/Paramaribo -3:40:40 - LMT 1911
+@@ -3940,65 +3959,65 @@ Li America/Port_of_Spain America/St_Lucia
+ Li America/Port_of_Spain America/St_Thomas
+ Li America/Port_of_Spain America/St_Vincent
+ Li America/Port_of_Spain America/Tortola
+-R A! 1923 1925 - O 1 0 0:30 -
+-R A! 1924 1926 - Ap 1 0 0 -
+-R A! 1933 1938 - O lastSun 0 0:30 -
+-R A! 1934 1941 - Mar lastSat 24 0 -
+-R A! 1939 o - O 1 0 0:30 -
+-R A! 1940 o - O 27 0 0:30 -
+-R A! 1941 o - Au 1 0 0:30 -
+-R A! 1942 o - D 14 0 0:30 -
+-R A! 1943 o - Mar 14 0 0 -
+-R A! 1959 o - May 24 0 0:30 -
+-R A! 1959 o - N 15 0 0 -
+-R A! 1960 o - Ja 17 0 1 -
+-R A! 1960 o - Mar 6 0 0 -
+-R A! 1965 o - Ap 4 0 1 -
+-R A! 1965 o - S 26 0 0 -
+-R A! 1968 o - May 27 0 0:30 -
+-R A! 1968 o - D 1 0 0 -
+-R A! 1970 o - Ap 25 0 1 -
+-R A! 1970 o - Jun 14 0 0 -
+-R A! 1972 o - Ap 23 0 1 -
+-R A! 1972 o - Jul 16 0 0 -
+-R A! 1974 o - Ja 13 0 1:30 -
+-R A! 1974 o - Mar 10 0 0:30 -
+-R A! 1974 o - S 1 0 0 -
+-R A! 1974 o - D 22 0 1 -
+-R A! 1975 o - Mar 30 0 0 -
+-R A! 1976 o - D 19 0 1 -
+-R A! 1977 o - Mar 6 0 0 -
+-R A! 1977 o - D 4 0 1 -
+-R A! 1978 1979 - Mar Sun>=1 0 0 -
+-R A! 1978 o - D 17 0 1 -
+-R A! 1979 o - Ap 29 0 1 -
+-R A! 1980 o - Mar 16 0 0 -
+-R A! 1987 o - D 14 0 1 -
+-R A! 1988 o - F 28 0 0 -
+-R A! 1988 o - D 11 0 1 -
+-R A! 1989 o - Mar 5 0 0 -
+-R A! 1989 o - O 29 0 1 -
+-R A! 1990 o - F 25 0 0 -
+-R A! 1990 1991 - O Sun>=21 0 1 -
+-R A! 1991 1992 - Mar Sun>=1 0 0 -
+-R A! 1992 o - O 18 0 1 -
+-R A! 1993 o - F 28 0 0 -
+-R A! 2004 o - S 19 0 1 -
+-R A! 2005 o - Mar 27 2 0 -
+-R A! 2005 o - O 9 2 1 -
+-R A! 2006 2015 - Mar Sun>=8 2 0 -
+-R A! 2006 2014 - O Sun>=1 2 1 -
++R U 1923 1925 - O 1 0 0:30 -
++R U 1924 1926 - Ap 1 0 0 -
++R U 1933 1938 - O lastSun 0 0:30 -
++R U 1934 1941 - Mar lastSat 24 0 -
++R U 1939 o - O 1 0 0:30 -
++R U 1940 o - O 27 0 0:30 -
++R U 1941 o - Au 1 0 0:30 -
++R U 1942 o - D 14 0 0:30 -
++R U 1943 o - Mar 14 0 0 -
++R U 1959 o - May 24 0 0:30 -
++R U 1959 o - N 15 0 0 -
++R U 1960 o - Ja 17 0 1 -
++R U 1960 o - Mar 6 0 0 -
++R U 1965 o - Ap 4 0 1 -
++R U 1965 o - S 26 0 0 -
++R U 1968 o - May 27 0 0:30 -
++R U 1968 o - D 1 0 0 -
++R U 1970 o - Ap 25 0 1 -
++R U 1970 o - Jun 14 0 0 -
++R U 1972 o - Ap 23 0 1 -
++R U 1972 o - Jul 16 0 0 -
++R U 1974 o - Ja 13 0 1:30 -
++R U 1974 o - Mar 10 0 0:30 -
++R U 1974 o - S 1 0 0 -
++R U 1974 o - D 22 0 1 -
++R U 1975 o - Mar 30 0 0 -
++R U 1976 o - D 19 0 1 -
++R U 1977 o - Mar 6 0 0 -
++R U 1977 o - D 4 0 1 -
++R U 1978 1979 - Mar Sun>=1 0 0 -
++R U 1978 o - D 17 0 1 -
++R U 1979 o - Ap 29 0 1 -
++R U 1980 o - Mar 16 0 0 -
++R U 1987 o - D 14 0 1 -
++R U 1988 o - F 28 0 0 -
++R U 1988 o - D 11 0 1 -
++R U 1989 o - Mar 5 0 0 -
++R U 1989 o - O 29 0 1 -
++R U 1990 o - F 25 0 0 -
++R U 1990 1991 - O Sun>=21 0 1 -
++R U 1991 1992 - Mar Sun>=1 0 0 -
++R U 1992 o - O 18 0 1 -
++R U 1993 o - F 28 0 0 -
++R U 2004 o - S 19 0 1 -
++R U 2005 o - Mar 27 2 0 -
++R U 2005 o - O 9 2 1 -
++R U 2006 2015 - Mar Sun>=8 2 0 -
++R U 2006 2014 - O Sun>=1 2 1 -
+ Z America/Montevideo -3:44:51 - LMT 1908 Jun 10
+ -3:44:51 - MMT 1920 May
+ -4 - -04 1923 O
+--3:30 A! -0330/-03 1942 D 14
+--3 A! -03/-0230 1960
+--3 A! -03/-02 1968
+--3 A! -03/-0230 1970
+--3 A! -03/-02 1974
+--3 A! -03/-0130 1974 Mar 10
+--3 A! -03/-0230 1974 D 22
+--3 A! -03/-02
++-3:30 U -0330/-03 1942 D 14
++-3 U -03/-0230 1960
++-3 U -03/-02 1968
++-3 U -03/-0230 1970
++-3 U -03/-02 1974
++-3 U -03/-0130 1974 Mar 10
++-3 U -03/-0230 1974 D 22
++-3 U -03/-02
+ Z America/Caracas -4:27:44 - LMT 1890
+ -4:27:40 - CMT 1912 F 12
+ -4:30 - -0430 1965
+diff --git a/src/timezone/known_abbrevs.txt b/src/timezone/known_abbrevs.txt
+index 67d2f0b..2ae443a 100644
+--- a/src/timezone/known_abbrevs.txt
++++ b/src/timezone/known_abbrevs.txt
+@@ -92,6 +92,7 @@ NZST 43200
+ PDT -25200 D
+ PKT 18000
+ PST -28800
++PST 28800
+ SAST 7200
+ SST -39600
+ UCT 0
+diff --git a/src/timezone/tznames/America.txt b/src/timezone/tznames/America.txt
+index 1c5eb1f..2594c37 100644
+--- a/src/timezone/tznames/America.txt
++++ b/src/timezone/tznames/America.txt
+@@ -237,6 +237,9 @@ PDT -25200 D # Pacific Daylight Time
+ PET -18000 # Peru Time (obsolete)
+ PMDT -7200 D # Pierre & Miquelon Daylight Time (obsolete)
+ PMST -10800 # Pierre & Miquelon Standard Time (obsolete)
++# CONFLICT! PST is not unique
++# Other timezones:
++# - PST: Philippine Standard Time
+ PST -28800 # Pacific Standard Time
+ # (America/Dawson)
+ # (America/Los_Angeles)
+diff --git a/src/timezone/tznames/Asia.txt b/src/timezone/tznames/Asia.txt
+index e1fa931..1133339 100644
+--- a/src/timezone/tznames/Asia.txt
++++ b/src/timezone/tznames/Asia.txt
+@@ -158,6 +158,10 @@ PKT 18000 # Pakistan Time
+ # (Asia/Karachi)
+ PKST 21600 D # Pakistan Summer Time
+ # (Asia/Karachi)
++# CONFLICT! PST is not unique
++# Other timezones:
++# - PST: Pacific Standard Time (America)
++PST 28800 # Philippine Standard Time
+ QYZT 21600 # Kizilorda Time (obsolete)
+ SAKST Asia/Sakhalin # Sakhalin Summer Time (obsolete)
+ SAKT Asia/Sakhalin # Sakhalin Time (obsolete)
+diff --git a/src/timezone/tznames/Default b/src/timezone/tznames/Default
+index 3826096..1532413 100644
+--- a/src/timezone/tznames/Default
++++ b/src/timezone/tznames/Default
+@@ -181,6 +181,9 @@ PDT -25200 D # Pacific Daylight Time
+ # (America/Whitehorse)
+ PMDT -7200 D # Pierre & Miquelon Daylight Time (obsolete)
+ PMST -10800 # Pierre & Miquelon Standard Time (obsolete)
++# CONFLICT! PST is not unique
++# Other timezones:
++# - PST: Philippine Standard Time
+ PST -28800 # Pacific Standard Time
+ # (America/Dawson)
+ # (America/Los_Angeles)
+diff --git a/src/timezone/tznames/Pacific.txt b/src/timezone/tznames/Pacific.txt
+index c86248b..c30008c 100644
+--- a/src/timezone/tznames/Pacific.txt
++++ b/src/timezone/tznames/Pacific.txt
+@@ -52,6 +52,9 @@ NZST 43200 # New Zealand Standard Time
+ PGT 36000 # Papua New Guinea Time (obsolete)
+ PHOT Pacific/Enderbury # Phoenix Islands Time (Kiribati) (obsolete)
+ PONT 39600 # Ponape Time (Micronesia) (obsolete)
++# CONFLICT! PST is not unique
++# Other timezones:
++# - PST: Philippine Standard Time
+ PST -28800 # Pacific Standard Time
+ # (America/Dawson)
+ # (America/Los_Angeles)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
index fafbc25..f14da06 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
@@ -1,26 +1,29 @@
-From d52e330be895bb8c5f0fb3e2884766acbd942a85 Mon Sep 17 00:00:00 2001
-From: Philip Balister <philip@balister.org>
-Date: Tue, 1 Jul 2014 09:40:44 -0400
-Subject: [PATCH] Use pkg-config for libxml2 detection.
+From d3ee8c8df5808b63e86f40831f2ba62cbb33d291 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 8 Aug 2018 09:18:27 +0800
+Subject: [PATCH] postgresql: Use pkg-config for libxml2 detection.
Upstream-Status: Inappropriate [configuration]
xml2-config does not work. Use pkgconfig to set CPPFLAGS and LIBS.
Signed-off-by: Philip Balister <philip@balister.org>
+
+upate to version 10.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
configure.in | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
-Index: postgresql-9.4.20/configure.in
-===================================================================
---- postgresql-9.4.20.orig/configure.in
-+++ postgresql-9.4.20/configure.in
-@@ -789,19 +789,8 @@ PGAC_ARG_BOOL(with, libxml, no, [build w
+diff --git a/configure.in b/configure.in
+index d9fe56e..3e2cd3a 100644
+--- a/configure.in
++++ b/configure.in
+@@ -816,19 +816,8 @@ PGAC_ARG_BOOL(with, libxml, no, [build with XML support],
[AC_DEFINE([USE_LIBXML], 1, [Define to 1 to build with XML support. (--with-libxml)])])
if test "$with_libxml" = yes ; then
-- AC_CHECK_PROGS(XML2_CONFIG, xml2-config)
+- PGAC_PATH_PROGS(XML2_CONFIG, xml2-config)
- if test -n "$XML2_CONFIG"; then
- for pgac_option in `$XML2_CONFIG --cflags`; do
- case $pgac_option in
@@ -33,8 +36,11 @@
- esac
- done
- fi
-+ CPPFLAGS="$CPPFLAGS `pkg-config --short-errors --print-errors --cflags "libxml-2.0" 2>&1`"
-+ LIBS="`pkg-config --short-errors --print-errors --libs "libxml-2.0" 2>&1` $LIBS"
++ CPPFLAGS="$CPPFLAGS `pkg-config --short-errors --print-errors --cflags "libxml-2.0" 2>&1`"
++ LIBS="`pkg-config --short-errors --print-errors --libs "libxml-2.0" 2>&1` $LIBS"
fi
AC_SUBST(with_libxml)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
index c57b421..9715109 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
@@ -13,16 +13,16 @@
configure.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: postgresql-9.4.20/configure.in
+Index: postgresql-9.4.15/configure.in
===================================================================
---- postgresql-9.4.20.orig/configure.in
-+++ postgresql-9.4.20/configure.in
-@@ -1931,7 +1931,7 @@ if test "$with_tcl" = yes; then
+--- postgresql-9.4.15.orig/configure.in
++++ postgresql-9.4.15/configure.in
+@@ -1879,7 +1879,7 @@ if test "$with_tcl" = yes; then
fi
# check for <perl.h>
-if test "$with_perl" = yes; then
+if test "$with_perl" = yes && test "$cross_compiling" = no; then
ac_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $perl_includespec"
+ CPPFLAGS="$CPPFLAGS -I$perl_archlibexp/CORE"
AC_CHECK_HEADER(perl.h, [], [AC_MSG_ERROR([header file <perl.h> is required for Perl])],
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
index 812c2ae..3bf71f0 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
@@ -19,7 +19,7 @@
"
HOMEPAGE = "http://www.postgresql.com"
LICENSE = "BSD"
-DEPENDS = "zlib readline tzcode-native"
+DEPENDS = "libnsl2 zlib readline tzcode-native"
ARM_INSTRUCTION_SET = "arm"
@@ -59,7 +59,7 @@
PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,"
PACKAGECONFIG[python] = "--with-python,--without-python,python,python"
-PACKAGECONFIG[uuid] = "--with-ossp-uuid,--without-ossp-uuid,ossp-uuid,"
+PACKAGECONFIG[uuid] = "--with-uuid=e2fs,--without-uuid,util-linux,"
PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl tcl-native,"
PACKAGECONFIG[nls] = "--enable-nls,--disable-nls,,"
PACKAGECONFIG[libxml] = "--with-libxml,--without-libxml,libxml2,libxml2"
@@ -72,21 +72,19 @@
EXTRA_OECONF_sh4 += "--disable-spinlocks"
EXTRA_OECONF_aarch64 += "--disable-spinlocks"
-PACKAGES_DYNAMIC += "^${PN}-plperl ^${PN}-plperl-dbg \
- ^${PN}-pltcl ^${PN}-pltcl-dbg \
- ^${PN}-plpython ^${PN}-plpython-dbg \
+PACKAGES_DYNAMIC += "^${PN}-plperl \
+ ^${PN}-pltcl \
+ ^${PN}-plpython \
"
python populate_packages_prepend() {
- def fill_more(name, dbg=True):
+ def fill_more(name):
if name is None or name.strip() == "":
return
fpack=d.getVar('PACKAGES', False) or ""
fpack="${PN}-" + name + " " + fpack
- if dbg:
- fpack="${PN}-" + name + "-dbg" + " " + fpack
d.setVar('PACKAGES', fpack)
conf=(d.getVar('PACKAGECONFIG') or "").split()
@@ -202,15 +200,26 @@
}
SSTATE_SCAN_FILES += "Makefile.global"
+SSTATE_SCAN_FILES_remove = "*_config"
PACKAGES =+ "${PN}-client ${PN}-server-dev ${PN}-timezone \
- libecpg-compat-dbg libecpg-compat libecpg-compat-dev \
- libecpg-dbg libecpg libecpg-dev libecpg-staticdev libecpg-doc \
- libpq-dbg libpq libpq-dev libpq-staticdev \
- libpgtypes-dbg libpgtypes libpgtypes-staticdev libpgtypes-dev \
- ${PN}-contrib ${PN}-contrib-dbg \
+ libecpg-compat libecpg-compat-dev \
+ libecpg libecpg-dev libecpg-staticdev libecpg-doc \
+ libpq libpq-dev libpq-staticdev \
+ libpgtypes libpgtypes-staticdev libpgtypes-dev \
+ ${PN}-contrib \
"
+RPROVIDES_${PN}-dbg += "libecpg-compat-dbg \
+ libecpg-dbg \
+ libpq-dbg \
+ libpgtypes-dbg \
+ ${PN}-contrib-dbg \
+ ${PN}-pltcl-dbg \
+ ${PN}-plpython-dbg \
+ ${PN}-plperl-dbg \
+ "
+
FILES_${PN} += "${sysconfdir}/init.d/${BPN}-server \
${localstatedir}/lib/${BPN}/data ${localstatedir}/lib/${BPN}/backups \
${localstatedir}/lib/${BPN}/.bash_profile ${sysconfdir}/default/${BPN} \
@@ -223,13 +232,6 @@
else ''} \
"
-FILES_${PN}-dbg += " ${libdir}/${BPN}/.debug/dict_snowball.so \
- ${libdir}/${BPN}/.debug/plpgsql.so \
- ${libdir}/${BPN}/.debug/euc2004_sjis2004.so \
- ${libdir}/${BPN}/.debug/libpqwalreceiver.so \
- ${libdir}/${BPN}/.debug/*_and_*.so \
-"
-
FILES_${PN}-client = "${bindir}/clusterdb \
${bindir}/createdb \
${bindir}/createlang \
@@ -267,7 +269,6 @@
FILES_${PN}-server-dev = "${includedir}/${BPN}/server"
FILES_libecpg = "${libdir}/libecpg*${SOLIBS}"
-FILES_libecpg-dbg = "${libdir}/.debug/libecpg*"
FILES_libecpg-dev = "${libdir}/libecpg*${SOLIBSDEV} \
${libdir}/libpgtypes*${SOLIBSDEV} \
${includedir}/ecpg*.h ${includedir}/${BPN}/ecpg*.h \
@@ -280,7 +281,6 @@
RDEPENDS_libecpg-staticdev = "libecpg-dev (= ${EXTENDPKGV})"
FILES_libpq = "${libdir}/libpq*${SOLIBS}"
-FILES_libpq-dbg = "${libdir}/.debug/libpq* ${libdir}/${BPN}/pgxs/src/test/regress/.debug/*"
FILES_libpq-dev = "${libdir}/libpq*${SOLIBSDEV} \
${includedir} \
"
@@ -289,10 +289,8 @@
RDEPENDS_libpq-staticdev = "libpq-dev (= ${EXTENDPKGV})"
FILES_libecpg-compat = "${libdir}/libecpg_compat*${SOLIBS}"
-FILES_libecpg-compat-dbg = "${libdir}/.debug/libecpg_compat*"
FILES_libecpg-compat-dev = "${libdir}/libecpg_compat*${SOLIBS}"
FILES_libpgtypes = "${libdir}/libpgtypes*${SOLIBS}"
-FILES_libpgtypes-dbg = "${libdir}/.debug/libpgtypes*"
FILES_libpgtypes-staticdev = "${libdir}/libpgtypes*.a"
FILES_libpgtypes-dev = "${libdir}/libpgtypes*${SOLIBS} ${includedir}/pgtypes*.h"
@@ -324,50 +322,18 @@
${libdir}/${BPN}/pg_upgrade_support.so ${libdir}/${BPN}/.so \
${libdir}/${BPN}/unaccent.so \
"
-FILES_${PN}-contrib-dbg = " \
- ${libdir}/${BPN}/.debug/_int.so ${libdir}/${BPN}/.debug/adminpack.so \
- ${libdir}/${BPN}/.debug/autoinc.so ${libdir}/${BPN}/.debug/auto_explain.so \
- ${libdir}/${BPN}/.debug/auth_delay.so ${libdir}/${BPN}/.debug/btree_gin.so \
- ${libdir}/${BPN}/.debug/btree_gist.so ${libdir}/${BPN}/.debug/.so \
- ${libdir}/${BPN}/.debug/chkpass.so ${libdir}/${BPN}/.debug/citext.so \
- ${libdir}/${BPN}/.debug/cube.so ${libdir}/${BPN}/.debug/dblink.so \
- ${libdir}/${BPN}/.debug/dict_int.so ${libdir}/${BPN}/.debug/dict_xsyn.so \
- ${libdir}/${BPN}/.debug/dummy_seclabel.so \
- ${libdir}/${BPN}/.debug/earthdistance.so \
- ${libdir}/${BPN}/.debug/file_fdw.so ${libdir}/${BPN}/.debug/fuzzystrmatch.so \
- ${libdir}/${BPN}/.debug/hstore.so ${libdir}/${BPN}/.debug/insert_username.so \
- ${libdir}/${BPN}/.debug/isn.so ${libdir}/${BPN}/.debug/lo.so \
- ${libdir}/${BPN}/.debug/ltree.so ${libdir}/${BPN}/.debug/moddatetime.so \
- ${libdir}/${BPN}/.debug/pageinspect.so \
- ${libdir}/${BPN}/.debug/pg_buffercache.so \
- ${libdir}/${BPN}/.debug/pg_freespacemap.so \
- ${libdir}/${BPN}/.debug/pg_trgm.so \
- ${libdir}/${BPN}/.debug/pgcrypto.so ${libdir}/${BPN}/.debug/pgrowlocks.so \
- ${libdir}/${BPN}/.debug/pgstattuple.so \
- ${libdir}/${BPN}/.debug/pg_stat_statements.so \
- ${libdir}/${BPN}/.debug/refint.so ${libdir}/${BPN}/.debug/seg.so \
- ${libdir}/${BPN}/.debug/sslinfo.so \
- ${libdir}/${BPN}/.debug/tablefunc.so \
- ${libdir}/${BPN}/.debug/test_parser.so ${libdir}/${BPN}/.debug/timetravel.so \
- ${libdir}/${BPN}/.debug/tsearch2.so ${libdir}/${BPN}/.debug/uuid-ossp.so \
- ${libdir}/${BPN}/.debug/pgxml.so ${libdir}/${BPN}/.debug/passwordcheck.so \
- ${libdir}/${BPN}/.debug/pg_upgrade_support.so \
- ${libdir}/${BPN}/.debug/unaccent.so \
-"
DESCRIPTION_${PN}-contrib = "The postgresql-contrib package contains \
contributed packages that are included in the PostgreSQL distribution."
FILES_${PN}-pltcl = "${libdir}/${BPN}/pltcl.so ${bindir}/pltcl_delmod \
${binddir}/pltcl_listmod ${bindir}/pltcl_loadmod \
${datadir}/${BPN}/unknown.pltcl"
-FILES_${PN}-pltcl-dbg = "${libdir}/${BPN}/.debug/pltcl.so"
SUMMARY_${PN}-pltcl = "The Tcl procedural language for PostgreSQL"
DESCRIPTION_${PN}-pltcl = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-pltcl package contains the PL/Tcl \
procedural language for the backend."
FILES_${PN}-plperl = "${libdir}/${BPN}/plperl.so"
-FILES_${PN}-plperl-dbg = "${libdir}/${BPN}/.debug/plperl.so"
SUMMARY_${PN}-plperl = "The Perl procedural language for PostgreSQL"
DESCRIPTION_${PN}-plperl = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-plperl package contains the \
@@ -376,7 +342,6 @@
# In version 8, it will be plpython.so
# In version 9, it might be plpython{2,3}.so depending on python2 or 3
FILES_${PN}-plpython = "${libdir}/${BPN}/plpython*.so"
-FILES_${PN}-plpython-dbg = "${libdir}/${BPN}/.debug/plpython*.so"
SUMMARY_${PN}-plpython = "The Python procedural language for PostgreSQL"
DESCRIPTION_${PN}-plpython = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-plpython package contains \
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_10.5.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_10.5.bb
new file mode 100644
index 0000000..1a02f15
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_10.5.bb
@@ -0,0 +1,12 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=6dc95e63aa4d72502ff8193dfe2ddd38"
+
+SRC_URI += "\
+ file://not-check-libperl.patch \
+ file://0001-Update-time-zone-data-files-to-tzdata-release-2018f.patch \
+ file://0001-Sync-our-copy-of-the-timezone-library-with-IANA-rele.patch \
+"
+
+SRC_URI[md5sum] = "a5fe5fdff2d6c28f65601398be0950df"
+SRC_URI[sha256sum] = "6c8e616c91a45142b85c0aeb1f29ebba4a361309e86469e0fb4617b6a73c4011"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_9.4.20.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_9.4.20.bb
deleted file mode 100644
index 61f623e..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_9.4.20.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require postgresql.inc
-
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=6dc95e63aa4d72502ff8193dfe2ddd38"
-
-SRC_URI += "\
- file://not-check-libperl.patch \
-"
-
-do_compile_prepend_libc-musl() {
- sed -i -e 's/\-lnsl//g' ${B}/src/Makefile.global
-}
-
-SRC_URI[md5sum] = "5821867741c821736266f27b6b8a859a"
-SRC_URI[sha256sum] = "eeb1d8ddb2854c9e4d8b5cbd65665260c0ae8cbcb911003f24c2d82ccb97f87f"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch
new file mode 100644
index 0000000..be49897
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch
@@ -0,0 +1,194 @@
+From 8d65d70b54d1d306a0a0b00e036bc8ddd39d8ec1 Mon Sep 17 00:00:00 2001
+From: "przemyslaw.skibinski@percona.com" <przemyslaw.skibinski@percona.com>
+Date: Fri, 20 Apr 2018 13:28:05 -0700
+Subject: [PATCH] Fix GitHub issue #3716: gcc-8 warnings
+
+Summary:
+Fix the following gcc-8 warnings:
+- conflicting C language linkage declaration [-Werror]
+- writing to an object with no trivial copy-assignment [-Werror=class-memaccess]
+- array subscript -1 is below array bounds [-Werror=array-bounds]
+
+Solves https://github.com/facebook/rocksdb/issues/3716
+Closes https://github.com/facebook/rocksdb/pull/3736
+
+Differential Revision: D7684161
+
+Pulled By: yiwu-arbug
+
+fbshipit-source-id: 47c0423d26b74add251f1d3595211eee1e41e54a
+---
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [https://github.com/facebook/rocksdb/commit/dee95a1afc6c63515e7d94dec33acdb79638b6d7.patch]
+
+ db/c.cc | 77 ++++++++++++++-------------------------
+ memtable/inlineskiplist.h | 12 +++---
+ 2 files changed, 33 insertions(+), 56 deletions(-)
+
+diff --git a/db/c.cc b/db/c.cc
+index 064103ed4..0d485d096 100644
+--- a/db/c.cc
++++ b/db/c.cc
+@@ -1388,23 +1388,24 @@ void rocksdb_writebatch_put_log_data(
+ b->rep.PutLogData(Slice(blob, len));
+ }
+
++class H : public WriteBatch::Handler {
++ public:
++ void* state_;
++ void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
++ void (*deleted_)(void*, const char* k, size_t klen);
++ virtual void Put(const Slice& key, const Slice& value) override {
++ (*put_)(state_, key.data(), key.size(), value.data(), value.size());
++ }
++ virtual void Delete(const Slice& key) override {
++ (*deleted_)(state_, key.data(), key.size());
++ }
++};
++
+ void rocksdb_writebatch_iterate(
+ rocksdb_writebatch_t* b,
+ void* state,
+ void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
+ void (*deleted)(void*, const char* k, size_t klen)) {
+- class H : public WriteBatch::Handler {
+- public:
+- void* state_;
+- void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
+- void (*deleted_)(void*, const char* k, size_t klen);
+- virtual void Put(const Slice& key, const Slice& value) override {
+- (*put_)(state_, key.data(), key.size(), value.data(), value.size());
+- }
+- virtual void Delete(const Slice& key) override {
+- (*deleted_)(state_, key.data(), key.size());
+- }
+- };
+ H handler;
+ handler.state_ = state;
+ handler.put_ = put;
+@@ -1649,18 +1650,6 @@ void rocksdb_writebatch_wi_iterate(
+ void* state,
+ void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
+ void (*deleted)(void*, const char* k, size_t klen)) {
+- class H : public WriteBatch::Handler {
+- public:
+- void* state_;
+- void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
+- void (*deleted_)(void*, const char* k, size_t klen);
+- virtual void Put(const Slice& key, const Slice& value) override {
+- (*put_)(state_, key.data(), key.size(), value.data(), value.size());
+- }
+- virtual void Delete(const Slice& key) override {
+- (*deleted_)(state_, key.data(), key.size());
+- }
+- };
+ H handler;
+ handler.state_ = state;
+ handler.put_ = put;
+@@ -3109,20 +3098,21 @@ void rocksdb_slicetransform_destroy(rocksdb_slicetransform_t* st) {
+ delete st;
+ }
+
++struct Wrapper : public rocksdb_slicetransform_t {
++ const SliceTransform* rep_;
++ ~Wrapper() { delete rep_; }
++ const char* Name() const override { return rep_->Name(); }
++ Slice Transform(const Slice& src) const override {
++ return rep_->Transform(src);
++ }
++ bool InDomain(const Slice& src) const override {
++ return rep_->InDomain(src);
++ }
++ bool InRange(const Slice& src) const override { return rep_->InRange(src); }
++ static void DoNothing(void*) { }
++};
++
+ rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) {
+- struct Wrapper : public rocksdb_slicetransform_t {
+- const SliceTransform* rep_;
+- ~Wrapper() { delete rep_; }
+- const char* Name() const override { return rep_->Name(); }
+- Slice Transform(const Slice& src) const override {
+- return rep_->Transform(src);
+- }
+- bool InDomain(const Slice& src) const override {
+- return rep_->InDomain(src);
+- }
+- bool InRange(const Slice& src) const override { return rep_->InRange(src); }
+- static void DoNothing(void*) { }
+- };
+ Wrapper* wrapper = new Wrapper;
+ wrapper->rep_ = rocksdb::NewFixedPrefixTransform(prefixLen);
+ wrapper->state_ = nullptr;
+@@ -3131,19 +3121,6 @@ rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t pref
+ }
+
+ rocksdb_slicetransform_t* rocksdb_slicetransform_create_noop() {
+- struct Wrapper : public rocksdb_slicetransform_t {
+- const SliceTransform* rep_;
+- ~Wrapper() { delete rep_; }
+- const char* Name() const override { return rep_->Name(); }
+- Slice Transform(const Slice& src) const override {
+- return rep_->Transform(src);
+- }
+- bool InDomain(const Slice& src) const override {
+- return rep_->InDomain(src);
+- }
+- bool InRange(const Slice& src) const override { return rep_->InRange(src); }
+- static void DoNothing(void*) { }
+- };
+ Wrapper* wrapper = new Wrapper;
+ wrapper->rep_ = rocksdb::NewNoopTransform();
+ wrapper->state_ = nullptr;
+diff --git a/memtable/inlineskiplist.h b/memtable/inlineskiplist.h
+index 702a7336d..eadda1dc1 100644
+--- a/memtable/inlineskiplist.h
++++ b/memtable/inlineskiplist.h
+@@ -280,7 +280,7 @@ struct InlineSkipList<Comparator>::Node {
+ // next_[0]. This is used for passing data from AllocateKey to Insert.
+ void StashHeight(const int height) {
+ assert(sizeof(int) <= sizeof(next_[0]));
+- memcpy(&next_[0], &height, sizeof(int));
++ memcpy(static_cast<void*>(&next_[0]), &height, sizeof(int));
+ }
+
+ // Retrieves the value passed to StashHeight. Undefined after a call
+@@ -300,30 +300,30 @@ struct InlineSkipList<Comparator>::Node {
+ assert(n >= 0);
+ // Use an 'acquire load' so that we observe a fully initialized
+ // version of the returned Node.
+- return (next_[-n].load(std::memory_order_acquire));
++ return ((&next_[0] - n)->load(std::memory_order_acquire));
+ }
+
+ void SetNext(int n, Node* x) {
+ assert(n >= 0);
+ // Use a 'release store' so that anybody who reads through this
+ // pointer observes a fully initialized version of the inserted node.
+- next_[-n].store(x, std::memory_order_release);
++ (&next_[0] - n)->store(x, std::memory_order_release);
+ }
+
+ bool CASNext(int n, Node* expected, Node* x) {
+ assert(n >= 0);
+- return next_[-n].compare_exchange_strong(expected, x);
++ return (&next_[0] - n)->compare_exchange_strong(expected, x);
+ }
+
+ // No-barrier variants that can be safely used in a few locations.
+ Node* NoBarrier_Next(int n) {
+ assert(n >= 0);
+- return next_[-n].load(std::memory_order_relaxed);
++ return (&next_[0] - n)->load(std::memory_order_relaxed);
+ }
+
+ void NoBarrier_SetNext(int n, Node* x) {
+ assert(n >= 0);
+- next_[-n].store(x, std::memory_order_relaxed);
++ (&next_[0] - n)->store(x, std::memory_order_relaxed);
+ }
+
+ // Insert node after prev on specific level.
+--
+2.17.0
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
index 1e6cbae..594d1a9 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
@@ -6,11 +6,13 @@
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
-SRCREV = "8969445642039566214d650cc6614849e7dd5e17"
-SRCBRANCH = "5.12.fb"
-PV = "5.12.2"
+SRCREV = "c60df9d9e7629fe208a9b848293a5599f83d5e77"
+SRCBRANCH = "5.13.fb"
+PV = "5.13.1"
-SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH}"
+SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH} \
+ file://0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch \
+ "
S = "${WORKDIR}/git"
@@ -28,5 +30,3 @@
-DWITH_TESTS=OFF \
-DWITH_TOOLS=OFF \
"
-
-FILES_${PN}-dev += "${libdir}/cmake"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch
deleted file mode 100644
index 680d21f..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch
+++ /dev/null
@@ -1,351 +0,0 @@
-From bbeb72f11c64f190b23abbed5f44311bd021bdc9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 15 Sep 2017 15:46:38 -0700
-Subject: [PATCH 1/2] add base64 implementation
-
-musl needs it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- system/core/adb/adb_auth_client.c | 2 +-
- system/core/adb/base64.c | 315 ++++++++++++++++++++++++++++++++++++++
- 2 files changed, 316 insertions(+), 1 deletion(-)
- create mode 100644 system/core/adb/base64.c
-
-diff --git a/system/core/adb/adb_auth_client.c b/system/core/adb/adb_auth_client.c
-index 55e9dca..104b413 100644
---- a/system/core/adb/adb_auth_client.c
-+++ b/system/core/adb/adb_auth_client.c
-@@ -75,7 +75,7 @@ static void read_keys(const char *file, struct listnode *list)
- if (sep)
- *sep = '\0';
-
-- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
-+ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
- if (ret != sizeof(key->key)) {
- D("%s: Invalid base64 data ret=%d\n", file, ret);
- free(key);
-diff --git a/system/core/adb/base64.c b/system/core/adb/base64.c
-new file mode 100644
-index 0000000..95da284
---- /dev/null
-+++ b/system/core/adb/base64.c
-@@ -0,0 +1,315 @@
-+/*
-+ * Copyright (c) 1996-1999 by Internet Software Consortium.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
-+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
-+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ */
-+
-+/*
-+ * Portions Copyright (c) 1995 by International Business Machines, Inc.
-+ *
-+ * International Business Machines, Inc. (hereinafter called IBM) grants
-+ * permission under its copyrights to use, copy, modify, and distribute this
-+ * Software with or without fee, provided that the above copyright notice and
-+ * all paragraphs of this notice appear in all copies, and that the name of IBM
-+ * not be used in connection with the marketing of any product incorporating
-+ * the Software or modifications thereof, without specific, written prior
-+ * permission.
-+ *
-+ * To the extent it has a right to do so, IBM grants an immunity from suit
-+ * under its patents, if any, for the use, sale or manufacture of products to
-+ * the extent that such products are used for performing Domain Name System
-+ * dynamic updates in TCP/IP networks by means of the Software. No immunity is
-+ * granted for any product per se or for any other function of any product.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
-+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-+ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
-+ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
-+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
-+ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
-+ */
-+
-+#if !defined(LINT) && !defined(CODECENTER)
-+static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $";
-+#endif /* not lint */
-+
-+#include <sys/types.h>
-+#include <sys/param.h>
-+#include <sys/socket.h>
-+
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
-+#include <arpa/nameser.h>
-+
-+#include <ctype.h>
-+#include <resolv.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <stdint.h>
-+#include <string.h>
-+
-+#define Assert(Cond) if (!(Cond)) abort()
-+
-+static const char Base64[] =
-+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-+static const char Pad64 = '=';
-+
-+/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
-+ The following encoding technique is taken from RFC 1521 by Borenstein
-+ and Freed. It is reproduced here in a slightly edited form for
-+ convenience.
-+
-+ A 65-character subset of US-ASCII is used, enabling 6 bits to be
-+ represented per printable character. (The extra 65th character, "=",
-+ is used to signify a special processing function.)
-+
-+ The encoding process represents 24-bit groups of input bits as output
-+ strings of 4 encoded characters. Proceeding from left to right, a
-+ 24-bit input group is formed by concatenating 3 8-bit input groups.
-+ These 24 bits are then treated as 4 concatenated 6-bit groups, each
-+ of which is translated into a single digit in the base64 alphabet.
-+
-+ Each 6-bit group is used as an index into an array of 64 printable
-+ characters. The character referenced by the index is placed in the
-+ output string.
-+
-+ Table 1: The Base64 Alphabet
-+
-+ Value Encoding Value Encoding Value Encoding Value Encoding
-+ 0 A 17 R 34 i 51 z
-+ 1 B 18 S 35 j 52 0
-+ 2 C 19 T 36 k 53 1
-+ 3 D 20 U 37 l 54 2
-+ 4 E 21 V 38 m 55 3
-+ 5 F 22 W 39 n 56 4
-+ 6 G 23 X 40 o 57 5
-+ 7 H 24 Y 41 p 58 6
-+ 8 I 25 Z 42 q 59 7
-+ 9 J 26 a 43 r 60 8
-+ 10 K 27 b 44 s 61 9
-+ 11 L 28 c 45 t 62 +
-+ 12 M 29 d 46 u 63 /
-+ 13 N 30 e 47 v
-+ 14 O 31 f 48 w (pad) =
-+ 15 P 32 g 49 x
-+ 16 Q 33 h 50 y
-+
-+ Special processing is performed if fewer than 24 bits are available
-+ at the end of the data being encoded. A full encoding quantum is
-+ always completed at the end of a quantity. When fewer than 24 input
-+ bits are available in an input group, zero bits are added (on the
-+ right) to form an integral number of 6-bit groups. Padding at the
-+ end of the data is performed using the '=' character.
-+
-+ Since all base64 input is an integral number of octets, only the
-+ -------------------------------------------------
-+ following cases can arise:
-+
-+ (1) the final quantum of encoding input is an integral
-+ multiple of 24 bits; here, the final unit of encoded
-+ output will be an integral multiple of 4 characters
-+ with no "=" padding,
-+ (2) the final quantum of encoding input is exactly 8 bits;
-+ here, the final unit of encoded output will be two
-+ characters followed by two "=" padding characters, or
-+ (3) the final quantum of encoding input is exactly 16 bits;
-+ here, the final unit of encoded output will be three
-+ characters followed by one "=" padding character.
-+ */
-+
-+int
-+b64_ntop(const uint8_t* src, size_t srclength, char* target, size_t targsize)
-+{
-+ size_t datalength = 0;
-+ uint8_t input[3];
-+ uint8_t output[4];
-+ size_t i;
-+
-+ while (2 < srclength) {
-+ input[0] = *src++;
-+ input[1] = *src++;
-+ input[2] = *src++;
-+ srclength -= 3;
-+
-+ output[0] = input[0] >> 2;
-+ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-+ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-+ output[3] = input[2] & 0x3f;
-+ Assert(output[0] < 64);
-+ Assert(output[1] < 64);
-+ Assert(output[2] < 64);
-+ Assert(output[3] < 64);
-+
-+ if (datalength + 4 > targsize)
-+ return (-1);
-+ target[datalength++] = Base64[output[0]];
-+ target[datalength++] = Base64[output[1]];
-+ target[datalength++] = Base64[output[2]];
-+ target[datalength++] = Base64[output[3]];
-+ }
-+
-+ /* Now we worry about padding. */
-+ if (0 != srclength) {
-+ /* Get what's left. */
-+ input[0] = input[1] = input[2] = '\0';
-+ for (i = 0; i < srclength; i++)
-+ input[i] = *src++;
-+
-+ output[0] = input[0] >> 2;
-+ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-+ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-+ Assert(output[0] < 64);
-+ Assert(output[1] < 64);
-+ Assert(output[2] < 64);
-+
-+ if (datalength + 4 > targsize)
-+ return (-1);
-+ target[datalength++] = Base64[output[0]];
-+ target[datalength++] = Base64[output[1]];
-+ if (srclength == 1)
-+ target[datalength++] = Pad64;
-+ else
-+ target[datalength++] = Base64[output[2]];
-+ target[datalength++] = Pad64;
-+ }
-+ if (datalength >= targsize)
-+ return (-1);
-+ target[datalength] = '\0'; /* Returned value doesn't count \0. */
-+ return (datalength);
-+}
-+
-+/* skips all whitespace anywhere.
-+ converts characters, four at a time, starting at (or after)
-+ src from base - 64 numbers into three 8 bit bytes in the target area.
-+ it returns the number of data bytes stored at the target, or -1 on error.
-+ */
-+
-+int b64_pton(const char* src, uint8_t* target, size_t targsize)
-+{
-+ int tarindex, state, ch;
-+ char *pos;
-+
-+ state = 0;
-+ tarindex = 0;
-+
-+ while ((ch = *src++) != '\0') {
-+ if (isspace(ch)) /* Skip whitespace anywhere. */
-+ continue;
-+
-+ if (ch == Pad64)
-+ break;
-+
-+ pos = strchr(Base64, ch);
-+ if (pos == 0) /* A non-base64 character. */
-+ return (-1);
-+
-+ switch (state) {
-+ case 0:
-+ if (target) {
-+ if ((size_t)tarindex >= targsize)
-+ return (-1);
-+ target[tarindex] = (pos - Base64) << 2;
-+ }
-+ state = 1;
-+ break;
-+ case 1:
-+ if (target) {
-+ if ((size_t)tarindex + 1 >= targsize)
-+ return (-1);
-+ target[tarindex] |= (pos - Base64) >> 4;
-+ target[tarindex+1] = ((pos - Base64) & 0x0f)
-+ << 4 ;
-+ }
-+ tarindex++;
-+ state = 2;
-+ break;
-+ case 2:
-+ if (target) {
-+ if ((size_t)tarindex + 1 >= targsize)
-+ return (-1);
-+ target[tarindex] |= (pos - Base64) >> 2;
-+ target[tarindex+1] = ((pos - Base64) & 0x03)
-+ << 6;
-+ }
-+ tarindex++;
-+ state = 3;
-+ break;
-+ case 3:
-+ if (target) {
-+ if ((size_t)tarindex >= targsize)
-+ return (-1);
-+ target[tarindex] |= (pos - Base64);
-+ }
-+ tarindex++;
-+ state = 0;
-+ break;
-+ default:
-+ abort();
-+ }
-+ }
-+
-+ /*
-+ * We are done decoding Base-64 chars. Let's see if we ended
-+ * on a byte boundary, and/or with erroneous trailing characters.
-+ */
-+
-+ if (ch == Pad64) { /* We got a pad char. */
-+ ch = *src++; /* Skip it, get next. */
-+ switch (state) {
-+ case 0: /* Invalid = in first position */
-+ case 1: /* Invalid = in second position */
-+ return (-1);
-+
-+ case 2: /* Valid, means one byte of info */
-+ /* Skip any number of spaces. */
-+ for ((void)NULL; ch != '\0'; ch = *src++)
-+ if (!isspace(ch))
-+ break;
-+ /* Make sure there is another trailing = sign. */
-+ if (ch != Pad64)
-+ return (-1);
-+ ch = *src++; /* Skip the = */
-+ /* Fall through to "single trailing =" case. */
-+ /* FALLTHROUGH */
-+
-+ case 3: /* Valid, means two bytes of info */
-+ /*
-+ * We know this char is an =. Is there anything but
-+ * whitespace after it?
-+ */
-+ for ((void)NULL; ch != '\0'; ch = *src++)
-+ if (!isspace(ch))
-+ return (-1);
-+
-+ /*
-+ * Now make sure for cases 2 and 3 that the "extra"
-+ * bits that slopped past the last full byte were
-+ * zeros. If we don't check them, they become a
-+ * subliminal channel.
-+ */
-+ if (target && target[tarindex] != 0)
-+ return (-1);
-+ }
-+ } else {
-+ /*
-+ * We ended by seeing the end of the string. Make sure we
-+ * have no partial bytes lying around.
-+ */
-+ if (state != 0)
-+ return (-1);
-+ }
-+
-+ return (tarindex);
-+}
-+
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch
deleted file mode 100644
index c7aebb6..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From f8653ed0ede4aa781ab758fcd44fdc05ffbe0b0a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 15 Sep 2017 15:50:57 -0700
-Subject: [PATCH 2/2] adb: Musl fixes
-
-__nonnull is gcc specific
-include sys/types.h for size_t
-Do not redefine close() and lseek()
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- system/core/adb/adb.h | 2 ++
- system/core/adb/disable_verity_service.c | 13 ++++++++-----
- system/core/adb/framebuffer_service.c | 7 ++++---
- system/core/adb/sysdeps.h | 12 ++++++------
- 4 files changed, 20 insertions(+), 14 deletions(-)
-
-diff --git a/system/core/adb/adb.h b/system/core/adb/adb.h
-index 44e5981..bcdc49f 100644
---- a/system/core/adb/adb.h
-+++ b/system/core/adb/adb.h
-@@ -18,7 +18,9 @@
- #define __ADB_H
-
- #include <limits.h>
-+#include <sys/types.h>
-
-+#include "fdevent.h"
- #include "adb_trace.h"
- #include "transport.h" /* readx(), writex() */
-
-diff --git a/system/core/adb/disable_verity_service.c b/system/core/adb/disable_verity_service.c
-index ed3da52..29fa3d6 100644
---- a/system/core/adb/disable_verity_service.c
-+++ b/system/core/adb/disable_verity_service.c
-@@ -14,25 +14,28 @@
- * limitations under the License.
- */
-
--#include "sysdeps.h"
-
- #define TRACE_TAG TRACE_ADB
- #include "adb.h"
-+#include "sysdeps.h"
-+#include "cutils/properties.h"
-+#include "ext4_sb.h"
-+#include <fs_mgr.h>
-
- #include <stdio.h>
- #include <stdarg.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <inttypes.h>
-+#include <unistd.h>
-+#include <errno.h>
-+#include <stdbool.h>
-
--#include "cutils/properties.h"
--#include "ext4_sb.h"
--#include <fs_mgr.h>
-
- #define FSTAB_PREFIX "/fstab."
- struct fstab *fstab;
-
--__attribute__((__format__(printf, 2, 3))) __nonnull((2))
-+__attribute__((__format__(printf, 2, 3))) __attribute__((nonnull((2))))
- static void write_console(int fd, const char* format, ...)
- {
- char buffer[256];
-diff --git a/system/core/adb/framebuffer_service.c b/system/core/adb/framebuffer_service.c
-index 8cbe840..8f0ccfb 100644
---- a/system/core/adb/framebuffer_service.c
-+++ b/system/core/adb/framebuffer_service.c
-@@ -14,6 +14,10 @@
- * limitations under the License.
- */
-
-+#include "fdevent.h"
-+#include "adb.h"
-+#include "sysdeps.h"
-+
- #include <stdlib.h>
- #include <stdio.h>
- #include <unistd.h>
-@@ -23,9 +27,6 @@
- #include <sys/types.h>
- #include <sys/wait.h>
-
--#include "fdevent.h"
--#include "adb.h"
--
- #include <linux/fb.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
-diff --git a/system/core/adb/sysdeps.h b/system/core/adb/sysdeps.h
-index cc1f839..ea39ac3 100644
---- a/system/core/adb/sysdeps.h
-+++ b/system/core/adb/sysdeps.h
-@@ -123,8 +123,8 @@ static __inline__ int unix_close(int fd)
- {
- return close(fd);
- }
--#undef close
--#define close ____xxx_close
-+//#undef close
-+//#define close ____xxx_close
-
- static __inline__ int unix_read(int fd, void* buf, size_t len)
- {
-@@ -369,8 +369,8 @@ static __inline__ int adb_close(int fd)
- {
- return close(fd);
- }
--#undef close
--#define close ____xxx_close
-+//#undef close
-+//#define close ____xxx_close
-
-
- static __inline__ int adb_read(int fd, void* buf, size_t len)
-@@ -392,8 +392,8 @@ static __inline__ int adb_lseek(int fd, int pos, int where)
- {
- return lseek(fd, pos, where);
- }
--#undef lseek
--#define lseek ___xxx_lseek
-+//#undef lseek
-+//#define lseek ___xxx_lseek
-
- static __inline__ int adb_unlink(const char* path)
- {
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service
index 88ed687..ddf8d7f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service
@@ -1,12 +1,13 @@
[Unit]
Description=Android Debug Bridge
+ConditionPathExists=/var/usb-debugging-enabled
+Before=android-system.service
[Service]
Type=simple
Restart=on-failure
-ExecStartPre=/usr/bin/android-gadget-setup adb
+ExecStartPre=-/usr/bin/android-gadget-setup adb
ExecStart=/usr/bin/adbd
-StandardOutput=null
[Install]
WantedBy=basic.target
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch
new file mode 100644
index 0000000..7d20c50
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch
@@ -0,0 +1,44 @@
+From 7b7200727413ca4a9bb132221c543ec033dffafa Mon Sep 17 00:00:00 2001
+From: Sergio Schvezov <sergio.schvezov@canonical.com>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] adb: remove selinux extensions
+
+* drop useless includes of Android SELINUX extensions
+* avoids having to clone another module
+* this should be sent upstream
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ adb/file_sync_service.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/adb/file_sync_service.c b/adb/file_sync_service.c
+index 7933858516..3cbd0cd863 100644
+--- a/adb/file_sync_service.c
++++ b/adb/file_sync_service.c
+@@ -26,7 +26,6 @@
+
+ #include <errno.h>
+ #include <private/android_filesystem_config.h>
+-#include <selinux/android.h>
+ #include "sysdeps.h"
+
+ #define TRACE_TAG TRACE_SYNC
+@@ -73,7 +72,6 @@ static int mkdirs(char *name)
+ *x = '/';
+ return ret;
+ }
+- selinux_android_restorecon(name, 0);
+ }
+ *x++ = '/';
+ }
+@@ -251,7 +249,6 @@ static int handle_send_file(int s, char *path, uid_t uid,
+ if(fd >= 0) {
+ struct utimbuf u;
+ adb_close(fd);
+- selinux_android_restorecon(path, 0);
+ u.actime = timestamp;
+ u.modtime = timestamp;
+ utime(path, &u);
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch
new file mode 100644
index 0000000..3627110
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch
@@ -0,0 +1,70 @@
+From d855f042ca09a358cebe2d3c1d29d512afd7ebb8 Mon Sep 17 00:00:00 2001
+From: Hilko Bengen <bengen@debian.org>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] adb: Use local sockets where appropriate
+
+Upstream-Status: Inappropriate
+---
+ adb/adb.c | 6 +++++-
+ adb/adb_client.c | 5 +++--
+ adb/transport_local.c | 3 ++-
+ 3 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/adb/adb.c b/adb/adb.c
+index 10a1e0da26..027edd9359 100644
+--- a/adb/adb.c
++++ b/adb/adb.c
+@@ -1230,7 +1230,11 @@ int launch_server(int server_port)
+ */
+ void build_local_name(char* target_str, size_t target_size, int server_port)
+ {
+- snprintf(target_str, target_size, "tcp:%d", server_port);
++ if (gListenAll > 0) {
++ snprintf(target_str, target_size, "tcp:%d", server_port);
++ } else {
++ snprintf(target_str, target_size, "local:%d", server_port);
++ }
+ }
+
+ #if !ADB_HOST
+diff --git a/adb/adb_client.c b/adb/adb_client.c
+index eb1720d22c..a383faefe3 100644
+--- a/adb/adb_client.c
++++ b/adb/adb_client.c
+@@ -185,12 +185,12 @@ int _adb_connect(const char *service)
+ strcpy(__adb_error, "service name too long");
+ return -1;
+ }
+- snprintf(tmp, sizeof tmp, "%04x", len);
++ snprintf(tmp, sizeof tmp, "%d", __adb_server_port);
+
+ if (__adb_server_name)
+ fd = socket_network_client(__adb_server_name, __adb_server_port, SOCK_STREAM);
+ else
+- fd = socket_loopback_client(__adb_server_port, SOCK_STREAM);
++ fd = socket_local_client(tmp, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
+
+ if(fd < 0) {
+ strcpy(__adb_error, "cannot connect to daemon");
+@@ -201,6 +201,7 @@ int _adb_connect(const char *service)
+ return -1;
+ }
+
++ snprintf(tmp, sizeof tmp, "%04x", len);
+ if(writex(fd, tmp, 4) || writex(fd, service, len)) {
+ strcpy(__adb_error, "write failure during connection");
+ adb_close(fd);
+diff --git a/adb/transport_local.c b/adb/transport_local.c
+index 948cc15812..71582a8c88 100644
+--- a/adb/transport_local.c
++++ b/adb/transport_local.c
+@@ -121,7 +121,8 @@ int local_connect_arbitrary_ports(int console_port, int adb_port)
+ }
+ #endif
+ if (fd < 0) {
+- fd = socket_loopback_client(adb_port, SOCK_STREAM);
++ snprintf(buf, sizeof buf, "%d", adb_port);
++ fd = socket_local_client(buf, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
+ }
+
+ if (fd >= 0) {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch
new file mode 100644
index 0000000..cf1d9cb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch
@@ -0,0 +1,29 @@
+From 4421c2e19946dcd651fd8ac022b96627fc526149 Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fabo@debian.org>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] adb: define shell command
+
+we intend to run on Linux system so the shell is always /bin/sh,
+for the host or the target.
+
+Upstream-Status: Inappropriate
+---
+ adb/services.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/adb/services.c b/adb/services.c
+index 21b08dc201..d44b0c5068 100644
+--- a/adb/services.c
++++ b/adb/services.c
+@@ -299,11 +299,7 @@ static int create_subproc_raw(const char *cmd, const char *arg0, const char *arg
+ }
+ #endif /* !ABD_HOST */
+
+-#if ADB_HOST
+ #define SHELL_COMMAND "/bin/sh"
+-#else
+-#define SHELL_COMMAND "/system/bin/sh"
+-#endif
+
+ #if !ADB_HOST
+ static void subproc_waiter_service(int fd, void *cookie)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch
new file mode 100644
index 0000000..79e9d4d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch
@@ -0,0 +1,45 @@
+From 548b8ca62c64a16305929e2eaf3d546d48de9c25 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Tue, 21 Feb 2017 19:46:24 +0100
+Subject: [PATCH] adb: Fix build on big endian systems
+
+The usb_linux_client.c file defines cpu_to_le16/32 by using the C
+library htole16/32 function calls. However, cpu_to_le16/32 are used
+when initializing structures, i.e in a context where a function call
+is not allowed.
+
+It works fine on little endian systems because htole16/32 are defined
+by the C library as no-ops. But on big-endian systems, they are
+actually doing something, which might involve calling a function,
+causing build failures.
+
+To solve this, we simply open-code cpu_to_le16/32 in a way that allows
+them to be used when initializing structures.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ adb/usb_linux_client.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/adb/usb_linux_client.c b/adb/usb_linux_client.c
+index 8426e0ea14..6e8b5bbbd2 100644
+--- a/adb/usb_linux_client.c
++++ b/adb/usb_linux_client.c
+@@ -34,8 +34,15 @@
+ #define MAX_PACKET_SIZE_FS 64
+ #define MAX_PACKET_SIZE_HS 512
+
+-#define cpu_to_le16(x) htole16(x)
+-#define cpu_to_le32(x) htole32(x)
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++# define cpu_to_le16(x) (x)
++# define cpu_to_le32(x) (x)
++#else
++# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
++# define cpu_to_le32(x) \
++ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
++ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
++#endif
+
+ struct usb_handle
+ {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch
new file mode 100644
index 0000000..fcd4ae2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch
@@ -0,0 +1,348 @@
+From 753bcb5971401b82fb2e6197d31c9e386f6d0392 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 15:46:38 -0700
+Subject: [PATCH] adb: add base64 implementation
+
+musl needs it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ adb/adb_auth_client.c | 2 +-
+ adb/base64.c | 315 ++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 316 insertions(+), 1 deletion(-)
+ create mode 100644 adb/base64.c
+
+diff --git a/adb/adb_auth_client.c b/adb/adb_auth_client.c
+index 55e9dcad19..104b413b8b 100644
+--- a/adb/adb_auth_client.c
++++ b/adb/adb_auth_client.c
+@@ -75,7 +75,7 @@ static void read_keys(const char *file, struct listnode *list)
+ if (sep)
+ *sep = '\0';
+
+- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
++ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
+ if (ret != sizeof(key->key)) {
+ D("%s: Invalid base64 data ret=%d\n", file, ret);
+ free(key);
+diff --git a/adb/base64.c b/adb/base64.c
+new file mode 100644
+index 0000000000..95da284d0d
+--- /dev/null
++++ b/adb/base64.c
+@@ -0,0 +1,315 @@
++/*
++ * Copyright (c) 1996-1999 by Internet Software Consortium.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ */
++
++/*
++ * Portions Copyright (c) 1995 by International Business Machines, Inc.
++ *
++ * International Business Machines, Inc. (hereinafter called IBM) grants
++ * permission under its copyrights to use, copy, modify, and distribute this
++ * Software with or without fee, provided that the above copyright notice and
++ * all paragraphs of this notice appear in all copies, and that the name of IBM
++ * not be used in connection with the marketing of any product incorporating
++ * the Software or modifications thereof, without specific, written prior
++ * permission.
++ *
++ * To the extent it has a right to do so, IBM grants an immunity from suit
++ * under its patents, if any, for the use, sale or manufacture of products to
++ * the extent that such products are used for performing Domain Name System
++ * dynamic updates in TCP/IP networks by means of the Software. No immunity is
++ * granted for any product per se or for any other function of any product.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
++ */
++
++#if !defined(LINT) && !defined(CODECENTER)
++static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $";
++#endif /* not lint */
++
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/socket.h>
++
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <arpa/nameser.h>
++
++#include <ctype.h>
++#include <resolv.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <string.h>
++
++#define Assert(Cond) if (!(Cond)) abort()
++
++static const char Base64[] =
++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++static const char Pad64 = '=';
++
++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
++ The following encoding technique is taken from RFC 1521 by Borenstein
++ and Freed. It is reproduced here in a slightly edited form for
++ convenience.
++
++ A 65-character subset of US-ASCII is used, enabling 6 bits to be
++ represented per printable character. (The extra 65th character, "=",
++ is used to signify a special processing function.)
++
++ The encoding process represents 24-bit groups of input bits as output
++ strings of 4 encoded characters. Proceeding from left to right, a
++ 24-bit input group is formed by concatenating 3 8-bit input groups.
++ These 24 bits are then treated as 4 concatenated 6-bit groups, each
++ of which is translated into a single digit in the base64 alphabet.
++
++ Each 6-bit group is used as an index into an array of 64 printable
++ characters. The character referenced by the index is placed in the
++ output string.
++
++ Table 1: The Base64 Alphabet
++
++ Value Encoding Value Encoding Value Encoding Value Encoding
++ 0 A 17 R 34 i 51 z
++ 1 B 18 S 35 j 52 0
++ 2 C 19 T 36 k 53 1
++ 3 D 20 U 37 l 54 2
++ 4 E 21 V 38 m 55 3
++ 5 F 22 W 39 n 56 4
++ 6 G 23 X 40 o 57 5
++ 7 H 24 Y 41 p 58 6
++ 8 I 25 Z 42 q 59 7
++ 9 J 26 a 43 r 60 8
++ 10 K 27 b 44 s 61 9
++ 11 L 28 c 45 t 62 +
++ 12 M 29 d 46 u 63 /
++ 13 N 30 e 47 v
++ 14 O 31 f 48 w (pad) =
++ 15 P 32 g 49 x
++ 16 Q 33 h 50 y
++
++ Special processing is performed if fewer than 24 bits are available
++ at the end of the data being encoded. A full encoding quantum is
++ always completed at the end of a quantity. When fewer than 24 input
++ bits are available in an input group, zero bits are added (on the
++ right) to form an integral number of 6-bit groups. Padding at the
++ end of the data is performed using the '=' character.
++
++ Since all base64 input is an integral number of octets, only the
++ -------------------------------------------------
++ following cases can arise:
++
++ (1) the final quantum of encoding input is an integral
++ multiple of 24 bits; here, the final unit of encoded
++ output will be an integral multiple of 4 characters
++ with no "=" padding,
++ (2) the final quantum of encoding input is exactly 8 bits;
++ here, the final unit of encoded output will be two
++ characters followed by two "=" padding characters, or
++ (3) the final quantum of encoding input is exactly 16 bits;
++ here, the final unit of encoded output will be three
++ characters followed by one "=" padding character.
++ */
++
++int
++b64_ntop(const uint8_t* src, size_t srclength, char* target, size_t targsize)
++{
++ size_t datalength = 0;
++ uint8_t input[3];
++ uint8_t output[4];
++ size_t i;
++
++ while (2 < srclength) {
++ input[0] = *src++;
++ input[1] = *src++;
++ input[2] = *src++;
++ srclength -= 3;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++ output[3] = input[2] & 0x3f;
++ Assert(output[0] < 64);
++ Assert(output[1] < 64);
++ Assert(output[2] < 64);
++ Assert(output[3] < 64);
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Base64[output[3]];
++ }
++
++ /* Now we worry about padding. */
++ if (0 != srclength) {
++ /* Get what's left. */
++ input[0] = input[1] = input[2] = '\0';
++ for (i = 0; i < srclength; i++)
++ input[i] = *src++;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++ Assert(output[0] < 64);
++ Assert(output[1] < 64);
++ Assert(output[2] < 64);
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ if (srclength == 1)
++ target[datalength++] = Pad64;
++ else
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Pad64;
++ }
++ if (datalength >= targsize)
++ return (-1);
++ target[datalength] = '\0'; /* Returned value doesn't count \0. */
++ return (datalength);
++}
++
++/* skips all whitespace anywhere.
++ converts characters, four at a time, starting at (or after)
++ src from base - 64 numbers into three 8 bit bytes in the target area.
++ it returns the number of data bytes stored at the target, or -1 on error.
++ */
++
++int b64_pton(const char* src, uint8_t* target, size_t targsize)
++{
++ int tarindex, state, ch;
++ char *pos;
++
++ state = 0;
++ tarindex = 0;
++
++ while ((ch = *src++) != '\0') {
++ if (isspace(ch)) /* Skip whitespace anywhere. */
++ continue;
++
++ if (ch == Pad64)
++ break;
++
++ pos = strchr(Base64, ch);
++ if (pos == 0) /* A non-base64 character. */
++ return (-1);
++
++ switch (state) {
++ case 0:
++ if (target) {
++ if ((size_t)tarindex >= targsize)
++ return (-1);
++ target[tarindex] = (pos - Base64) << 2;
++ }
++ state = 1;
++ break;
++ case 1:
++ if (target) {
++ if ((size_t)tarindex + 1 >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 4;
++ target[tarindex+1] = ((pos - Base64) & 0x0f)
++ << 4 ;
++ }
++ tarindex++;
++ state = 2;
++ break;
++ case 2:
++ if (target) {
++ if ((size_t)tarindex + 1 >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 2;
++ target[tarindex+1] = ((pos - Base64) & 0x03)
++ << 6;
++ }
++ tarindex++;
++ state = 3;
++ break;
++ case 3:
++ if (target) {
++ if ((size_t)tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64);
++ }
++ tarindex++;
++ state = 0;
++ break;
++ default:
++ abort();
++ }
++ }
++
++ /*
++ * We are done decoding Base-64 chars. Let's see if we ended
++ * on a byte boundary, and/or with erroneous trailing characters.
++ */
++
++ if (ch == Pad64) { /* We got a pad char. */
++ ch = *src++; /* Skip it, get next. */
++ switch (state) {
++ case 0: /* Invalid = in first position */
++ case 1: /* Invalid = in second position */
++ return (-1);
++
++ case 2: /* Valid, means one byte of info */
++ /* Skip any number of spaces. */
++ for ((void)NULL; ch != '\0'; ch = *src++)
++ if (!isspace(ch))
++ break;
++ /* Make sure there is another trailing = sign. */
++ if (ch != Pad64)
++ return (-1);
++ ch = *src++; /* Skip the = */
++ /* Fall through to "single trailing =" case. */
++ /* FALLTHROUGH */
++
++ case 3: /* Valid, means two bytes of info */
++ /*
++ * We know this char is an =. Is there anything but
++ * whitespace after it?
++ */
++ for ((void)NULL; ch != '\0'; ch = *src++)
++ if (!isspace(ch))
++ return (-1);
++
++ /*
++ * Now make sure for cases 2 and 3 that the "extra"
++ * bits that slopped past the last full byte were
++ * zeros. If we don't check them, they become a
++ * subliminal channel.
++ */
++ if (target && target[tarindex] != 0)
++ return (-1);
++ }
++ } else {
++ /*
++ * We ended by seeing the end of the string. Make sure we
++ * have no partial bytes lying around.
++ */
++ if (state != 0)
++ return (-1);
++ }
++
++ return (tarindex);
++}
++
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch
new file mode 100644
index 0000000..b5d383f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch
@@ -0,0 +1,131 @@
+From 62d957a1271c88ec08d67984fbe31601f0bd41a9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 15:50:57 -0700
+Subject: [PATCH] adb: Musl fixes
+
+__nonnull is gcc specific
+include sys/types.h for size_t
+Do not redefine close() and lseek()
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ adb/adb.h | 2 ++
+ adb/disable_verity_service.c | 13 ++++++++-----
+ adb/framebuffer_service.c | 7 ++++---
+ adb/sysdeps.h | 12 ++++++------
+ 4 files changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/adb/adb.h b/adb/adb.h
+index 44e5981bdc..bcdc49f63c 100644
+--- a/adb/adb.h
++++ b/adb/adb.h
+@@ -18,7 +18,9 @@
+ #define __ADB_H
+
+ #include <limits.h>
++#include <sys/types.h>
+
++#include "fdevent.h"
+ #include "adb_trace.h"
+ #include "transport.h" /* readx(), writex() */
+
+diff --git a/adb/disable_verity_service.c b/adb/disable_verity_service.c
+index ed3da52108..29fa3d65a9 100644
+--- a/adb/disable_verity_service.c
++++ b/adb/disable_verity_service.c
+@@ -14,25 +14,28 @@
+ * limitations under the License.
+ */
+
+-#include "sysdeps.h"
+
+ #define TRACE_TAG TRACE_ADB
+ #include "adb.h"
++#include "sysdeps.h"
++#include "cutils/properties.h"
++#include "ext4_sb.h"
++#include <fs_mgr.h>
+
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <inttypes.h>
++#include <unistd.h>
++#include <errno.h>
++#include <stdbool.h>
+
+-#include "cutils/properties.h"
+-#include "ext4_sb.h"
+-#include <fs_mgr.h>
+
+ #define FSTAB_PREFIX "/fstab."
+ struct fstab *fstab;
+
+-__attribute__((__format__(printf, 2, 3))) __nonnull((2))
++__attribute__((__format__(printf, 2, 3))) __attribute__((nonnull((2))))
+ static void write_console(int fd, const char* format, ...)
+ {
+ char buffer[256];
+diff --git a/adb/framebuffer_service.c b/adb/framebuffer_service.c
+index 8cbe8403cc..8f0ccfb7aa 100644
+--- a/adb/framebuffer_service.c
++++ b/adb/framebuffer_service.c
+@@ -14,6 +14,10 @@
+ * limitations under the License.
+ */
+
++#include "fdevent.h"
++#include "adb.h"
++#include "sysdeps.h"
++
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -23,9 +27,6 @@
+ #include <sys/types.h>
+ #include <sys/wait.h>
+
+-#include "fdevent.h"
+-#include "adb.h"
+-
+ #include <linux/fb.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+diff --git a/adb/sysdeps.h b/adb/sysdeps.h
+index cc1f839e9f..ea39ac39cc 100644
+--- a/adb/sysdeps.h
++++ b/adb/sysdeps.h
+@@ -123,8 +123,8 @@ static __inline__ int unix_close(int fd)
+ {
+ return close(fd);
+ }
+-#undef close
+-#define close ____xxx_close
++//#undef close
++//#define close ____xxx_close
+
+ static __inline__ int unix_read(int fd, void* buf, size_t len)
+ {
+@@ -369,8 +369,8 @@ static __inline__ int adb_close(int fd)
+ {
+ return close(fd);
+ }
+-#undef close
+-#define close ____xxx_close
++//#undef close
++//#define close ____xxx_close
+
+
+ static __inline__ int adb_read(int fd, void* buf, size_t len)
+@@ -392,8 +392,8 @@ static __inline__ int adb_lseek(int fd, int pos, int where)
+ {
+ return lseek(fd, pos, where);
+ }
+-#undef lseek
+-#define lseek ___xxx_lseek
++//#undef lseek
++//#define lseek ___xxx_lseek
+
+ static __inline__ int adb_unlink(const char* path)
+ {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch
new file mode 100644
index 0000000..e02a956
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch
@@ -0,0 +1,24 @@
+From de393bba41c8feff932c77d6c30233945f380d42 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 11 Aug 2018 13:23:37 +0000
+Subject: [PATCH] adb: usb_linux.c: fix build with glibc-2.28
+
+* include sysmacros for major, minor
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ adb/usb_linux.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/adb/usb_linux.c b/adb/usb_linux.c
+index f16bdd0361..c8a7732441 100644
+--- a/adb/usb_linux.c
++++ b/adb/usb_linux.c
+@@ -22,6 +22,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
++#include <sys/sysmacros.h>
+ #include <dirent.h>
+ #include <fcntl.h>
+ #include <errno.h>
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch
new file mode 100644
index 0000000..7d223e0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch
@@ -0,0 +1,21 @@
+From 3a788e9168c9b9eac66c4fa479413f4a95c61be4 Mon Sep 17 00:00:00 2001
+From: Florent Revest <revestflo@gmail.com>
+Date: Mon, 30 Oct 2017 21:05:46 +0100
+Subject: [PATCH] adb: Allow adbd to be ran as root
+
+---
+ adb/adb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/adb/adb.c b/adb/adb.c
+index 027edd9359..e0f7ecde45 100644
+--- a/adb/adb.c
++++ b/adb/adb.c
+@@ -1271,6 +1271,7 @@ static int should_drop_privileges() {
+ int secure = 0;
+ char value[PROPERTY_VALUE_MAX];
+
++ return 0;
+ /* run adbd in secure mode if ro.secure is set and
+ ** we are not in the emulator
+ */
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
new file mode 100644
index 0000000..a4dc6e1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
@@ -0,0 +1,110 @@
+From dd195778a9930b7967b21a3b8eb390b70253dbad Mon Sep 17 00:00:00 2001
+From: David Ng <dave@codeaurora.org>
+Date: Fri, 27 Jul 2012 17:15:03 -0700
+Subject: [PATCH] mkbootimg: Add --dt parameter to specify DT image
+
+New optional --dt parameter to specify a kernel device
+tree image.
+
+Upstream-Status: Inappropriate
+---
+ mkbootimg/bootimg.h | 7 +++++--
+ mkbootimg/mkbootimg.c | 21 +++++++++++++++++++++
+ 2 files changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/mkbootimg/bootimg.h b/mkbootimg/bootimg.h
+index 9171d85a7b..308c537d6b 100644
+--- a/mkbootimg/bootimg.h
++++ b/mkbootimg/bootimg.h
+@@ -41,8 +41,8 @@ struct boot_img_hdr
+
+ unsigned tags_addr; /* physical addr for kernel tags */
+ unsigned page_size; /* flash page size we assume */
+- unsigned unused[2]; /* future expansion: should be 0 */
+-
++ unsigned dt_size; /* device tree in bytes */
++ unsigned unused; /* future expansion: should be 0 */
+ unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */
+
+ unsigned char cmdline[BOOT_ARGS_SIZE];
+@@ -64,10 +64,13 @@ struct boot_img_hdr
+ ** +-----------------+
+ ** | second stage | o pages
+ ** +-----------------+
++** | device tree | p pages
++** +-----------------+
+ **
+ ** n = (kernel_size + page_size - 1) / page_size
+ ** m = (ramdisk_size + page_size - 1) / page_size
+ ** o = (second_size + page_size - 1) / page_size
++** p = (dt_size + page_size - 1) / page_size
+ **
+ ** 0. all entities are page_size aligned in flash
+ ** 1. kernel and ramdisk are required (size != 0)
+diff --git a/mkbootimg/mkbootimg.c b/mkbootimg/mkbootimg.c
+index fc92b4dc30..658052cdf2 100644
+--- a/mkbootimg/mkbootimg.c
++++ b/mkbootimg/mkbootimg.c
+@@ -65,6 +65,7 @@ int usage(void)
+ " [ --board <boardname> ]\n"
+ " [ --base <address> ]\n"
+ " [ --pagesize <pagesize> ]\n"
++ " [ --dt <filename> ]\n"
+ " -o|--output <filename>\n"
+ );
+ return 1;
+@@ -105,6 +106,8 @@ int main(int argc, char **argv)
+ char *cmdline = "";
+ char *bootimg = 0;
+ char *board = "";
++ char *dt_fn = 0;
++ void *dt_data = 0;
+ unsigned pagesize = 2048;
+ int fd;
+ SHA_CTX ctx;
+@@ -158,6 +161,8 @@ int main(int argc, char **argv)
+ fprintf(stderr,"error: unsupported page size %d\n", pagesize);
+ return -1;
+ }
++ } else if(!strcmp(arg, "--dt")) {
++ dt_fn = val;
+ } else {
+ return usage();
+ }
+@@ -232,6 +237,14 @@ int main(int argc, char **argv)
+ }
+ }
+
++ if(dt_fn) {
++ dt_data = load_file(dt_fn, &hdr.dt_size);
++ if (dt_data == 0) {
++ fprintf(stderr,"error: could not load device tree image '%s'\n", dt_fn);
++ return 1;
++ }
++ }
++
+ /* put a hash of the contents in the header so boot images can be
+ * differentiated based on their first 2k.
+ */
+@@ -242,6 +255,10 @@ int main(int argc, char **argv)
+ SHA_update(&ctx, &hdr.ramdisk_size, sizeof(hdr.ramdisk_size));
+ SHA_update(&ctx, second_data, hdr.second_size);
+ SHA_update(&ctx, &hdr.second_size, sizeof(hdr.second_size));
++ if(dt_data) {
++ SHA_update(&ctx, dt_data, hdr.dt_size);
++ SHA_update(&ctx, &hdr.dt_size, sizeof(hdr.dt_size));
++ }
+ sha = SHA_final(&ctx);
+ memcpy(hdr.id, sha,
+ SHA_DIGEST_SIZE > sizeof(hdr.id) ? sizeof(hdr.id) : SHA_DIGEST_SIZE);
+@@ -266,6 +283,10 @@ int main(int argc, char **argv)
+ if(write_padding(fd, pagesize, hdr.second_size)) goto fail;
+ }
+
++ if(dt_data) {
++ if(write(fd, dt_data, hdr.dt_size) != (ssize_t) hdr.dt_size) goto fail;
++ if(write_padding(fd, pagesize, hdr.dt_size)) goto fail;
++ }
+ return 0;
+
+ fail:
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch
new file mode 100644
index 0000000..2c607ff
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch
@@ -0,0 +1,23 @@
+From ef743c9c3c7452ae904a5c343ee2b759ab3a87cb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <loic.minier@ubuntu.com>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] Use linux/capability.h on linux systems too
+
+Upstream-Status: Inappropriate
+---
+ include/private/android_filesystem_config.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/private/android_filesystem_config.h b/include/private/android_filesystem_config.h
+index 2f528b95c8..3e0b00928e 100644
+--- a/include/private/android_filesystem_config.h
++++ b/include/private/android_filesystem_config.h
+@@ -27,7 +27,7 @@
+ #include <sys/types.h>
+ #include <stdint.h>
+
+-#ifdef HAVE_ANDROID_OS
++#if defined(HAVE_ANDROID_OS) || defined(__linux__)
+ #include <linux/capability.h>
+ #else
+ #include "android_filesystem_capability.h"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch
new file mode 100644
index 0000000..5b18f46
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch
@@ -0,0 +1,64 @@
+From 9eff8799831961c0edf6e37e5d4cbf43baa7c748 Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fabo@debian.org>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] Remove bionic specific calls
+
+Upstream-Status: Inappropriate
+---
+ include/cutils/properties.h | 1 -
+ libcutils/properties.c | 2 +-
+ liblog/logd_write.c | 5 +++++
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/include/cutils/properties.h b/include/cutils/properties.h
+index 798db8b36f..7d01f28d6e 100644
+--- a/include/cutils/properties.h
++++ b/include/cutils/properties.h
+@@ -19,7 +19,6 @@
+
+ #include <sys/cdefs.h>
+ #include <stddef.h>
+-#include <sys/system_properties.h>
+ #include <stdint.h>
+
+ #ifdef __cplusplus
+diff --git a/libcutils/properties.c b/libcutils/properties.c
+index b283658aa4..4151e7882c 100644
+--- a/libcutils/properties.c
++++ b/libcutils/properties.c
+@@ -104,10 +104,10 @@ int32_t property_get_int32(const char *key, int32_t default_value) {
+ return (int32_t)property_get_imax(key, INT32_MIN, INT32_MAX, default_value);
+ }
+
++#undef HAVE_LIBC_SYSTEM_PROPERTIES
+ #ifdef HAVE_LIBC_SYSTEM_PROPERTIES
+
+ #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
+-#include <sys/_system_properties.h>
+
+ int property_set(const char *key, const char *value)
+ {
+diff --git a/liblog/logd_write.c b/liblog/logd_write.c
+index b2668cedb7..f5a44fe901 100644
+--- a/liblog/logd_write.c
++++ b/liblog/logd_write.c
+@@ -23,6 +23,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/stat.h>
++#include <sys/syscall.h>
+ #include <sys/types.h>
+ #if (FAKE_LOG_DEVICE == 0)
+ #include <sys/socket.h>
+@@ -205,7 +206,11 @@ static int __write_to_log_kernel(log_id_t log_id, struct iovec *vec, size_t nr)
+ realtime_ts.tv_nsec = ts.tv_nsec;
+
+ log_id_buf = log_id;
++#ifdef __BIONIC__
+ tid = gettid();
++#else
++ tid = (pid_t) syscall(__NR_gettid);
++#endif
+
+ newVec[0].iov_base = (unsigned char *) &log_id_buf;
+ newVec[0].iov_len = sizeof_log_id_t;
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch
new file mode 100644
index 0000000..b0feb65
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch
@@ -0,0 +1,50 @@
+From cd4525d760c6f88c9bf85f7bf488da79cd0d3264 Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fabo@debian.org>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] Fix implicit declaration of stlcat/strlcopy functions
+
+Upstream-Status: Inappropriate
+---
+ adb/adb.c | 1 +
+ fs_mgr/fs_mgr_fstab.c | 2 +-
+ include/cutils/sockets.h | 2 +-
+ 3 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/adb/adb.c b/adb/adb.c
+index e0f7ecde45..aaefd9b401 100644
+--- a/adb/adb.c
++++ b/adb/adb.c
+@@ -41,6 +41,7 @@
+ #include <sys/prctl.h>
+ #include <getopt.h>
+ #include <selinux/selinux.h>
++#include <grp.h>
+ #else
+ #include "usb_vendors.h"
+ #endif
+diff --git a/fs_mgr/fs_mgr_fstab.c b/fs_mgr/fs_mgr_fstab.c
+index edd9591164..9ddb4643b5 100644
+--- a/fs_mgr/fs_mgr_fstab.c
++++ b/fs_mgr/fs_mgr_fstab.c
+@@ -17,7 +17,7 @@
+ #include <ctype.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <bsd/string.h>
+ #include <sys/mount.h>
+
+ #include "fs_mgr_priv.h"
+diff --git a/include/cutils/sockets.h b/include/cutils/sockets.h
+index daf43ec944..d3270c69e7 100644
+--- a/include/cutils/sockets.h
++++ b/include/cutils/sockets.h
+@@ -19,7 +19,7 @@
+
+ #include <errno.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <bsd/string.h>
+ #include <stdbool.h>
+
+ #ifdef HAVE_WINSOCK
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch
deleted file mode 100644
index 8381967..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Description: we intend to run on Linux system so the shell is always /bin/sh,
- for the host or the target.
-Author: Fathi Boudra <fabo@debian.org>
-
-Upstream-Status: Inappropriate
----
- system/core/adb/services.c | 4 ----
- 1 file changed, 4 deletions(-)
-
---- a/system/core/adb/services.c
-+++ b/system/core/adb/services.c
-@@ -299,11 +299,7 @@ static int create_subproc_raw(const char
- }
- #endif /* !ABD_HOST */
-
--#if ADB_HOST
- #define SHELL_COMMAND "/bin/sh"
--#else
--#define SHELL_COMMAND "/system/bin/sh"
--#endif
-
- #if !ADB_HOST
- static void subproc_waiter_service(int fd, void *cookie)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch
new file mode 100644
index 0000000..4a19a5d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch
@@ -0,0 +1,39 @@
+From 354604da9d152f1931e91991d3f34197fc8fc759 Mon Sep 17 00:00:00 2001
+From: Sergio Schvezov <sergio.schvezov@canonical.com>
+Date: Tue, 2 Oct 2018 16:36:54 +0000
+Subject: [PATCH] ext4_utils: remove selinux extensions
+
+* drop useless includes of Android SELINUX extensions
+* avoids having to clone another module
+* this should be sent upstream
+
+Upstream-Status: Inappropriate
+---
+ ext4_utils/make_ext4fs.c | 1 -
+ ext4_utils/make_ext4fs_main.c | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
+index 2f89ae8a0..732afbed7 100644
+--- a/ext4_utils/make_ext4fs.c
++++ b/ext4_utils/make_ext4fs.c
+@@ -62,7 +62,6 @@
+
+ #include <selinux/selinux.h>
+ #include <selinux/label.h>
+-#include <selinux/android.h>
+
+ #define O_BINARY 0
+
+diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
+index a6c5f6160..f8e7b9da9 100644
+--- a/ext4_utils/make_ext4fs_main.c
++++ b/ext4_utils/make_ext4fs_main.c
+@@ -32,7 +32,6 @@
+ #ifndef USE_MINGW
+ #include <selinux/selinux.h>
+ #include <selinux/label.h>
+-#include <selinux/android.h>
+ #else
+ struct selabel_handle;
+ #endif
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch
new file mode 100644
index 0000000..3b50ffb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch
@@ -0,0 +1,78 @@
+From b9254539811ce912bfd16dd1d185eba7a10cceff Mon Sep 17 00:00:00 2001
+From: Markus Mayer <mmayer@mmayer.net>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] ext4_utils: add -o argument to preserve ownership
+
+See also https://android-review.googlesource.com/#/c/100312/
+
+Upstream-Status: Inappropriate
+---
+ ext4_utils/make_ext4fs.c | 6 ++++++
+ ext4_utils/make_ext4fs_main.c | 10 ++++++++--
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
+index 732afbed7..2cbf04399 100644
+--- a/ext4_utils/make_ext4fs.c
++++ b/ext4_utils/make_ext4fs.c
+@@ -67,6 +67,8 @@
+
+ #endif
+
++int preserve_owner = 0;
++
+ /* TODO: Not implemented:
+ Allocating blocks in the same block group as the file inode
+ Hash or binary tree directories
+@@ -185,6 +187,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path
+ } else {
+ dentries[i].mtime = fixed_time;
+ }
++ if (preserve_owner) {
++ dentries[i].uid = stat.st_uid;
++ dentries[i].gid = stat.st_gid;
++ }
+ uint64_t capabilities;
+ if (fs_config_func != NULL) {
+ #ifdef ANDROID
+diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
+index f8e7b9da9..e82d43277 100644
+--- a/ext4_utils/make_ext4fs_main.c
++++ b/ext4_utils/make_ext4fs_main.c
+@@ -47,13 +47,15 @@ struct selabel_handle;
+ extern struct fs_info info;
+
+
++extern int preserve_owner;
++
+ static void usage(char *path)
+ {
+ fprintf(stderr, "%s [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]\n", basename(path));
+ fprintf(stderr, " [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]\n");
+ fprintf(stderr, " [ -L <label> ] [ -f ] [ -a <android mountpoint> ]\n");
+ fprintf(stderr, " [ -S file_contexts ] [ -C fs_config ] [ -T timestamp ]\n");
+- fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -v ] [ -B <block_list_file> ]\n");
++ fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -o ] [ -v ] [ -B <block_list_file> ]\n");
+ fprintf(stderr, " <filename> [<directory>]\n");
+ }
+
+@@ -79,7 +81,7 @@ int main(int argc, char **argv)
+ struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
+ #endif
+
+- while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctv")) != -1) {
++ while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctov")) != -1) {
+ switch (opt) {
+ case 'l':
+ info.len = parse_num(optarg);
+@@ -142,6 +144,10 @@ int main(int argc, char **argv)
+ }
+ #endif
+ break;
++ case 'o':
++ preserve_owner = 1;
++ printf("Warning: Enabling 'preserve ownership', this is an unofficial feature!\n");
++ break;
+ case 'v':
+ verbose = 1;
+ break;
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch
deleted file mode 100644
index 8deaf3a..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Fix build on big endian systems
-
-The usb_linux_client.c file defines cpu_to_le16/32 by using the C
-library htole16/32 function calls. However, cpu_to_le16/32 are used
-when initializing structures, i.e in a context where a function call
-is not allowed.
-
-It works fine on little endian systems because htole16/32 are defined
-by the C library as no-ops. But on big-endian systems, they are
-actually doing something, which might involve calling a function,
-causing build failures.
-
-To solve this, we simply open-code cpu_to_le16/32 in a way that allows
-them to be used when initializing structures.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/system/core/adb/usb_linux_client.c
-===================================================================
---- a/system/core/adb/usb_linux_client.c
-+++ b/system/core/adb/usb_linux_client.c
-@@ -34,8 +34,15 @@
- #define MAX_PACKET_SIZE_FS 64
- #define MAX_PACKET_SIZE_HS 512
-
--#define cpu_to_le16(x) htole16(x)
--#define cpu_to_le32(x) htole32(x)
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+# define cpu_to_le16(x) (x)
-+# define cpu_to_le32(x) (x)
-+#else
-+# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
-+# define cpu_to_le32(x) \
-+ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
-+ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
-+#endif
-
- struct usb_handle
- {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/gitignore
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore
rename to meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/gitignore
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch
deleted file mode 100644
index 64db616..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Description: fix implicit declaration of stlcat/strlcopy functions.
-Author: Fathi Boudra <fabo@debian.org>
-
-Upstream-Status: Inappropriate
----
- system/core/adb/adb.c | 1 +
- system/core/fs_mgr/fs_mgr_fstab.c | 2 +-
- system/core/include/cutils/sockets.h | 2 +-
- 3 files changed, 3 insertions(+), 2 deletions(-)
-
---- a/system/core/fs_mgr/fs_mgr_fstab.c
-+++ b/system/core/fs_mgr/fs_mgr_fstab.c
-@@ -17,7 +17,7 @@
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
--#include <string.h>
-+#include <bsd/string.h>
- #include <sys/mount.h>
-
- #include "fs_mgr_priv.h"
---- a/system/core/include/cutils/sockets.h
-+++ b/system/core/include/cutils/sockets.h
-@@ -19,7 +19,7 @@
-
- #include <errno.h>
- #include <stdlib.h>
--#include <string.h>
-+#include <bsd/string.h>
- #include <stdbool.h>
-
- #ifdef HAVE_WINSOCK
---- a/system/core/adb/adb.c
-+++ b/system/core/adb/adb.c
-@@ -41,6 +41,7 @@
- #include <sys/prctl.h>
- #include <getopt.h>
- #include <selinux/selinux.h>
-+#include <grp.h>
- #else
- #include "usb_vendors.h"
- #endif
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-Remove-bionic-specific-calls.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-Remove-bionic-specific-calls.patch
new file mode 100644
index 0000000..9de2593
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-Remove-bionic-specific-calls.patch
@@ -0,0 +1,25 @@
+From 36654a4484117e5f4d63a810c0d94bc9c7ee3a83 Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fabo@debian.org>
+Date: Tue, 2 Oct 2018 16:36:54 +0000
+Subject: [PATCH] Remove bionic specific calls
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/procattr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/procattr.c b/src/procattr.c
+index f350808..761cf8e 100644
+--- a/src/procattr.c
++++ b/src/procattr.c
+@@ -8,7 +8,7 @@
+ #include "selinux_internal.h"
+ #include "policy.h"
+
+-#ifdef HOST
++#ifndef __BIONIC__
+ static pid_t gettid(void)
+ {
+ return syscall(__NR_gettid);
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
deleted file mode 100644
index 35bb766..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From cc5e7b02a3be57709a1aed6e34be100b82a71620 Mon Sep 17 00:00:00 2001
-From: David Ng <dave@codeaurora.org>
-Date: Fri, 27 Jul 2012 17:15:03 -0700
-Subject: [PATCH 1/2] mkbootimg: Add --dt parameter to specify DT image
-
-New optional --dt parameter to specify a kernel device
-tree image.
-
-Change-Id: Ie29a11cbf4138426bfd19ae486d69a5fcbd8f442
-
-Upstream-Status: Inappropriate
----
- system/core/mkbootimg/bootimg.h | 7 +++++--
- system/core/mkbootimg/mkbootimg.c | 21 +++++++++++++++++++++
- 2 files changed, 26 insertions(+), 2 deletions(-)
-
---- a/system/core/mkbootimg/bootimg.h
-+++ b/system/core/mkbootimg/bootimg.h
-@@ -41,8 +41,8 @@ struct boot_img_hdr
-
- unsigned tags_addr; /* physical addr for kernel tags */
- unsigned page_size; /* flash page size we assume */
-- unsigned unused[2]; /* future expansion: should be 0 */
--
-+ unsigned dt_size; /* device tree in bytes */
-+ unsigned unused; /* future expansion: should be 0 */
- unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */
-
- unsigned char cmdline[BOOT_ARGS_SIZE];
-@@ -64,10 +64,13 @@ struct boot_img_hdr
- ** +-----------------+
- ** | second stage | o pages
- ** +-----------------+
-+** | device tree | p pages
-+** +-----------------+
- **
- ** n = (kernel_size + page_size - 1) / page_size
- ** m = (ramdisk_size + page_size - 1) / page_size
- ** o = (second_size + page_size - 1) / page_size
-+** p = (dt_size + page_size - 1) / page_size
- **
- ** 0. all entities are page_size aligned in flash
- ** 1. kernel and ramdisk are required (size != 0)
---- a/system/core/mkbootimg/mkbootimg.c
-+++ b/system/core/mkbootimg/mkbootimg.c
-@@ -65,6 +65,7 @@ int usage(void)
- " [ --board <boardname> ]\n"
- " [ --base <address> ]\n"
- " [ --pagesize <pagesize> ]\n"
-+ " [ --dt <filename> ]\n"
- " -o|--output <filename>\n"
- );
- return 1;
-@@ -105,6 +106,8 @@ int main(int argc, char **argv)
- char *cmdline = "";
- char *bootimg = 0;
- char *board = "";
-+ char *dt_fn = 0;
-+ void *dt_data = 0;
- unsigned pagesize = 2048;
- int fd;
- SHA_CTX ctx;
-@@ -158,6 +161,8 @@ int main(int argc, char **argv)
- fprintf(stderr,"error: unsupported page size %d\n", pagesize);
- return -1;
- }
-+ } else if(!strcmp(arg, "--dt")) {
-+ dt_fn = val;
- } else {
- return usage();
- }
-@@ -232,6 +237,14 @@ int main(int argc, char **argv)
- }
- }
-
-+ if(dt_fn) {
-+ dt_data = load_file(dt_fn, &hdr.dt_size);
-+ if (dt_data == 0) {
-+ fprintf(stderr,"error: could not load device tree image '%s'\n", dt_fn);
-+ return 1;
-+ }
-+ }
-+
- /* put a hash of the contents in the header so boot images can be
- * differentiated based on their first 2k.
- */
-@@ -242,6 +255,10 @@ int main(int argc, char **argv)
- SHA_update(&ctx, &hdr.ramdisk_size, sizeof(hdr.ramdisk_size));
- SHA_update(&ctx, second_data, hdr.second_size);
- SHA_update(&ctx, &hdr.second_size, sizeof(hdr.second_size));
-+ if(dt_data) {
-+ SHA_update(&ctx, dt_data, hdr.dt_size);
-+ SHA_update(&ctx, &hdr.dt_size, sizeof(hdr.dt_size));
-+ }
- sha = SHA_final(&ctx);
- memcpy(hdr.id, sha,
- SHA_DIGEST_SIZE > sizeof(hdr.id) ? sizeof(hdr.id) : SHA_DIGEST_SIZE);
-@@ -266,6 +283,10 @@ int main(int argc, char **argv)
- if(write_padding(fd, pagesize, hdr.second_size)) goto fail;
- }
-
-+ if(dt_data) {
-+ if(write(fd, dt_data, hdr.dt_size) != (ssize_t) hdr.dt_size) goto fail;
-+ if(write_padding(fd, pagesize, hdr.dt_size)) goto fail;
-+ }
- return 0;
-
- fail:
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
deleted file mode 100644
index 5c90397..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From aa669312a380611d280d126cb509fa282080707e Mon Sep 17 00:00:00 2001
-From: Markus Mayer <mmayer@mmayer.net>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] android-tools: add recipe from AOSP tag android-5.1.1_r37
-
-Description: add -o argument to preserve ownership
-
-See also https://android-review.googlesource.com/#/c/100312/
-
-Upstream-Status: Inappropriate
-
----
- ext4_utils/make_ext4fs.c | 6 ++++++
- ext4_utils/make_ext4fs_main.c | 10 ++++++++--
- 2 files changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
-index 2f89ae8a..cc41d623 100644
---- a/ext4_utils/make_ext4fs.c
-+++ b/ext4_utils/make_ext4fs.c
-@@ -68,6 +68,8 @@
-
- #endif
-
-+int preserve_owner = 0;
-+
- /* TODO: Not implemented:
- Allocating blocks in the same block group as the file inode
- Hash or binary tree directories
-@@ -186,6 +188,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path
- } else {
- dentries[i].mtime = fixed_time;
- }
-+ if (preserve_owner) {
-+ dentries[i].uid = stat.st_uid;
-+ dentries[i].gid = stat.st_gid;
-+ }
- uint64_t capabilities;
- if (fs_config_func != NULL) {
- #ifdef ANDROID
-diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
-index a6c5f616..7af0dddf 100644
---- a/ext4_utils/make_ext4fs_main.c
-+++ b/ext4_utils/make_ext4fs_main.c
-@@ -48,13 +48,15 @@ struct selabel_handle;
- extern struct fs_info info;
-
-
-+extern int preserve_owner;
-+
- static void usage(char *path)
- {
- fprintf(stderr, "%s [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]\n", basename(path));
- fprintf(stderr, " [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]\n");
- fprintf(stderr, " [ -L <label> ] [ -f ] [ -a <android mountpoint> ]\n");
- fprintf(stderr, " [ -S file_contexts ] [ -C fs_config ] [ -T timestamp ]\n");
-- fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -v ] [ -B <block_list_file> ]\n");
-+ fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -o ] [ -v ] [ -B <block_list_file> ]\n");
- fprintf(stderr, " <filename> [<directory>]\n");
- }
-
-@@ -80,7 +82,7 @@ int main(int argc, char **argv)
- struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
- #endif
-
-- while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctv")) != -1) {
-+ while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctov")) != -1) {
- switch (opt) {
- case 'l':
- info.len = parse_num(optarg);
-@@ -143,6 +145,10 @@ int main(int argc, char **argv)
- }
- #endif
- break;
-+ case 'o':
-+ preserve_owner = 1;
-+ printf("Warning: Enabling 'preserve ownership', this is an unofficial feature!\n");
-+ break;
- case 'v':
- verbose = 1;
- break;
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/remove-bionic-android.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/remove-bionic-android.patch
deleted file mode 100644
index e933724..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/remove-bionic-android.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Description: remove bionic specific calls
-Author: Fathi Boudra <fabo@debian.org>
-
-Upstream-Status: Inappropriate
----
- system/core/include/cutils/properties.h | 1 -
- system/core/libcutils/properties.c | 2 +-
- system/core/liblog/logd_write.c | 5 +++++
- 3 files changed, 6 insertions(+), 2 deletions(-)
-
---- a/system/core/include/cutils/properties.h
-+++ b/system/core/include/cutils/properties.h
-@@ -19,7 +19,6 @@
-
- #include <sys/cdefs.h>
- #include <stddef.h>
--#include <sys/system_properties.h>
- #include <stdint.h>
-
- #ifdef __cplusplus
---- a/system/core/liblog/logd_write.c
-+++ b/system/core/liblog/logd_write.c
-@@ -23,6 +23,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <sys/stat.h>
-+#include <sys/syscall.h>
- #include <sys/types.h>
- #if (FAKE_LOG_DEVICE == 0)
- #include <sys/socket.h>
-@@ -205,7 +206,11 @@ static int __write_to_log_kernel(log_id_
- realtime_ts.tv_nsec = ts.tv_nsec;
-
- log_id_buf = log_id;
-+#ifdef __BIONIC__
- tid = gettid();
-+#else
-+ tid = (pid_t) syscall(__NR_gettid);
-+#endif
-
- newVec[0].iov_base = (unsigned char *) &log_id_buf;
- newVec[0].iov_len = sizeof_log_id_t;
---- a/system/core/libcutils/properties.c
-+++ b/system/core/libcutils/properties.c
-@@ -104,10 +104,10 @@ int32_t property_get_int32(const char *k
- return (int32_t)property_get_imax(key, INT32_MIN, INT32_MAX, default_value);
- }
-
-+#undef HAVE_LIBC_SYSTEM_PROPERTIES
- #ifdef HAVE_LIBC_SYSTEM_PROPERTIES
-
- #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
--#include <sys/_system_properties.h>
-
- int property_set(const char *key, const char *value)
- {
---- a/external/libselinux/src/procattr.c
-+++ b/external/libselinux/src/procattr.c
-@@ -8,7 +8,7 @@
- #include "selinux_internal.h"
- #include "policy.h"
-
--#ifdef HOST
-+#ifndef __BIONIC__
- static pid_t gettid(void)
- {
- return syscall(__NR_gettid);
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/remove-selinux-android.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/remove-selinux-android.patch
deleted file mode 100644
index d4a37f8..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/remove-selinux-android.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Subject: drop useless includes of Android SELINUX extensions; avoids having to clone another module; this should be sent upstream
-Author: Sergio Schvezov <sergio.schvezov@canonical.com>
-
-Upstream-Status: Inappropriate
----
- system/core/adb/file_sync_service.c | 3 ---
- system/extras/ext4_utils/make_ext4fs.c | 1 -
- system/extras/ext4_utils/make_ext4fs_main.c | 1 -
- 3 files changed, 5 deletions(-)
-
---- a/system/extras/ext4_utils/make_ext4fs.c
-+++ b/system/extras/ext4_utils/make_ext4fs.c
-@@ -62,7 +62,6 @@
-
- #include <selinux/selinux.h>
- #include <selinux/label.h>
--#include <selinux/android.h>
-
- #define O_BINARY 0
-
---- a/system/extras/ext4_utils/make_ext4fs_main.c
-+++ b/system/extras/ext4_utils/make_ext4fs_main.c
-@@ -32,7 +32,6 @@
- #ifndef USE_MINGW
- #include <selinux/selinux.h>
- #include <selinux/label.h>
--#include <selinux/android.h>
- #else
- struct selabel_handle;
- #endif
---- a/system/core/adb/file_sync_service.c
-+++ b/system/core/adb/file_sync_service.c
-@@ -26,7 +26,6 @@
-
- #include <errno.h>
- #include <private/android_filesystem_config.h>
--#include <selinux/android.h>
- #include "sysdeps.h"
-
- #define TRACE_TAG TRACE_SYNC
-@@ -73,7 +72,6 @@ static int mkdirs(char *name)
- *x = '/';
- return ret;
- }
-- selinux_android_restorecon(name, 0);
- }
- *x++ = '/';
- }
-@@ -251,7 +249,6 @@ static int handle_send_file(int s, char
- if(fd >= 0) {
- struct utimbuf u;
- adb_close(fd);
-- selinux_android_restorecon(path, 0);
- u.actime = timestamp;
- u.modtime = timestamp;
- utime(path, &u);
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/use-capability.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/use-capability.patch
deleted file mode 100644
index b8ebe09..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/use-capability.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Subject: use linux/capability.h on linux systems too
-Author: Loïc Minier <loic.minier@ubuntu.com>
-
-Upstream-Status: Inappropriate
----
- system/core/include/private/android_filesystem_config.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/system/core/include/private/android_filesystem_config.h
-+++ b/system/core/include/private/android_filesystem_config.h
-@@ -27,7 +27,7 @@
- #include <sys/types.h>
- #include <stdint.h>
-
--#ifdef HAVE_ANDROID_OS
-+#if defined(HAVE_ANDROID_OS) || defined(__linux__)
- #include <linux/capability.h>
- #else
- #include "android_filesystem_capability.h"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/use-local-socket.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/use-local-socket.patch
deleted file mode 100644
index 7facd61..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/use-local-socket.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Subject: adb: Use local sockets where appropriate
-Author: Hilko Bengen <bengen@debian.org>
-
-Upstream-Status: Inappropriate
----
- system/core/adb/adb.c | 6 +++++-
- system/core/adb/adb_client.c | 5 +++--
- system/core/adb/transport_local.c | 3 ++-
- 3 files changed, 10 insertions(+), 4 deletions(-)
-
---- a/system/core/adb/adb.c
-+++ b/system/core/adb/adb.c
-@@ -1230,7 +1230,11 @@ int launch_server(int server_port)
- */
- void build_local_name(char* target_str, size_t target_size, int server_port)
- {
-- snprintf(target_str, target_size, "tcp:%d", server_port);
-+ if (gListenAll > 0) {
-+ snprintf(target_str, target_size, "tcp:%d", server_port);
-+ } else {
-+ snprintf(target_str, target_size, "local:%d", server_port);
-+ }
- }
-
- #if !ADB_HOST
---- a/system/core/adb/adb_client.c
-+++ b/system/core/adb/adb_client.c
-@@ -185,12 +185,12 @@ int _adb_connect(const char *service)
- strcpy(__adb_error, "service name too long");
- return -1;
- }
-- snprintf(tmp, sizeof tmp, "%04x", len);
-+ snprintf(tmp, sizeof tmp, "%d", __adb_server_port);
-
- if (__adb_server_name)
- fd = socket_network_client(__adb_server_name, __adb_server_port, SOCK_STREAM);
- else
-- fd = socket_loopback_client(__adb_server_port, SOCK_STREAM);
-+ fd = socket_local_client(tmp, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
-
- if(fd < 0) {
- strcpy(__adb_error, "cannot connect to daemon");
-@@ -201,6 +201,7 @@ int _adb_connect(const char *service)
- return -1;
- }
-
-+ snprintf(tmp, sizeof tmp, "%04x", len);
- if(writex(fd, tmp, 4) || writex(fd, service, len)) {
- strcpy(__adb_error, "write failure during connection");
- adb_close(fd);
---- a/system/core/adb/transport_local.c
-+++ b/system/core/adb/transport_local.c
-@@ -121,7 +121,8 @@ int local_connect_arbitrary_ports(int co
- }
- #endif
- if (fd < 0) {
-- fd = socket_loopback_client(adb_port, SOCK_STREAM);
-+ snprintf(buf, sizeof buf, "%d", adb_port);
-+ fd = socket_local_client(buf, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
- }
-
- if (fd >= 0) {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index 780ecaa..2604f65 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -7,14 +7,10 @@
file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=8bef8e6712b1be5aa76af1ebde9d6378 \
file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \
"
-DEPENDS = "libbsd libpcre openssl zlib libcap"
+DEPENDS = "libbsd libpcre zlib libcap"
+DEPENDS_append_class-target = " openssl10"
ANDROID_MIRROR = "android.googlesource.com"
-CORE_REPO = "${ANDROID_MIRROR}/platform/system/core"
-EXTRAS_REPO = "${ANDROID_MIRROR}/platform/system/extras"
-LIBHARDWARE_REPO = "${ANDROID_MIRROR}/platform/hardware/libhardware"
-LIBSELINUX_REPO = "${ANDROID_MIRROR}/platform/external/libselinux"
-BUILD_REPO = "${ANDROID_MIRROR}/platform/build"
# matches with android-5.1.1_r37
SRCREV_core = "2314b110bdebdbfd2d94c502282f9e57c849897e"
@@ -24,24 +20,28 @@
SRCREV_build = "16e987def3d7d8f7d30805eb95cef69e52a87dbc"
SRC_URI = " \
- git://${CORE_REPO};name=core;protocol=https;nobranch=1;destsuffix=git/system/core \
- git://${EXTRAS_REPO};name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \
- git://${LIBHARDWARE_REPO};name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \
- git://${LIBSELINUX_REPO};name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux \
- git://${BUILD_REPO};name=build;protocol=https;nobranch=1;destsuffix=git/build \
- file://remove-selinux-android.patch \
- file://use-capability.patch \
- file://use-local-socket.patch \
- file://preserve-ownership.patch;patchdir=system/extras \
- file://mkbootimg-Add-dt-parameter-to-specify-DT-image.patch \
- file://remove-bionic-android.patch \
- file://define-shell-command.patch \
- file://implicit-declaration-function-strlcat-strlcopy.patch \
- file://fix-big-endian-build.patch \
- file://0001-add-base64-implementation.patch \
- file://0002-adb-Musl-fixes.patch \
+ git://${ANDROID_MIRROR}/platform/system/core;name=core;protocol=https;nobranch=1;destsuffix=git/system/core \
+ git://${ANDROID_MIRROR}/platform/system/extras;name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \
+ git://${ANDROID_MIRROR}/platform/hardware/libhardware;name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \
+ git://${ANDROID_MIRROR}/platform/external/libselinux;name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux \
+ git://${ANDROID_MIRROR}/platform/build;name=build;protocol=https;nobranch=1;destsuffix=git/build \
+ file://core/0001-adb-remove-selinux-extensions.patch;patchdir=system/core \
+ file://core/0002-adb-Use-local-sockets-where-appropriate.patch;patchdir=system/core \
+ file://core/0003-adb-define-shell-command.patch;patchdir=system/core \
+ file://core/0004-adb-Fix-build-on-big-endian-systems.patch;patchdir=system/core \
+ file://core/0005-adb-add-base64-implementation.patch;patchdir=system/core \
+ file://core/0006-adb-Musl-fixes.patch;patchdir=system/core \
+ file://core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch;patchdir=system/core \
+ file://core/0008-adb-Allow-adbd-to-be-ran-as-root.patch;patchdir=system/core \
+ file://core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch;patchdir=system/core \
+ file://core/0010-Use-linux-capability.h-on-linux-systems-too.patch;patchdir=system/core \
+ file://core/0011-Remove-bionic-specific-calls.patch;patchdir=system/core \
+ file://core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch;patchdir=system/core \
+ file://extras/0001-ext4_utils-remove-selinux-extensions.patch;patchdir=system/extras \
+ file://extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch;patchdir=system/extras \
+ file://libselinux/0001-Remove-bionic-specific-calls.patch;patchdir=external/libselinux \
file://android-tools-adbd.service \
- file://.gitignore;subdir=git \
+ file://gitignore \
file://adb.mk;subdir=${BPN} \
file://adbd.mk;subdir=${BPN} \
file://ext4_utils.mk;subdir=${BPN} \
@@ -49,6 +49,7 @@
file://mkbootimg.mk;subdir=${BPN} \
"
+
S = "${WORKDIR}/git"
B = "${WORKDIR}/${BPN}"
@@ -71,6 +72,8 @@
TOOLS_class-nativesdk = "fastboot ext4_utils mkbootimg"
do_compile() {
+ cp ${WORKDIR}/gitignore ${S}/.gitignore
+
# Setting both variables below causing our makefiles to not work with
# implicit make rules
unset CFLAGS
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
index c762754..bc79727 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
@@ -8,11 +8,11 @@
src/client/linux/handler/exception_handler.cc | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
-diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
-index cca023f..f3e460c 100644
---- a/src/client/linux/handler/exception_handler.cc
-+++ b/src/client/linux/handler/exception_handler.cc
-@@ -495,7 +495,19 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
+Index: git/src/client/linux/handler/exception_handler.cc
+===================================================================
+--- git.orig/src/client/linux/handler/exception_handler.cc
++++ git/src/client/linux/handler/exception_handler.cc
+@@ -495,7 +495,19 @@ bool ExceptionHandler::SimulateSignalDel
siginfo.si_code = SI_USER;
siginfo.si_pid = getpid();
ucontext_t context;
@@ -42,11 +42,8 @@
return false;
+#else
+ // Extreme hack - see comments above.
-+ memset (&context.context, 0, sizeof(&context.context));
++ memset (&context.context, 0, sizeof(context.context));
+#endif
#if defined(__i386__)
// In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved
---
-1.9.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb b/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
index ffbe73f..6ca3613 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
@@ -2,25 +2,23 @@
DESCRIPTION = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. "
HOMEPAGE = "https://github.com/sandstorm-io/capnproto"
SECTION = "console/tools"
-
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://../LICENSE;md5=0a5b5b742baf10cc1c158579eba7fb1d"
-SRCREV = "c949a18da5f041a36cc218c5c4b79c7705999b4f"
SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV}"
+SRCREV = "c949a18da5f041a36cc218c5c4b79c7705999b4f"
+
+S = "${WORKDIR}/git/c++"
+
+inherit cmake
EXTRA_OECMAKE += "\
-DBUILD_TESTING=OFF \
"
-inherit cmake
-
-S = "${WORKDIR}/git/c++"
+FILES_${PN}-compiler = "${bindir}"
PACKAGE_BEFORE_PN = "${PN}-compiler"
RDEPENDS_${PN}-dev += "${PN}-compiler"
-FILES_${PN}-dev += "${libdir}/cmake"
-FILES_${PN}-compiler = "${bindir}"
-
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb b/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb
deleted file mode 100644
index 7a70f75..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Linux tool to dump x86 CPUID information about the CPU(s)"
-DESCRIPTION = "cpuid dumps detailed information about the CPU(s) gathered \
-from the CPUID instruction, and also determines the exact model of CPU(s). \
-It supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, \
-UMC, NexGen, Rise, and SiS CPUs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz"
-SRC_URI[md5sum] = "1c46a6662626c5a6eaca626f23a5a7d7"
-SRC_URI[sha256sum] = "667612aae6704341dd10844e97c84c5c5c8700817a5937a3c293b55013bc4865"
-
-COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
-
-# The install rule from the Makefile has hardcoded paths, so we duplicate
-# the actions to accommodate different paths.
-do_install () {
- install -d -m755 ${D}/${bindir}
- install -m755 ${B}/cpuid ${D}/${bindir}/cpuid
- install -d -m755 ${D}/${mandir}
- install -m444 ${B}/cpuid.man.gz ${D}/${mandir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb b/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb
new file mode 100644
index 0000000..533a000
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Linux tool to dump x86 CPUID information about the CPU(s)"
+DESCRIPTION = "cpuid dumps detailed information about the CPU(s) gathered \
+from the CPUID instruction, and also determines the exact model of CPU(s). \
+It supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, \
+UMC, NexGen, Rise, and SiS CPUs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz \
+ "
+SRC_URI[md5sum] = "b3b4e44ef49575043a91def0207dcc76"
+SRC_URI[sha256sum] = "967823be36f23cbc972eb0aa882d069c1d155a5978990ac3bcf425e6a2e7ff9a"
+
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+
+# The install rule from the Makefile has hardcoded paths, so we duplicate
+# the actions to accommodate different paths.
+do_install () {
+ install -D -m 0755 ${B}/cpuid ${D}/${bindir}/cpuid
+ install -D -m 0444 ${B}/cpuid.man.gz ${D}/${mandir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb b/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
deleted file mode 100644
index 95e1737..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Glade - A User Interface Designer"
-HOMEPAGE = "http://www.gnu.org/software/gnash"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
- file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
- file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "gtk+ gtk+3 glib-2.0 libxml2 intltool-native \
- gnome-common-native \
-"
-
-
-inherit distro_features_check autotools pkgconfig gnomebase gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade/3.20/glade-${PV}.tar.xz \
- file://remove-yelp-help-rules-var.patch \
- "
-SRC_URI[md5sum] = "d3dd9ba33c7d7c854ab207e1ba844dda"
-SRC_URI[sha256sum] = "07d1545570951aeded20e9fdc6d3d8a56aeefe2538734568c5335be336c6abed"
-
-EXTRA_OECONF += "--disable-man-pages"
-
-FILES_${PN} += "${datadir}/* ${libdir}/glade/modules/libgladegtk.so"
-FILES_${PN}-dev += "${libdir}/glade/modules/libgladegtk.la"
-FILES_${PN}-dbg += "${libdir}/glade/modules/.debug/libgladegtk.so"
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb b/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb
new file mode 100644
index 0000000..bd4b586
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Glade - A User Interface Designer"
+HOMEPAGE = "http://www.gnu.org/software/gnash"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
+ file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
+ file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
+DEPENDS = "gtk+ gtk+3 glib-2.0 libxml2 intltool-native \
+ gnome-common-native \
+"
+
+
+inherit distro_features_check autotools pkgconfig gnomebase gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade/3.22/glade-${PV}.tar.xz \
+ file://remove-yelp-help-rules-var.patch \
+ "
+SRC_URI[md5sum] = "226802cf3b06861240524805aa6fe6ff"
+SRC_URI[sha256sum] = "dff89a2ef2eaf000ff2a46979978d03cb9202cb04668e01d0ea5c5bb5547e39a"
+
+EXTRA_OECONF += "--disable-man-pages"
+
+FILES_${PN} += "${datadir}/* ${libdir}/glade/modules/libgladegtk.so"
+FILES_${PN}-dev += "${libdir}/glade/modules/libgladegtk.la"
+FILES_${PN}-dbg += "${libdir}/glade/modules/.debug/libgladegtk.so"
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb b/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
index c7c1ad1..d6e42c8 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
@@ -9,6 +9,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=278ef6183dec4aae1524fccc4b0113c9"
+DEPENDS = "boost"
+
SRC_URI = "file://json_spirit_v${PV}.zip \
file://0001-Adjust-the-cmake-files.patch \
file://0001-Link-to-libatomic.patch \
@@ -16,10 +18,6 @@
S = "${WORKDIR}/json_spirit_v${PV}"
-DEPENDS = "boost"
-
inherit cmake
-FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibJsonSpirit.cmake"
-
BBCLASSEXTEND = "nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb b/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
index df08b8b..de9a6eb 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
@@ -11,7 +11,7 @@
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=9b8cf60ff39767ff04b671fca8302408"
SECTION = "devel"
-DEPENDS += "ncurses flex bison gperf-native"
+DEPENDS += "ncurses flex bison gperf-native bison-native"
RDEPENDS_${PN} += "python3 bash"
SRC_URI = "git://ymorin.is-a-geek.org/kconfig-frontends;branch=4.11.x \
file://0001-Makefile-ensure-frontends-exits-before-writing-into-.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.8.0.bb b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.8.0.bb
new file mode 100644
index 0000000..7544744
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.8.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Linear Algebra PACKage"
+URL = "http://www.netlib.org/lapack"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=930f8aa500a47c7dab0f8efb5a1c9a40"
+
+# Recipe needs FORTRAN support (copied from conf/local.conf.sample.extended)
+# Enabling FORTRAN
+# Note this is not officially supported and is just illustrated here to
+# show an example of how it can be done
+# You'll also need your fortran recipe to depend on libgfortran
+#FORTRAN_forcevariable = ",fortran"
+#RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath"
+
+DEPENDS = "libgfortran"
+
+SRC_URI = "http://www.netlib.org/lapack/lapack-${PV}.tar.gz"
+SRC_URI[md5sum] = "96591affdbf58c450d45c1daa540dbd2"
+SRC_URI[sha256sum] = "deb22cc4a6120bff72621155a9917f485f96ef8319ac074a7afbc68aab88bcf6"
+
+EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=ON "
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+inherit cmake pkgconfig
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20170329-3.1.bb b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20170329-3.1.bb
deleted file mode 100644
index fc24671..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20170329-3.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "BSD replacement for libreadline"
-DESCRIPTION = "Command line editor library providing generic line editing, \
-history, and tokenization functions"
-HOMEPAGE = "http://www.thrysoee.dk/editline/"
-SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533"
-
-DEPENDS = "ncurses"
-
-inherit autotools
-
-# upstream site does not allow wget's User-Agent
-FETCHCMD_wget += "-U bitbake"
-SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}.tar.gz \
- file://stdc-predef.patch \
- "
-SRC_URI[md5sum] = "c57a0690e62ef523c083598730272cfd"
-SRC_URI[sha256sum] = "91f2d90fbd2a048ff6dad7131d9a39e690fd8a8fd982a353f1333dd4017dd4be"
-
-S = "${WORKDIR}/${BPN}-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20180525-3.1.bb b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20180525-3.1.bb
new file mode 100644
index 0000000..8cc0e95
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20180525-3.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "BSD replacement for libreadline"
+DESCRIPTION = "Command line editor library providing generic line editing, \
+history, and tokenization functions"
+HOMEPAGE = "http://www.thrysoee.dk/editline/"
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533"
+
+DEPENDS = "ncurses"
+
+inherit autotools
+
+# upstream site does not allow wget's User-Agent
+FETCHCMD_wget += "-U bitbake"
+SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}.tar.gz \
+ file://stdc-predef.patch \
+ "
+SRC_URI[md5sum] = "97679319742f45d6cdcd6075511b14ac"
+SRC_URI[sha256sum] = "c41bea8fd140fb57ba67a98ec1d8ae0b8ffa82f4aba9c35a87e5a9499e653116"
+
+S = "${WORKDIR}/${BPN}-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.7.bb b/meta-openembedded/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.7.bb
deleted file mode 100644
index 423a914..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.7.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Fribidi library for bidirectional text"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-BBCLASSEXTEND = "native"
-
-PROVIDES = "libfribidi"
-DEPENDS = "glib-2.0 libpcre"
-
-inherit autotools lib_package pkgconfig
-
-CFLAGS_append = " -DPAGE_SIZE=4096 "
-SECURITY_CFLAGS_remove_toolchain-clang = "-D_FORTIFY_SOURCE=2"
-
-SRC_URI = "http://fribidi.org/download/fribidi-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "6c7e7cfdd39c908f7ac619351c1c5c23"
-SRC_URI[sha256sum] = "08222a6212bbc2276a2d55c3bf370109ae4a35b689acbc66571ad2a670595a8e"
-
-CVE_PRODUCT = "gnu_fribidi"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb b/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
index 267c0e7..dcd47a4 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
@@ -47,7 +47,6 @@
PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'demos', '${PN}-demos', '', d)}"
FILES_${PN}-demos = "${bindir}/*"
-FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibRcf.cmake"
BBCLASSEXTEND = "nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb
deleted file mode 100644
index 31ab9a6..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "log4cplus provides a simple C++ logging API for log management"
-SECTION = "libs"
-HOMEPAGE = "http://sourceforge.net/projects/log4cplus/"
-BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/"
-
-LICENSE = "Apache-2.0 & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cedaa287ececcb94f9f2880d9c4ef085"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz"
-SRC_URI[md5sum] = "e250f0f431c0723f8b625323e7b6465d"
-SRC_URI[sha256sum] = "ad5ec3b62f2f0bdc7f06fa398bde61091fd2493e91059e17315b5197420dcf04"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.2.bb b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.2.bb
new file mode 100644
index 0000000..d17d15c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.2.bb
@@ -0,0 +1,18 @@
+SUMMARY = "log4cplus provides a simple C++ logging API for log management"
+SECTION = "libs"
+HOMEPAGE = "http://sourceforge.net/projects/log4cplus/"
+BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/"
+
+LICENSE = "Apache-2.0 & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=41e8e060c26822886b592ab4765c756b"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz"
+SRC_URI[md5sum] = "b3bbeb2dc3e170768430cf87583016f8"
+SRC_URI[sha256sum] = "10539f2315271d370c7bc6a2b4808cbe369279837f4539ce5c789e456489fc62"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/"
+UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch
new file mode 100644
index 0000000..6db6ab9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch
@@ -0,0 +1,57 @@
+From 62f9ed95b5d0feab426bff452be793c62a6b795a Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Wed, 6 Jun 2018 12:49:21 +0200
+Subject: [PATCH 1/2] Makefile: Fix cross compilation
+
+Allow building on ARMv7 and ARMv8.
+
+Upstream-Status: Submitted
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+---
+ src/Makefile | 2 +-
+ src/core/Makefile | 2 +-
+ src/gui/Makefile | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index b50586bc9234..654b786dd899 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -18,7 +18,7 @@ export MANDIR
+ export DATADIR
+ export SQLITE
+
+-CXX?=c++
++CXX?=$(CROSS_COMPILE)c++
+ INCLUDES=-I./core/
+ DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
+ CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
+diff --git a/src/core/Makefile b/src/core/Makefile
+index 5bf5a69cc6a6..2bd1b94c4175 100644
+--- a/src/core/Makefile
++++ b/src/core/Makefile
+@@ -1,6 +1,6 @@
+ PACKAGENAME?=lshw
+
+-CXX=c++
++CXX?=$(CROSS_COMPILE)c++
+ INCLUDES=
+ DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
+ CXXFLAGS?=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
+diff --git a/src/gui/Makefile b/src/gui/Makefile
+index 332ce5704819..b0f925490356 100644
+--- a/src/gui/Makefile
++++ b/src/gui/Makefile
+@@ -1,7 +1,7 @@
+ PACKAGENAME?=lshw
+
+-CXX?=c++
+-CC?=cc
++CXX?=$(CROSS_COMPILE)c++
++CC?=$(CROSS_COMPILE)cc
+ STRIP?=strip
+ OBJCOPY?=objcopy
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch
new file mode 100644
index 0000000..d3da01b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch
@@ -0,0 +1,34 @@
+From 75667f8a0ae4f1689ff03eb1768b1ee8cdfbf00d Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Wed, 6 Jun 2018 12:49:30 +0200
+Subject: [PATCH 2/2] Makefile: Use supplied LDFLAGS to silence OE GNU_HASH QA
+ warning
+
+Fix OpenEmbedded/Yocto QA warning:
+
+ ERROR: lshw-02.16-r1 do_package_qa: QA Issue: No GNU_HASH in the elf binary: 'build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/lshw/02.16-r1/packages-split/lshw/usr/sbin/lshw' [ldflags]
+ ERROR: lshw-02.16-r1 do_package_qa: QA run found fatal errors. Please consider fixing them.
+ ERROR: lshw-02.16-r1 do_package_qa: Function failed: do_package_qa
+
+Upstream-Status: Submitted
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 654b786dd899..a441ba2bb666 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -25,7 +25,7 @@ CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
+ ifeq ($(SQLITE), 1)
+ CXXFLAGS+= -DSQLITE $(shell pkg-config --cflags sqlite3)
+ endif
+-LDFLAGS=-L./core/ -g
++LDFLAGS+=-L./core/ -g
+ ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
+ LDFLAGS+= -Wl,--as-needed
+ endif
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch
new file mode 100644
index 0000000..3492493
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch
@@ -0,0 +1,92 @@
+From a89f2ba8496994c8b5e28a89202df15d64c648f9 Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Wed, 6 Jun 2018 12:47:02 +0200
+Subject: [PATCH] sysfs: Fix basename() build with musl
+
+musl provides only standard basename() which accepts non-const string.
+This fixes build error with musl C library:
+
+ | sysfs.cc: In function 'std::__cxx11::string sysfs_getbustype(const string&)':
+ | sysfs.cc:102:21: error: 'basename' was not declared in this scope
+ | "/devices/" + basename(path.c_str());
+ | ^~~~~~~~
+
+Upstream-Status: Submitted
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+---
+ src/core/dasd.cc | 3 ++-
+ src/core/sysfs.cc | 9 +++++----
+ 2 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/src/core/dasd.cc b/src/core/dasd.cc
+index 626b8a872b0f..b27844215cc4 100644
+--- a/src/core/dasd.cc
++++ b/src/core/dasd.cc
+@@ -2,6 +2,7 @@
+ #include "osutils.h"
+ #include "dasd.h"
+ #include <glob.h>
++#include <libgen.h>
+ #include <string.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -42,7 +43,7 @@ bool scan_dasd(hwNode & n)
+ {
+ for(dev_num=0;dev_num<devices.gl_pathc;dev_num++)
+ {
+- dev_name = basename(devices.gl_pathv[dev_num]);
++ dev_name = basename(const_cast<char *>(devices.gl_pathv[dev_num]));
+ for (std::vector<std::string>::iterator it = sysfs_attribs.begin(); it != sysfs_attribs.end(); ++it)
+ {
+ std::string attrib_fname = std::string(SYSFS_PREFIX) + dev_name + "/device/" + *it;
+diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
+index acc9d0056d5e..c56bab7b3b9f 100644
+--- a/src/core/sysfs.cc
++++ b/src/core/sysfs.cc
+@@ -7,6 +7,7 @@
+ #include "version.h"
+ #include "sysfs.h"
+ #include "osutils.h"
++#include <libgen.h>
+ #include <limits.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+@@ -99,7 +100,7 @@ static string sysfs_getbustype(const string & path)
+ {
+ devname =
+ string(fs.path + "/bus/") + string(namelist[i]->d_name) +
+- "/devices/" + basename(path.c_str());
++ "/devices/" + basename(const_cast<char *>(path.c_str()));
+
+ if (samefile(devname, path))
+ return string(namelist[i]->d_name);
+@@ -139,7 +140,7 @@ static string sysfstobusinfo(const string & path)
+
+ if (bustype == "virtio")
+ {
+- string name = basename(path.c_str());
++ string name = basename(const_cast<char *>(path.c_str()));
+ if (name.compare(0, 6, "virtio") == 0)
+ return "virtio@" + name.substr(6);
+ else
+@@ -207,7 +208,7 @@ string entry::driver() const
+ string driverlink = This->devpath + "/driver";
+ if (!exists(driverlink))
+ return "";
+- return basename(readlink(driverlink).c_str());
++ return basename(const_cast<char *>(readlink(driverlink).c_str()));
+ }
+
+
+@@ -288,7 +289,7 @@ string entry::name_in_class(const string & classname) const
+
+ string entry::name() const
+ {
+- return basename(This->devpath.c_str());
++ return basename(const_cast<char *>(This->devpath.c_str()));
+ }
+
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb
new file mode 100644
index 0000000..b344fbf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "A small tool to provide detailed information on the hardware \
+configuration of the machine. It can report exact memory configuration, \
+firmware version, mainboard configuration, CPU version and speed, cache \
+configuration, bus speed, etc. on DMI-capable or EFI systems."
+SUMMARY = "Hardware lister"
+HOMEPAGE = "http://ezix.org/project/wiki/HardwareLiSter"
+SECTION = "console/tools"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
+
+SRC_URI = " \
+ http://ezix.org/software/files/lshw-B.${PV}.tar.gz \
+ file://0001-Makefile-Fix-cross-compilation.patch \
+ file://0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch \
+ file://0003-sysfs-Fix-basename-build-with-musl.patch \
+"
+SRC_URI[md5sum] = "8671c6d94d6324a744b7f21f1bfecfd2"
+SRC_URI[sha256sum] = "ae22ef11c934364be4fd2a0a1a7aadf4495a0251ec6979da280d342a89ca3c2f"
+
+S = "${WORKDIR}/lshw-B.${PV}"
+
+do_compile() {
+ # build core only - don't ship gui
+ oe_runmake -C src core
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index abe015d..f4033f7 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -15,7 +15,7 @@
DEPENDS = "elfutils"
RDEPENDS_${PN} = "elfutils"
-SRC_URI = "git://anonscm.debian.org/collab-maint/ltrace.git;branch=master \
+SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http \
file://configure-allow-to-disable-selinux-support.patch \
file://0001-replace-readdir_r-with-readdir.patch \
file://0001-Use-correct-enum-type.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
index 1d69b3c..3052eb0 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
@@ -3,14 +3,14 @@
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22"
HOMEPAGE = "http://luajit.org"
-SRC_URI = "http://luajit.org/download/LuaJIT-${PV}.tar.gz \
+PV .= "+git${SRCPV}"
+SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2"
+SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \
file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
file://clang.patch \
"
-SRC_URI[md5sum] = "48353202cbcacab84ee41a5a70ea0a2c"
-SRC_URI[sha256sum] = "874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979"
-S = "${WORKDIR}/LuaJIT-${PV}"
+S = "${WORKDIR}/git"
inherit pkgconfig binconfig siteinfo
@@ -49,7 +49,6 @@
'TARGET_SHLDFLAGS=${LDFLAGS}' \
'HOST_CC=${BUILD_CC}' \
'HOST_CFLAGS=${BUILD_CFLAGS}' \
- 'HOST_LDFLAGS=${BUILD_LDFLAGS}' \
\
'PREFIX=${prefix}' \
'MULTILIB=${baselib}' \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb b/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb
deleted file mode 100644
index 9052497..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "The Mercurial distributed SCM"
-HOMEPAGE = "http://mercurial.selenic.com/"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "python python-native"
-DEPENDS_class-native = "python-native"
-RDEPENDS_${PN} = "python python-modules"
-
-inherit python-dir
-
-SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
-SRC_URI[md5sum] = "c1d9fad1b7ed7077b0d4ae82e71154db"
-SRC_URI[sha256sum] = "234af4a67565c85923b0a1910c704ab44bcf12f69b85532687208776563d87de"
-
-S = "${WORKDIR}/mercurial-${PV}"
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
- PREFIX=${prefix}"
-
-do_configure_append () {
- sed -i -e 's:PYTHON=python:PYTHON=${STAGING_BINDIR_NATIVE}/python-native/python:g' ${S}/Makefile
-}
-
-do_install () {
- oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
-}
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.6.1.bb b/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.6.1.bb
new file mode 100644
index 0000000..13710aa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.6.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "The Mercurial distributed SCM"
+HOMEPAGE = "http://mercurial.selenic.com/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "python python-native"
+DEPENDS_class-native = "python-native"
+RDEPENDS_${PN} = "python python-modules"
+
+inherit python-dir
+
+SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
+SRC_URI[md5sum] = "f9b2e4a3b5901ef744fa3abe4196e97e"
+SRC_URI[sha256sum] = "89fa8ecbc8aa6e48e98f9803a1683ba91367124295dba2407b28c34ca621108d"
+
+S = "${WORKDIR}/mercurial-${PV}"
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
+ PREFIX=${prefix}"
+
+do_configure_append () {
+ sed -i -e 's:PYTHON=python:PYTHON=${STAGING_BINDIR_NATIVE}/python-native/python:g' ${S}/Makefile
+}
+
+do_install () {
+ oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
+}
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
index 02c0cd2..690a7f4 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
@@ -9,14 +9,11 @@
PV .= "+git${SRCPV}"
-SRCREV = "208595b2620cf6260ce3d6d4cf8543f13b206449"
-
SRC_URI = "git://github.com/msgpack/msgpack-c \
file://0001-Fix-Werror-class-memaccess.patch \
"
-
-inherit cmake pkgconfig
+SRCREV = "208595b2620cf6260ce3d6d4cf8543f13b206449"
S = "${WORKDIR}/git"
-FILES_${PN}-dev += "${libdir}/cmake/msgpack/*.cmake"
+inherit cmake pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.12.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.12.0.bb
new file mode 100644
index 0000000..8c33978
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.12.0.bb
@@ -0,0 +1,92 @@
+DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
+HOMEPAGE = "http://nodejs.org"
+LICENSE = "MIT & BSD & Artistic-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fde91d5c5bbd1e0389623e1ac018d9e8"
+
+DEPENDS = "openssl zlib icu"
+
+inherit pkgconfig
+
+COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
+COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
+COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
+
+SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
+ file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
+"
+SRC_URI[md5sum] = "8b3abd033dae96b6fadcb6a872a44d3c"
+SRC_URI[sha256sum] = "5a9dff58016c18fb4bf902d963b124ff058a550ebcd9840c677757387bce419a"
+
+S = "${WORKDIR}/node-v${PV}"
+
+# v8 errors out if you have set CCACHE
+CCACHE = ""
+
+def map_nodejs_arch(a, d):
+ import re
+
+ if re.match('i.86$', a): return 'ia32'
+ elif re.match('x86_64$', a): return 'x64'
+ elif re.match('aarch64$', a): return 'arm64'
+ elif re.match('(powerpc64|ppc64le)$', a): return 'ppc64'
+ elif re.match('powerpc$', a): return 'ppc'
+ return a
+
+ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)} \
+ ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-arm-fpu=neon', \
+ bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', '--with-arm-fpu=vfpv3-d16', \
+ bb.utils.contains('TUNE_FEATURES', 'vfpv3', '--with-arm-fpu=vfpv3', \
+ '--with-arm-fpu=vfp', d), d), d)}"
+GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' "
+ARCHFLAGS ?= ""
+
+# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
+do_configure () {
+ rm -rf ${S}/deps/openssl
+ export LD="${CXX}"
+ GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
+ # $TARGET_ARCH settings don't match --dest-cpu settings
+ ./configure --prefix=${prefix} --with-intl=system-icu --without-snapshot --shared-openssl --shared-zlib \
+ --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
+ --dest-os=linux \
+ ${ARCHFLAGS}
+}
+
+do_compile () {
+ export LD="${CXX}"
+ oe_runmake BUILDTYPE=Release
+}
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
+
+do_install_append_class-native() {
+ # use node from PATH instead of absolute path to sysroot
+ # node-v0.10.25/tools/install.py is using:
+ # shebang = os.path.join(node_prefix, 'bin/node')
+ # update_shebang(link_path, shebang)
+ # and node_prefix can be very long path to bindir in native sysroot and
+ # when it exceeds 128 character shebang limit it's stripped to incorrect path
+ # and npm fails to execute like in this case with 133 characters show in log.do_install:
+ # updating shebang of /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/work/x86_64-linux/nodejs-native/0.10.15-r0/image/home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/npm to /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/node
+ # /usr/bin/npm is symlink to /usr/lib/node_modules/npm/bin/npm-cli.js
+ # use sed on npm-cli.js because otherwise symlink is replaced with normal file and
+ # npm-cli.js continues to use old shebang
+ sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+}
+
+do_install_append_class-target() {
+ sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+}
+
+PACKAGES =+ "${PN}-npm"
+FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx"
+RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils \
+ python-compiler python-misc python-multiprocessing"
+
+PACKAGES =+ "${PN}-systemtap"
+FILES_${PN}-systemtap = "${datadir}/systemtap"
+
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb
deleted file mode 100644
index 8930cd9..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb
+++ /dev/null
@@ -1,90 +0,0 @@
-DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
-HOMEPAGE = "http://nodejs.org"
-LICENSE = "MIT & BSD & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=270f7477a1705f7cd3e29d3d4512915d"
-
-DEPENDS = "openssl10 zlib"
-
-COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
-COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
-COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
-
-SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
- file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
-"
-SRC_URI[md5sum] = "631ed102fe58c13cf63bc92a68cf4759"
-SRC_URI[sha256sum] = "6cdcde9c9c1ca9f450a0b24eafa229ca759e576daa0fae892ce74d541ecdc86f"
-
-S = "${WORKDIR}/node-v${PV}"
-
-# v8 errors out if you have set CCACHE
-CCACHE = ""
-
-def map_nodejs_arch(a, d):
- import re
-
- if re.match('i.86$', a): return 'ia32'
- elif re.match('x86_64$', a): return 'x64'
- elif re.match('aarch64$', a): return 'arm64'
- elif re.match('(powerpc64|ppc64le)$', a): return 'ppc64'
- elif re.match('powerpc$', a): return 'ppc'
- return a
-
-ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)} \
- ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-arm-fpu=neon', \
- bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', '--with-arm-fpu=vfpv3-d16', \
- bb.utils.contains('TUNE_FEATURES', 'vfpv3', '--with-arm-fpu=vfpv3', \
- '--with-arm-fpu=vfp', d), d), d)}"
-GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' "
-ARCHFLAGS ?= ""
-
-# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
-do_configure () {
- rm -rf ${S}/deps/openssl
- export LD="${CXX}"
- GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
- # $TARGET_ARCH settings don't match --dest-cpu settings
- ./configure --prefix=${prefix} --without-intl --without-snapshot --shared-openssl --shared-zlib \
- --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
- --dest-os=linux \
- ${ARCHFLAGS}
-}
-
-do_compile () {
- export LD="${CXX}"
- oe_runmake BUILDTYPE=Release
-}
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
-
-do_install_append_class-native() {
- # use node from PATH instead of absolute path to sysroot
- # node-v0.10.25/tools/install.py is using:
- # shebang = os.path.join(node_prefix, 'bin/node')
- # update_shebang(link_path, shebang)
- # and node_prefix can be very long path to bindir in native sysroot and
- # when it exceeds 128 character shebang limit it's stripped to incorrect path
- # and npm fails to execute like in this case with 133 characters show in log.do_install:
- # updating shebang of /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/work/x86_64-linux/nodejs-native/0.10.15-r0/image/home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/npm to /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/node
- # /usr/bin/npm is symlink to /usr/lib/node_modules/npm/bin/npm-cli.js
- # use sed on npm-cli.js because otherwise symlink is replaced with normal file and
- # npm-cli.js continues to use old shebang
- sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
-}
-
-do_install_append_class-target() {
- sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
-}
-
-PACKAGES =+ "${PN}-npm"
-FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx"
-RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils \
- python-compiler python-misc python-multiprocessing"
-
-PACKAGES =+ "${PN}-systemtap"
-FILES_${PN}-systemtap = "${datadir}/systemtap"
-
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch
deleted file mode 100644
index 644146c..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 8f85163b030e7b957648f90cd8fa599fb04d5d65 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 23:32:49 -0700
-Subject: [PATCH 1/5] Add fallthrough comments
-
-Fixes
-
-src/svf/svf.c:663:7: error: this statement may fall through [-Werror=implicit-fallthrough=]
- i = -1;
- ~~^~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/flash/mflash.c | 3 ++-
- src/flash/nand/mx3.c | 1 +
- src/jtag/drivers/ftdi.c | 1 +
- src/svf/svf.c | 2 ++
- src/target/arm_adi_v5.c | 9 +++++++++
- src/target/arm_disassembler.c | 1 +
- src/target/target.c | 1 +
- 7 files changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/src/flash/mflash.c b/src/flash/mflash.c
-index b69995542..3254a3d56 100644
---- a/src/flash/mflash.c
-+++ b/src/flash/mflash.c
-@@ -259,10 +259,11 @@ static int mg_dsk_wait(mg_io_type_wait wait_local, uint32_t time_var)
- case mg_io_wait_rdy:
- if (status & mg_io_rbit_status_ready)
- return ERROR_OK;
--
-+ /* fallthru */
- case mg_io_wait_drq:
- if (status & mg_io_rbit_status_data_req)
- return ERROR_OK;
-+ /* fallthru */
-
- default:
- break;
-diff --git a/src/flash/nand/mx3.c b/src/flash/nand/mx3.c
-index b61e47535..0a55929ed 100644
---- a/src/flash/nand/mx3.c
-+++ b/src/flash/nand/mx3.c
-@@ -281,6 +281,7 @@ static int imx31_command(struct nand_device *nand, uint8_t command)
- * offset == one half of page size
- */
- in_sram_address = MX3_NF_MAIN_BUFFER0 + (nand->page_size >> 1);
-+ /* fallthru */
- default:
- in_sram_address = MX3_NF_MAIN_BUFFER0;
- }
-diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
-index 00fe37faf..20f17d810 100644
---- a/src/jtag/drivers/ftdi.c
-+++ b/src/jtag/drivers/ftdi.c
-@@ -855,6 +855,7 @@ COMMAND_HANDLER(ftdi_handle_set_signal_command)
- ftdi_set_signal(sig, *CMD_ARGV[1]);
- break;
- }
-+ /* fallthru */
- default:
- LOG_ERROR("unknown signal level '%s', use 0, 1 or z", CMD_ARGV[1]);
- return ERROR_COMMAND_SYNTAX_ERROR;
-diff --git a/src/svf/svf.c b/src/svf/svf.c
-index e7e815c10..7b261cc72 100644
---- a/src/svf/svf.c
-+++ b/src/svf/svf.c
-@@ -661,11 +661,13 @@ static int svf_read_command_from_file(FILE *fd)
- if (svf_getline(&svf_read_line, &svf_read_line_size, svf_fd) <= 0)
- return ERROR_FAIL;
- i = -1;
-+ /* fallthru */
- case '\r':
- slash = 0;
- /* Don't save '\r' and '\n' if no data is parsed */
- if (!cmd_pos)
- break;
-+ /* fallthru */
- default:
- /* The parsing code currently expects a space
- * before parentheses -- "TDI (123)". Also a
-diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c
-index eafc2ddc0..d444db2b1 100644
---- a/src/target/arm_adi_v5.c
-+++ b/src/target/arm_adi_v5.c
-@@ -346,10 +346,13 @@ static int mem_ap_write(struct adiv5_ap *ap, const uint8_t *buffer, uint32_t siz
- case 4:
- outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
- outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
-+ /* fallthru */
- case 2:
- outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
-+ /* fallthru */
- case 1:
- outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
-+ /* fallthru */
- }
- }
-
-@@ -509,20 +512,26 @@ static int mem_ap_read(struct adiv5_ap *ap, uint8_t *buffer, uint32_t size, uint
- case 4:
- *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
- *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
-+ /* fallthru */
- case 2:
- *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
-+ /* fallthru */
- case 1:
- *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
-+ /* fallthru */
- }
- } else {
- switch (this_size) {
- case 4:
- *buffer++ = *read_ptr >> 8 * (address++ & 3);
- *buffer++ = *read_ptr >> 8 * (address++ & 3);
-+ /* fallthru */
- case 2:
- *buffer++ = *read_ptr >> 8 * (address++ & 3);
-+ /* fallthru */
- case 1:
- *buffer++ = *read_ptr >> 8 * (address++ & 3);
-+ /* fallthru */
- }
- }
-
-diff --git a/src/target/arm_disassembler.c b/src/target/arm_disassembler.c
-index 5277b94d8..2eb21ea33 100644
---- a/src/target/arm_disassembler.c
-+++ b/src/target/arm_disassembler.c
-@@ -3299,6 +3299,7 @@ static int t2ev_data_immed(uint32_t opcode, uint32_t address,
- case 0x10:
- case 0x12:
- is_signed = true;
-+ /* fallthru */
- case 0x18:
- case 0x1a:
- /* signed/unsigned saturated add */
-diff --git a/src/target/target.c b/src/target/target.c
-index e04ecc470..597b4b13d 100644
---- a/src/target/target.c
-+++ b/src/target/target.c
-@@ -3684,6 +3684,7 @@ COMMAND_HANDLER(handle_bp_command)
- addr = 0;
- return handle_bp_command_set(CMD_CTX, addr, asid, length, hw);
- }
-+ /* fallthru */
-
- case 4:
- hw = BKPT_HARD;
---
-2.13.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch
new file mode 100644
index 0000000..c5b9083
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch
@@ -0,0 +1,39 @@
+From b95a996bfb281104b68ec66f32ebb79db519a4a8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 May 2018 21:06:46 -0700
+Subject: [PATCH] Fix libusb-1.0.22 deprecated libusb_set_debug with
+ libusb_set_option
+
+libusb_set_debug is deprecated in libusb >= 1.0.22 therefore replace
+with equivalent libusb_set_option() API
+
+see libusb commit for more details
+
+https://github.com/libusb/libusb/commit/539f22e2fd916558d11ab9a66f10f461c5593168
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [http://openocd.zylin.com/#/c/4540/]
+ src/jtag/drivers/xds110.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/jtag/drivers/xds110.c b/src/jtag/drivers/xds110.c
+index 90b699027..9bfe02ea8 100644
+--- a/src/jtag/drivers/xds110.c
++++ b/src/jtag/drivers/xds110.c
+@@ -367,8 +367,11 @@ static bool usb_connect(void)
+
+ /* Set libusb to auto detach kernel and disable debug messages */
+ (void)libusb_set_auto_detach_kernel_driver(dev, 1);
++#if LIBUSB_API_VERSION >= 0x01000106
++ libusb_set_option(ctx, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_NONE);
++#else
+ libusb_set_debug(ctx, LIBUSB_LOG_LEVEL_NONE);
+-
++#endif
+ /* Claim the debug interface on the XDS110 */
+ result = libusb_claim_interface(dev, INTERFACE_DEBUG);
+ } else {
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch
deleted file mode 100644
index aa99735..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 8daaa8c27794653d02854c5982669a7638473224 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 23:52:46 -0700
-Subject: [PATCH 2/5] Workaround new warnings generated by GCC 7
-
-src/flash/nor/xmc4xxx.c: In function 'xmc4xxx_get_info_command':
-src/flash/nor/xmc4xxx.c:939:43: error: '%d' directive output may be truncated writing between 1 and 10 bytes into a region of size 6 [-Werror=format-truncation=]
- snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
- ^~
-src/flash/nor/xmc4xxx.c:939:40: note: directive argument in the range [0, 2147483647]
- snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
- ^~~~~~~~
-src/flash/nor/xmc4xxx.c:939:5: note: 'snprintf' output between 5 and 14 bytes into a destination of size 8
- snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
- ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/flash/nor/xmc4xxx.c | 2 +-
- src/target/arm_adi_v5.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/flash/nor/xmc4xxx.c b/src/flash/nor/xmc4xxx.c
-index 02df46a3f..e6c398ff9 100644
---- a/src/flash/nor/xmc4xxx.c
-+++ b/src/flash/nor/xmc4xxx.c
-@@ -931,7 +931,7 @@ static int xmc4xxx_get_info_command(struct flash_bank *bank, char *buf, int buf_
-
- /* If OTP Write protection is enabled (User 2), list each
- * sector that has it enabled */
-- char otp_str[8];
-+ char otp_str[14];
- if (otp_enabled) {
- strcat(prot_str, "\nOTP Protection is enabled for sectors:\n");
- for (int i = 0; i < bank->num_sectors; i++) {
-diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c
-index d444db2b1..d0d95121f 100644
---- a/src/target/arm_adi_v5.c
-+++ b/src/target/arm_adi_v5.c
-@@ -1062,7 +1062,7 @@ static int dap_rom_display(struct command_context *cmd_ctx,
- int retval;
- uint64_t pid;
- uint32_t cid;
-- char tabs[7] = "";
-+ char tabs[16] = "";
-
- if (depth > 16) {
- command_print(cmd_ctx, "\tTables too deep");
---
-2.13.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch
deleted file mode 100644
index bcfbfc9..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 8e5051e83fedb078170565a24d1f5de6c2ce4428 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Jun 2017 00:01:51 -0700
-Subject: [PATCH 3/5] armv7a: Add missing break to fix fallthrough warning
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/target/armv7a.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/target/armv7a.c b/src/target/armv7a.c
-index 6021def4e..bad806b3d 100644
---- a/src/target/armv7a.c
-+++ b/src/target/armv7a.c
-@@ -355,6 +355,7 @@ int armv7a_mmu_translate_va_pa(struct target *target, uint32_t va,
- break;
- case 7:
- LOG_INFO("inner: Write-Back, no Write-Allocate");
-+ break;
-
- default:
- LOG_INFO("inner: %" PRIx32 " ???", INNER);
---
-2.13.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch
deleted file mode 100644
index bfc5627..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d3ca56370a2be7e737d48bd14d474d790a0ab8ac Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Jun 2017 00:04:00 -0700
-Subject: [PATCH 4/5] Fix overflow warning
-
-Remove an empty space which makes it fit into 11 byte string
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/target/nds32_cmd.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/target/nds32_cmd.c b/src/target/nds32_cmd.c
-index edb4872e4..73355073c 100644
---- a/src/target/nds32_cmd.c
-+++ b/src/target/nds32_cmd.c
-@@ -821,7 +821,7 @@ static int jim_nds32_bulk_read(Jim_Interp *interp, int argc, Jim_Obj * const *ar
- jim_wide i;
- Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
- for (i = 0; i < count; i++) {
-- sprintf(data_str, "0x%08" PRIx32 " ", data[i]);
-+ sprintf(data_str, "0x%08" PRIx32 "", data[i]);
- Jim_AppendStrings(interp, Jim_GetResult(interp), data_str, NULL);
- }
-
---
-2.13.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch
deleted file mode 100644
index 60f75da..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 29dbf92ffdbdda29662b4190a2f8eb09caad8b51 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Jun 2017 00:06:32 -0700
-Subject: [PATCH 5/5] command: Move the fall through comment to right scope
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/helper/command.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/helper/command.c b/src/helper/command.c
-index 5deaee859..287c14857 100644
---- a/src/helper/command.c
-+++ b/src/helper/command.c
-@@ -1456,8 +1456,8 @@ COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label)
- LOG_ERROR("%s: argument '%s' is not valid", CMD_NAME, in);
- return ERROR_COMMAND_SYNTAX_ERROR;
- }
-- /* fall through */
- }
-+ /* fall through */
- case 0:
- LOG_INFO("%s is %s", label, *out ? "enabled" : "disabled");
- break;
---
-2.13.1
-
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 1a15e53..21a86de 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -9,17 +9,14 @@
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 \
+ file://0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch \
"
+
SRCREV_FORMAT = "openocd"
-SRCREV_openocd = "1025be363e2bf42f1613083223a2322cc3a9bd4c"
+SRCREV_openocd = "cdf1e826eb23c29de1019ce64125f644f01b0afe"
SRCREV_git2cl = "8373c9f74993e218a08819cbcdbab3f3564bbeba"
SRCREV_jimtcl = "a9bf5975fd0f89974d689a2d9ebd0873c8d64787"
-SRCREV_libjaylink = "699b7001d34a79c8e7064503dde1bede786fd7f0"
+SRCREV_libjaylink = "8645845c1abebd004e991ba9a7f808f4fd0c608b"
PV = "0.10+gitr${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pax-utils/pax-utils_1.2.2.bb b/meta-openembedded/meta-oe/recipes-devtools/pax-utils/pax-utils_1.2.2.bb
new file mode 100644
index 0000000..9635a5e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/pax-utils/pax-utils_1.2.2.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Security-focused ELF files checking tool"
+DESCRIPTION = "This is a small set of various PaX aware and related \
+utilities for ELF binaries. It can check ELF binary files and running \
+processes for issues that might be relevant when using ELF binaries \
+along with PaX, such as non-PIC code or executable stack and heap."
+HOMEPAGE = "http://www.gentoo.org/proj/en/hardened/pax-utils.xml"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SRC_URI = "https://dev.gentoo.org/~vapier/dist/pax-utils-${PV}.tar.xz"
+SRC_URI[md5sum] = "a580468318f0ff42edf4a8cd314cc942"
+SRC_URI[sha256sum] = "7f4a7f8db6b4743adde7582fa48992ad01776796fcde030683732f56221337d9"
+
+RDEPENDS_${PN} += "bash"
+
+export GNULIB_OVERRIDES_WINT_T = "0"
+
+do_configure_prepend() {
+ touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog ${S}/README
+}
+
+do_install() {
+ oe_runmake PREFIX=${D}${prefix} DESTDIR=${D} install
+}
+
+BBCLASSEXTEND = "native"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[libcap] = "--with-caps, --without-caps, libcap"
+PACKAGECONFIG[libseccomp] = "--with-seccomp, --without-seccomp, libseccomp"
+PACKAGECONFIG[pyelftools] = "--with-python, --without-python,, pyelftools"
+
+EXTRA_OECONF += "--enable-largefile"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
deleted file mode 100644
index 08c966d..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "\
-IPC::Run allows you run and interact with child processes \
-using files, pipes, and pseudo-ttys. Both system()-style and scripted \
-usages are supported and may be mixed. Likewise, functional and OO API \
-styles are both supported and may be mixed."
-HOMEPAGE = "https://metacpan.org/release/IPC-Run"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
-DEPENDS = "perl"
-
-SRC_URI = "git://github.com/toddr/IPC-Run.git"
-SRCREV = "96066366ac8c401dff9c979d04f25dc8219ffcc1"
-
-S = "${WORKDIR}/git"
-
-inherit cpan
-
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
-do_compile() {
- export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
- cpan_do_compile
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_20180523.0.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_20180523.0.bb
new file mode 100644
index 0000000..c812ae1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_20180523.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "\
+IPC::Run allows you run and interact with child processes \
+using files, pipes, and pseudo-ttys. Both system()-style and scripted \
+usages are supported and may be mixed. Likewise, functional and OO API \
+styles are both supported and may be mixed."
+HOMEPAGE = "https://metacpan.org/release/IPC-Run"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
+DEPENDS = "perl"
+
+SRC_URI = "git://github.com/toddr/IPC-Run.git"
+SRCREV = "0b409702490729eeb97ae65f5b94d949ec083134"
+
+S = "${WORKDIR}/git"
+
+inherit cpan
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php.inc b/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
index 066b97c..bfd0ddf 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
@@ -5,8 +5,7 @@
LICENSE = "PHP-3.0"
BBCLASSEXTEND = "native"
-DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native \
- openssl"
+DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native"
DEPENDS_class-native = "zlib-native libxml2-native"
PHP_MAJOR_VERSION = "${@d.getVar('PV', True).split('.')[0]}"
@@ -59,7 +58,7 @@
${COMMON_EXTRA_OECONF} \
"
-CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=yes ac_cv_lib_dl_dlopen=yes"
+CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=no ac_cv_lib_dl_dlopen=yes"
EXTRA_OECONF_class-native = " \
--with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
@@ -67,7 +66,7 @@
${COMMON_EXTRA_OECONF} \
"
-PACKAGECONFIG ??= "mysql sqlite3 imap opcache \
+PACKAGECONFIG ??= "mysql sqlite3 imap opcache openssl \
${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
"
PACKAGECONFIG_class-native = ""
@@ -80,7 +79,7 @@
PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
--with-pdo-sqlite=${STAGING_LIBDIR}/.. \
- , \
+ ,--without-sqlite3 --without-pdo-sqlite \
,sqlite3"
PACKAGECONFIG[pgsql] = "--with-pgsql=${STAGING_DIR_TARGET}${exec_prefix},--without-pgsql,postgresql"
PACKAGECONFIG[soap] = "--enable-libxml --enable-soap, --disable-soap, libxml2"
@@ -91,7 +90,8 @@
,--without-imap --without-imap-ssl \
,uw-imap"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-PACKAGECONFIG[opcache] = ",--disable-opcache"
+PACKAGECONFIG[opcache] = "--enable-opcache,--disable-opcache"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-PHP-5.6-LibSSL-1.1-compatibility.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-PHP-5.6-LibSSL-1.1-compatibility.patch
new file mode 100644
index 0000000..ac8365b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-PHP-5.6-LibSSL-1.1-compatibility.patch
@@ -0,0 +1,1285 @@
+Subject: [PATCH] PHP 5.6 - LibSSL 1.1 compatibility
+
+This patch does not try to backport the 7.1 openssl module, it is the
+improved version of the 5.6 original openssl module.
+
+https://github.com/oerdnj/deb.sury.org/issues/566
+http://zettasystem.com/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
+
+Upstream-Status: Deny [https://github.com/php/php-src/pull/2667]
+Reason: As PHP 5.6 is no longer actively supported only security fixes
+may land on this branch. As this change does not fall in this category,
+I'm closing this PR. (All higher versions of PHP already have OpenSSL
+1.1 support.)
+
+Author: zsalab@github https://github.com/zsalab
+
+Only port source modification, do not include the test case
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ ext/openssl/openssl.c | 683 +++++++++++++++++++++++++++++++++++++-------------
+ ext/openssl/xp_ssl.c | 18 +-
+ ext/phar/util.c | 13 +-
+ 3 files changed, 527 insertions(+), 187 deletions(-)
+
+diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
+index a78a8fb..b53114c 100644
+--- a/ext/openssl/openssl.c
++++ b/ext/openssl/openssl.c
+@@ -42,6 +42,12 @@
+
+ /* OpenSSL includes */
+ #include <openssl/evp.h>
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#include <openssl/bn.h>
++#include <openssl/rsa.h>
++#include <openssl/dsa.h>
++#include <openssl/dh.h>
++#endif
+ #include <openssl/x509.h>
+ #include <openssl/x509v3.h>
+ #include <openssl/crypto.h>
+@@ -531,6 +537,133 @@ zend_module_entry openssl_module_entry = {
+ ZEND_GET_MODULE(openssl)
+ #endif
+
++/* {{{ OpenSSL compatibility functions and macros */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++#define EVP_PKEY_get0_RSA(_pkey) _pkey->pkey.rsa
++#define EVP_PKEY_get0_DH(_pkey) _pkey->pkey.dh
++#define EVP_PKEY_get0_DSA(_pkey) _pkey->pkey.dsa
++#define EVP_PKEY_get0_EC_KEY(_pkey) _pkey->pkey.ec
++
++static int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
++{
++ r->n = n;
++ r->e = e;
++ r->d = d;
++
++ return 1;
++}
++
++static int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
++{
++ r->p = p;
++ r->q = q;
++
++ return 1;
++}
++
++static int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
++{
++ r->dmp1 = dmp1;
++ r->dmq1 = dmq1;
++ r->iqmp = iqmp;
++
++ return 1;
++}
++
++static void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
++{
++ *n = r->n;
++ *e = r->e;
++ *d = r->d;
++}
++
++static void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
++{
++ *p = r->p;
++ *q = r->q;
++}
++
++static void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp)
++{
++ *dmp1 = r->dmp1;
++ *dmq1 = r->dmq1;
++ *iqmp = r->iqmp;
++}
++
++static void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
++{
++ *p = dh->p;
++ *q = dh->q;
++ *g = dh->g;
++}
++
++static int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
++{
++ dh->p = p;
++ dh->q = q;
++ dh->g = g;
++
++ return 1;
++}
++
++static void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
++{
++ *pub_key = dh->pub_key;
++ *priv_key = dh->priv_key;
++}
++
++static int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
++{
++ dh->pub_key = pub_key;
++ dh->priv_key = priv_key;
++
++ return 1;
++}
++
++static void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
++{
++ *p = d->p;
++ *q = d->q;
++ *g = d->g;
++}
++
++int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
++{
++ d->p = p;
++ d->q = q;
++ d->g = g;
++
++ return 1;
++}
++
++static void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key)
++{
++ *pub_key = d->pub_key;
++ *priv_key = d->priv_key;
++}
++
++int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
++{
++ d->pub_key = pub_key;
++ d->priv_key = priv_key;
++
++ return 1;
++}
++
++#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined (LIBRESSL_VERSION_NUMBER)
++#define EVP_PKEY_id(_pkey) _pkey->type
++#define EVP_PKEY_base_id(_key) EVP_PKEY_type(_key->type)
++
++static int X509_get_signature_nid(const X509 *x)
++{
++ return OBJ_obj2nid(x->sig_alg->algorithm);
++}
++
++#endif
++
++#endif
++/* }}} */
++
+ static int le_key;
+ static int le_x509;
+ static int le_csr;
+@@ -825,7 +958,7 @@ static int add_oid_section(struct php_x509_request * req TSRMLS_DC) /* {{{ */
+ }
+ for (i = 0; i < sk_CONF_VALUE_num(sktmp); i++) {
+ cnf = sk_CONF_VALUE_value(sktmp, i);
+- if (OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
++ if (OBJ_sn2nid(cnf->name) == NID_undef && OBJ_ln2nid(cnf->name) == NID_undef && OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "problem creating object %s=%s", cnf->name, cnf->value);
+ return FAILURE;
+ }
+@@ -967,7 +1100,7 @@ static void php_openssl_dispose_config(struct php_x509_request * req TSRMLS_DC)
+ }
+ /* }}} */
+
+-#ifdef PHP_WIN32
++#if defined(PHP_WIN32) || (OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER))
+ #define PHP_OPENSSL_RAND_ADD_TIME() ((void) 0)
+ #else
+ #define PHP_OPENSSL_RAND_ADD_TIME() php_openssl_rand_add_timeval()
+@@ -1053,9 +1186,11 @@ static EVP_MD * php_openssl_get_evp_md_from_algo(long algo) { /* {{{ */
+ mdtype = (EVP_MD *) EVP_md2();
+ break;
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
+ case OPENSSL_ALGO_DSS1:
+ mdtype = (EVP_MD *) EVP_dss1();
+ break;
++#endif
+ #if OPENSSL_VERSION_NUMBER >= 0x0090708fL
+ case OPENSSL_ALGO_SHA224:
+ mdtype = (EVP_MD *) EVP_sha224();
+@@ -1146,6 +1281,12 @@ PHP_MINIT_FUNCTION(openssl)
+ OpenSSL_add_all_digests();
+ OpenSSL_add_all_algorithms();
+
++#if !defined(OPENSSL_NO_AES) && defined(EVP_CIPH_CCM_MODE) && OPENSSL_VERSION_NUMBER < 0x100020000
++ EVP_add_cipher(EVP_aes_128_ccm());
++ EVP_add_cipher(EVP_aes_192_ccm());
++ EVP_add_cipher(EVP_aes_256_ccm());
++#endif
++
+ SSL_load_error_strings();
+
+ /* register a resource id number with OpenSSL so that we can map SSL -> stream structures in
+@@ -1173,7 +1314,9 @@ PHP_MINIT_FUNCTION(openssl)
+ #ifdef HAVE_OPENSSL_MD2_H
+ REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT);
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
+ REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT);
++#endif
+ #if OPENSSL_VERSION_NUMBER >= 0x0090708fL
+ REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA256", OPENSSL_ALGO_SHA256, CONST_CS|CONST_PERSISTENT);
+@@ -1251,7 +1394,9 @@ PHP_MINIT_FUNCTION(openssl)
+ }
+
+ php_stream_xport_register("ssl", php_openssl_ssl_socket_factory TSRMLS_CC);
++#ifndef OPENSSL_NO_SSL3
+ php_stream_xport_register("sslv3", php_openssl_ssl_socket_factory TSRMLS_CC);
++#endif
+ #ifndef OPENSSL_NO_SSL2
+ php_stream_xport_register("sslv2", php_openssl_ssl_socket_factory TSRMLS_CC);
+ #endif
+@@ -1308,7 +1453,9 @@ PHP_MSHUTDOWN_FUNCTION(openssl)
+ #ifndef OPENSSL_NO_SSL2
+ php_stream_xport_unregister("sslv2" TSRMLS_CC);
+ #endif
++#ifndef OPENSSL_NO_SSL3
+ php_stream_xport_unregister("sslv3" TSRMLS_CC);
++#endif
+ php_stream_xport_unregister("tls" TSRMLS_CC);
+ php_stream_xport_unregister("tlsv1.0" TSRMLS_CC);
+ #if OPENSSL_VERSION_NUMBER >= 0x10001001L
+@@ -1893,6 +2040,7 @@ static int openssl_x509v3_subjectAltName(BIO *bio, X509_EXTENSION *extension)
+ {
+ GENERAL_NAMES *names;
+ const X509V3_EXT_METHOD *method = NULL;
++ ASN1_OCTET_STRING *extension_data;
+ long i, length, num;
+ const unsigned char *p;
+
+@@ -1901,8 +2049,9 @@ static int openssl_x509v3_subjectAltName(BIO *bio, X509_EXTENSION *extension)
+ return -1;
+ }
+
+- p = extension->value->data;
+- length = extension->value->length;
++ extension_data = X509_EXTENSION_get_data(extension);
++ p = extension_data->data;
++ length = extension_data->length;
+ if (method->it) {
+ names = (GENERAL_NAMES*)(ASN1_item_d2i(NULL, &p, length,
+ ASN1_ITEM_ptr(method->it)));
+@@ -1965,6 +2114,8 @@ PHP_FUNCTION(openssl_x509_parse)
+ char * tmpstr;
+ zval * subitem;
+ X509_EXTENSION *extension;
++ X509_NAME *subject_name;
++ char *cert_name;
+ char *extname;
+ BIO *bio_out;
+ BUF_MEM *bio_buf;
+@@ -1979,10 +2130,10 @@ PHP_FUNCTION(openssl_x509_parse)
+ }
+ array_init(return_value);
+
+- if (cert->name) {
+- add_assoc_string(return_value, "name", cert->name, 1);
+- }
+-/* add_assoc_bool(return_value, "valid", cert->valid); */
++ subject_name = X509_get_subject_name(cert);
++ cert_name = X509_NAME_oneline(subject_name, NULL, 0);
++ add_assoc_string(return_value, "name", cert_name, 1);
++ OPENSSL_free(cert_name);
+
+ add_assoc_name_entry(return_value, "subject", X509_get_subject_name(cert), useshortnames TSRMLS_CC);
+ /* hash as used in CA directories to lookup cert by subject name */
+@@ -2008,7 +2159,7 @@ PHP_FUNCTION(openssl_x509_parse)
+ add_assoc_string(return_value, "alias", tmpstr, 1);
+ }
+
+- sig_nid = OBJ_obj2nid((cert)->sig_alg->algorithm);
++ sig_nid = X509_get_signature_nid(cert);
+ add_assoc_string(return_value, "signatureTypeSN", (char*)OBJ_nid2sn(sig_nid), 1);
+ add_assoc_string(return_value, "signatureTypeLN", (char*)OBJ_nid2ln(sig_nid), 1);
+ add_assoc_long(return_value, "signatureTypeNID", sig_nid);
+@@ -3217,7 +3368,21 @@ PHP_FUNCTION(openssl_csr_get_public_key)
+ RETURN_FALSE;
+ }
+
+- tpubkey=X509_REQ_get_pubkey(csr);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++ /* Due to changes in OpenSSL 1.1 related to locking when decoding CSR,
++ * the pub key is not changed after assigning. It means if we pass
++ * a private key, it will be returned including the private part.
++ * If we duplicate it, then we get just the public part which is
++ * the same behavior as for OpenSSL 1.0 */
++ csr = X509_REQ_dup(csr);
++#endif
++ /* Retrieve the public key from the CSR */
++ tpubkey = X509_REQ_get_pubkey(csr);
++
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++ /* We need to free the CSR as it was duplicated */
++ X509_REQ_free(csr);
++#endif
+ RETVAL_RESOURCE(zend_list_insert(tpubkey, le_key TSRMLS_CC));
+ return;
+ }
+@@ -3482,13 +3647,20 @@ static int php_openssl_is_private_key(EVP_PKEY* pkey TSRMLS_DC)
+ {
+ assert(pkey != NULL);
+
+- switch (pkey->type) {
++ switch (EVP_PKEY_id(pkey)) {
+ #ifndef NO_RSA
+ case EVP_PKEY_RSA:
+ case EVP_PKEY_RSA2:
+- assert(pkey->pkey.rsa != NULL);
+- if (pkey->pkey.rsa != NULL && (NULL == pkey->pkey.rsa->p || NULL == pkey->pkey.rsa->q)) {
+- return 0;
++ {
++ RSA *rsa = EVP_PKEY_get0_RSA(pkey);
++ if (rsa != NULL) {
++ const BIGNUM *p, *q;
++
++ RSA_get0_factors(rsa, &p, &q);
++ if (p == NULL || q == NULL) {
++ return 0;
++ }
++ }
+ }
+ break;
+ #endif
+@@ -3498,28 +3670,51 @@ static int php_openssl_is_private_key(EVP_PKEY* pkey TSRMLS_DC)
+ case EVP_PKEY_DSA2:
+ case EVP_PKEY_DSA3:
+ case EVP_PKEY_DSA4:
+- assert(pkey->pkey.dsa != NULL);
+-
+- if (NULL == pkey->pkey.dsa->p || NULL == pkey->pkey.dsa->q || NULL == pkey->pkey.dsa->priv_key){
+- return 0;
++ {
++ DSA *dsa = EVP_PKEY_get0_DSA(pkey);
++ if (dsa != NULL) {
++ const BIGNUM *p, *q, *g, *pub_key, *priv_key;
++
++ DSA_get0_pqg(dsa, &p, &q, &g);
++ if (p == NULL || q == NULL) {
++ return 0;
++ }
++
++ DSA_get0_key(dsa, &pub_key, &priv_key);
++ if (priv_key == NULL) {
++ return 0;
++ }
++ }
+ }
+ break;
+ #endif
+ #ifndef NO_DH
+ case EVP_PKEY_DH:
+- assert(pkey->pkey.dh != NULL);
+-
+- if (NULL == pkey->pkey.dh->p || NULL == pkey->pkey.dh->priv_key) {
+- return 0;
++ {
++ DH *dh = EVP_PKEY_get0_DH(pkey);
++ if (dh != NULL) {
++ const BIGNUM *p, *q, *g, *pub_key, *priv_key;
++
++ DH_get0_pqg(dh, &p, &q, &g);
++ if (p == NULL) {
++ return 0;
++ }
++
++ DH_get0_key(dh, &pub_key, &priv_key);
++ if (priv_key == NULL) {
++ return 0;
++ }
++ }
+ }
+ break;
+ #endif
+ #ifdef HAVE_EVP_PKEY_EC
+ case EVP_PKEY_EC:
+- assert(pkey->pkey.ec != NULL);
+-
+- if ( NULL == EC_KEY_get0_private_key(pkey->pkey.ec)) {
+- return 0;
++ {
++ EC_KEY *ec = EVP_PKEY_get0_EC_KEY(pkey);
++ if (ec != NULL && NULL == EC_KEY_get0_private_key(ec)) {
++ return 0;
++ }
+ }
+ break;
+ #endif
+@@ -3531,34 +3726,80 @@ static int php_openssl_is_private_key(EVP_PKEY* pkey TSRMLS_DC)
+ }
+ /* }}} */
+
+-#define OPENSSL_PKEY_GET_BN(_type, _name) do { \
+- if (pkey->pkey._type->_name != NULL) { \
+- int len = BN_num_bytes(pkey->pkey._type->_name); \
+- char *str = emalloc(len + 1); \
+- BN_bn2bin(pkey->pkey._type->_name, (unsigned char*)str); \
+- str[len] = 0; \
+- add_assoc_stringl(_type, #_name, str, len, 0); \
+- } \
+- } while (0)
+-
+-#define OPENSSL_PKEY_SET_BN(_ht, _type, _name) do { \
+- zval **bn; \
+- if (zend_hash_find(_ht, #_name, sizeof(#_name), (void**)&bn) == SUCCESS && \
+- Z_TYPE_PP(bn) == IS_STRING) { \
+- _type->_name = BN_bin2bn( \
+- (unsigned char*)Z_STRVAL_PP(bn), \
+- Z_STRLEN_PP(bn), NULL); \
+- } \
++#define OPENSSL_GET_BN(_array, _bn, _name) do { \
++ if (_bn != NULL) { \
++ int len = BN_num_bytes(_bn); \
++ char *str = emalloc(len + 1); \
++ BN_bn2bin(_bn, (unsigned char*)str); \
++ str[len] = 0; \
++ add_assoc_stringl(_array, #_name, str, len, 0); \
++ } \
+ } while (0);
+
++#define OPENSSL_PKEY_GET_BN(_type, _name) OPENSSL_GET_BN(_type, _name, _name)
++
++#define OPENSSL_PKEY_SET_BN(_data, _name) do { \
++ zval **bn; \
++ if (zend_hash_find(Z_ARRVAL_P(_data), #_name, sizeof(#_name),(void**)&bn) == SUCCESS && \
++ Z_TYPE_PP(bn) == IS_STRING) { \
++ _name = BN_bin2bn( \
++ (unsigned char*)Z_STRVAL_PP(bn), \
++ Z_STRLEN_PP(bn), NULL); \
++ } else { \
++ _name = NULL; \
++ } \
++ } while (0);
++
++/* {{{ php_openssl_pkey_init_rsa */
++zend_bool php_openssl_pkey_init_and_assign_rsa(EVP_PKEY *pkey, RSA *rsa, zval *data)
++{
++ BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp;
++
++ OPENSSL_PKEY_SET_BN(data, n);
++ OPENSSL_PKEY_SET_BN(data, e);
++ OPENSSL_PKEY_SET_BN(data, d);
++ if (!n || !d || !RSA_set0_key(rsa, n, e, d)) {
++ return 0;
++ }
++
++ OPENSSL_PKEY_SET_BN(data, p);
++ OPENSSL_PKEY_SET_BN(data, q);
++ if ((p || q) && !RSA_set0_factors(rsa, p, q)) {
++ return 0;
++ }
++
++ OPENSSL_PKEY_SET_BN(data, dmp1);
++ OPENSSL_PKEY_SET_BN(data, dmq1);
++ OPENSSL_PKEY_SET_BN(data, iqmp);
++ if ((dmp1 || dmq1 || iqmp) && !RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp)) {
++ return 0;
++ }
++
++ if (!EVP_PKEY_assign_RSA(pkey, rsa)) {
++ return 0;
++ }
++
++ return 1;
++}
++/* }}} */
++
+ /* {{{ php_openssl_pkey_init_dsa */
+-zend_bool php_openssl_pkey_init_dsa(DSA *dsa)
++zend_bool php_openssl_pkey_init_dsa(DSA *dsa, zval *data)
+ {
+- if (!dsa->p || !dsa->q || !dsa->g) {
++ BIGNUM *p, *q, *g, *priv_key, *pub_key;
++ const BIGNUM *priv_key_const, *pub_key_const;
++
++ OPENSSL_PKEY_SET_BN(data, p);
++ OPENSSL_PKEY_SET_BN(data, q);
++ OPENSSL_PKEY_SET_BN(data, g);
++ if (!p || !q || !g || !DSA_set0_pqg(dsa, p, q, g)) {
+ return 0;
+ }
+- if (dsa->priv_key || dsa->pub_key) {
+- return 1;
++
++ OPENSSL_PKEY_SET_BN(data, pub_key);
++ OPENSSL_PKEY_SET_BN(data, priv_key);
++ if (pub_key) {
++ return DSA_set0_key(dsa, pub_key, priv_key);
+ }
+ PHP_OPENSSL_RAND_ADD_TIME();
+ if (!DSA_generate_key(dsa)) {
+@@ -3566,7 +3807,8 @@ zend_bool php_openssl_pkey_init_dsa(DSA *dsa)
+ }
+ /* if BN_mod_exp return -1, then DSA_generate_key succeed for failed key
+ * so we need to double check that public key is created */
+- if (!dsa->pub_key || BN_is_zero(dsa->pub_key)) {
++ DSA_get0_key(dsa, &pub_key_const, &priv_key_const);
++ if (!pub_key_const || BN_is_zero(pub_key_const)) {
+ return 0;
+ }
+ /* all good */
+@@ -3574,14 +3816,66 @@ zend_bool php_openssl_pkey_init_dsa(DSA *dsa)
+ }
+ /* }}} */
+
++/* {{{ php_openssl_dh_pub_from_priv */
++static BIGNUM *php_openssl_dh_pub_from_priv(BIGNUM *priv_key, BIGNUM *g, BIGNUM *p)
++{
++ BIGNUM *pub_key, *priv_key_const_time;
++ BN_CTX *ctx;
++
++ pub_key = BN_new();
++ if (pub_key == NULL) {
++ return NULL;
++ }
++
++ priv_key_const_time = BN_new();
++ if (priv_key_const_time == NULL) {
++ BN_free(pub_key);
++ return NULL;
++ }
++ ctx = BN_CTX_new();
++ if (ctx == NULL) {
++ BN_free(pub_key);
++ BN_free(priv_key_const_time);
++ return NULL;
++ }
++
++ BN_with_flags(priv_key_const_time, priv_key, BN_FLG_CONSTTIME);
++
++ if (!BN_mod_exp_mont(pub_key, g, priv_key_const_time, p, ctx, NULL)) {
++ BN_free(pub_key);
++ pub_key = NULL;
++ }
++
++ BN_free(priv_key_const_time);
++ BN_CTX_free(ctx);
++
++ return pub_key;
++}
++/* }}} */
++
+ /* {{{ php_openssl_pkey_init_dh */
+-zend_bool php_openssl_pkey_init_dh(DH *dh)
++zend_bool php_openssl_pkey_init_dh(DH *dh, zval *data)
+ {
+- if (!dh->p || !dh->g) {
++ BIGNUM *p, *q, *g, *priv_key, *pub_key;
++
++ OPENSSL_PKEY_SET_BN(data, p);
++ OPENSSL_PKEY_SET_BN(data, q);
++ OPENSSL_PKEY_SET_BN(data, g);
++ if (!p || !g || !DH_set0_pqg(dh, p, q, g)) {
+ return 0;
+ }
+- if (dh->pub_key) {
+- return 1;
++
++ OPENSSL_PKEY_SET_BN(data, priv_key);
++ OPENSSL_PKEY_SET_BN(data, pub_key);
++ if (pub_key) {
++ return DH_set0_key(dh, pub_key, priv_key);
++ }
++ if (priv_key) {
++ pub_key = php_openssl_dh_pub_from_priv(priv_key, g, p);
++ if (pub_key == NULL) {
++ return 0;
++ }
++ return DH_set0_key(dh, pub_key, priv_key);
+ }
+ PHP_OPENSSL_RAND_ADD_TIME();
+ if (!DH_generate_key(dh)) {
+@@ -3614,18 +3908,8 @@ PHP_FUNCTION(openssl_pkey_new)
+ if (pkey) {
+ RSA *rsa = RSA_new();
+ if (rsa) {
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, n);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, e);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, d);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, p);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, q);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, dmp1);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, dmq1);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, iqmp);
+- if (rsa->n && rsa->d) {
+- if (EVP_PKEY_assign_RSA(pkey, rsa)) {
+- RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
+- }
++ if (php_openssl_pkey_init_and_assign_rsa(pkey, rsa, *data)) {
++ RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
+ }
+ RSA_free(rsa);
+ }
+@@ -3638,12 +3922,7 @@ PHP_FUNCTION(openssl_pkey_new)
+ if (pkey) {
+ DSA *dsa = DSA_new();
+ if (dsa) {
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, p);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, q);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, g);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, priv_key);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, pub_key);
+- if (php_openssl_pkey_init_dsa(dsa)) {
++ if (php_openssl_pkey_init_dsa(dsa, *data)) {
+ if (EVP_PKEY_assign_DSA(pkey, dsa)) {
+ RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
+ }
+@@ -3659,11 +3938,7 @@ PHP_FUNCTION(openssl_pkey_new)
+ if (pkey) {
+ DH *dh = DH_new();
+ if (dh) {
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, p);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, g);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, priv_key);
+- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, pub_key);
+- if (php_openssl_pkey_init_dh(dh)) {
++ if (php_openssl_pkey_init_dh(dh, *data)) {
+ if (EVP_PKEY_assign_DH(pkey, dh)) {
+ RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
+ }
+@@ -3738,10 +4013,10 @@ PHP_FUNCTION(openssl_pkey_export_to_file)
+ cipher = NULL;
+ }
+
+- switch (EVP_PKEY_type(key->type)) {
++ switch (EVP_PKEY_base_id(key)) {
+ #ifdef HAVE_EVP_PKEY_EC
+ case EVP_PKEY_EC:
+- pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get1_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL);
++ pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get0_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL);
+ break;
+ #endif
+ default:
+@@ -3807,7 +4082,7 @@ PHP_FUNCTION(openssl_pkey_export)
+ cipher = NULL;
+ }
+
+- switch (EVP_PKEY_type(key->type)) {
++ switch (EVP_PKEY_base_id(key)) {
+ #ifdef HAVE_EVP_PKEY_EC
+ case EVP_PKEY_EC:
+ pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get1_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL);
+@@ -3928,25 +4203,33 @@ PHP_FUNCTION(openssl_pkey_get_details)
+ /*TODO: Use the real values once the openssl constants are used
+ * See the enum at the top of this file
+ */
+- switch (EVP_PKEY_type(pkey->type)) {
++ switch (EVP_PKEY_base_id(pkey)) {
+ case EVP_PKEY_RSA:
+ case EVP_PKEY_RSA2:
+- ktype = OPENSSL_KEYTYPE_RSA;
+-
+- if (pkey->pkey.rsa != NULL) {
+- zval *rsa;
+-
+- ALLOC_INIT_ZVAL(rsa);
+- array_init(rsa);
+- OPENSSL_PKEY_GET_BN(rsa, n);
+- OPENSSL_PKEY_GET_BN(rsa, e);
+- OPENSSL_PKEY_GET_BN(rsa, d);
+- OPENSSL_PKEY_GET_BN(rsa, p);
+- OPENSSL_PKEY_GET_BN(rsa, q);
+- OPENSSL_PKEY_GET_BN(rsa, dmp1);
+- OPENSSL_PKEY_GET_BN(rsa, dmq1);
+- OPENSSL_PKEY_GET_BN(rsa, iqmp);
+- add_assoc_zval(return_value, "rsa", rsa);
++ {
++ RSA *rsa = EVP_PKEY_get0_RSA(pkey);
++ ktype = OPENSSL_KEYTYPE_RSA;
++
++ if (rsa != NULL) {
++ zval *z_rsa;
++ const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp;
++
++ RSA_get0_key(rsa, &n, &e, &d);
++ RSA_get0_factors(rsa, &p, &q);
++ RSA_get0_crt_params(rsa, &dmp1, &dmq1, &iqmp);
++
++ ALLOC_INIT_ZVAL(z_rsa);
++ array_init(z_rsa);
++ OPENSSL_PKEY_GET_BN(z_rsa, n);
++ OPENSSL_PKEY_GET_BN(z_rsa, e);
++ OPENSSL_PKEY_GET_BN(z_rsa, d);
++ OPENSSL_PKEY_GET_BN(z_rsa, p);
++ OPENSSL_PKEY_GET_BN(z_rsa, q);
++ OPENSSL_PKEY_GET_BN(z_rsa, dmp1);
++ OPENSSL_PKEY_GET_BN(z_rsa, dmq1);
++ OPENSSL_PKEY_GET_BN(z_rsa, iqmp);
++ add_assoc_zval(return_value, "rsa", z_rsa);
++ }
+ }
+
+ break;
+@@ -3954,42 +4237,55 @@ PHP_FUNCTION(openssl_pkey_get_details)
+ case EVP_PKEY_DSA2:
+ case EVP_PKEY_DSA3:
+ case EVP_PKEY_DSA4:
+- ktype = OPENSSL_KEYTYPE_DSA;
+-
+- if (pkey->pkey.dsa != NULL) {
+- zval *dsa;
+-
+- ALLOC_INIT_ZVAL(dsa);
+- array_init(dsa);
+- OPENSSL_PKEY_GET_BN(dsa, p);
+- OPENSSL_PKEY_GET_BN(dsa, q);
+- OPENSSL_PKEY_GET_BN(dsa, g);
+- OPENSSL_PKEY_GET_BN(dsa, priv_key);
+- OPENSSL_PKEY_GET_BN(dsa, pub_key);
+- add_assoc_zval(return_value, "dsa", dsa);
++ {
++ DSA *dsa = EVP_PKEY_get0_DSA(pkey);
++ ktype = OPENSSL_KEYTYPE_DSA;
++
++ if (dsa != NULL) {
++ zval *z_dsa;
++ const BIGNUM *p, *q, *g, *priv_key, *pub_key;
++
++ DSA_get0_pqg(dsa, &p, &q, &g);
++ DSA_get0_key(dsa, &pub_key, &priv_key);
++
++ ALLOC_INIT_ZVAL(z_dsa);
++ array_init(z_dsa);
++ OPENSSL_PKEY_GET_BN(z_dsa, p);
++ OPENSSL_PKEY_GET_BN(z_dsa, q);
++ OPENSSL_PKEY_GET_BN(z_dsa, g);
++ OPENSSL_PKEY_GET_BN(z_dsa, priv_key);
++ OPENSSL_PKEY_GET_BN(z_dsa, pub_key);
++ add_assoc_zval(return_value, "dsa", z_dsa);
++ }
+ }
+ break;
+ case EVP_PKEY_DH:
+-
+- ktype = OPENSSL_KEYTYPE_DH;
+-
+- if (pkey->pkey.dh != NULL) {
+- zval *dh;
+-
+- ALLOC_INIT_ZVAL(dh);
+- array_init(dh);
+- OPENSSL_PKEY_GET_BN(dh, p);
+- OPENSSL_PKEY_GET_BN(dh, g);
+- OPENSSL_PKEY_GET_BN(dh, priv_key);
+- OPENSSL_PKEY_GET_BN(dh, pub_key);
+- add_assoc_zval(return_value, "dh", dh);
++ {
++ DH *dh = EVP_PKEY_get0_DH(pkey);
++ ktype = OPENSSL_KEYTYPE_DH;
++
++ if (dh != NULL) {
++ zval *z_dh;
++ const BIGNUM *p, *q, *g, *priv_key, *pub_key;
++
++ DH_get0_pqg(dh, &p, &q, &g);
++ DH_get0_key(dh, &pub_key, &priv_key);
++
++ ALLOC_INIT_ZVAL(z_dh);
++ array_init(z_dh);
++ OPENSSL_PKEY_GET_BN(z_dh, p);
++ OPENSSL_PKEY_GET_BN(z_dh, g);
++ OPENSSL_PKEY_GET_BN(z_dh, priv_key);
++ OPENSSL_PKEY_GET_BN(z_dh, pub_key);
++ add_assoc_zval(return_value, "dh", z_dh);
++ }
+ }
+
+ break;
+ #ifdef HAVE_EVP_PKEY_EC
+ case EVP_PKEY_EC:
+ ktype = OPENSSL_KEYTYPE_EC;
+- if (pkey->pkey.ec != NULL) {
++ if (EVP_PKEY_get0_EC_KEY(pkey) != NULL) {
+ zval *ec;
+ const EC_GROUP *ec_group;
+ int nid;
+@@ -4546,13 +4842,13 @@ PHP_FUNCTION(openssl_private_encrypt)
+ cryptedlen = EVP_PKEY_size(pkey);
+ cryptedbuf = emalloc(cryptedlen + 1);
+
+- switch (pkey->type) {
++ switch (EVP_PKEY_id(pkey)) {
+ case EVP_PKEY_RSA:
+ case EVP_PKEY_RSA2:
+ successful = (RSA_private_encrypt(data_len,
+ (unsigned char *)data,
+ cryptedbuf,
+- pkey->pkey.rsa,
++ EVP_PKEY_get0_RSA(pkey),
+ padding) == cryptedlen);
+ break;
+ default:
+@@ -4604,13 +4900,13 @@ PHP_FUNCTION(openssl_private_decrypt)
+ cryptedlen = EVP_PKEY_size(pkey);
+ crypttemp = emalloc(cryptedlen + 1);
+
+- switch (pkey->type) {
++ switch (EVP_PKEY_id(pkey)) {
+ case EVP_PKEY_RSA:
+ case EVP_PKEY_RSA2:
+ cryptedlen = RSA_private_decrypt(data_len,
+ (unsigned char *)data,
+ crypttemp,
+- pkey->pkey.rsa,
++ EVP_PKEY_get0_RSA(pkey),
+ padding);
+ if (cryptedlen != -1) {
+ cryptedbuf = emalloc(cryptedlen + 1);
+@@ -4669,13 +4965,13 @@ PHP_FUNCTION(openssl_public_encrypt)
+ cryptedlen = EVP_PKEY_size(pkey);
+ cryptedbuf = emalloc(cryptedlen + 1);
+
+- switch (pkey->type) {
++ switch (EVP_PKEY_id(pkey)) {
+ case EVP_PKEY_RSA:
+ case EVP_PKEY_RSA2:
+ successful = (RSA_public_encrypt(data_len,
+ (unsigned char *)data,
+ cryptedbuf,
+- pkey->pkey.rsa,
++ EVP_PKEY_get0_RSA(pkey),
+ padding) == cryptedlen);
+ break;
+ default:
+@@ -4728,13 +5024,13 @@ PHP_FUNCTION(openssl_public_decrypt)
+ cryptedlen = EVP_PKEY_size(pkey);
+ crypttemp = emalloc(cryptedlen + 1);
+
+- switch (pkey->type) {
++ switch (EVP_PKEY_id(pkey)) {
+ case EVP_PKEY_RSA:
+ case EVP_PKEY_RSA2:
+ cryptedlen = RSA_public_decrypt(data_len,
+ (unsigned char *)data,
+ crypttemp,
+- pkey->pkey.rsa,
++ EVP_PKEY_get0_RSA(pkey),
+ padding);
+ if (cryptedlen != -1) {
+ cryptedbuf = emalloc(cryptedlen + 1);
+@@ -4798,7 +5094,7 @@ PHP_FUNCTION(openssl_sign)
+ long keyresource = -1;
+ char * data;
+ int data_len;
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ zval *method = NULL;
+ long signature_algo = OPENSSL_ALGO_SHA1;
+ const EVP_MD *mdtype;
+@@ -4831,9 +5127,10 @@ PHP_FUNCTION(openssl_sign)
+ siglen = EVP_PKEY_size(pkey);
+ sigbuf = emalloc(siglen + 1);
+
+- EVP_SignInit(&md_ctx, mdtype);
+- EVP_SignUpdate(&md_ctx, data, data_len);
+- if (EVP_SignFinal (&md_ctx, sigbuf,(unsigned int *)&siglen, pkey)) {
++ md_ctx = EVP_MD_CTX_create();
++ EVP_SignInit(md_ctx, mdtype);
++ EVP_SignUpdate(md_ctx, data, data_len);
++ if (EVP_SignFinal (md_ctx, sigbuf,(unsigned int *)&siglen, pkey)) {
+ zval_dtor(signature);
+ sigbuf[siglen] = '\0';
+ ZVAL_STRINGL(signature, (char *)sigbuf, siglen, 0);
+@@ -4842,7 +5139,7 @@ PHP_FUNCTION(openssl_sign)
+ efree(sigbuf);
+ RETVAL_FALSE;
+ }
+- EVP_MD_CTX_cleanup(&md_ctx);
++ EVP_MD_CTX_destroy(md_ctx);
+ if (keyresource == -1) {
+ EVP_PKEY_free(pkey);
+ }
+@@ -4856,7 +5153,7 @@ PHP_FUNCTION(openssl_verify)
+ zval **key;
+ EVP_PKEY *pkey;
+ int err;
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ const EVP_MD *mdtype;
+ long keyresource = -1;
+ char * data; int data_len;
+@@ -4890,10 +5187,11 @@ PHP_FUNCTION(openssl_verify)
+ RETURN_FALSE;
+ }
+
+- EVP_VerifyInit (&md_ctx, mdtype);
+- EVP_VerifyUpdate (&md_ctx, data, data_len);
+- err = EVP_VerifyFinal (&md_ctx, (unsigned char *)signature, signature_len, pkey);
+- EVP_MD_CTX_cleanup(&md_ctx);
++ md_ctx = EVP_MD_CTX_create();
++ EVP_VerifyInit (md_ctx, mdtype);
++ EVP_VerifyUpdate (md_ctx, data, data_len);
++ err = EVP_VerifyFinal (md_ctx, (unsigned char *)signature, signature_len, pkey);
++ EVP_MD_CTX_destroy(md_ctx);
+
+ if (keyresource == -1) {
+ EVP_PKEY_free(pkey);
+@@ -4917,7 +5215,7 @@ PHP_FUNCTION(openssl_seal)
+ char *method =NULL;
+ int method_len = 0;
+ const EVP_CIPHER *cipher;
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szza/|s", &data, &data_len, &sealdata, &ekeys, &pubkeys, &method, &method_len) == FAILURE) {
+ return;
+@@ -4950,6 +5248,7 @@ PHP_FUNCTION(openssl_seal)
+ memset(eks, 0, sizeof(*eks) * nkeys);
+ key_resources = safe_emalloc(nkeys, sizeof(long), 0);
+ memset(key_resources, 0, sizeof(*key_resources) * nkeys);
++ memset(pkeys, 0, sizeof(*pkeys) * nkeys);
+
+ /* get the public keys we are using to seal this data */
+ zend_hash_internal_pointer_reset_ex(pubkeysht, &pos);
+@@ -4967,27 +5266,28 @@ PHP_FUNCTION(openssl_seal)
+ i++;
+ }
+
+- if (!EVP_EncryptInit(&ctx,cipher,NULL,NULL)) {
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL || !EVP_EncryptInit(ctx,cipher,NULL,NULL)) {
+ RETVAL_FALSE;
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_free(ctx);
+ goto clean_exit;
+ }
+
+ #if 0
+ /* Need this if allow ciphers that require initialization vector */
+- ivlen = EVP_CIPHER_CTX_iv_length(&ctx);
++ ivlen = EVP_CIPHER_CTX_iv_length(ctx);
+ iv = ivlen ? emalloc(ivlen + 1) : NULL;
+ #endif
+ /* allocate one byte extra to make room for \0 */
+- buf = emalloc(data_len + EVP_CIPHER_CTX_block_size(&ctx));
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ buf = emalloc(data_len + EVP_CIPHER_CTX_block_size(ctx));
++ EVP_CIPHER_CTX_cleanup(ctx);
+
+- if (EVP_SealInit(&ctx, cipher, eks, eksl, NULL, pkeys, nkeys) <= 0 ||
+- !EVP_SealUpdate(&ctx, buf, &len1, (unsigned char *)data, data_len) ||
+- !EVP_SealFinal(&ctx, buf + len1, &len2)) {
++ if (EVP_SealInit(ctx, cipher, eks, eksl, NULL, pkeys, nkeys) <= 0 ||
++ !EVP_SealUpdate(ctx, buf, &len1, (unsigned char *)data, data_len) ||
++ !EVP_SealFinal(ctx, buf + len1, &len2)) {
+ RETVAL_FALSE;
+ efree(buf);
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_free(ctx);
+ goto clean_exit;
+ }
+
+@@ -5018,7 +5318,7 @@ PHP_FUNCTION(openssl_seal)
+ efree(buf);
+ }
+ RETVAL_LONG(len1 + len2);
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_free(ctx);
+
+ clean_exit:
+ for (i=0; i<nkeys; i++) {
+@@ -5045,7 +5345,7 @@ PHP_FUNCTION(openssl_open)
+ int len1, len2;
+ unsigned char *buf;
+ long keyresource = -1;
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+ char * data; int data_len;
+ char * ekey; int ekey_len;
+ char *method =NULL;
+@@ -5074,8 +5374,9 @@ PHP_FUNCTION(openssl_open)
+
+ buf = emalloc(data_len + 1);
+
+- if (EVP_OpenInit(&ctx, cipher, (unsigned char *)ekey, ekey_len, NULL, pkey) && EVP_OpenUpdate(&ctx, buf, &len1, (unsigned char *)data, data_len)) {
+- if (!EVP_OpenFinal(&ctx, buf + len1, &len2) || (len1 + len2 == 0)) {
++ ctx = EVP_CIPHER_CTX_new();
++ if (EVP_OpenInit(ctx, cipher, (unsigned char *)ekey, ekey_len, NULL, pkey) && EVP_OpenUpdate(ctx, buf, &len1, (unsigned char *)data, data_len)) {
++ if (!EVP_OpenFinal(ctx, buf + len1, &len2) || (len1 + len2 == 0)) {
+ efree(buf);
+ RETVAL_FALSE;
+ } else {
+@@ -5091,7 +5392,7 @@ PHP_FUNCTION(openssl_open)
+ if (keyresource == -1) {
+ EVP_PKEY_free(pkey);
+ }
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_free(ctx);
+ }
+ /* }}} */
+
+@@ -5151,7 +5452,7 @@ PHP_FUNCTION(openssl_digest)
+ char *data, *method;
+ int data_len, method_len;
+ const EVP_MD *mdtype;
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ int siglen;
+ unsigned char *sigbuf;
+
+@@ -5167,9 +5468,10 @@ PHP_FUNCTION(openssl_digest)
+ siglen = EVP_MD_size(mdtype);
+ sigbuf = emalloc(siglen + 1);
+
+- EVP_DigestInit(&md_ctx, mdtype);
+- EVP_DigestUpdate(&md_ctx, (unsigned char *)data, data_len);
+- if (EVP_DigestFinal (&md_ctx, (unsigned char *)sigbuf, (unsigned int *)&siglen)) {
++ md_ctx = EVP_MD_CTX_create();
++ EVP_DigestInit(md_ctx, mdtype);
++ EVP_DigestUpdate(md_ctx, (unsigned char *)data, data_len);
++ if (EVP_DigestFinal (md_ctx, (unsigned char *)sigbuf, (unsigned int *)&siglen)) {
+ if (raw_output) {
+ sigbuf[siglen] = '\0';
+ RETVAL_STRINGL((char *)sigbuf, siglen, 0);
+@@ -5185,6 +5487,8 @@ PHP_FUNCTION(openssl_digest)
+ efree(sigbuf);
+ RETVAL_FALSE;
+ }
++
++ EVP_MD_CTX_destroy(md_ctx);
+ }
+ /* }}} */
+
+@@ -5230,7 +5534,7 @@ PHP_FUNCTION(openssl_encrypt)
+ char *data, *method, *password, *iv = "";
+ int data_len, method_len, password_len, iv_len = 0, max_iv_len;
+ const EVP_CIPHER *cipher_type;
+- EVP_CIPHER_CTX cipher_ctx;
++ EVP_CIPHER_CTX *cipher_ctx;
+ int i=0, outlen, keylen;
+ unsigned char *outbuf, *key;
+ zend_bool free_iv;
+@@ -5262,19 +5566,24 @@ PHP_FUNCTION(openssl_encrypt)
+ outlen = data_len + EVP_CIPHER_block_size(cipher_type);
+ outbuf = safe_emalloc(outlen, 1, 1);
+
+- EVP_EncryptInit(&cipher_ctx, cipher_type, NULL, NULL);
++ cipher_ctx = EVP_CIPHER_CTX_new();
++ if (!cipher_ctx) {
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to create cipher context");
++ RETURN_FALSE;
++ }
++ EVP_EncryptInit(cipher_ctx, cipher_type, NULL, NULL);
+ if (password_len > keylen) {
+- EVP_CIPHER_CTX_set_key_length(&cipher_ctx, password_len);
++ EVP_CIPHER_CTX_set_key_length(cipher_ctx, password_len);
+ }
+- EVP_EncryptInit_ex(&cipher_ctx, NULL, NULL, key, (unsigned char *)iv);
++ EVP_EncryptInit_ex(cipher_ctx, NULL, NULL, key, (unsigned char *)iv);
+ if (options & OPENSSL_ZERO_PADDING) {
+- EVP_CIPHER_CTX_set_padding(&cipher_ctx, 0);
++ EVP_CIPHER_CTX_set_padding(cipher_ctx, 0);
+ }
+ if (data_len > 0) {
+- EVP_EncryptUpdate(&cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
++ EVP_EncryptUpdate(cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
+ }
+ outlen = i;
+- if (EVP_EncryptFinal(&cipher_ctx, (unsigned char *)outbuf + i, &i)) {
++ if (EVP_EncryptFinal(cipher_ctx, (unsigned char *)outbuf + i, &i)) {
+ outlen += i;
+ if (options & OPENSSL_RAW_DATA) {
+ outbuf[outlen] = '\0';
+@@ -5301,7 +5610,8 @@ PHP_FUNCTION(openssl_encrypt)
+ if (free_iv) {
+ efree(iv);
+ }
+- EVP_CIPHER_CTX_cleanup(&cipher_ctx);
++ EVP_CIPHER_CTX_cleanup(cipher_ctx);
++ EVP_CIPHER_CTX_free(cipher_ctx);
+ }
+ /* }}} */
+
+@@ -5313,7 +5623,7 @@ PHP_FUNCTION(openssl_decrypt)
+ char *data, *method, *password, *iv = "";
+ int data_len, method_len, password_len, iv_len = 0;
+ const EVP_CIPHER *cipher_type;
+- EVP_CIPHER_CTX cipher_ctx;
++ EVP_CIPHER_CTX *cipher_ctx;
+ int i, outlen, keylen;
+ unsigned char *outbuf, *key;
+ int base64_str_len;
+@@ -5359,17 +5669,23 @@ PHP_FUNCTION(openssl_decrypt)
+ outlen = data_len + EVP_CIPHER_block_size(cipher_type);
+ outbuf = emalloc(outlen + 1);
+
+- EVP_DecryptInit(&cipher_ctx, cipher_type, NULL, NULL);
++ cipher_ctx = EVP_CIPHER_CTX_new();
++ if (!cipher_ctx) {
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to create cipher context");
++ RETURN_FALSE;
++ }
++
++ EVP_DecryptInit(cipher_ctx, cipher_type, NULL, NULL);
+ if (password_len > keylen) {
+- EVP_CIPHER_CTX_set_key_length(&cipher_ctx, password_len);
++ EVP_CIPHER_CTX_set_key_length(cipher_ctx, password_len);
+ }
+- EVP_DecryptInit_ex(&cipher_ctx, NULL, NULL, key, (unsigned char *)iv);
++ EVP_DecryptInit_ex(cipher_ctx, NULL, NULL, key, (unsigned char *)iv);
+ if (options & OPENSSL_ZERO_PADDING) {
+- EVP_CIPHER_CTX_set_padding(&cipher_ctx, 0);
++ EVP_CIPHER_CTX_set_padding(cipher_ctx, 0);
+ }
+- EVP_DecryptUpdate(&cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
++ EVP_DecryptUpdate(cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
+ outlen = i;
+- if (EVP_DecryptFinal(&cipher_ctx, (unsigned char *)outbuf + i, &i)) {
++ if (EVP_DecryptFinal(cipher_ctx, (unsigned char *)outbuf + i, &i)) {
+ outlen += i;
+ outbuf[outlen] = '\0';
+ RETVAL_STRINGL((char *)outbuf, outlen, 0);
+@@ -5386,7 +5702,8 @@ PHP_FUNCTION(openssl_decrypt)
+ if (base64_str) {
+ efree(base64_str);
+ }
+- EVP_CIPHER_CTX_cleanup(&cipher_ctx);
++ EVP_CIPHER_CTX_cleanup(cipher_ctx);
++ EVP_CIPHER_CTX_free(cipher_ctx);
+ }
+ /* }}} */
+
+@@ -5424,6 +5741,7 @@ PHP_FUNCTION(openssl_dh_compute_key)
+ zval *key;
+ char *pub_str;
+ int pub_len;
++ DH *dh;
+ EVP_PKEY *pkey;
+ BIGNUM *pub;
+ char *data;
+@@ -5433,14 +5751,21 @@ PHP_FUNCTION(openssl_dh_compute_key)
+ return;
+ }
+ ZEND_FETCH_RESOURCE(pkey, EVP_PKEY *, &key, -1, "OpenSSL key", le_key);
+- if (!pkey || EVP_PKEY_type(pkey->type) != EVP_PKEY_DH || !pkey->pkey.dh) {
++ if (pkey == NULL) {
++ RETURN_FALSE;
++ }
++ if (EVP_PKEY_base_id(pkey) != EVP_PKEY_DH) {
++ RETURN_FALSE;
++ }
++ dh = EVP_PKEY_get0_DH(pkey);
++ if (dh == NULL) {
+ RETURN_FALSE;
+ }
+
+ pub = BN_bin2bn((unsigned char*)pub_str, pub_len, NULL);
+
+- data = emalloc(DH_size(pkey->pkey.dh) + 1);
+- len = DH_compute_key((unsigned char*)data, pub, pkey->pkey.dh);
++ data = emalloc(DH_size(dh) + 1);
++ len = DH_compute_key((unsigned char*)data, pub, dh);
+
+ if (len >= 0) {
+ data[len] = 0;
+diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c
+index d549033..c2d477c 100644
+--- a/ext/openssl/xp_ssl.c
++++ b/ext/openssl/xp_ssl.c
+@@ -935,7 +935,7 @@ static int set_local_cert(SSL_CTX *ctx, php_stream *stream TSRMLS_DC) /* {{{ */
+ static const SSL_METHOD *php_select_crypto_method(long method_value, int is_client TSRMLS_DC) /* {{{ */
+ {
+ if (method_value == STREAM_CRYPTO_METHOD_SSLv2) {
+-#ifndef OPENSSL_NO_SSL2
++#if !defined(OPENSSL_NO_SSL2) && OPENSSL_VERSION_NUMBER < 0x10100000L
+ return is_client ? SSLv2_client_method() : SSLv2_server_method();
+ #else
+ php_error_docref(NULL TSRMLS_CC, E_WARNING,
+@@ -1588,12 +1588,26 @@ int php_openssl_setup_crypto(php_stream *stream,
+ }
+ /* }}} */
+
++#define PHP_SSL_MAX_VERSION_LEN 32
++
++static char *php_ssl_cipher_get_version(const SSL_CIPHER *c, char *buffer, size_t max_len) /* {{{ */
++{
++ const char *version = SSL_CIPHER_get_version(c);
++ strncpy(buffer, version, max_len);
++ if (max_len <= strlen(version)) {
++ buffer[max_len - 1] = 0;
++ }
++ return buffer;
++}
++/* }}} */
++
+ static zval *capture_session_meta(SSL *ssl_handle) /* {{{ */
+ {
+ zval *meta_arr;
+ char *proto_str;
+ long proto = SSL_version(ssl_handle);
+ const SSL_CIPHER *cipher = SSL_get_current_cipher(ssl_handle);
++ char version_str[PHP_SSL_MAX_VERSION_LEN];
+
+ switch (proto) {
+ #if OPENSSL_VERSION_NUMBER >= 0x10001001L
+@@ -1611,7 +1625,7 @@ static zval *capture_session_meta(SSL *ssl_handle) /* {{{ */
+ add_assoc_string(meta_arr, "protocol", proto_str, 1);
+ add_assoc_string(meta_arr, "cipher_name", (char *) SSL_CIPHER_get_name(cipher), 1);
+ add_assoc_long(meta_arr, "cipher_bits", SSL_CIPHER_get_bits(cipher, NULL));
+- add_assoc_string(meta_arr, "cipher_version", SSL_CIPHER_get_version(cipher), 1);
++ add_assoc_string(meta_arr, "cipher_version", php_ssl_cipher_get_version(cipher, version_str, PHP_SSL_MAX_VERSION_LEN), 1);
+
+ return meta_arr;
+ }
+diff --git a/ext/phar/util.c b/ext/phar/util.c
+index 828be8f..06e4e55 100644
+--- a/ext/phar/util.c
++++ b/ext/phar/util.c
+@@ -1531,7 +1531,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
+ BIO *in;
+ EVP_PKEY *key;
+ EVP_MD *mdtype = (EVP_MD *) EVP_sha1();
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ #else
+ int tempsig;
+ #endif
+@@ -1608,7 +1608,8 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
+ return FAILURE;
+ }
+
+- EVP_VerifyInit(&md_ctx, mdtype);
++ md_ctx = EVP_MD_CTX_create();
++ EVP_VerifyInit(md_ctx, mdtype);
+ read_len = end_of_phar;
+
+ if (read_len > sizeof(buf)) {
+@@ -1620,7 +1621,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
+ php_stream_seek(fp, 0, SEEK_SET);
+
+ while (read_size && (len = php_stream_read(fp, (char*)buf, read_size)) > 0) {
+- EVP_VerifyUpdate (&md_ctx, buf, len);
++ EVP_VerifyUpdate (md_ctx, buf, len);
+ read_len -= (off_t)len;
+
+ if (read_len < read_size) {
+@@ -1628,9 +1629,9 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
+ }
+ }
+
+- if (EVP_VerifyFinal(&md_ctx, (unsigned char *)sig, sig_len, key) != 1) {
++ if (EVP_VerifyFinal(md_ctx, (unsigned char *)sig, sig_len, key) != 1) {
+ /* 1: signature verified, 0: signature does not match, -1: failed signature operation */
+- EVP_MD_CTX_cleanup(&md_ctx);
++ EVP_MD_CTX_destroy(md_ctx);
+
+ if (error) {
+ spprintf(error, 0, "broken openssl signature");
+@@ -1639,7 +1640,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
+ return FAILURE;
+ }
+
+- EVP_MD_CTX_cleanup(&md_ctx);
++ EVP_MD_CTX_destroy(md_ctx);
+ #endif
+
+ *signature_len = phar_hex_str((const char*)sig, sig_len, signature TSRMLS_CC);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2017-9120.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2017-9120.patch
new file mode 100644
index 0000000..728f25b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2017-9120.patch
@@ -0,0 +1,21 @@
+php: patch for CVE-2017-9120
+
+Upstream-Status: Backport [https://bugs.php.net/bug.php?id=74544]
+
+CVE: CVE-2017-9120
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
+index 03a39d7..7b88731 100644
+--- a/ext/mysqli/mysqli_api.c
++++ b/ext/mysqli/mysqli_api.c
+@@ -1965,7 +1965,7 @@ PHP_FUNCTION(mysqli_real_escape_string) {
+ }
+ MYSQLI_FETCH_RESOURCE_CONN(mysql, mysql_link, MYSQLI_STATUS_VALID);
+
+- newstr = zend_string_alloc(2 * escapestr_len, 0);
++ newstr = zend_string_safe_alloc(2, escapestr_len, 0, 0);
+ ZSTR_LEN(newstr) = mysql_real_escape_string(mysql->mysql, ZSTR_VAL(newstr), escapestr, escapestr_len);
+ newstr = zend_string_truncate(newstr, ZSTR_LEN(newstr), 0);
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb
deleted file mode 100644
index c17c0d6..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
-
-SRC_URI += "file://php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
- file://pthread-check-threads-m4.patch \
- file://0001-Add-lpthread-to-link.patch \
- file://acinclude-xml2-config.patch \
- file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \
- "
-
-SRC_URI_append_class-target = " \
- file://php5-pear-makefile.patch \
- file://php5-phar-makefile.patch \
- file://php5-0001-opcache-config.m4-enable-opcache.patch \
- "
-
-SRC_URI[md5sum] = "905ae5f586351f3ca29d044c9484d475"
-SRC_URI[sha256sum] = "ee78a7e9ca21d8ea394d037c55effff477a49dbae31c7753c547036f5bd73b92"
-
-DEPENDS += "libmcrypt"
-EXTRA_OECONF += "--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
- "
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.38.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.38.bb
new file mode 100644
index 0000000..d6f5145
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.38.bb
@@ -0,0 +1,24 @@
+require php.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
+
+SRC_URI += "file://php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
+ file://pthread-check-threads-m4.patch \
+ file://0001-Add-lpthread-to-link.patch \
+ file://acinclude-xml2-config.patch \
+ file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \
+ file://0001-PHP-5.6-LibSSL-1.1-compatibility.patch \
+ "
+
+SRC_URI_append_class-target = " \
+ file://php5-pear-makefile.patch \
+ file://php5-phar-makefile.patch \
+ file://php5-0001-opcache-config.m4-enable-opcache.patch \
+ "
+
+SRC_URI[md5sum] = "5b98aa066567eca8e5738b8ef4a3545c"
+SRC_URI[sha256sum] = "d65b231bbdd63be4439ef5ced965cfd63e62983429dbd4dfcfb49981593ebc03"
+
+DEPENDS += "libmcrypt"
+EXTRA_OECONF += "--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
+ "
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.10.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.10.bb
new file mode 100644
index 0000000..8dc64bb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.10.bb
@@ -0,0 +1,25 @@
+require php.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=67e369bc8d1f2e641236b8002039a6a2"
+
+SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
+ file://0001-acinclude.m4-skip-binconfig-check-for-libxml.patch \
+ file://0001-fix-error-caused-by-a-new-variable-is-declared-after.patch \
+ file://CVE-2017-9120.patch \
+ "
+SRC_URI_append_class-target = " \
+ file://pear-makefile.patch \
+ file://phar-makefile.patch \
+ file://0001-opcache-config.m4-enable-opcache.patch \
+ "
+
+SRC_URI[md5sum] = "0ce8ff615bfb9de7a89bab8d742c11c0"
+SRC_URI[sha256sum] = "01b6129a0921a1636b07da9bc598a876669e45a462cef4b5844fc26862dbda9d"
+
+PACKAGECONFIG[mysql] = "--with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
+ --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
+ ,--without-mysqli --without-pdo-mysql \
+ ,mysql5"
+PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind"
+
+FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.7.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.7.bb
deleted file mode 100644
index a256cd7..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.7.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=67e369bc8d1f2e641236b8002039a6a2"
-
-SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
- file://0001-acinclude.m4-skip-binconfig-check-for-libxml.patch \
- file://0001-fix-error-caused-by-a-new-variable-is-declared-after.patch \
- "
-SRC_URI_append_class-target = " \
- file://pear-makefile.patch \
- file://phar-makefile.patch \
- file://0001-opcache-config.m4-enable-opcache.patch \
- "
-
-SRC_URI[md5sum] = "4b5698c8c6c2b9cbff3a5706da67bb0f"
-SRC_URI[sha256sum] = "cc81675a96af4dd18d8ffc02f26a36c622abadf86af7ecfea7bcde8d3c96d5a3"
-
-PACKAGECONFIG[mysql] = "--with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
- --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
- ,--without-mysqli --without-pdo-mysql \
- ,mysql5"
-
-FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
deleted file mode 100644
index fe1e6e5..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
-DESCRIPTION = "This is protobuf-c, a C implementation of the Google Protocol Buffers data \
-serialization format. It includes libprotobuf-c, a pure C library that \
-implements protobuf encoding and decoding, and protoc-c, a code generator that \
-converts Protocol Buffer .proto files to C descriptor code, based on the \
-original protoc. protobuf-c formerly included an RPC implementation; that code \
-has been split out into the protobuf-c-rpc project."
-HOMEPAGE = "https://github.com/protobuf-c/protobuf-c"
-SECTION = "console/tools"
-LICENSE = "BSD-2-Clause"
-
-DEPENDS = "protobuf-native protobuf"
-
-PACKAGE_BEFORE_PN = "${PN}-compiler"
-RDEPENDS_${PN}-compiler = "protobuf-compiler"
-RDEPENDS_${PN}-dev += "${PN}-compiler"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cb901168715f4782a2b06c3ddaefa558"
-
-PV .= "+git${SRCPV}"
-SRCREV = "dac1a65feac4ad72f612aab99f487056fbcf5c1a"
-
-SRC_URI = "git://github.com/protobuf-c/protobuf-c.git"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-FILES_${PN}-compiler = "${bindir}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb
new file mode 100644
index 0000000..7ef0300
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
+DESCRIPTION = "This is protobuf-c, a C implementation of the Google Protocol Buffers data \
+serialization format. It includes libprotobuf-c, a pure C library that \
+implements protobuf encoding and decoding, and protoc-c, a code generator that \
+converts Protocol Buffer .proto files to C descriptor code, based on the \
+original protoc. protobuf-c formerly included an RPC implementation; that code \
+has been split out into the protobuf-c-rpc project."
+HOMEPAGE = "https://github.com/protobuf-c/protobuf-c"
+SECTION = "console/tools"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cb901168715f4782a2b06c3ddaefa558"
+
+DEPENDS = "protobuf-native protobuf"
+
+PV .= "+git${SRCPV}"
+SRCREV = "269771b4b45d3aba04e59569f53600003db8d9ff"
+
+SRC_URI = "git://github.com/protobuf-c/protobuf-c.git"
+
+S = "${WORKDIR}/git"
+
+#make sure c++11 is used
+CXXFLAGS += "-std=c++11"
+BUILD_CXXFLAGS += "-std=c++11"
+
+inherit autotools pkgconfig
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+
+FILES_${PN}-compiler = "${bindir}"
+
+RDEPENDS_${PN}-compiler = "protobuf-compiler"
+RDEPENDS_${PN}-dev += "${PN}-compiler"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-protobuf-fix-configure-error.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-protobuf-fix-configure-error.patch
new file mode 100644
index 0000000..a2f7a4b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-protobuf-fix-configure-error.patch
@@ -0,0 +1,33 @@
+From 52959e8e01e39139d18f752e97283e45b4b7a426 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 18 Jul 2018 17:52:34 +0800
+Subject: [PATCH] protobuf: fix configure error
+
+fix below error:
+gnu-configize: 'configure.ac' or 'configure.in' is required
+
+third_party/googletest is git submodule of protobuf. Above error
+caused by missing submodule googletest.
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index aec10cf..7fbe57d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -214,7 +214,6 @@ AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])
+ # too.
+ export CFLAGS
+ export CXXFLAGS
+-AC_CONFIG_SUBDIRS([third_party/googletest])
+
+ AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc])
+ AC_OUTPUT
+--
+2.7.4
+
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
deleted file mode 100644
index 073dfae..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
+++ /dev/null
@@ -1,87 +0,0 @@
-SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
-DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
-efficient yet extensible format. Google uses Protocol Buffers for almost \
-all of its internal RPC protocols and file formats."
-HOMEPAGE = "https://github.com/google/protobuf"
-SECTION = "console/tools"
-LICENSE = "BSD-3-Clause"
-
-PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
-
-DEPENDS = "zlib"
-DEPENDS_append_class-target = " protobuf-native"
-RDEPENDS_${PN}-compiler = "${PN}"
-RDEPENDS_${PN}-dev += "${PN}-compiler"
-RDEPENDS_${PN}-ptest = "bash ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python-protobuf', '', d)}"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
-
-SRCREV = "106ffc04be1abf3ff3399f54ccf149815b287dd9"
-
-PV = "3.5.1+git${SRCPV}"
-
-SRC_URI = "git://github.com/google/protobuf.git;branch=3.5.x \
- 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 ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}"
-
-do_compile_ptest() {
- # Modify makefile to use the cross-compiler
- sed -e "s|c++|${CXX} \$(LDFLAGS)|g" -i "${S}/${TEST_SRC_DIR}/Makefile"
-
- mkdir -p "${B}/${TEST_SRC_DIR}"
-
- # Add the location of the cross-compiled header and library files
- # which haven't been installed yet.
- cp "${B}/protobuf.pc" "${B}/${TEST_SRC_DIR}/protobuf.pc"
- sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
- sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
- sed -e 's|Libs:|Libs: -L${B}/src/.libs|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
- export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
-
- # Save the pkgcfg sysroot variable, and update it to nothing so
- # that it doesn't append the sysroot to the beginning of paths.
- # The header and library files aren't installed to the target
- # system yet. So the absolute paths were specified above.
- save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
- export PKG_CONFIG_SYSROOT_DIR=
-
- # Compile the tests
- for lang in ${LANG_SUPPORT}; do
- oe_runmake -C "${S}/${TEST_SRC_DIR}" ${lang}
- done
-
- # Restore the pkgconfig sysroot variable
- export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
-}
-
-do_install_ptest() {
- local olddir=`pwd`
-
- cd "${S}/${TEST_SRC_DIR}"
- install -d "${D}/${PTEST_PATH}"
- for i in add_person* list_people*; do
- if [ -x "$i" ]; then
- install "$i" "${D}/${PTEST_PATH}"
- fi
- done
- cp "${S}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
- cd "$olddir"
-}
-
-FILES_${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
-FILES_${PN}-lite = "${bindir} ${libdir}/libprotobuf-lite${SOLIBS}"
-
-MIPS_INSTRUCTION_SET = "mips"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.6.1.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.6.1.bb
new file mode 100644
index 0000000..cf72d9c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.6.1.bb
@@ -0,0 +1,93 @@
+SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
+DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
+efficient yet extensible format. Google uses Protocol Buffers for almost \
+all of its internal RPC protocols and file formats."
+HOMEPAGE = "https://github.com/google/protobuf"
+SECTION = "console/tools"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b"
+
+DEPENDS = "zlib"
+DEPENDS_append_class-target = " protobuf-native"
+
+PV .= "+git${SRCPV}"
+
+SRCREV = "48cb18e5c419ddd23d9badcfe4e9df7bde1979b2"
+
+SRC_URI = "git://github.com/google/protobuf.git;branch=3.6.x \
+ file://run-ptest \
+ file://0001-protobuf-fix-configure-error.patch \
+"
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig ptest
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[python] = ",,"
+
+EXTRA_OECONF += "--with-protoc=echo"
+
+TEST_SRC_DIR = "examples"
+LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}"
+
+do_compile_ptest() {
+ # Modify makefile to use the cross-compiler
+ sed -e "s|c++|${CXX} \$(LDFLAGS)|g" -i "${S}/${TEST_SRC_DIR}/Makefile"
+
+ mkdir -p "${B}/${TEST_SRC_DIR}"
+
+ # Add the location of the cross-compiled header and library files
+ # which haven't been installed yet.
+ cp "${B}/protobuf.pc" "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Libs:|Libs: -L${B}/src/.libs|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
+
+ # Save the pkgcfg sysroot variable, and update it to nothing so
+ # that it doesn't append the sysroot to the beginning of paths.
+ # The header and library files aren't installed to the target
+ # system yet. So the absolute paths were specified above.
+ save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
+ export PKG_CONFIG_SYSROOT_DIR=
+
+ # Compile the tests
+ for lang in ${LANG_SUPPORT}; do
+ oe_runmake -C "${S}/${TEST_SRC_DIR}" ${lang}
+ done
+
+ # Restore the pkgconfig sysroot variable
+ export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
+}
+
+do_install_ptest() {
+ local olddir=`pwd`
+
+ cd "${S}/${TEST_SRC_DIR}"
+ install -d "${D}/${PTEST_PATH}"
+ for i in add_person* list_people*; do
+ if [ -x "$i" ]; then
+ install "$i" "${D}/${PTEST_PATH}"
+ fi
+ done
+ cp "${S}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
+ cd "$olddir"
+}
+
+PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
+
+FILES_${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
+FILES_${PN}-lite = "${libdir}/libprotobuf-lite${SOLIBS}"
+
+RDEPENDS_${PN}-compiler = "${PN}"
+RDEPENDS_${PN}-dev += "${PN}-compiler"
+RDEPENDS_${PN}-ptest = "bash ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python-protobuf', '', d)}"
+
+MIPS_INSTRUCTION_SET = "mips"
+
+BBCLASSEXTEND = "native nativesdk"
+
+LDFLAGS_append_arm = " -latomic"
+LDFLAGS_append_mips = " -latomic"
+LDFLAGS_append_powerpc = " -latomic"
+LDFLAGS_append_mipsel = " -latomic"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-distutils-extra.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-distutils-extra.bb
index 56dd33d..eb84f74 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-distutils-extra.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-distutils-extra.bb
@@ -2,8 +2,6 @@
inherit setuptools
-DISTUTILS_INSTALL_ARGS += "--install-lib=${libdir}/${PYTHON_DIR}/site-packages"
-
RDEPENDS_${PN} = "\
python-distutils \
"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
deleted file mode 100644
index ab65ba1..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Python GObject bindings"
-HOMEPAGE = "http://www.pygtk.org/"
-SECTION = "devel/python"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-
-inherit autotools pkgconfig gnomebase distutils-base gobject-introspection
-
-PYTHON_BASEVERSION = "2.7"
-PYTHON_PN = "python"
-
-DEPENDS += "gnome-common-native python glib-2.0"
-
-SRCNAME="pygobject"
-SRC_URI = " \
- http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
- file://0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch \
-"
-
-SRC_URI[md5sum] = "b29d69edb63ae1f555afeb19f90b9996"
-SRC_URI[sha256sum] = "42b47b261b45aedfc77e02e3c90a01cd74d6f86c3273c1860a054d531d606e5a"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OECONF = "--disable-cairo --with-python=${PYTHON}"
-
-RDEPENDS_${PN} += "python-setuptools"
-RDEPENDS_${PN}_class-native = ""
-
-do_install_append() {
- # Remove files that clash with python3-pygobject; their content is same
- rm -rf ${D}${includedir}/pygobject-3.0//pygobject.h ${D}${libdir}/pkgconfig
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.3.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.3.bb
new file mode 100644
index 0000000..c444fbf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.3.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Python GObject bindings"
+HOMEPAGE = "http://www.pygtk.org/"
+SECTION = "devel/python"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
+
+inherit autotools pkgconfig gnomebase distutils-base gobject-introspection
+
+PYTHON_BASEVERSION = "2.7"
+PYTHON_PN = "python"
+
+DEPENDS += "gnome-common-native python glib-2.0"
+
+SRCNAME="pygobject"
+SRC_URI = " \
+ http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
+ file://0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch \
+"
+
+SRC_URI[md5sum] = "3bac63c86bb963aa401f97859464aa90"
+SRC_URI[sha256sum] = "3dd3e21015d06e00482ea665fc1733b77e754a6ab656a5db5d7f7bfaf31ad0b0"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OECONF = "--disable-cairo --with-python=${PYTHON}"
+
+RDEPENDS_${PN} += "python-setuptools"
+RDEPENDS_${PN}_class-native = ""
+
+do_install_append() {
+ # Remove files that clash with python3-pygobject; their content is same
+ rm -rf ${D}${includedir}/pygobject-3.0//pygobject.h ${D}${libdir}/pkgconfig
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python3-distutils-extra.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python3-distutils-extra.bb
index af242b8..5836b09 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python3-distutils-extra.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/python/python3-distutils-extra.bb
@@ -4,8 +4,6 @@
S = "${WORKDIR}/python-distutils-extra-${PV}"
-DISTUTILS_INSTALL_ARGS += "--install-lib=${libdir}/${PYTHON_DIR}/site-packages"
-
RDEPENDS_${PN} = "\
python3-setuptools \
"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb b/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
index 8ab35d2..c90eab0 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
@@ -4,11 +4,9 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://license.txt;md5=ba04aa8f65de1396a7e59d1d746c2125"
-SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1 \
- file://remove-march-native-from-CMAKE_CXX_FLAGS.patch \
-"
+SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1"
-SRCREV = "e5635fb27feab7f6e8d7b916aa20ad799045a641"
+SRCREV = "6a905f9311f82d306da77bd963ec5aa5da07da9c"
PV = "1.1.0+git${SRCPV}"
@@ -20,7 +18,6 @@
# RapidJSON is a header-only C++ library, so the main package will be empty.
-FILES_${PN}-dev += "${libdir}/cmake"
-RDEPENDS_${PN}-dev = ""
+ALLOW_EMPTY_${PN} = "1"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip.inc b/meta-openembedded/meta-oe/recipes-devtools/sip/sip.inc
new file mode 100644
index 0000000..d079545
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/sip/sip.inc
@@ -0,0 +1,36 @@
+SUMMARY = "SIP is a C++/Python Wrapper Generator"
+HOMEPAGE = "http://www.riverbankcomputing.co.uk/sip"
+SECTION = "devel"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz \
+ "
+SRC_URI[md5sum] = "9124cb8978742685747a5415179a9890"
+SRC_URI[sha256sum] = "e353a7056599bf5fbd5d3ff9842a6ab2ea3cf4e0304a0f925ec5862907c0d15e"
+
+S = "${WORKDIR}/sip-${PV}"
+
+BBCLASSEXTEND = "native"
+
+do_configure_prepend_class-target() {
+ echo "py_platform = linux" > sip.cfg
+ echo "py_inc_dir = %(sysroot)/${includedir}/python${PYTHON_BASEVERSION}${PYTHON_ABI}" >> sip.cfg
+ echo "sip_bin_dir = ${D}/${bindir}" >> sip.cfg
+ echo "sip_inc_dir = ${D}/${includedir}" >> sip.cfg
+ echo "sip_module_dir = ${D}/${libdir}/python${PYTHON_BASEVERSION}${PYTHON_ABI}/site-packages" >> sip.cfg
+ echo "sip_sip_dir = ${D}/${datadir}/sip" >> sip.cfg
+ ${PYTHON} configure.py --configuration sip.cfg --sip-module PyQt5.sip --sysroot ${STAGING_DIR_HOST} CC="${CC}" CXX="${CXX}" LINK="${CXX}" STRIP="" LINK_SHLIB="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LFLAGS="${LDFLAGS}"
+}
+do_configure_prepend_class-native() {
+ echo "py_platform = linux" > sip.cfg
+ echo "py_inc_dir = ${includedir}/python${PYTHON_BASEVERSION}${PYTHON_ABI}" >> sip.cfg
+ echo "sip_bin_dir = ${D}/${bindir}" >> sip.cfg
+ echo "sip_inc_dir = ${D}/${includedir}" >> sip.cfg
+ echo "sip_module_dir = ${D}/${libdir}/python${PYTHON_BASEVERSION}${PYTHON_ABI}/site-packages" >> sip.cfg
+ echo "sip_sip_dir = ${D}/${datadir}/sip" >> sip.cfg
+ ${PYTHON} configure.py --configuration sip.cfg --sip-module PyQt5.sip --sysroot=${STAGING_DIR_NATIVE}
+}
+do_install() {
+ oe_runmake install
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.13.bb b/meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.13.bb
new file mode 100644
index 0000000..dc15bc2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/sip/sip3_4.19.13.bb
@@ -0,0 +1,11 @@
+require sip.inc
+
+DEPENDS = "python3"
+
+inherit python3-dir python3native
+
+PACKAGES += "python3-sip3"
+
+FILES_python3-sip3 = "${libdir}/${PYTHON_DIR}${PYTHON_ABI}/site-packages/"
+FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}${PYTHON_ABI}/site-packages/.debug"
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.13.bb b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.13.bb
new file mode 100644
index 0000000..3da15b8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.13.bb
@@ -0,0 +1,11 @@
+require sip.inc
+
+DEPENDS = "python"
+
+inherit python-dir pythonnative
+
+PACKAGES += "python-sip"
+
+FILES_python-sip = "${libdir}/${PYTHON_DIR}/site-packages/"
+FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
deleted file mode 100644
index ea944b3..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "SIP is a C++/Python Wrapper Generator"
-HOMEPAGE = "http://www.riverbankcomputing.co.uk/sip"
-SECTION = "devel"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303"
-
-inherit python-dir
-
-DEPENDS = "python"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz"
-SRC_URI[md5sum] = "0625fb20347d4ff1b5da551539be0727"
-SRC_URI[sha256sum] = "7eaf7a2ea7d4d38a56dd6d2506574464bddf7cf284c960801679942377c297bc"
-
-BBCLASSEXTEND = "native"
-
-PACKAGES += "python-sip"
-
-do_configure_prepend_class-target() {
- echo "py_platform = linux" > sip.cfg
- echo "py_inc_dir = %(sysroot)/${includedir}/python%(py_major).%(py_minor)" >> sip.cfg
- echo "sip_bin_dir = ${D}/${bindir}" >> sip.cfg
- echo "sip_inc_dir = ${D}/${includedir}" >> sip.cfg
- echo "sip_module_dir = ${D}/${libdir}/python%(py_major).%(py_minor)/site-packages" >> sip.cfg
- echo "sip_sip_dir = ${D}/${datadir}/sip" >> sip.cfg
- python configure.py --configuration sip.cfg --sysroot ${STAGING_DIR_HOST} CC="${CC}" CXX="${CXX}" LINK="${CXX}" STRIP="" LINK_SHLIB="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LFLAGS="${LDFLAGS}"
-}
-do_configure_prepend_class-native() {
- echo "py_platform = linux" > sip.cfg
- echo "py_inc_dir = ${includedir}/python%(py_major).%(py_minor)" >> sip.cfg
- echo "sip_bin_dir = ${D}/${bindir}" >> sip.cfg
- echo "sip_inc_dir = ${D}/${includedir}" >> sip.cfg
- echo "sip_module_dir = ${D}/${libdir}/python%(py_major).%(py_minor)/site-packages" >> sip.cfg
- echo "sip_sip_dir = ${D}/${datadir}/sip" >> sip.cfg
- python configure.py --configuration sip.cfg --sysroot ${STAGING_DIR_NATIVE}
-}
-do_install() {
- oe_runmake install
-}
-
-FILES_python-sip = "${libdir}/${PYTHON_DIR}/site-packages/"
-FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb b/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb
deleted file mode 100644
index 3eadbe4..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Templatized C++ Command Line Parser"
-HOMEPAGE = "http://tclap.sourceforge.net/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c8ab0ff134bcc584d0e6b5b9f8732453"
-
-SRCREV = "3627d9402e529770df9b0edf2aa8c0e0d6c6bb41"
-SRC_URI = "git://git.code.sf.net/p/tclap/code \
- file://Makefile.am-disable-docs.patch \
-"
-
-S = "${WORKDIR}/git"
-inherit autotools
-
-ALLOW_EMPTY_${PN} = "1"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.2.bb b/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.2.bb
new file mode 100644
index 0000000..46a9408
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Templatized C++ Command Line Parser"
+HOMEPAGE = "http://tclap.sourceforge.net/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0ca8b9c5c5445cfa7af7e78fd27e60ed"
+
+SRCREV = "75f440bcac1276c847f5351e14216f6e91def44d"
+SRC_URI = "git://git.code.sf.net/p/tclap/code \
+ file://Makefile.am-disable-docs.patch \
+"
+
+S = "${WORKDIR}/git"
+inherit autotools
+
+ALLOW_EMPTY_${PN} = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
index 13dc4d7..4e38525 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
@@ -42,22 +42,14 @@
EXTRA_OECONF = "\
--enable-threads \
--with-x \
- --with-tcl=${STAGING_BINDIR_CROSS} \
+ --with-tcl=${STAGING_BINDIR}/crossscripts \
--libdir=${libdir} \
"
-
+export TK_LIBRARY='${libdir}/tk${VER}'
do_install_append() {
ln -sf libtk${VER}.so ${D}${libdir}/libtk${VER}.so.0
oe_libinstall -so libtk${VER} ${D}${libdir}
ln -sf wish${VER} ${D}${bindir}/wish
-
- # Even after passing libdir=${libdir} at config, some incorrect dirs are still generated for the multilib build
- if [ "$libdir" != "/usr/lib" ]; then
- # Move files to correct library directory
- mv ${D}/usr/lib/tk${VER}/* ${D}/${libdir}/tk${VER}/
- # Remove unneeded/incorrect dir ('usr/lib/')
- rm -rf ${D}/usr/lib
- fi
}
PACKAGECONFIG ??= "xft"
@@ -73,7 +65,7 @@
RDEPENDS_${PN} += "tk-lib"
RDEPENDS_${PN}_class-native = ""
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
# Fix the path in sstate
SSTATE_SCAN_FILES += "*Config.sh"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-dlfcn.h-for-RTLD_DEFAULT.patch b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-dlfcn.h-for-RTLD_DEFAULT.patch
new file mode 100644
index 0000000..fe7aac9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-dlfcn.h-for-RTLD_DEFAULT.patch
@@ -0,0 +1,39 @@
+From cdf7f2e394fcfb93a61f509ae3388f29540a6b35 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Sep 2018 11:56:13 -0700
+Subject: [PATCH] include dlfcn.h for RTLD_DEFAULT
+
+Fixes
+plthook.c:128:41: error: use of undeclared identifier 'RTLD_DEFAULT'
+
+Upstream-Status: Submitted [https://github.com/namhyung/uftrace/pull/487]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libmcount/plthook.c | 1 +
+ utils/debug.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/libmcount/plthook.c b/libmcount/plthook.c
+index d9d84f0..d54f5e8 100644
+--- a/libmcount/plthook.c
++++ b/libmcount/plthook.c
+@@ -6,6 +6,7 @@
+ #include <sys/mman.h>
+ #include <pthread.h>
+ #include <assert.h>
++#include <dlfcn.h>
+
+ /* This should be defined before #include "utils.h" */
+ #define PR_FMT "mcount"
+diff --git a/utils/debug.c b/utils/debug.c
+index 2134b09..5460def 100644
+--- a/utils/debug.c
++++ b/utils/debug.c
+@@ -13,6 +13,7 @@
+ #include <assert.h>
+ #include <limits.h>
+ #include <inttypes.h>
++#include <dlfcn.h>
+
+ #include "utils/utils.h"
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.3.bb b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.3.bb
new file mode 100644
index 0000000..ca38e6a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.3.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Trace and analyze execution of a program written in C/C++"
+HOMEPAGE = "https://github.com/namhyung/uftrace"
+BUGTRACKER = "https://github.com/namhyung/uftrace/issues"
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "elfutils"
+DEPENDS_append_libc-musl = " argp-standalone"
+
+inherit autotools
+
+# v0.8.3
+SRCREV = "8b723a6fae2ef30495cd6279774fba9c95cd9c88"
+SRC_URI = "git://github.com/namhyung/${BPN} \
+ file://0001-include-dlfcn.h-for-RTLD_DEFAULT.patch \
+ "
+S = "${WORKDIR}/git"
+
+LDFLAGS_append_libc-musl = " -largp"
+
+def set_target_arch(d):
+ import re
+ arch = d.getVar('TARGET_ARCH', True)
+ if re.match(r'i.86', arch, re.I):
+ return 'i386'
+ else:
+ return arch
+
+EXTRA_UFTRACE_OECONF = "ARCH=${@set_target_arch(d)} \
+ with_elfutils=/use/libelf/from/sysroot"
+
+do_configure() {
+ ${S}/configure ${EXTRA_UFTRACE_OECONF}
+}
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${libdir}/*.so"
+
+COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm)"
+
+# uftrace supports armv6 and above
+COMPATIBLE_HOST_armv4 = 'null'
+COMPATIBLE_HOST_armv5 = 'null'
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb
deleted file mode 100644
index 82b1795..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Trace and analyze execution of a program written in C/C++"
-HOMEPAGE = "https://github.com/namhyung/uftrace"
-BUGTRACKER = "https://github.com/namhyung/uftrace/issues"
-SECTION = "devel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "elfutils"
-DEPENDS_append_libc-musl = " argp-standalone"
-
-inherit autotools
-
-SRCREV = "5af9ff9fa89c340617e52c8ed05798b352a7145c"
-SRC_URI = "git://github.com/namhyung/${BPN}"
-S = "${WORKDIR}/git"
-
-LDFLAGS_append_libc-musl = " -largp"
-EXTRA_OECONF = "ARCH=${TARGET_ARCH}"
-
-do_configure() {
- ${S}/configure ${EXTRA_OECONF}
-}
-
-FILES_SOLIBSDEV = ""
-FILES_${PN} += "${libdir}/*.so"
-
-COMPATIBLE_HOST = "(x86_64|aarch64|arm)"
-
-# uftrace supports armv6 and above
-COMPATIBLE_HOST_armv4 = 'null'
-COMPATIBLE_HOST_armv5 = 'null'
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch b/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch
new file mode 100644
index 0000000..d5610bb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch
@@ -0,0 +1,71 @@
+From 4c684542816a08b95444b8e2515f24d084e6e3c3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 4 Sep 2018 22:05:17 -0700
+Subject: [PATCH] Support OpenSSL 1.1
+
+When building with OpenSSL 1.1 and newer, use the new built-in
+ hostname verification instead of code that doesn't compile due to
+ structs having been made opaque.
+Bug-Debian: https://bugs.debian.org/828589
+
+Upstream-Status: Unknown
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/osdep/unix/ssl_unix.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/src/osdep/unix/ssl_unix.c b/src/osdep/unix/ssl_unix.c
+index 3bfdff3..dec9467 100644
+--- a/src/osdep/unix/ssl_unix.c
++++ b/src/osdep/unix/ssl_unix.c
+@@ -227,8 +227,16 @@ static char *ssl_start_work (SSLSTREAM *stream,char *host,unsigned long flags)
+ /* disable certificate validation? */
+ if (flags & NET_NOVALIDATECERT)
+ SSL_CTX_set_verify (stream->context,SSL_VERIFY_NONE,NIL);
+- else SSL_CTX_set_verify (stream->context,SSL_VERIFY_PEER,ssl_open_verify);
++ else {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000
++ X509_VERIFY_PARAM *param = SSL_CTX_get0_param(stream->context);
++ X509_VERIFY_PARAM_set_hostflags(param, X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS);
++ X509_VERIFY_PARAM_set1_host(param, host, 0);
++#endif
++
++ SSL_CTX_set_verify (stream->context,SSL_VERIFY_PEER,ssl_open_verify);
+ /* set default paths to CAs... */
++ }
+ SSL_CTX_set_default_verify_paths (stream->context);
+ /* ...unless a non-standard path desired */
+ if (s = (char *) mail_parameters (NIL,GET_SSLCAPATH,NIL))
+@@ -266,6 +274,7 @@ static char *ssl_start_work (SSLSTREAM *stream,char *host,unsigned long flags)
+ if (SSL_write (stream->con,"",0) < 0)
+ return ssl_last_error ? ssl_last_error : "SSL negotiation failed";
+ /* need to validate host names? */
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ if (!(flags & NET_NOVALIDATECERT) &&
+ (err = ssl_validate_cert (cert = SSL_get_peer_certificate (stream->con),
+ host))) {
+@@ -275,6 +284,7 @@ static char *ssl_start_work (SSLSTREAM *stream,char *host,unsigned long flags)
+ sprintf (tmp,"*%.128s: %.255s",err,cert ? cert->name : "???");
+ return ssl_last_error = cpystr (tmp);
+ }
++#endif
+ return NIL;
+ }
+
+@@ -313,6 +323,7 @@ static int ssl_open_verify (int ok,X509_STORE_CTX *ctx)
+ * Returns: NIL if validated, else string of error message
+ */
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ static char *ssl_validate_cert (X509 *cert,char *host)
+ {
+ int i,n;
+@@ -342,6 +353,7 @@ static char *ssl_validate_cert (X509 *cert,char *host)
+ else ret = "Unable to locate common name in certificate";
+ return ret;
+ }
++#endif
+
+ /* Case-independent wildcard pattern match
+ * Accepts: base string
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb b/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
index 91003f6..0000f05 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -4,12 +4,13 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a6a4ddbb7cd2999f6827ee143f6fcd97"
-DEPENDS = "openssl"
+DEPENDS = "openssl virtual/crypt"
SRC_URI = "https://fossies.org/linux/misc/old/imap-${PV}.tar.gz \
file://quote_cctype.patch \
file://imap-2007e-shared.patch \
file://imap-2007f-format-security.patch \
+ file://0001-Support-OpenSSL-1.1.patch \
"
SRC_URI[md5sum] = "2126fd125ea26b73b20f01fcd5940369"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb b/meta-openembedded/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb
index 64ac747..0951307 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb
@@ -9,7 +9,7 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "http://apache.lauf-forum.at/xerces/c/3/sources/${BP}.tar.bz2"
+SRC_URI = "http://archive.apache.org/dist/xerces/c/3/sources/${BP}.tar.bz2"
SRC_URI[md5sum] = "d04ae9d8b2dee2157c6db95fa908abfd"
SRC_URI[sha256sum] = "9408f12c1628ecf80730bedbe8b2caad810edd01bb4c66f77b60c873e8cc6891"
@@ -24,24 +24,21 @@
}
PACKAGES = "libxerces-c \
- libxerces-c-dbg \
libxerces-c-dev \
xerces-c-samples \
- xerces-c-samples-dbg \
libxerces-c-staticdev \
+ ${PN}-dbg \
"
+RPROVIDES_${PN}-dbg += "libxerces-c-dbg xerces-c-samples-dbg"
+
FILES_libxerces-c = "${libdir}/libxerces-c-3.1.so"
-FILES_libxerces-c-dbg = "${libdir}/.debug \
- ${prefix}/src/debug \
-"
FILES_libxerces-c-dev = "${libdir}/lib*.la \
${libdir}/libxerces-c.so \
${libdir}/pkgconfig/xerces-c.pc \
${includedir}/xercesc \
"
FILES_xerces-c-samples = "${bindir}/*"
-FILES_xerces-c-samples-dbg = "${bindir}/.debug/"
FILES_libxerces-c-staticdev = "${libdir}/lib*.a"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
new file mode 100644
index 0000000..b20d4c0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"
+LICENSE = "BSD"
+HOMEPAGE = "http://www.tortall.net/projects/yasm/"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a12d8903508fb6bfd49d8d82c6170dd9"
+
+DEPENDS += "flex-native bison-native xmlto-native"
+
+PV = "1.3.0+git${SRCPV}"
+# v1.3.0
+SRCREV = "ba463d3c26c0ece2e797b8d6381b161633b5971a"
+SRC_URI = "git://github.com/yasm/yasm.git"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gettext pythonnative
+
+CACHED_CONFIGUREVARS = "CCLD_FOR_BUILD='${CC_FOR_BUILD}'"
+
+BBCLASSEXTEND = "native"
+
+PARALLEL_MAKE = ""
diff --git a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch b/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch
deleted file mode 100644
index 287391a..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-Remove rpath, its bad for cross compiling to encode
-build time rpaths
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: boinc-client_release-7.6-7.6.33/api/Makefile.am
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/api/Makefile.am
-+++ boinc-client_release-7.6-7.6.33/api/Makefile.am
-@@ -43,18 +43,18 @@ endif
-
- lib_LTLIBRARIES = libboinc_api.la
- libboinc_api_la_SOURCES = $(api_files)
--libboinc_api_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libboinc_api_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
-
- if BUILD_GRAPHICS_API
- lib_LTLIBRARIES += libboinc_graphics2.la
- libboinc_graphics2_la_SOURCES = $(graphics2_files)
- libboinc_graphics2_la_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/samples/image_libs
--libboinc_graphics2_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION) -ljpeg
-+libboinc_graphics2_la_LDFLAGS = -version-number $(LIBBOINC_VERSION) -ljpeg
- endif #BUILD_GRAPHICS_API
-
- lib_LTLIBRARIES += libboinc_opencl.la
- libboinc_opencl_la_SOURCES = $(opencl_files)
--libboinc_opencl_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libboinc_opencl_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
-
- if INSTALL_HEADERS
- ## install only headers that are meant for exporting the API !!
-Index: boinc-client_release-7.6-7.6.33/lib/Makefile.am
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/lib/Makefile.am
-+++ boinc-client_release-7.6-7.6.33/lib/Makefile.am
-@@ -173,7 +173,7 @@ lib_LTLIBRARIES = libboinc.la
- libboinc_la_SOURCES = $(generic_sources) $(mac_sources) $(win_sources)
- libboinc_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
- libboinc_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
--libboinc_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number $(LIBBOINC_VERSION)
-+libboinc_la_LDFLAGS = -static -version-number $(LIBBOINC_VERSION)
- libboinc_la_LIBADD =
-
- if ENABLE_BOINCCRYPT
-@@ -181,7 +181,7 @@ lib_LTLIBRARIES += libboinc_crypt.la
- libboinc_crypt_la_SOURCES = crypt.cpp
- libboinc_crypt_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) $(SSL_CFLAGS)
- libboinc_crypt_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) $(SSL_CXXFLAGS)
--libboinc_crypt_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number $(LIBBOINC_VERSION)
-+libboinc_crypt_la_LDFLAGS = -static -version-number $(LIBBOINC_VERSION)
- libboinc_crypt_la_LIBADD =
- endif
-
-@@ -190,7 +190,7 @@ lib_LTLIBRARIES += libboinc_fcgi.la
- libboinc_fcgi_la_SOURCES = $(libfcgi_sources) $(mac_sources) $(win_sources)
- libboinc_fcgi_la_CFLAGS = -D_USING_FCGI_ $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
- libboinc_fcgi_la_CXXFLAGS = -D_USING_FCGI_ $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
--libboinc_fcgi_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libboinc_fcgi_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
- libboinc_fcgi_la_LIBADD =
- endif
- # end of "if ENABLE_FCGI"
-Index: boinc-client_release-7.6-7.6.33/sched/Makefile.am
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/sched/Makefile.am
-+++ boinc-client_release-7.6-7.6.33/sched/Makefile.am
-@@ -26,7 +26,7 @@ lib_LTLIBRARIES = libsched.la
- libsched_la_SOURCES = $(libsched_sources)
- libsched_la_CFLAGS = $(AM_CPPFLAGS)
- libsched_la_CXXFLAGS = $(AM_CPPFLAGS)
--libsched_la_LDFLAGS= -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libsched_la_LDFLAGS= -version-number $(LIBBOINC_VERSION)
- libsched_la_LIBADD= $(SSL_LIBS)
-
- ## install only headers that are meant for exporting the API !!
-@@ -48,7 +48,7 @@ lib_LTLIBRARIES += libsched_fcgi.la
- libsched_fcgi_la_SOURCES = $(libsched_sources)
- libsched_fcgi_la_CFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
- libsched_fcgi_la_CXXFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
--libsched_fcgi_la_LDFLAGS= -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libsched_fcgi_la_LDFLAGS= -version-number $(LIBBOINC_VERSION)
- libsched_fcgi_la_LIBADD=
-
- endif
-Index: boinc-client_release-7.6-7.6.33/zip/Makefile.am
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/zip/Makefile.am
-+++ boinc-client_release-7.6-7.6.33/zip/Makefile.am
-@@ -61,7 +61,7 @@ endif
-
- lib_LTLIBRARIES = libboinc_zip.la
- libboinc_zip_la_SOURCES = $(libboinc_zip_sources)
--libboinc_zip_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libboinc_zip_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
- libboinc_zip_la_LIBADD =
-
- # Some OSs may not prefix libraries with lib.
diff --git a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.12.bb b/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.12.bb
new file mode 100644
index 0000000..e505bb4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.12.bb
@@ -0,0 +1,87 @@
+# Copyright (C) 2016 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Open-source software for volunteer computing"
+DESCRIPTION = "The Berkeley Open Infrastructure for Network Computing (BOINC) is an open- \
+source software platform which supports distributed computing, primarily in \
+the form of volunteer computing and desktop Grid computing. It is well \
+suited for problems which are often described as trivially parallel. BOINC \
+is the underlying software used by projects such as SETI@home, Einstein@Home, \
+ClimatePrediciton.net, the World Community Grid, and many other distributed \
+computing projects. \
+This package installs the BOINC client software, which will allow your \
+computer to participate in one or more BOINC projects, using your spare \
+computer time to search for cures for diseases, model protein folding, study \
+global warming, discover sources of gravitational waves, and many other types \
+of scientific and mathematical research."
+
+HOMEPAGE = "http://boinc.berkeley.edu/"
+LICENSE = "LGPLv2+ & GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
+SECTION = "applications"
+DEPENDS = "curl \
+ jpeg \
+ openssl \
+ sqlite3 \
+ virtual/libgl \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libnotify', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+ libnotify xcb-util libxscrnsaver', '', d)} \
+ nettle \
+"
+SRCREV = "bd12338dbd29083daa5a4b022592ca31ff68cd98"
+BRANCH = "client_release/7/${PV}"
+SRC_URI = "git://github.com/BOINC/boinc;protocol=https;branch=${BRANCH} \
+ file://boinc-AM_CONDITIONAL.patch \
+ file://opengl_m4_check.patch \
+ file://gtk-configure.patch \
+"
+
+inherit gettext autotools pkgconfig distro_features_check systemd
+
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "\
+ --enable-libraries \
+ --enable-unicode \
+ --enable-shared \
+ --enable-dynamic-client-linkage \
+ --enable-client \
+ --disable-server \
+ --disable-static \
+ --disable-manager \
+ --with-ssl=${STAGING_EXECPREFIXDIR} \
+ --without-wxdir \
+ --without-x \
+ --with-boinc-platform=${TARGET_SYS} \
+"
+export PKG_CONFIG = "${STAGING_BINDIR_NATIVE}/pkg-config"
+
+do_configure_prepend () {
+ if "${@bb.utils.contains('DEPENDS', 'gtk+', '1', '0', d)}" = "0"
+ then
+ export GTK2_CFLAGS=""
+ export GTK2_LIBS=""
+ fi
+}
+
+do_compile_prepend () {
+ # Disable rpaths
+ sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${B}/${TARGET_SYS}-libtool
+ sed -i -e 's|^sys_lib_dlsearch_path_spec=.*|sys_lib_dlsearch_path_spec=""|g' ${B}/${TARGET_SYS}-libtool
+ sed -i -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${B}/${TARGET_SYS}-libtool
+}
+do_install_append() {
+ if [ -e ${D}${libdir}/systemd/system/boinc-client.service ]; then
+ install -D -m 0644 \
+ ${D}${libdir}/systemd/system/boinc-client.service \
+ ${D}${systemd_system_unitdir}/boinc-client.service
+ rm -rf ${D}${libdir}/systemd
+ fi
+}
+
+SYSTEMD_SERVICE_${PN} = "boinc-client.service"
+
+FILES_${PN} += "${libdir}/systemd"
diff --git a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb b/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
deleted file mode 100644
index 99b43fa..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright (C) 2016 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Open-source software for volunteer computing"
-DESCRIPTION = "The Berkeley Open Infrastructure for Network Computing (BOINC) is an open- \
-source software platform which supports distributed computing, primarily in \
-the form of volunteer computing and desktop Grid computing. It is well \
-suited for problems which are often described as trivially parallel. BOINC \
-is the underlying software used by projects such as SETI@home, Einstein@Home, \
-ClimatePrediciton.net, the World Community Grid, and many other distributed \
-computing projects. \
-This package installs the BOINC client software, which will allow your \
-computer to participate in one or more BOINC projects, using your spare \
-computer time to search for cures for diseases, model protein folding, study \
-global warming, discover sources of gravitational waves, and many other types \
-of scientific and mathematical research."
-
-HOMEPAGE = "http://boinc.berkeley.edu/"
-LICENSE = "LGPLv2+ & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
-SECTION = "applications"
-DEPENDS = "curl \
- jpeg \
- openssl \
- sqlite3 \
- virtual/libgl \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libnotify', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+ libnotify xcb-util libxscrnsaver', '', d)} \
- nettle \
-"
-
-SRC_URI = "https://github.com/BOINC/boinc/archive/client_release/7.6/${PV}.tar.gz \
- file://boinc-AM_CONDITIONAL.patch \
- file://opengl_m4_check.patch \
- file://cross-compile.patch \
- file://gtk-configure.patch \
-"
-SRC_URI[md5sum] = "437b4b98e384b4bda4ef7056e68166ac"
-SRC_URI[sha256sum] = "c4b1c29b9655013e0ac61dddf47ad7f30f38c46159f02a9d9dc8ab854e99aa6d"
-
-inherit gettext autotools-brokensep pkgconfig distro_features_check
-
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-S = "${WORKDIR}/${BPN}_release-7.6-${PV}"
-
-EXTRA_OECONF += "\
- --enable-libraries \
- --enable-unicode \
- --enable-shared \
- --enable-dynamic-client-linkage \
- --enable-client \
- --disable-server \
- --disable-static \
- --disable-manager \
- --with-ssl=${STAGING_EXECPREFIXDIR} \
- --without-wxdir \
- --without-x \
- --with-boinc-platform=${TARGET_SYS} \
-"
-export PKG_CONFIG = "${STAGING_BINDIR_NATIVE}/pkg-config"
-
-do_configure_prepend () {
- if "${@bb.utils.contains('DEPENDS', 'gtk+', '1', '0', d)}" = "0"
- then
- export GTK2_CFLAGS=""
- export GTK2_LIBS=""
- fi
-}
-
-do_compile_prepend () {
- # Disable rpaths
- sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${B}/${TARGET_SYS}-libtool
- sed -i -e 's|^sys_lib_dlsearch_path_spec=.*|sys_lib_dlsearch_path_spec=""|g' ${B}/${TARGET_SYS}-libtool
- sed -i -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${B}/${TARGET_SYS}-libtool
-}
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb
new file mode 100644
index 0000000..b4d4773
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Lossless compression library and tool"
+DESCRIPTIOM = "Brotli is a generic-purpose lossless compression algorithm \
+that it is similar in speed to deflate but offers more dense compression."
+HOMEPAGE = "https://github.com/google/brotli"
+BUGTRACKER = "https://github.com/google/brotli/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=941ee9cd1609382f946352712a319b4b"
+
+SRC_URI = "git://github.com/google/brotli.git"
+# tag 1.0.7
+SRCREV= "d6d98957ca8ccb1ef45922e978bb10efca0ea541"
+S = "${WORKDIR}/git"
+
+inherit cmake lib_package
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc
index 9bdafd2..5214715 100644
--- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc
+++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc
@@ -6,7 +6,7 @@
SECTION = "devel"
LICENSE = "PD"
-SRC_URI = "ftp://invisible-island.net/byacc/byacc-${PV}.tgz \
+SRC_URI = "ftp://ftp.invisible-island.net/byacc/byacc-${PV}.tgz \
file://byacc-open.patch \
file://0001-byacc-do-not-reorder-CC-and-CFLAGS.patch"
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
index 7cd2510..3bc0db9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
@@ -9,28 +9,29 @@
Upstream-Status: Inappropriate [OE Specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
aclocal.m4 | 1 -
- configure | 119 -------------------------------------------------------------
- 2 files changed, 120 deletions(-)
+ configure | 140 -------------------------------------------------------------
+ 2 files changed, 141 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
-index 917a848..62ef241 100644
+index 0d14f26..0cefa08 100644
--- a/aclocal.m4
+++ b/aclocal.m4
-@@ -1021,7 +1021,6 @@ CF_GCC_VERSION
+@@ -1038,7 +1038,6 @@ CF_GCC_VERSION
CF_ACVERSION_CHECK(2.52,
[AC_PROG_CC_STDC],
[CF_ANSI_CC_REQD])
-CF_CC_ENV_FLAGS
])dnl
dnl ---------------------------------------------------------------------------
- dnl CF_PROG_GROFF version: 2 updated: 2015/07/04 11:16:27
+ dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19
diff --git a/configure b/configure
-index 9707e50..4f0497c 100755
+index d27ae31..077c648 100755
--- a/configure
+++ b/configure
-@@ -1946,125 +1946,6 @@ esac
+@@ -1946,146 +1946,6 @@ esac
# This should have been defined by AC_PROG_CC
: ${CC:=cc}
@@ -43,8 +44,9 @@
- { echo "$as_me:1955: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
-echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
- # humor him...
-- cf_flags=`echo "$CC" | sed -e 's/^.*[ ]\(-[^ ]\)/\1/'`
-- CC=`echo "$CC " | sed -e 's/[ ]-[^ ].*$//' -e 's/[ ]*$//'`
+- cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'`
+- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr($0,1+length(prog))); }'`
+- CC="$cf_prog"
- for cf_arg in $cf_flags
- do
- case "x$cf_arg" in
@@ -55,7 +57,7 @@
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
--for cf_add_cflags in $cf_flags
+-for cf_add_cflags in $cf_arg
-do
-case $cf_fix_cppflags in
-(no)
@@ -70,10 +72,16 @@
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
+-
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
+-
- continue
- fi
- ;;
@@ -92,17 +100,25 @@
-
- ;;
- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+-
+- test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags "
+- cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags"
+-
- ;;
- esac
- ;;
- (*)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+-
+- test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags "
+- cf_new_cflags="${cf_new_cflags}$cf_add_cflags"
+-
- ;;
- esac
- ;;
-(yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
@@ -115,17 +131,23 @@
-
-if test -n "$cf_new_cflags" ; then
-
-- CFLAGS="$CFLAGS $cf_new_cflags"
+- test -n "$CFLAGS" && CFLAGS="$CFLAGS "
+- CFLAGS="${CFLAGS}$cf_new_cflags"
+-
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+- test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
+- CPPFLAGS="${CPPFLAGS}$cf_new_cppflags"
+-
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+- test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS "
+- EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags"
+-
-fi
-
- ;;
@@ -136,26 +158,26 @@
- done
- test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6
-
--echo "${as_me:-configure}:2051: testing resulting CC: '$CC' ..." 1>&5
+-echo "${as_me:-configure}:2072: testing resulting CC: '$CC' ..." 1>&5
-
- test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6
-
--echo "${as_me:-configure}:2055: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
+-echo "${as_me:-configure}:2076: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
-
- test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6
-
--echo "${as_me:-configure}:2059: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+-echo "${as_me:-configure}:2080: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
-
- ;;
-(*)
-- echo "$as_me:2063: result: ok" >&5
+- echo "$as_me:2084: result: ok" >&5
-echo "${ECHO_T}ok" >&6
- ;;
-esac
-
- echo "$as_me:2068: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo "$as_me:2089: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
--
-2.8.3
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20170201.bb b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20170201.bb
deleted file mode 100644
index 702c4c9..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20170201.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-# Sigh. This is one of those places where everyone licenses it differently. Someone
-# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
-# "I've found no reliable source which states that byacc must bear a UCB copyright."
-# Setting to PD as this is what the upstream has it as.
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=9176bfb16dab43ebcb8e50d9ee9550b6"
-require byacc.inc
-
-SRC_URI[md5sum] = "4bb274bbd7b648d4251c2b9ca36ed0c9"
-SRC_URI[sha256sum] = "90b768d177f91204e6e7cef226ae1dc7cac831b625774cebd3e233a917754f91"
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20180510.bb b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20180510.bb
new file mode 100644
index 0000000..f30c426
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20180510.bb
@@ -0,0 +1,12 @@
+# Sigh. This is one of those places where everyone licenses it differently. Someone
+# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
+# "I've found no reliable source which states that byacc must bear a UCB copyright."
+# Setting to PD as this is what the upstream has it as.
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=8b2933503c0443e041d3168dc0c65640"
+require byacc.inc
+
+SRC_URI[md5sum] = "97fdc0745e0ff0cef5c09d57d0c6752d"
+SRC_URI[sha256sum] = "d0940dbffbc7e9c9dd4985c25349c390beede84ae1d9fe86b71c0aa659a6d693"
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb
deleted file mode 100644
index b52e7cc..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
-#
-SUMMARY = "Base policy for CFEngine"
-
-DESCRIPTION = "CFEngine is an IT infrastructure automation framework \
-that helps engineers, system administrators and other stakeholders \
-in an IT system to manage and understand IT infrastructure throughout \
-its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit. \
- \
-This package is intended to provide a stable base policy for \
-installations and upgrades, and is used by CFEngine 3.6 and newer. \
- \
-The contents of this packge are intended to live in `/var/cfengine/masterfiles` \
-or wherever `$(sys.masterdir)` points. \
-"
-
-HOMEPAGE = "http://cfengine.com"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9f76426f9ef8c6f6739fadd21d817a4f"
-
-SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "1247ef4e8f3cee5efa98da50c326e5a4"
-SRC_URI[sha256sum] = "5d18a8d71f451d0b5dd1f5e579452b29b99b664f2bb0827dbba9a615f2764df6"
-
-inherit autotools
-
-export EXPLICIT_VERSION="${PV}"
-
-EXTRA_OECONF = "--prefix=${datadir}/cfengine"
-
-FILES_${PN} = "${datadir}/cfengine"
-
-RDEPENDS_${PN} += "python-core"
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb
new file mode 100644
index 0000000..dda6af9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb
@@ -0,0 +1,36 @@
+#
+# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
+#
+SUMMARY = "Base policy for CFEngine"
+
+DESCRIPTION = "CFEngine is an IT infrastructure automation framework \
+that helps engineers, system administrators and other stakeholders \
+in an IT system to manage and understand IT infrastructure throughout \
+its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit. \
+ \
+This package is intended to provide a stable base policy for \
+installations and upgrades, and is used by CFEngine 3.6 and newer. \
+ \
+The contents of this packge are intended to live in `/var/cfengine/masterfiles` \
+or wherever `$(sys.masterdir)` points. \
+"
+
+HOMEPAGE = "http://cfengine.com"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9f76426f9ef8c6f6739fadd21d817a4f"
+
+SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "d59bd8c95620da816c382f749d425860"
+SRC_URI[sha256sum] = "1c50e3d8c702097e13a21258626d936d6ff2e6492e893dfe286ff0d6204d7a65"
+
+inherit autotools
+
+export EXPLICIT_VERSION="${PV}"
+
+EXTRA_OECONF = "--prefix=${datadir}/cfengine"
+
+FILES_${PN} = "${datadir}/cfengine"
+
+RDEPENDS_${PN} += "python-core"
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine/change-hard-coded-lib-path.patch b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine/change-hard-coded-lib-path.patch
deleted file mode 100644
index 2295e41..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine/change-hard-coded-lib-path.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-projlibdir use a hard coded lib path, this will cause error when build a 64bit
-target. So change it to suitable path.
-
-Signed-off-by: Song.Li <Song.Li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 38e2b9c..bc6b996 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -188,7 +188,7 @@ AS_IF([test x"$enable_fhs" = xyes], [
- fi
-
- sbindir='${exec_prefix}/bin' # /var/cfengine/bin despite being sbin_?
-- projlibdir='${exec_prefix}/lib'
-+ projlibdir='${libdir}'
- mandir='${exec_prefix}/share/man'
- ])
-
---
-1.7.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch
index b9526f2..db69f95 100644
--- a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch
@@ -1,23 +1,38 @@
+From dc270040cb3beb5ca42f864813145c8a68594bad Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Mon, 18 Jul 2016 09:06:06 +0800
+Subject: [PATCH] cfengine: add recipe and base policy
+
Upstream-Status: Inappropriate [configuration]
Set the path of default configure file.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
---
+ misc/init.d/cfengine3.in | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
diff --git a/misc/init.d/cfengine3.in b/misc/init.d/cfengine3.in
-index d6ae26f..1dee283 100644
+index c584817..12f5803 100644
--- a/misc/init.d/cfengine3.in
+++ b/misc/init.d/cfengine3.in
-@@ -101,11 +101,7 @@ if [ -z "$LOCKDIR" ]; then
+@@ -101,14 +101,10 @@ if [ -z "$LOCKDIR" ]; then
fi
# default control file
-if [ "$DEBIAN" = "1" ]; then
- DEFAULT=/etc/default/cfengine3
+- INIT_FUNCTIONS=/lib/lsb/init-functions
+- if [ -e "$INIT_FUNCTIONS" ]; then
+- . "$INIT_FUNCTIONS"
+- fi
-else
- DEFAULT=/etc/sysconfig/cfengine3
--fi
+DEFAULT=/etc/default/cfengine3
++INIT_FUNCTIONS=/lib/lsb/init-functions
++if [ -e "$INIT_FUNCTIONS" ]; then
++ . "$INIT_FUNCTIONS"
+ fi
if [ -f $DEFAULT ]; then
- . $DEFAULT
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb
deleted file mode 100644
index b86b0a1..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
-#
-SUMMARY = "CFEngine is an IT infrastructure automation framework"
-
-DESCRIPTION = "CFEngine is an IT infrastructure automation framework \
-that helps engineers, system administrators and other stakeholders \
-in an IT system to manage and understand IT infrastructure throughout \
-its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit."
-
-HOMEPAGE = "http://cfengine.com"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f8b34828ab373d6b1bb4b0fc60a78494"
-
-DEPENDS = "attr tokyocabinet"
-
-SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
- file://change-hard-coded-lib-path.patch \
- file://set-path-of-default-config-file.patch \
-"
-
-SRC_URI[md5sum] = "c16baf08189a1af6fcf2e2ff61102992"
-SRC_URI[sha256sum] = "d4fa9ac7276dba7b85d6757aab2f0929ab8d3b115cb0e7b0cf984760347429d7"
-
-inherit autotools systemd
-
-export EXPLICIT_VERSION="${PV}"
-
-SYSTEMD_SERVICE_${PN} = "cfengine3.service cf-apache.service cf-hub.service cf-postgres.service \
- cf-runalerts.service cf-consumer.service cf-execd.service \
- cf-monitord.service cf-redis-server.service cf-serverd.service \
-"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
-
-PACKAGECONFIG ??= "libpcre openssl \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
-"
-PACKAGECONFIG[libxml2] = "--with-libxml2=yes,--with-libxml2=no,libxml2,"
-PACKAGECONFIG[mysql] = "--with-mysql=yes,--with-mysql=no,mysql,"
-PACKAGECONFIG[postgresql] = "--with-postgresql=yes,--with-postgresql=no,postgresql,"
-PACKAGECONFIG[acl] = "--with-libacl=yes,--with-libacl=no,acl,"
-PACKAGECONFIG[libvirt] = "--with-libvirt=yes,--with-libvirt=no,libvirt,"
-PACKAGECONFIG[libpcre] = "--with-pcre=yes,--with-pcre=no,libpcre,"
-PACKAGECONFIG[openssl] = "--with-openssl=yes,--with-openssl=no,openssl,"
-PACKAGECONFIG[pam] = "--with-pam=yes,--with-pam=no,libpam,"
-PACKAGECONFIG[libyaml] = "--with-libyaml,--without-libyaml,libyaml,"
-PACKAGECONFIG[systemd] = "--with-systemd-service=${systemd_system_unitdir},--without-systemd-service"
-PACKAGECONFIG[libcurl] = "--with-libcurl,--without-libcurl,curl,"
-
-EXTRA_OECONF = "hw_cv_func_va_copy=yes --with-init-script=${sysconfdir}/init.d --with-tokyocabinet"
-
-do_install_append() {
- install -d ${D}${localstatedir}/${BPN}/bin
- for f in `ls ${D}${bindir}`; do
- ln -s ${bindir}/`basename $f` ${D}${localstatedir}/${BPN}/bin/
- done
-
- install -d ${D}${sysconfdir}/default
- cat << EOF > ${D}${sysconfdir}/default/cfengine3
-RUN_CF_SERVERD=1
-RUN_CF_EXECD=1
-RUN_CF_MONITORD=1
-RUN_CF_HUB=0
-EOF
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -m 0755 -D ${D}${sysconfdir}/init.d/cfengine3 ${D}${datadir}/${BPN}/cfengine3
- sed -i -e 's#/etc/init.d#${datadir}/${BPN}#' ${D}${systemd_system_unitdir}/*.service
- fi
-}
-
-RDEPENDS_${PN} += "${BPN}-masterfiles"
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb
new file mode 100644
index 0000000..9d0123d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb
@@ -0,0 +1,72 @@
+#
+# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
+#
+SUMMARY = "CFEngine is an IT infrastructure automation framework"
+
+DESCRIPTION = "CFEngine is an IT infrastructure automation framework \
+that helps engineers, system administrators and other stakeholders \
+in an IT system to manage and understand IT infrastructure throughout \
+its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit."
+
+HOMEPAGE = "http://cfengine.com"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f8b34828ab373d6b1bb4b0fc60a78494"
+
+DEPENDS = "attr tokyocabinet"
+
+SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
+ file://set-path-of-default-config-file.patch \
+ "
+
+SRC_URI[md5sum] = "33ef12260db4b430352229f37f7cb0e5"
+SRC_URI[sha256sum] = "d71ba98a272390c6fa8bc20e8ea27f0050a0a72a3e6b206a4762b4646be332ec"
+
+inherit autotools systemd
+
+export EXPLICIT_VERSION="${PV}"
+
+SYSTEMD_SERVICE_${PN} = "cfengine3.service cf-apache.service cf-hub.service cf-postgres.service \
+ cf-runalerts.service cf-execd.service \
+ cf-monitord.service cf-serverd.service \
+"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+PACKAGECONFIG ??= "libpcre openssl \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
+"
+PACKAGECONFIG[libxml2] = "--with-libxml2=yes,--with-libxml2=no,libxml2,"
+PACKAGECONFIG[mysql] = "--with-mysql=yes,--with-mysql=no,mysql,"
+PACKAGECONFIG[postgresql] = "--with-postgresql=yes,--with-postgresql=no,postgresql,"
+PACKAGECONFIG[acl] = "--with-libacl=yes,--with-libacl=no,acl,"
+PACKAGECONFIG[libvirt] = "--with-libvirt=yes,--with-libvirt=no,libvirt,"
+PACKAGECONFIG[libpcre] = "--with-pcre=yes,--with-pcre=no,libpcre,"
+PACKAGECONFIG[openssl] = "--with-openssl=yes,--with-openssl=no,openssl,"
+PACKAGECONFIG[pam] = "--with-pam=yes,--with-pam=no,libpam,"
+PACKAGECONFIG[libyaml] = "--with-libyaml,--without-libyaml,libyaml,"
+PACKAGECONFIG[systemd] = "--with-systemd-service=${systemd_system_unitdir},--without-systemd-service"
+PACKAGECONFIG[libcurl] = "--with-libcurl,--without-libcurl,curl,"
+
+EXTRA_OECONF = "hw_cv_func_va_copy=yes --with-init-script=${sysconfdir}/init.d --with-tokyocabinet"
+
+do_install_append() {
+ install -d ${D}${localstatedir}/${BPN}/bin
+ for f in `ls ${D}${bindir}`; do
+ ln -s ${bindir}/`basename $f` ${D}${localstatedir}/${BPN}/bin/
+ done
+
+ install -d ${D}${sysconfdir}/default
+ cat << EOF > ${D}${sysconfdir}/default/cfengine3
+RUN_CF_SERVERD=1
+RUN_CF_EXECD=1
+RUN_CF_MONITORD=1
+RUN_CF_HUB=0
+EOF
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -m 0755 -D ${D}${sysconfdir}/init.d/cfengine3 ${D}${datadir}/${BPN}/cfengine3
+ sed -i -e 's#/etc/init.d#${datadir}/${BPN}#' ${D}${systemd_system_unitdir}/*.service
+ fi
+}
+
+RDEPENDS_${PN} += "${BPN}-masterfiles"
diff --git a/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb b/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb
rename to meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
index 1ceacd8..5ee75cb 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
@@ -1,28 +1,31 @@
-[PATCH] conditionally check libvirt
+From 385bf1c2ec57942e17ee529e57eef0dcd99904e6 Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Tue, 1 Sep 2015 17:00:33 +0800
+Subject: [PATCH] [PATCH] conditionally check libvirt
Upstream-Statue: Pending
check if libvirt is available only when a user wants to use libvirt
Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- configure.ac | 14 ++++++++------
- 1 file changed, 8 insertions(+), 6 deletions(-)
-Index: collectd-5.7.1/configure.ac
-===================================================================
---- collectd-5.7.1.orig/configure.ac
-+++ collectd-5.7.1/configure.ac
-@@ -5556,12 +5556,14 @@ else
- with_libxml2="no (pkg-config doesn't know libxml-2.0)"
+---
+ configure.ac | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 101d6f9f..a7eca97d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -5758,11 +5758,14 @@ else
+ with_libxml2="no (pkg-config doesn't know libxml-2.0)"
fi
-$PKG_CONFIG --exists libvirt 2>/dev/null
--if test "$?" = "0"
--then
-- with_libvirt="yes"
+-if test $? = 0; then
+- with_libvirt="yes"
-else
-- with_libvirt="no (pkg-config doesn't know libvirt)"
+- with_libvirt="no (pkg-config doesn't know libvirt)"
+if test "x$enable_libvirt" = "xyes"; then
+ $PKG_CONFIG --exists libvirt 2>/dev/null
+ if test "$?" = "0"
@@ -32,5 +35,5 @@
+ with_libvirt="no (pkg-config doesn't know libvirt)"
+ fi
fi
- if test "x$with_libxml2" = "xyes"
- then
+
+ if test "x$with_libxml2" = "xyes"; then
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
index 5069a63..d2c7268 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
@@ -1,4 +1,4 @@
-From b459c55e4968321e5a82272cb39aa69d4054990f Mon Sep 17 00:00:00 2001
+From b0a64db90a24469e36978c748417ebe456b34d59 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 22 Apr 2017 11:54:57 -0700
Subject: [PATCH] configure: Check for -Wno-error=format-truncation compiler
@@ -14,35 +14,26 @@
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- configure.ac | 3 +-
- m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 76 insertions(+), 1 deletion(-)
+ configure.ac | 1 +
+ m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++
+ 2 files changed, 75 insertions(+)
create mode 100644 m4/ax_check_compile_flag.m4
diff --git a/configure.ac b/configure.ac
-index 8854542..edb8cfb 100644
+index a7eca97d..560eb988 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -4,7 +4,6 @@ AC_INIT([collectd],[m4_esyscmd(./version-gen.sh)])
- AC_CONFIG_SRCDIR(src/target_set.c)
- AC_CONFIG_HEADERS(src/config.h)
- AC_CONFIG_AUX_DIR([libltdl/config])
--
- dnl older automake's default of ARFLAGS=cru is noisy on newer binutils;
- dnl we don't really need the 'u' even in older toolchains. Then there is
- dnl older libtool, which spelled it AR_FLAGS
-@@ -6688,6 +6687,8 @@ then
- AM_CFLAGS="$AM_CFLAGS -Werror"
- AM_CXXFLAGS="$AM_CXXFLAGS -Werror"
+@@ -6794,6 +6794,7 @@ if test "x$enable_werror" != "xno"; then
+ AM_CFLAGS="$AM_CFLAGS -Werror"
+ AM_CXXFLAGS="$AM_CXXFLAGS -Werror"
fi
+AX_CHECK_COMPILE_FLAG([-Werror -Werror=format-truncation],[AM_CFLAGS="$AM_CFLAGS -Wno-error=format-truncation" AM_CXXFLAGS="$AM_CXXFLAGS -Wno-error=format-truncation"])
-+
+
AC_SUBST([AM_CFLAGS])
AC_SUBST([AM_CXXFLAGS])
-
diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4
new file mode 100644
-index 0000000..dcabb92
+index 00000000..dcabb92a
--- /dev/null
+++ b/m4/ax_check_compile_flag.m4
@@ -0,0 +1,74 @@
@@ -120,6 +111,3 @@
+ [m4_default([$3], :)])
+AS_VAR_POPDEF([CACHEVAR])dnl
+])dnl AX_CHECK_COMPILE_FLAGS
---
-2.13.4
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch
new file mode 100644
index 0000000..b12690b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch
@@ -0,0 +1,65 @@
+From d65e48b68076d5b304e6d865967003ae1fea0e6c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 9 May 2018 21:45:38 -0700
+Subject: [PATCH] Disable new gcc8 warnings
+
+GCC seems to be not able to detect the checks for size are
+already in place
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/collectd/collectd/pull/2768]
+ src/libcollectdclient/network_parse.c | 7 +++++++
+ src/write_sensu.c | 7 +++++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/src/libcollectdclient/network_parse.c b/src/libcollectdclient/network_parse.c
+index 2365ab0a..79e6ed96 100644
+--- a/src/libcollectdclient/network_parse.c
++++ b/src/libcollectdclient/network_parse.c
+@@ -163,6 +163,11 @@ static int parse_int(void *payload, size_t payload_size, uint64_t *out) {
+ return 0;
+ }
+
++#pragma GCC diagnostic push
++#if __GNUC__ == 8
++#pragma GCC diagnostic ignored "-Wstringop-truncation"
++#endif
++
+ static int parse_string(void *payload, size_t payload_size, char *out,
+ size_t out_size) {
+ char *in = payload;
+@@ -175,6 +180,8 @@ static int parse_string(void *payload, size_t payload_size, char *out,
+ return 0;
+ }
+
++#pragma GCC diagnostic pop
++
+ static int parse_identifier(uint16_t type, void *payload, size_t payload_size,
+ lcc_value_list_t *state) {
+ char buf[LCC_NAME_LEN];
+diff --git a/src/write_sensu.c b/src/write_sensu.c
+index ce23e654..63e1f599 100644
+--- a/src/write_sensu.c
++++ b/src/write_sensu.c
+@@ -569,6 +569,11 @@ static char *sensu_value_to_json(struct sensu_host const *host, /* {{{ */
+ return ret_str;
+ } /* }}} char *sensu_value_to_json */
+
++#pragma GCC diagnostic push
++#if __GNUC__ == 8
++#pragma GCC diagnostic ignored "-Wstringop-overflow"
++#pragma GCC diagnostic ignored "-Wstringop-truncation"
++#endif
+ /*
+ * Uses replace_str2() implementation from
+ * http://creativeandcritical.net/str-replace-c/
+@@ -631,6 +636,8 @@ static char *replace_str(const char *str, const char *old, /* {{{ */
+ return ret;
+ } /* }}} char *replace_str */
+
++#pragma GCC diagnostic pop
++
+ static char *replace_json_reserved(const char *message) /* {{{ */
+ {
+ char *msg = replace_str(message, "\\", "\\\\");
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
index 1fde6a0..f12b16c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
@@ -1,43 +1,37 @@
-Index: collectd-5.7.1/configure.ac
-===================================================================
---- collectd-5.7.1.orig/configure.ac
-+++ collectd-5.7.1/configure.ac
-@@ -2305,7 +2305,7 @@ AC_ARG_WITH(libgcrypt, [AS_HELP_STRING([
- with_libgcrypt="yes"
- else if test -f "$withval/bin/gcrypt-config" && test -x "$withval/bin/gcrypt-config"
- then
-- with_libgcrypt_config="$withval/bin/gcrypt-config"
-+ with_libgcrypt_config="$withval/bin/pkg-config"
- with_libgcrypt="yes"
- else if test -d "$withval"
- then
-@@ -2313,12 +2313,12 @@ AC_ARG_WITH(libgcrypt, [AS_HELP_STRING([
- GCRYPT_LDFLAGS="$GCRYPT_LDFLAGS -L$withval/lib"
- with_libgcrypt="yes"
- else
-- with_libgcrypt_config="gcrypt-config"
-+ with_libgcrypt_config="pkg-config"
- with_libgcrypt="$withval"
- fi; fi; fi
- ],
- [
-- with_libgcrypt_config="libgcrypt-config"
-+ with_libgcrypt_config="pkg-config"
- with_libgcrypt="yes"
- ])
-
-@@ -2326,12 +2326,12 @@ if test "x$with_libgcrypt" = "xyes" && t
- then
- if test "x$GCRYPT_CPPFLAGS" = "x"
- then
-- GCRYPT_CPPFLAGS=`"$with_libgcrypt_config" --cflags 2>/dev/null`
-+ GCRYPT_CPPFLAGS=`"$with_libgcrypt_config" --cflags libgcrypt 2>/dev/null`
- fi
-
- if test "x$GCRYPT_LIBS" = "x"
- then
-- GCRYPT_LIBS=`"$with_libgcrypt_config" --libs 2>/dev/null`
-+ GCRYPT_LIBS=`"$with_libgcrypt_config" --lib libgcrypt 2>/dev/null`
- fi
- fi
-
+From d9b954bd9d0b084d9a1f5159a9f0c45802a51809 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Mon, 22 Apr 2013 16:28:16 +0000
+
+---
+ configure.ac | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e869a6a0..101d6f9f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2514,20 +2514,20 @@ AC_ARG_WITH([libgcrypt],
+ if test -f "$withval" && test -x "$withval"; then
+ with_libgcrypt_config="$withval"
+ with_libgcrypt="yes"
+- else if test -f "$withval/bin/gcrypt-config" && test -x "$withval/bin/gcrypt-config"; then
+- with_libgcrypt_config="$withval/bin/gcrypt-config"
++ else if test -f "$withval/bin/pkg-config" && test -x "$withval/bin/pkg-config"; then
++ with_libgcrypt_config="$withval/bin/pkg-config"
+ with_libgcrypt="yes"
+ else if test -d "$withval"; then
+ GCRYPT_CPPFLAGS="$GCRYPT_CPPFLAGS -I$withval/include"
+ GCRYPT_LDFLAGS="$GCRYPT_LDFLAGS -L$withval/lib"
+ with_libgcrypt="yes"
+ else
+- with_libgcrypt_config="gcrypt-config"
++ with_libgcrypt_config="pkg-config"
+ with_libgcrypt="$withval"
+ fi; fi; fi
+ ],
+ [
+- with_libgcrypt_config="libgcrypt-config"
++ with_libgcrypt_config="libpkg-config"
+ with_libgcrypt="yes"
+ ]
+ )
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.2.bb b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.2.bb
deleted file mode 100644
index c156ea1..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.2.bb
+++ /dev/null
@@ -1,86 +0,0 @@
-SUMMARY = "Collects and summarises system performance statistics"
-DESCRIPTION = "collectd is a daemon which collects system performance statistics periodically and provides mechanisms to store the values in a variety of ways, for example in RRD files."
-LICENSE = "GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1bd21f19f7f0c61a7be8ecacb0e28854"
-
-DEPENDS = "rrdtool curl libpcap libxml2 yajl libgcrypt libtool lvm2"
-
-SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \
- file://collectd.init \
- file://collectd.service \
- file://no-gcrypt-badpath.patch \
- file://0001-conditionally-check-libvirt.patch \
- file://0001-fix-to-build-with-glibc-2.25.patch \
- file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
-"
-SRC_URI[md5sum] = "5da2b69c286a064db35c6cc1e758b039"
-SRC_URI[sha256sum] = "9d20a0221569a8d6b80bbc52b86e5e84965f5bafdbf5dfc3790e0fed0763e592"
-
-inherit autotools pythonnative update-rc.d pkgconfig systemd
-
-SYSTEMD_SERVICE_${PN} = "collectd.service"
-
-# Floatingpoint layout, architecture dependent
-# 'nothing', 'endianflip' or 'intswap'
-FPLAYOUT ?= "--with-fp-layout=nothing"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[openjdk] = "--with-java=${STAGING_DIR_TARGET}${libdir}/jvm,--without-java,openjdk-7"
-PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp --with-libnetsnmp=no,net-snmp"
-PACKAGECONFIG[libmemcached] = "--with-libmemcached,--without-libmemcached,libmemcached"
-PACKAGECONFIG[iptables] = "--enable-iptables,--disable-iptables,iptables"
-PACKAGECONFIG[postgresql] = "--enable-postgresql --with-libpq=yes, \
- --disable-postgresql --with-libpq=no,postgresql"
-PACKAGECONFIG[mysql] = "--enable-mysql --with-libmysql=yes, \
- --disable-mysql --with-libmysql=no,mysql5"
-PACKAGECONFIG[dbi] = "--enable-dbi,--disable-dbi,libdbi"
-PACKAGECONFIG[modbus] = "--enable-modbus,--disable-modbus,libmodbus"
-PACKAGECONFIG[libowcapi] = "--with-libowcapi,--without-libowcapi,owfs"
-PACKAGECONFIG[sensors] = "--enable-sensors --with-libsensors=yes, \
- --disable-sensors --with-libsensors=no,lmsensors"
-PACKAGECONFIG[amqp] = "--enable-amqp --with-librabbitmq=yes, \
- --disable-amqp --with-librabbitmq=no,rabbitmq-c"
-# protobuf-c, libvirt that are currently only available in meta-virtualization layer
-PACKAGECONFIG[pinba] = "--enable-pinba,--disable-pinba,protobuf-c-native protobuf-c"
-PACKAGECONFIG[libvirt] = "--enable-libvirt,--disable-libvirt,libvirt"
-PACKAGECONFIG[libesmtp] = "--with-libesmtp,--without-libesmtp,libesmtp"
-PACKAGECONFIG[libmnl] = "--with-libmnl,--without-libmnl,libmnl"
-PACKAGECONFIG[libatasmart] = "--with-libatasmart,--without-libatasmart,libatasmart"
-PACKAGECONFIG[ldap] = "--enable-openldap --with-libldap,--disable-openldap --without-libldap, openldap"
-
-EXTRA_OECONF = " \
- ${FPLAYOUT} \
- --disable-perl --with-libperl=no --with-perl-bindings=no \
- --with-libgcrypt=${STAGING_BINDIR_CROSS}/libgcrypt-config \
- --disable-notify_desktop \
-"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/collectd.init ${D}${sysconfdir}/init.d/collectd
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/collectd
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/collectd
- sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/collectd
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/collectd
-
- # Fix configuration file to allow collectd to start up
- sed -i 's!^#FQDNLookup[ \t]*true!FQDNLookup false!g' ${D}${sysconfdir}/collectd.conf
-
- rmdir "${D}${localstatedir}/run"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
-
- # Install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/collectd.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' \
- ${D}${systemd_unitdir}/system/collectd.service
-}
-
-CONFFILES_${PN} = "${sysconfdir}/collectd.conf"
-
-INITSCRIPT_NAME = "collectd"
-INITSCRIPT_PARAMS = "defaults"
-
-# threshold.so load.so are also provided by gegl
-# disk.so is also provided by libgphoto2-camlibs
-PRIVATE_LIBS = "threshold.so load.so disk.so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.0.bb b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.0.bb
new file mode 100644
index 0000000..df9fa23
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.0.bb
@@ -0,0 +1,87 @@
+SUMMARY = "Collects and summarises system performance statistics"
+DESCRIPTION = "collectd is a daemon which collects system performance statistics periodically and provides mechanisms to store the values in a variety of ways, for example in RRD files."
+LICENSE = "GPLv2 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1bd21f19f7f0c61a7be8ecacb0e28854"
+
+DEPENDS = "rrdtool curl libpcap libxml2 yajl libgcrypt libtool lvm2"
+
+SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \
+ file://collectd.init \
+ file://collectd.service \
+ file://no-gcrypt-badpath.patch \
+ file://0001-conditionally-check-libvirt.patch \
+ file://0001-fix-to-build-with-glibc-2.25.patch \
+ file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
+ file://0005-Disable-new-gcc8-warnings.patch \
+ "
+SRC_URI[md5sum] = "a841159323624f18bf03198e9f5aa364"
+SRC_URI[sha256sum] = "b06ff476bbf05533cb97ae6749262cc3c76c9969f032bd8496690084ddeb15c9"
+
+inherit autotools pythonnative update-rc.d pkgconfig systemd
+
+SYSTEMD_SERVICE_${PN} = "collectd.service"
+
+# Floatingpoint layout, architecture dependent
+# 'nothing', 'endianflip' or 'intswap'
+FPLAYOUT ?= "--with-fp-layout=nothing"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[openjdk] = "--with-java=${STAGING_DIR_TARGET}${libdir}/jvm,--without-java,openjdk-7"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp --with-libnetsnmp=no,net-snmp"
+PACKAGECONFIG[libmemcached] = "--with-libmemcached,--without-libmemcached,libmemcached"
+PACKAGECONFIG[iptables] = "--enable-iptables,--disable-iptables,iptables"
+PACKAGECONFIG[postgresql] = "--enable-postgresql --with-libpq=yes, \
+ --disable-postgresql --with-libpq=no,postgresql"
+PACKAGECONFIG[mysql] = "--enable-mysql --with-libmysql=yes, \
+ --disable-mysql --with-libmysql=no,mysql5"
+PACKAGECONFIG[dbi] = "--enable-dbi,--disable-dbi,libdbi"
+PACKAGECONFIG[modbus] = "--enable-modbus,--disable-modbus,libmodbus"
+PACKAGECONFIG[libowcapi] = "--with-libowcapi,--without-libowcapi,owfs"
+PACKAGECONFIG[sensors] = "--enable-sensors --with-libsensors=yes, \
+ --disable-sensors --with-libsensors=no,lmsensors"
+PACKAGECONFIG[amqp] = "--enable-amqp --with-librabbitmq=yes, \
+ --disable-amqp --with-librabbitmq=no,rabbitmq-c"
+# protobuf-c, libvirt that are currently only available in meta-virtualization layer
+PACKAGECONFIG[pinba] = "--enable-pinba,--disable-pinba,protobuf-c-native protobuf-c"
+PACKAGECONFIG[libvirt] = "--enable-virt,--disable-virt,libvirt"
+PACKAGECONFIG[libesmtp] = "--with-libesmtp,--without-libesmtp,libesmtp"
+PACKAGECONFIG[libmnl] = "--with-libmnl,--without-libmnl,libmnl"
+PACKAGECONFIG[libatasmart] = "--with-libatasmart,--without-libatasmart,libatasmart"
+PACKAGECONFIG[ldap] = "--enable-openldap --with-libldap,--disable-openldap --without-libldap, openldap"
+
+EXTRA_OECONF = " \
+ ${FPLAYOUT} \
+ --disable-perl --with-libperl=no --with-perl-bindings=no \
+ --with-libgcrypt=${STAGING_BINDIR_CROSS}/libgcrypt-config \
+ --disable-notify_desktop \
+"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/collectd.init ${D}${sysconfdir}/init.d/collectd
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/collectd
+ sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/collectd
+ sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/collectd
+ sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/collectd
+ install -Dm 0640 ${B}/src/collectd.conf ${D}${sysconfdir}/collectd.conf
+ # Fix configuration file to allow collectd to start up
+ sed -i 's!^#FQDNLookup[ \t]*true!FQDNLookup false!g' ${D}${sysconfdir}/collectd.conf
+
+ rmdir "${D}${localstatedir}/run"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+
+ # Install systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/collectd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${systemd_unitdir}/system/collectd.service
+}
+
+CONFFILES_${PN} = "${sysconfdir}/collectd.conf"
+
+INITSCRIPT_NAME = "collectd"
+INITSCRIPT_PARAMS = "defaults"
+
+# threshold.so load.so are also provided by gegl
+# disk.so is also provided by libgphoto2-camlibs
+PRIVATE_LIBS = "threshold.so load.so disk.so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb
deleted file mode 100644
index 63c65c4..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "display dialog boxes from shell scripts"
-DESCRIPTION = "Dialog lets you to present a variety of questions \
-or display messages using dialog boxes from a shell \
-script (or any scripting language)."
-HOMEPAGE = "http://invisible-island.net/dialog/"
-SECTION = "console/utils"
-DEPENDS = "ncurses"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
-
-SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
- "
-SRC_URI[md5sum] = "f66f28beca900b54f5fc90fdcce93508"
-SRC_URI[sha256sum] = "20139442119e2eff5c35236e8e5e313c901539008d9cccf8c8ab3851b41267e6"
-
-# hardcoded here for use in dialog-static recipe
-S = "${WORKDIR}/dialog-${PV}"
-
-inherit autotools-brokensep pkgconfig
-
-EXTRA_OECONF = "--with-ncurses \
- --disable-rpath-hack"
-
-do_configure() {
- gnu-configize --force
- sed -i 's,${cf_ncuconfig_root}6-config,${cf_ncuconfig_root}-config,g' -i configure
- sed -i 's,cf_have_ncuconfig=unknown,cf_have_ncuconfig=yes,g' -i configure
- oe_runconf
-}
diff --git a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20180621.bb b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20180621.bb
new file mode 100644
index 0000000..e987959
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20180621.bb
@@ -0,0 +1,29 @@
+SUMMARY = "display dialog boxes from shell scripts"
+DESCRIPTION = "Dialog lets you to present a variety of questions \
+or display messages using dialog boxes from a shell \
+script (or any scripting language)."
+HOMEPAGE = "http://invisible-island.net/dialog/"
+SECTION = "console/utils"
+DEPENDS = "ncurses"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
+
+SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
+ "
+SRC_URI[md5sum] = "1dba09cf45ac4ba40b3cb4a3f1d694b2"
+SRC_URI[sha256sum] = "4a4859e2b22d24e46c1a529b5a5605b95503aa04da4432f7bbd713e3e867587a"
+
+# hardcoded here for use in dialog-static recipe
+S = "${WORKDIR}/dialog-${PV}"
+
+inherit autotools-brokensep pkgconfig
+
+EXTRA_OECONF = "--with-ncurses \
+ --disable-rpath-hack"
+
+do_configure() {
+ gnu-configize --force
+ sed -i 's,${cf_ncuconfig_root}6-config,${cf_ncuconfig_root}-config,g' -i configure
+ sed -i 's,cf_have_ncuconfig=unknown,cf_have_ncuconfig=yes,g' -i configure
+ oe_runconf
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb b/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
index 4cc289d..f9fd8ae 100644
--- a/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
@@ -60,10 +60,12 @@
install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
}
-PACKAGES =+ "${PN}-x11-dbg ${PN}-x11"
+PACKAGES =+ "${PN}-x11"
+
+RPROVIDES_${PN}-dbg += "${PN}-x11-dbg"
+
DESCRIPTION_${PN}-x11 = "X11 display terminal for Gnuplot."
SECTION_${PN}-x11 = "x11/scientific"
FILES_${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
FILES_${PN} += "${datadir}/texmf"
-FILES_${PN}-x11-dbg += "${libexecdir}/gnuplot/*/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb
index 05ee842..bf13673 100644
--- a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb
@@ -12,6 +12,8 @@
SRC_URI[md5sum] = "fb1d8b3dcbb9d06b30eccd8aa500fd31"
SRC_URI[sha256sum] = "f77d9adbdf421b61601fa29faa9ce3b479d910f73c66b9e364ba8642ccbfbe70"
+UPSTREAM_CHECK_URI = "http://www.issihosts.com/haveged/downloads.html"
+
inherit autotools update-rc.d systemd
EXTRA_OECONF = "\
diff --git a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.10.bb b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.10.bb
new file mode 100644
index 0000000..5f4155e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.10.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Portable Hardware Locality (hwloc) software package"
+DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \
+ provides a portable abstraction of the hierarchical topology of modern \
+ architectures."
+HOMEPAGE = "https://www.open-mpi.org/software/hwloc/"
+SECTION = "base"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f990b"
+
+SRC_URI = "https://www.open-mpi.org/software/${BPN}/v1.11/downloads/${BP}.tar.bz2"
+SRC_URI[md5sum] = "0981a01935982aa7e850a96e0c3057b0"
+SRC_URI[sha256sum] = "2be808383d8337846fe77ce49c7ad3336fb6857505494d85c0ac03f22c5bd1e7"
+
+UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v1.11/"
+
+inherit autotools pkgconfig
+
+DEPENDS += "ncurses udev zlib"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}"
+
+PACKAGECONFIG ?= "pci libxml2 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+
+PACKAGECONFIG[numactl] = "--enable-libnuma,--disable-libnuma,numactl,numactl"
+PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2,libxml2"
+PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 cairo,cairo"
+PACKAGECONFIG[pci] = "--enable-pci,--disable-pci,libpciaccess,libpciaccess"
+
+# Split hwloc library into separate subpackage
+PACKAGES_prepend = " libhwloc "
+FILES_libhwloc += "${libdir}/libhwloc.so.*"
+RDEPENDS_${PN} += "libhwloc (= ${EXTENDPKGV})"
diff --git a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
deleted file mode 100644
index 5a335b9..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Portable Hardware Locality (hwloc) software package"
-DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \
- provides a portable abstraction of the hierarchical topology of modern \
- architectures."
-HOMEPAGE = "https://www.open-mpi.org/software/hwloc/"
-SECTION = "base"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f990b"
-
-SRC_URI = "https://www.open-mpi.org/software/${PN}/v1.11/downloads/${BP}.tar.bz2"
-SRC_URI[md5sum] = "96c34136ff416d2b13a7821c27477bed"
-SRC_URI[sha256sum] = "95d80286dfe658a3f79e2ac90698782bb36e5504f4bac1bba2394ba14dbbad24"
-
-inherit autotools pkgconfig
-
-DEPENDS += "ncurses udev zlib"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}"
-
-PACKAGECONFIG ?= "pci libxml2 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
-
-PACKAGECONFIG[numactl] = "--enable-libnuma,--disable-libnuma,numactl,numactl"
-PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2,libxml2"
-PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 cairo,cairo"
-PACKAGECONFIG[pci] = "--enable-pci,--disable-pci,libpciaccess,libpciaccess"
-
-# Split hwloc library into separate subpackage
-PACKAGES_prepend = " libhwloc "
-FILES_libhwloc += "${libdir}/libhwloc.so.*"
-RDEPENDS_${PN} += "libhwloc (= ${EXTENDPKGV})"
diff --git a/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb b/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
index 5dcae98..94643cd 100644
--- a/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
@@ -12,6 +12,9 @@
SRC_URI[md5sum] = "5ef9456b26d7694abf3101a72e1e0d1d"
SRC_URI[sha256sum] = "3adea2a24eda49bbbaeb4e6ed2042355b441dbd7161e883067a02bfc8dcef75b"
+UPSTREAM_CHECK_URI = "http://repo.or.cz/iotop.git/tags"
+UPSTREAM_CHECK_REGEX = "iotop-(?P<pver>\d+(\.\d+)+)"
+
inherit distutils
do_install_append() {
@@ -21,4 +24,4 @@
RDEPENDS_${PN} = "python-curses python-textutils \
python-codecs python-ctypes python-pprint \
- python-shell"
+ python-shell python-subprocess"
diff --git a/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch b/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch
index bcfc117..61310cc 100644
--- a/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch
@@ -1,7 +1,7 @@
-From cffe4767f89ea0b54b57e8bf9065a08a9c38d46e Mon Sep 17 00:00:00 2001
+From a70513ff59da3c593c76330afb445c21761c3268 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 18 Jul 2017 21:53:00 -0400
-Subject: [PATCH] tweak install prefix
+Date: Tue, 31 Jul 2018 17:14:24 +0800
+Subject: [PATCH 1/2] tweak install prefix
Upstream-Status: Inappropriate [oe specific]
@@ -11,7 +11,7 @@
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/Makefile b/Makefile
-index df16a3b..fbdfcb4 100644
+index c98cf35..7c5907f 100644
--- a/Makefile
+++ b/Makefile
@@ -39,26 +39,26 @@ pyisomd5sum.so: $(PYOBJS)
@@ -43,7 +43,7 @@
- install -m 0644 libcheckisomd5.h $(DESTDIR)/usr/include/
- install -m 0644 libimplantisomd5.a $(DESTDIR)/usr/$(LIBDIR)
- install -m 0644 libcheckisomd5.a $(DESTDIR)/usr/$(LIBDIR)
-- sed "s#@VERSION@#${VERSION}#g; s#@includedir@#${DESTDIR}/usr/include#g; s#@libdir@#${DESTDIR}/usr/${LIBDIR}#g" isomd5sum.pc.in > ${DESTDIR}/usr/share/pkgconfig/isomd5sum.pc
+- sed "s#@VERSION@#${VERSION}#g; s#@includedir@#/usr/include#g; s#@libdir@#/usr/${LIBDIR}#g" isomd5sum.pc.in > ${DESTDIR}/usr/share/pkgconfig/isomd5sum.pc
+ install -d -m 0755 $(DESTDIR)$(includedir)
+ install -d -m 0755 $(DESTDIR)$(libdir)
+ install -d -m 0755 $(DESTDIR)${datadir}/pkgconfig
@@ -51,10 +51,10 @@
+ install -m 0644 libcheckisomd5.h $(DESTDIR)$(includedir)
+ install -m 0644 libimplantisomd5.a $(DESTDIR)$(libdir)
+ install -m 0644 libcheckisomd5.a $(DESTDIR)$(libdir)
-+ sed "s#@VERSION@#${VERSION}#g; s#@includedir@#${DESTDIR}/usr/include#g; s#@libdir@#${DESTDIR}/usr/${LIBDIR}#g" isomd5sum.pc.in > ${DESTDIR}${datadir}/pkgconfig/isomd5sum.pc
++ sed "s#@VERSION@#${VERSION}#g; s#@includedir@#$(includedir)#g; s#@libdir@#$(libdir)#g" isomd5sum.pc.in > ${DESTDIR}${datadir}/pkgconfig/isomd5sum.pc
clean:
rm -f *.o *.so *.pyc *.a .depend *~
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb b/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb
deleted file mode 100644
index 815113e..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Tools for taking the MD5 sum of ISO images"
-DESCRIPTION = "Tools for taking the MD5 sum of ISO images"
-
-DEPENDS = "popt python3 openssl curl popt-native"
-RDEPENDS_${PN} = "openssl curl"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master \
- file://0001-tweak-install-prefix.patch \
- file://0002-fix-parallel-error.patch \
-"
-
-S = "${WORKDIR}/git"
-inherit python3native
-
-EXTRA_OEMAKE += " \
- DESTDIR='${D}' \
- PYTHONINCLUDE='-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}' \
- PYTHONSITEPACKAGES='${PYTHON_SITEPACKAGES_DIR}' \
-"
-
-do_install () {
- oe_runmake install
-}
-
-PACKAGES += "${PYTHON_PN}-${PN} ${PYTHON_PN}-${PN}-dbg"
-
-FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}/pyisomd5sum.so"
-FILES_${PYTHON_PN}-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug/pyisomd5sum.so"
-
-SRCREV = "69dc036d20761715b734ca9cc59ecc6dc8145026"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb b/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
new file mode 100644
index 0000000..83e8385
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Tools for taking the MD5 sum of ISO images"
+DESCRIPTION = "Tools for taking the MD5 sum of ISO images"
+
+DEPENDS = "popt python3 openssl curl popt-native"
+RDEPENDS_${PN} = "openssl curl"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master \
+ file://0001-tweak-install-prefix.patch \
+ file://0002-fix-parallel-error.patch \
+"
+
+S = "${WORKDIR}/git"
+inherit python3native
+
+EXTRA_OEMAKE += " \
+ DESTDIR='${D}' \
+ PYTHONINCLUDE='-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}' \
+ PYTHONSITEPACKAGES='${PYTHON_SITEPACKAGES_DIR}' \
+"
+
+do_install () {
+ oe_runmake install
+}
+
+PACKAGES += "${PYTHON_PN}-${PN}"
+
+RPROVIDES_${PN}-dbg += "${PYTHON_PN}-${PN}-dbg"
+
+FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}/pyisomd5sum.so"
+
+SRCREV = "7860901f726f5d92689cb67243cc7f981f21f74b"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.11.bb b/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.11.bb
new file mode 100644
index 0000000..370fa22
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.11.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Jansson is a C library for encoding, decoding and manipulating JSON data"
+HOMEPAGE = "http://www.digip.org/jansson/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8b70213ec164c7bd876ec2120ba52f61"
+
+SRC_URI = "http://www.digip.org/jansson/releases/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "7af071db9970441e1eaaf25662310e33"
+SRC_URI[sha256sum] = "6e85f42dabe49a7831dbdd6d30dca8a966956b51a9a50ed534b82afc3fa5b2f4"
+
+inherit autotools pkgconfig
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.9.bb b/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.9.bb
deleted file mode 100644
index 455b374..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.9.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Jansson is a C library for encoding, decoding and manipulating JSON data"
-HOMEPAGE = "http://www.digip.org/jansson/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8b70213ec164c7bd876ec2120ba52f61"
-
-SRC_URI = "http://www.digip.org/jansson/releases/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "84abaefee9502b2f2ff394d758f160c7"
-SRC_URI[sha256sum] = "0ad0d074ca049a36637e7abef755d40849ad73e926b93914ce294927b97bd2a5"
-
-inherit autotools pkgconfig
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb b/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
index 0f798d2..f62cf6b 100644
--- a/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
@@ -30,9 +30,10 @@
rm -rf ${D}${datadir}
}
-PACKAGES =+ "${PN}-python ${PN}-python-dbg"
+PACKAGES =+ "${PN}-python"
+
+RPROVIDES_${PN}-dbg += "${PN}-python-dbg"
FILES_${PN}-python = "${libdir}/python2.7/site-packages/konkretmof.py* ${libdir}/python2.7/site-packages/_konkretmof.so"
-FILES_${PN}-python-dbg = "${libdir}/python2.7/site-packages/.debug/*"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-include-asm-ioctl.h-explicitly.patch b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-include-asm-ioctl.h-explicitly.patch
deleted file mode 100644
index abdedad..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-include-asm-ioctl.h-explicitly.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b5ca64c7398d516e9845d849e8306df7ac024bc4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 11 Apr 2017 13:59:34 -0700
-Subject: [PATCH] include asm/ioctl.h explicitly
-
-Needed for _IOC* defines
-
-helps compiling with musl where this file is
-not included indirectly
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- server/drivers/hd44780-pifacecad.c | 1 +
- server/drivers/hd44780-spi.c | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/server/drivers/hd44780-pifacecad.c b/server/drivers/hd44780-pifacecad.c
-index 43db19c..e2798ad 100644
---- a/server/drivers/hd44780-pifacecad.c
-+++ b/server/drivers/hd44780-pifacecad.c
-@@ -54,6 +54,7 @@
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
-+#include <asm/ioctl.h>
- #include <stdint.h>
- #include <linux/spi/spidev.h>
-
-diff --git a/server/drivers/hd44780-spi.c b/server/drivers/hd44780-spi.c
-index 5f94333..8a4015b 100644
---- a/server/drivers/hd44780-spi.c
-+++ b/server/drivers/hd44780-spi.c
-@@ -29,6 +29,7 @@
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
-+#include <asm/ioctl.h>
- #include <stdint.h>
- #include <linux/spi/spidev.h>
-
---
-2.12.2
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
index 96bc826..93a09f2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
@@ -9,17 +9,18 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760 \
file://README.md;beginline=107;md5=5c927ce1742d6d5cddc45b7ad6230f75"
-BASEPV = "0.5.8"
+BASEPV = "0.5.9"
PV = "${BASEPV}+git${SRCPV}"
-SRCREV = "f5156e2e41bb418f14761afea22eee8efb49fb85"
-SRC_URI = "git://github.com/lcdproc/lcdproc;branch=lcdproc-${BASEPV} \
- file://0001-include-asm-ioctl.h-explicitly.patch \
+SRCREV = "a4b5a7e058fdd0d914a61138748b589c0128b45b"
+SRC_URI = "git://github.com/lcdproc/lcdproc \
"
S = "${WORKDIR}/git"
inherit autotools pkgconfig update-rc.d
+COMPATIBLE_HOST_arm_libc-musl = "null"
+
LCD_DRIVERS ?= "all,!irman,!svga"
LCD_DEFAULT_DRIVER ?= "curses"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch b/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch
deleted file mode 100644
index 745883e..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 86686ccbf43c5d9e8c8dc97c66ba09e522050e5e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Jul 2017 10:06:24 +0800
-Subject: [PATCH 1/3] fix configure and compile failures
-
-1. Fix do_configure failure
----------------------------
-|Checking header volume_key/libvolume_key.h existence and usability.
-../tmp/6tvtK.c:1:38: fatal error: volume_key/libvolume_key.h:
-No such file or directory
-| #include <volume_key/libvolume_key.h>
-|Checking header dmraid/dmraid.h existence and usability.../tmp/
-ktVJ6.c:1:27: fatal error: dmraid/dmraid.h: No such file or directory
-| #include <dmraid/dmraid.h>
----------------------------
-We explictly add volume_key and dmraid to DEPENDS, do not need
-configure to test.
-
-2. Fix config.h not found
-Add it to configure.ac
-
-3. Correct AC_DEFINE
-...
-autoheader: warning: missing template: LIBMOUNT_NEW_ERR_API
-autoheader: Use AC_DEFINE([LIBMOUNT_NEW_ERR_API], [], [Description])
-...
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d41a307..b036e04 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -9,6 +9,8 @@ AC_DISABLE_STATIC
- AM_INIT_AUTOMAKE([foreign -Wall -Werror -Wno-syntax -Wno-portability])
- AC_CONFIG_MACRO_DIR([m4])
-
-+AC_CONFIG_HEADERS([config.h])
-+
- AM_PATH_PYTHON
-
- AM_PROG_AR
-@@ -154,7 +156,6 @@ LIBBLOCKDEV_PKG_CHECK_MODULES([KMOD], [libkmod >= 19])
- AS_IF([test "x$with_crypto" != "xno"],
- [LIBBLOCKDEV_PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup >= 1.6.7])
- LIBBLOCKDEV_PKG_CHECK_MODULES([NSS], [nss >= 3.18.0])
-- LIBBLOCKDEV_CHECK_HEADER([volume_key/libvolume_key.h], [$GLIB_CFLAGS $NSS_CFLAGS], [libvolume_key.h not available])
- ],
- [])
-
-@@ -162,10 +163,6 @@ AS_IF([test "x$with_dm" != "xno" -o "x$with_lvm" != "xno" -o "x$with_lvm_dbus" !
- [LIBBLOCKDEV_PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= 1.02.93])],
- [])
-
--AS_IF([test "x$with_dm" != "xno"],
-- [LIBBLOCKDEV_CHECK_HEADER([dmraid/dmraid.h], [], [dmraid.h not available])],
-- [])
--
- AS_IF([test "x$with_part" != "xno" -o "x$with_fs" != "xno"],
- [LIBBLOCKDEV_PKG_CHECK_MODULES([PARTED], [libparted >= 3.1])]
- [])
-@@ -174,7 +171,8 @@ AS_IF([test "x$with_fs" != "xno"],
- [LIBBLOCKDEV_PKG_CHECK_MODULES([MOUNT], [mount >= 2.23.0])
- # new versions of libmount has some new functions we can use
- AS_IF([$PKG_CONFIG --atleast-version=2.30.0 mount],
-- [AC_DEFINE([LIBMOUNT_NEW_ERR_API])], [])
-+ [AC_DEFINE([LIBMOUNT_NEW_ERR_API], [1], [new versions of libmount has some new functions we can use])],
-+ [])
-
- LIBBLOCKDEV_PKG_CHECK_MODULES([BLKID], [blkid >= 2.23.0])
- # older versions of libblkid don't support BLKID_SUBLKS_BADCSUM so let's just
---
-2.14.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch b/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch
deleted file mode 100644
index 0719759..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 40dae7ea6450cb30f066da8443eabf063b5b0ad7 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 02:05:40 -0400
-Subject: [PATCH 2/3] remove python2 support
-
-Only python3 is required.
-
-Upstream-Status: Inappropriate [wr-installer specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/python/gi/overrides/Makefile.am | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/src/python/gi/overrides/Makefile.am b/src/python/gi/overrides/Makefile.am
-index a2927ac..6385502 100644
---- a/src/python/gi/overrides/Makefile.am
-+++ b/src/python/gi/overrides/Makefile.am
-@@ -1,8 +1,3 @@
--pylibdir = $(shell python -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
--
--overridesdir = $(pylibdir)/gi/overrides
--dist_overrides_DATA = BlockDev.py
--
- if WITH_PYTHON3
- py3libdir = $(shell python3 -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
- py3overridesdir = $(py3libdir)/gi/overrides
---
-1.8.3.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch b/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch
deleted file mode 100644
index ac5b5e2..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch
+++ /dev/null
@@ -1,492 +0,0 @@
-From bda7c937ba544182a5cae2a9cf0c173e0ba268c9 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Jul 2017 09:47:23 +0800
-Subject: [PATCH 3/3] remove dmraid while compiling with --with-dm
-
-Fix the following failure:
-
-...
-Perhaps you should add the directory containing `dmraid.pc'
-to the PKG_CONFIG_PATH environment variable
-No package 'dmraid' found
-...
-
-...
-../../../git/src/plugins/dm.c:24:10: fatal error: dmraid/dmraid.h: No
-such file or directory
- #include <dmraid/dmraid.h>
- ^~~~~~~~~~~~~~~~~
-...
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/lib/plugin_apis/dm.api | 50 ------
- src/plugins/Makefile.am | 2 +-
- src/plugins/dm.c | 330 ------------------------------------
- src/plugins/dm.h | 5 -
- src/python/gi/overrides/BlockDev.py | 6 -
- 5 files changed, 1 insertion(+), 392 deletions(-)
-
-diff --git a/src/lib/plugin_apis/dm.api b/src/lib/plugin_apis/dm.api
-index 04fd8d8..5d30b6a 100644
---- a/src/lib/plugin_apis/dm.api
-+++ b/src/lib/plugin_apis/dm.api
-@@ -111,53 +111,3 @@ gchar* bd_dm_get_subsystem_from_name (const gchar *device_name, GError **error);
- * Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_QUERY
- */
- gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean active_only, GError **error);
--
--/**
-- * bd_dm_get_member_raid_sets:
-- * @name: (allow-none): name of the member
-- * @uuid: (allow-none): uuid of the member
-- * @major: major number of the device or -1 if not specified
-- * @minor: minor number of the device or -1 if not specified
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: (transfer full) (array zero-terminated=1): list of names of the RAID sets related to
-- * the member or %NULL in case of error
-- *
-- * One of @name, @uuid or @major:@minor has to be given.
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_QUERY
-- */
--gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error);
--
--/**
-- * bd_dm_activate_raid_set:
-- * @name: name of the DM RAID set to activate
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: whether the RAID set @name was successfully activate or not
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_CREATE_ACTIVATE
-- */
--gboolean bd_dm_activate_raid_set (const gchar *name, GError **error);
--
--/**
-- * bd_dm_deactivate_raid_set:
-- * @name: name of the DM RAID set to deactivate
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: whether the RAID set @name was successfully deactivate or not
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_REMOVE_DEACTIVATE
-- */
--gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error);
--
--/**
-- * bd_dm_get_raid_set_type:
-- * @name: name of the DM RAID set to get the type of
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: string representation of the @name RAID set's type
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_QUERY
-- */
--gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error);
-diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
-index b69c8f7..7575f4a 100644
---- a/src/plugins/Makefile.am
-+++ b/src/plugins/Makefile.am
-@@ -75,7 +75,7 @@ endif
-
- if WITH_DM
- libbd_dm_la_CFLAGS = $(GLIB_CFLAGS) $(DEVMAPPER_CFLAGS) $(UDEV_CFLAGS) -Wall -Wextra -Werror
--libbd_dm_la_LIBADD = $(GLIB_LIBS) $(DEVMAPPER_LIBS) $(UDEV_LIBS) -ldmraid ${builddir}/../utils/libbd_utils.la
-+libbd_dm_la_LIBADD = $(GLIB_LIBS) $(DEVMAPPER_LIBS) $(UDEV_LIBS) ${builddir}/../utils/libbd_utils.la
- libbd_dm_la_LDFLAGS = -L${srcdir}/../utils/ -version-info 2:0:0 -Wl,--no-undefined
- # Dear author of libdmdraid, VERSION really is not a good name for an enum member!
- libbd_dm_la_CPPFLAGS = -I${builddir}/../../include/ -UVERSION
-diff --git a/src/plugins/dm.c b/src/plugins/dm.c
-index 0e5466c..31ebe96 100644
---- a/src/plugins/dm.c
-+++ b/src/plugins/dm.c
-@@ -21,17 +21,11 @@
- #include <unistd.h>
- #include <blockdev/utils.h>
- #include <libdevmapper.h>
--#include <dmraid/dmraid.h>
- #include <libudev.h>
-
- #include "dm.h"
- #include "check_deps.h"
-
--/* macros taken from the pyblock/dmraid.h file plus one more*/
--#define for_each_raidset(_c, _n) list_for_each_entry(_n, LC_RS(_c), list)
--#define for_each_subset(_rs, _n) list_for_each_entry(_n, &(_rs)->sets, list)
--#define for_each_device(_rs, _d) list_for_each_entry(_d, &(_rs)->devs, devs)
--
- /**
- * SECTION: dm
- * @short_description: plugin for basic operations with device mapper
-@@ -380,327 +374,3 @@ gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean a
-
- return ret;
- }
--
--/**
-- * init_dmraid_stack: (skip)
-- *
-- * Initializes the dmraid stack by creating the library context, discovering
-- * devices, raid sets, etc.
-- */
--static struct lib_context* init_dmraid_stack (GError **error) {
-- gint rc = 0;
-- gchar *argv[] = {"blockdev.dmraid", NULL};
-- struct lib_context *lc;
--
-- /* the code for this function was cherry-picked from the pyblock code */
-- /* XXX: do this all just once, store global lc and provide a reinit
-- * function? */
--
-- /* initialize dmraid library context */
-- lc = libdmraid_init (1, (gchar **)argv);
--
-- rc = discover_devices (lc, NULL);
-- if (!rc) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
-- "Failed to discover devices");
-- libdmraid_exit (lc);
-- return NULL;
-- }
-- discover_raid_devices (lc, NULL);
--
-- if (!count_devices (lc, RAID)) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_DEVS,
-- "No RAIDs discovered");
-- libdmraid_exit (lc);
-- return NULL;
-- }
--
-- argv[0] = NULL;
-- if (!group_set (lc, argv)) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
-- "Failed to group_set");
-- libdmraid_exit (lc);
-- return NULL;
-- }
--
-- return lc;
--}
--
--/**
-- * raid_dev_matches_spec: (skip)
-- *
-- * Returns: whether the device specified by @sysname matches the spec given by @name,
-- * @uuid, @major and @minor
-- */
--static gboolean raid_dev_matches_spec (struct raid_dev *raid_dev, const gchar *name, const gchar *uuid, gint major, gint minor) {
-- gchar const *dev_name = NULL;
-- gchar const *dev_uuid;
-- gchar const *major_str;
-- gchar const *minor_str;
-- struct udev *context;
-- struct udev_device *device;
-- gboolean ret = TRUE;
--
-- /* find the second '/' to get name (the rest of the string) */
-- dev_name = strchr (raid_dev->di->path, '/');
-- if (dev_name && strlen (dev_name) > 1) {
-- dev_name++;
-- dev_name = strchr (dev_name, '/');
-- }
-- if (dev_name && strlen (dev_name) > 1) {
-- dev_name++;
-- }
-- else
-- dev_name = NULL;
--
-- /* if we don't have the name, we cannot check any match */
-- g_return_val_if_fail (dev_name, FALSE);
--
-- /* g_return_val_if_fail above checks value of dev_name and returns FALSE if
-- * it is NULL so we don't need to check it here */
-- /* coverity[var_deref_model] */
-- if (name && strcmp (dev_name, name) != 0) {
-- return FALSE;
-- }
--
-- context = udev_new ();
-- device = udev_device_new_from_subsystem_sysname (context, "block", dev_name);
-- dev_uuid = udev_device_get_property_value (device, "UUID");
-- major_str = udev_device_get_property_value (device, "MAJOR");
-- minor_str = udev_device_get_property_value (device, "MINOR");
--
-- if (uuid && (g_strcmp0 (uuid, "") != 0) && (g_strcmp0 (uuid, dev_uuid) != 0))
-- ret = FALSE;
--
-- if (major >= 0 && (atoi (major_str) != major))
-- ret = FALSE;
--
-- if (minor >= 0 && (atoi (minor_str) != minor))
-- ret = FALSE;
--
-- udev_device_unref (device);
-- udev_unref (context);
--
-- return ret;
--}
--
--/**
-- * find_raid_sets_for_dev: (skip)
-- */
--static void find_raid_sets_for_dev (const gchar *name, const gchar *uuid, gint major, gint minor, struct lib_context *lc, struct raid_set *rs, GPtrArray *ret_sets) {
-- struct raid_set *subset = NULL;
-- struct raid_dev *dev = NULL;
--
-- if (T_GROUP(rs) || !list_empty(&(rs->sets))) {
-- for_each_subset (rs, subset)
-- find_raid_sets_for_dev (name, uuid, major, minor, lc, subset, ret_sets);
-- } else {
-- for_each_device (rs, dev) {
-- if (raid_dev_matches_spec (dev, name, uuid, major, minor))
-- g_ptr_array_add (ret_sets, g_strdup (rs->name));
-- }
-- }
--}
--
--/**
-- * bd_dm_get_member_raid_sets:
-- * @name: (allow-none): name of the member
-- * @uuid: (allow-none): uuid of the member
-- * @major: major number of the device or -1 if not specified
-- * @minor: minor number of the device or -1 if not specified
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: (transfer full) (array zero-terminated=1): list of names of the RAID sets related to
-- * the member or %NULL in case of error
-- *
-- * One of @name, @uuid or @major:@minor has to be given.
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_QUERY
-- */
--gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error) {
-- guint64 i = 0;
-- struct lib_context *lc = NULL;
-- struct raid_set *rs = NULL;
-- GPtrArray *ret_sets = g_ptr_array_new ();
-- gchar **ret = NULL;
--
-- lc = init_dmraid_stack (error);
-- if (!lc)
-- /* error is already populated */
-- return NULL;
--
-- for_each_raidset (lc, rs) {
-- find_raid_sets_for_dev (name, uuid, major, minor, lc, rs, ret_sets);
-- }
--
-- /* now create the return value -- NULL-terminated array of strings */
-- ret = g_new0 (gchar*, ret_sets->len + 1);
-- for (i=0; i < ret_sets->len; i++)
-- ret[i] = (gchar*) g_ptr_array_index (ret_sets, i);
-- ret[i] = NULL;
--
-- g_ptr_array_free (ret_sets, FALSE);
--
-- libdmraid_exit (lc);
-- return ret;
--}
--
--/**
-- * find_in_raid_sets: (skip)
-- *
-- * Runs @eval_fn with @data on each set (traversing recursively) and returns the
-- * first RAID set that @eval_fn returns. Thus the @eval_fn should return %NULL
-- * on all RAID sets that don't fulfill the search criteria.
-- */
--static struct raid_set* find_in_raid_sets (struct raid_set *rs, RSEvalFunc eval_fn, gpointer data) {
-- struct raid_set *subset = NULL;
-- struct raid_set *ret = NULL;
--
-- ret = eval_fn (rs, data);
-- if (ret)
-- return ret;
--
-- if (T_GROUP(rs) || !list_empty(&(rs->sets))) {
-- for_each_subset (rs, subset) {
-- ret = find_in_raid_sets (subset, eval_fn, data);
-- if (ret)
-- return ret;
-- }
-- }
--
-- return ret;
--}
--
--static struct raid_set* rs_matches_name (struct raid_set *rs, gpointer *name_data) {
-- gchar *name = (gchar*) name_data;
--
-- if (g_strcmp0 (rs->name, name) == 0)
-- return rs;
-- else
-- return NULL;
--}
--
--static gboolean change_set_by_name (const gchar *name, enum activate_type action, GError **error) {
-- gint rc = 0;
-- struct lib_context *lc = NULL;
-- struct raid_set *iter_rs = NULL;
-- struct raid_set *match_rs = NULL;
--
-- lc = init_dmraid_stack (error);
-- if (!lc)
-- /* error is already populated */
-- return FALSE;
--
-- for_each_raidset (lc, iter_rs) {
-- match_rs = find_in_raid_sets (iter_rs, (RSEvalFunc)rs_matches_name, (gchar *)name);
-- if (match_rs)
-- break;
-- }
--
-- if (!match_rs) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_EXIST,
-- "RAID set %s doesn't exist", name);
-- libdmraid_exit (lc);
-- return FALSE;
-- }
--
-- rc = change_set (lc, action, match_rs);
-- if (!rc) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
-- "Failed to activate the RAID set '%s'", name);
-- libdmraid_exit (lc);
-- return FALSE;
-- }
--
-- libdmraid_exit (lc);
-- return TRUE;
--}
--
--/**
-- * bd_dm_activate_raid_set:
-- * @name: name of the DM RAID set to activate
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: whether the RAID set @name was successfully activate or not
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_CREATE_ACTIVATE
-- */
--gboolean bd_dm_activate_raid_set (const gchar *name, GError **error) {
-- guint64 progress_id = 0;
-- gchar *msg = NULL;
-- gboolean ret = FALSE;
--
-- msg = g_strdup_printf ("Activating DM RAID set '%s'", name);
-- progress_id = bd_utils_report_started (msg);
-- g_free (msg);
-- ret = change_set_by_name (name, A_ACTIVATE, error);
-- bd_utils_report_finished (progress_id, "Completed");
-- return ret;
--}
--
--/**
-- * bd_dm_deactivate_raid_set:
-- * @name: name of the DM RAID set to deactivate
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: whether the RAID set @name was successfully deactivate or not
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_REMOVE_DEACTIVATE
-- */
--gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error) {
-- guint64 progress_id = 0;
-- gchar *msg = NULL;
-- gboolean ret = FALSE;
--
-- msg = g_strdup_printf ("Deactivating DM RAID set '%s'", name);
-- progress_id = bd_utils_report_started (msg);
-- g_free (msg);
-- ret = change_set_by_name (name, A_DEACTIVATE, error);
-- bd_utils_report_finished (progress_id, "Completed");
-- return ret;
--}
--
--/**
-- * bd_dm_get_raid_set_type:
-- * @name: name of the DM RAID set to get the type of
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: string representation of the @name RAID set's type
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_QUERY
-- */
--gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error) {
-- struct lib_context *lc = NULL;
-- struct raid_set *iter_rs = NULL;
-- struct raid_set *match_rs = NULL;
-- const gchar *type = NULL;
--
-- lc = init_dmraid_stack (error);
-- if (!lc)
-- /* error is already populated */
-- return NULL;
--
-- for_each_raidset (lc, iter_rs) {
-- match_rs = find_in_raid_sets (iter_rs, (RSEvalFunc)rs_matches_name, (gchar *)name);
-- if (match_rs)
-- break;
-- }
--
-- if (!match_rs) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_EXIST,
-- "RAID set %s doesn't exist", name);
-- libdmraid_exit (lc);
-- return NULL;
-- }
--
-- type = get_set_type (lc, match_rs);
-- if (!type) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
-- "Failed to get RAID set's type");
-- libdmraid_exit (lc);
-- return NULL;
-- }
--
-- libdmraid_exit (lc);
-- return g_strdup (type);
--}
-diff --git a/src/plugins/dm.h b/src/plugins/dm.h
-index 0dce6ac..1ee3788 100644
---- a/src/plugins/dm.h
-+++ b/src/plugins/dm.h
-@@ -1,5 +1,4 @@
- #include <glib.h>
--#include <dmraid/dmraid.h>
-
- #ifndef BD_DM
- #define BD_DM
-@@ -48,9 +47,5 @@ gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean a
- gchar* bd_dm_name_from_node (const gchar *dm_node, GError **error);
- gchar* bd_dm_node_from_name (const gchar *map_name, GError **error);
- gchar* bd_dm_get_subsystem_from_name (const gchar *device_name, GError **error);
--gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error);
--gboolean bd_dm_activate_raid_set (const gchar *name, GError **error);
--gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error);
--gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error);
-
- #endif /* BD_DM */
-diff --git a/src/python/gi/overrides/BlockDev.py b/src/python/gi/overrides/BlockDev.py
-index fb3ffb4..eed0a38 100644
---- a/src/python/gi/overrides/BlockDev.py
-+++ b/src/python/gi/overrides/BlockDev.py
-@@ -233,12 +233,6 @@ def dm_create_linear(map_name, device, length, uuid=None):
- return _dm_create_linear(map_name, device, length, uuid)
- __all__.append("dm_create_linear")
-
--_dm_get_member_raid_sets = BlockDev.dm_get_member_raid_sets
--@override(BlockDev.dm_get_member_raid_sets)
--def dm_get_member_raid_sets(name=None, uuid=None, major=-1, minor=-1):
-- return _dm_get_member_raid_sets(name, uuid, major, minor)
--__all__.append("dm_get_member_raid_sets")
--
-
- _loop_setup = BlockDev.loop_setup
- @override(BlockDev.loop_setup)
---
-2.14.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch b/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch
deleted file mode 100644
index 0b5b809..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 59fbd57acd1df25b1972a131dc6a77a4fe147729 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Jul 2017 10:45:02 +0800
-Subject: [PATCH] fix compile failure against musl C library
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/plugins/crypto.c | 2 +-
- src/plugins/part.c | 3 ++-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
-index b961471..2d3d251 100644
---- a/src/plugins/crypto.c
-+++ b/src/plugins/crypto.c
-@@ -22,7 +22,7 @@
- #include <libcryptsetup.h>
- #include <nss.h>
- #include <volume_key/libvolume_key.h>
--#include <sys/fcntl.h>
-+#include <fcntl.h>
- #include <sys/ioctl.h>
- #include <linux/random.h>
- #include <locale.h>
-diff --git a/src/plugins/part.c b/src/plugins/part.c
-index 6b2a690..ab490d9 100644
---- a/src/plugins/part.c
-+++ b/src/plugins/part.c
-@@ -25,6 +25,7 @@
- #include <inttypes.h>
- #include <unistd.h>
- #include <sys/file.h>
-+#include <fcntl.h>
- #include <sys/ioctl.h>
- #include <linux/fs.h>
- #include <blockdev/utils.h>
-@@ -1354,7 +1355,7 @@ static gboolean set_gpt_flags (const gchar *device, int part_num, guint64 flags,
- real_flags |= 0x4000000000000000; /* 1 << 62 */
- if (flags & BD_PART_FLAG_GPT_NO_AUTOMOUNT)
- real_flags |= 0x8000000000000000; /* 1 << 63 */
-- mask_str = g_strdup_printf ("%.16"__PRI64_PREFIX"x", real_flags);
-+ mask_str = g_strdup_printf ("%.16"__PRI64"x", real_flags);
-
- args[2] = g_strdup_printf ("%d:=:%s", part_num, mask_str);
- g_free (mask_str);
---
-2.14.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch b/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch
deleted file mode 100644
index b214f0b..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 9b4a7a4d0653b627d747e00d6b3ada2990caa1d3 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 9 Aug 2017 13:57:57 +0800
-Subject: [PATCH] fix a clang compiling issue
-
-[snip]
-../../../git/src/plugins/fs.c:2617:26: error: missing field 'start'
-initializer [-Werror,-Wmissing-field-initializers]
- PedGeometry geom = {0};
- ^
-../../../git/src/plugins/fs.c:2618:30: error: missing field 'start'
-initializer [-Werror,-Wmissing-field-initializers]
- PedGeometry new_geom = {0};
-[snip]
-
-Fix typo s/enum libvk_packet_format format/enum libvk_secret secret_type/
-
-Upstream-Status: Submitted [https://github.com/storaged-project/libblockdev/pull/266]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/plugins/crypto.c | 6 +++---
- src/plugins/fs/vfat.c | 4 ++--
- src/plugins/part.c | 4 ++--
- src/utils/exec.c | 2 +-
- 4 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
-index 563093e..b961471 100644
---- a/src/plugins/crypto.c
-+++ b/src/plugins/crypto.c
-@@ -970,7 +970,7 @@ gboolean bd_crypto_tc_open (const gchar *device, const gchar *name, const guint8
- gint ret = 0;
- guint64 progress_id = 0;
- gchar *msg = NULL;
-- struct crypt_params_tcrypt params = {0};
-+ struct crypt_params_tcrypt params = {NULL,0,NULL,0,NULL,NULL,NULL,0,0};
-
- msg = g_strdup_printf ("Started opening '%s' TrueCrypt/VeraCrypt device", device);
- progress_id = bd_utils_report_started (msg);
-@@ -1090,7 +1090,7 @@ static gchar *replace_char (gchar *str, gchar orig, gchar new) {
- return str;
- }
-
--static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libvk_ui *ui, enum libvk_packet_format format, const gchar *out_path,
-+static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libvk_ui *ui, enum libvk_secret secret_type, const gchar *out_path,
- CERTCertificate *cert, GError **error) {
- gpointer packet_data = NULL;
- gsize packet_data_size = 0;
-@@ -1099,7 +1099,7 @@ static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libv
- gsize bytes_written = 0;
- GError *tmp_error = NULL;
-
-- packet_data = libvk_volume_create_packet_asymmetric_with_format (volume, &packet_data_size, format, cert,
-+ packet_data = libvk_volume_create_packet_asymmetric_with_format (volume, &packet_data_size, secret_type, cert,
- ui, LIBVK_PACKET_FORMAT_ASYMMETRIC_WRAP_SECRET_ONLY, error);
-
- if (!packet_data) {
-diff --git a/src/plugins/fs/vfat.c b/src/plugins/fs/vfat.c
-index 3ed7d4a..5ff7795 100644
---- a/src/plugins/fs/vfat.c
-+++ b/src/plugins/fs/vfat.c
-@@ -376,8 +376,8 @@ BDFSVfatInfo* bd_fs_vfat_get_info (const gchar *device, GError **error) {
- */
- gboolean bd_fs_vfat_resize (const gchar *device, guint64 new_size, GError **error) {
- PedDevice *ped_dev = NULL;
-- PedGeometry geom = {0};
-- PedGeometry new_geom = {0};
-+ PedGeometry geom = {NULL, 0, 0, 0};
-+ PedGeometry new_geom = {NULL, 0, 0, 0};
- PedFileSystem *fs = NULL;
- PedSector start = 0;
- PedSector length = 0;
-diff --git a/src/plugins/part.c b/src/plugins/part.c
-index fed8300..6b2a690 100644
---- a/src/plugins/part.c
-+++ b/src/plugins/part.c
-@@ -926,7 +926,7 @@ static PedPartition* add_part_to_disk (PedDevice *dev, PedDisk *disk, BDPartType
- return NULL;
- }
-
-- part = ped_partition_new (disk, type, NULL, geom->start, geom->end);
-+ part = ped_partition_new (disk, (PedPartitionType)type, NULL, geom->start, geom->end);
- if (!part) {
- set_parted_error (error, BD_PART_ERROR_FAIL);
- g_prefix_error (error, "Failed to create new partition on device '%s'", dev->path);
-@@ -1564,7 +1564,7 @@ gboolean bd_part_set_part_flags (const gchar *disk, const gchar *part, guint64 f
- PedPartition *ped_part = NULL;
- const gchar *part_num_str = NULL;
- gint part_num = 0;
-- guint64 i = 0;
-+ int i = 0;
- gint status = 0;
- gboolean ret = FALSE;
- guint64 progress_id = 0;
-diff --git a/src/utils/exec.c b/src/utils/exec.c
-index 11c1489..dcf87e5 100644
---- a/src/utils/exec.c
-+++ b/src/utils/exec.c
-@@ -354,7 +354,7 @@ gboolean bd_utils_exec_and_report_progress (const gchar **argv, const BDExtraArg
- GIOStatus io_status = G_IO_STATUS_NORMAL;
- guint i = 0;
- guint8 completion = 0;
-- GPollFD fds[2] = {{0}, {0}};
-+ GPollFD fds[2] = {{0,0,0}, {0,0,0}};
- gboolean out_done = FALSE;
- gboolean err_done = FALSE;
- GString *stdout_data = g_string_new (NULL);
---
-2.14.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb
deleted file mode 100644
index 0c954aa..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-DESCRIPTION = "libblockdev is a C library supporting GObject introspection for manipulation of \
-block devices. It has a plugin-based architecture where each technology (like \
-LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly \
-with multiple implementations (e.g. using LVM CLI or the new LVM DBus API)."
-HOMEPAGE = "http://rhinstaller.github.io/libblockdev/"
-LICENSE = "LGPLv2+"
-SECTION = "devel/lib"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
-
-inherit autotools python3native gobject-introspection
-
-DEPENDS += " \
- cryptsetup \
- nss \
- volume-key \
- libbytesize \
- btrfs-tools \
-"
-
-SRCREV = "e2e0899efe8dd3f111ff955fb6c1dc10b0bd2075"
-SRC_URI = " \
- git://github.com/rhinstaller/libblockdev;branch=master \
- file://0001-fix-configure-and-compile-failures.patch \
- file://0002-remove-python2-support.patch \
- file://0003-remove-dmraid-while-compiling-with-with-dm.patch \
- file://0005-fix-a-clang-compiling-issue.patch \
-"
-SRC_URI_append_libc-musl = " \
- file://0004-fix-compile-failure-against-musl-C-library.patch \
-"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN} += " \
- lvm2 \
-"
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
-
-PACKAGECONFIG ??= "python3 lvm dm kmod parted fs"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools"
-PACKAGECONFIG[dm] = "--with-dm, --without-dm"
-PACKAGECONFIG[kmod] = "--with-kbd, --without-kbd, kmod"
-PACKAGECONFIG[parted] = "--with-part, --without-part, parted"
-PACKAGECONFIG[fs] = "--with-fs, --without-fs, util-linux"
-PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
-
-export GIR_EXTRA_LIBS_PATH="${B}/src/utils/.libs"
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.18.bb b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.18.bb
new file mode 100644
index 0000000..35f0cc0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.18.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "libblockdev is a C library supporting GObject introspection for manipulation of \
+block devices. It has a plugin-based architecture where each technology (like \
+LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly \
+with multiple implementations (e.g. using LVM CLI or the new LVM DBus API)."
+HOMEPAGE = "http://rhinstaller.github.io/libblockdev/"
+LICENSE = "LGPLv2+"
+SECTION = "devel/lib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
+
+inherit autotools python3native gobject-introspection
+
+SRCREV = "0debeb45562ac3d8f6f43f6f942b238abab55be9"
+SRC_URI = " \
+ git://github.com/rhinstaller/libblockdev;branch=master \
+"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
+
+PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2"
+PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools, lvm2"
+PACKAGECONFIG[lvm-dbus] = "--with-lvm_dbus, --without-lvm_dbus, multipath-tools, lvm2"
+PACKAGECONFIG[dm] = "--with-dm, --without-dm, multipath-tools, lvm2"
+PACKAGECONFIG[dmraid] = "--with-dmraid, --without-dmraid"
+PACKAGECONFIG[kmod] = "--with-kbd, --without-kbd, kmod"
+PACKAGECONFIG[parted] = "--with-part, --without-part, parted"
+PACKAGECONFIG[fs] = "--with-fs, --without-fs, util-linux"
+PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
+PACKAGECONFIG[nvdimm] = "--with-nvdimm, --without-nvdimm"
+PACKAGECONFIG[vdo] = "--with-vdo, --without-vdo"
+PACKAGECONFIG[escrow] = "--with-escrow, --without-escrow, nss volume-key"
+PACKAGECONFIG[btrfs] = "--with-btrfs,--without-btrfs,libbytesize btrfs-tools"
+PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,cryptsetup nss volume-key"
+PACKAGECONFIG[mdraid] = "--with-mdraid,--without-mdraid,libbytesize"
+PACKAGECONFIG[kbd] = "--with-kbd,--without-kbd,libbytesize"
+PACKAGECONFIG[mpath] = "--with-mpath,--without-mpath, multipath-tools, lvm2"
+
+export GIR_EXTRA_LIBS_PATH="${B}/src/utils/.libs"
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libcec/files/0001-Explicitly-use-python3-in-pyCecClient.patch b/meta-openembedded/meta-oe/recipes-extended/libcec/files/0001-Explicitly-use-python3-in-pyCecClient.patch
new file mode 100644
index 0000000..ec1f5d0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libcec/files/0001-Explicitly-use-python3-in-pyCecClient.patch
@@ -0,0 +1,24 @@
+From 16e8c072709572ccefa6c7f835136db01f031323 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Fri, 28 Sep 2018 16:56:14 +0200
+Subject: [PATCH] Explicitly use python3 in pyCecClient
+
+Upstream-Status: Submitted [https://github.com/Pulse-Eight/libcec/pull/433]
+
+---
+ src/pyCecClient/pyCecClient.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/pyCecClient/pyCecClient.py b/src/pyCecClient/pyCecClient.py
+index 6d47857..d0504ac 100755
+--- a/src/pyCecClient/pyCecClient.py
++++ b/src/pyCecClient/pyCecClient.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/python
++#! /usr/bin/python3
+ ## demo of the python-libcec API
+
+ # This file is part of the libCEC(R) library.
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libcec/files/python-install-location.patch b/meta-openembedded/meta-oe/recipes-extended/libcec/files/python-install-location.patch
deleted file mode 100644
index b6be78d..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libcec/files/python-install-location.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 330fa6777d51d41eefacff8e98e4250d210fde35 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Javi=20Mart=C3=ADnez?= <javi@flamingalah.net>
-Date: Tue, 13 Dec 2016 22:31:13 +0100
-Subject: [PATCH] Improve/fix installation of Python bindings
-
-Upstream-Status: Backport
-
-dist-packages is a Debian-specific directory for distribution packages (and used in derivatives such as Ubuntu). Therefore changed to site-packages.
----
- src/libcec/cmake/CheckPlatformSupport.cmake | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
-index fcd0ef7..7661107 100644
---- a/src/libcec/cmake/CheckPlatformSupport.cmake
-+++ b/src/libcec/cmake/CheckPlatformSupport.cmake
-@@ -195,9 +195,9 @@ else()
- RENAME __init__.py)
- else()
- install(TARGETS ${SWIG_MODULE_cec_REAL_NAME}
-- DESTINATION lib/python${PYTHON_VERSION}/dist-packages/cec)
-+ DESTINATION lib/python${PYTHON_VERSION}/site-packages/cec)
- install(FILES ${CMAKE_BINARY_DIR}/src/libcec/cec.py
-- DESTINATION lib/python${PYTHON_VERSION}/dist-packages/cec
-+ DESTINATION lib/python${PYTHON_VERSION}/site-packages/cec
- RENAME __init__.py)
- endif()
- endif()
diff --git a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb
index cb65caa..4ad4997 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb
@@ -4,24 +4,30 @@
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=e61fd86f9c947b430126181da2c6c715"
-DEPENDS = "p8platform udev lockdev ncurses swig-native python3"
+DEPENDS = "p8platform udev ncurses swig-native python3"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11 libxrandr', '', d)}"
DEPENDS_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
-PV = "4.0.1+gitr${SRCPV}"
+PV = "4.0.2+gitr${SRCPV}"
-SRCREV = "2fc92b5f02dca702da92ccc5ed7b805b240ef5df"
+SRCREV = "0a97062dd4b196ceeb003ec41841c7a7edc36dd1"
SRC_URI = "git://github.com/Pulse-Eight/libcec.git \
- file://python-install-location.patch"
+ file://0001-Explicitly-use-python3-in-pyCecClient.patch"
S = "${WORKDIR}/git"
inherit cmake pkgconfig
+# Put client tools into a separate package
+PACKAGE_BEFORE_PN += "${PN}-tools"
+FILES_${PN}-tools = "${bindir}"
+RDEPENDS_${PN}-tools = "python3-${BPN}"
+
# Create the wrapper for python3
PACKAGES += "python3-${BPN}"
-FILES_python3-${BPN} = "${libdir}/python3*"
+FILES_python3-${BPN} = "${libdir}/python3* ${bindir}/py*"
+RDEPENDS_${PN} = "python3-core"
# cec-client and xbmc need the .so present to work :(
FILES_${PN} += "${libdir}/*.so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.5.bb b/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.5.bb
deleted file mode 100644
index fb6e50e..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.5.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "C/C++ Configuration File Library"
-DESCRIPTION = "Library for manipulating structured configuration files"
-HOMEPAGE = "http://www.hyperrealm.com/libconfig/"
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29"
-
-SRC_URI = "http://www.hyperrealm.com/${BPN}/${BP}.tar.gz"
-
-inherit autotools-brokensep pkgconfig
-
-SRC_URI[md5sum] = "a939c4990d74e6fc1ee62be05716f633"
-SRC_URI[sha256sum] = "e31daa390d8e4461c8830512fe2e13ba1a3d6a02a2305a02429eec61e68703f6"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb b/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb
new file mode 100644
index 0000000..eb0a2c3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb
@@ -0,0 +1,19 @@
+SUMMARY = "C/C++ Configuration File Library"
+DESCRIPTION = "Library for manipulating structured configuration files"
+HOMEPAGE = "https://hyperrealm.github.io/libconfig/"
+BUGTRACKER = "https://github.com/hyperrealm/libconfig/issues"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29"
+
+SRC_URI = "https://hyperrealm.github.io/libconfig/dist/libconfig-${PV}.tar.gz"
+
+inherit autotools-brokensep pkgconfig
+
+SRC_URI[md5sum] = "6bd98ee3a6e6b9126c82c916d7a9e690"
+SRC_URI[sha256sum] = "7c3c7a9c73ff3302084386e96f903eb62ce06953bb1666235fac74363a16fad9"
+
+FILES_${PN}_append = " \
+ ${libdir}/cmake \
+"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/0001-Fix-warnings-found-with-clang.patch b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/0001-Fix-warnings-found-with-clang.patch
deleted file mode 100644
index f8114a0..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/0001-Fix-warnings-found-with-clang.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From ad1be542b87b3186f8ef7bee2c594daefe5bb4c8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 18 Oct 2016 21:31:40 +0000
-Subject: [PATCH] Fix warnings found with clang
-
-| /mnt/oe/openembedded-core/build/workspace/sources/libplist/src/base64.c:107:12: error: non-void function 'base64decode' should return a value [-Wreturn-type]
-| if (!buf) return;
-| ^
-| /mnt/oe/openembedded-core/build/workspace/sources/libplist/src/base64.c:109:16: error: non-void function 'base64decode' should return a value [-Wreturn-type]
-| if (len <= 0) return;
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libcnary/node.c | 2 +-
- src/base64.c | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libcnary/node.c b/libcnary/node.c
-index 1f9f669..d6f3f63 100644
---- a/libcnary/node.c
-+++ b/libcnary/node.c
-@@ -104,7 +104,7 @@ int node_detach(node_t* parent, node_t* child) {
-
- int node_insert(node_t* parent, unsigned int index, node_t* child)
- {
-- if (!parent || !child) return;
-+ if (!parent || !child) return -1;
- child->isLeaf = TRUE;
- child->isRoot = FALSE;
- child->parent = parent;
-diff --git a/src/base64.c b/src/base64.c
-index 65c6061..531a06a 100644
---- a/src/base64.c
-+++ b/src/base64.c
-@@ -104,9 +104,9 @@ static int base64decode_block(unsigned char *target, const char *data, size_t da
-
- unsigned char *base64decode(const char *buf, size_t *size)
- {
-- if (!buf) return;
-+ if (!buf) return 0;
- size_t len = strlen(buf);
-- if (len <= 0) return;
-+ if (len <= 0) return 0;
- unsigned char *outbuf = (unsigned char*)malloc((len/4)*3+3);
-
- unsigned char *line;
---
-1.9.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch
deleted file mode 100644
index f6ef6f4..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 335b25febd4c864ad0ac08479f5cd43fc21b7d73 Mon Sep 17 00:00:00 2001
-From: Nikias Bassen
-Date: Mon, 09 Jul 2012 21:17:15 +0000
-Subject: Fix building with parallel build makeopts
-
----
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0bad840..155994e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -57,6 +57,8 @@ ADD_SUBDIRECTORY( plutil )
- ADD_SUBDIRECTORY( include )
- ADD_SUBDIRECTORY( test )
-
-+ADD_DEPENDENCIES( plist libcnary )
-+
- IF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
- ADD_SUBDIRECTORY( swig )
- ENDIF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
---
-cgit v0.9.0.2
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb
deleted file mode 100644
index f789796..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "A library to handle Apple Property List format whereas it's binary or XML"
-
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
- file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7"
-
-DEPENDS = "libxml2 glib-2.0 swig python"
-
-inherit cmake pkgconfig
-
-SRC_URI = "http://www.libimobiledevice.org/downloads/libplist-${PV}.tar.bz2 \
- file://fix-parallel-make.patch \
- file://0001-Fix-warnings-found-with-clang.patch \
- "
-
-SRC_URI[md5sum] = "2a9e0258847d50f9760dc3ece25f4dc6"
-SRC_URI[sha256sum] = "a418da3880308199b74766deef2a760a9b169b81a868a6a9032f7614e20500ec"
-
-do_install_append () {
- if [ -e ${D}${libdir}/python*/site-packages/plist/_plist.so ]; then
- chrpath -d ${D}${libdir}/python*/site-packages/plist/_plist.so
- fi
-}
-
-PACKAGES =+ "${PN}-utils ${PN}++ ${PN}-python"
-FILES_${PN} = "${libdir}/libplist${SOLIBS}"
-FILES_${PN}++ = "${libdir}/libplist++${SOLIBS}"
-FILES_${PN}-utils = "${bindir}/*"
-FILES_${PN}-python = "${libdir}/python*/site-packages/*"
-
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.0.0.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.0.0.bb
new file mode 100644
index 0000000..43c1fd5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.0.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "A library to handle Apple Property List format whereas it's binary or XML"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
+ file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7"
+
+DEPENDS = "libxml2 glib-2.0 swig python"
+
+inherit autotools pkgconfig pythonnative
+
+SRCREV = "62ec804736435fa34e37e66e228e17e2aacee1d7"
+SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https \
+ "
+
+S = "${WORKDIR}/git"
+
+do_install_append () {
+ if [ -e ${D}${libdir}/python*/site-packages/plist/_plist.so ]; then
+ chrpath -d ${D}${libdir}/python*/site-packages/plist/_plist.so
+ fi
+}
+
+PACKAGES =+ "${PN}-utils ${PN}++ ${PN}-python"
+FILES_${PN} = "${libdir}/libplist${SOLIBS}"
+FILES_${PN}++ = "${libdir}/libplist++${SOLIBS}"
+FILES_${PN}-utils = "${bindir}/*"
+FILES_${PN}-python = "${libdir}/python*/site-packages/*"
+
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb
new file mode 100644
index 0000000..36fc5c8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7"
+
+DEPENDS = "udev libusb1 libplist"
+
+inherit autotools pkgconfig gitpkgv
+
+PKGV = "${GITPKGVTAG}"
+
+SRCREV = "78df9be5fc8222ed53846cb553de9b5d24c85c6c"
+SRC_URI = "git://github.com/libimobiledevice/libusbmuxd;protocol=https"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} += "${base_libdir}/udev/rules.d/"
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch
deleted file mode 100644
index a9319ff..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- liblockfile-1.05/Makefile.in~install
-+++ liblockfile-1.05/Makefile.in
-@@ -20,6 +20,7 @@
- includedir = @includedir@
-
- MAILGROUP = @MAILGROUP@
-+INSTGRP = $(if $(MAILGROUP),-g $(MAILGROUP))
-
- all: @TARGETS@
- install: @INSTALL_TARGETS@
-@@ -50,25 +51,27 @@
- $(CC) $(CFLAGS) -c lockfile.c -o xlockfile.o
-
- install_static: static install_common
-+ install -d $(ROOT)$(libdir)
- install -m 644 liblockfile.a $(ROOT)$(libdir)
-
- install_shared: shared install_common
-+ install -d $(ROOT)$(libdir)
- install -m 755 liblockfile.so \
- $(ROOT)$(libdir)/liblockfile.so.$(VER)
- ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so
- if test "$(ROOT)" = ""; then @LDCONFIG@; fi
-
- install_common:
-+ install -d $(ROOT)$(includedir)
- install -m 644 lockfile.h maillock.h $(ROOT)$(includedir)
-- if [ "$(MAILGROUP)" != "" ]; then\
-- install -g $(MAILGROUP) -m 2755 dotlockfile $(ROOT)$(bindir);\
-- else \
-- install -g root -m 755 dotlockfile $(ROOT)$(bindir); \
-- fi
-+ install -d $(ROOT)$(bindir)
-+ install -m 755 $(INSTGRP) dotlockfile $(ROOT)$(bindir)
-+ install -d $(ROOT)$(mandir)/man1 $(ROOT)$(mandir)/man3
- install -m 644 *.1 $(ROOT)$(mandir)/man1
- install -m 644 *.3 $(ROOT)$(mandir)/man3
-
- install_nfslib: nfslib
-+ install -d $(ROOT)$(nfslockdir)
- install -m 755 nfslock.so.$(VER) $(ROOT)$(nfslockdir)
- if test "$(ROOT)" = ""; then @LDCONFIG@; fi
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch
deleted file mode 100644
index eb1d147..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- liblockfile-1.05/Makefile.in~ldflags
-+++ liblockfile-1.05/Makefile.in
-@@ -34,11 +34,11 @@
-
- liblockfile.so: liblockfile.a
- $(CC) -fPIC -shared -Wl,-soname,liblockfile.so.1 \
-- -o liblockfile.so lockfile.o -lc
-+ -o liblockfile.so lockfile.o $(LDFLAGS) -lc
-
- nfslock.so.$(VER): nfslock.o
- $(CC) -fPIC -shared -Wl,-soname,nfslock.so.0 \
-- -o nfslock.so.$(NVER) nfslock.o
-+ -o nfslock.so.$(NVER) nfslock.o $(LDFLAGS)
-
- dotlockfile: dotlockfile.o xlockfile.o
- $(CC) $(LDFLAGS) -o dotlockfile dotlockfile.o xlockfile.o
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch
deleted file mode 100644
index 27f760c..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Inappropriate [no upstream]
-
-The extend so file is rename from nfslock.so.$(VER) to nfslock.so.$(NVER). That
-causes file nfslock.so.0.1 is installed into manual directory. Fix it.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-diff --git a/Makefile.in b/Makefile.in
-index a589fb8..46a57e8 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -68,7 +68,7 @@ install_common:
- install -d $(ROOT)$(bindir)
- install -m 755 $(INSTGRP) dotlockfile $(ROOT)$(bindir)
- install -d $(ROOT)$(mandir)/man1 $(ROOT)$(mandir)/man3
-- install -m 644 *.1 $(ROOT)$(mandir)/man1
-+ install -m 644 dotlockfile.1 $(ROOT)$(mandir)/man1
- install -m 644 *.3 $(ROOT)$(mandir)/man3
-
- install_nfslib: nfslib
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch
deleted file mode 100644
index ffd7a40..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream-Status: Inappropriate [no upstream]
-
-* nfslib should use NVER instead of VER
-* install the missing soname library
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- Makefile.in | 9 ++++++---
- 1 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 836ca9b..a589fb8 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -27,7 +27,7 @@ install: @INSTALL_TARGETS@
-
- static: liblockfile.a dotlockfile
- shared: liblockfile.so dotlockfile
--nfslib: nfslock.so.$(VER)
-+nfslib: nfslock.so.$(NVER)
-
- liblockfile.a: lockfile.o
- $(AR) rv liblockfile.a lockfile.o
-@@ -36,7 +36,7 @@ liblockfile.so: liblockfile.a
- $(CC) -fPIC -shared -Wl,-soname,liblockfile.so.1 \
- -o liblockfile.so lockfile.o $(LDFLAGS) -lc
-
--nfslock.so.$(VER): nfslock.o
-+nfslock.so.$(NVER): nfslock.o
- $(CC) -fPIC -shared -Wl,-soname,nfslock.so.0 \
- -o nfslock.so.$(NVER) nfslock.o $(LDFLAGS)
-
-@@ -59,6 +59,7 @@ install_shared: shared install_common
- install -m 755 liblockfile.so \
- $(ROOT)$(libdir)/liblockfile.so.$(VER)
- ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so
-+ ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so.1
- if test "$(ROOT)" = ""; then @LDCONFIG@; fi
-
- install_common:
-@@ -72,7 +73,9 @@ install_common:
-
- install_nfslib: nfslib
- install -d $(ROOT)$(nfslockdir)
-- install -m 755 nfslock.so.$(VER) $(ROOT)$(nfslockdir)
-+ install -m 755 nfslock.so.$(NVER) $(ROOT)$(nfslockdir)
-+ ln -sf nfslock.so.$(NVER) $(ROOT)$(libdir)/nfslock.so
-+ ln -sf nfslock.so.$(NVER) $(ROOT)$(libdir)/nfslock.so.0
- if test "$(ROOT)" = ""; then @LDCONFIG@; fi
-
- clean:
---
-1.7.9.5
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
new file mode 100644
index 0000000..ea415dd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
@@ -0,0 +1,54 @@
+From 67843dabe1177840697839b916fd899218893ec7 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 19 Jul 2018 00:25:23 -0700
+Subject: [PATCH] Makefile.in: add DESTDIR
+
+Add DESTDIR to fix below error during do_install
+
+| install -d -m 755 -g root -p /usr/include
+| install -d -m 755 -g root -p /usr/lib
+| install -d -m 755 -g root -p /usr/bin
+| install -m 755 nfslock.so.0.1 /usr/lib
+| install -d -m 755 -g root -p /usr/share/man/man1
+| install: cannot create regular file '/usr/lib/nfslock.so.0.1': Permission denied
+| Makefile:78: recipe for target 'install_nfslib' failed
+| make: *** [install_nfslib] Error 1
+| make: *** Waiting for unfinished jobs....
+| install -d -m 755 -g root -p /usr/share/man/man3
+| install -m 644 lockfile.h maillock.h /usr/include
+| install: cannot create regular file '/usr/include/lockfile.h': Permission denied
+| install: cannot create regular file '/usr/include/maillock.h': Permission denied
+| Makefile:64: recipe for target 'install_common' failed
+| make: *** [install_common] Error 1
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 36a6d23..1e4130e 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -12,11 +12,11 @@ CC = @CC@
+
+ prefix = $(DESTDIR)@prefix@
+ exec_prefix = @exec_prefix@
+-bindir = @bindir@
+-libdir = @libdir@
+-mandir = @mandir@
+-nfslockdir = @nfslockdir@
+-includedir = @includedir@
++bindir = $(DESTDIR)@bindir@
++libdir = $(DESTDIR)@libdir@
++mandir = $(DESTDIR)@mandir@
++nfslockdir = $(DESTDIR)@nfslockdir@
++includedir = $(DESTDIR)@includedir@
+ datarootdir = @datarootdir@
+ MAILGROUP = @MAILGROUP@
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock.so-and-nfslock.so.0.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock.so-and-nfslock.so.0.patch
new file mode 100644
index 0000000..a6b297b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock.so-and-nfslock.so.0.patch
@@ -0,0 +1,31 @@
+From 631d46efff2a6d8970e202ba5422ebedd17a8d2f Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 19 Jul 2018 01:00:10 -0700
+Subject: [PATCH] Makefile.in: install nfslock.so and nfslock.so.0
+
+* install the missing soname library
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Makefile.in b/Makefile.in
+index 1e4130e..0f1b506 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -77,6 +77,8 @@ install_common:
+ install_nfslib: nfslib
+ install -d -m 755 -g root -p $(nfslockdir)
+ install -m 755 nfslock.so.$(NFSVER) $(nfslockdir)
++ ln -sf nfslock.so.$(NFSVER) $(libdir)/nfslock.so
++ ln -sf nfslock.so.$(NFSVER) $(libdir)/nfslock.so.0
+ if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi
+
+ clean:
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch
rename to meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
new file mode 100644
index 0000000..da25033
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
@@ -0,0 +1,33 @@
+From 363eb1aaeca914c7d36a2cdaf1417e4f87af4c22 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 19 Jul 2018 01:12:47 -0700
+Subject: [PATCH] Makefile.in: define dotlockfile.1 installed to man
+
+Explicitly define dotlockfile.1 installed to man
+dir to avoid nfslock.so.0.1 is installed into man
+directory
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 0f1b506..6e53179 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -71,7 +71,7 @@ install_common:
+ else \
+ install -g root -m 755 dotlockfile $(bindir); \
+ fi
+- install -m 644 *.1 $(mandir)/man1
++ install -m 644 dotlockfile.1 $(mandir)/man1
+ install -m 644 *.3 $(mandir)/man3
+
+ install_nfslib: nfslib
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
deleted file mode 100644
index 0c41afa..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "File locking library"
-HOMEPAGE = "http://packages.qa.debian.org/libl/liblockfile.html"
-SECTION = "libs"
-LICENSE = "LGPLv2+ & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ac284a60d48eaa4bc811cddc377fa341"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.09.orig.tar.gz \
- ${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.09-6.debian.tar.bz2;name=1.09-6 \
- file://install.patch \
- file://configure.patch \
- file://ldflags.patch \
- file://liblockfile-fix-nfslib-and-soname.patch \
- file://liblockfile-fix-install-so-to-man-dir.patch \
-"
-
-SRC_URI[md5sum] = "2aa269e4405ee8235ff17d1b357c6ae8"
-SRC_URI[sha256sum] = "16979eba05396365e1d6af7100431ae9d32f9bc063930d1de66298a0695f1b7f"
-
-SRC_URI[1.09-6.md5sum] = "a2811807e63a526c07b0f60626e329a2"
-SRC_URI[1.09-6.sha256sum] = "d45eacb7c637c16d03c777c55989d98da494ae9584a0783fe6dbf0db60fa290f"
-
-inherit autotools-brokensep
-
-# set default mailgroup to mail
-# --with-libnfslock specify where to install nfslock.so.NVER
-EXTRA_OECONF = "--enable-shared \
- --with-mailgroup=mail \
- --with-libnfslock=${libdir} \
-"
-
-# Makefile using ROOT not DESTDIR
-EXTRA_OEMAKE += "ROOT=${D}"
-
-FILES_${PN} += "${libdir}/nfslock.so.*"
-FILES_${PN}-dev += "${libdir}/nfslock.so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb
new file mode 100644
index 0000000..de2c1e3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb
@@ -0,0 +1,37 @@
+SUMMARY = "File locking library"
+HOMEPAGE = "http://packages.qa.debian.org/libl/liblockfile.html"
+SECTION = "libs"
+LICENSE = "LGPLv2+ & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f4ba6ad04fcb05cc30a4cfa5062c55a3"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.14.orig.tar.gz \
+ ${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.14-1.debian.tar.bz2;name=1.14-1 \
+ file://configure.patch \
+ file://0001-Makefile.in-add-DESTDIR.patch \
+ file://0001-Makefile.in-install-nfslock.so-and-nfslock.so.0.patch \
+ file://liblockfile-fix-install-so-to-man-dir.patch \
+"
+
+SRC_URI[md5sum] = "420c056ba0cc4d1477e402f70ba2f5eb"
+SRC_URI[sha256sum] = "ab40d4a3e8cbc204f7e87fea637a4e4ddf9a1149aaa0a723a4267febd0b1d060"
+
+SRC_URI[1.14-1.md5sum] = "f9a44928c3477d218c56252712ebc479"
+SRC_URI[1.14-1.sha256sum] = "73f9be769e602149391588c28f0f4f5cda131e30fb94c0777dbb23d811ac21ff"
+
+S = "${WORKDIR}/${BPN}"
+
+inherit autotools-brokensep
+
+# set default mailgroup to mail
+# --with-libnfslock specify where to install nfslock.so.NVER
+EXTRA_OECONF = "--enable-shared \
+ --with-mailgroup=mail \
+ --with-libnfslock=${libdir} \
+"
+
+# Makefile using DESTDIR as the change in e35f9eabcbba224ecc70b145d5d2a2d81064c195
+# at https://github.com/miquels/liblockfile.git
+EXTRA_OEMAKE += "DESTDIR=${D}"
+
+FILES_${PN} += "${libdir}/nfslock.so.*"
+FILES_${PN}-dev += "${libdir}/nfslock.so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb b/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb
deleted file mode 100644
index 64a258b..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "An easy to use logging library"
-DESCRIPTION = " \
-liblogging (the upstream project) is a collection of several components. \
-Namely: stdlog, journalemu, rfc3195. \
-The stdlog component of liblogging can be viewed as an enhanced version of \
-the syslog(3) API. It retains the easy semantics, but makes the API more \
-sophisticated "behind the scenes" with better support for multiple threads \
-and flexibility for different log destinations (e.g. syslog and systemd \
-journal)."
-SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=63fe03535d83726f5655072502bef1bc"
-SRC_URI = "http://download.rsyslog.com/${BPN}/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "44b8ce2daa1bfb84c9feaf42f9925fd7"
-SRC_URI[sha256sum] = "310dc1691279b7a669d383581fe4b0babdc7bf75c9b54a24e51e60428624890b"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-man-pages"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--enable-journal, --disable-journal, systemd"
diff --git a/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb b/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb
new file mode 100644
index 0000000..bb59845
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb
@@ -0,0 +1,23 @@
+SUMMARY = "An easy to use logging library"
+DESCRIPTION = " \
+liblogging (the upstream project) is a collection of several components. \
+Namely: stdlog, journalemu, rfc3195. \
+The stdlog component of liblogging can be viewed as an enhanced version of \
+the syslog(3) API. It retains the easy semantics, but makes the API more \
+sophisticated "behind the scenes" with better support for multiple threads \
+and flexibility for different log destinations (e.g. syslog and systemd \
+journal)."
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=63fe03535d83726f5655072502bef1bc"
+SRC_URI = "http://download.rsyslog.com/${BPN}/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "f215c7e7ac6cfd1f5dabdba08c522b29"
+SRC_URI[sha256sum] = "338c6174e5c8652eaa34f956be3451f7491a4416ab489aef63151f802b00bf93"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-man-pages"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--enable-journal, --disable-journal, systemd"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb b/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
index 2c96063..9fb25cd 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
@@ -12,20 +12,19 @@
SRC_URI[md5sum] = "b8defcc7280a90e9400d6689c93a279c"
SRC_URI[sha256sum] = "1de6ff046cf2172d265a2cb6f8da439d894f3e4e8157b056c515515232fade6b"
+UPSTREAM_CHECK_URI = "https://github.com/libpwquality/libpwquality/releases"
+
S = "${WORKDIR}/${SRCNAME}-${PV}"
-DEPENDS = "cracklib virtual/gettext python3"
-RDEPENDS_python3-libpwquality = "${PN}"
+DEPENDS = "cracklib virtual/gettext"
-inherit autotools python3native gettext
+inherit autotools distutils3-base gettext
B = "${S}"
export PYTHON_DIR
export BUILD_SYS
export HOST_SYS
-export STAGING_LIBDIR
-export STAGING_INCDIR
EXTRA_OECONF += "--with-python-rev=${PYTHON_BASEVERSION} \
--with-python-binary=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} \
@@ -36,10 +35,7 @@
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
PACKAGECONFIG[pam] = "--enable-pam, --disable-pam, libpam"
-PACKAGES += "python3-libpwquality python3-libpwquality-dbg"
FILES_${PN} += "${libdir}/security/pam_pwquality.so"
FILES_${PN}-dbg += "${libdir}/security/.debug"
FILES_${PN}-staticdev += "${libdir}/security/pam_pwquality.a"
FILES_${PN}-dev += "${libdir}/security/pam_pwquality.la"
-FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
-FILES_python3-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
index 9b328a1..97fb097 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
@@ -1,7 +1,7 @@
-From db32ba60ca75d288d3ac08b54256cb74d9e1581a Mon Sep 17 00:00:00 2001
+From 1f7d106c7d982fe055addc8d883b161202233175 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Wed, 26 Apr 2017 03:47:58 -0400
-Subject: [PATCH 1/3] Makefile.am: remove doc and apidoc
+Subject: [PATCH 1/4] Makefile.am: remove doc and apidoc
There was a failure at do_install time, so remove doc to workaround.
@@ -13,7 +13,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index c6ab640..fb09fc1 100644
+index 9ad827c..34364a8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
@@ -24,5 +24,5 @@
EXTRA_DIST = \
libreport.pc.in \
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
index 146510e..7f5895e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
@@ -1,7 +1,7 @@
-From d8c49e6a15ab28f4ca94e03b2a53ed8df63346cd Mon Sep 17 00:00:00 2001
+From 9beadcdfca9198548f06bf18f3f26e1d11542e53 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 26 Apr 2017 03:49:45 -0400
-Subject: [PATCH 2/3] configure.ac: remove prog test of xmlto and asciidoc
+Date: Tue, 31 Jul 2018 16:53:04 +0800
+Subject: [PATCH 2/4] configure.ac: remove prog test of xmlto and asciidoc
The prog of xmlto and asciidoc were used to generate documents,
and since the doc module has already been disabled, so we should
@@ -15,12 +15,12 @@
1 file changed, 18 deletions(-)
diff --git a/configure.ac b/configure.ac
-index ccefe50..ed48c88 100644
+index feafc28..aceccf4 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -68,24 +68,6 @@ if test -z "$PYTHON3"; then
- exit 1
- fi
+@@ -56,24 +56,6 @@ IT_PROG_INTLTOOL([0.35.0])
+
+ dnl ****** END ****************************************
-AC_PATH_PROG([ASCIIDOC], [asciidoc], [no])
-[if test "$ASCIIDOC" = "no"]
@@ -44,5 +44,5 @@
AS_HELP_STRING([--with-bugzilla],[use Bugzilla plugin (default is YES)]),
LIBREPORT_PARSE_WITH([bugzilla]))
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
index 3ad7774..2ff1731 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
@@ -1,7 +1,7 @@
-From 0e96d9f23b2b166e7444e7c8e0a6d4b83c2eccd7 Mon Sep 17 00:00:00 2001
+From 41bce1de2fd2a0f79c266f245ae3e3720ccaf46a Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Wed, 26 Apr 2017 03:51:03 -0400
-Subject: [PATCH 3/3] without build plugins
+Subject: [PATCH 3/4] without build plugins
Upstream-Status: Inappropriate workaround
@@ -22,5 +22,5 @@
-SUBDIRS = include lib plugins report-python cli client-python workflows $(sub_dirs)
+SUBDIRS = include lib report-python cli client-python workflows $(sub_dirs)
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
index 9839e5a..4ba69c7 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
@@ -1,7 +1,7 @@
-From cf3b646facc19078ed29f828e36dd2e552283518 Mon Sep 17 00:00:00 2001
+From c1c301502a8f69b9889197744b301a136082f09d Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 27 Apr 2017 02:15:02 -0400
-Subject: [PATCH] configure.ac: remove prog test of augparse
+Subject: [PATCH 4/4] configure.ac: remove prog test of augparse
The build time does not require it.
@@ -13,10 +13,10 @@
1 file changed, 8 deletions(-)
diff --git a/configure.ac b/configure.ac
-index c06af2d..b90f49e 100644
+index aceccf4..83c101b 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -288,14 +288,6 @@ AC_ARG_WITH(augeaslenslibdir,
+@@ -350,14 +350,6 @@ AC_ARG_WITH(augeaslenslibdir,
[Directory for librepor lens (default: /usr/share/augeas/lenses)])],
[], [with_augeaslenslibdir="/usr/share/augeas/lenses"])
AC_SUBST([AUGEAS_LENS_LIB_DIR], [$with_augeaslenslibdir])
@@ -32,5 +32,5 @@
AC_ARG_WITH([defaultdumpdirmode],
AS_HELP_STRING([--with-defaultdumpdirmode=OCTAL-MODE],
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch b/meta-openembedded/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch
deleted file mode 100644
index 9770f07..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 06710ab89fc7d7a82a378289aa3fcd92d33074f2 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Apr 2017 03:31:00 -0400
-Subject: [PATCH] remove python2 support
-
-We do not require python2, so remove it.
-
-Upstream-Status: Inappropriate workaround
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 15 ---------------
- src/client-python/reportclient/Makefile.am | 9 ---------
- src/report-python/Makefile.am | 19 -------------------
- 3 files changed, 43 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index eb50382..826d0fe 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -166,15 +166,6 @@ do
- done
- fi dnl end NO_MANTISBT
-
--AC_PATH_PROG([PYTHON_CONFIG], [python-config], [no])
--[if test "$PYTHON_CONFIG" = "no"]
--[then]
-- [echo "The python-config program was not found in the search path. Please ensure"]
-- [echo "that it is installed and its directory is included in the search path."]
-- [echo "Then run configure again before attempting to build libreport."]
-- [exit 1]
--[fi]
--
- AC_PATH_PROG([PYTHON3_CONFIG], [python3-config], [no])
- [if test "$PYTHON3_CONFIG" = "no"]
- [then]
-@@ -184,9 +175,6 @@ AC_PATH_PROG([PYTHON3_CONFIG], [python3-config], [no])
- [exit 1]
- [fi]
-
--PYTHON_CFLAGS=`python-config --cflags 2> /dev/null`
--PYTHON_LIBS=`python-config --libs 2> /dev/null`
--
- PYTHON3_CFLAGS=`python3-config --cflags 2> /dev/null`
- PYTHON3_LIBS=`python3-config --libs 2> /dev/null`
-
-@@ -198,9 +186,6 @@ PYTHON3_DIR=`$PYTHON3 -c "import distutils.sysconfig; \
- PYTHON3_EXECDIR=`$PYTHON3 -c "import distutils.sysconfig; \
- print(distutils.sysconfig.get_python_lib(1,0,prefix='$PYTHON3_EXEC_PREFIX'))"`
-
--AC_SUBST(PYTHON_CFLAGS)
--AC_SUBST(PYTHON_LIBS)
--
- AC_SUBST(PYTHON3_CFLAGS)
- AC_SUBST(PYTHON3_LIBS)
- AC_SUBST(python3dir, $PYTHON3_DIR)
-diff --git a/src/client-python/reportclient/Makefile.am b/src/client-python/reportclient/Makefile.am
-index 46ac42f..fb5216a 100644
---- a/src/client-python/reportclient/Makefile.am
-+++ b/src/client-python/reportclient/Makefile.am
-@@ -4,13 +4,10 @@ PYFILES = \
- dnfdebuginfo.py \
- yumdebuginfo.py
-
--py2clientdir = $(pyexecdir)/reportclient
- py3clientdir = $(py3execdir)/reportclient
-
--py2client_PYTHON = $(PYFILES)
- py3client_PYTHON = $(PYFILES)
-
--py2client_LTLIBRARIES = _reportclient.la
- py3client_LTLIBRARIES = _reportclient3.la
-
- PYEXTFILES = \
-@@ -33,12 +30,6 @@ PYEXTLDFLAGS = \
- -avoid-version \
- -Wl,-z,relro -Wl,-z,now
-
--_reportclient_la_SOURCES = $(PYEXTFILES)
--_reportclient_la_CPPFLAGS = $(PYEXTCPPFLAGS) $(PYTHON_CFLAGS)
--_reportclient_la_LDFLAGS = $(PYEXTLDFLAGS) \
-- -export-symbols-regex init_reportclient
--_reportclient_la_LIBADD = ../../lib/libreport.la
--
- _reportclient3_la_SOURCES = $(PYEXTFILES)
- _reportclient3_la_CPPFLAGS = $(PYEXTCPPFLAGS) $(PYTHON3_CFLAGS)
- _reportclient3_la_LDFLAGS = $(PYEXTLDFLAGS) \
-diff --git a/src/report-python/Makefile.am b/src/report-python/Makefile.am
-index 793cebd..241dcb7 100644
---- a/src/report-python/Makefile.am
-+++ b/src/report-python/Makefile.am
-@@ -1,12 +1,9 @@
- PYFILES = __init__.py accountmanager.py
-
--pyreportexecdir = $(pyexecdir)/report
- py3reportexecdir = $(py3execdir)/report
-
--pyreportexec_PYTHON = $(PYFILES)
- py3reportexec_PYTHON = $(PYFILES)
-
--pyreportexec_LTLIBRARIES = _pyreport.la
- py3reportexec_LTLIBRARIES = _py3report.la
-
- PYEXTFILES = \
-@@ -34,20 +31,6 @@ PYEXTLDFLAGS = \
- -avoid-version \
- -Wl,-z,relro -Wl,-z,now
-
--_pyreport_la_SOURCES = $(PYEXTFILES)
--
--_pyreport_la_CPPFLAGS = \
-- $(PYEXTCPPFLAGS) \
-- $(PYTHON_CFLAGS)
--
--_pyreport_la_LDFLAGS = \
-- $(PYEXTLDFLAGS) \
-- -export-symbols-regex init_pyreport
--
--_pyreport_la_LIBADD = \
-- ../lib/libreport.la \
-- $(PYTHON2_LIBS)
--
- _py3report_la_SOURCES = $(PYEXTFILES)
-
- _py3report_la_CPPFLAGS = \
-@@ -64,7 +47,6 @@ _py3report_la_LIBADD = \
-
- # report compat:
-
--pyreportioexecdir = $(pyexecdir)/report/io
- py3reportioexecdir = $(py3execdir)/report/io
-
- PYIOFILES = \
-@@ -73,5 +55,4 @@ PYIOFILES = \
- io/NewtIO.py \
- io/TextIO.py
-
--pyreportioexec_PYTHON = $(PYIOFILES)
- py3reportioexec_PYTHON = $(PYIOFILES)
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
deleted file mode 100644
index f2c661c..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-DESCRIPTION = "Libraries providing API for reporting different problems in applications \
-to different bug targets like Bugzilla, ftp, trac, etc..."
-SUMMARY = "Generic library for reporting various problems"
-HOMEPAGE = "https://abrt.readthedocs.org/"
-LICENSE = "GPLv2+"
-DEPENDS = "xmlrpc-c xmlrpc-c-native intltool-native \
- json-c libtar libnewt libproxy rpm \
- augeas satyr systemd \
-"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-
-SRC_URI = "git://github.com/abrt/libreport.git;protocol=https"
-SRC_URI += "file://0001-Makefile.am-remove-doc-and-apidoc.patch \
- file://0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch \
- file://0003-without-build-plugins.patch \
- file://0004-configure.ac-remove-prog-test-of-augparse.patch \
- file://0005-remove-python2-support.patch \
-"
-SRCREV = "cfff49f06d9d17e269d463ee71b3d94c8bfb0c58"
-S = "${WORKDIR}/git"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-inherit gettext autotools python3native pkgconfig
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','x11','gtk','',d)}"
-PACKAGECONFIG[gtk] = "--with-gtk, --without-gtk, gtk+3,"
-
-RDEPENDS_python3-libreport += "${PN}"
-
-do_patch[prefuncs] += "do_gen_version"
-do_gen_version() {
- cd ${S}
- ./gen-version
-}
-
-PACKAGES += "python3-libreport"
-
-FILES_${PN} += "${datadir}/*"
-FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug"
-FILES_python3-libreport = "${PYTHON_SITEPACKAGES_DIR}/*"
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.5.bb b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.5.bb
new file mode 100644
index 0000000..542956c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.5.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "Libraries providing API for reporting different problems in applications \
+to different bug targets like Bugzilla, ftp, trac, etc..."
+SUMMARY = "Generic library for reporting various problems"
+HOMEPAGE = "https://abrt.readthedocs.org/"
+LICENSE = "GPLv2+"
+DEPENDS = "xmlrpc-c xmlrpc-c-native intltool-native \
+ json-c libtar libnewt libproxy rpm \
+ augeas satyr systemd \
+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+
+SRC_URI = "git://github.com/abrt/libreport.git;protocol=https"
+SRC_URI += "file://0001-Makefile.am-remove-doc-and-apidoc.patch \
+ file://0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch \
+ file://0003-without-build-plugins.patch \
+ file://0004-configure.ac-remove-prog-test-of-augparse.patch \
+"
+SRCREV = "15f92bcaf73e5eb8958fbde655a57dcd111757a7"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+inherit gettext autotools python3native pkgconfig
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','x11','gtk','',d)}"
+PACKAGECONFIG[gtk] = "--with-gtk, --without-gtk, gtk+3,"
+
+EXTRA_OECONF += "--without-python2 --with-python3"
+
+RDEPENDS_python3-libreport += "${PN}"
+
+do_patch[prefuncs] += "do_gen_version"
+do_gen_version() {
+ cd ${S}
+ ./gen-version
+}
+
+PACKAGES += "python3-libreport"
+
+FILES_${PN} += "${datadir}/*"
+FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug"
+FILES_python3-libreport = "${PYTHON_SITEPACKAGES_DIR}/*"
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mailx/files/0001-support-openssl-1.1.x.patch b/meta-openembedded/meta-oe/recipes-extended/mailx/files/0001-support-openssl-1.1.x.patch
new file mode 100644
index 0000000..6a8911d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mailx/files/0001-support-openssl-1.1.x.patch
@@ -0,0 +1,72 @@
+From 7db6d8a657d13bb562a27c6181accaf3e53c0efd Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 25 Sep 2018 14:03:10 +0800
+Subject: [PATCH] support openssl 1.1.x
+
+Long time no maintain from upstream since 2013-06-04
+(https://sourceforge.net/projects/nail/), backport a
+fix from openSUSE
+
+Upstream-Status: Backport [openSUSE]
+https://build.opensuse.org/package/view_file/openSUSE:Leap:15.0/mailx/mailx-12.5-openssl-1.1.0f.patch?expand=1
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ openssl.c | 25 ++++++++++++++++++++++++-
+ 1 file changed, 24 insertions(+), 1 deletion(-)
+
+diff --git a/openssl.c b/openssl.c
+index 44fe4e5..0ccc517 100644
+--- a/openssl.c
++++ b/openssl.c
+@@ -137,7 +137,12 @@ ssl_rand_init(void)
+
+ if ((cp = value("ssl-rand-egd")) != NULL) {
+ cp = expand(cp);
+- if (RAND_egd(cp) == -1) {
++#ifndef OPENSSL_NO_EGD
++ if (RAND_egd(cp) == -1)
++#else
++ if (1)
++#endif
++ {
+ fprintf(stderr, catgets(catd, CATSET, 245,
+ "entropy daemon at \"%s\" not available\n"),
+ cp);
+@@ -216,6 +221,7 @@ ssl_select_method(const char *uhp)
+
+ cp = ssl_method_string(uhp);
+ if (cp != NULL) {
++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL
+ if (equal(cp, "ssl3"))
+ method = SSLv3_client_method();
+ else if (equal(cp, "tls1"))
+@@ -225,8 +231,25 @@ ssl_select_method(const char *uhp)
+ "Invalid SSL method \"%s\"\n"), cp);
+ method = SSLv23_client_method();
+ }
++#else
++ method = NULL;
++ if (equal(cp, "tls"))
++ method = TLS_client_method();
++ else if (equal(cp, "dtls"))
++ method = DTLS_client_method();
++
++ if (!method) {
++ fprintf(stderr, catgets(catd, CATSET, 244,
++ "Invalid SSL method \"%s\"\n"), cp);
++ method = TLS_client_method();
++ }
++#endif
+ } else
++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL
+ method = SSLv23_client_method();
++#else
++ method = TLS_client_method();
++#endif
+ return method;
+ }
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb b/meta-openembedded/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb
index 0a191a0..4161ea6 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb
@@ -9,7 +9,7 @@
LICENSE = "BSD & MPL-1"
LIC_FILES_CHKSUM = "file://COPYING;md5=4202a0a62910cf94f7af8a3436a2a2dd"
-DEPENDS = "openssl10"
+DEPENDS = "openssl"
SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/h/heirloom-mailx/heirloom-mailx_12.5.orig.tar.gz;name=archive \
file://0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch \
@@ -21,6 +21,7 @@
file://0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch \
file://0015-usr-sbin-sendmail.patch \
file://explicitly.disable.krb5.support.patch \
+ file://0001-support-openssl-1.1.x.patch \
"
SRC_URI[archive.md5sum] = "29a6033ef1412824d02eb9d9213cb1f2"
diff --git a/meta-openembedded/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch b/meta-openembedded/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch
deleted file mode 100644
index cc7cdc3..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6ef69a26126ee4e69a25392fd456b8a66c51dffd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 15 Nov 2016 02:46:55 +0000
-Subject: [PATCH] Fix errors found by clang
-
-Fixes errors like
-
-../../git/src/hash.cpp:282:19: error: ordered comparison between pointer and zero ('const unsigned char *' and 'int')
- if(fdht->base>0){
- ~~~~~~~~~~^~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/hash.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/hash.cpp b/src/hash.cpp
-index 4216157..52f419b 100644
---- a/src/hash.cpp
-+++ b/src/hash.cpp
-@@ -279,7 +279,7 @@ void file_data_hasher_t::hash()
- MAP_FILE|
- #endif
- MAP_SHARED,fd,0);
-- if(fdht->base>0){
-+ if(fdht->base != (void *) -1){
- /* mmap is successful, so set the bounds.
- * if it is not successful, we default to reading the fd
- */
---
-1.9.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch b/meta-openembedded/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch
new file mode 100644
index 0000000..69460b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch
@@ -0,0 +1,128 @@
+From 7d7b60e38ca701819d4d00b38161faddce01e2ae Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Sep 2018 23:21:22 -0700
+Subject: [PATCH] Fix literal and identifier spacing as dictated by C++11
+
+Fixes clang error like below
+
+error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
+| status(" Known files not found: %"PRIu64, this->match.unused);
+
+Upstream-Status: Submitted [https://github.com/jessek/hashdeep/pull/385/commits/18a6b5d57f7a648d2b7dcc6e50ff00a1e4b05fcc]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/display.cpp | 16 ++++++++--------
+ src/files.cpp | 4 ++--
+ src/hash.cpp | 2 +-
+ src/hashlist.cpp | 4 ++--
+ src/xml.h | 2 +-
+ 5 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/src/display.cpp b/src/display.cpp
+index b23335d..2eddc23 100644
+--- a/src/display.cpp
++++ b/src/display.cpp
+@@ -311,7 +311,7 @@ void display::display_realtime_stats(const file_data_hasher_t *fdht, const hash_
+
+ ss << mb_read << "MB of " << fdht->stat_megs() << "MB done, ";
+ char msg[64];
+- snprintf(msg,sizeof(msg),"%02"PRIu64":%02"PRIu64":%02"PRIu64" left", hour, min, seconds);
++ snprintf(msg,sizeof(msg),"%02" PRIu64 ":%02" PRIu64 ":%02" PRIu64 " left", hour, min, seconds);
+ ss << msg;
+ }
+ ss << "\r";
+@@ -424,14 +424,14 @@ void display::display_audit_results()
+
+ if (opt_verbose) {
+ if(opt_verbose >= MORE_VERBOSE){
+- status(" Input files examined: %"PRIu64, this->match.total);
+- status(" Known files expecting: %"PRIu64, this->match.expect);
++ status(" Input files examined: %" PRIu64, this->match.total);
++ status(" Known files expecting: %" PRIu64, this->match.expect);
+ }
+- status(" Files matched: %"PRIu64, this->match.exact);
+- status("Files partially matched: %"PRIu64, this->match.partial);
+- status(" Files moved: %"PRIu64, this->match.moved);
+- status(" New files found: %"PRIu64, this->match.unknown);
+- status(" Known files not found: %"PRIu64, this->match.unused);
++ status(" Files matched: %" PRIu64, this->match.exact);
++ status("Files partially matched: %" PRIu64, this->match.partial);
++ status(" Files moved: %" PRIu64, this->match.moved);
++ status(" New files found: %" PRIu64, this->match.unknown);
++ status(" Known files not found: %" PRIu64, this->match.unused);
+ }
+ }
+
+diff --git a/src/files.cpp b/src/files.cpp
+index 89c6984..3dfd363 100644
+--- a/src/files.cpp
++++ b/src/files.cpp
+@@ -509,7 +509,7 @@ int state::parse_encase_file(const char *fn, FILE *handle,uint32_t expected_hash
+
+ // Users expect the line numbers to start at one, not zero.
+ if ((!ocb.opt_silent) || (mode_warn_only)) {
+- ocb.error("%s: No hash found in line %"PRIu32, fn, count + 1);
++ ocb.error("%s: No hash found in line %" PRIu32, fn, count + 1);
+ ocb.error("%s: %s", fn, strerror(errno));
+ return status_t::STATUS_USER_ERROR;
+ }
+@@ -542,7 +542,7 @@ int state::parse_encase_file(const char *fn, FILE *handle,uint32_t expected_hash
+ }
+
+ if (expected_hashes != count){
+- ocb.error("%s: Expecting %"PRIu32" hashes, found %"PRIu32"\n",
++ ocb.error("%s: Expecting %" PRIu32 " hashes, found %" PRIu32 "\n",
+ fn, expected_hashes, count);
+ }
+ return status_t::status_ok;
+diff --git a/src/hash.cpp b/src/hash.cpp
+index 52f419b..a4b3128 100644
+--- a/src/hash.cpp
++++ b/src/hash.cpp
+@@ -124,7 +124,7 @@ bool file_data_hasher_t::compute_hash(uint64_t request_start,uint64_t request_le
+
+ // If an error occured, display a message and see if we need to quit.
+ if ((current_read_bytes<0) || (this->handle && ferror(this->handle))){
+- ocb->error_filename(this->file_name,"error at offset %"PRIu64": %s",
++ ocb->error_filename(this->file_name,"error at offset %" PRIu64 ": %s",
+ request_start, strerror(errno));
+
+ if (file_fatal_error()){
+diff --git a/src/hashlist.cpp b/src/hashlist.cpp
+index b5b275f..eb0d45a 100644
+--- a/src/hashlist.cpp
++++ b/src/hashlist.cpp
+@@ -342,7 +342,7 @@ hashlist::load_hash_file(display *ocb,const std::string &fn)
+ file_data_t *t = new (std::nothrow) file_data_t();
+ if (NULL == t)
+ {
+- ocb->fatal_error("%s: Out of memory in line %"PRIu64,
++ ocb->fatal_error("%s: Out of memory in line %" PRIu64,
+ fn.c_str(), line_number);
+ }
+
+@@ -390,7 +390,7 @@ hashlist::load_hash_file(display *ocb,const std::string &fn)
+ if ( !algorithm_t::valid_hash(hash_column[column_number],word))
+ {
+ if (ocb)
+- ocb->error("%s: Invalid %s hash in line %"PRIu64,
++ ocb->error("%s: Invalid %s hash in line %" PRIu64,
+ fn.c_str(),
+ hashes[hash_column[column_number]].name.c_str(),
+ line_number);
+diff --git a/src/xml.h b/src/xml.h
+index bfe0c94..017dba7 100644
+--- a/src/xml.h
++++ b/src/xml.h
+@@ -100,7 +100,7 @@ public:
+ void xmlout(const std::string &tag,const std::string &value){ xmlout(tag,value,"",true); }
+ void xmlout(const std::string &tag,const int value){ xmlprintf(tag,"","%d",value); }
+ void xmloutl(const std::string &tag,const long value){ xmlprintf(tag,"","%ld",value); }
+- void xmlout(const std::string &tag,const int64_t value){ xmlprintf(tag,"","%"PRId64,value); }
++ void xmlout(const std::string &tag,const int64_t value){ xmlprintf(tag,"","%" PRId64,value); }
+ void xmlout(const std::string &tag,const double value){ xmlprintf(tag,"","%f",value); }
+ void xmlout(const std::string &tag,const struct timeval &ts){
+ xmlprintf(tag,"","%d.%06d",(int)ts.tv_sec, (int)ts.tv_usec);
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch b/meta-openembedded/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
index 3a4c4f4..73c6cb1 100644
--- a/meta-openembedded/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
@@ -1,6 +1,8 @@
---- a/configure.ac 2014-08-22 12:22:54.290884351 +0200
-+++ b/configure.ac 2014-08-22 12:23:15.822306295 +0200
-@@ -42,18 +42,6 @@
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -42,18 +42,6 @@ case $host in
;;
esac
@@ -19,21 +21,3 @@
#
#
################################################################
-@@ -71,7 +59,7 @@
-
- if test $mingw = "no" ; then
- # add the warnings we don't want to do on mingw
-- $WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Wall -Wstrict-prototypes -Weffc++"
-+ WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Wall -Wstrict-prototypes -Weffc++"
- fi
-
- for option in $WARNINGS_TO_TEST
-@@ -105,7 +93,7 @@
-
- if test $mingw = "no" ; then
- # add the warnings we don't want to do on mingw
-- $WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Weffc++"
-+ WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Weffc++"
- fi
-
- for option in $WARNINGS_TO_TEST
diff --git a/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb b/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb
deleted file mode 100644
index bb30abe..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "md5deep and hashdeep to compute and audit hashsets of amounts of files."
-DESCRIPTION = "md5deep is a set of programs to compute MD5, SHA-1, SHA-256, Tiger, or Whirlpool message digests on an arbitrary number of files. This package also includes hashdeep which is also able to audit hashsets."
-AUTHOR = "Jesse Kornblum, Simson L. Garfinkel"
-HOMEPAGE = "http://md5deep.sourceforge.net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9190f660105b9a56cdb272309bfd5491"
-# Release 4.4
-SRCREV = "cd2ed7416685a5e83eb10bb659d6e9bec01244ae"
-
-SRC_URI = "git://github.com/jessek/hashdeep.git \
- file://wrong-variable-expansion.patch \
- file://0001-Fix-errors-found-by-clang.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb b/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb
new file mode 100644
index 0000000..e8c6864
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "md5deep and hashdeep to compute and audit hashsets of amounts of files."
+DESCRIPTION = "md5deep is a set of programs to compute MD5, SHA-1, SHA-256, Tiger, or Whirlpool message digests on an arbitrary number of files. This package also includes hashdeep which is also able to audit hashsets."
+AUTHOR = "Jesse Kornblum, Simson L. Garfinkel"
+HOMEPAGE = "http://md5deep.sourceforge.net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9190f660105b9a56cdb272309bfd5491"
+
+PV = "4.4+git${SRCPV}"
+
+SRCREV = "877613493ff44807888ce1928129574be393cbb0"
+
+SRC_URI = "git://github.com/jessek/hashdeep.git \
+ file://wrong-variable-expansion.patch \
+ file://0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-Fix-formatting-for-modern-c-11-compilers.patch b/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-Fix-formatting-for-modern-c-11-compilers.patch
new file mode 100644
index 0000000..8b00966
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-Fix-formatting-for-modern-c-11-compilers.patch
@@ -0,0 +1,31 @@
+From 90411a7f5e0e9582e79f0a8ccc1e2f158615e451 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 19 May 2018 23:18:11 -0700
+Subject: [PATCH] Fix formatting for modern c++11 compilers
+
+Fixes
+error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/backend/svg/SVG_RenderingContext.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/backend/svg/SVG_RenderingContext.cc b/src/backend/svg/SVG_RenderingContext.cc
+index 55d6097..0d50702 100644
+--- a/src/backend/svg/SVG_RenderingContext.cc
++++ b/src/backend/svg/SVG_RenderingContext.cc
+@@ -68,7 +68,7 @@ void
+ SVG_RenderingContext::documentStart(const BoundingBox& bbox)
+ {
+ beginDocument(bbox);
+- metadata("Created by "PACKAGE" version "VERSION);
++ metadata("Created by " PACKAGE " version " VERSION);
+ }
+
+ void
+--
+2.17.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb b/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
index df82bef..9ee9e30 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
@@ -13,6 +13,7 @@
file://0001-include-cstdio-to-get-printf-definitions.patch \
file://0002-configure.ac-header-detection-of-hash_map-is-broken-.patch \
file://0003-gcc-6.0-build-fixes.patch \
+ file://0001-Fix-formatting-for-modern-c-11-compilers.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-compare-the-first-character-of-string-to-be-null-or-.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-compare-the-first-character-of-string-to-be-null-or-.patch
deleted file mode 100644
index 40d646c..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-compare-the-first-character-of-string-to-be-null-or-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From f36c9476d2816e0d3e61c9e13c22ed73883cb54a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 24 Apr 2017 12:13:43 -0700
-Subject: [PATCH] compare the first character of string to be null or not
-
-Fixes
-
-error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
-| if (value[0] == '\0')
-| ^~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- js/src/shell/jsoptparse.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/js/src/shell/jsoptparse.cpp b/js/src/shell/jsoptparse.cpp
-index b49d0a5..612aa00 100644
---- a/js/src/shell/jsoptparse.cpp
-+++ b/js/src/shell/jsoptparse.cpp
-@@ -243,7 +243,7 @@ OptionParser::extractValue(size_t argc, char **argv, size_t *i, char **value)
- char *eq = strchr(argv[*i], '=');
- if (eq) {
- *value = eq + 1;
-- if (value[0] == '\0')
-+ if (value[0][0] == '\0')
- return error("A value is required for option %.*s", eq - argv[*i], argv[*i]);
- return Okay;
- }
---
-2.12.2
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch
new file mode 100644
index 0000000..ba317bc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch
@@ -0,0 +1,91 @@
+From 5028d1cd669c179ed49061316d04c8e8862a5bd8 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 12 Jul 2018 15:04:47 +0800
+Subject: [PATCH 1/5] do not create python environment
+
+Use oe's python environment rather than create one of host
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ build/moz.configure/init.configure | 18 ------------------
+ configure.py | 10 +++++++++-
+ js/src/old-configure | 4 ++--
+ 3 files changed, 11 insertions(+), 21 deletions(-)
+
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 2123beb..6fe6591 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -179,24 +179,6 @@ def virtualenv_python(env_python, build_env, mozconfig, help):
+ else:
+ python = sys.executable
+
+- if not manager.up_to_date(python):
+- log.info('Creating Python environment')
+- manager.build(python)
+-
+- python = normsep(manager.python_path)
+-
+- if python != normsep(sys.executable):
+- log.info('Reexecuting in the virtualenv')
+- if env_python:
+- del os.environ['PYTHON']
+- # One would prefer to use os.execl, but that's completely borked on
+- # Windows.
+- sys.exit(subprocess.call([python] + sys.argv))
+-
+- # We are now in the virtualenv
+- if not distutils.sysconfig.get_python_lib():
+- die('Could not determine python site packages directory')
+-
+ return python
+
+ set_config('PYTHON', virtualenv_python)
+diff --git a/configure.py b/configure.py
+index f7392d0..45323a5 100644
+--- a/configure.py
++++ b/configure.py
+@@ -12,7 +12,15 @@ import textwrap
+
+
+ base_dir = os.path.abspath(os.path.dirname(__file__))
+-sys.path.insert(0, os.path.join(base_dir, 'python', 'mozbuild'))
++sys.path.insert(0, os.path.join(base_dir, 'config'))
++def get_immediate_subdirectories(a_dir):
++ return [name for name in os.listdir(a_dir)
++ if os.path.isdir(os.path.join(a_dir, name))]
++for s in ["python", "testing/mozbase"]:
++ sub_dir = os.path.join(base_dir, s)
++ for module_dir in get_immediate_subdirectories(sub_dir):
++ sys.path.insert(0, os.path.join(sub_dir, module_dir))
++
+ from mozbuild.configure import ConfigureSandbox
+ from mozbuild.util import (
+ indented_repr,
+diff --git a/js/src/old-configure b/js/src/old-configure
+index ee4527b..75b00e1 100644
+--- a/js/src/old-configure
++++ b/js/src/old-configure
+@@ -10512,7 +10512,7 @@ if test "$MOZ_BUILD_APP" != js -o -n "$JS_STANDALONE"; then
+ ;;
+ esac
+
+- eval $dumpenv $PYTHON $_topsrcdir/build/subconfigure.py --prepare "$srcdir" "$moz_config_dir" "$_CONFIG_SHELL" $ac_configure_args
++ eval $dumpenv PYTHONPATH=$_topsrcdir/python/mozbuild/ $PYTHON $_topsrcdir/build/subconfigure.py --prepare "$srcdir" "$moz_config_dir" "$_CONFIG_SHELL" $ac_configure_args
+
+ done
+
+@@ -10931,7 +10931,7 @@ if test "$JS_STANDALONE"; then
+
+ if test "$no_recursion" != yes; then
+ trap '' EXIT
+- if ! $PYTHON $_topsrcdir/build/subconfigure.py --list subconfigures --skip skip_subconfigures; then
++ if ! PYTHONPATH=$_topsrcdir/python/mozbuild/ $PYTHON $_topsrcdir/build/subconfigure.py --list subconfigures --skip skip_subconfigures; then
+ exit 1
+ fi
+ fi
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch
new file mode 100644
index 0000000..bc1af3c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch
@@ -0,0 +1,79 @@
+From 5ad700c92224193bfc789f7d53af38fc6f8b8904 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 19 Jul 2018 17:31:35 +0800
+Subject: [PATCH] fix compiling failure on mips64-n32 bsp
+
+- Tweak mips64-n32 with mips32
+
+- The toolchain of mips64-n32 supports both of macro
+ `__mips64' and `__mips__', but 32bit is required here.
+
+- N32 uses 64-bit registers but restricts addresses to 32 bits.
+ https://www.linux-mips.org/pub/linux/mips/doc/ABI/MIPS-N32-ABI-Handbook.pdf
+ Table 2-1 specifies the use of registers in n32 and native 64-bit mode.
+ From the table, N32 and N64 have the same registers
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ build/moz.configure/init.configure | 5 ++++-
+ js/src/jit/mips-shared/Architecture-mips-shared.h | 4 +++-
+ python/mozbuild/mozbuild/configure/constants.py | 2 +-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 6fe6591..a77b46c 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -357,7 +357,10 @@ def split_triplet(triplet):
+ canonical_cpu = 'mips32'
+ endianness = 'little' if 'el' in cpu else 'big'
+ elif cpu in ('mips64', 'mips64el'):
+- canonical_cpu = 'mips64'
++ if 'n32' in triplet:
++ canonical_cpu = 'mips32'
++ else:
++ canonical_cpu = 'mips64'
+ endianness = 'little' if 'el' in cpu else 'big'
+ elif cpu.startswith('aarch64'):
+ canonical_cpu = 'aarch64'
+diff --git a/js/src/jit/mips-shared/Architecture-mips-shared.h b/js/src/jit/mips-shared/Architecture-mips-shared.h
+index 7afe305..c6e29dc 100644
+--- a/js/src/jit/mips-shared/Architecture-mips-shared.h
++++ b/js/src/jit/mips-shared/Architecture-mips-shared.h
+@@ -24,6 +24,8 @@
+ #define USES_O32_ABI
+ #elif (defined(_MIPS_SIM) && (_MIPS_SIM == _ABI64)) || defined(JS_SIMULATOR_MIPS64)
+ #define USES_N64_ABI
++#elif (defined(_MIPS_SIM) && (_MIPS_SIM == _ABIN32))
++#define USES_N32_ABI
+ #else
+ #error "Unsupported ABI"
+ #endif
+@@ -91,7 +93,7 @@ class Registers
+ ta1 = t5,
+ ta2 = t6,
+ ta3 = t7,
+-#elif defined(USES_N64_ABI)
++#elif defined(USES_N64_ABI) || defined(USES_N32_ABI)
+ a4 = r8,
+ a5 = r9,
+ a6 = r10,
+diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
+index dfc7cf8..27f83ab 100644
+--- a/python/mozbuild/mozbuild/configure/constants.py
++++ b/python/mozbuild/mozbuild/configure/constants.py
+@@ -83,8 +83,8 @@ CPU_preprocessor_checks = OrderedDict((
+ ('hppa', '__hppa__'),
+ ('sparc64', '__sparc__ && __arch64__'),
+ ('sparc', '__sparc__'),
+- ('mips64', '__mips64'),
+ ('mips32', '__mips__'),
++ ('mips64', '__mips64'),
+ ))
+
+ assert sorted(CPU_preprocessor_checks.keys()) == sorted(CPU.POSSIBLE_VALUES)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
index bc141d9..c111ea5 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
@@ -3,33 +3,31 @@
Date: Thu, 6 Jun 2013 18:36:01 +0200
Subject: [PATCH] js.pc.in: do not include RequiredDefines.h for depending
packages
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
in our cross environment the would fail with:
| cc1: fatal error: /usr/include/js-17.0/js/RequiredDefines.h: No such file or directory
and currently it only defines __STDC_LIMIT_MACROS
-
Upstream-Status: Inappropriate [embedded specific]
-
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- js.pc.in | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-diff --git a/js.pc.in b/js.pc.in
-index 13d761d..a95a7bd 100644
---- a/js.pc.in
-+++ b/js.pc.in
+Rebase to 52.8.1
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ js/src/js.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/js.pc.in b/js/src/js.pc.in
+index 2eae393..c2dea62 100644
+--- a/js/src/js.pc.in
++++ b/js/src/js.pc.in
@@ -8,4 +8,4 @@ Description: The Mozilla library for JavaScript
Version: @MOZILLA_VERSION@
- Requires.private: @NSPR_PKGCONF_CHECK@
- Libs: -L${libdir} -l@LIBRARY_NAME@
--Cflags: -include ${includedir}/@MODULE@/js/RequiredDefines.h -I${includedir}/@MODULE@
-+Cflags: -I${includedir}/@MODULE@
+ @PKGCONF_REQUIRES_PRIVATE@
+ Libs: -L${libdir} -l@JS_LIBRARY_NAME@
+-Cflags: -include ${includedir}/@JS_LIBRARY_NAME@/js/RequiredDefines.h -I${includedir}/@JS_LIBRARY_NAME@
++Cflags: -I${includedir}/@JS_LIBRARY_NAME@
--
-1.7.6.5
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch
new file mode 100644
index 0000000..477f73a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch
@@ -0,0 +1,27 @@
+From 20b639b7364f9953fdacb058f9ba800bcbf029b4 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 2 Aug 2018 09:40:48 +0800
+Subject: [PATCH] mozjs: fix coredump caused by getenv
+
+Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1480315]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ mozglue/misc/TimeStamp.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mozglue/misc/TimeStamp.cpp b/mozglue/misc/TimeStamp.cpp
+index 932b75c..7a4d71b 100644
+--- a/mozglue/misc/TimeStamp.cpp
++++ b/mozglue/misc/TimeStamp.cpp
+@@ -11,6 +11,7 @@
+ #include "mozilla/TimeStamp.h"
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+
+ namespace mozilla {
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch
deleted file mode 100644
index de72d4f..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From da3929a96d9c74e11bf37d128890e18fcb745365 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Mon, 26 Jan 2015 08:53:19 +0900
-Subject: [PATCH] mozjs17.0.0: fix the compile bug of powerpc
-
-To fix the bug as following
-
-error: cannot convert '__va_list_tag**' to '__va_list_tag (*)[1]' for
-argument '5' to 'JSBool TryArgumentFormatter(JSContext*, const char**,
-JSBool, jsval**, __va_list_tag (*)[1])'
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- jscpucfg.h | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/jscpucfg.h b/jscpucfg.h
-index dfb1c14..8683491 100644
---- a/jscpucfg.h
-+++ b/jscpucfg.h
-@@ -47,6 +47,12 @@
- #elif defined(JS_HAVE_ENDIAN_H)
- # include <endian.h>
-
-+#if defined(_POWER) || defined(__powerpc__) || \
-+ defined(__ppc__)
-+# define HAVE_VA_LIST_AS_ARRAY 1
-+# endif
-+
-+
- # if defined(__BYTE_ORDER)
- # if __BYTE_ORDER == __LITTLE_ENDIAN
- # define IS_LITTLE_ENDIAN 1
---
-1.8.4.2
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch
deleted file mode 100644
index fa413ea..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch
+++ /dev/null
@@ -1,3238 +0,0 @@
-From 6440b4901c6f4bcc69686ff10806e311cc5a927b Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Tue, 3 Mar 2015 19:12:17 +0800
-Subject: [PATCH] regenerate configure with autoconf-2.13
-
-Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-Upstream-status: Inappropriate [generated file]
-
----
- js/src/configure | 838 ++++++++++++++++++++++++++-----------------------------
- 1 file changed, 389 insertions(+), 449 deletions(-)
-
-diff --git a/js/src/configure b/js/src/configure
-index cb6b41b..b05298f 100755
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -5757,6 +5757,10 @@ arm*)
- CPU_ARCH=arm
- ;;
-
-+aarch64*)
-+ CPU_ARCH=aarch64
-+ ;;
-+
- mips|mipsel)
- CPU_ARCH="mips"
- ;;
-@@ -5893,14 +5897,14 @@ no)
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$arch_flag"
- cat > conftest.$ac_ext <<EOF
--#line 5897 "configure"
-+#line 5901 "configure"
- #include "confdefs.h"
-
- int main() {
- return sizeof(__thumb2__);
- ; return 0; }
- EOF
--if { (eval echo configure:5904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:5908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- MOZ_THUMB2=1
- else
-@@ -5972,16 +5976,16 @@ if test -n "$all_flags"; then
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$all_flags"
- echo $ac_n "checking whether the chosen combination of compiler flags ($all_flags) works""... $ac_c" 1>&6
--echo "configure:5976: checking whether the chosen combination of compiler flags ($all_flags) works" >&5
-+echo "configure:5980: checking whether the chosen combination of compiler flags ($all_flags) works" >&5
- cat > conftest.$ac_ext <<EOF
--#line 5978 "configure"
-+#line 5982 "configure"
- #include "confdefs.h"
-
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:5985: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:5989: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6
- else
-@@ -6004,18 +6008,18 @@ fi
-
- if test "$CPU_ARCH" = "arm"; then
- echo $ac_n "checking for ARM SIMD support in compiler""... $ac_c" 1>&6
--echo "configure:6008: checking for ARM SIMD support in compiler" >&5
-+echo "configure:6012: checking for ARM SIMD support in compiler" >&5
- # We try to link so that this also fails when
- # building with LTO.
- cat > conftest.$ac_ext <<EOF
--#line 6012 "configure"
-+#line 6016 "configure"
- #include "confdefs.h"
-
- int main() {
- asm("uqadd8 r1, r1, r2");
- ; return 0; }
- EOF
--if { (eval echo configure:6019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:6023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- result="yes"
- else
-@@ -6038,18 +6042,18 @@ EOF
- fi
-
- echo $ac_n "checking for ARM NEON support in compiler""... $ac_c" 1>&6
--echo "configure:6042: checking for ARM NEON support in compiler" >&5
-+echo "configure:6046: checking for ARM NEON support in compiler" >&5
- # We try to link so that this also fails when
- # building with LTO.
- cat > conftest.$ac_ext <<EOF
--#line 6046 "configure"
-+#line 6050 "configure"
- #include "confdefs.h"
-
- int main() {
- asm(".fpu neon\n vadd.i8 d0, d0, d0");
- ; return 0; }
- EOF
--if { (eval echo configure:6053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:6057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- result="yes"
- else
-@@ -6094,7 +6098,7 @@ configure_static_assert_macros='
- '
-
- echo $ac_n "checking that static assertion macros used in autoconf tests work""... $ac_c" 1>&6
--echo "configure:6098: checking that static assertion macros used in autoconf tests work" >&5
-+echo "configure:6102: checking that static assertion macros used in autoconf tests work" >&5
- if eval "test \"`echo '$''{'ac_cv_static_assertion_macros_work'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6108,14 +6112,14 @@ cross_compiling=$ac_cv_prog_cc_cross
-
- ac_cv_static_assertion_macros_work="yes"
- cat > conftest.$ac_ext <<EOF
--#line 6112 "configure"
-+#line 6116 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(1)
- ; return 0; }
- EOF
--if { (eval echo configure:6119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
- else
- echo "configure: failed program was:" >&5
-@@ -6125,14 +6129,14 @@ else
- fi
- rm -f conftest*
- cat > conftest.$ac_ext <<EOF
--#line 6129 "configure"
-+#line 6133 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(0)
- ; return 0; }
- EOF
--if { (eval echo configure:6136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_static_assertion_macros_work="no"
- else
-@@ -6148,14 +6152,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- cat > conftest.$ac_ext <<EOF
--#line 6152 "configure"
-+#line 6156 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(1)
- ; return 0; }
- EOF
--if { (eval echo configure:6159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
- else
- echo "configure: failed program was:" >&5
-@@ -6165,14 +6169,14 @@ else
- fi
- rm -f conftest*
- cat > conftest.$ac_ext <<EOF
--#line 6169 "configure"
-+#line 6173 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(0)
- ; return 0; }
- EOF
--if { (eval echo configure:6176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_static_assertion_macros_work="no"
- else
-@@ -6317,7 +6321,7 @@ if test "$GNU_CC"; then
- _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement"
-
- echo $ac_n "checking whether the C compiler supports -Werror=return-type""... $ac_c" 1>&6
--echo "configure:6321: checking whether the C compiler supports -Werror=return-type" >&5
-+echo "configure:6325: checking whether the C compiler supports -Werror=return-type" >&5
- if eval "test \"`echo '$''{'ac_c_has_werror_return_type'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6333,14 +6337,14 @@ cross_compiling=$ac_cv_prog_cc_cross
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Werror=return-type"
- cat > conftest.$ac_ext <<EOF
--#line 6337 "configure"
-+#line 6341 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_c_has_werror_return_type="yes"
- else
-@@ -6368,7 +6372,7 @@ echo "$ac_t""$ac_c_has_werror_return_type" 1>&6
-
-
- echo $ac_n "checking whether the C compiler supports -Wtype-limits""... $ac_c" 1>&6
--echo "configure:6372: checking whether the C compiler supports -Wtype-limits" >&5
-+echo "configure:6376: checking whether the C compiler supports -Wtype-limits" >&5
- if eval "test \"`echo '$''{'ac_c_has_wtype_limits'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6384,14 +6388,14 @@ cross_compiling=$ac_cv_prog_cc_cross
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Wtype-limits"
- cat > conftest.$ac_ext <<EOF
--#line 6388 "configure"
-+#line 6392 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_c_has_wtype_limits="yes"
- else
-@@ -6419,7 +6423,7 @@ echo "$ac_t""$ac_c_has_wtype_limits" 1>&6
-
-
- echo $ac_n "checking whether the C compiler supports -Wempty-body""... $ac_c" 1>&6
--echo "configure:6423: checking whether the C compiler supports -Wempty-body" >&5
-+echo "configure:6427: checking whether the C compiler supports -Wempty-body" >&5
- if eval "test \"`echo '$''{'ac_c_has_wempty_body'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6435,14 +6439,14 @@ cross_compiling=$ac_cv_prog_cc_cross
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Wempty-body"
- cat > conftest.$ac_ext <<EOF
--#line 6439 "configure"
-+#line 6443 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6450: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_c_has_wempty_body="yes"
- else
-@@ -6476,7 +6480,7 @@ echo "$ac_t""$ac_c_has_wempty_body" 1>&6
- _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-unused"
-
- echo $ac_n "checking whether the C compiler supports -Wno-overlength-strings""... $ac_c" 1>&6
--echo "configure:6480: checking whether the C compiler supports -Wno-overlength-strings" >&5
-+echo "configure:6484: checking whether the C compiler supports -Wno-overlength-strings" >&5
- if eval "test \"`echo '$''{'ac_c_has_wno_overlength_strings'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6492,14 +6496,14 @@ cross_compiling=$ac_cv_prog_cc_cross
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Woverlength-strings"
- cat > conftest.$ac_ext <<EOF
--#line 6496 "configure"
-+#line 6500 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6507: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_c_has_wno_overlength_strings="yes"
- else
-@@ -6580,7 +6584,7 @@ if test "$GNU_CXX"; then
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual"
-
- echo $ac_n "checking whether the C++ compiler supports -Werror=return-type""... $ac_c" 1>&6
--echo "configure:6584: checking whether the C++ compiler supports -Werror=return-type" >&5
-+echo "configure:6588: checking whether the C++ compiler supports -Werror=return-type" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_werror_return_type'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6596,14 +6600,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Werror=return-type"
- cat > conftest.$ac_ext <<EOF
--#line 6600 "configure"
-+#line 6604 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6607: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_werror_return_type="yes"
- else
-@@ -6631,7 +6635,7 @@ echo "$ac_t""$ac_cxx_has_werror_return_type" 1>&6
-
-
- echo $ac_n "checking whether the C++ compiler supports -Wtype-limits""... $ac_c" 1>&6
--echo "configure:6635: checking whether the C++ compiler supports -Wtype-limits" >&5
-+echo "configure:6639: checking whether the C++ compiler supports -Wtype-limits" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wtype_limits'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6647,14 +6651,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Wtype-limits"
- cat > conftest.$ac_ext <<EOF
--#line 6651 "configure"
-+#line 6655 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wtype_limits="yes"
- else
-@@ -6682,7 +6686,7 @@ echo "$ac_t""$ac_cxx_has_wtype_limits" 1>&6
-
-
- echo $ac_n "checking whether the C++ compiler supports -Wempty-body""... $ac_c" 1>&6
--echo "configure:6686: checking whether the C++ compiler supports -Wempty-body" >&5
-+echo "configure:6690: checking whether the C++ compiler supports -Wempty-body" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wempty_body'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6698,14 +6702,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Wempty-body"
- cat > conftest.$ac_ext <<EOF
--#line 6702 "configure"
-+#line 6706 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6713: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wempty_body="yes"
- else
-@@ -6741,7 +6745,7 @@ echo "$ac_t""$ac_cxx_has_wempty_body" 1>&6
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-ctor-dtor-privacy"
-
- echo $ac_n "checking whether the C++ compiler supports -Wno-overlength-strings""... $ac_c" 1>&6
--echo "configure:6745: checking whether the C++ compiler supports -Wno-overlength-strings" >&5
-+echo "configure:6749: checking whether the C++ compiler supports -Wno-overlength-strings" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wno_overlength_strings'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6757,14 +6761,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Woverlength-strings"
- cat > conftest.$ac_ext <<EOF
--#line 6761 "configure"
-+#line 6765 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wno_overlength_strings="yes"
- else
-@@ -6792,7 +6796,7 @@ echo "$ac_t""$ac_cxx_has_wno_overlength_strings" 1>&6
-
-
- echo $ac_n "checking whether the C++ compiler supports -Wno-invalid-offsetof""... $ac_c" 1>&6
--echo "configure:6796: checking whether the C++ compiler supports -Wno-invalid-offsetof" >&5
-+echo "configure:6800: checking whether the C++ compiler supports -Wno-invalid-offsetof" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wno_invalid_offsetof'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6808,14 +6812,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Winvalid-offsetof"
- cat > conftest.$ac_ext <<EOF
--#line 6812 "configure"
-+#line 6816 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wno_invalid_offsetof="yes"
- else
-@@ -6843,7 +6847,7 @@ echo "$ac_t""$ac_cxx_has_wno_invalid_offsetof" 1>&6
-
-
- echo $ac_n "checking whether the C++ compiler supports -Wno-variadic-macros""... $ac_c" 1>&6
--echo "configure:6847: checking whether the C++ compiler supports -Wno-variadic-macros" >&5
-+echo "configure:6851: checking whether the C++ compiler supports -Wno-variadic-macros" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wno_variadic_macros'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6859,14 +6863,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Wvariadic-macros"
- cat > conftest.$ac_ext <<EOF
--#line 6863 "configure"
-+#line 6867 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6874: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wno_variadic_macros="yes"
- else
-@@ -6918,7 +6922,7 @@ echo "$ac_t""$ac_cxx_has_wno_variadic_macros" 1>&6
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-c++0x-extensions"
-
- echo $ac_n "checking whether the C++ compiler supports -Wno-extended-offsetof""... $ac_c" 1>&6
--echo "configure:6922: checking whether the C++ compiler supports -Wno-extended-offsetof" >&5
-+echo "configure:6926: checking whether the C++ compiler supports -Wno-extended-offsetof" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wno_extended_offsetof'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6934,14 +6938,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Wextended-offsetof"
- cat > conftest.$ac_ext <<EOF
--#line 6938 "configure"
-+#line 6942 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wno_extended_offsetof="yes"
- else
-@@ -6979,7 +6983,7 @@ MKSHLIB_UNFORCE_ALL=
- if test "$COMPILE_ENVIRONMENT"; then
- if test "$GNU_CC"; then
- echo $ac_n "checking whether ld has archive extraction flags""... $ac_c" 1>&6
--echo "configure:6983: checking whether ld has archive extraction flags" >&5
-+echo "configure:6987: checking whether ld has archive extraction flags" >&5
- if eval "test \"`echo '$''{'ac_cv_mkshlib_force_and_unforce'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6996,14 +7000,14 @@ LOOP_INPUT
- LDFLAGS=$force
- LIBS=$unforce
- cat > conftest.$ac_ext <<EOF
--#line 7000 "configure"
-+#line 7004 "configure"
- #include "confdefs.h"
-
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:7007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:7011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_mkshlib_force_and_unforce=$line; break
- else
-@@ -7038,16 +7042,16 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
- cross_compiling=$ac_cv_prog_cc_cross
-
- echo $ac_n "checking for 64-bit OS""... $ac_c" 1>&6
--echo "configure:7042: checking for 64-bit OS" >&5
-+echo "configure:7046: checking for 64-bit OS" >&5
- cat > conftest.$ac_ext <<EOF
--#line 7044 "configure"
-+#line 7048 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)
- ; return 0; }
- EOF
--if { (eval echo configure:7051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:7055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- result="yes"
- else
-@@ -7170,7 +7174,7 @@ case "$host" in
- esac
-
- echo $ac_n "checking for Python version >= $PYTHON_VERSION but not 3.x""... $ac_c" 1>&6
--echo "configure:7174: checking for Python version >= $PYTHON_VERSION but not 3.x" >&5
-+echo "configure:7178: checking for Python version >= $PYTHON_VERSION but not 3.x" >&5
-
- $PYTHON -c "import sys; sys.exit(sys.version[:3] < sys.argv[1] or sys.version[:2] != '2.')" $PYTHON_VERSION
- _python_res=$?
-@@ -7181,7 +7185,7 @@ fi
- echo "$ac_t""yes" 1>&6
-
- echo $ac_n "checking for custom <stdint.h> implementation""... $ac_c" 1>&6
--echo "configure:7185: checking for custom <stdint.h> implementation" >&5
-+echo "configure:7189: checking for custom <stdint.h> implementation" >&5
- if test "$MOZ_CUSTOM_STDINT_H"; then
- cat >> confdefs.pytmp <<EOF
- (''' MOZ_CUSTOM_STDINT_H ''', r''' "$MOZ_CUSTOM_STDINT_H" ''')
-@@ -7249,9 +7253,9 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- echo $ac_n "checking for IBM XLC/C++ compiler version >= 9.0.0.7""... $ac_c" 1>&6
--echo "configure:7253: checking for IBM XLC/C++ compiler version >= 9.0.0.7" >&5
-+echo "configure:7257: checking for IBM XLC/C++ compiler version >= 9.0.0.7" >&5
- cat > conftest.$ac_ext <<EOF
--#line 7255 "configure"
-+#line 7259 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -7260,7 +7264,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:7264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:7268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _BAD_COMPILER=
- else
-@@ -7298,12 +7302,12 @@ cross_compiling=$ac_cv_prog_cc_cross
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:7302: checking for $ac_hdr" >&5
-+echo "configure:7306: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 7307 "configure"
-+#line 7311 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -7311,7 +7315,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:7315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:7319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -7394,17 +7398,17 @@ EOF
- # builds.
- _SAVE_LDFLAGS=$LDFLAGS
- echo $ac_n "checking for -framework ExceptionHandling""... $ac_c" 1>&6
--echo "configure:7398: checking for -framework ExceptionHandling" >&5
-+echo "configure:7402: checking for -framework ExceptionHandling" >&5
- LDFLAGS="$LDFLAGS -framework ExceptionHandling"
- cat > conftest.$ac_ext <<EOF
--#line 7401 "configure"
-+#line 7405 "configure"
- #include "confdefs.h"
-
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:7408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:7412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_framework_exceptionhandling="yes"
- else
-@@ -7426,18 +7430,18 @@ rm -f conftest*
- echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
- else
- echo $ac_n "checking for -dead_strip option to ld""... $ac_c" 1>&6
--echo "configure:7430: checking for -dead_strip option to ld" >&5
-+echo "configure:7434: checking for -dead_strip option to ld" >&5
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-dead_strip"
- cat > conftest.$ac_ext <<EOF
--#line 7434 "configure"
-+#line 7438 "configure"
- #include "confdefs.h"
-
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:7441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:7445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- _HAVE_DEAD_STRIP=1
- else
-@@ -7783,12 +7787,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:7787: checking for $ac_hdr" >&5
-+echo "configure:7791: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 7792 "configure"
-+#line 7796 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -7796,7 +7800,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:7800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:7804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -7989,19 +7993,19 @@ EOF
- _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
-
- echo $ac_n "checking for __declspec(dllexport)""... $ac_c" 1>&6
--echo "configure:7993: checking for __declspec(dllexport)" >&5
-+echo "configure:7997: checking for __declspec(dllexport)" >&5
- if eval "test \"`echo '$''{'ac_os2_declspec'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 7998 "configure"
-+#line 8002 "configure"
- #include "confdefs.h"
- __declspec(dllexport) void ac_os2_declspec(void) {}
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:8005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_os2_declspec="yes"
- else
-@@ -8054,14 +8058,14 @@ EOF
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 8058 "configure"
-+#line 8062 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int main() {
- printf("Hello World\n");
- ; return 0; }
- EOF
--if { (eval echo configure:8065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:8069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- :
- else
- echo "configure: failed program was:" >&5
-@@ -8089,7 +8093,7 @@ rm -f conftest*
- CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
- CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
- echo $ac_n "checking for Sun C++ compiler version >= 5.9""... $ac_c" 1>&6
--echo "configure:8093: checking for Sun C++ compiler version >= 5.9" >&5
-+echo "configure:8097: checking for Sun C++ compiler version >= 5.9" >&5
-
- ac_ext=C
- # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-@@ -8099,7 +8103,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- cat > conftest.$ac_ext <<EOF
--#line 8103 "configure"
-+#line 8107 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -8108,7 +8112,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:8112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _BAD_COMPILER=
- else
-@@ -8125,7 +8129,7 @@ rm -f conftest*
- _res="yes"
- fi
- cat > conftest.$ac_ext <<EOF
--#line 8129 "configure"
-+#line 8133 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -8134,7 +8138,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:8138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _ABOVE_SS12U1=
- else
-@@ -8535,7 +8539,7 @@ fi
-
- if test "$GNU_CC" -a "$GCC_USE_GNU_LD" -a -z "$MOZ_DISABLE_ICF"; then
- echo $ac_n "checking whether the linker supports Identical Code Folding""... $ac_c" 1>&6
--echo "configure:8539: checking whether the linker supports Identical Code Folding" >&5
-+echo "configure:8543: checking whether the linker supports Identical Code Folding" >&5
- if eval "test \"`echo '$''{'LD_SUPPORTS_ICF'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -8544,7 +8548,7 @@ else
- 'int main() {return foo() - bar();}' > conftest.${ac_ext}
- # If the linker supports ICF, foo and bar symbols will have
- # the same address
-- if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS -Wl,--icf=safe -ffunction-sections conftest.${ac_ext} $LIBS 1>&2'; { (eval echo configure:8548: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
-+ if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS -Wl,--icf=safe -ffunction-sections conftest.${ac_ext} $LIBS 1>&2'; { (eval echo configure:8552: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
- test -s conftest${ac_exeext} &&
- objdump -t conftest${ac_exeext} | awk '{a[$6] = $1} END {if (a["foo"] && (a["foo"] != a["bar"])) { exit 1 }}'; then
- LD_SUPPORTS_ICF=yes
-@@ -8559,14 +8563,14 @@ echo "$ac_t""$LD_SUPPORTS_ICF" 1>&6
- _SAVE_LDFLAGS="$LDFLAGS -Wl,--icf=safe"
- LDFLAGS="$LDFLAGS -Wl,--icf=safe -Wl,--print-icf-sections"
- cat > conftest.$ac_ext <<EOF
--#line 8563 "configure"
-+#line 8567 "configure"
- #include "confdefs.h"
-
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:8570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:8574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- LD_PRINT_ICF_SECTIONS=-Wl,--print-icf-sections
- else
-@@ -8584,15 +8588,15 @@ fi
-
- if test "$GNU_CC" -a "$GCC_USE_GNU_LD" -a -n "$MOZ_DEBUG_FLAGS"; then
- echo $ac_n "checking whether removing dead symbols breaks debugging""... $ac_c" 1>&6
--echo "configure:8588: checking whether removing dead symbols breaks debugging" >&5
-+echo "configure:8592: checking whether removing dead symbols breaks debugging" >&5
- if eval "test \"`echo '$''{'GC_SECTIONS_BREAKS_DEBUG_RANGES'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- echo 'int foo() {return 42;}' \
- 'int bar() {return 1;}' \
- 'int main() {return foo();}' > conftest.${ac_ext}
-- if { ac_try='${CC-cc} -o conftest.${ac_objext} $CFLAGS $MOZ_DEBUG_FLAGS -c conftest.${ac_ext} 1>&2'; { (eval echo configure:8595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
-- { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS $MOZ_DEBUG_FLAGS -Wl,--gc-sections conftest.${ac_objext} $LIBS 1>&2'; { (eval echo configure:8596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
-+ if { ac_try='${CC-cc} -o conftest.${ac_objext} $CFLAGS $MOZ_DEBUG_FLAGS -c conftest.${ac_ext} 1>&2'; { (eval echo configure:8599: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
-+ { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS $MOZ_DEBUG_FLAGS -Wl,--gc-sections conftest.${ac_objext} $LIBS 1>&2'; { (eval echo configure:8600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
- test -s conftest${ac_exeext} -a -s conftest.${ac_objext}; then
- if test "`$PYTHON "$_topsrcdir"/build/autoconf/check_debug_ranges.py conftest.${ac_objext} conftest.${ac_ext}`" = \
- "`$PYTHON "$_topsrcdir"/build/autoconf/check_debug_ranges.py conftest${ac_exeext} conftest.${ac_ext}`"; then
-@@ -8615,12 +8619,12 @@ fi
-
- if test -z "$SKIP_COMPILER_CHECKS"; then
- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
--echo "configure:8619: checking for ANSI C header files" >&5
-+echo "configure:8623: checking for ANSI C header files" >&5
- if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8624 "configure"
-+#line 8628 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- #include <stdarg.h>
-@@ -8628,7 +8632,7 @@ else
- #include <float.h>
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:8632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:8636: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
- rm -rf conftest*
-@@ -8645,7 +8649,7 @@ rm -f conftest*
- if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat > conftest.$ac_ext <<EOF
--#line 8649 "configure"
-+#line 8653 "configure"
- #include "confdefs.h"
- #include <string.h>
- EOF
-@@ -8663,7 +8667,7 @@ fi
- if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat > conftest.$ac_ext <<EOF
--#line 8667 "configure"
-+#line 8671 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- EOF
-@@ -8684,7 +8688,7 @@ if test "$cross_compiling" = yes; then
- :
- else
- cat > conftest.$ac_ext <<EOF
--#line 8688 "configure"
-+#line 8692 "configure"
- #include "confdefs.h"
- #include <ctype.h>
- #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-@@ -8695,7 +8699,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
- exit (0); }
-
- EOF
--if { (eval echo configure:8699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:8703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- :
- else
-@@ -8722,12 +8726,12 @@ EOF
- fi
-
- echo $ac_n "checking for working const""... $ac_c" 1>&6
--echo "configure:8726: checking for working const" >&5
-+echo "configure:8730: checking for working const" >&5
- if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8731 "configure"
-+#line 8735 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -8776,7 +8780,7 @@ ccp = (char const *const *) p;
-
- ; return 0; }
- EOF
--if { (eval echo configure:8780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_const=yes
- else
-@@ -8800,12 +8804,12 @@ EOF
- fi
-
- echo $ac_n "checking for mode_t""... $ac_c" 1>&6
--echo "configure:8804: checking for mode_t" >&5
-+echo "configure:8808: checking for mode_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8809 "configure"
-+#line 8813 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -8836,12 +8840,12 @@ EOF
- fi
-
- echo $ac_n "checking for off_t""... $ac_c" 1>&6
--echo "configure:8840: checking for off_t" >&5
-+echo "configure:8844: checking for off_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8845 "configure"
-+#line 8849 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -8872,12 +8876,12 @@ EOF
- fi
-
- echo $ac_n "checking for pid_t""... $ac_c" 1>&6
--echo "configure:8876: checking for pid_t" >&5
-+echo "configure:8880: checking for pid_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8881 "configure"
-+#line 8885 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -8908,12 +8912,12 @@ EOF
- fi
-
- echo $ac_n "checking for size_t""... $ac_c" 1>&6
--echo "configure:8912: checking for size_t" >&5
-+echo "configure:8916: checking for size_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8917 "configure"
-+#line 8921 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -8951,12 +8955,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- echo $ac_n "checking for __stdcall""... $ac_c" 1>&6
--echo "configure:8955: checking for __stdcall" >&5
-+echo "configure:8959: checking for __stdcall" >&5
- if eval "test \"`echo '$''{'ac_cv___stdcall'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8960 "configure"
-+#line 8964 "configure"
- #include "confdefs.h"
- template <typename Method> struct foo;
- template <> struct foo<void (*)()> {};
-@@ -8965,7 +8969,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:8969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv___stdcall=true
- else
-@@ -8997,12 +9001,12 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
- cross_compiling=$ac_cv_prog_cc_cross
-
- echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
--echo "configure:9001: checking for ssize_t" >&5
-+echo "configure:9005: checking for ssize_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9006 "configure"
-+#line 9010 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <sys/types.h>
-@@ -9010,7 +9014,7 @@ int main() {
- ssize_t foo = 0;
- ; return 0; }
- EOF
--if { (eval echo configure:9014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_type_ssize_t=true
- else
-@@ -9035,12 +9039,12 @@ else
- echo "$ac_t""no" 1>&6
- fi
- echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
--echo "configure:9039: checking for st_blksize in struct stat" >&5
-+echo "configure:9043: checking for st_blksize in struct stat" >&5
- if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9044 "configure"
-+#line 9048 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -9048,7 +9052,7 @@ int main() {
- struct stat s; s.st_blksize;
- ; return 0; }
- EOF
--if { (eval echo configure:9052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_struct_st_blksize=yes
- else
-@@ -9072,12 +9076,12 @@ EOF
- fi
-
- echo $ac_n "checking for siginfo_t""... $ac_c" 1>&6
--echo "configure:9076: checking for siginfo_t" >&5
-+echo "configure:9080: checking for siginfo_t" >&5
- if eval "test \"`echo '$''{'ac_cv_siginfo_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9081 "configure"
-+#line 9085 "configure"
- #include "confdefs.h"
- #define _POSIX_C_SOURCE 199506L
- #include <signal.h>
-@@ -9085,7 +9089,7 @@ int main() {
- siginfo_t* info;
- ; return 0; }
- EOF
--if { (eval echo configure:9089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_siginfo_t=true
- else
-@@ -9111,72 +9115,8 @@ else
- fi
-
-
--echo $ac_n "checking for the size of void*""... $ac_c" 1>&6
--echo "configure:9116: checking for the size of void*" >&5
--if eval "test \"`echo '$''{'moz_cv_size_of_JS_BYTES_PER_WORD'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
--
-- moz_cv_size_of_JS_BYTES_PER_WORD=
-- for size in 4 8; do
-- cat > conftest.$ac_ext <<EOF
--#line 9124 "configure"
--#include "confdefs.h"
--
--int main() {
--
-- int a[sizeof (void*) == $size ? 1 : -1];
-- return 0;
--
--; return 0; }
--EOF
--if { (eval echo configure:9134: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-- rm -rf conftest*
-- moz_cv_size_of_JS_BYTES_PER_WORD=$size; break
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
--fi
--rm -f conftest*
-- done
-- if test ! "$moz_cv_size_of_JS_BYTES_PER_WORD"; then
-- { echo "configure: error: No size found for void*" 1>&2; exit 1; }
-- fi
--
--fi
--
--echo "$ac_t""$moz_cv_size_of_JS_BYTES_PER_WORD" 1>&6
--cat >> confdefs.pytmp <<EOF
-- (''' JS_BYTES_PER_WORD ''', r''' $moz_cv_size_of_JS_BYTES_PER_WORD ''')
--EOF
--cat >> confdefs.h <<EOF
--#define JS_BYTES_PER_WORD $moz_cv_size_of_JS_BYTES_PER_WORD
--EOF
--
--
--if test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "4"; then
-- cat >> confdefs.pytmp <<\EOF
-- (''' JS_BITS_PER_WORD_LOG2 ''', r''' 5 ''')
--EOF
--cat >> confdefs.h <<\EOF
--#define JS_BITS_PER_WORD_LOG2 5
--EOF
--
--elif test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "8"; then
-- cat >> confdefs.pytmp <<\EOF
-- (''' JS_BITS_PER_WORD_LOG2 ''', r''' 6 ''')
--EOF
--cat >> confdefs.h <<\EOF
--#define JS_BITS_PER_WORD_LOG2 6
--EOF
--
--else
-- { echo "configure: error: Unexpected JS_BYTES_PER_WORD" 1>&2; exit 1; }
--fi
--
--
- echo $ac_n "checking for the alignment of void*""... $ac_c" 1>&6
--echo "configure:9180: checking for the alignment of void*" >&5
-+echo "configure:9120: checking for the alignment of void*" >&5
- if eval "test \"`echo '$''{'moz_cv_align_of_JS_ALIGN_OF_POINTER'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9184,7 +9124,7 @@ else
- moz_cv_align_of_JS_ALIGN_OF_POINTER=
- for align in 2 4 8 16; do
- cat > conftest.$ac_ext <<EOF
--#line 9188 "configure"
-+#line 9128 "configure"
- #include "confdefs.h"
-
- #include <stddef.h>
-@@ -9197,7 +9137,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- moz_cv_align_of_JS_ALIGN_OF_POINTER=$align; break
- else
-@@ -9223,7 +9163,7 @@ EOF
-
-
- echo $ac_n "checking for the size of double""... $ac_c" 1>&6
--echo "configure:9227: checking for the size of double" >&5
-+echo "configure:9167: checking for the size of double" >&5
- if eval "test \"`echo '$''{'moz_cv_size_of_JS_BYTES_PER_DOUBLE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9231,7 +9171,7 @@ else
- moz_cv_size_of_JS_BYTES_PER_DOUBLE=
- for size in 6 8 10 12 14; do
- cat > conftest.$ac_ext <<EOF
--#line 9235 "configure"
-+#line 9175 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -9241,7 +9181,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- moz_cv_size_of_JS_BYTES_PER_DOUBLE=$size; break
- else
-@@ -9270,12 +9210,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:9274: checking for $ac_hdr" >&5
-+echo "configure:9214: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9279 "configure"
-+#line 9219 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -9283,7 +9223,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -9326,12 +9266,12 @@ fi
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:9330: checking for $ac_hdr" >&5
-+echo "configure:9270: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9335 "configure"
-+#line 9275 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <$ac_hdr>
-@@ -9339,7 +9279,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -9382,12 +9322,12 @@ fi
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:9386: checking for $ac_hdr" >&5
-+echo "configure:9326: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9391 "configure"
-+#line 9331 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -9395,7 +9335,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -9435,12 +9375,12 @@ EOF
- fi
-
- echo $ac_n "checking for uint""... $ac_c" 1>&6
--echo "configure:9439: checking for uint" >&5
-+echo "configure:9379: checking for uint" >&5
- if eval "test \"`echo '$''{'ac_cv_uint'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9444 "configure"
-+#line 9384 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <sys/types.h>
-@@ -9448,7 +9388,7 @@ int main() {
- uint foo = 0;
- ; return 0; }
- EOF
--if { (eval echo configure:9452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_uint=true
- else
-@@ -9473,12 +9413,12 @@ else
- echo "$ac_t""no" 1>&6
- fi
- echo $ac_n "checking for uint_t""... $ac_c" 1>&6
--echo "configure:9477: checking for uint_t" >&5
-+echo "configure:9417: checking for uint_t" >&5
- if eval "test \"`echo '$''{'ac_cv_uint_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9482 "configure"
-+#line 9422 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <sys/types.h>
-@@ -9486,7 +9426,7 @@ int main() {
- uint_t foo = 0;
- ; return 0; }
- EOF
--if { (eval echo configure:9490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_uint_t=true
- else
-@@ -9520,12 +9460,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
-
-
- echo $ac_n "checking for uname.domainname""... $ac_c" 1>&6
--echo "configure:9524: checking for uname.domainname" >&5
-+echo "configure:9464: checking for uname.domainname" >&5
- if eval "test \"`echo '$''{'ac_cv_have_uname_domainname_field'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9529 "configure"
-+#line 9469 "configure"
- #include "confdefs.h"
- #include <sys/utsname.h>
- int main() {
-@@ -9533,7 +9473,7 @@ int main() {
- (void)uname(res); if (res != 0) { domain = res->domainname; }
- ; return 0; }
- EOF
--if { (eval echo configure:9537: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_have_uname_domainname_field=true
- else
-@@ -9560,12 +9500,12 @@ else
- fi
-
- echo $ac_n "checking for uname.__domainname""... $ac_c" 1>&6
--echo "configure:9564: checking for uname.__domainname" >&5
-+echo "configure:9504: checking for uname.__domainname" >&5
- if eval "test \"`echo '$''{'ac_cv_have_uname_us_domainname_field'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9569 "configure"
-+#line 9509 "configure"
- #include "confdefs.h"
- #include <sys/utsname.h>
- int main() {
-@@ -9573,7 +9513,7 @@ int main() {
- (void)uname(res); if (res != 0) { domain = res->__domainname; }
- ; return 0; }
- EOF
--if { (eval echo configure:9577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9517: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_have_uname_us_domainname_field=true
- else
-@@ -9609,7 +9549,7 @@ cross_compiling=$ac_cv_prog_cc_cross
-
- if test "$GNU_CC"; then
- echo $ac_n "checking for visibility(hidden) attribute""... $ac_c" 1>&6
--echo "configure:9613: checking for visibility(hidden) attribute" >&5
-+echo "configure:9553: checking for visibility(hidden) attribute" >&5
- if eval "test \"`echo '$''{'ac_cv_visibility_hidden'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9637,7 +9577,7 @@ EOF
-
-
- echo $ac_n "checking for visibility(default) attribute""... $ac_c" 1>&6
--echo "configure:9641: checking for visibility(default) attribute" >&5
-+echo "configure:9581: checking for visibility(default) attribute" >&5
- if eval "test \"`echo '$''{'ac_cv_visibility_default'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9665,7 +9605,7 @@ EOF
-
-
- echo $ac_n "checking for visibility pragma support""... $ac_c" 1>&6
--echo "configure:9669: checking for visibility pragma support" >&5
-+echo "configure:9609: checking for visibility pragma support" >&5
- if eval "test \"`echo '$''{'ac_cv_visibility_pragma'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9690,7 +9630,7 @@ fi
- echo "$ac_t""$ac_cv_visibility_pragma" 1>&6
- if test "$ac_cv_visibility_pragma" = "yes"; then
- echo $ac_n "checking For gcc visibility bug with class-level attributes (GCC bug 26905)""... $ac_c" 1>&6
--echo "configure:9694: checking For gcc visibility bug with class-level attributes (GCC bug 26905)" >&5
-+echo "configure:9634: checking For gcc visibility bug with class-level attributes (GCC bug 26905)" >&5
- if eval "test \"`echo '$''{'ac_cv_have_visibility_class_bug'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9718,7 +9658,7 @@ fi
- echo "$ac_t""$ac_cv_have_visibility_class_bug" 1>&6
-
- echo $ac_n "checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)""... $ac_c" 1>&6
--echo "configure:9722: checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)" >&5
-+echo "configure:9662: checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)" >&5
- if eval "test \"`echo '$''{'ac_cv_have_visibility_builtin_bug'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9770,7 +9710,7 @@ fi # Sun Studio on Solaris
- if test "$GNU_CC"; then
-
- echo $ac_n "checking for gcc PR49911""... $ac_c" 1>&6
--echo "configure:9774: checking for gcc PR49911" >&5
-+echo "configure:9714: checking for gcc PR49911" >&5
- ac_have_gcc_pr49911="no"
-
- ac_ext=C
-@@ -9787,7 +9727,7 @@ if test "$cross_compiling" = yes; then
- true
- else
- cat > conftest.$ac_ext <<EOF
--#line 9791 "configure"
-+#line 9731 "configure"
- #include "confdefs.h"
-
- extern "C" void abort(void);
-@@ -9828,7 +9768,7 @@ int main(void) {
- }
-
- EOF
--if { (eval echo configure:9832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:9772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- true
- else
-@@ -9865,12 +9805,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
--echo "configure:9869: checking for $ac_hdr that defines DIR" >&5
-+echo "configure:9809: checking for $ac_hdr that defines DIR" >&5
- if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9874 "configure"
-+#line 9814 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <$ac_hdr>
-@@ -9878,7 +9818,7 @@ int main() {
- DIR *dirp = 0;
- ; return 0; }
- EOF
--if { (eval echo configure:9882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_dirent_$ac_safe=yes"
- else
-@@ -9906,7 +9846,7 @@ done
- # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
- if test $ac_header_dirent = dirent.h; then
- echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
--echo "configure:9910: checking for opendir in -ldir" >&5
-+echo "configure:9850: checking for opendir in -ldir" >&5
- ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -9914,7 +9854,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-ldir $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 9918 "configure"
-+#line 9858 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -9925,7 +9865,7 @@ int main() {
- opendir()
- ; return 0; }
- EOF
--if { (eval echo configure:9929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:9869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -9947,7 +9887,7 @@ fi
-
- else
- echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
--echo "configure:9951: checking for opendir in -lx" >&5
-+echo "configure:9891: checking for opendir in -lx" >&5
- ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -9955,7 +9895,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lx $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 9959 "configure"
-+#line 9899 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -9966,7 +9906,7 @@ int main() {
- opendir()
- ; return 0; }
- EOF
--if { (eval echo configure:9970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:9910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10000,12 +9940,12 @@ esac
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10004: checking for $ac_hdr" >&5
-+echo "configure:9944: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10009 "configure"
-+#line 9949 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10013,7 +9953,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10048,12 +9988,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10052: checking for $ac_hdr" >&5
-+echo "configure:9992: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10057 "configure"
-+#line 9997 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10061,7 +10001,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10095,12 +10035,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10099: checking for $ac_hdr" >&5
-+echo "configure:10039: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10104 "configure"
-+#line 10044 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10108,7 +10048,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10141,12 +10081,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10145: checking for $ac_hdr" >&5
-+echo "configure:10085: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10150 "configure"
-+#line 10090 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10154,7 +10094,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10188,12 +10128,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10192: checking for $ac_hdr" >&5
-+echo "configure:10132: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10197 "configure"
-+#line 10137 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10201,7 +10141,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10241,12 +10181,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
- NEW_H=new.h
- ac_safe=`echo "new" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for new""... $ac_c" 1>&6
--echo "configure:10245: checking for new" >&5
-+echo "configure:10185: checking for new" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10250 "configure"
-+#line 10190 "configure"
- #include "confdefs.h"
-
- #include <new>
-@@ -10254,7 +10194,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10298,12 +10238,12 @@ fi
- if test "x$enable_dtrace" = "xyes"; then
- ac_safe=`echo "sys/sdt.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for sys/sdt.h""... $ac_c" 1>&6
--echo "configure:10302: checking for sys/sdt.h" >&5
-+echo "configure:10242: checking for sys/sdt.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10307 "configure"
-+#line 10247 "configure"
- #include "confdefs.h"
-
- #include <sys/sdt.h>
-@@ -10311,7 +10251,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10353,12 +10293,12 @@ case $target in
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10357: checking for $ac_hdr" >&5
-+echo "configure:10297: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10362 "configure"
-+#line 10302 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10366,7 +10306,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10418,12 +10358,12 @@ CFLAGS="$CFLAGS $LINUX_HEADERS_INCLUDES"
-
- ac_safe=`echo "linux/perf_event.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for linux/perf_event.h""... $ac_c" 1>&6
--echo "configure:10422: checking for linux/perf_event.h" >&5
-+echo "configure:10362: checking for linux/perf_event.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10427 "configure"
-+#line 10367 "configure"
- #include "confdefs.h"
-
- #include <linux/perf_event.h>
-@@ -10431,7 +10371,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10375: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10446,19 +10386,19 @@ fi
- if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- echo $ac_n "checking for perf_event_open system call""... $ac_c" 1>&6
--echo "configure:10450: checking for perf_event_open system call" >&5
-+echo "configure:10390: checking for perf_event_open system call" >&5
- if eval "test \"`echo '$''{'ac_cv_perf_event_open'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10455 "configure"
-+#line 10395 "configure"
- #include "confdefs.h"
- #include <asm/unistd.h>
- int main() {
- return sizeof(__NR_perf_event_open);
- ; return 0; }
- EOF
--if { (eval echo configure:10462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_perf_event_open=yes
- else
-@@ -10494,7 +10434,7 @@ case $target in
- ;;
- *)
- echo $ac_n "checking for gethostbyname_r in -lc_r""... $ac_c" 1>&6
--echo "configure:10498: checking for gethostbyname_r in -lc_r" >&5
-+echo "configure:10438: checking for gethostbyname_r in -lc_r" >&5
- ac_lib_var=`echo c_r'_'gethostbyname_r | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -10502,7 +10442,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lc_r $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10506 "configure"
-+#line 10446 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10513,7 +10453,7 @@ int main() {
- gethostbyname_r()
- ; return 0; }
- EOF
--if { (eval echo configure:10517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10554,14 +10494,14 @@ case $target in
- *)
-
- echo $ac_n "checking for library containing dlopen""... $ac_c" 1>&6
--echo "configure:10558: checking for library containing dlopen" >&5
-+echo "configure:10498: checking for library containing dlopen" >&5
- if eval "test \"`echo '$''{'ac_cv_search_dlopen'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- ac_func_search_save_LIBS="$LIBS"
- ac_cv_search_dlopen="no"
- cat > conftest.$ac_ext <<EOF
--#line 10565 "configure"
-+#line 10505 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10572,7 +10512,7 @@ int main() {
- dlopen()
- ; return 0; }
- EOF
--if { (eval echo configure:10576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_search_dlopen="none required"
- else
-@@ -10583,7 +10523,7 @@ rm -f conftest*
- test "$ac_cv_search_dlopen" = "no" && for i in dl; do
- LIBS="-l$i $ac_func_search_save_LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10587 "configure"
-+#line 10527 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10594,7 +10534,7 @@ int main() {
- dlopen()
- ; return 0; }
- EOF
--if { (eval echo configure:10598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_search_dlopen="-l$i"
- break
-@@ -10612,12 +10552,12 @@ if test "$ac_cv_search_dlopen" != "no"; then
- test "$ac_cv_search_dlopen" = "none required" || LIBS="$ac_cv_search_dlopen $LIBS"
- ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
--echo "configure:10616: checking for dlfcn.h" >&5
-+echo "configure:10556: checking for dlfcn.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10621 "configure"
-+#line 10561 "configure"
- #include "confdefs.h"
-
- #include <dlfcn.h>
-@@ -10625,7 +10565,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10662,12 +10602,12 @@ CFLAGS="$CFLAGS -D_GNU_SOURCE"
- for ac_func in dladdr
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:10666: checking for $ac_func" >&5
-+echo "configure:10606: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10671 "configure"
-+#line 10611 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -10690,7 +10630,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:10694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -10724,7 +10664,7 @@ if test ! "$GNU_CXX"; then
- case $target in
- *-aix*)
- echo $ac_n "checking for demangle in -lC_r""... $ac_c" 1>&6
--echo "configure:10728: checking for demangle in -lC_r" >&5
-+echo "configure:10668: checking for demangle in -lC_r" >&5
- ac_lib_var=`echo C_r'_'demangle | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -10732,7 +10672,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lC_r $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10736 "configure"
-+#line 10676 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10743,7 +10683,7 @@ int main() {
- demangle()
- ; return 0; }
- EOF
--if { (eval echo configure:10747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10776,7 +10716,7 @@ fi
- ;;
- *)
- echo $ac_n "checking for demangle in -lC""... $ac_c" 1>&6
--echo "configure:10780: checking for demangle in -lC" >&5
-+echo "configure:10720: checking for demangle in -lC" >&5
- ac_lib_var=`echo C'_'demangle | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -10784,7 +10724,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lC $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10788 "configure"
-+#line 10728 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10795,7 +10735,7 @@ int main() {
- demangle()
- ; return 0; }
- EOF
--if { (eval echo configure:10799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10834,7 +10774,7 @@ case $target in
- ;;
- *)
- echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
--echo "configure:10838: checking for socket in -lsocket" >&5
-+echo "configure:10778: checking for socket in -lsocket" >&5
- ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -10842,7 +10782,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lsocket $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10846 "configure"
-+#line 10786 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10853,7 +10793,7 @@ int main() {
- socket()
- ; return 0; }
- EOF
--if { (eval echo configure:10857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10892,7 +10832,7 @@ darwin*)
- *)
-
- echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
--echo "configure:10896: checking for pthread_create in -lpthreads" >&5
-+echo "configure:10836: checking for pthread_create in -lpthreads" >&5
- echo "
- #include <pthread.h>
- #include <stdlib.h>
-@@ -10915,7 +10855,7 @@ echo "
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
--echo "configure:10919: checking for pthread_create in -lpthread" >&5
-+echo "configure:10859: checking for pthread_create in -lpthread" >&5
- echo "
- #include <pthread.h>
- #include <stdlib.h>
-@@ -10938,7 +10878,7 @@ echo "
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6
--echo "configure:10942: checking for pthread_create in -lc_r" >&5
-+echo "configure:10882: checking for pthread_create in -lc_r" >&5
- echo "
- #include <pthread.h>
- #include <stdlib.h>
-@@ -10961,7 +10901,7 @@ echo "
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6
--echo "configure:10965: checking for pthread_create in -lc" >&5
-+echo "configure:10905: checking for pthread_create in -lc" >&5
- echo "
- #include <pthread.h>
- #include <stdlib.h>
-@@ -11020,7 +10960,7 @@ then
- rm -f conftest*
- ac_cv_have_dash_pthread=no
- echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6
--echo "configure:11024: checking whether ${CC-cc} accepts -pthread" >&5
-+echo "configure:10964: checking whether ${CC-cc} accepts -pthread" >&5
- echo 'int main() { return 0; }' | cat > conftest.c
- ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
- if test $? -eq 0; then
-@@ -11043,7 +10983,7 @@ echo "configure:11024: checking whether ${CC-cc} accepts -pthread" >&5
- ac_cv_have_dash_pthreads=no
- if test "$ac_cv_have_dash_pthread" = "no"; then
- echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6
--echo "configure:11047: checking whether ${CC-cc} accepts -pthreads" >&5
-+echo "configure:10987: checking whether ${CC-cc} accepts -pthreads" >&5
- echo 'int main() { return 0; }' | cat > conftest.c
- ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
- if test $? -eq 0; then
-@@ -11148,13 +11088,13 @@ fi
-
- if test $ac_cv_prog_gcc = yes; then
- echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
--echo "configure:11152: checking whether ${CC-cc} needs -traditional" >&5
-+echo "configure:11092: checking whether ${CC-cc} needs -traditional" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- ac_pattern="Autoconf.*'x'"
- cat > conftest.$ac_ext <<EOF
--#line 11158 "configure"
-+#line 11098 "configure"
- #include "confdefs.h"
- #include <sgtty.h>
- Autoconf TIOCGETP
-@@ -11172,7 +11112,7 @@ rm -f conftest*
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat > conftest.$ac_ext <<EOF
--#line 11176 "configure"
-+#line 11116 "configure"
- #include "confdefs.h"
- #include <termio.h>
- Autoconf TCGETA
-@@ -11194,7 +11134,7 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
- fi
-
- echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
--echo "configure:11198: checking for 8-bit clean memcmp" >&5
-+echo "configure:11138: checking for 8-bit clean memcmp" >&5
- if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11202,7 +11142,7 @@ else
- ac_cv_func_memcmp_clean=no
- else
- cat > conftest.$ac_ext <<EOF
--#line 11206 "configure"
-+#line 11146 "configure"
- #include "confdefs.h"
-
- main()
-@@ -11212,7 +11152,7 @@ main()
- }
-
- EOF
--if { (eval echo configure:11216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_func_memcmp_clean=yes
- else
-@@ -11234,12 +11174,12 @@ for ac_func in fchmod flockfile getc_unlocked _getc_nolock getpagesize \
- stat64 statvfs statvfs64 strerror strtok_r truncate64
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:11238: checking for $ac_func" >&5
-+echo "configure:11178: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11243 "configure"
-+#line 11183 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -11262,7 +11202,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:11266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -11291,14 +11231,14 @@ done
-
-
- cat > conftest.$ac_ext <<EOF
--#line 11295 "configure"
-+#line 11235 "configure"
- #include "confdefs.h"
- #include <windows.h>
- int main() {
- SYSTEMTIME st;FILETIME ft;SystemTimeToFileTime(&st,&ft);
- ; return 0; }
- EOF
--if { (eval echo configure:11302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_systemtimetofiletime="yes"
- else
-@@ -11318,14 +11258,14 @@ EOF
-
- fi
- cat > conftest.$ac_ext <<EOF
--#line 11322 "configure"
-+#line 11262 "configure"
- #include "confdefs.h"
- #include <windows.h>
- int main() {
- FILETIME ft;GetSystemTimeAsFileTime(&ft);
- ; return 0; }
- EOF
--if { (eval echo configure:11329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_getsystemtimeasfiletime="yes"
- else
-@@ -11355,19 +11295,19 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- echo $ac_n "checking for wcrtomb""... $ac_c" 1>&6
--echo "configure:11359: checking for wcrtomb" >&5
-+echo "configure:11299: checking for wcrtomb" >&5
- if eval "test \"`echo '$''{'ac_cv_have_wcrtomb'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11364 "configure"
-+#line 11304 "configure"
- #include "confdefs.h"
- #include <wchar.h>
- int main() {
- mbstate_t ps={0};wcrtomb(0,'f',&ps);
- ; return 0; }
- EOF
--if { (eval echo configure:11371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_wcrtomb="yes"
- else
-@@ -11390,19 +11330,19 @@ EOF
-
- fi
- echo $ac_n "checking for mbrtowc""... $ac_c" 1>&6
--echo "configure:11394: checking for mbrtowc" >&5
-+echo "configure:11334: checking for mbrtowc" >&5
- if eval "test \"`echo '$''{'ac_cv_have_mbrtowc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11399 "configure"
-+#line 11339 "configure"
- #include "confdefs.h"
- #include <wchar.h>
- int main() {
- mbstate_t ps={0};mbrtowc(0,0,0,&ps);
- ; return 0; }
- EOF
--if { (eval echo configure:11406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_mbrtowc="yes"
- else
-@@ -11434,12 +11374,12 @@ cross_compiling=$ac_cv_prog_cc_cross
- fi
-
- echo $ac_n "checking for res_ninit()""... $ac_c" 1>&6
--echo "configure:11438: checking for res_ninit()" >&5
-+echo "configure:11378: checking for res_ninit()" >&5
- if eval "test \"`echo '$''{'ac_cv_func_res_ninit'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11443 "configure"
-+#line 11383 "configure"
- #include "confdefs.h"
-
- #ifdef linux
-@@ -11451,7 +11391,7 @@ int main() {
- int foo = res_ninit(&_res);
- ; return 0; }
- EOF
--if { (eval echo configure:11455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_func_res_ninit=yes
- else
-@@ -11484,12 +11424,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- echo $ac_n "checking for gnu_get_libc_version()""... $ac_c" 1>&6
--echo "configure:11488: checking for gnu_get_libc_version()" >&5
-+echo "configure:11428: checking for gnu_get_libc_version()" >&5
- if eval "test \"`echo '$''{'ac_cv_func_gnu_get_libc_version'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11493 "configure"
-+#line 11433 "configure"
- #include "confdefs.h"
-
- #ifdef HAVE_GNU_LIBC_VERSION_H
-@@ -11500,7 +11440,7 @@ int main() {
- const char *glibc_version = gnu_get_libc_version();
- ; return 0; }
- EOF
--if { (eval echo configure:11504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_func_gnu_get_libc_version=yes
- else
-@@ -11534,7 +11474,7 @@ cross_compiling=$ac_cv_prog_cc_cross
-
-
- echo $ac_n "checking for an implementation of va_copy()""... $ac_c" 1>&6
--echo "configure:11538: checking for an implementation of va_copy()" >&5
-+echo "configure:11478: checking for an implementation of va_copy()" >&5
- if eval "test \"`echo '$''{'ac_cv_va_copy'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11544,7 +11484,7 @@ else
-
- else
- cat > conftest.$ac_ext <<EOF
--#line 11548 "configure"
-+#line 11488 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -11558,7 +11498,7 @@ else
- }
- int main() { f (0, 42); return 0; }
- EOF
--if { (eval echo configure:11562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_va_copy=yes
- else
-@@ -11575,7 +11515,7 @@ fi
-
- echo "$ac_t""$ac_cv_va_copy" 1>&6
- echo $ac_n "checking for an implementation of __va_copy()""... $ac_c" 1>&6
--echo "configure:11579: checking for an implementation of __va_copy()" >&5
-+echo "configure:11519: checking for an implementation of __va_copy()" >&5
- if eval "test \"`echo '$''{'ac_cv___va_copy'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11585,7 +11525,7 @@ else
-
- else
- cat > conftest.$ac_ext <<EOF
--#line 11589 "configure"
-+#line 11529 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -11599,7 +11539,7 @@ else
- }
- int main() { f (0, 42); return 0; }
- EOF
--if { (eval echo configure:11603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv___va_copy=yes
- else
-@@ -11616,7 +11556,7 @@ fi
-
- echo "$ac_t""$ac_cv___va_copy" 1>&6
- echo $ac_n "checking whether va_lists can be copied by value""... $ac_c" 1>&6
--echo "configure:11620: checking whether va_lists can be copied by value" >&5
-+echo "configure:11560: checking whether va_lists can be copied by value" >&5
- if eval "test \"`echo '$''{'ac_cv_va_val_copy'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11626,7 +11566,7 @@ else
-
- else
- cat > conftest.$ac_ext <<EOF
--#line 11630 "configure"
-+#line 11570 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -11640,7 +11580,7 @@ else
- }
- int main() { f (0, 42); return 0; }
- EOF
--if { (eval echo configure:11644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_va_val_copy=yes
- else
-@@ -11710,12 +11650,12 @@ ARM_ABI_PREFIX=
- if test "$GNU_CC"; then
- if test "$CPU_ARCH" = "arm" ; then
- echo $ac_n "checking for ARM EABI""... $ac_c" 1>&6
--echo "configure:11714: checking for ARM EABI" >&5
-+echo "configure:11654: checking for ARM EABI" >&5
- if eval "test \"`echo '$''{'ac_cv_gcc_arm_eabi'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11719 "configure"
-+#line 11659 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -11728,7 +11668,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:11732: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11672: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_gcc_arm_eabi="yes"
- else
-@@ -11753,12 +11693,12 @@ echo "$ac_t""$ac_cv_gcc_arm_eabi" 1>&6
- fi
-
- echo $ac_n "checking for modern C++ template specialization syntax support""... $ac_c" 1>&6
--echo "configure:11757: checking for modern C++ template specialization syntax support" >&5
-+echo "configure:11697: checking for modern C++ template specialization syntax support" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_modern_specialize_template_syntax'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11762 "configure"
-+#line 11702 "configure"
- #include "confdefs.h"
- template <class T> struct X { int a; };
- class Y {};
-@@ -11768,7 +11708,7 @@ X<int> int_x;
- X<Y> y_x;
- ; return 0; }
- EOF
--if { (eval echo configure:11772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cpp_modern_specialize_template_syntax=yes
- else
-@@ -11786,12 +11726,12 @@ if test "$ac_cv_cpp_modern_specialize_template_syntax" = no ; then
- fi
-
- echo $ac_n "checking whether partial template specialization works""... $ac_c" 1>&6
--echo "configure:11790: checking whether partial template specialization works" >&5
-+echo "configure:11730: checking whether partial template specialization works" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_partial_specialization'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11795 "configure"
-+#line 11735 "configure"
- #include "confdefs.h"
- template <class T> class Foo {};
- template <class T> class Foo<T*> {};
-@@ -11799,7 +11739,7 @@ int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:11803: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cpp_partial_specialization=yes
- else
-@@ -11823,12 +11763,12 @@ EOF
- fi
-
- echo $ac_n "checking whether the C++ \"using\" keyword resolves ambiguity""... $ac_c" 1>&6
--echo "configure:11827: checking whether the C++ \"using\" keyword resolves ambiguity" >&5
-+echo "configure:11767: checking whether the C++ \"using\" keyword resolves ambiguity" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_ambiguity_resolving_using'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11832 "configure"
-+#line 11772 "configure"
- #include "confdefs.h"
- class X {
- public: int go(const X&) {return 3;}
-@@ -11844,7 +11784,7 @@ int main() {
- X x; Y y; y.jo(x);
- ; return 0; }
- EOF
--if { (eval echo configure:11848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11788: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cpp_ambiguity_resolving_using=yes
- else
-@@ -11868,7 +11808,7 @@ EOF
- fi
-
- echo $ac_n "checking for C++ dynamic_cast to void*""... $ac_c" 1>&6
--echo "configure:11872: checking for C++ dynamic_cast to void*" >&5
-+echo "configure:11812: checking for C++ dynamic_cast to void*" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_dynamic_cast_void_ptr'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11876,7 +11816,7 @@ else
- ac_cv_cpp_dynamic_cast_void_ptr=no
- else
- cat > conftest.$ac_ext <<EOF
--#line 11880 "configure"
-+#line 11820 "configure"
- #include "confdefs.h"
- class X { int i; public: virtual ~X() { } };
- class Y { int j; public: virtual ~Y() { } };
-@@ -11892,7 +11832,7 @@ class X { int i; public: virtual ~X() { } };
- ((void*)&mdo == dynamic_cast<void*>(suby))));
- }
- EOF
--if { (eval echo configure:11896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_cpp_dynamic_cast_void_ptr=yes
- else
-@@ -11919,19 +11859,19 @@ fi
-
-
- echo $ac_n "checking whether C++ requires implementation of unused virtual methods""... $ac_c" 1>&6
--echo "configure:11923: checking whether C++ requires implementation of unused virtual methods" >&5
-+echo "configure:11863: checking whether C++ requires implementation of unused virtual methods" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_unused_required'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11928 "configure"
-+#line 11868 "configure"
- #include "confdefs.h"
- class X {private: virtual void never_called();};
- int main() {
- X x;
- ; return 0; }
- EOF
--if { (eval echo configure:11935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_cpp_unused_required=no
- else
-@@ -11957,12 +11897,12 @@ fi
-
-
- echo $ac_n "checking for trouble comparing to zero near std::operator!=()""... $ac_c" 1>&6
--echo "configure:11961: checking for trouble comparing to zero near std::operator!=()" >&5
-+echo "configure:11901: checking for trouble comparing to zero near std::operator!=()" >&5
- if eval "test \"`echo '$''{'ac_cv_trouble_comparing_to_zero'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11966 "configure"
-+#line 11906 "configure"
- #include "confdefs.h"
- #include <algorithm>
- template <class T> class Foo {};
-@@ -11973,7 +11913,7 @@ int main() {
- Foo<int> f; return (0 != f);
- ; return 0; }
- EOF
--if { (eval echo configure:11977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_trouble_comparing_to_zero=no
- else
-@@ -12003,19 +11943,19 @@ fi
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS $MOZ_OPTIMIZE_LDFLAGS"
- echo $ac_n "checking for __thread keyword for TLS variables""... $ac_c" 1>&6
--echo "configure:12007: checking for __thread keyword for TLS variables" >&5
-+echo "configure:11947: checking for __thread keyword for TLS variables" >&5
- if eval "test \"`echo '$''{'ac_cv_thread_keyword'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12012 "configure"
-+#line 11952 "configure"
- #include "confdefs.h"
- __thread bool tlsIsMainThread = false;
- int main() {
- return tlsIsMainThread;
- ; return 0; }
- EOF
--if { (eval echo configure:12019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_thread_keyword=yes
- else
-@@ -12055,12 +11995,12 @@ fi
- MALLOC_H=
- ac_safe=`echo "malloc.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for malloc.h""... $ac_c" 1>&6
--echo "configure:12059: checking for malloc.h" >&5
-+echo "configure:11999: checking for malloc.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12064 "configure"
-+#line 12004 "configure"
- #include "confdefs.h"
-
- #include <malloc.h>
-@@ -12068,7 +12008,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -12091,12 +12031,12 @@ fi
- if test "$MALLOC_H" = ""; then
- ac_safe=`echo "malloc/malloc.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for malloc/malloc.h""... $ac_c" 1>&6
--echo "configure:12095: checking for malloc/malloc.h" >&5
-+echo "configure:12035: checking for malloc/malloc.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12100 "configure"
-+#line 12040 "configure"
- #include "confdefs.h"
-
- #include <malloc/malloc.h>
-@@ -12104,7 +12044,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -12127,12 +12067,12 @@ fi
- if test "$MALLOC_H" = ""; then
- ac_safe=`echo "sys/malloc.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for sys/malloc.h""... $ac_c" 1>&6
--echo "configure:12131: checking for sys/malloc.h" >&5
-+echo "configure:12071: checking for sys/malloc.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12136 "configure"
-+#line 12076 "configure"
- #include "confdefs.h"
-
- #include <sys/malloc.h>
-@@ -12140,7 +12080,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -12176,12 +12116,12 @@ MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
- for ac_func in strndup posix_memalign memalign valloc
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:12180: checking for $ac_func" >&5
-+echo "configure:12120: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12185 "configure"
-+#line 12125 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -12207,7 +12147,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:12211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:12151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -12237,19 +12177,19 @@ done
-
-
- echo $ac_n "checking for __attribute__((always_inline))""... $ac_c" 1>&6
--echo "configure:12241: checking for __attribute__((always_inline))" >&5
-+echo "configure:12181: checking for __attribute__((always_inline))" >&5
- if eval "test \"`echo '$''{'ac_cv_attribute_always_inline'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12246 "configure"
-+#line 12186 "configure"
- #include "confdefs.h"
- inline void f(void) __attribute__((always_inline));
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_attribute_always_inline=yes
- else
-@@ -12264,19 +12204,19 @@ fi
- echo "$ac_t""$ac_cv_attribute_always_inline" 1>&6
-
- echo $ac_n "checking for __attribute__((malloc))""... $ac_c" 1>&6
--echo "configure:12268: checking for __attribute__((malloc))" >&5
-+echo "configure:12208: checking for __attribute__((malloc))" >&5
- if eval "test \"`echo '$''{'ac_cv_attribute_malloc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12273 "configure"
-+#line 12213 "configure"
- #include "confdefs.h"
- void* f(int) __attribute__((malloc));
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_attribute_malloc=yes
- else
-@@ -12291,19 +12231,19 @@ fi
- echo "$ac_t""$ac_cv_attribute_malloc" 1>&6
-
- echo $ac_n "checking for __attribute__((warn_unused_result))""... $ac_c" 1>&6
--echo "configure:12295: checking for __attribute__((warn_unused_result))" >&5
-+echo "configure:12235: checking for __attribute__((warn_unused_result))" >&5
- if eval "test \"`echo '$''{'ac_cv_attribute_warn_unused'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12300 "configure"
-+#line 12240 "configure"
- #include "confdefs.h"
- int f(void) __attribute__((warn_unused_result));
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12307: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_attribute_warn_unused=yes
- else
-@@ -12327,19 +12267,19 @@ cross_compiling=$ac_cv_prog_cc_cross
-
-
- echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
--echo "configure:12331: checking for LC_MESSAGES" >&5
-+echo "configure:12271: checking for LC_MESSAGES" >&5
- if eval "test \"`echo '$''{'ac_cv_i18n_lc_messages'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12336 "configure"
-+#line 12276 "configure"
- #include "confdefs.h"
- #include <locale.h>
- int main() {
- int category = LC_MESSAGES;
- ; return 0; }
- EOF
--if { (eval echo configure:12343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_i18n_lc_messages=yes
- else
-@@ -12365,12 +12305,12 @@ fi
- for ac_func in localeconv
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:12369: checking for $ac_func" >&5
-+echo "configure:12309: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12374 "configure"
-+#line 12314 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -12393,7 +12333,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:12397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:12337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -12580,7 +12520,7 @@ fi
- # Extract the first word of "nspr-config", so it can be a program name with args.
- set dummy nspr-config; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:12584: checking for $ac_word" >&5
-+echo "configure:12524: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_NSPR_CONFIG'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -12615,7 +12555,7 @@ fi
-
- min_nspr_version=$NSPR_MINVER
- echo $ac_n "checking for NSPR - version >= $min_nspr_version""... $ac_c" 1>&6
--echo "configure:12619: checking for NSPR - version >= $min_nspr_version" >&5
-+echo "configure:12559: checking for NSPR - version >= $min_nspr_version" >&5
-
- no_nspr=""
- if test "$NSPR_CONFIG" != "no"; then
-@@ -12678,7 +12618,7 @@ if test -n "$MOZ_NATIVE_NSPR"; then
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $NSPR_CFLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 12682 "configure"
-+#line 12622 "configure"
- #include "confdefs.h"
- #include "prlog.h"
- int main() {
-@@ -12687,7 +12627,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:12691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- MOZ_NATIVE_NSPR=1
- else
-@@ -12729,7 +12669,7 @@ if test -z "$MOZ_ZLIB_LIBS$MOZ_ZLIB_CFLAGS$SKIP_LIBRARY_CHECKS"; then
- MOZ_NATIVE_ZLIB=
- else
- echo $ac_n "checking for gzread in -lz""... $ac_c" 1>&6
--echo "configure:12733: checking for gzread in -lz" >&5
-+echo "configure:12673: checking for gzread in -lz" >&5
- ac_lib_var=`echo z'_'gzread | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -12737,7 +12677,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lz $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 12741 "configure"
-+#line 12681 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -12748,7 +12688,7 @@ int main() {
- gzread()
- ; return 0; }
- EOF
--if { (eval echo configure:12752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:12692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -12772,7 +12712,7 @@ fi
- if test "$MOZ_NATIVE_ZLIB" = 1; then
- MOZZLIBNUM=`echo $MOZZLIB | awk -F. '{printf "0x%x\n", ((($1 * 16 + $2) * 16) + $3) * 16 + $4}'`
- cat > conftest.$ac_ext <<EOF
--#line 12776 "configure"
-+#line 12716 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <string.h>
-@@ -12783,7 +12723,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:12787: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- MOZ_NATIVE_ZLIB=1
- else
-@@ -12829,7 +12769,7 @@ if test -n "$MOZ_NATIVE_FFI"; then
- # Extract the first word of "pkg-config", so it can be a program name with args.
- set dummy pkg-config; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:12833: checking for $ac_word" >&5
-+echo "configure:12773: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -12873,19 +12813,19 @@ fi
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo $ac_n "checking for libffi > 3.0.9""... $ac_c" 1>&6
--echo "configure:12877: checking for libffi > 3.0.9" >&5
-+echo "configure:12817: checking for libffi > 3.0.9" >&5
-
- if $PKG_CONFIG --exists "libffi > 3.0.9" ; then
- echo "$ac_t""yes" 1>&6
- succeeded=yes
-
- echo $ac_n "checking MOZ_FFI_CFLAGS""... $ac_c" 1>&6
--echo "configure:12884: checking MOZ_FFI_CFLAGS" >&5
-+echo "configure:12824: checking MOZ_FFI_CFLAGS" >&5
- MOZ_FFI_CFLAGS=`$PKG_CONFIG --cflags "libffi > 3.0.9"`
- echo "$ac_t""$MOZ_FFI_CFLAGS" 1>&6
-
- echo $ac_n "checking MOZ_FFI_LIBS""... $ac_c" 1>&6
--echo "configure:12889: checking MOZ_FFI_LIBS" >&5
-+echo "configure:12829: checking MOZ_FFI_LIBS" >&5
- ## Remove evil flags like -Wl,--export-dynamic
- MOZ_FFI_LIBS="`$PKG_CONFIG --libs \"libffi > 3.0.9\" |sed s/-Wl,--export-dynamic//g`"
- echo "$ac_t""$MOZ_FFI_LIBS" 1>&6
-@@ -12921,7 +12861,7 @@ echo "configure:12889: checking MOZ_FFI_LIBS" >&5
- # Extract the first word of "pkg-config", so it can be a program name with args.
- set dummy pkg-config; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:12925: checking for $ac_word" >&5
-+echo "configure:12865: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -12965,19 +12905,19 @@ fi
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo $ac_n "checking for libffi >= 3.0.9""... $ac_c" 1>&6
--echo "configure:12969: checking for libffi >= 3.0.9" >&5
-+echo "configure:12909: checking for libffi >= 3.0.9" >&5
-
- if $PKG_CONFIG --exists "libffi >= 3.0.9" ; then
- echo "$ac_t""yes" 1>&6
- succeeded=yes
-
- echo $ac_n "checking MOZ_FFI_CFLAGS""... $ac_c" 1>&6
--echo "configure:12976: checking MOZ_FFI_CFLAGS" >&5
-+echo "configure:12916: checking MOZ_FFI_CFLAGS" >&5
- MOZ_FFI_CFLAGS=`$PKG_CONFIG --cflags "libffi >= 3.0.9"`
- echo "$ac_t""$MOZ_FFI_CFLAGS" 1>&6
-
- echo $ac_n "checking MOZ_FFI_LIBS""... $ac_c" 1>&6
--echo "configure:12981: checking MOZ_FFI_LIBS" >&5
-+echo "configure:12921: checking MOZ_FFI_LIBS" >&5
- ## Remove evil flags like -Wl,--export-dynamic
- MOZ_FFI_LIBS="`$PKG_CONFIG --libs \"libffi >= 3.0.9\" |sed s/-Wl,--export-dynamic//g`"
- echo "$ac_t""$MOZ_FFI_LIBS" 1>&6
-@@ -13112,18 +13052,18 @@ MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
-
- if test -n "$MOZ_DEBUG"; then
- echo $ac_n "checking for valid debug flags""... $ac_c" 1>&6
--echo "configure:13116: checking for valid debug flags" >&5
-+echo "configure:13056: checking for valid debug flags" >&5
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 13120 "configure"
-+#line 13060 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int main() {
- printf("Hello World\n");
- ; return 0; }
- EOF
--if { (eval echo configure:13127: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:13067: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _results=yes
- else
-@@ -13201,18 +13141,18 @@ fi
- if test "$COMPILE_ENVIRONMENT"; then
- if test -n "$MOZ_OPTIMIZE"; then
- echo $ac_n "checking for valid optimization flags""... $ac_c" 1>&6
--echo "configure:13205: checking for valid optimization flags" >&5
-+echo "configure:13145: checking for valid optimization flags" >&5
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 13209 "configure"
-+#line 13149 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int main() {
- printf("Hello World\n");
- ; return 0; }
- EOF
--if { (eval echo configure:13216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:13156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _results=yes
- else
-@@ -13364,7 +13304,7 @@ EOF
- fi
- else
- echo $ac_n "checking size of int *""... $ac_c" 1>&6
--echo "configure:13368: checking size of int *" >&5
-+echo "configure:13308: checking size of int *" >&5
- if eval "test \"`echo '$''{'ac_cv_sizeof_int_p'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -13372,7 +13312,7 @@ else
- ac_cv_sizeof_int_p=4
- else
- cat > conftest.$ac_ext <<EOF
--#line 13376 "configure"
-+#line 13316 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int main()
-@@ -13383,7 +13323,7 @@ int main()
- return(0);
- }
- EOF
--if { (eval echo configure:13387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:13327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_sizeof_int_p=`cat conftestval`
- else
-@@ -13687,12 +13627,12 @@ fi
- if test -n "$MOZ_VALGRIND"; then
- ac_safe=`echo "valgrind/valgrind.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for valgrind/valgrind.h""... $ac_c" 1>&6
--echo "configure:13691: checking for valgrind/valgrind.h" >&5
-+echo "configure:13631: checking for valgrind/valgrind.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 13696 "configure"
-+#line 13636 "configure"
- #include "confdefs.h"
-
- #include <valgrind/valgrind.h>
-@@ -13700,7 +13640,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:13704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:13644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -13973,7 +13913,7 @@ do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:13977: checking for $ac_word" >&5
-+echo "configure:13917: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_CCACHE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -14099,12 +14039,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
- for ac_func in __cxa_demangle
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:14103: checking for $ac_func" >&5
-+echo "configure:14043: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14108 "configure"
-+#line 14048 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -14130,7 +14070,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:14134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -14184,12 +14124,12 @@ fi
- if test -z "$SKIP_LIBRARY_CHECKS"; then
- ac_safe=`echo "unwind.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for unwind.h""... $ac_c" 1>&6
--echo "configure:14188: checking for unwind.h" >&5
-+echo "configure:14128: checking for unwind.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14193 "configure"
-+#line 14133 "configure"
- #include "confdefs.h"
-
- #include <unwind.h>
-@@ -14197,7 +14137,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:14201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -14214,12 +14154,12 @@ fi
- for ac_func in _Unwind_Backtrace
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:14218: checking for $ac_func" >&5
-+echo "configure:14158: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14223 "configure"
-+#line 14163 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -14242,7 +14182,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:14246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -14334,7 +14274,7 @@ if test -z "$SKIP_COMPILER_CHECKS"; then
- # Compiler Options
-
- echo $ac_n "checking for -pipe support""... $ac_c" 1>&6
--echo "configure:14338: checking for -pipe support" >&5
-+echo "configure:14278: checking for -pipe support" >&5
- if test -n "$GNU_CC" -a -n "$GNU_CXX"; then
- CFLAGS="$CFLAGS -pipe"
- CXXFLAGS="$CXXFLAGS -pipe"
-@@ -14348,16 +14288,16 @@ _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
-
- echo $ac_n "checking whether C compiler supports -fprofile-generate""... $ac_c" 1>&6
--echo "configure:14352: checking whether C compiler supports -fprofile-generate" >&5
-+echo "configure:14292: checking whether C compiler supports -fprofile-generate" >&5
- cat > conftest.$ac_ext <<EOF
--#line 14354 "configure"
-+#line 14294 "configure"
- #include "confdefs.h"
-
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:14361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- PROFILE_GEN_CFLAGS="-fprofile-generate"
- result="yes"
-@@ -14421,16 +14361,16 @@ if test "$_PEDANTIC"; then
- _SAVE_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS -pedantic ${_WARNINGS_CXXFLAGS} -Wno-long-long"
- echo $ac_n "checking whether C++ compiler has -pedantic long long bug""... $ac_c" 1>&6
--echo "configure:14425: checking whether C++ compiler has -pedantic long long bug" >&5
-+echo "configure:14365: checking whether C++ compiler has -pedantic long long bug" >&5
- cat > conftest.$ac_ext <<EOF
--#line 14427 "configure"
-+#line 14367 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(sizeof(long long) == 8)
- ; return 0; }
- EOF
--if { (eval echo configure:14434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- result="no"
- else
-@@ -14457,12 +14397,12 @@ fi
- _SAVE_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
- echo $ac_n "checking for correct overload resolution with const and templates""... $ac_c" 1>&6
--echo "configure:14461: checking for correct overload resolution with const and templates" >&5
-+echo "configure:14401: checking for correct overload resolution with const and templates" >&5
- if eval "test \"`echo '$''{'ac_nscap_nonconst_opeq_bug'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14466 "configure"
-+#line 14406 "configure"
- #include "confdefs.h"
-
- template <class T>
-@@ -14492,7 +14432,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:14496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14436: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_nscap_nonconst_opeq_bug="no"
- else
-@@ -14518,19 +14458,19 @@ EOF
- fi
-
- echo $ac_n "checking for tm_zone tm_gmtoff in struct tm""... $ac_c" 1>&6
--echo "configure:14522: checking for tm_zone tm_gmtoff in struct tm" >&5
-+echo "configure:14462: checking for tm_zone tm_gmtoff in struct tm" >&5
- if eval "test \"`echo '$''{'ac_cv_struct_tm_zone_tm_gmtoff'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14527 "configure"
-+#line 14467 "configure"
- #include "confdefs.h"
- #include <time.h>
- int main() {
- struct tm tm; tm.tm_zone = 0; tm.tm_gmtoff = 1;
- ; return 0; }
- EOF
--if { (eval echo configure:14534: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_struct_tm_zone_tm_gmtoff="yes"
- else
-@@ -14572,18 +14512,18 @@ cross_compiling=$ac_cv_prog_cc_cross
-
-
- echo $ac_n "checking what kind of list files are supported by the linker""... $ac_c" 1>&6
--echo "configure:14576: checking what kind of list files are supported by the linker" >&5
-+echo "configure:14516: checking what kind of list files are supported by the linker" >&5
- if eval "test \"`echo '$''{'EXPAND_LIBS_LIST_STYLE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- echo "int main() {return 0;}" > conftest.${ac_ext}
-- if { ac_try='${CC-cc} -o conftest.${OBJ_SUFFIX} -c $CFLAGS $CPPFLAGS conftest.${ac_ext} 1>&5'; { (eval echo configure:14581: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.${OBJ_SUFFIX}; then
-+ if { ac_try='${CC-cc} -o conftest.${OBJ_SUFFIX} -c $CFLAGS $CPPFLAGS conftest.${ac_ext} 1>&5'; { (eval echo configure:14521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.${OBJ_SUFFIX}; then
- echo "INPUT(conftest.${OBJ_SUFFIX})" > conftest.list
-- if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.list $LIBS 1>&5'; { (eval echo configure:14583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
-+ if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.list $LIBS 1>&5'; { (eval echo configure:14523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
- EXPAND_LIBS_LIST_STYLE=linkerscript
- else
- echo "conftest.${OBJ_SUFFIX}" > conftest.list
-- if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS @conftest.list $LIBS 1>&5'; { (eval echo configure:14587: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
-+ if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS @conftest.list $LIBS 1>&5'; { (eval echo configure:14527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
- EXPAND_LIBS_LIST_STYLE=list
- else
- EXPAND_LIBS_LIST_STYLE=none
-@@ -14603,7 +14543,7 @@ LIBS_DESC_SUFFIX=desc
-
- if test "$GCC_USE_GNU_LD"; then
- echo $ac_n "checking what kind of ordering can be done with the linker""... $ac_c" 1>&6
--echo "configure:14607: checking what kind of ordering can be done with the linker" >&5
-+echo "configure:14547: checking what kind of ordering can be done with the linker" >&5
- if eval "test \"`echo '$''{'EXPAND_LIBS_ORDER_STYLE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -14611,14 +14551,14 @@ else
- _SAVE_LDFLAGS="$LDFLAGS"
- LDFLAGS="${LDFLAGS} -Wl,--section-ordering-file,conftest.order"
- cat > conftest.$ac_ext <<EOF
--#line 14615 "configure"
-+#line 14555 "configure"
- #include "confdefs.h"
-
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:14622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- EXPAND_LIBS_ORDER_STYLE=section-ordering-file
- else
-@@ -14630,7 +14570,7 @@ fi
- rm -f conftest*
- LDFLAGS="$_SAVE_LDFLAGS"
- if test -z "$EXPAND_LIBS_ORDER_STYLE"; then
-- if { ac_try='${CC-cc} ${DSO_LDOPTS} ${LDFLAGS} -o ${DLL_PREFIX}conftest${DLL_SUFFIX} -Wl'; { (eval echo configure:14634: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-+ if { ac_try='${CC-cc} ${DSO_LDOPTS} ${LDFLAGS} -o ${DLL_PREFIX}conftest${DLL_SUFFIX} -Wl'; { (eval echo configure:14574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
- EXPAND_LIBS_ORDER_STYLE=linkerscript
- else
- EXPAND_LIBS_ORDER_STYLE=none
-@@ -14741,7 +14681,7 @@ esac
- if test -z "$SKIP_LIBRARY_CHECKS" -a -z "$NO_EDITLINE"; then
- if test -n "$JS_WANT_READLINE"; then
- echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
--echo "configure:14745: checking for readline in -lreadline" >&5
-+echo "configure:14685: checking for readline in -lreadline" >&5
- ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -14749,7 +14689,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lreadline $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 14753 "configure"
-+#line 14693 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -14760,7 +14700,7 @@ int main() {
- readline()
- ; return 0; }
- EOF
--if { (eval echo configure:14764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -14990,9 +14930,9 @@ EOF
-
-
- echo $ac_n "checking for posix_fallocate""... $ac_c" 1>&6
--echo "configure:14994: checking for posix_fallocate" >&5
-+echo "configure:14934: checking for posix_fallocate" >&5
- cat > conftest.$ac_ext <<EOF
--#line 14996 "configure"
-+#line 14936 "configure"
- #include "confdefs.h"
- #define _XOPEN_SOURCE 600
- #include <fcntl.h>
-@@ -15000,7 +14940,7 @@ int main() {
- posix_fallocate(0, 0, 0);
- ; return 0; }
- EOF
--if { (eval echo configure:15004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv___posix_fallocate=true
- else
-@@ -15029,7 +14969,7 @@ if test "$MOZ_X11"; then
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $XCFLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 15033 "configure"
-+#line 14973 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -15047,7 +14987,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:15051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
- else
- echo "configure: failed program was:" >&5
-@@ -15162,12 +15102,12 @@ fi
- for ac_func in setlocale
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:15166: checking for $ac_func" >&5
-+echo "configure:15106: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 15171 "configure"
-+#line 15111 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -15190,7 +15130,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:15194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:15134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -15220,12 +15160,12 @@ done
- for ac_func in localeconv
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:15224: checking for $ac_func" >&5
-+echo "configure:15164: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 15229 "configure"
-+#line 15169 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -15248,7 +15188,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:15252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:15192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
---
-1.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch
deleted file mode 100644
index 6aeb2f6..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From d4a15ad82292ff6d772dcc631df98754d20be31b Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 18 Mar 2014 11:46:05 -0400
-Subject: [PATCH 2/5] Move JS_BYTES_PER_WORD out of config.h
-
-Instead define it in terms of the already extant GNU C extension
-__SIZEOF_POINTER__. This avoids multiarch conflicts when 32 and 64
-bit packages of js are co-installed.
----
-
-Upstream-status: Pending
-
- js/src/configure.in | 9 ---------
- js/src/js-config.h.in | 1 -
- js/src/jstypes.h | 12 ++++++++++++
- 3 files changed, 12 insertions(+), 10 deletions(-)
-
-diff --git a/js/src/configure.in b/js/src/configure.in
-index 15605b2..64c7606 100644
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -2345,15 +2345,6 @@ else
- AC_MSG_RESULT(no)
- fi
-
--MOZ_SIZE_OF_TYPE(JS_BYTES_PER_WORD, void*, 4 8)
--if test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "4"; then
-- AC_DEFINE(JS_BITS_PER_WORD_LOG2, 5)
--elif test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "8"; then
-- AC_DEFINE(JS_BITS_PER_WORD_LOG2, 6)
--else
-- AC_MSG_ERROR([Unexpected JS_BYTES_PER_WORD])
--fi
--
- MOZ_ALIGN_OF_TYPE(JS_ALIGN_OF_POINTER, void*, 2 4 8 16)
- MOZ_SIZE_OF_TYPE(JS_BYTES_PER_DOUBLE, double, 6 8 10 12 14)
-
-diff --git a/js/src/js-config.h.in b/js/src/js-config.h.in
-index 6889e00..4775420 100644
---- a/js/src/js-config.h.in
-+++ b/js/src/js-config.h.in
-@@ -56,7 +56,6 @@
- #undef JS_INT32_TYPE
- #undef JS_INT64_TYPE
- #undef JS_INTPTR_TYPE
--#undef JS_BYTES_PER_WORD
-
- /* Some mozilla code uses JS-friend APIs that depend on JS_METHODJIT being
- correct. */
-diff --git a/js/src/jstypes.h b/js/src/jstypes.h
-index d0cf183..3e7928f 100644
---- a/js/src/jstypes.h
-+++ b/js/src/jstypes.h
-@@ -24,6 +24,18 @@
- #include "mozilla/Util.h"
-
- #include "js-config.h"
-+#ifndef JS_BYTES_PER_WORD
-+#define JS_BYTES_PER_WORD __SIZEOF_POINTER__
-+#endif
-+#ifndef JS_BITS_PER_WORD_LOG2
-+#if JS_BYTES_PER_WORD == 8
-+#define JS_BITS_PER_WORD_LOG2 6
-+#elif JS_BYTES_PER_WORD == 4
-+#define JS_BITS_PER_WORD_LOG2 5
-+#else
-+#error Unhandled JS_BYTES_PER_WORD
-+#endif
-+#endif
-
- /***********************************************************************
- ** MACROS: JS_EXTERN_API
---
-1.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch
new file mode 100644
index 0000000..4f7ebc6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch
@@ -0,0 +1,34 @@
+From e6dcee5f8a0f80ce99946b81fa1233611a149fe6 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 12 Jul 2018 18:00:52 +0800
+Subject: [PATCH 2/5] fix cannot find link
+
+..
+|DEBUG: link: Trying 'mips64-wrs-linux-ld --sysroot=tmp-glibc/work/
+mips64-wrs-linux/mozjs/52.8.1-r0/recipe-sysroot '
+|ERROR: Cannot find link
+...
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ build/moz.configure/checks.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/moz.configure/checks.configure b/build/moz.configure/checks.configure
+index 8c2dbc0..83bffc3 100644
+--- a/build/moz.configure/checks.configure
++++ b/build/moz.configure/checks.configure
+@@ -128,7 +128,7 @@ def check_prog(var, progs, what=None, input=None, allow_missing=False,
+
+ for prog in value or progs:
+ log.debug('%s: Trying %s', var.lower(), quote(prog))
+- result = find_program(prog, paths)
++ result = find_program(prog.split()[0], paths)
+ if result:
+ return result
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-Add-AArch64-support.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-Add-AArch64-support.patch
deleted file mode 100644
index 6e72429..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-Add-AArch64-support.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 15e710e331d36eb279852b5cd1ba37a9a6005217 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Mon, 2 Mar 2015 19:08:22 +0800
-Subject: [PATCH 3/5] Add AArch64 support
-
----
-Upstream-status: Pending
-
- js/src/assembler/jit/ExecutableAllocator.h | 6 ++++++
- js/src/assembler/wtf/Platform.h | 4 ++++
- js/src/configure.in | 4 ++++
- mfbt/double-conversion/utils.h | 1 +
- 4 files changed, 15 insertions(+)
-
-diff --git a/js/src/assembler/jit/ExecutableAllocator.h b/js/src/assembler/jit/ExecutableAllocator.h
-index c071c33..90764c3 100644
---- a/js/src/assembler/jit/ExecutableAllocator.h
-+++ b/js/src/assembler/jit/ExecutableAllocator.h
-@@ -382,6 +382,12 @@ public:
- {
- reprotectRegion(start, size, Executable);
- }
-+#elif WTF_CPU_AARCH64 && WTF_PLATFORM_LINUX
-+ static void cacheFlush(void* code, size_t size)
-+ {
-+ intptr_t end = reinterpret_cast<intptr_t>(code) + size;
-+ __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
-+ }
- #else
- static void makeWritable(void*, size_t) {}
- static void makeExecutable(void*, size_t) {}
-diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h
-index 0c84896..e8763a7 100644
---- a/js/src/assembler/wtf/Platform.h
-+++ b/js/src/assembler/wtf/Platform.h
-@@ -325,6 +325,10 @@
- #define WTF_THUMB_ARCH_VERSION 0
- #endif
-
-+/* CPU(AArch64) - 64-bit ARM */
-+#if defined(__aarch64__)
-+#define WTF_CPU_AARCH64 1
-+#endif
-
- /* WTF_CPU_ARMV5_OR_LOWER - ARM instruction set v5 or earlier */
- /* On ARMv5 and below the natural alignment is required.
-diff --git a/js/src/configure.in b/js/src/configure.in
-index 64c7606..0673aca 100644
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -1121,6 +1121,10 @@ arm*)
- CPU_ARCH=arm
- ;;
-
-+aarch64)
-+ CPU_ARCH=aarch64
-+ ;;
-+
- mips|mipsel)
- CPU_ARCH="mips"
- ;;
-diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
-index 0eec2d9..fe26dab 100644
---- a/mfbt/double-conversion/utils.h
-+++ b/mfbt/double-conversion/utils.h
-@@ -58,6 +58,7 @@
- defined(__mips__) || defined(__powerpc__) || \
- defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
- defined(__SH4__) || defined(__alpha__) || \
-+ defined(__aarch64__) || \
- defined(_MIPS_ARCH_MIPS32R2)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
---
-1.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch
new file mode 100644
index 0000000..a754ff1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch
@@ -0,0 +1,28 @@
+From 646a78262b18e19721cd41ee515215221dd241b6 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 12 Jul 2018 18:12:42 +0800
+Subject: [PATCH 3/5] workaround autoconf 2.13 detection failed
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ build/moz.configure/old.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure
+index b32c3f7..ece47f4 100644
+--- a/build/moz.configure/old.configure
++++ b/build/moz.configure/old.configure
+@@ -31,7 +31,7 @@ def autoconf(mozconfig, autoconf):
+ autoconf = autoconf[0] if autoconf else None
+
+ for ac in (mozconfig_autoconf, autoconf, 'autoconf-2.13', 'autoconf2.13',
+- 'autoconf213'):
++ 'autoconf213', 'autoconf'):
+ if ac:
+ autoconf = find_program(ac)
+ if autoconf:
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch
new file mode 100644
index 0000000..4cba79c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch
@@ -0,0 +1,42 @@
+From a46adb74b5ba5e17d676d31d70faca76c1381d15 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 12 Jul 2018 21:25:46 +0800
+Subject: [PATCH 4/5] do not use autoconf 2.13 to refresh old.configure
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ build/moz.configure/old.configure | 2 +-
+ js/src/old-configure | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure
+index ece47f4..a73900f 100644
+--- a/build/moz.configure/old.configure
++++ b/build/moz.configure/old.configure
+@@ -83,7 +83,7 @@ def prepare_configure(old_configure, mozconfig, autoconf, build_env, shell,
+ old_configure = os.path.join(old_configure_dir, 'js', 'src',
+ os.path.basename(old_configure))
+
+- refresh = True
++ refresh = False
+ if exists(old_configure):
+ mtime = getmtime(old_configure)
+ aclocal = os.path.join(build_env.topsrcdir, 'build', 'autoconf',
+diff --git a/js/src/old-configure b/js/src/old-configure
+index 75b00e1..8a8ef52 100644
+--- a/js/src/old-configure
++++ b/js/src/old-configure
+@@ -619,7 +619,7 @@ if test -z "$srcdir"; then
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+- srcdir=$ac_confdir
++ srcdir="$ac_confdir/../../"
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch
deleted file mode 100644
index 8bd35d4..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 0128c5a9eeee0d3fc0deb9129dd20eb79338c8f4 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Mon, 2 Mar 2015 19:08:59 +0800
-Subject: [PATCH 4/5] mozbug746112-no-decommit-on-large-pages
-
----
-Upstream-status: Pending
-
- js/src/gc/Heap.h | 15 ++++++++++-----
- js/src/jsgc.cpp | 15 ++++++++++++---
- 2 files changed, 22 insertions(+), 8 deletions(-)
-
-diff --git a/js/src/gc/Heap.h b/js/src/gc/Heap.h
-index b8f8c78..1cfd269 100644
---- a/js/src/gc/Heap.h
-+++ b/js/src/gc/Heap.h
-@@ -103,26 +103,31 @@ struct Cell
- };
-
- /*
-- * Page size is 4096 by default, except for SPARC, where it is 8192.
-+ * Page size must be static to support our arena pointer optimizations, so we
-+ * are forced to support each platform with non-4096 pages as a special case.
-+ * Note: The freelist supports a maximum arena shift of 15.
- * Note: Do not use JS_CPU_SPARC here, this header is used outside JS.
- * Bug 692267: Move page size definition to gc/Memory.h and include it
- * directly once jsgc.h is no longer an installed header.
- */
- #if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9))
- const size_t PageShift = 13;
-+const size_t ArenaShift = PageShift;
-+#elif defined(__powerpc__)
-+const size_t PageShift = 16;
-+const size_t ArenaShift = 12;
- #else
- const size_t PageShift = 12;
-+const size_t ArenaShift = PageShift;
- #endif
- const size_t PageSize = size_t(1) << PageShift;
-+const size_t ArenaSize = size_t(1) << ArenaShift;
-+const size_t ArenaMask = ArenaSize - 1;
-
- const size_t ChunkShift = 20;
- const size_t ChunkSize = size_t(1) << ChunkShift;
- const size_t ChunkMask = ChunkSize - 1;
-
--const size_t ArenaShift = PageShift;
--const size_t ArenaSize = PageSize;
--const size_t ArenaMask = ArenaSize - 1;
--
- /*
- * This is the maximum number of arenas we allow in the FreeCommitted state
- * before we trigger a GC_SHRINK to release free arenas to the OS.
-diff --git a/js/src/jsgc.cpp b/js/src/jsgc.cpp
-index b3caf05..a258d2d 100644
---- a/js/src/jsgc.cpp
-+++ b/js/src/jsgc.cpp
-@@ -251,6 +251,13 @@ static const int BackgroundPhaseLength[] = {
- sizeof(BackgroundPhaseStrings) / sizeof(AllocKind)
- };
-
-+/* Unused memory decommiting requires the arena size match the page size. */
-+static bool
-+DecommitEnabled()
-+{
-+ return PageSize == ArenaSize;
-+}
-+
- #ifdef DEBUG
- void
- ArenaHeader::checkSynchronizedWithFreeList() const
-@@ -742,7 +749,8 @@ Chunk::fetchNextDecommittedArena()
- decommittedArenas.unset(offset);
-
- Arena *arena = &arenas[offset];
-- MarkPagesInUse(arena, ArenaSize);
-+ if (DecommitEnabled())
-+ MarkPagesInUse(arena, ArenaSize);
- arena->aheader.setAsNotAllocated();
-
- return &arena->aheader;
-@@ -2731,7 +2739,7 @@ DecommitArenasFromAvailableList(JSRuntime *rt, Chunk **availableListHeadp)
- chunk->removeFromAvailableList();
-
- size_t arenaIndex = Chunk::arenaIndex(aheader->arenaAddress());
-- bool ok;
-+ bool ok = true;
- {
- /*
- * If the main thread waits for the decommit to finish, skip
-@@ -2741,7 +2749,8 @@ DecommitArenasFromAvailableList(JSRuntime *rt, Chunk **availableListHeadp)
- Maybe<AutoUnlockGC> maybeUnlock;
- if (!rt->isHeapBusy())
- maybeUnlock.construct(rt);
-- ok = MarkPagesUnused(aheader->getArena(), ArenaSize);
-+ if (DecommitEnabled())
-+ ok = MarkPagesUnused(aheader->getArena(), ArenaSize);
- }
-
- if (ok) {
---
-1.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch
deleted file mode 100644
index bc99ecc..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 9c42920c2b635a399bd1f93833efdeb1696f17ee Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Mon, 2 Mar 2015 19:09:57 +0800
-Subject: [PATCH 5/5] aarch64-64k-page
-
----
-Upstream-status: Pending
-
- js/src/gc/Heap.h | 2 +-
- js/src/gc/Memory.cpp | 3 +++
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/js/src/gc/Heap.h b/js/src/gc/Heap.h
-index 1cfd269..f4dbcda 100644
---- a/js/src/gc/Heap.h
-+++ b/js/src/gc/Heap.h
-@@ -113,7 +113,7 @@ struct Cell
- #if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9))
- const size_t PageShift = 13;
- const size_t ArenaShift = PageShift;
--#elif defined(__powerpc__)
-+#elif defined(__powerpc__) || defined(__aarch64__)
- const size_t PageShift = 16;
- const size_t ArenaShift = 12;
- #else
-diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
-index 5b386a2..e5ad018 100644
---- a/js/src/gc/Memory.cpp
-+++ b/js/src/gc/Memory.cpp
-@@ -302,8 +302,11 @@ GetPageFaultCount()
- void
- InitMemorySubsystem()
- {
-+ /* aarch64 may have 64KB or 4KB pages */
-+#ifndef __aarch64__
- if (size_t(sysconf(_SC_PAGESIZE)) != PageSize)
- MOZ_CRASH();
-+#endif
- }
-
- void *
---
-1.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch
new file mode 100644
index 0000000..38e4698
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch
@@ -0,0 +1,38 @@
+From 55d833dc3c194f1eb7841f308ad3b9ec3800d3b3 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 13 Jul 2018 15:48:32 +0800
+Subject: [PATCH 5/5] fix do_compile failed on mips
+
+Link with var-OS_LDFLAGS to fix the issue.
+Such as on mips:
+...
+|mips-wrsmllib32-linux-g++ -meb -mabi=32 -mhard-float ... -o libmozjs-52.so
+|/usr/include/c++/8.1.0/bits/atomic_base.h:514: error: undefined
+reference to '__atomic_fetch_add_8'
+...
+
+In recipe, set OS_LDFLAGS="-Wl,-latomic" could fix the issue.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ config/config.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config/config.mk b/config/config.mk
+index 4e3fd1a..d847ffa 100644
+--- a/config/config.mk
++++ b/config/config.mk
+@@ -523,7 +523,7 @@ EXPAND_MKSHLIB_ARGS = --uselist
+ ifdef SYMBOL_ORDER
+ EXPAND_MKSHLIB_ARGS += --symbol-order $(SYMBOL_ORDER)
+ endif
+-EXPAND_MKSHLIB = $(EXPAND_LIBS_EXEC) $(EXPAND_MKSHLIB_ARGS) -- $(MKSHLIB)
++EXPAND_MKSHLIB = $(EXPAND_LIBS_EXEC) $(EXPAND_MKSHLIB_ARGS) -- $(MKSHLIB) $(OS_LDFLAGS)
+
+ # $(call CHECK_SYMBOLS,lib,PREFIX,dep_name,test)
+ # Checks that the given `lib` doesn't contain dependency on symbols with a
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch
new file mode 100644
index 0000000..32a977c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch
@@ -0,0 +1,158 @@
+From 04e8a611e958f0da1ccac61acae3a6f1a5168b20 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 13 Jul 2018 18:08:14 +0800
+Subject: [PATCH] support musl
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ memory/jemalloc/src/src/pages.c | 1 -
+ memory/mozjemalloc/jemalloc.c | 7 +++----
+ mozglue/misc/TimeStamp_darwin.cpp | 1 -
+ mozglue/misc/TimeStamp_posix.cpp | 1 -
+ nsprpub/pr/src/misc/prsystem.c | 1 -
+ python/psutil/psutil/_psutil_bsd.c | 1 -
+ python/psutil/psutil/_psutil_osx.c | 1 -
+ python/psutil/psutil/arch/bsd/process_info.c | 1 -
+ python/psutil/psutil/arch/osx/process_info.c | 1 -
+ 9 files changed, 3 insertions(+), 12 deletions(-)
+
+diff --git a/memory/jemalloc/src/src/pages.c b/memory/jemalloc/src/src/pages.c
+index 647952a..7b964c8 100644
+--- a/memory/jemalloc/src/src/pages.c
++++ b/memory/jemalloc/src/src/pages.c
+@@ -2,7 +2,6 @@
+ #include "jemalloc/internal/jemalloc_internal.h"
+
+ #ifdef JEMALLOC_SYSCTL_VM_OVERCOMMIT
+-#include <sys/sysctl.h>
+ #endif
+
+ /******************************************************************************/
+diff --git a/memory/mozjemalloc/jemalloc.c b/memory/mozjemalloc/jemalloc.c
+index 5d4d83a..c618de9 100644
+--- a/memory/mozjemalloc/jemalloc.c
++++ b/memory/mozjemalloc/jemalloc.c
+@@ -332,7 +332,6 @@ __FBSDID("$FreeBSD: head/lib/libc/stdlib/malloc.c 180599 2008-07-18 19:35:44Z ja
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #if !defined(MOZ_MEMORY_SOLARIS) && !defined(MOZ_MEMORY_ANDROID)
+-#include <sys/sysctl.h>
+ #endif
+ #include <sys/uio.h>
+ #ifndef MOZ_MEMORY
+@@ -674,7 +673,7 @@ static bool malloc_initialized = false;
+ #elif defined(MOZ_MEMORY_DARWIN)
+ static malloc_mutex_t init_lock = {OS_SPINLOCK_INIT};
+ #elif defined(MOZ_MEMORY_LINUX) && !defined(MOZ_MEMORY_ANDROID)
+-static malloc_mutex_t init_lock = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;
++static malloc_mutex_t init_lock = PTHREAD_MUTEX_INITIALIZER;
+ #elif defined(MOZ_MEMORY)
+ static malloc_mutex_t init_lock = PTHREAD_MUTEX_INITIALIZER;
+ #else
+@@ -1644,7 +1643,7 @@ malloc_mutex_init(malloc_mutex_t *mutex)
+ pthread_mutexattr_t attr;
+ if (pthread_mutexattr_init(&attr) != 0)
+ return (true);
+- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP);
++ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_STALLED);
+ if (pthread_mutex_init(mutex, &attr) != 0) {
+ pthread_mutexattr_destroy(&attr);
+ return (true);
+@@ -1709,7 +1708,7 @@ malloc_spin_init(malloc_spinlock_t *lock)
+ pthread_mutexattr_t attr;
+ if (pthread_mutexattr_init(&attr) != 0)
+ return (true);
+- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP);
++ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_STALLED);
+ if (pthread_mutex_init(lock, &attr) != 0) {
+ pthread_mutexattr_destroy(&attr);
+ return (true);
+diff --git a/mozglue/misc/TimeStamp_darwin.cpp b/mozglue/misc/TimeStamp_darwin.cpp
+index f30bc98..3998c9c 100644
+--- a/mozglue/misc/TimeStamp_darwin.cpp
++++ b/mozglue/misc/TimeStamp_darwin.cpp
+@@ -18,7 +18,6 @@
+
+ #include <mach/mach_time.h>
+ #include <sys/time.h>
+-#include <sys/sysctl.h>
+ #include <time.h>
+ #include <unistd.h>
+
+diff --git a/mozglue/misc/TimeStamp_posix.cpp b/mozglue/misc/TimeStamp_posix.cpp
+index 05dedde..d9e30f2 100644
+--- a/mozglue/misc/TimeStamp_posix.cpp
++++ b/mozglue/misc/TimeStamp_posix.cpp
+@@ -21,7 +21,6 @@
+ #if defined(__DragonFly__) || defined(__FreeBSD__) \
+ || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <sys/param.h>
+-#include <sys/sysctl.h>
+ #endif
+
+ #if defined(__DragonFly__) || defined(__FreeBSD__)
+diff --git a/nsprpub/pr/src/misc/prsystem.c b/nsprpub/pr/src/misc/prsystem.c
+index eba85fb..54b57bb 100644
+--- a/nsprpub/pr/src/misc/prsystem.c
++++ b/nsprpub/pr/src/misc/prsystem.c
+@@ -27,7 +27,6 @@
+ || defined(OPENBSD) || defined(DRAGONFLY) || defined(DARWIN)
+ #define _PR_HAVE_SYSCTL
+ #include <sys/param.h>
+-#include <sys/sysctl.h>
+ #endif
+
+ #if defined(DARWIN)
+diff --git a/python/psutil/psutil/_psutil_bsd.c b/python/psutil/psutil/_psutil_bsd.c
+index 7b6e561..0a91262 100644
+--- a/python/psutil/psutil/_psutil_bsd.c
++++ b/python/psutil/psutil/_psutil_bsd.c
+@@ -16,7 +16,6 @@
+ #include <fcntl.h>
+ #include <paths.h>
+ #include <sys/types.h>
+-#include <sys/sysctl.h>
+ #include <sys/param.h>
+ #include <sys/user.h>
+ #include <sys/proc.h>
+diff --git a/python/psutil/psutil/_psutil_osx.c b/python/psutil/psutil/_psutil_osx.c
+index 3ebf8ff..b3910ba 100644
+--- a/python/psutil/psutil/_psutil_osx.c
++++ b/python/psutil/psutil/_psutil_osx.c
+@@ -13,7 +13,6 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <utmpx.h>
+-#include <sys/sysctl.h>
+ #include <sys/vmmeter.h>
+ #include <libproc.h>
+ #include <sys/proc_info.h>
+diff --git a/python/psutil/psutil/arch/bsd/process_info.c b/python/psutil/psutil/arch/bsd/process_info.c
+index 4d73924..46f288d 100644
+--- a/python/psutil/psutil/arch/bsd/process_info.c
++++ b/python/psutil/psutil/arch/bsd/process_info.c
+@@ -15,7 +15,6 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <sys/types.h>
+-#include <sys/sysctl.h>
+ #include <sys/param.h>
+ #include <sys/user.h>
+ #include <sys/proc.h>
+diff --git a/python/psutil/psutil/arch/osx/process_info.c b/python/psutil/psutil/arch/osx/process_info.c
+index b6dd5bb..62a838f 100644
+--- a/python/psutil/psutil/arch/osx/process_info.c
++++ b/python/psutil/psutil/arch/osx/process_info.c
+@@ -16,7 +16,6 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <signal.h>
+-#include <sys/sysctl.h>
+ #include <libproc.h>
+
+ #include "process_info.h"
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch
index 6432e1f..9194e34 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch
@@ -1,4 +1,4 @@
-From a452138a1dd274bfad381a701729783360dc86fb Mon Sep 17 00:00:00 2001
+From a452138a1dd274bfad381a701729783360dc86fb Mon Sep 17 00:00:00 2001
From: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
Date: Tue, 5 Jan 2016 22:04:17 +0100
Subject: [PATCH] fix cross compilation on i586 targets
@@ -10,37 +10,26 @@
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
----
- js/src/configure | 2 +-
- js/src/configure.in | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-diff --git a/js/src/configure b/js/src/configure
-index d019b0fdba44233596541de94307010d85a8e32e..5aa40f757a3dbb7d6887175046f44212c15c2eac 100755
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -5555,7 +5555,7 @@ TARGET_MD_ARCH=unix
+Rebase to 52.8.1
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ js/src/old-configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/old-configure b/js/src/old-configure
+index 8a8ef52..d7afcff 100644
+--- a/js/src/old-configure
++++ b/js/src/old-configure
+@@ -3964,7 +3964,7 @@ IMPORT_LIB_SUFFIX=
DIRENT_INO=d_ino
MOZ_USER_DIR=".mozilla"
--MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
-+MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin'
+-MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin -Wl,-rpath-link,${prefix}/lib"
++MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin"
- MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
-diff --git a/js/src/configure.in b/js/src/configure.in
-index 0673aca12f6d83035549ade2a4a83906bf91f0f0..39b22724f9535ac1a6dba04658c91e4ef667fc47 100644
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -919,7 +919,7 @@ TARGET_MD_ARCH=unix
- DIRENT_INO=d_ino
- MOZ_USER_DIR=".mozilla"
-
--MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
-+MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin'
-
- MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
--
-2.5.0
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch
deleted file mode 100644
index 83f4543..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 1d1fa95c8ff7697e46343385a79a8f7e5c514a87 Mon Sep 17 00:00:00 2001
-From: Zheng Xu <zheng.xu@linaro.org>
-Date: Fri, 2 Sep 2016 17:40:05 +0800
-Subject: [PATCH] Bug 1143022 - Manually mmap on arm64 to ensure high 17 bits
- are clear. r=ehoogeveen
-
-There might be 48-bit VA on arm64 depending on kernel configuration.
-Manually mmap heap memory to align with the assumption made by JS engine.
-
-Change-Id: Ic5d2b2fe4b758b3c87cc0688348af7e71a991146
-
-Upstream-status: Backport
-
----
- js/src/gc/Memory.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 71 insertions(+), 2 deletions(-)
-
-diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
-index e5ad018..4149adf 100644
---- a/js/src/gc/Memory.cpp
-+++ b/js/src/gc/Memory.cpp
-@@ -309,6 +309,75 @@ InitMemorySubsystem()
- #endif
- }
-
-+static inline void *
-+MapMemory(size_t length, int prot, int flags, int fd, off_t offset)
-+{
-+#if defined(__ia64__)
-+ /*
-+ * The JS engine assumes that all allocated pointers have their high 17 bits clear,
-+ * which ia64's mmap doesn't support directly. However, we can emulate it by passing
-+ * mmap an "addr" parameter with those bits clear. The mmap will return that address,
-+ * or the nearest available memory above that address, providing a near-guarantee
-+ * that those bits are clear. If they are not, we return NULL below to indicate
-+ * out-of-memory.
-+ *
-+ * The addr is chosen as 0x0000070000000000, which still allows about 120TB of virtual
-+ * address space.
-+ *
-+ * See Bug 589735 for more information.
-+ */
-+ void *region = mmap((void*)0x0000070000000000, length, prot, flags, fd, offset);
-+ if (region == MAP_FAILED)
-+ return MAP_FAILED;
-+ /*
-+ * If the allocated memory doesn't have its upper 17 bits clear, consider it
-+ * as out of memory.
-+ */
-+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
-+ JS_ALWAYS_TRUE(0 == munmap(region, length));
-+ return MAP_FAILED;
-+ }
-+ return region;
-+#elif defined(__aarch64__)
-+ /*
-+ * There might be similar virtual address issue on arm64 which depends on
-+ * hardware and kernel configurations. But the work around is slightly
-+ * different due to the different mmap behavior.
-+ *
-+ * TODO: Merge with the above code block if this implementation works for
-+ * ia64 and sparc64.
-+ */
-+ const uintptr_t start = UINT64_C(0x0000070000000000);
-+ const uintptr_t end = UINT64_C(0x0000800000000000);
-+ const uintptr_t step = ChunkSize;
-+ /*
-+ * Optimization options if there are too many retries in practice:
-+ * 1. Examine /proc/self/maps to find an available address. This file is
-+ * not always available, however. In addition, even if we examine
-+ * /proc/self/maps, we may still need to retry several times due to
-+ * racing with other threads.
-+ * 2. Use a global/static variable with lock to track the addresses we have
-+ * allocated or tried.
-+ */
-+ uintptr_t hint;
-+ void* region = MAP_FAILED;
-+ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) {
-+ region = mmap((void*)hint, length, prot, flags, fd, offset);
-+ if (region != MAP_FAILED) {
-+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
-+ if (munmap(region, length)) {
-+ MOZ_ASSERT(errno == ENOMEM);
-+ }
-+ region = MAP_FAILED;
-+ }
-+ }
-+ }
-+ return region == MAP_FAILED ? NULL : region;
-+#else
-+ return mmap(NULL, length, prot, flags, fd, offset);
-+#endif
-+}
-+
- void *
- MapAlignedPages(size_t size, size_t alignment)
- {
-@@ -322,12 +391,12 @@ MapAlignedPages(size_t size, size_t alignment)
-
- /* Special case: If we want page alignment, no further work is needed. */
- if (alignment == PageSize) {
-- return mmap(NULL, size, prot, flags, -1, 0);
-+ return MapMemory(size, prot, flags, -1, 0);
- }
-
- /* Overallocate and unmap the region's edges. */
- size_t reqSize = Min(size + 2 * alignment, 2 * size);
-- void *region = mmap(NULL, reqSize, prot, flags, -1, 0);
-+ void *region = MapMemory(reqSize, prot, flags, -1, 0);
- if (region == MAP_FAILED)
- return NULL;
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch
new file mode 100644
index 0000000..4354a9d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch
@@ -0,0 +1,70 @@
+Add RISC-V support
+
+Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1318905]
+
+Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
+
+diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess
+index d5d667d..1277a86 100755
+--- a/build/autoconf/config.guess
++++ b/build/autoconf/config.guess
+@@ -1029,6 +1029,9 @@ EOF
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
+ exit ;;
++ riscv32:Linux:*:* | riscv64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 6fe6591..56e6730 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -362,6 +362,9 @@ def split_triplet(triplet):
+ elif cpu.startswith('aarch64'):
+ canonical_cpu = 'aarch64'
+ endianness = 'little'
++ elif cpu in ('riscv32', 'riscv64'):
++ canonical_cpu = cpu
++ endianness = 'little'
+ else:
+ die('Unknown CPU type: %s' % cpu)
+
+diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
+index 15dd4bf..4f37218 100644
+--- a/mfbt/double-conversion/utils.h
++++ b/mfbt/double-conversion/utils.h
+@@ -60,7 +60,8 @@
+ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
+ defined(__SH4__) || defined(__alpha__) || \
+ defined(_MIPS_ARCH_MIPS32R2) || \
+- defined(__AARCH64EL__) || defined(__aarch64__)
++ defined(__AARCH64EL__) || defined(__aarch64__) || \
++ defined(__riscv)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
+ #if defined(_WIN32)
+diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
+index dfc7cf8..4f8d666 100644
+--- a/python/mozbuild/mozbuild/configure/constants.py
++++ b/python/mozbuild/mozbuild/configure/constants.py
+@@ -48,6 +48,8 @@ CPU_bitness = {
+ 'mips64': 64,
+ 'ppc': 32,
+ 'ppc64': 64,
++ 'riscv32': 32,
++ 'riscv64': 64,
+ 's390': 32,
+ 's390x': 64,
+ 'sparc': 32,
+@@ -79,6 +81,8 @@ CPU_preprocessor_checks = OrderedDict((
+ ('s390', '__s390__'),
+ ('ppc64', '__powerpc64__'),
+ ('ppc', '__powerpc__'),
++ ('riscv32', '__riscv && __SIZEOF_POINTER__ == 4'),
++ ('riscv64', '__riscv && __SIZEOF_POINTER__ == 8'),
+ ('Alpha', '__alpha__'),
+ ('hppa', '__hppa__'),
+ ('sparc64', '__sparc__ && __arch64__'),
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/disable-mozglue-in-stand-alone-builds.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/disable-mozglue-in-stand-alone-builds.patch
new file mode 100644
index 0000000..5487cdb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/disable-mozglue-in-stand-alone-builds.patch
@@ -0,0 +1,74 @@
+From 2fb531ac753500314336ccd508cb2d53f5e768e5 Mon Sep 17 00:00:00 2001
+From: Till Schneidereit <till@tillschneidereit.net>
+Date: Thu, 1 Oct 2015 12:59:09 +0200
+Subject: Disable MOZ_GLUE_IN_PROGRAM in stand-alone builds on all platforms
+
+Otherwise, build fails not being able to find HashBytes.
+
+Patch ported forward to mozjs52 by Philip Chimento
+<philip.chimento@gmail.com>.
+
+https://bugzilla.mozilla.org/show_bug.cgi?id=1176787
+
+Upstream-Status: Backport
+
+Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
+---
+ js/src/old-configure | 20 ++++++++++++--------
+ mozglue/build/moz.build | 2 +-
+ 2 files changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/js/src/old-configure b/js/src/old-configure
+index d7afcff..8a6f142 100644
+--- a/js/src/old-configure
++++ b/js/src/old-configure
+@@ -8546,21 +8546,25 @@ if test -z "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then
+ fi
+
+
+-case "${OS_TARGET}" in
+-Android|WINNT|Darwin)
++if test "$JS_STANDALONE"; then
+ MOZ_GLUE_IN_PROGRAM=
+- ;;
+-*)
+- MOZ_GLUE_IN_PROGRAM=1
+- cat >> confdefs.pytmp <<\EOF
++else
++ case "${OS_TARGET}" in
++ Android|WINNT|Darwin)
++ MOZ_GLUE_IN_PROGRAM=
++ ;;
++ *)
++ MOZ_GLUE_IN_PROGRAM=1
++ cat >> confdefs.pytmp <<\EOF
+ (''' MOZ_GLUE_IN_PROGRAM ''', ' 1 ')
+ EOF
+ cat >> confdefs.h <<\EOF
+ #define MOZ_GLUE_IN_PROGRAM 1
+ EOF
+
+- ;;
+-esac
++ ;;
++ esac
++fi
+
+ if test "$MOZ_MEMORY"; then
+ if test "x$MOZ_DEBUG" = "x1"; then
+diff --git a/mozglue/build/moz.build b/mozglue/build/moz.build
+index d289747..e3be5a2 100644
+--- a/mozglue/build/moz.build
++++ b/mozglue/build/moz.build
+@@ -6,7 +6,7 @@
+
+ # Build mozglue as a shared lib on Windows, OSX and Android.
+ # If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in
+-if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'):
++if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android') and not CONFIG['JS_STANDALONE']:
+ SharedLibrary('mozglue')
+ else:
+ Library('mozglue')
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch
deleted file mode 100644
index 43c4590..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-fix the compile error of powerpc64
-
-Upstream-status: Accepted
-
- fix the following error
- |error: 'jsuword' does not name a type
-
-
---- a/js/src/jsval.hold 2015-04-24 01:15:06.692970731 -0500
-+++ b/js/src/jsval.h 2015-04-24 01:15:41.792969478 -0500
-@@ -304,7 +304,6 @@
- int32_t i32;
- uint32_t u32;
- JSWhyMagic why;
-- jsuword word;
- } payload;
- } s;
- double asDouble;
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch
deleted file mode 100644
index abde01b..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-fix the compile error do to perl update
-
-Upstream-status: Inappropriate
-
-
-Signed-of-by: Armin Kuster <akuster808@gmail.com>
-
-Index: src/config/milestone.pl
-===================================================================
---- src.orig/config/milestone.pl
-+++ src/config/milestone.pl
-@@ -55,7 +55,7 @@ $MILESTONE_FILE = "$TOPSRCDIR/config/mi
- #
- my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
-
--if (defined(@TEMPLATE_FILE)) {
-+if (@TEMPLATE_FILE) {
- my $TFILE;
-
- foreach $TFILE (@TEMPLATE_FILE) {
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
deleted file mode 100644
index 49b7f15..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
-HOMEPAGE = "http://www.mozilla.org/js/"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://../../LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
-
-SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/js/${BPN}${PV}.tar.gz \
- file://0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch \
- file://0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch \
- file://0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch;patchdir=../../ \
- file://0003-Add-AArch64-support.patch;patchdir=../../ \
- file://0004-mozbug746112-no-decommit-on-large-pages.patch;patchdir=../../ \
- file://0005-aarch64-64k-page.patch;patchdir=../../ \
- file://0001-regenerate-configure.patch;patchdir=../../ \
- file://fix-the-compile-error-of-powerpc64.patch;patchdir=../../ \
- file://fix_milestone_compile_issue.patch \
- file://0010-fix-cross-compilation-on-i586-targets.patch;patchdir=../../ \
- file://Manually_mmap_heap_memory_esr17.patch;patchdir=../../ \
- file://0001-compare-the-first-character-of-string-to-be-null-or-.patch;patchdir=../../ \
- "
-
-SRC_URI[md5sum] = "20b6f8f1140ef6e47daa3b16965c9202"
-SRC_URI[sha256sum] = "321e964fe9386785d3bf80870640f2fa1c683e32fe988eeb201b04471c172fba"
-
-S = "${WORKDIR}/${BPN}${PV}/js/src"
-
-inherit autotools pkgconfig perlnative pythonnative
-
-DEPENDS += "nspr zlib"
-
-# Host specific flags need to be defined, otherwise target flags will be passed to the host
-export HOST_CFLAGS = "${BUILD_CFLAGS}"
-export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
-export HOST_LDFLAGS = "${BUILD_LDFLAGS}"
-
-# nspr's package-config is ignored so set libs manually
-EXTRA_OECONF = " \
- --target=${TARGET_SYS} \
- --host=${BUILD_SYS} \
- --build=${BUILD_SYS} \
- --prefix=${prefix} \
- --libdir=${libdir} \
- --with-nspr-libs='-lplds4 -lplc4 -lnspr4' \
- --enable-threadsafe \
- --disable-static \
-"
-EXTRA_OECONF_append_armv4 = " \
- --disable-methodjit \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
-
-# mozjs requires autoreconf 2.13
-do_configure() {
- export HOST_CFLAGS="${BUILD_CFLAGS}"
- export HOST_CXXFLAGS="${BUILD_CPPFLAGS}"
- export HOST_LDFLAGS="${BUILD_LDFLAGS}"
- ( cd ${S}
- gnu-configize --force
- mv config.guess config.sub build/autoconf )
- ${S}/configure ${EXTRA_OECONF}
-}
-
-# patch.bbclass will try to apply the patches already present and fail, so clean them out
-do_unpack() {
- tar -xvf ${DL_DIR}/mozjs17.0.0.tar.gz -C ${WORKDIR}/
- rm -rf ${WORKDIR}/${BPN}${PV}/patches
-}
-
-
-PACKAGES =+ "lib${BPN}"
-FILES_lib${BPN} += "${libdir}/lib*.so"
-FILES_${PN}-dev += "${bindir}/js17-config"
-
-# Fails to build with thumb-1 (qemuarm)
-#| {standard input}: Assembler messages:
-#| {standard input}:2172: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r2,r1,LSR#20'
-#| {standard input}:2173: Error: unshifted register required -- `bic r2,r2,#(1<<11)'
-#| {standard input}:2174: Error: unshifted register required -- `orr r1,r1,#(1<<20)'
-#| {standard input}:2176: Error: instruction not supported in Thumb16 mode -- `subs r2,r2,#0x300'
-#| {standard input}:2178: Error: instruction not supported in Thumb16 mode -- `subs r5,r2,#52'
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_52.9.1.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_52.9.1.bb
new file mode 100644
index 0000000..0dfe2f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_52.9.1.bb
@@ -0,0 +1,111 @@
+SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
+HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
+
+SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/m/mozjs52/mozjs52_52.9.1.orig.tar.xz \
+ file://0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch \
+ file://0010-fix-cross-compilation-on-i586-targets.patch \
+ file://0001-do-not-create-python-environment.patch \
+ file://0002-fix-cannot-find-link.patch \
+ file://0003-workaround-autoconf-2.13-detection-failed.patch \
+ file://0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch \
+ file://0005-fix-do_compile-failed-on-mips.patch \
+ file://disable-mozglue-in-stand-alone-builds.patch \
+ file://add-riscv-support.patch \
+ file://0001-mozjs-fix-coredump-caused-by-getenv.patch \
+ "
+SRC_URI_append_libc-musl = " \
+ file://0006-support-musl.patch \
+ "
+SRC_URI_append_mipsarchn32 = " \
+ file://0001-fix-compiling-failure-on-mips64-n32-bsp.patch \
+ "
+
+SRC_URI[md5sum] = "c9473c625ee0a9edaaac8b742ff24c5f"
+SRC_URI[sha256sum] = "f9324a6724233ab15f10381fe13e635e89d725ef1e78025a0a7d36c58a84a0f9"
+
+inherit autotools pkgconfig perlnative pythonnative
+
+inherit distro_features_check
+CONFLICT_DISTRO_FEATURES_mipsarchn32 = "ld-is-gold"
+
+DEPENDS += "nspr zlib"
+
+# Disable null pointer optimization in gcc >= 6
+# https://bugzilla.redhat.com/show_bug.cgi?id=1328045
+CFLAGS += "-fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks"
+CXXFLAGS += "-fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks"
+
+# nspr's package-config is ignored so set libs manually
+EXTRA_OECONF = " \
+ --target=${TARGET_SYS} \
+ --host=${BUILD_SYS} \
+ --prefix=${prefix} \
+ --libdir=${libdir} \
+ --disable-tests \
+ --with-nspr-libs='-lplds4 -lplc4 -lnspr4' \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "--enable-gold", '--disable-gold', d)} \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[x11] = "--x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},,virtual/libx11"
+
+EXTRA_OEMAKE_task-compile += "OS_LDFLAGS='-Wl,-latomic ${LDFLAGS}'"
+EXTRA_OEMAKE_task-install += "STATIC_LIBRARY_NAME=js_static"
+
+do_configure() {
+ export SHELL="/bin/sh"
+ export TMP="${B}"
+ ${S}/js/src/configure ${EXTRA_OECONF}
+}
+
+do_compile_prepend() {
+ export SHELL="/bin/sh"
+ export S
+ export PYTHONPATH
+ cd ${S}
+ for sub_dir in python testing/mozbase; do
+ for module_dir in `ls $sub_dir -1`;do
+ [ $module_dir = "virtualenv" ] && continue
+ if [ -d "${S}/$sub_dir/$module_dir" ];then
+ PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
+ fi
+ done
+ done
+ PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
+ cd -
+}
+
+do_install_prepend() {
+ export SHELL="/bin/sh"
+ export S
+ export PYTHONPATH
+ cd ${S}
+ for sub_dir in python testing/mozbase; do
+ for module_dir in `ls $sub_dir -1`;do
+ [ $module_dir = "virtualenv" ] && continue
+ if [ -d "${S}/$sub_dir/$module_dir" ];then
+ PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
+ fi
+ done
+ done
+ PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
+ cd -
+}
+
+PACKAGES =+ "lib${BPN}"
+FILES_lib${BPN} += "${libdir}/lib*.so"
+FILES_${PN}-dev += "${bindir}/js52-config"
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:2172: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r2,r1,LSR#20'
+#| {standard input}:2173: Error: unshifted register required -- `bic r2,r2,#(1<<11)'
+#| {standard input}:2174: Error: unshifted register required -- `orr r1,r1,#(1<<20)'
+#| {standard input}:2176: Error: instruction not supported in Thumb16 mode -- `subs r2,r2,#0x300'
+#| {standard input}:2178: Error: instruction not supported in Thumb16 mode -- `subs r5,r2,#52'
+ARM_INSTRUCTION_SET_armv5 = "arm"
+ARM_INSTRUCTION_SET_armv4 = "arm"
+
+DISABLE_STATIC = ""
diff --git a/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb b/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
index 13e67cb..419b3ee 100644
--- a/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
@@ -2,25 +2,23 @@
DESCRIPTION = "openlmi-tools is a set of command line tools for Openlmi providers."
HOMEPAGE = "http://www.openlmi.org/"
LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+LIC_FILES_CHKSUM = "file://../COPYING;md5=75859989545e37968a99b631ef42722e"
SECTION = "System/Management"
inherit setuptools
-DEPENDS = "python-native pywbem-native python-m2crypto pywbem"
+DEPENDS = "python-native python-pywbem-native python-m2crypto python-pywbem"
SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
"
SRC_URI[md5sum] = "e156246cb7b49753db82f4ddf7f03e50"
SRC_URI[sha256sum] = "292b8f5f2250655a4add8183c529b73358bc980bd4f23cfa484a940953fce9e4"
-do_compile_prepend() {
- cd cli
+S = "${WORKDIR}/${BP}/cli"
+
+do_configure_prepend() {
sed 's/@@VERSION@@/$(VERSION)/g' setup.py.skel >setup.py
}
-do_install_prepend() {
- cd cli
-}
python() {
if 'meta-python' not in d.getVar('BBFILE_COLLECTIONS').split():
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Port-to-OpenSSL-1.1.0.patch b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Port-to-OpenSSL-1.1.0.patch
new file mode 100644
index 0000000..49afa56
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Port-to-OpenSSL-1.1.0.patch
@@ -0,0 +1,162 @@
+From f78643d2388dd0697f83f17880403253a0596d83 Mon Sep 17 00:00:00 2001
+From: Vitezslav Crhonek <vcrhonek@redhat.com>
+Date: Wed, 5 Sep 2018 11:23:46 -0700
+Subject: [PATCH 1/2] Port to OpenSSL 1.1.0
+
+Upstream-Status: Submitted [https://github.com/Openwsman/openwsman/pull/99]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/wsman-curl-client-transport.c | 6 +++-
+ src/server/shttpd/io_ssl.c | 17 ----------
+ src/server/shttpd/shttpd.c | 20 ++++--------
+ src/server/shttpd/ssl.h | 46 ---------------------------
+ 4 files changed, 12 insertions(+), 77 deletions(-)
+
+diff --git a/src/lib/wsman-curl-client-transport.c b/src/lib/wsman-curl-client-transport.c
+index cd7f517a..e64ad097 100644
+--- a/src/lib/wsman-curl-client-transport.c
++++ b/src/lib/wsman-curl-client-transport.c
+@@ -241,12 +241,16 @@ write_handler( void *ptr, size_t size, size_t nmemb, void *data)
+ static int ssl_certificate_thumbprint_verify_callback(X509_STORE_CTX *ctx, void *arg)
+ {
+ unsigned char *thumbprint = (unsigned char *)arg;
+- X509 *cert = ctx->cert;
+ EVP_MD *tempDigest;
+
+ unsigned char tempFingerprint[EVP_MAX_MD_SIZE];
+ unsigned int tempFingerprintLen;
+ tempDigest = (EVP_MD*)EVP_sha1( );
++
++ X509 *cert = X509_STORE_CTX_get_current_cert(ctx);
++ if(!cert)
++ return 0;
++
+ if ( X509_digest(cert, tempDigest, tempFingerprint, &tempFingerprintLen ) <= 0)
+ return 0;
+ if(!memcmp(tempFingerprint, thumbprint, tempFingerprintLen))
+diff --git a/src/server/shttpd/io_ssl.c b/src/server/shttpd/io_ssl.c
+index 6de0db2a..7ac669e4 100644
+--- a/src/server/shttpd/io_ssl.c
++++ b/src/server/shttpd/io_ssl.c
+@@ -11,23 +11,6 @@
+ #include "defs.h"
+
+ #if !defined(NO_SSL)
+-struct ssl_func ssl_sw[] = {
+- {"SSL_free", {0}},
+- {"SSL_accept", {0}},
+- {"SSL_connect", {0}},
+- {"SSL_read", {0}},
+- {"SSL_write", {0}},
+- {"SSL_get_error", {0}},
+- {"SSL_set_fd", {0}},
+- {"SSL_new", {0}},
+- {"SSL_CTX_new", {0}},
+- {"SSLv23_server_method", {0}},
+- {"SSL_library_init", {0}},
+- {"SSL_CTX_use_PrivateKey_file", {0}},
+- {"SSL_CTX_use_certificate_file",{0}},
+- {NULL, {0}}
+-};
+-
+ void
+ _shttpd_ssl_handshake(struct stream *stream)
+ {
+diff --git a/src/server/shttpd/shttpd.c b/src/server/shttpd/shttpd.c
+index 5876392e..4c1dbf32 100644
+--- a/src/server/shttpd/shttpd.c
++++ b/src/server/shttpd/shttpd.c
+@@ -1476,20 +1476,14 @@ set_ssl(struct shttpd_ctx *ctx, const char *pem)
+ int retval = FALSE;
+ EC_KEY* key;
+
+- /* Load SSL library dynamically */
+- if ((lib = dlopen(SSL_LIB, RTLD_LAZY)) == NULL) {
+- _shttpd_elog(E_LOG, NULL, "set_ssl: cannot load %s", SSL_LIB);
+- return (FALSE);
+- }
+-
+- for (fp = ssl_sw; fp->name != NULL; fp++)
+- if ((fp->ptr.v_void = dlsym(lib, fp->name)) == NULL) {
+- _shttpd_elog(E_LOG, NULL,"set_ssl: cannot find %s", fp->name);
+- return (FALSE);
+- }
+-
+ /* Initialize SSL crap */
++ debug("Initialize SSL");
++ SSL_load_error_strings();
++ #if OPENSSL_VERSION_NUMBER < 0x10100000L
+ SSL_library_init();
++ #else
++ OPENSSL_init_ssl(0, NULL);
++ #endif
+
+ if ((CTX = SSL_CTX_new(SSLv23_server_method())) == NULL)
+ _shttpd_elog(E_LOG, NULL, "SSL_CTX_new error");
+@@ -1532,7 +1526,7 @@ set_ssl(struct shttpd_ctx *ctx, const char *pem)
+ if (strncasecmp(protocols[idx].name, ssl_disabled_protocols, blank_ptr-ssl_disabled_protocols) == 0) {
+ //_shttpd_elog(E_LOG, NULL, "SSL: disable %s protocol", protocols[idx].name);
+ debug("SSL: disable %s protocol", protocols[idx].name);
+- SSL_CTX_ctrl(CTX, SSL_CTRL_OPTIONS, protocols[idx].opt, NULL);
++ SSL_CTX_set_options(CTX, protocols[idx].opt);
+ break;
+ }
+ }
+diff --git a/src/server/shttpd/ssl.h b/src/server/shttpd/ssl.h
+index a863f2c7..8dad0109 100644
+--- a/src/server/shttpd/ssl.h
++++ b/src/server/shttpd/ssl.h
+@@ -12,50 +12,4 @@
+
+ #include <openssl/ssl.h>
+
+-#else
+-
+-/*
+- * Snatched from OpenSSL includes. I put the prototypes here to be independent
+- * from the OpenSSL source installation. Having this, shttpd + SSL can be
+- * built on any system with binary SSL libraries installed.
+- */
+-
+-typedef struct ssl_st SSL;
+-typedef struct ssl_method_st SSL_METHOD;
+-typedef struct ssl_ctx_st SSL_CTX;
+-
+-#define SSL_ERROR_WANT_READ 2
+-#define SSL_ERROR_WANT_WRITE 3
+-#define SSL_ERROR_SYSCALL 5
+-#define SSL_FILETYPE_PEM 1
+-
+ #endif
+-
+-/*
+- * Dynamically loaded SSL functionality
+- */
+-struct ssl_func {
+- const char *name; /* SSL function name */
+- union variant ptr; /* Function pointer */
+-};
+-
+-extern struct ssl_func ssl_sw[];
+-
+-#define FUNC(x) ssl_sw[x].ptr.v_func
+-
+-#define SSL_free(x) (* (void (*)(SSL *)) FUNC(0))(x)
+-#define SSL_accept(x) (* (int (*)(SSL *)) FUNC(1))(x)
+-#define SSL_connect(x) (* (int (*)(SSL *)) FUNC(2))(x)
+-#define SSL_read(x,y,z) (* (int (*)(SSL *, void *, int)) FUNC(3))((x),(y),(z))
+-#define SSL_write(x,y,z) \
+- (* (int (*)(SSL *, const void *,int)) FUNC(4))((x), (y), (z))
+-#define SSL_get_error(x,y)(* (int (*)(SSL *, int)) FUNC(5))((x), (y))
+-#define SSL_set_fd(x,y) (* (int (*)(SSL *, int)) FUNC(6))((x), (y))
+-#define SSL_new(x) (* (SSL * (*)(SSL_CTX *)) FUNC(7))(x)
+-#define SSL_CTX_new(x) (* (SSL_CTX * (*)(SSL_METHOD *)) FUNC(8))(x)
+-#define SSLv23_server_method() (* (SSL_METHOD * (*)(void)) FUNC(9))()
+-#define SSL_library_init() (* (int (*)(void)) FUNC(10))()
+-#define SSL_CTX_use_PrivateKey_file(x,y,z) (* (int (*)(SSL_CTX *, \
+- const char *, int)) FUNC(11))((x), (y), (z))
+-#define SSL_CTX_use_certificate_file(x,y,z) (* (int (*)(SSL_CTX *, \
+- const char *, int)) FUNC(12))((x), (y), (z))
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0002-Check-OpenSSL-version-number-to-allow-builds-with-ol.patch b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0002-Check-OpenSSL-version-number-to-allow-builds-with-ol.patch
new file mode 100644
index 0000000..5ae2e00
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0002-Check-OpenSSL-version-number-to-allow-builds-with-ol.patch
@@ -0,0 +1,48 @@
+From 75669b077bd54bedbc086c60cbe137e7f4c685b5 Mon Sep 17 00:00:00 2001
+From: Vitezslav Crhonek <vcrhonek@redhat.com>
+Date: Mon, 24 Apr 2017 11:28:39 +0200
+Subject: [PATCH 2/2] Check OpenSSL version number to allow builds with older
+ version
+
+Upstream-Status: Submitted [https://github.com/Openwsman/openwsman/pull/99]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/wsman-curl-client-transport.c | 4 ++++
+ src/server/shttpd/shttpd.c | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/src/lib/wsman-curl-client-transport.c b/src/lib/wsman-curl-client-transport.c
+index e64ad097..4fc047e8 100644
+--- a/src/lib/wsman-curl-client-transport.c
++++ b/src/lib/wsman-curl-client-transport.c
+@@ -247,7 +247,11 @@ static int ssl_certificate_thumbprint_verify_callback(X509_STORE_CTX *ctx, void
+ unsigned int tempFingerprintLen;
+ tempDigest = (EVP_MD*)EVP_sha1( );
+
++ #if OPENSSL_VERSION_NUMBER < 0x10100000L
++ X509 *cert = ctx->cert;
++ #else
+ X509 *cert = X509_STORE_CTX_get_current_cert(ctx);
++ #endif
+ if(!cert)
+ return 0;
+
+diff --git a/src/server/shttpd/shttpd.c b/src/server/shttpd/shttpd.c
+index 4c1dbf32..161720c8 100644
+--- a/src/server/shttpd/shttpd.c
++++ b/src/server/shttpd/shttpd.c
+@@ -1526,7 +1526,11 @@ set_ssl(struct shttpd_ctx *ctx, const char *pem)
+ if (strncasecmp(protocols[idx].name, ssl_disabled_protocols, blank_ptr-ssl_disabled_protocols) == 0) {
+ //_shttpd_elog(E_LOG, NULL, "SSL: disable %s protocol", protocols[idx].name);
+ debug("SSL: disable %s protocol", protocols[idx].name);
++ #if OPENSSL_VERSION_NUMBER < 0x10100000L
++ SSL_CTX_ctrl(CTX, SSL_CTRL_OPTIONS, protocols[idx].opt, NULL);
++ #else
+ SSL_CTX_set_options(CTX, protocols[idx].opt);
++ #endif
+ break;
+ }
+ }
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb
deleted file mode 100644
index f618f02..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb
+++ /dev/null
@@ -1,70 +0,0 @@
-SUMMARY = "Opensource Implementation of WS-Management"
-DESCRIPTION = "Openwsman is a project intended to provide an open-source \
-implementation of the Web Services Management specipication \
-(WS-Management) and to expose system management information on the \
-Linux operating system using the WS-Management protocol. WS-Management \
-is based on a suite of web services specifications and usage \
-requirements that exposes a set of operations focused on and covers \
-all system management aspects. \
-Openwsman Server and service libraries"
-HOMEPAGE = "http://www.openwsman.org/"
-SECTION = "Applications/System"
-
-DEPENDS = "curl libxml2 openssl libpam"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-SRCREV = "feb7ec9b004fcaea0dbe65ce8a1a79cc29dd994c"
-PV = "2.6.3"
-
-SRC_URI = "git://github.com/Openwsman/openwsman.git \
- file://libssl-is-required-if-eventint-supported.patch \
- file://openwsmand.service \
- file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \
- "
-
-S = "${WORKDIR}/git"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba"
-
-inherit systemd cmake pkgconfig pythonnative perlnative
-
-SYSTEMD_SERVICE_${PN} = "openwsmand.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd ", '', d)}"
-
-EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \
- -DBUILD_LIBCIM=NO \
- -DBUILD_PERL=YES \
- -DCMAKE_INSTALL_PREFIX=${prefix} \
- -DLIB=${baselib} \
- "
-
-do_configure_prepend() {
- export STAGING_INCDIR=${STAGING_INCDIR}
- export STAGING_LIBDIR=${STAGING_LIBDIR}
-}
-
-do_install_append() {
- install -d ${D}/${sysconfdir}/init.d
- install -m 755 ${B}/etc/init/openwsmand.sh ${D}/${sysconfdir}/init.d/openwsmand
- ln -sf ${sysconfdir}/init.d/openwsmand ${D}/${sbindir}/rcopenwsmand
- chmod 755 ${D}/${sysconfdir}/openwsman/owsmangencert.sh
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/openwsmand.service ${D}/${systemd_unitdir}/system
-
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/openwsmand.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/openwsmand.service
- sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/openwsmand.service
- fi
-}
-
-FILES_${PN}-dbg += "${libdir}/openwsman/plugins/.debug/ \
- ${libdir}/openwsman/authenticators/.debug/ \
- "
-
-INSANE_SKIP_${PN} = "dev-so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.5.bb b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.5.bb
new file mode 100644
index 0000000..5fba385
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.5.bb
@@ -0,0 +1,73 @@
+SUMMARY = "Opensource Implementation of WS-Management"
+DESCRIPTION = "Openwsman is a project intended to provide an open-source \
+implementation of the Web Services Management specipication \
+(WS-Management) and to expose system management information on the \
+Linux operating system using the WS-Management protocol. WS-Management \
+is based on a suite of web services specifications and usage \
+requirements that exposes a set of operations focused on and covers \
+all system management aspects. \
+Openwsman Server and service libraries"
+HOMEPAGE = "http://www.openwsman.org/"
+SECTION = "Applications/System"
+
+DEPENDS = "curl libxml2 openssl libpam"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SRCREV = "e90e5c96e3006c372bf45e0185e33c9250e67df6"
+PV = "2.6.5"
+
+SRC_URI = "git://github.com/Openwsman/openwsman.git \
+ file://libssl-is-required-if-eventint-supported.patch \
+ file://openwsmand.service \
+ file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \
+ file://0001-Port-to-OpenSSL-1.1.0.patch \
+ file://0002-Check-OpenSSL-version-number-to-allow-builds-with-ol.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba"
+
+inherit systemd cmake pkgconfig pythonnative perlnative
+
+SYSTEMD_SERVICE_${PN} = "openwsmand.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd ", '', d)}"
+
+EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \
+ -DBUILD_LIBCIM=NO \
+ -DBUILD_PERL=YES \
+ -DCMAKE_INSTALL_PREFIX=${prefix} \
+ -DLIB=${baselib} \
+ "
+
+do_configure_prepend() {
+ export STAGING_INCDIR=${STAGING_INCDIR}
+ export STAGING_LIBDIR=${STAGING_LIBDIR}
+}
+
+do_install_append() {
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 755 ${B}/etc/init/openwsmand.sh ${D}/${sysconfdir}/init.d/openwsmand
+ ln -sf ${sysconfdir}/init.d/openwsmand ${D}/${sbindir}/rcopenwsmand
+ chmod 755 ${D}/${sysconfdir}/openwsman/owsmangencert.sh
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/openwsmand.service ${D}/${systemd_unitdir}/system
+
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+ sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+ fi
+}
+
+FILES_${PN}-dbg += "${libdir}/openwsman/plugins/.debug/ \
+ ${libdir}/openwsman/authenticators/.debug/ \
+ "
+
+INSANE_SKIP_${PN} = "dev-so"
+RDEPENDS_${PN} = "ruby"
diff --git a/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
index d986da9..13479a9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
@@ -17,26 +17,9 @@
S = "${WORKDIR}/${BPN}_${PV}"
do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${S}/bin/* ${D}${bindir}
-}
-
-# all3: to build bin/7za, bin/7z (with its plugins), bin/7zr and bin/7zCon.sfx
-EXTRA_OEMAKE_class-native = "all3"
-
-do_install_class-native() {
- install -d ${D}${bindir}
- install -d ${D}${bindir}/Codecs
- install -m 0755 ${S}/bin/7* ${D}${bindir}
- install -m 0755 ${S}/bin/Codecs/* ${D}${bindir}/Codecs
-
- # Create a shell script wrapper to execute next to 7z.so
- mv ${D}${bindir}/7z ${D}${bindir}/7z.bin
- cat > ${D}${bindir}/7z << 'EOF'
-#!/bin/sh
-exec "$(dirname "$0")"/7z.bin "$@"
-EOF
- chmod 0755 ${D}${bindir}/7z
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/bin/* ${D}${bindir}
+ ln -s 7za ${D}${bindir}/7z
}
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch b/meta-openembedded/meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch
new file mode 100644
index 0000000..9ff85b1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch
@@ -0,0 +1,64 @@
+From 2650bb3bd3644784359be373252b0436873ca8cb Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Fri, 28 Sep 2018 16:44:37 +0200
+Subject: [PATCH] Make resulting cmake config relocatable
+
+This change avoids hardcoded install prefix in the p8-platform-config.cmake.
+Especially important when doing cross compilation with Yocto for example.
+
+Upstream-Status: Submitted [https://github.com/Pulse-Eight/platform/pull/38]
+
+---
+ CMakeLists.txt | 4 ----
+ p8-platform-config.cmake.in | 13 +++++++++----
+ 2 files changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7144b0b..f2db66e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,10 +22,6 @@ if(WIN32)
+ src/windows/os-threads.cpp)
+ endif()
+
+-set(p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform")
+-IF(WIN32)
+- LIST(APPEND p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform/windows")
+-ENDIF(WIN32)
+ set(p8-platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+
+ if(NOT ${CORE_SYSTEM_NAME} STREQUAL "")
+diff --git a/p8-platform-config.cmake.in b/p8-platform-config.cmake.in
+index 47f30f1..b08e96c 100644
+--- a/p8-platform-config.cmake.in
++++ b/p8-platform-config.cmake.in
+@@ -9,17 +9,22 @@
+ # p8-platform_LIBRARY_DIRS - directories in which the libraries are situated
+ #
+ # propagate these properties from one build system to the other
++get_filename_component(_p8-platform_rootdir ${CMAKE_CURRENT_LIST_DIR}/../ ABSOLUTE)
++
+ set (p8-platform_VERSION "@p8-platform_VERSION_MAJOR@.@p8-platform_VERSION_MINOR@")
+-set (p8-platform_INCLUDE_DIRS @p8-platform_INCLUDE_DIRS@ @CMAKE_INSTALL_PREFIX@/include)
+-set (p8-platform_LIBRARY_DIRS "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@")
++set (p8-platform_INCLUDE_DIRS "${_p8-platform_rootdir}/include" "${_p8-platform_rootdir}/include/p8-platform")
++if(WIN32)
++ list(APPEND p8-platform_INCLUDE_DIRS "${_p8-platform_rootdir}/include/p8-platform/windows")
++endif(WIN32)
++set (p8-platform_LIBRARY_DIRS "${_p8-platform_rootdir}")
+ set (p8-platform_LINKER_FLAGS "@p8-platform_LINKER_FLAGS@")
+ set (p8-platform_CONFIG_VARS "@p8-platform_CONFIG_VARS@")
+
+ # libraries come from the build tree where this file was generated
+ if(WIN32)
+- set (p8-platform_LIBRARY "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/p8-platform.lib")
++ set (p8-platform_LIBRARY "${_p8-platform_rootdir}/p8-platform.lib")
+ else(WIN32)
+- set (p8-platform_LIBRARY "-L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ -lp8-platform")
++ set (p8-platform_LIBRARY "-L${_p8-platform_rootdir} -lp8-platform")
+ endif(WIN32)
+ set (p8-platform_LIBRARIES ${p8-platform_LIBRARY} "@p8-platform_LIBRARIES@")
+ mark_as_advanced (p8-platform_LIBRARY)
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/p8platform/p8platform_git.bb b/meta-openembedded/meta-oe/recipes-extended/p8platform/p8platform_git.bb
index f6347c2..0690d4b 100644
--- a/meta-openembedded/meta-oe/recipes-extended/p8platform/p8platform_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/p8platform/p8platform_git.bb
@@ -4,10 +4,11 @@
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://src/os.h;md5=752555fa94e82005d45fd201fee5bd33"
-PV = "2.1.0"
+PV = "2.1.0.1"
-SRC_URI = "git://github.com/Pulse-Eight/platform.git"
-SRCREV = "d7bceb64541cb046421cbcd4c98d91e9bf24822f"
+SRC_URI = "git://github.com/Pulse-Eight/platform.git \
+ file://0001-Make-resulting-cmake-config-relocatable.patch"
+SRCREV = "2d90f98620e25f47702c9e848380c0d93f29462b"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
new file mode 100644
index 0000000..95d879d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
@@ -0,0 +1,22 @@
+SUMMARY = "PAM cached credentials module"
+HOMEPAGE = "https://www.padl.com/OSS/pam_ccreds.html"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libpam openssl db"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SRCREV = "e2145df09469bf84878e4729b4ecd814efb797d1"
+
+SRC_URI = "git://github.com/PADL/pam_ccreds"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTRA_OECONF += "--libdir=${base_libdir} "
+
+FILES_${PN} += "${base_libdir}/security/pam*"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
new file mode 100644
index 0000000..c59a259
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "PAM searchless LDAP authentication module"
+HOMEPAGE = "https://github.com/rmbreak/pam_ldapdb"
+BUGTRACKER = "https://github.com/rmbreak/pam_ldapdb/issues"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=41ab94182d94be9bb35e2a8b933f1e7d"
+
+DEPENDS = "libpam openldap"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SRC_URI = "https://github.com/rmbreak/pam_ldapdb/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
+SRC_URI[md5sum] = "2dd4f1370fcfe995ee0ad09611109b87"
+SRC_URI[sha256sum] = "8ed92b36523556bb5d9bf3eb33a1035e46041d4be767c8d62136930c0ca0e45b"
+
+S = "${WORKDIR}/pam_ldapdb-${PV}"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} PAMDIR=${base_libdir}/security
+}
+
+FILES_${PN} += "${base_libdir}/security/pam_ldapdb.so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
index 1638c41..2a461fc 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
@@ -11,7 +11,7 @@
SRC_URI[md5sum] = "8dbe90ab3625e545036333e6f51ccf1d"
SRC_URI[sha256sum] = "3c53d358d6eaed1b211239df017c27c6f9970995d14102ae67bae16d4f47a763"
-DEPENDS += "libpam openssl"
+DEPENDS += "libpam openssl10"
inherit distro_features_check
REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0001-jemalloc-jemalloc.cfg-Specify-the-host-when-building.patch b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0001-jemalloc-jemalloc.cfg-Specify-the-host-when-building.patch
new file mode 100644
index 0000000..747538b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0001-jemalloc-jemalloc.cfg-Specify-the-host-when-building.patch
@@ -0,0 +1,29 @@
+From 2a22dc96c3bbb5c9bbcc008f58d4f5c64e3d19e6 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 23 Jul 2018 11:23:39 -0700
+Subject: [PATCH] jemalloc/jemalloc.cfg: Specify the host when building
+ jemalloc
+
+To avoid this error:
+ configure: error: cannot run C compiled programs.
+ If you meant to cross compile, use `--host'.
+when cross compiling specify the host when configuring jemalloc.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [configuration]
+---
+ src/jemalloc/jemalloc.cfg | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/jemalloc/jemalloc.cfg b/src/jemalloc/jemalloc.cfg
+index 196129de6..79ebbab1c 100644
+--- a/src/jemalloc/jemalloc.cfg
++++ b/src/jemalloc/jemalloc.cfg
+@@ -3,3 +3,4 @@
+ --with-private-namespace=je_vmem_
+ --disable-xmalloc
+ --disable-munmap
++--host=${HOST_SYS}
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0002-Makefile-Don-t-install-the-docs.patch b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0002-Makefile-Don-t-install-the-docs.patch
new file mode 100644
index 0000000..bd1b97c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0002-Makefile-Don-t-install-the-docs.patch
@@ -0,0 +1,26 @@
+From 460a96e390cb80278784cfe36629e280fe7ffef7 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 23 Jul 2018 11:31:17 -0700
+Subject: [PATCH 2/2] Makefile: Don't install the docs
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [disable feature]
+---
+ Makefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 224a315f6..ce7f84afb 100644
+--- a/Makefile
++++ b/Makefile
+@@ -144,7 +144,6 @@ rpm dpkg: pkg-clean source
+
+ install uninstall:
+ $(MAKE) -C src $@
+- $(MAKE) -C doc $@
+
+ .PHONY: all clean clobber test check cstyle check-license install uninstall\
+ source rpm dpkg pkg-clean pcheck check-remote format doc $(SUBDIRS)
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0003-Makefile-Don-t-build-the-examples.patch b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0003-Makefile-Don-t-build-the-examples.patch
new file mode 100644
index 0000000..f75d941
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0003-Makefile-Don-t-build-the-examples.patch
@@ -0,0 +1,34 @@
+From a7f07dca2468ea226d2f07fc0105166e75cadaf8 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Thu, 6 Sep 2018 16:18:50 -0700
+Subject: [PATCH] Makefile: Don't build the examples
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [disable feature]
+---
+ src/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 4b50dd8b5..e00501e31 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -38,13 +38,13 @@ include $(TOP)/src/version.inc
+
+ TARGETS = libpmem libvmem libpmemblk libpmemlog libpmemobj libpmempool\
+ libpmemcto libvmmalloc tools
+-ALL_TARGETS = $(TARGETS) common librpmem examples benchmarks
++ALL_TARGETS = $(TARGETS) common librpmem benchmarks
+
+ SCOPE_DIRS = $(TARGETS) common librpmem rpmem_common
+
+ DEBUG_RELEASE_TARGETS = common libpmem libvmem libpmemblk libpmemlog libpmemobj\
+ libpmempool libvmmalloc librpmem libpmemcto
+-RELEASE_TARGETS = tools examples benchmarks
++RELEASE_TARGETS = tools benchmarks
+
+ CLEAN_NO_JE_TARGETS = $(ALL_TARGETS) rpmem_common test
+ CLEAN_TARGETS = $(CLEAN_NO_JE_TARGETS) jemalloc
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0004-os_posix-Manually-implement-secure_getenv-if-require.patch b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0004-os_posix-Manually-implement-secure_getenv-if-require.patch
new file mode 100644
index 0000000..624f17b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0004-os_posix-Manually-implement-secure_getenv-if-require.patch
@@ -0,0 +1,30 @@
+From 33affa9ee97691efb73f439fcdba4adb8625a26a Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 10 Sep 2018 12:59:48 -0700
+Subject: [PATCH] os_posix: Manually implement secure_getenv() if required
+
+Manually implement the secure_getenv() if we need to, this is required
+if using musl.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Pending
+---
+ src/common/os_posix.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/common/os_posix.c b/src/common/os_posix.c
+index 2d70a0a29..fb09b6ce0 100644
+--- a/src/common/os_posix.c
++++ b/src/common/os_posix.c
+@@ -261,7 +261,7 @@ os_setenv(const char *name, const char *value, int overwrite)
+ /*
+ * secure_getenv -- provide GNU secure_getenv for FreeBSD
+ */
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || !HAVE___SECURE_GETENV
+ static char *
+ secure_getenv(const char *name)
+ {
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0005-pmempool-Remove-unused-__USE_UNIX98-define.patch b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0005-pmempool-Remove-unused-__USE_UNIX98-define.patch
new file mode 100644
index 0000000..75c35f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0005-pmempool-Remove-unused-__USE_UNIX98-define.patch
@@ -0,0 +1,30 @@
+From 92e63699ea83074298971b0251f002562be4dbd3 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 10 Sep 2018 13:23:37 -0700
+Subject: [PATCH 2/3] pmempool: Remove unused __USE_UNIX98 define
+
+Remove the unused __USE_UNIX98 to fix musl build failures.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Pending
+---
+ src/tools/pmempool/info.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/tools/pmempool/info.c b/src/tools/pmempool/info.c
+index b4010bf35..7b890a123 100644
+--- a/src/tools/pmempool/info.c
++++ b/src/tools/pmempool/info.c
+@@ -45,9 +45,6 @@
+ #include <inttypes.h>
+ #include <assert.h>
+ #include <sys/param.h>
+-#ifndef __FreeBSD__
+-#define __USE_UNIX98
+-#endif
+ #include <unistd.h>
+ #include <sys/mman.h>
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0006-Makefile.inc-Allow-extra-libs-to-be-specified.patch b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0006-Makefile.inc-Allow-extra-libs-to-be-specified.patch
new file mode 100644
index 0000000..2042fdb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/files/0006-Makefile.inc-Allow-extra-libs-to-be-specified.patch
@@ -0,0 +1,29 @@
+From a88e806f9ce8cc071e81abad688643d53f393176 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 10 Sep 2018 14:18:38 -0700
+Subject: [PATCH 3/3] Makefile.inc: Allow extra libs to be specified
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Pending
+---
+ src/Makefile.inc | 2 ++
+ src/common.inc | 2 ++
+ src/tools/Makefile.inc | 1 +
+ 3 files changed, 5 insertions(+)
+
+diff --git a/src/common.inc b/src/common.inc
+index 032cb83ea..2d5c4bedf 100644
+--- a/src/common.inc
++++ b/src/common.inc
+@@ -74,6 +74,8 @@ GCOV_CFLAGS=-fprofile-arcs -ftest-coverage --coverage
+ GCOV_LDFLAGS=-fprofile-arcs -ftest-coverage
+ GCOV_LIBS=-lgcov
+
++LIBS += $(EXTRA_LIBS)
++
+ osdep = $(1)_$(shell uname -s | tr "[:upper:]" "[:lower:]")$(2)
+ get_arch = $(shell $(CC) -dumpmachine | awk -F'[/-]' '{print $$1}')
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.4.2.bb b/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.4.2.bb
new file mode 100644
index 0000000..3da22a9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.4.2.bb
@@ -0,0 +1,64 @@
+SUMMARY = "Persistent Memory Development Kit"
+DESCRIPTION = "Persistent Memory Development Kit"
+HOMEPAGE = "http://pmem.io"
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7db1106255a1baa80391fd2e21eebab7"
+DEPENDS = "ndctl"
+
+# Required to have the fts.h header for musl
+DEPENDS_append_libc-musl = " fts"
+
+SRC_URI = "https://github.com/pmem/${BPN}/archive/${PV}.tar.gz \
+ file://0001-jemalloc-jemalloc.cfg-Specify-the-host-when-building.patch \
+ file://0002-Makefile-Don-t-install-the-docs.patch \
+ file://0003-Makefile-Don-t-build-the-examples.patch \
+ file://0005-pmempool-Remove-unused-__USE_UNIX98-define.patch \
+ file://0006-Makefile.inc-Allow-extra-libs-to-be-specified.patch \
+ "
+
+SRC_URI_append_libc-musl = " file://0004-os_posix-Manually-implement-secure_getenv-if-require.patch"
+
+SRC_URI[md5sum] = "bde73bca9ef5b90911deb0fdcfb15ccf"
+SRC_URI[sha256sum] = "df7e658e75d28cd80f6d2ff7b9fc9ae2885d52f8923fdbacecfd46215115fb4c"
+
+inherit autotools-brokensep pkgconfig
+
+# Fix jemalloc error:
+# | configure: error: cannot run C compiled programs.
+# | If you meant to cross compile, use `--host'.
+#
+# Also fix #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
+EXTRA_OEMAKE = "HOST_SYS='${HOST_SYS}' EXTRA_CFLAGS='${SELECTED_OPTIMIZATION}'"
+
+# Fix the missing fts libs when using musl
+EXTRA_OEMAKE_append_libc-musl = " EXTRA_LIBS='-lfts'"
+
+do_install() {
+ oe_runmake PREFIX=${prefix} DESTDIR=${D} install
+
+ # Copy these into the standard directories
+ install -d ${D}${bindir}/
+ mv ${D}/usr/local/bin/pmempool ${D}${bindir}/
+ mv ${D}/usr/local/bin/daxio ${D}${bindir}/
+
+ install -d ${D}${libdir}
+ mv ${D}/usr/local/lib/*so* ${D}${libdir}/
+
+ install -d ${D}${libdir}/pkgconfig
+ mv ${D}/usr/local/lib/pkgconfig/*.pc ${D}${libdir}/pkgconfig/
+
+ install -d ${D}${includedir}
+ mv ${D}/usr/local/include/* ${D}${includedir}/
+
+ # Remove uneeded files
+ rm -rf ${D}/usr/local/
+}
+
+# Include these by default otherwise the SDK is not very useful
+FILES_${PN} += "${bindir}/pmempool ${bindir}/daxio"
+FILES_${PN} += "${libdir}/*so*"
+FILES_${PN} += "${libdir}/pkgconfig/*.pc"
+FILES_${PN} += "${includedir}/libpmemobj++/* ${includedir}/libpmemobj/*"
+
+COMPATIBLE_HOST='(x86_64).*'
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch
index 4e3af87..3b0ef5e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch
@@ -12,16 +12,19 @@
---
Upstream-Status: Pending
+Rebase to 0.115
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
configure.ac | 2 +-
src/polkitbackend/polkitbackendinteractiveauthority.c | 6 +++++-
- src/polkitbackend/polkitbackendjsauthority.c | 5 ++---
- 3 files changed, 8 insertions(+), 5 deletions(-)
+ src/polkitbackend/polkitbackendjsauthority.cpp | 2 ++
+ 3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 07982d1..21590b2 100644
+index 8b3e1b1..1c392df 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -158,7 +158,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"],
+@@ -99,7 +99,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"],
[AC_MSG_ERROR([Can't find expat library. Please install expat.])])
AC_SUBST(EXPAT_LIBS)
@@ -31,10 +34,10 @@
if test "x$GCC" = "xyes"; then
LDFLAGS="-Wl,--as-needed $LDFLAGS"
diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 7019356..cf39d77 100644
+index cb6fdab..de3f752 100644
--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -2213,7 +2213,7 @@ get_users_in_group (PolkitIdentity *group,
+@@ -2224,7 +2224,7 @@ get_users_in_group (PolkitIdentity *group,
out:
return ret;
}
@@ -43,7 +46,7 @@
static GList *
get_users_in_net_group (PolkitIdentity *group,
gboolean include_root)
-@@ -2270,6 +2270,8 @@ get_users_in_net_group (PolkitIdentity *group,
+@@ -2285,6 +2285,8 @@ get_users_in_net_group (PolkitIdentity *group,
return ret;
}
@@ -52,7 +55,7 @@
/* ---------------------------------------------------------------------------------------------------- */
static void
-@@ -2355,10 +2357,12 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
+@@ -2369,10 +2371,12 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
{
user_identities = g_list_concat (user_identities, get_users_in_group (identity, FALSE));
}
@@ -65,43 +68,26 @@
else
{
g_warning ("Unsupported identity");
-diff --git a/src/polkitbackend/polkitbackendjsauthority.c b/src/polkitbackend/polkitbackendjsauthority.c
-index 097dcc5..e59b3f7 100644
---- a/src/polkitbackend/polkitbackendjsauthority.c
-+++ b/src/polkitbackend/polkitbackendjsauthority.c
-@@ -1498,7 +1498,6 @@ js_polkit_spawn (JSContext *cx,
-
- /* ---------------------------------------------------------------------------------------------------- */
-
--
- static JSBool
- js_polkit_user_is_in_netgroup (JSContext *cx,
- unsigned argc,
-@@ -1518,6 +1517,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
- user = JS_EncodeString (cx, user_str);
- netgroup = JS_EncodeString (cx, netgroup_str);
+diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
+index 517f3c6..6042dd2 100644
+--- a/src/polkitbackend/polkitbackendjsauthority.cpp
++++ b/src/polkitbackend/polkitbackendjsauthority.cpp
+@@ -1502,6 +1502,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
+ user = JS_EncodeString (cx, args[0].toString());
+ netgroup = JS_EncodeString (cx, args[1].toString());
+#if defined HAVE_INNETGR
if (innetgr (netgroup,
NULL, /* host */
user,
-@@ -1525,6 +1525,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
+@@ -1509,6 +1510,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
{
- is_in_netgroup = JS_TRUE;
+ is_in_netgroup = true;
}
+#endif
JS_free (cx, netgroup);
JS_free (cx, user);
-@@ -1536,8 +1537,6 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
- return ret;
- }
-
--
--
- /* ---------------------------------------------------------------------------------------------------- */
-
- typedef struct
--
-2.7.0
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
index 74647ef..c491abf 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
@@ -4,9 +4,18 @@
Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---- a/configure.ac 2011-03-04 02:26:20.000000000 +0800
-+++ b/configure.ac.new 2011-07-18 10:14:12.516818852 +0800
-@@ -350,10 +350,10 @@
+Upstream-Status: Inappropriate [oe specific]
+Rebase to 0.115
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 36df239..8b3e1b1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -471,10 +471,10 @@ elif test x$with_os_type = xfreebsd -o x$with_os_type = xnetbsd; then
PAM_FILE_INCLUDE_PASSWORD=system
PAM_FILE_INCLUDE_SESSION=system
else
@@ -21,3 +30,6 @@
fi
AC_SUBST(PAM_FILE_INCLUDE_AUTH)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb
deleted file mode 100644
index f34928f..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "PolicyKit Authorization Framework"
-DESCRIPTION = "The polkit package is an application-level toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/polkit"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
- file://src/polkit/polkit.h;beginline=1;endline=20;md5=0a8630b0133176d0504c87a0ded39db4"
-
-DEPENDS = "expat glib-2.0 intltool-native mozjs"
-
-inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection
-
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
- bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
- "
-
-PACKAGECONFIG[pam] = "--with-authfw=pam,--with-authfw=shadow,libpam,libpam"
-PACKAGECONFIG[systemd] = "--enable-libsystemd-login=yes --with-systemdsystemunitdir=${systemd_unitdir}/system/,--enable-libsystemd-login=no --with-systemdsystemunitdir=,systemd"
-# there is no --enable/--disable option for consolekit and it's not picked by shlibs, so add it to RDEPENDS
-PACKAGECONFIG[consolekit] = ",,,consolekit"
-
-PAM_SRC_URI = "file://polkit-1_pam.patch"
-SRC_URI = "http://www.freedesktop.org/software/polkit/releases/polkit-${PV}.tar.gz \
- file://0001-make-netgroup-support-configurable.patch \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
-"
-SRC_URI[md5sum] = "4b77776c9e4f897dcfe03b2c34198edf"
-SRC_URI[sha256sum] = "e1c095093c654951f78f8618d427faf91cf62abdefed98de40ff65eca6413c81"
-
-EXTRA_OECONF = "--with-os-type=moblin --disable-man-pages"
-
-do_compile_prepend () {
- export GIR_EXTRA_LIBS_PATH="${B}/src/polkit/.libs"
-}
-
-PACKAGES =+ "${PN}-examples"
-
-FILES_${PN}_append = " \
- ${libdir}/${BPN}-1 \
- ${nonarch_libdir}/${BPN}-1 \
- ${datadir}/dbus-1 \
- ${datadir}/${BPN}-1 \
-"
-
-FILES_${PN}-examples = "${bindir}/*example*"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 polkitd"
-
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.115.bb b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.115.bb
new file mode 100644
index 0000000..ad0f66a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.115.bb
@@ -0,0 +1,55 @@
+SUMMARY = "PolicyKit Authorization Framework"
+DESCRIPTION = "The polkit package is an application-level toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/polkit"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
+ file://src/polkit/polkit.h;beginline=1;endline=20;md5=0a8630b0133176d0504c87a0ded39db4"
+
+DEPENDS = "expat glib-2.0 intltool-native mozjs"
+
+inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection
+
+PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
+ bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
+ "
+
+PACKAGECONFIG[pam] = "--with-authfw=pam,--with-authfw=shadow,libpam,libpam"
+PACKAGECONFIG[systemd] = "--enable-libsystemd-login=yes --with-systemdsystemunitdir=${systemd_unitdir}/system/,--enable-libsystemd-login=no --with-systemdsystemunitdir=,systemd"
+# there is no --enable/--disable option for consolekit and it's not picked by shlibs, so add it to RDEPENDS
+PACKAGECONFIG[consolekit] = ",,,consolekit"
+
+PAM_SRC_URI = "file://polkit-1_pam.patch"
+SRC_URI = "http://www.freedesktop.org/software/polkit/releases/polkit-${PV}.tar.gz \
+ file://0001-make-netgroup-support-configurable.patch \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
+"
+SRC_URI[md5sum] = "f03b055d6ae5fc8eac76838c7d83d082"
+SRC_URI[sha256sum] = "2f87ecdabfbd415c6306673ceadc59846f059b18ef2fce42bac63fe283f12131"
+
+EXTRA_OECONF = "--with-os-type=moblin \
+ --disable-man-pages \
+ --disable-libelogind \
+ "
+
+do_compile_prepend () {
+ export GIR_EXTRA_LIBS_PATH="${B}/src/polkit/.libs"
+}
+
+PACKAGES =+ "${PN}-examples"
+
+FILES_${PN}_append = " \
+ ${libdir}/${BPN}-1 \
+ ${nonarch_libdir}/${BPN}-1 \
+ ${datadir}/dbus-1 \
+ ${datadir}/${BPN}-1 \
+ ${datadir}/gettext \
+"
+
+FILES_${PN}-examples = "${bindir}/*example*"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 polkitd"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-update-Makefile-to-add-symbols-to-staticlib.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-update-Makefile-to-add-symbols-to-staticlib.patch
deleted file mode 100644
index 2b3b587..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-update-Makefile-to-add-symbols-to-staticlib.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- redis-3.0.2/deps/hiredis/Makefile.orig 2016-05-06 19:36:26.179003036 -0700
-+++ redis-3.0.2/deps/hiredis/Makefile 2016-05-06 19:40:15.341340736 -0700
-@@ -25,7 +25,7 @@
-
- # Fallback to gcc when $CC is not in $PATH.
- CC?=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
--OPTIMIZATION?=-O3
-+OPTIMIZATION?=-O2
- WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
- DEBUG?= -g -ggdb
- REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CFLAGS) $(WARNINGS) $(DEBUG) $(ARCH)
-@@ -68,6 +68,7 @@
-
- $(STLIBNAME): $(OBJ)
- $(STLIB_MAKE_CMD) $(OBJ)
-+ $(RANLIB) $@
-
- dynamic: $(DYLIBNAME)
- static: $(STLIBNAME)
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
index f9f1c0d..421f306 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
@@ -8,23 +8,23 @@
Signed-off-by: Venture Research <tech@ventureresearch.com>
-Update to work with 3.0.x
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
+Update to work with 4.0.8
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
deps/hiredis/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: deps/hiredis/Makefile
-===================================================================
+diff --git a/deps/hiredis/Makefile b/deps/hiredis/Makefile
+index 9a4de836..271c06ba 100644
--- a/deps/hiredis/Makefile
+++ b/deps/hiredis/Makefile
-@@ -24,7 +24,7 @@ endef
+@@ -36,7 +36,7 @@ endef
export REDIS_TEST_CONFIG
# Fallback to gcc when $CC is not in $PATH.
-CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
+CC?=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
+ CXX:=$(shell sh -c 'type $(CXX) >/dev/null 2>/dev/null && echo $(CXX) || echo g++')
OPTIMIZATION?=-O3
WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
- DEBUG?= -g -ggdb
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch
index b768a77..6745f3d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch
@@ -11,15 +11,15 @@
Signed-off-by: Venture Research <tech@ventureresearch.com>
-Update to work with 3.0.x
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
+Update to work with 4.0.8
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
src/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: src/Makefile
-===================================================================
+diff --git a/src/Makefile b/src/Makefile
+index 86e0b3fe..a810180b 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,7 +13,8 @@
@@ -29,6 +29,6 @@
-uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
+# use fake uname option to force use of generic libc
+uname_S := "USE_LIBC_MALLOC"
+ uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
OPTIMIZATION?=-O2
DEPENDENCY_TARGETS=hiredis linenoise lua
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis/redis.conf b/meta-openembedded/meta-oe/recipes-extended/redis/redis/redis.conf
index ab024ad..75037d6 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis/redis.conf
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis/redis.conf
@@ -1,4 +1,9 @@
-# Redis configuration file example
+# Redis configuration file example.
+#
+# Note that in order to read the configuration file, Redis must be
+# started with the file path as first argument:
+#
+# ./redis-server /path/to/redis.conf
# Note on units: when memory size is needed, it is possible to specify
# it in the usual form of 1k 5GB 4M and so forth:
@@ -12,48 +17,160 @@
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.
-# By default Redis does not run as a daemon. Use 'yes' if you need it.
-# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
+################################## INCLUDES ###################################
+
+# Include one or more other config files here. This is useful if you
+# have a standard template that goes to all Redis servers but also need
+# to customize a few per-server settings. Include files can include
+# other files, so use this wisely.
#
+# Notice option "include" won't be rewritten by command "CONFIG REWRITE"
+# from admin or Redis Sentinel. Since Redis always uses the last processed
+# line as value of a configuration directive, you'd better put includes
+# at the beginning of this file to avoid overwriting config change at runtime.
+#
+# If instead you are interested in using includes to override configuration
+# options, it is better to use include as the last line.
+#
+# include /path/to/local.conf
+# include /path/to/other.conf
+
+################################## MODULES #####################################
+
+# Load modules at startup. If the server is not able to load modules
+# it will abort. It is possible to use multiple loadmodule directives.
+#
+# loadmodule /path/to/my_module.so
+# loadmodule /path/to/other_module.so
+
+################################## NETWORK #####################################
+
+# By default, if no "bind" configuration directive is specified, Redis listens
+# for connections from all the network interfaces available on the server.
+# It is possible to listen to just one or multiple selected interfaces using
+# the "bind" configuration directive, followed by one or more IP addresses.
+#
+# Examples:
+#
+# bind 192.168.1.100 10.0.0.1
+# bind 127.0.0.1 ::1
+#
+# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
+# internet, binding to all the interfaces is dangerous and will expose the
+# instance to everybody on the internet. So by default we uncomment the
+# following bind directive, that will force Redis to listen only into
+# the IPv4 lookback interface address (this means Redis will be able to
+# accept connections only from clients running into the same computer it
+# is running).
+#
+# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
+# JUST COMMENT THE FOLLOWING LINE.
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+bind 127.0.0.1
+
+# Protected mode is a layer of security protection, in order to avoid that
+# Redis instances left open on the internet are accessed and exploited.
+#
+# When protected mode is on and if:
+#
+# 1) The server is not binding explicitly to a set of addresses using the
+# "bind" directive.
+# 2) No password is configured.
+#
+# The server only accepts connections from clients connecting from the
+# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
+# sockets.
+#
+# By default protected mode is enabled. You should disable it only if
+# you are sure you want clients from other hosts to connect to Redis
+# even if no authentication is configured, nor a specific set of interfaces
+# are explicitly listed using the "bind" directive.
+protected-mode yes
+
+# Accept connections on the specified port, default is 6379 (IANA #815344).
+# If port 0 is specified Redis will not listen on a TCP socket.
+port 6379
+
+# TCP listen() backlog.
+#
+# In high requests-per-second environments you need an high backlog in order
+# to avoid slow clients connections issues. Note that the Linux kernel
+# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
+# make sure to raise both the value of somaxconn and tcp_max_syn_backlog
+# in order to get the desired effect.
+tcp-backlog 511
+
+# Unix socket.
+#
+# Specify the path for the Unix socket that will be used to listen for
+# incoming connections. There is no default, so Redis will not listen
+# on a unix socket when not specified.
+#
+# unixsocket /tmp/redis.sock
+# unixsocketperm 700
+
+# Close the connection after a client is idle for N seconds (0 to disable)
+timeout 0
+
+# TCP keepalive.
+#
+# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
+# of communication. This is useful for two reasons:
+#
+# 1) Detect dead peers.
+# 2) Take the connection alive from the point of view of network
+# equipment in the middle.
+#
+# On Linux, the specified value (in seconds) is the period used to send ACKs.
+# Note that to close the connection the double of the time is needed.
+# On other kernels the period depends on the kernel configuration.
+#
+# A reasonable value for this option is 300 seconds, which is the new
+# Redis default starting with Redis 3.2.1.
+tcp-keepalive 300
+
+################################# GENERAL #####################################
+
# OE: run as a daemon.
-#
daemonize yes
+# If you run Redis from upstart or systemd, Redis can interact with your
+# supervision tree. Options:
+# supervised no - no supervision interaction
+# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
+# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
+# supervised auto - detect upstart or systemd method based on
+# UPSTART_JOB or NOTIFY_SOCKET environment variables
+# Note: these supervision methods only signal "process is ready."
+# They do not enable continuous liveness pings back to your supervisor.
+supervised no
+
+# If a pid file is specified, Redis writes it where specified at startup
+# and removes it at exit.
+#
+# When the server runs non daemonized, no pid file is created if none is
+# specified in the configuration. When the server is daemonized, the pid file
+# is used even if not specified, defaulting to "/var/run/redis.pid".
+#
+# Creating a pid file is best effort: if Redis is not able to create it
+# nothing bad happens, the server will start and run normally.
+
# When running daemonized, Redis writes a pid file in /var/run/redis.pid by
# default. You can specify a custom pid file location here.
pidfile /var/run/redis.pid
-# Accept connections on the specified port, default is 6379.
-# If port 0 is specified Redis will not listen on a TCP socket.
-port 6379
-
-# If you want you can bind a single interface, if the bind option is not
-# specified all the interfaces will listen for incoming connections.
-#
-bind 127.0.0.1
-
-# Specify the path for the unix socket that will be used to listen for
-# incoming connections. There is no default, so Redis will not listen
-# on a unix socket when not specified.
-#
-# unixsocket /tmp/redis.sock
-# unixsocketperm 755
-
-# Close the connection after a client is idle for N seconds (0 to disable)
-timeout 0
-
-# Set server verbosity to 'debug'
-# it can be one of:
+# Specify the server verbosity level.
+# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel notice
-# Specify the log file name. Also 'stdout' can be used to force
+# Specify the log file name. Also the empty string can be used to force
# Redis to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
-# logfile /var/log/redis.log
+logfile ""
# To enable logging to the system logger, just set 'syslog-enabled' to yes,
# and optionally update the other syslog parameters to suit your needs.
@@ -62,7 +179,7 @@
# Specify the syslog identity.
syslog-ident redis
-# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
+# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
# syslog-facility local0
# Set the number of databases. The default database is DB 0, you can select
@@ -70,7 +187,15 @@
# dbid is a number between 0 and 'databases'-1
databases 16
-################################ SNAPSHOTTING #################################
+# By default Redis shows an ASCII art logo only when started to log to the
+# standard output and if the standard output is a TTY. Basically this means
+# that normally a logo is displayed only in interactive sessions.
+#
+# However it is possible to force the pre-4.0 behavior and always show a
+# ASCII art logo in startup logs by setting the following option to yes.
+always-show-logo yes
+
+################################ SNAPSHOTTING ################################
#
# Save the DB on disk:
#
@@ -84,7 +209,7 @@
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys changed
#
-# Note: you can disable saving at all commenting all the "save" lines.
+# Note: you can disable saving completely by commenting out all "save" lines.
#
# It is also possible to remove all the previously configured save
# points by adding a save directive with a single empty string argument
@@ -103,16 +228,16 @@
# By default Redis will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed.
-# This will make the user aware (in an hard way) that data is not persisting
+# This will make the user aware (in a hard way) that data is not persisting
# on disk properly, otherwise chances are that no one will notice and some
-# distater will happen.
+# disaster will happen.
#
# If the background saving process will start working again Redis will
# automatically allow writes again.
#
# However if you have setup your proper monitoring of the Redis server
# and persistence, you may want to disable this feature so that Redis will
-# continue to work as usually even if there are problems with disk,
+# continue to work as usual even if there are problems with disk,
# permissions, and so forth.
stop-writes-on-bgsave-error yes
@@ -122,7 +247,7 @@
# the dataset will likely be bigger if you have compressible values or keys.
rdbcompression yes
-# Since verison 5 of RDB a CRC64 checksum is placed at the end of the file.
+# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
# This makes the format more resistant to corruption but there is a performance
# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
# for maximum performances.
@@ -138,18 +263,27 @@
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
-#
-# Also the Append Only File will be created inside this directory.
-#
+#
+# The Append Only File will also be created inside this directory.
+#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis/
################################# REPLICATION #################################
# Master-Slave replication. Use slaveof to make a Redis instance a copy of
-# another Redis server. Note that the configuration is local to the slave
-# so for example it is possible to configure the slave to save the DB with a
-# different interval, or to listen to another port, and so on.
+# another Redis server. A few things to understand ASAP about Redis replication.
+#
+# 1) Redis replication is asynchronous, but you can configure a master to
+# stop accepting writes if it appears to be not connected with at least
+# a given number of slaves.
+# 2) Redis slaves are able to perform a partial resynchronization with the
+# master if the replication link is lost for a relatively small amount of
+# time. You may want to configure the replication backlog size (see the next
+# sections of this file) with a sensible value depending on your needs.
+# 3) Replication is automatic and does not need user intervention. After a
+# network partition slaves automatically try to reconnect to masters
+# and resynchronize with them.
#
# slaveof <masterip> <masterport>
@@ -160,14 +294,14 @@
#
# masterauth <master-password>
-# When a slave lost the connection with the master, or when the replication
+# When a slave loses its connection with the master, or when the replication
# is still in progress, the slave can act in two different ways:
#
# 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will
# still reply to client requests, possibly with out of date data, or the
# data set may just be empty if this is the first synchronization.
#
-# 2) if slave-serve-stale data is set to 'no' the slave will reply with
+# 2) if slave-serve-stale-data is set to 'no' the slave will reply with
# an error "SYNC with master in progress" to all the kind of commands
# but to INFO and SLAVEOF.
#
@@ -184,19 +318,65 @@
# Note: read only slaves are not designed to be exposed to untrusted clients
# on the internet. It's just a protection layer against misuse of the instance.
# Still a read only slave exports by default all the administrative commands
-# such as CONFIG, DEBUG, and so forth. To a limited extend you can improve
+# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
# security of read only slaves using 'rename-command' to shadow all the
# administrative / dangerous commands.
slave-read-only yes
+# Replication SYNC strategy: disk or socket.
+#
+# -------------------------------------------------------
+# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY
+# -------------------------------------------------------
+#
+# New slaves and reconnecting slaves that are not able to continue the replication
+# process just receiving differences, need to do what is called a "full
+# synchronization". An RDB file is transmitted from the master to the slaves.
+# The transmission can happen in two different ways:
+#
+# 1) Disk-backed: The Redis master creates a new process that writes the RDB
+# file on disk. Later the file is transferred by the parent
+# process to the slaves incrementally.
+# 2) Diskless: The Redis master creates a new process that directly writes the
+# RDB file to slave sockets, without touching the disk at all.
+#
+# With disk-backed replication, while the RDB file is generated, more slaves
+# can be queued and served with the RDB file as soon as the current child producing
+# the RDB file finishes its work. With diskless replication instead once
+# the transfer starts, new slaves arriving will be queued and a new transfer
+# will start when the current one terminates.
+#
+# When diskless replication is used, the master waits a configurable amount of
+# time (in seconds) before starting the transfer in the hope that multiple slaves
+# will arrive and the transfer can be parallelized.
+#
+# With slow disks and fast (large bandwidth) networks, diskless replication
+# works better.
+repl-diskless-sync no
+
+# When diskless replication is enabled, it is possible to configure the delay
+# the server waits in order to spawn the child that transfers the RDB via socket
+# to the slaves.
+#
+# This is important since once the transfer starts, it is not possible to serve
+# new slaves arriving, that will be queued for the next RDB transfer, so the server
+# waits a delay in order to let more slaves arrive.
+#
+# The delay is specified in seconds, and by default is 5 seconds. To disable
+# it entirely just set it to 0 seconds and the transfer will start ASAP.
+repl-diskless-sync-delay 5
+
# Slaves send PINGs to server in a predefined interval. It's possible to change
# this interval with the repl_ping_slave_period option. The default value is 10
# seconds.
#
# repl-ping-slave-period 10
-# The following option sets a timeout for both Bulk transfer I/O timeout and
-# master data or ping response timeout. The default value is 60 seconds.
+# The following option sets the replication timeout for:
+#
+# 1) Bulk transfer I/O during SYNC, from the point of view of slave.
+# 2) Master timeout from the point of view of slaves (data, pings).
+# 3) Slave timeout from the point of view of masters (REPLCONF ACK pings).
#
# It is important to make sure that this value is greater than the value
# specified for repl-ping-slave-period otherwise a timeout will be detected
@@ -204,13 +384,54 @@
#
# repl-timeout 60
+# Disable TCP_NODELAY on the slave socket after SYNC?
+#
+# If you select "yes" Redis will use a smaller number of TCP packets and
+# less bandwidth to send data to slaves. But this can add a delay for
+# the data to appear on the slave side, up to 40 milliseconds with
+# Linux kernels using a default configuration.
+#
+# If you select "no" the delay for data to appear on the slave side will
+# be reduced but more bandwidth will be used for replication.
+#
+# By default we optimize for low latency, but in very high traffic conditions
+# or when the master and slaves are many hops away, turning this to "yes" may
+# be a good idea.
+repl-disable-tcp-nodelay no
+
+# Set the replication backlog size. The backlog is a buffer that accumulates
+# slave data when slaves are disconnected for some time, so that when a slave
+# wants to reconnect again, often a full resync is not needed, but a partial
+# resync is enough, just passing the portion of data the slave missed while
+# disconnected.
+#
+# The bigger the replication backlog, the longer the time the slave can be
+# disconnected and later be able to perform a partial resynchronization.
+#
+# The backlog is only allocated once there is at least a slave connected.
+#
+# repl-backlog-size 1mb
+
+# After a master has no longer connected slaves for some time, the backlog
+# will be freed. The following option configures the amount of seconds that
+# need to elapse, starting from the time the last slave disconnected, for
+# the backlog buffer to be freed.
+#
+# Note that slaves never free the backlog for timeout, since they may be
+# promoted to masters later, and should be able to correctly "partially
+# resynchronize" with the slaves: hence they should always accumulate backlog.
+#
+# A value of 0 means to never release the backlog.
+#
+# repl-backlog-ttl 3600
+
# The slave priority is an integer number published by Redis in the INFO output.
# It is used by Redis Sentinel in order to select a slave to promote into a
# master if the master is no longer working correctly.
#
# A slave with a low priority number is considered better for promotion, so
# for instance if there are three slaves with priority 10, 100, 25 Sentinel will
-# pick the one wtih priority 10, that is the lowest.
+# pick the one with priority 10, that is the lowest.
#
# However a special priority of 0 marks the slave as not able to perform the
# role of master, so a slave with priority of 0 will never be selected by
@@ -219,6 +440,57 @@
# By default the priority is 100.
slave-priority 100
+# It is possible for a master to stop accepting writes if there are less than
+# N slaves connected, having a lag less or equal than M seconds.
+#
+# The N slaves need to be in "online" state.
+#
+# The lag in seconds, that must be <= the specified value, is calculated from
+# the last ping received from the slave, that is usually sent every second.
+#
+# This option does not GUARANTEE that N replicas will accept the write, but
+# will limit the window of exposure for lost writes in case not enough slaves
+# are available, to the specified number of seconds.
+#
+# For example to require at least 3 slaves with a lag <= 10 seconds use:
+#
+# min-slaves-to-write 3
+# min-slaves-max-lag 10
+#
+# Setting one or the other to 0 disables the feature.
+#
+# By default min-slaves-to-write is set to 0 (feature disabled) and
+# min-slaves-max-lag is set to 10.
+
+# A Redis master is able to list the address and port of the attached
+# slaves in different ways. For example the "INFO replication" section
+# offers this information, which is used, among other tools, by
+# Redis Sentinel in order to discover slave instances.
+# Another place where this info is available is in the output of the
+# "ROLE" command of a master.
+#
+# The listed IP and address normally reported by a slave is obtained
+# in the following way:
+#
+# IP: The address is auto detected by checking the peer address
+# of the socket used by the slave to connect with the master.
+#
+# Port: The port is communicated by the slave during the replication
+# handshake, and is normally the port that the slave is using to
+# list for connections.
+#
+# However when port forwarding or Network Address Translation (NAT) is
+# used, the slave may be actually reachable via different IP and port
+# pairs. The following two options can be used by a slave in order to
+# report to its master a specific set of IP and port, so that both INFO
+# and ROLE will report those values.
+#
+# There is no need to use both the options if you need to override just
+# the port or the IP address.
+#
+# slave-announce-ip 5.5.5.5
+# slave-announce-port 1234
+
################################## SECURITY ###################################
# Require clients to issue AUTH <PASSWORD> before processing any other
@@ -227,7 +499,7 @@
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
-#
+#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
@@ -238,23 +510,26 @@
#
# It is possible to change the name of dangerous commands in a shared
# environment. For instance the CONFIG command may be renamed into something
-# of hard to guess so that it will be still available for internal-use
-# tools but not available for general clients.
+# hard to guess so that it will still be available for internal-use tools
+# but not available for general clients.
#
# Example:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
-# It is also possible to completely kill a command renaming it into
+# It is also possible to completely kill a command by renaming it into
# an empty string:
#
# rename-command CONFIG ""
+#
+# Please note that changing the name of commands that are logged into the
+# AOF file or transmitted to slaves may cause problems.
-################################### LIMITS ####################################
+################################### CLIENTS ####################################
# Set the max number of connected clients at the same time. By default
# this limit is set to 10000 clients, however if the Redis server is not
-# able ot configure the process file limit to allow for the specified limit
+# able to configure the process file limit to allow for the specified limit
# the max number of allowed clients is set to the current file limit
# minus 32 (as Redis reserves a few file descriptors for internal uses).
#
@@ -263,17 +538,19 @@
#
# maxclients 10000
-# Don't use more memory than the specified amount of bytes.
+############################## MEMORY MANAGEMENT ################################
+
+# Set a memory usage limit to the specified amount of bytes.
# When the memory limit is reached Redis will try to remove keys
-# accordingly to the eviction policy selected (see maxmemmory-policy).
+# according to the eviction policy selected (see maxmemory-policy).
#
# If Redis can't remove keys according to the policy, or if the policy is
# set to 'noeviction', Redis will start to reply with errors to commands
# that would use more memory, like SET, LPUSH, and so on, and will continue
# to reply to read-only commands like GET.
#
-# This option is usually useful when using Redis as an LRU cache, or to set
-# an hard memory limit for an instance (using the 'noeviction' policy).
+# This option is usually useful when using Redis as an LRU or LFU cache, or to
+# set a hard memory limit for an instance (using the 'noeviction' policy).
#
# WARNING: If you have slaves attached to an instance with maxmemory on,
# the size of the output buffers needed to feed the slaves are subtracted
@@ -289,19 +566,27 @@
# maxmemory <bytes>
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
-# is reached? You can select among five behavior:
-#
-# volatile-lru -> remove the key with an expire set using an LRU algorithm
-# allkeys-lru -> remove any key accordingly to the LRU algorithm
-# volatile-random -> remove a random key with an expire set
-# allkeys-random -> remove a random key, any key
-# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
-# noeviction -> don't expire at all, just return an error on write operations
-#
-# Note: with all the kind of policies, Redis will return an error on write
-# operations, when there are not suitable keys for eviction.
+# is reached. You can select among five behaviors:
#
-# At the date of writing this commands are: set setnx setex append
+# volatile-lru -> Evict using approximated LRU among the keys with an expire set.
+# allkeys-lru -> Evict any key using approximated LRU.
+# volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
+# allkeys-lfu -> Evict any key using approximated LFU.
+# volatile-random -> Remove a random key among the ones with an expire set.
+# allkeys-random -> Remove a random key, any key.
+# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
+# noeviction -> Don't evict anything, just return an error on write operations.
+#
+# LRU means Least Recently Used
+# LFU means Least Frequently Used
+#
+# Both LRU, LFU and volatile-ttl are implemented using approximated
+# randomized algorithms.
+#
+# Note: with any of the above policies, Redis will return an error on write
+# operations, when there are no suitable keys for eviction.
+#
+# At the date of writing these commands are: set setnx setex append
# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
@@ -309,15 +594,67 @@
#
# The default is:
#
-# maxmemory-policy volatile-lru
+# maxmemory-policy noeviction
-# LRU and minimal TTL algorithms are not precise algorithms but approximated
-# algorithms (in order to save memory), so you can select as well the sample
-# size to check. For instance for default Redis will check three keys and
-# pick the one that was used less recently, you can change the sample size
-# using the following configuration directive.
+# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated
+# algorithms (in order to save memory), so you can tune it for speed or
+# accuracy. For default Redis will check five keys and pick the one that was
+# used less recently, you can change the sample size using the following
+# configuration directive.
#
-# maxmemory-samples 3
+# The default of 5 produces good enough results. 10 Approximates very closely
+# true LRU but costs more CPU. 3 is faster but not very accurate.
+#
+# maxmemory-samples 5
+
+############################# LAZY FREEING ####################################
+
+# Redis has two primitives to delete keys. One is called DEL and is a blocking
+# deletion of the object. It means that the server stops processing new commands
+# in order to reclaim all the memory associated with an object in a synchronous
+# way. If the key deleted is associated with a small object, the time needed
+# in order to execute the DEL command is very small and comparable to most other
+# O(1) or O(log_N) commands in Redis. However if the key is associated with an
+# aggregated value containing millions of elements, the server can block for
+# a long time (even seconds) in order to complete the operation.
+#
+# For the above reasons Redis also offers non blocking deletion primitives
+# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and
+# FLUSHDB commands, in order to reclaim memory in background. Those commands
+# are executed in constant time. Another thread will incrementally free the
+# object in the background as fast as possible.
+#
+# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled.
+# It's up to the design of the application to understand when it is a good
+# idea to use one or the other. However the Redis server sometimes has to
+# delete keys or flush the whole database as a side effect of other operations.
+# Specifically Redis deletes objects independently of a user call in the
+# following scenarios:
+#
+# 1) On eviction, because of the maxmemory and maxmemory policy configurations,
+# in order to make room for new data, without going over the specified
+# memory limit.
+# 2) Because of expire: when a key with an associated time to live (see the
+# EXPIRE command) must be deleted from memory.
+# 3) Because of a side effect of a command that stores data on a key that may
+# already exist. For example the RENAME command may delete the old key
+# content when it is replaced with another one. Similarly SUNIONSTORE
+# or SORT with STORE option may delete existing keys. The SET command
+# itself removes any old content of the specified key in order to replace
+# it with the specified string.
+# 4) During replication, when a slave performs a full resynchronization with
+# its master, the content of the whole database is removed in order to
+# load the RDB file just transfered.
+#
+# In all the above cases the default is to delete objects in a blocking way,
+# like if DEL was called. However you can configure each case specifically
+# in order to instead release memory in a non-blocking way like if UNLINK
+# was called, using the following configuration directives:
+
+lazyfree-lazy-eviction no
+lazyfree-lazy-expire no
+lazyfree-lazy-server-del no
+slave-lazy-flush no
############################## APPEND ONLY MODE ###############################
@@ -339,24 +676,24 @@
#
# Please check http://redis.io/topics/persistence for more information.
-#
# OE: changed default to enable this
appendonly yes
# The name of the append only file (default: "appendonly.aof")
-# appendfilename appendonly.aof
+
+appendfilename "appendonly.aof"
# The fsync() call tells the Operating System to actually write data on disk
-# instead to wait for more data in the output buffer. Some OS will really flush
+# instead of waiting for more data in the output buffer. Some OS will really flush
# data on disk, some other OS will just try to do it ASAP.
#
# Redis supports three different modes:
#
# no: don't fsync, just let the OS flush the data when it wants. Faster.
-# always: fsync after every write to the append only log . Slow, Safest.
+# always: fsync after every write to the append only log. Slow, Safest.
# everysec: fsync only one time every second. Compromise.
#
-# The default is "everysec" that's usually the right compromise between
+# The default is "everysec", as that's usually the right compromise between
# speed and data safety. It's up to you to understand if you can relax this to
# "no" that will let the operating system flush the output buffer when
# it wants, for better performances (but if you can live with the idea of
@@ -384,21 +721,22 @@
# that will prevent fsync() from being called in the main process while a
# BGSAVE or BGREWRITEAOF is in progress.
#
-# This means that while another child is saving the durability of Redis is
-# the same as "appendfsync none", that in practical terms means that it is
-# possible to lost up to 30 seconds of log in the worst scenario (with the
+# This means that while another child is saving, the durability of Redis is
+# the same as "appendfsync none". In practical terms, this means that it is
+# possible to lose up to 30 seconds of log in the worst scenario (with the
# default Linux settings).
-#
+#
# If you have latency problems turn this to "yes". Otherwise leave it as
# "no" that is the safest pick from the point of view of durability.
+
no-appendfsync-on-rewrite no
# Automatic rewrite of the append only file.
# Redis is able to automatically rewrite the log file implicitly calling
-# BGREWRITEAOF when the AOF log size will growth by the specified percentage.
-#
+# BGREWRITEAOF when the AOF log size grows by the specified percentage.
+#
# This is how it works: Redis remembers the size of the AOF file after the
-# latest rewrite (or if no rewrite happened since the restart, the size of
+# latest rewrite (if no rewrite has happened since the restart, the size of
# the AOF at startup is used).
#
# This base size is compared to the current size. If the current size is
@@ -413,6 +751,44 @@
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
+# An AOF file may be found to be truncated at the end during the Redis
+# startup process, when the AOF data gets loaded back into memory.
+# This may happen when the system where Redis is running
+# crashes, especially when an ext4 filesystem is mounted without the
+# data=ordered option (however this can't happen when Redis itself
+# crashes or aborts but the operating system still works correctly).
+#
+# Redis can either exit with an error when this happens, or load as much
+# data as possible (the default now) and start if the AOF file is found
+# to be truncated at the end. The following option controls this behavior.
+#
+# If aof-load-truncated is set to yes, a truncated AOF file is loaded and
+# the Redis server starts emitting a log to inform the user of the event.
+# Otherwise if the option is set to no, the server aborts with an error
+# and refuses to start. When the option is set to no, the user requires
+# to fix the AOF file using the "redis-check-aof" utility before to restart
+# the server.
+#
+# Note that if the AOF file will be found to be corrupted in the middle
+# the server will still exit with an error. This option only applies when
+# Redis will try to read more data from the AOF file but not enough bytes
+# will be found.
+aof-load-truncated yes
+
+# When rewriting the AOF file, Redis is able to use an RDB preamble in the
+# AOF file for faster rewrites and recoveries. When this option is turned
+# on the rewritten AOF file is composed of two different stanzas:
+#
+# [RDB file][AOF tail]
+#
+# When loading Redis recognizes that the AOF file starts with the "REDIS"
+# string and loads the prefixed RDB file, and continues loading the AOF
+# tail.
+#
+# This is currently turned off by default in order to avoid the surprise
+# of a format change, but will at some point be used as the default.
+aof-use-rdb-preamble no
+
################################ LUA SCRIPTING ###############################
# Max execution time of a Lua script in milliseconds.
@@ -421,16 +797,157 @@
# still in execution after the maximum allowed time and will start to
# reply to queries with an error.
#
-# When a long running script exceed the maximum execution time only the
+# When a long running script exceeds the maximum execution time only the
# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be
# used to stop a script that did not yet called write commands. The second
-# is the only way to shut down the server in the case a write commands was
-# already issue by the script but the user don't want to wait for the natural
+# is the only way to shut down the server in the case a write command was
+# already issued by the script but the user doesn't want to wait for the natural
# termination of the script.
#
# Set it to 0 or a negative value for unlimited execution without warnings.
lua-time-limit 5000
+################################ REDIS CLUSTER ###############################
+#
+# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+# WARNING EXPERIMENTAL: Redis Cluster is considered to be stable code, however
+# in order to mark it as "mature" we need to wait for a non trivial percentage
+# of users to deploy it in production.
+# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#
+# Normal Redis instances can't be part of a Redis Cluster; only nodes that are
+# started as cluster nodes can. In order to start a Redis instance as a
+# cluster node enable the cluster support uncommenting the following:
+#
+# cluster-enabled yes
+
+# Every cluster node has a cluster configuration file. This file is not
+# intended to be edited by hand. It is created and updated by Redis nodes.
+# Every Redis Cluster node requires a different cluster configuration file.
+# Make sure that instances running in the same system do not have
+# overlapping cluster configuration file names.
+#
+# cluster-config-file nodes-6379.conf
+
+# Cluster node timeout is the amount of milliseconds a node must be unreachable
+# for it to be considered in failure state.
+# Most other internal time limits are multiple of the node timeout.
+#
+# cluster-node-timeout 15000
+
+# A slave of a failing master will avoid to start a failover if its data
+# looks too old.
+#
+# There is no simple way for a slave to actually have an exact measure of
+# its "data age", so the following two checks are performed:
+#
+# 1) If there are multiple slaves able to failover, they exchange messages
+# in order to try to give an advantage to the slave with the best
+# replication offset (more data from the master processed).
+# Slaves will try to get their rank by offset, and apply to the start
+# of the failover a delay proportional to their rank.
+#
+# 2) Every single slave computes the time of the last interaction with
+# its master. This can be the last ping or command received (if the master
+# is still in the "connected" state), or the time that elapsed since the
+# disconnection with the master (if the replication link is currently down).
+# If the last interaction is too old, the slave will not try to failover
+# at all.
+#
+# The point "2" can be tuned by user. Specifically a slave will not perform
+# the failover if, since the last interaction with the master, the time
+# elapsed is greater than:
+#
+# (node-timeout * slave-validity-factor) + repl-ping-slave-period
+#
+# So for example if node-timeout is 30 seconds, and the slave-validity-factor
+# is 10, and assuming a default repl-ping-slave-period of 10 seconds, the
+# slave will not try to failover if it was not able to talk with the master
+# for longer than 310 seconds.
+#
+# A large slave-validity-factor may allow slaves with too old data to failover
+# a master, while a too small value may prevent the cluster from being able to
+# elect a slave at all.
+#
+# For maximum availability, it is possible to set the slave-validity-factor
+# to a value of 0, which means, that slaves will always try to failover the
+# master regardless of the last time they interacted with the master.
+# (However they'll always try to apply a delay proportional to their
+# offset rank).
+#
+# Zero is the only value able to guarantee that when all the partitions heal
+# the cluster will always be able to continue.
+#
+# cluster-slave-validity-factor 10
+
+# Cluster slaves are able to migrate to orphaned masters, that are masters
+# that are left without working slaves. This improves the cluster ability
+# to resist to failures as otherwise an orphaned master can't be failed over
+# in case of failure if it has no working slaves.
+#
+# Slaves migrate to orphaned masters only if there are still at least a
+# given number of other working slaves for their old master. This number
+# is the "migration barrier". A migration barrier of 1 means that a slave
+# will migrate only if there is at least 1 other working slave for its master
+# and so forth. It usually reflects the number of slaves you want for every
+# master in your cluster.
+#
+# Default is 1 (slaves migrate only if their masters remain with at least
+# one slave). To disable migration just set it to a very large value.
+# A value of 0 can be set but is useful only for debugging and dangerous
+# in production.
+#
+# cluster-migration-barrier 1
+
+# By default Redis Cluster nodes stop accepting queries if they detect there
+# is at least an hash slot uncovered (no available node is serving it).
+# This way if the cluster is partially down (for example a range of hash slots
+# are no longer covered) all the cluster becomes, eventually, unavailable.
+# It automatically returns available as soon as all the slots are covered again.
+#
+# However sometimes you want the subset of the cluster which is working,
+# to continue to accept queries for the part of the key space that is still
+# covered. In order to do so, just set the cluster-require-full-coverage
+# option to no.
+#
+# cluster-require-full-coverage yes
+
+# In order to setup your cluster make sure to read the documentation
+# available at http://redis.io web site.
+
+########################## CLUSTER DOCKER/NAT support ########################
+
+# In certain deployments, Redis Cluster nodes address discovery fails, because
+# addresses are NAT-ted or because ports are forwarded (the typical case is
+# Docker and other containers).
+#
+# In order to make Redis Cluster working in such environments, a static
+# configuration where each node knows its public address is needed. The
+# following two options are used for this scope, and are:
+#
+# * cluster-announce-ip
+# * cluster-announce-port
+# * cluster-announce-bus-port
+#
+# Each instruct the node about its address, client port, and cluster message
+# bus port. The information is then published in the header of the bus packets
+# so that other nodes will be able to correctly map the address of the node
+# publishing the information.
+#
+# If the above options are not used, the normal Redis Cluster auto-detection
+# will be used instead.
+#
+# Note that when remapped, the bus port may not be at the fixed offset of
+# clients port + 10000, so you can specify any port and bus-port depending
+# on how they get remapped. If the bus-port is not set, a fixed offset of
+# 10000 will be used as usually.
+#
+# Example:
+#
+# cluster-announce-ip 10.1.1.5
+# cluster-announce-port 6379
+# cluster-announce-bus-port 6380
+
################################## SLOW LOG ###################################
# The Redis Slow Log is a system to log queries that exceeded a specified
@@ -439,7 +956,7 @@
# but just the time needed to actually execute the command (this is the only
# stage of command execution where the thread is blocked and can not serve
# other requests in the meantime).
-#
+#
# You can configure the slow log with two parameters: one tells Redis
# what is the execution time, in microseconds, to exceed in order for the
# command to get logged, and the other parameter is the length of the
@@ -455,6 +972,73 @@
# You can reclaim memory used by the slow log with SLOWLOG RESET.
slowlog-max-len 128
+################################ LATENCY MONITOR ##############################
+
+# The Redis latency monitoring subsystem samples different operations
+# at runtime in order to collect data related to possible sources of
+# latency of a Redis instance.
+#
+# Via the LATENCY command this information is available to the user that can
+# print graphs and obtain reports.
+#
+# The system only logs operations that were performed in a time equal or
+# greater than the amount of milliseconds specified via the
+# latency-monitor-threshold configuration directive. When its value is set
+# to zero, the latency monitor is turned off.
+#
+# By default latency monitoring is disabled since it is mostly not needed
+# if you don't have latency issues, and collecting data has a performance
+# impact, that while very small, can be measured under big load. Latency
+# monitoring can easily be enabled at runtime using the command
+# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
+latency-monitor-threshold 0
+
+############################# EVENT NOTIFICATION ##############################
+
+# Redis can notify Pub/Sub clients about events happening in the key space.
+# This feature is documented at http://redis.io/topics/notifications
+#
+# For instance if keyspace events notification is enabled, and a client
+# performs a DEL operation on key "foo" stored in the Database 0, two
+# messages will be published via Pub/Sub:
+#
+# PUBLISH __keyspace@0__:foo del
+# PUBLISH __keyevent@0__:del foo
+#
+# It is possible to select the events that Redis will notify among a set
+# of classes. Every class is identified by a single character:
+#
+# K Keyspace events, published with __keyspace@<db>__ prefix.
+# E Keyevent events, published with __keyevent@<db>__ prefix.
+# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
+# $ String commands
+# l List commands
+# s Set commands
+# h Hash commands
+# z Sorted set commands
+# x Expired events (events generated every time a key expires)
+# e Evicted events (events generated when a key is evicted for maxmemory)
+# A Alias for g$lshzxe, so that the "AKE" string means all the events.
+#
+# The "notify-keyspace-events" takes as argument a string that is composed
+# of zero or multiple characters. The empty string means that notifications
+# are disabled.
+#
+# Example: to enable list and generic events, from the point of view of the
+# event name, use:
+#
+# notify-keyspace-events Elg
+#
+# Example 2: to get the stream of the expired keys subscribing to channel
+# name __keyevent@0__:expired use:
+#
+# notify-keyspace-events Ex
+#
+# By default all notifications are disabled because most users don't need
+# this feature and the feature has some overhead. Note that if you don't
+# specify at least one of K or E, no events will be delivered.
+notify-keyspace-events ""
+
############################### ADVANCED CONFIG ###############################
# Hashes are encoded using a memory efficient data structure when they have a
@@ -463,14 +1047,39 @@
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
-# Similarly to hashes, small lists are also encoded in a special way in order
-# to save a lot of space. The special representation is only used when
-# you are under the following limits:
-list-max-ziplist-entries 512
-list-max-ziplist-value 64
+# Lists are also encoded in a special way to save a lot of space.
+# The number of entries allowed per internal list node can be specified
+# as a fixed maximum size or a maximum number of elements.
+# For a fixed maximum size, use -5 through -1, meaning:
+# -5: max size: 64 Kb <-- not recommended for normal workloads
+# -4: max size: 32 Kb <-- not recommended
+# -3: max size: 16 Kb <-- probably not recommended
+# -2: max size: 8 Kb <-- good
+# -1: max size: 4 Kb <-- good
+# Positive numbers mean store up to _exactly_ that number of elements
+# per list node.
+# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
+# but if your use case is unique, adjust the settings as necessary.
+list-max-ziplist-size -2
+
+# Lists may also be compressed.
+# Compress depth is the number of quicklist ziplist nodes from *each* side of
+# the list to *exclude* from compression. The head and tail of the list
+# are always uncompressed for fast push/pop operations. Settings are:
+# 0: disable all list compression
+# 1: depth 1 means "don't start compressing until after 1 node into the list,
+# going from either the head or tail"
+# So: [head]->node->node->...->node->[tail]
+# [head], [tail] will always be uncompressed; inner nodes will compress.
+# 2: [head]->[next]->node->node->...->node->[prev]->[tail]
+# 2 here means: don't compress head or head->next or tail->prev or tail,
+# but compress all nodes between them.
+# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail]
+# etc.
+list-compress-depth 0
# Sets have a special encoding in just one case: when a set is composed
-# of just strings that happens to be integers in radix 10 in the range
+# of just strings that happen to be integers in radix 10 in the range
# of 64 bit signed integers.
# The following configuration setting sets the limit in the size of the
# set in order to use this special memory saving encoding.
@@ -482,20 +1091,34 @@
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
+# HyperLogLog sparse representation bytes limit. The limit includes the
+# 16 bytes header. When an HyperLogLog using the sparse representation crosses
+# this limit, it is converted into the dense representation.
+#
+# A value greater than 16000 is totally useless, since at that point the
+# dense representation is more memory efficient.
+#
+# The suggested value is ~ 3000 in order to have the benefits of
+# the space efficient encoding without slowing down too much PFADD,
+# which is O(N) with the sparse encoding. The value can be raised to
+# ~ 10000 when CPU is not a concern, but space is, and the data set is
+# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
+hll-sparse-max-bytes 3000
+
# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
# order to help rehashing the main Redis hash table (the one mapping top-level
# keys to values). The hash table implementation Redis uses (see dict.c)
-# performs a lazy rehashing: the more operation you run into an hash table
+# performs a lazy rehashing: the more operation you run into a hash table
# that is rehashing, the more rehashing "steps" are performed, so if the
# server is idle the rehashing is never complete and some more memory is used
# by the hash table.
-#
+#
# The default is to use this millisecond 10 times every second in order to
-# active rehashing the main dictionaries, freeing memory when possible.
+# actively rehash the main dictionaries, freeing memory when possible.
#
# If unsure:
# use "activerehashing no" if you have hard latency requirements and it is
-# not a good thing in your environment that Redis can reply form time to time
+# not a good thing in your environment that Redis can reply from time to time
# to queries with 2 milliseconds delay.
#
# use "activerehashing yes" if you don't have such hard requirements but
@@ -509,9 +1132,9 @@
#
# The limit can be set differently for the three different classes of clients:
#
-# normal -> normal clients
-# slave -> slave clients and MONITOR clients
-# pubsub -> clients subcribed to at least one pubsub channel or pattern
+# normal -> normal clients including MONITOR clients
+# slave -> slave clients
+# pubsub -> clients subscribed to at least one pubsub channel or pattern
#
# The syntax of every client-output-buffer-limit directive is the following:
#
@@ -534,17 +1157,158 @@
# Instead there is a default limit for pubsub and slave clients, since
# subscribers and slaves receive data in a push fashion.
#
-# Both the hard or the soft limit can be disabled just setting it to zero.
+# Both the hard or the soft limit can be disabled by setting them to zero.
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
-################################## INCLUDES ###################################
-
-# Include one or more other config files here. This is useful if you
-# have a standard template that goes to all Redis server but also need
-# to customize a few per-server settings. Include files can include
-# other files, so use this wisely.
+# Client query buffers accumulate new commands. They are limited to a fixed
+# amount by default in order to avoid that a protocol desynchronization (for
+# instance due to a bug in the client) will lead to unbound memory usage in
+# the query buffer. However you can configure it here if you have very special
+# needs, such us huge multi/exec requests or alike.
#
-# include /path/to/local.conf
-# include /path/to/other.conf
+# client-query-buffer-limit 1gb
+
+# In the Redis protocol, bulk requests, that are, elements representing single
+# strings, are normally limited ot 512 mb. However you can change this limit
+# here.
+#
+# proto-max-bulk-len 512mb
+
+# Redis calls an internal function to perform many background tasks, like
+# closing connections of clients in timeout, purging expired keys that are
+# never requested, and so forth.
+#
+# Not all tasks are performed with the same frequency, but Redis checks for
+# tasks to perform according to the specified "hz" value.
+#
+# By default "hz" is set to 10. Raising the value will use more CPU when
+# Redis is idle, but at the same time will make Redis more responsive when
+# there are many keys expiring at the same time, and timeouts may be
+# handled with more precision.
+#
+# The range is between 1 and 500, however a value over 100 is usually not
+# a good idea. Most users should use the default of 10 and raise this up to
+# 100 only in environments where very low latency is required.
+hz 10
+
+# When a child rewrites the AOF file, if the following option is enabled
+# the file will be fsync-ed every 32 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+aof-rewrite-incremental-fsync yes
+
+# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good
+# idea to start with the default settings and only change them after investigating
+# how to improve the performances and how the keys LFU change over time, which
+# is possible to inspect via the OBJECT FREQ command.
+#
+# There are two tunable parameters in the Redis LFU implementation: the
+# counter logarithm factor and the counter decay time. It is important to
+# understand what the two parameters mean before changing them.
+#
+# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis
+# uses a probabilistic increment with logarithmic behavior. Given the value
+# of the old counter, when a key is accessed, the counter is incremented in
+# this way:
+#
+# 1. A random number R between 0 and 1 is extracted.
+# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1).
+# 3. The counter is incremented only if R < P.
+#
+# The default lfu-log-factor is 10. This is a table of how the frequency
+# counter changes with a different number of accesses with different
+# logarithmic factors:
+#
+# +--------+------------+------------+------------+------------+------------+
+# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits |
+# +--------+------------+------------+------------+------------+------------+
+# | 0 | 104 | 255 | 255 | 255 | 255 |
+# +--------+------------+------------+------------+------------+------------+
+# | 1 | 18 | 49 | 255 | 255 | 255 |
+# +--------+------------+------------+------------+------------+------------+
+# | 10 | 10 | 18 | 142 | 255 | 255 |
+# +--------+------------+------------+------------+------------+------------+
+# | 100 | 8 | 11 | 49 | 143 | 255 |
+# +--------+------------+------------+------------+------------+------------+
+#
+# NOTE: The above table was obtained by running the following commands:
+#
+# redis-benchmark -n 1000000 incr foo
+# redis-cli object freq foo
+#
+# NOTE 2: The counter initial value is 5 in order to give new objects a chance
+# to accumulate hits.
+#
+# The counter decay time is the time, in minutes, that must elapse in order
+# for the key counter to be divided by two (or decremented if it has a value
+# less <= 10).
+#
+# The default value for the lfu-decay-time is 1. A Special value of 0 means to
+# decay the counter every time it happens to be scanned.
+#
+# lfu-log-factor 10
+# lfu-decay-time 1
+
+########################### ACTIVE DEFRAGMENTATION #######################
+#
+# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested
+# even in production and manually tested by multiple engineers for some
+# time.
+#
+# What is active defragmentation?
+# -------------------------------
+#
+# Active (online) defragmentation allows a Redis server to compact the
+# spaces left between small allocations and deallocations of data in memory,
+# thus allowing to reclaim back memory.
+#
+# Fragmentation is a natural process that happens with every allocator (but
+# less so with Jemalloc, fortunately) and certain workloads. Normally a server
+# restart is needed in order to lower the fragmentation, or at least to flush
+# away all the data and create it again. However thanks to this feature
+# implemented by Oran Agra for Redis 4.0 this process can happen at runtime
+# in an "hot" way, while the server is running.
+#
+# Basically when the fragmentation is over a certain level (see the
+# configuration options below) Redis will start to create new copies of the
+# values in contiguous memory regions by exploiting certain specific Jemalloc
+# features (in order to understand if an allocation is causing fragmentation
+# and to allocate it in a better place), and at the same time, will release the
+# old copies of the data. This process, repeated incrementally for all the keys
+# will cause the fragmentation to drop back to normal values.
+#
+# Important things to understand:
+#
+# 1. This feature is disabled by default, and only works if you compiled Redis
+# to use the copy of Jemalloc we ship with the source code of Redis.
+# This is the default with Linux builds.
+#
+# 2. You never need to enable this feature if you don't have fragmentation
+# issues.
+#
+# 3. Once you experience fragmentation, you can enable this feature when
+# needed with the command "CONFIG SET activedefrag yes".
+#
+# The configuration parameters are able to fine tune the behavior of the
+# defragmentation process. If you are not sure about what they mean it is
+# a good idea to leave the defaults untouched.
+
+# Enabled active defragmentation
+# activedefrag yes
+
+# Minimum amount of fragmentation waste to start active defrag
+# active-defrag-ignore-bytes 100mb
+
+# Minimum percentage of fragmentation to start active defrag
+# active-defrag-threshold-lower 10
+
+# Maximum percentage of fragmentation at which we use maximum effort
+# active-defrag-threshold-upper 100
+
+# Minimal effort for defrag in CPU percentage
+# active-defrag-cycle-min 25
+
+# Maximal effort for defrag in CPU percentage
+# active-defrag-cycle-max 75
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis/remove-atomics.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis/remove-atomics.patch
new file mode 100644
index 0000000..23b2f2a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis/remove-atomics.patch
@@ -0,0 +1,72 @@
+From c486455e0691f9915018b9d8b133200a6c61a3c5 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Thu, 24 May 2018 09:58:42 -0700
+Subject: [PATCH] Remove atomics
+
+Based on this patch:
+https://github.com/patrikx3/lede-redis/blob/master/redis/patches/010-redis.patch
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ deps/jemalloc/src/pages.c | 22 +---------------------
+ src/atomicvar.h | 4 ++--
+ 2 files changed, 3 insertions(+), 23 deletions(-)
+
+diff --git a/deps/jemalloc/src/pages.c b/deps/jemalloc/src/pages.c
+index 83a167f6..8e82c78d 100644
+--- a/deps/jemalloc/src/pages.c
++++ b/deps/jemalloc/src/pages.c
+@@ -147,27 +147,7 @@ pages_purge(void *addr, size_t size)
+ {
+ bool unzeroed;
+
+-#ifdef _WIN32
+- VirtualAlloc(addr, size, MEM_RESET, PAGE_READWRITE);
+- unzeroed = true;
+-#elif defined(JEMALLOC_HAVE_MADVISE)
+-# ifdef JEMALLOC_PURGE_MADVISE_DONTNEED
+-# define JEMALLOC_MADV_PURGE MADV_DONTNEED
+-# define JEMALLOC_MADV_ZEROS true
+-# elif defined(JEMALLOC_PURGE_MADVISE_FREE)
+-# define JEMALLOC_MADV_PURGE MADV_FREE
+-# define JEMALLOC_MADV_ZEROS false
+-# else
+-# error "No madvise(2) flag defined for purging unused dirty pages."
+-# endif
+- int err = madvise(addr, size, JEMALLOC_MADV_PURGE);
+- unzeroed = (!JEMALLOC_MADV_ZEROS || err != 0);
+-# undef JEMALLOC_MADV_PURGE
+-# undef JEMALLOC_MADV_ZEROS
+-#else
+- /* Last resort no-op. */
+- unzeroed = true;
+-#endif
++ unzeroed = false;
+ return (unzeroed);
+ }
+
+diff --git a/src/atomicvar.h b/src/atomicvar.h
+index 84a5bbc5..f9b563c2 100644
+--- a/src/atomicvar.h
++++ b/src/atomicvar.h
+@@ -68,7 +68,7 @@
+ * is reported. */
+ // #define __ATOMIC_VAR_FORCE_SYNC_MACROS
+
+-#if !defined(__ATOMIC_VAR_FORCE_SYNC_MACROS) && defined(__ATOMIC_RELAXED) && !defined(__sun) && (!defined(__clang__) || !defined(__APPLE__) || __apple_build_version__ > 4210057)
++#if defined(CONFIG_EDAC_ATOMIC_SCRUB) && !defined(__ATOMIC_VAR_FORCE_SYNC_MACROS) && defined(__ATOMIC_RELAXED) && !defined(__sun) && (!defined(__clang__) || !defined(__APPLE__) || __apple_build_version__ > 4210057)
+ /* Implementation using __atomic macros. */
+
+ #define atomicIncr(var,count) __atomic_add_fetch(&var,(count),__ATOMIC_RELAXED)
+@@ -82,7 +82,7 @@
+ #define atomicSet(var,value) __atomic_store_n(&var,value,__ATOMIC_RELAXED)
+ #define REDIS_ATOMIC_API "atomic-builtin"
+
+-#elif defined(HAVE_ATOMIC)
++#elif defined(CONFIG_EDAC_ATOMIC_SCRUB) && defined(HAVE_ATOMIC)
+ /* Implementation using __sync macros. */
+
+ #define atomicIncr(var,count) __sync_add_and_fetch(&var,(count))
+--
+2.17.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_3.0.2.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_3.0.2.bb
deleted file mode 100644
index 9395b33..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_3.0.2.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "Redis key-value store"
-DESCRIPTION = "Redis is an open source, advanced key-value store."
-HOMEPAGE = "http://redis.io"
-SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3c01b49fed4df1a79843688fa3f7b9d6"
-DEPENDS = ""
-
-SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
- file://hiredis-use-default-CC-if-it-is-set.patch \
- file://lua-update-Makefile-to-use-environment-build-setting.patch \
- file://oe-use-libc-malloc.patch \
- file://redis.conf \
- file://init-redis-server \
- file://redis.service \
- file://hiredis-update-Makefile-to-add-symbols-to-staticlib.patch \
-"
-
-SRC_URI[md5sum] = "87be8867447f62524b584813e5a7bd14"
-SRC_URI[sha256sum] = "93e422c0d584623601f89b956045be158889ebe594478a2c24e1bf218495633f"
-
-inherit autotools-brokensep update-rc.d systemd useradd
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --home-dir /var/lib/redis -g redis --shell /bin/false redis"
-GROUPADD_PARAM_${PN} = "--system redis"
-
-
-REDIS_ON_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}"
-
-do_install() {
- export PREFIX=${D}/${prefix}
- oe_runmake install
- install -d ${D}/${sysconfdir}/redis
- install -m 0644 ${WORKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf
- install -d ${D}/${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server
- install -d ${D}/var/lib/redis/
- chown redis.redis ${D}/var/lib/redis/
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/redis.service ${D}${systemd_system_unitdir}
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_system_unitdir}/redis.service
-
- if [ "${REDIS_ON_SYSTEMD}" = true ]; then
- sed -i 's!daemonize yes!# daemonize yes!' ${D}/${sysconfdir}/redis/redis.conf
- fi
-}
-
-CONFFILES_${PN} = "${sysconfdir}/redis/redis.conf"
-
-INITSCRIPT_NAME = "redis-server"
-INITSCRIPT_PARAMS = "defaults 87"
-
-SYSTEMD_SERVICE_${PN} = "redis.service"
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.8.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.8.bb
new file mode 100644
index 0000000..80d36d2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.8.bb
@@ -0,0 +1,57 @@
+SUMMARY = "Redis key-value store"
+DESCRIPTION = "Redis is an open source, advanced key-value store."
+HOMEPAGE = "http://redis.io"
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3c01b49fed4df1a79843688fa3f7b9d6"
+DEPENDS = ""
+
+SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
+ file://hiredis-use-default-CC-if-it-is-set.patch \
+ file://lua-update-Makefile-to-use-environment-build-setting.patch \
+ file://oe-use-libc-malloc.patch \
+ file://redis.conf \
+ file://init-redis-server \
+ file://redis.service \
+"
+
+SRC_URI_append_mips = " file://remove-atomics.patch"
+SRC_URI_append_arm = " file://remove-atomics.patch"
+
+SRC_URI[md5sum] = "c75b11e4177e153e4dc1d8dd3a6174e4"
+SRC_URI[sha256sum] = "ff0c38b8c156319249fec61e5018cf5b5fe63a65b61690bec798f4c998c232ad"
+
+inherit autotools-brokensep update-rc.d systemd useradd
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --home-dir /var/lib/redis -g redis --shell /bin/false redis"
+GROUPADD_PARAM_${PN} = "--system redis"
+
+
+REDIS_ON_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}"
+
+do_install() {
+ export PREFIX=${D}/${prefix}
+ oe_runmake install
+ install -d ${D}/${sysconfdir}/redis
+ install -m 0644 ${WORKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server
+ install -d ${D}/var/lib/redis/
+ chown redis.redis ${D}/var/lib/redis/
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/redis.service ${D}${systemd_system_unitdir}
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_system_unitdir}/redis.service
+
+ if [ "${REDIS_ON_SYSTEMD}" = true ]; then
+ sed -i 's!daemonize yes!# daemonize yes!' ${D}/${sysconfdir}/redis/redis.conf
+ fi
+}
+
+CONFFILES_${PN} = "${sysconfdir}/redis/redis.conf"
+
+INITSCRIPT_NAME = "redis-server"
+INITSCRIPT_PARAMS = "defaults 87"
+
+SYSTEMD_SERVICE_${PN} = "redis.service"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.6.0.bb b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.6.0.bb
deleted file mode 100644
index 797bcaa..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.6.0.bb
+++ /dev/null
@@ -1,128 +0,0 @@
-SUMMARY = "High performance data logging and graphing system for time series data"
-HOMEPAGE = "http://oss.oetiker.ch/rrdtool/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3349111ed0533471494beec99715bc9d"
-
-DEPENDS = "libpng zlib cairo pango glib-2.0 libxml2 groff-native"
-
-SRCREV = "61f116744262c4c18922dcf806e496715f199669"
-PV = "1.6.0"
-
-SRC_URI = "\
- git://github.com/oetiker/rrdtool-1.x.git;branch=1.6;protocol=http; \
-"
-
-S = "${WORKDIR}/git"
-
-inherit cpan autotools-brokensep gettext pythonnative python-dir systemd
-
-BBCLASSEXTEND = "native"
-
-SYSTEMD_PACKAGES = "rrdcached"
-SYSTEMD_SERVICE_rrdcached = "rrdcached.socket rrdcached.service"
-
-EXTRA_AUTORECONF = "-I m4 --exclude=autopoint"
-
-PACKAGECONFIG ??= "python perl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-PACKAGECONFIG[python] = "--enable-python=yes \
-am_cv_python_pythondir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages \
-am_cv_python_pyexecdir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages,\
---disable-python,python,"
-
-PACKAGECONFIG[perl] = \
-"--enable-perl=yes --with-perl-options='INSTALLDIRS="vendor"' \
-ac_cv_path_PERL_CC='${CC}', \
---disable-perl,perl,"
-
-PACKAGECONFIG[dbi] = "--enable-libdbi,--disable-libdbi,libdbi"
-
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
-
-EXTRA_OECONF = " \
- --enable-shared \
- --disable-libwrap \
- --program-prefix='' \
- rd_cv_ieee_works=yes \
- --disable-ruby \
- --disable-lua \
- --disable-tcl \
- --disable-rpath \
- --enable-nls=${USE_NLS} \
-"
-
-export STAGING_LIBDIR
-export STAGING_INCDIR
-
-# emulate cpan_do_configure
-EXTRA_OEMAKE = ' PERL5LIB="${PERL_ARCHLIB}" '
-# Avoid do_configure error on some hosts
-
-do_configure() {
- unset PERLHOSTLIB
- #fix the pkglib problem with newer automake
- #perl
- sed -i -e "s|-Wl,--rpath -Wl,\$rp||g" \
- ${S}/bindings/perl-shared/Makefile.PL
-
- #python
- sed -i -e '/PYTHON_INCLUDES="-I${/c \
- PYTHON_INCLUDES="-I=/usr/include/python${PYTHON_BASEVERSION}"' \
- ${S}/m4/acinclude.m4
- #remove the useless RPATH from the rrdtool.so
- sed -i -e 's|LD_RUN_PATH=$(libdir)||g' ${S}/bindings/Makefile.am
-
- autotools_do_configure
-
- #modify python sitepkg
- #remove the dependency of perl-shared:Makefile
- #or perl-shared/Makefile will be regenerated
- #if any code touch bindings/Makefile after below perl bindings code
- sed -i -e "s:python/setup.py install:python/setup.py install \
- --install-lib=${PYTHON_SITEPACKAGES_DIR}:" \
- -e "s:perl-shared/Makefile.PL Makefile:perl-shared/Makefile.PL:" \
- ${B}/bindings/Makefile
-
- #redo the perl bindings
- (
- cd ${S}/bindings/perl-shared;
- perl Makefile.PL INSTALLDIRS="vendor" INSTALLPRIVLIB="abc";
-
- cd ../../bindings/perl-piped;
- perl Makefile.PL INSTALLDIRS="vendor";
- )
-
- #change the interpreter in file
- sed -i -e "s|^PERL = ${STAGING_BINDIR_NATIVE}/.*|PERL = /usr/bin/perl|g" \
- ${B}/examples/Makefile
- sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" \
- ${B}/examples/*.pl
-}
-
-PACKAGES =+ "${PN}-perl ${PN}-python"
-PACKAGES =+ "rrdcached"
-
-DESCRIPTION_rrdcached = \
-"The rrdcached package contains the data caching daemon for RRDtool."
-
-FILES_rrdcached = "${bindir}/rrdcached \
- ${systemd_unitdir}/system/rrdcached.service \
- ${systemd_unitdir}/system/rrdcached.socket"
-
-FILES_${PN}-doc += "${datadir}/rrdtool/examples"
-
-DESCRIPTION_${PN}-perl = \
-"The ${PN}-perl package includes RRDtool bindings for perl."
-FILES_${PN}-perl = "${libdir}/perl/vendor_perl/*/*.pm \
- ${libdir}/perl/vendor_perl/*/auto/RRDs/RRDs.*"
-RDEPENDS_${PN}-perl = "perl perl-module-lib perl-module-getopt-long perl-module-time-hires \
- perl-module-io-file perl-module-ipc-open2 perl-module-io-socket"
-
-DESCRIPTION_${PN}-python = \
-"The ${PN}-python package includes RRDtool bindings for python."
-FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-RDEPENDS_${PN}-python = "python"
-
-FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
- ${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb
new file mode 100644
index 0000000..ff99574
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb
@@ -0,0 +1,128 @@
+SUMMARY = "High performance data logging and graphing system for time series data"
+HOMEPAGE = "http://oss.oetiker.ch/rrdtool/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3349111ed0533471494beec99715bc9d"
+
+DEPENDS = "libpng zlib cairo pango glib-2.0 libxml2 groff-native python-setuptools-native"
+
+SRCREV = "bfc82d5242855628b826018479df00e0ec4e8360"
+PV = "1.7.0"
+
+SRC_URI = "\
+ git://github.com/oetiker/rrdtool-1.x.git;branch=master;protocol=http; \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cpan autotools-brokensep gettext pythonnative python-dir systemd
+
+BBCLASSEXTEND = "native"
+
+SYSTEMD_PACKAGES = "rrdcached"
+SYSTEMD_SERVICE_rrdcached = "rrdcached.socket rrdcached.service"
+
+EXTRA_AUTORECONF = "-I m4 --exclude=autopoint"
+
+PACKAGECONFIG ??= "python perl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+PACKAGECONFIG[python] = "--enable-python=yes \
+am_cv_python_pythondir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages \
+am_cv_python_pyexecdir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages,\
+--disable-python,python,"
+
+PACKAGECONFIG[perl] = \
+"--enable-perl=yes --with-perl-options='INSTALLDIRS="vendor"' \
+ac_cv_path_PERL_CC='${CC}', \
+--disable-perl,perl,"
+
+PACKAGECONFIG[dbi] = "--enable-libdbi,--disable-libdbi,libdbi"
+
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
+
+EXTRA_OECONF = " \
+ --enable-shared \
+ --disable-libwrap \
+ --program-prefix='' \
+ rd_cv_ieee_works=yes \
+ --disable-ruby \
+ --disable-lua \
+ --disable-tcl \
+ --disable-rpath \
+ --enable-nls=${USE_NLS} \
+"
+
+export STAGING_LIBDIR
+export STAGING_INCDIR
+
+# emulate cpan_do_configure
+EXTRA_OEMAKE = ' PERL5LIB="${PERL_ARCHLIB}" '
+# Avoid do_configure error on some hosts
+
+do_configure() {
+ unset PERLHOSTLIB
+ #fix the pkglib problem with newer automake
+ #perl
+ sed -i -e "s|-Wl,--rpath -Wl,\$rp||g" \
+ ${S}/bindings/perl-shared/Makefile.PL
+
+ #python
+ sed -i -e '/PYTHON_INCLUDES="-I${/c \
+ PYTHON_INCLUDES="-I=/usr/include/python${PYTHON_BASEVERSION}"' \
+ ${S}/m4/acinclude.m4
+ #remove the useless RPATH from the rrdtool.so
+ sed -i -e 's|LD_RUN_PATH=$(libdir)||g' ${S}/bindings/Makefile.am
+
+ autotools_do_configure
+
+ #modify python sitepkg
+ #remove the dependency of perl-shared:Makefile
+ #or perl-shared/Makefile will be regenerated
+ #if any code touch bindings/Makefile after below perl bindings code
+ sed -i -e "s:python/setup.py install:python/setup.py install \
+ --install-lib=${PYTHON_SITEPACKAGES_DIR}:" \
+ -e "s:perl-shared/Makefile.PL Makefile:perl-shared/Makefile.PL:" \
+ ${B}/bindings/Makefile
+
+ #redo the perl bindings
+ (
+ cd ${S}/bindings/perl-shared;
+ perl Makefile.PL INSTALLDIRS="vendor" INSTALLPRIVLIB="abc";
+
+ cd ../../bindings/perl-piped;
+ perl Makefile.PL INSTALLDIRS="vendor";
+ )
+
+ #change the interpreter in file
+ sed -i -e "s|^PERL = ${STAGING_BINDIR_NATIVE}/.*|PERL = /usr/bin/perl|g" \
+ ${B}/examples/Makefile
+ sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" \
+ ${B}/examples/*.pl
+}
+
+PACKAGES =+ "${PN}-perl ${PN}-python"
+PACKAGES =+ "rrdcached"
+
+DESCRIPTION_rrdcached = \
+"The rrdcached package contains the data caching daemon for RRDtool."
+
+FILES_rrdcached = "${bindir}/rrdcached \
+ ${systemd_unitdir}/system/rrdcached.service \
+ ${systemd_unitdir}/system/rrdcached.socket"
+
+FILES_${PN}-doc += "${datadir}/rrdtool/examples"
+
+DESCRIPTION_${PN}-perl = \
+"The ${PN}-perl package includes RRDtool bindings for perl."
+FILES_${PN}-perl = "${libdir}/perl/vendor_perl/*/*.pm \
+ ${libdir}/perl/vendor_perl/*/auto/RRDs/RRDs.*"
+RDEPENDS_${PN}-perl = "perl perl-module-lib perl-module-getopt-long perl-module-time-hires \
+ perl-module-io-file perl-module-ipc-open2 perl-module-io-socket"
+
+DESCRIPTION_${PN}-python = \
+"The ${PN}-python package includes RRDtool bindings for python."
+FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
+RDEPENDS_${PN}-python = "python"
+
+FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
+ ${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-fix-jump-misses-init-error.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-fix-jump-misses-init-error.patch
new file mode 100644
index 0000000..68b6863
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-fix-jump-misses-init-error.patch
@@ -0,0 +1,71 @@
+From 3e5a0cb440c788e2383e40ab23ac1cf01d96961b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Tue, 24 Jul 2018 01:30:25 -0700
+Subject: [PATCH] src/tcp.c: fix jump-misses-init error
+
+Fix below jump-misses-init error
+
+| In file included from ../../git/src/tcp.c:51:
+| ../../git/src/tcp.c: In function 'relpTcpConnect':
+| ../../git/src/relp.h:220:3: error: jump skips variable initialization [-Werror=jump-misses-init]
+| goto finalize_it; \
+| ^~~~
+| ../../git/src/tcp.c:1951:3: note: in expansion of macro 'ABORT_FINALIZE'
+| ABORT_FINALIZE(RELP_RET_IO_ERR);
+| ^~~~~~~~~~~~~~
+| ../../git/src/tcp.c:2005:1: note: label 'finalize_it' defined here
+| finalize_it:
+| ^~~~~~~~~~~
+| ../../git/src/tcp.c:1991:6: note: 'r' declared here
+| int r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len);
+| ^
+| In file included from ../../git/src/tcp.c:51:
+| ../../git/src/relp.h:220:3: error: jump skips variable initialization [-Werror=jump-misses-init]
+| goto finalize_it; \
+| ^~~~
+| ../../git/src/tcp.c:1951:3: note: in expansion of macro 'ABORT_FINALIZE'
+| ABORT_FINALIZE(RELP_RET_IO_ERR);
+| ^~~~~~~~~~~~~~
+| ../../git/src/tcp.c:2005:1: note: label 'finalize_it' defined here
+| finalize_it:
+| ^~~~~~~~~~~
+| ../../git/src/tcp.c:1989:12: note: 'len' declared here
+| socklen_t len = sizeof so_error;
+| ^~~
+
+Upstream-Status: Submitted[https://github.com/rsyslog/librelp/pull/117]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/tcp.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/tcp.c b/src/tcp.c
+index f35eb84..fb34dc7 100644
+--- a/src/tcp.c
++++ b/src/tcp.c
+@@ -1936,6 +1936,9 @@ relpTcpConnect(relpTcp_t *const pThis,
+ struct addrinfo hints;
+ struct addrinfo *reslocal = NULL;
+ struct pollfd pfd;
++ int so_error;
++ socklen_t len = sizeof so_error;
++ int r;
+
+ ENTER_RELPFUNC;
+ RELPOBJ_assert(pThis, Tcp);
+@@ -1985,10 +1988,8 @@ relpTcpConnect(relpTcp_t *const pThis,
+ ABORT_FINALIZE(RELP_RET_TIMED_OUT);
+ }
+
+- int so_error;
+- socklen_t len = sizeof so_error;
+
+- int r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len);
++ r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len);
+ if (r == -1 || so_error != 0) {
+ pThis->pEngine->dbgprint("socket has an error %d\n", so_error);
+ ABORT_FINALIZE(RELP_RET_IO_ERR);
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-increase-the-size-of-szHname.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-increase-the-size-of-szHname.patch
new file mode 100644
index 0000000..5a62e15
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-increase-the-size-of-szHname.patch
@@ -0,0 +1,53 @@
+From d8950ad273d79ec516468289adbd427e681dbc66 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 30 Jul 2018 01:22:56 -0700
+Subject: [PATCH] src/tcp.c: increase the size of szHname
+
+Increase the size of szHname to fix below
+error:
+| ../../git/src/tcp.c: In function 'relpTcpSetRemHost':
+| ../../git/src/tcp.c:352:57: error: '%s' directive output may be truncated writing up to 1024 bytes into a region of size 1011 [-Werror=format-truncation=]
+| snprintf((char*)szHname, NI_MAXHOST, "[MALICIOUS:IP=%s]", szIP);
+| ^~ ~~~~
+| In file included from /poky-build/tmp/work/i586-poky-linux/librelp/1.2.16-r0/recipe-sysroot/usr/include/stdio.h:862,
+| from ../../git/src/tcp.c:38:
+| /poky-build/tmp/work/i586-poky-linux/librelp/1.2.16-r0/recipe-sysroot/usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 16 and 1040 bytes into a destination of size 1025
+| return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
+| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+| __bos (__s), __fmt, __va_arg_pack ());
+| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+| cc1: all warnings being treated as errors
+| Makefile:536: recipe for target 'librelp_la-tcp.lo' failed
+
+Upstream-Status: Submitted[https://github.com/rsyslog/librelp/pull/118]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/tcp.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tcp.c b/src/tcp.c
+index fb34dc7..2c38b0b 100644
+--- a/src/tcp.c
++++ b/src/tcp.c
+@@ -319,7 +319,7 @@ relpTcpSetRemHost(relpTcp_t *const pThis, struct sockaddr *pAddr)
+ relpEngine_t *pEngine;
+ int error;
+ unsigned char szIP[NI_MAXHOST] = "";
+- unsigned char szHname[NI_MAXHOST] = "";
++ unsigned char szHname[1045] = "";
+ struct addrinfo hints, *res;
+ size_t len;
+
+@@ -349,7 +349,7 @@ relpTcpSetRemHost(relpTcp_t *const pThis, struct sockaddr *pAddr)
+ if(getaddrinfo((char*)szHname, NULL, &hints, &res) == 0) {
+ freeaddrinfo (res);
+ /* OK, we know we have evil, so let's indicate this to our caller */
+- snprintf((char*)szHname, NI_MAXHOST, "[MALICIOUS:IP=%s]", szIP);
++ snprintf((char*)szHname, sizeof(szHname), "[MALICIOUS:IP=%s]", szIP);
+ pEngine->dbgprint("Malicious PTR record, IP = \"%s\" HOST = \"%s\"", szIP, szHname);
+ iRet = RELP_RET_MALICIOUS_HNAME;
+ }
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb
deleted file mode 100644
index 28047eb..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A reliable logging library"
-HOMEPAGE = "https://github.com/rsyslog/libfastjson"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9"
-
-DEPENDS = "gmp nettle libidn zlib gnutls"
-
-SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https"
-
-SRCREV = "fc512e337bfc7c92770246dbff5f482b879498b9"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.16.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.16.bb
new file mode 100644
index 0000000..17478ef
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.16.bb
@@ -0,0 +1,18 @@
+SUMMARY = "A reliable logging library"
+HOMEPAGE = "https://github.com/rsyslog/libfastjson"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9"
+
+DEPENDS = "gmp nettle libidn zlib gnutls"
+
+SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https \
+ file://0001-src-tcp.c-fix-jump-misses-init-error.patch \
+ file://0001-src-tcp.c-increase-the-size-of-szHname.patch \
+"
+
+SRCREV = "5e849ff060be0c7dce972e194c54fdacfee0adc2"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
index ca88dd3..6ce8b7a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
@@ -1,6 +1,6 @@
-From 9739095de6ae5f844354756ae968f5f8864eb3e3 Mon Sep 17 00:00:00 2001
+From 7baf35b88d742032a2dc456c396843e17e866f8e Mon Sep 17 00:00:00 2001
From: Ming Liu <peter.x.liu@external.atlascopco.com>
-Date: Sun, 26 Feb 2017 14:10:21 +0100
+Date: Wed, 27 Jun 2018 14:04:57 +0800
Subject: [PATCH] Include sys/time.h
struct timeval is defined in sys/time.h with a musl libc.
@@ -8,13 +8,13 @@
Upstream-Status: Inappropriate [musl libc specific]
Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
-
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
tests/msleep.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/tests/msleep.c b/tests/msleep.c
-index 26a8206..ca818be 100644
+index 98dbece..96f6950 100644
--- a/tests/msleep.c
+++ b/tests/msleep.c
@@ -26,11 +26,7 @@
@@ -26,6 +26,7 @@
-#else
-#include <time.h>
-#endif
-
- int main(int argc, char *argv[])
- {
+ #if defined(HAVE_SYS_SELECT_H)
+ #include <sys/select.h>
+ #endif
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf
index 324ae6d..dbfefb7 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf
@@ -84,3 +84,8 @@
# UDP Syslog Server:
#$ModLoad imudp.so # provides UDP syslog reception
#$UDPServerRun 514 # start a UDP syslog server at standard port 514
+
+#
+# Include all config files in /etc/rsyslog.d/
+#
+$IncludeConfig /etc/rsyslog.d/*.conf
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
index 94ec517..5f8568f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
@@ -9,7 +9,7 @@
delaycompress
compress
postrotate
- /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
+ @BINDIR@/pkill -HUP rsyslogd 2> /dev/null || true
endscript
}
@@ -34,6 +34,6 @@
delaycompress
sharedscripts
postrotate
- /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
+ @BINDIR@/pkill -HUP rsyslogd 2> /dev/null || true
endscript
}
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
index 162d239..0352587 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
@@ -3,7 +3,7 @@
Date: Wed, 18 Jun 2014 13:46:52 +0800
Subject: [PATCH] use pkgconfig to check libgcrypt
-Upstream-status: Inappropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
libgcrypt does no longer provide libgcrypt-config, and provide
*.pc, so we should use pkgconfig to check
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
deleted file mode 100644
index 476540d..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
+++ /dev/null
@@ -1,150 +0,0 @@
-SUMMARY = "Rsyslog is an enhanced multi-threaded syslogd"
-DESCRIPTION = "\
-Rsyslog is an enhanced syslogd supporting, among others, MySQL,\
- PostgreSQL, failover log destinations, syslog/tcp, fine grain\
- output format control, high precision timestamps, queued operations\
- and the ability to filter on any message part. It is quite\
- compatible to stock sysklogd and can be used as a drop-in replacement.\
- Its advanced features make it suitable for enterprise-class,\
- encryption protected syslog relay chains while at the same time being\
- very easy to setup for the novice user."
-
-DEPENDS = "zlib libestr libfastjson bison-native flex-native liblogging"
-HOMEPAGE = "http://www.rsyslog.com/"
-LICENSE = "GPLv3 & LGPLv3 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=51d9635e646fb75e1b74c074f788e973 \
- file://COPYING.LESSER;md5=cb7903f1e5c39ae838209e130dca270a \
- file://COPYING.ASL20;md5=052f8a09206615ab07326ff8ce2d9d32\
-"
-
-SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.tar.gz \
- file://initscript \
- file://rsyslog.conf \
- file://rsyslog.logrotate \
- file://use-pkgconfig-to-check-libgcrypt.patch \
- file://run-ptest \
- file://rsyslog-fix-ptest-not-finish.patch \
-"
-
-SRC_URI_append_libc-musl = " \
- file://0001-Include-sys-time-h.patch \
-"
-
-SRC_URI[md5sum] = "3805617f65a4b4bea34606487a5255a0"
-SRC_URI[sha256sum] = "220ba30b5afb0f3ddb328613fea7aa3966b01e4d0c52d6de9ab27b0858f19738"
-
-inherit autotools pkgconfig systemd update-rc.d ptest
-
-EXTRA_OECONF += "--disable-generate-man-pages ap_cv_atomic_builtins=yes"
-
-# first line is default yes in configure
-PACKAGECONFIG ??= " \
- rsyslogd rsyslogrt klog inet regexp uuid libgcrypt \
- imdiag gnutls imfile \
- ${@bb.utils.filter('DISTRO_FEATURES', 'snmp systemd', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench relp ${VALGRIND}', '', d)} \
-"
-
-# default yes in configure
-PACKAGECONFIG[relp] = "--enable-relp,--disable-relp,librelp,"
-PACKAGECONFIG[rsyslogd] = "--enable-rsyslogd,--disable-rsyslogd,,"
-PACKAGECONFIG[rsyslogrt] = "--enable-rsyslogrt,--disable-rsyslogrt,,"
-PACKAGECONFIG[inet] = "--enable-inet,--disable-inet,,"
-PACKAGECONFIG[klog] = "--enable-klog,--disable-klog,,"
-PACKAGECONFIG[regexp] = "--enable-regexp,--disable-regexp,,"
-PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
-PACKAGECONFIG[libgcrypt] = "--enable-libgcrypt,--disable-libgcrypt,libgcrypt,"
-PACKAGECONFIG[testbench] = "--enable-testbench --enable-omstdout,--disable-testbench --disable-omstdout,,"
-
-# default no in configure
-PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
-PACKAGECONFIG[imdiag] = "--enable-imdiag,--disable-imdiag,,"
-PACKAGECONFIG[imfile] = "--enable-imfile,--disable-imfile,,"
-PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp,"
-PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
-PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,"
-PACKAGECONFIG[postgresql] = "--enable-pgsql,--disable-pgsql,postgresql,"
-PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
-PACKAGECONFIG[mail] = "--enable-mail,--disable-mail,,"
-PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
-
-TESTDIR = "tests"
-do_compile_ptest() {
- echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
- oe_runmake -C ${TESTDIR} buildtest-TESTS
-}
-
-do_install_ptest() {
- # install the tests
- cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
- cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
-
- # do NOT need to rebuild Makefile itself
- sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-
- # fix the srcdir, top_srcdir
- sed -i 's,^\(srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
- sed -i 's,^\(top_srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-
- # valgrind is not compatible with arm and mips,
- # so remove related test cases if there is no valgrind.
- if [ x${VALGRIND} = x ]; then
- sed -i '/udp-msgreduc-/d' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
- fi
-
- # install test-driver
- install -m 644 ${S}/test-driver ${D}${PTEST_PATH}
-
- # install necessary links
- install -d ${D}${PTEST_PATH}/tools
- ln -sf ${sbindir}/rsyslogd ${D}${PTEST_PATH}/tools/rsyslogd
-
- install -d ${D}${PTEST_PATH}/runtime
- install -d ${D}${PTEST_PATH}/runtime/.libs
- (
- cd ${D}/${libdir}/rsyslog
- allso="*.so"
- for i in $allso; do
- ln -sf ${libdir}/rsyslog/$i ${D}${PTEST_PATH}/runtime/.libs/$i
- done
- )
-
- # fix the module load path with runtime/.libs
- find ${D}${PTEST_PATH}/${TESTDIR} -name "*.conf" -o -name "*.sh" -o -name "*.c" | xargs \
- sed -i -e 's:../plugins/.*/.libs/:../runtime/.libs/:g'
-}
-
-do_install_append() {
- install -d "${D}${sysconfdir}/init.d"
- install -d "${D}${sysconfdir}/logrotate.d"
- install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
- install -m 644 ${WORKDIR}/rsyslog.conf ${D}${sysconfdir}/rsyslog.conf
- install -m 644 ${WORKDIR}/rsyslog.logrotate ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
-}
-
-FILES_${PN} += "${bindir}"
-
-INITSCRIPT_NAME = "syslog"
-INITSCRIPT_PARAMS = "defaults"
-
-CONFFILES_${PN} = "${sysconfdir}/rsyslog.conf"
-
-RCONFLICTS_${PN} = "busybox-syslog sysklogd syslog-ng"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
-
-RDEPENDS_${PN} += "logrotate"
-
-# for rsyslog-ptest
-VALGRIND = "valgrind"
-VALGRIND_mips = ""
-VALGRIND_mips64 = ""
-VALGRIND_mips64n32 = ""
-VALGRIND_arm = ""
-VALGRIND_aarch64 = ""
-RDEPENDS_${PN}-ptest += "make diffutils gzip bash gawk coreutils procps"
-RRECOMMENDS_${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.37.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.37.0.bb
new file mode 100644
index 0000000..1fb4390
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.37.0.bb
@@ -0,0 +1,166 @@
+SUMMARY = "Rsyslog is an enhanced multi-threaded syslogd"
+DESCRIPTION = "\
+Rsyslog is an enhanced syslogd supporting, among others, MySQL,\
+ PostgreSQL, failover log destinations, syslog/tcp, fine grain\
+ output format control, high precision timestamps, queued operations\
+ and the ability to filter on any message part. It is quite\
+ compatible to stock sysklogd and can be used as a drop-in replacement.\
+ Its advanced features make it suitable for enterprise-class,\
+ encryption protected syslog relay chains while at the same time being\
+ very easy to setup for the novice user."
+
+DEPENDS = "zlib libestr libfastjson bison-native flex-native liblogging"
+HOMEPAGE = "http://www.rsyslog.com/"
+LICENSE = "GPLv3 & LGPLv3 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=51d9635e646fb75e1b74c074f788e973 \
+ file://COPYING.LESSER;md5=cb7903f1e5c39ae838209e130dca270a \
+ file://COPYING.ASL20;md5=052f8a09206615ab07326ff8ce2d9d32\
+"
+
+SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.tar.gz \
+ file://initscript \
+ file://rsyslog.conf \
+ file://rsyslog.logrotate \
+ file://use-pkgconfig-to-check-libgcrypt.patch \
+ file://run-ptest \
+ file://rsyslog-fix-ptest-not-finish.patch \
+"
+
+SRC_URI_append_libc-musl = " \
+ file://0001-Include-sys-time-h.patch \
+"
+
+SRC_URI[md5sum] = "e0942b4b88a13602a6b6352bf9f05091"
+SRC_URI[sha256sum] = "295c289b4c8abd8f8f3fe35a83249b739cedabe82721702b910255f9faf147e7"
+
+UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+
+inherit autotools pkgconfig systemd update-rc.d ptest
+
+EXTRA_OECONF += "--disable-generate-man-pages ap_cv_atomic_builtins=yes"
+
+# first line is default yes in configure
+PACKAGECONFIG ??= " \
+ rsyslogd rsyslogrt klog inet regexp uuid libgcrypt \
+ fmhttp imdiag gnutls imfile \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'snmp systemd', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench relp ${VALGRIND}', '', d)} \
+"
+
+# default yes in configure
+PACKAGECONFIG[relp] = "--enable-relp,--disable-relp,librelp,"
+PACKAGECONFIG[rsyslogd] = "--enable-rsyslogd,--disable-rsyslogd,,"
+PACKAGECONFIG[rsyslogrt] = "--enable-rsyslogrt,--disable-rsyslogrt,,"
+PACKAGECONFIG[fmhttp] = "--enable-fmhttp,--disable-fmhttp,curl,"
+PACKAGECONFIG[inet] = "--enable-inet,--disable-inet,,"
+PACKAGECONFIG[klog] = "--enable-klog,--disable-klog,,"
+PACKAGECONFIG[regexp] = "--enable-regexp,--disable-regexp,,"
+PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
+PACKAGECONFIG[libgcrypt] = "--enable-libgcrypt,--disable-libgcrypt,libgcrypt,"
+PACKAGECONFIG[testbench] = "--enable-testbench --enable-omstdout,--disable-testbench --disable-omstdout,,"
+
+# default no in configure
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
+PACKAGECONFIG[imdiag] = "--enable-imdiag,--disable-imdiag,,"
+PACKAGECONFIG[imfile] = "--enable-imfile,--disable-imfile,,"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp,"
+PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
+PACKAGECONFIG[imjournal] = "--enable-imjournal,--disable-imjournal,"
+PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,"
+PACKAGECONFIG[postgresql] = "--enable-pgsql,--disable-pgsql,postgresql,"
+PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
+PACKAGECONFIG[mail] = "--enable-mail,--disable-mail,,"
+PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
+
+TESTDIR = "tests"
+do_compile_ptest() {
+ echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
+ oe_runmake -C ${TESTDIR} buildtest-TESTS
+}
+
+do_install_ptest() {
+ # install the tests
+ cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
+ cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
+
+ # do NOT need to rebuild Makefile itself
+ sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ # do NOT need to rebuild $(check_PROGRAMS)
+ sed -i 's/^check-TESTS:.*$/check-TESTS:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # fix the srcdir, top_srcdir
+ sed -i 's,^\(srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ sed -i 's,^\(top_srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ # fix the abs_top_builddir
+ sed -i 's,^\(abs_top_builddir = \).*,\1${PTEST_PATH}/,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # valgrind is not compatible with arm and mips,
+ # so remove related test cases if there is no valgrind.
+ if [ x${VALGRIND} = x ]; then
+ sed -i '/udp-msgreduc-/d' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ fi
+
+ # install test-driver
+ install -m 644 ${S}/test-driver ${D}${PTEST_PATH}
+
+ # install necessary links
+ install -d ${D}${PTEST_PATH}/tools
+ ln -sf ${sbindir}/rsyslogd ${D}${PTEST_PATH}/tools/rsyslogd
+
+ install -d ${D}${PTEST_PATH}/runtime
+ install -d ${D}${PTEST_PATH}/runtime/.libs
+ (
+ cd ${D}/${libdir}/rsyslog
+ allso="*.so"
+ for i in $allso; do
+ ln -sf ${libdir}/rsyslog/$i ${D}${PTEST_PATH}/runtime/.libs/$i
+ done
+ )
+
+ # fix the module load path with runtime/.libs
+ find ${D}${PTEST_PATH}/${TESTDIR} -name "*.conf" -o -name "*.sh" -o -name "*.c" | xargs \
+ sed -i -e 's:../plugins/.*/.libs/:../runtime/.libs/:g'
+}
+
+do_install_append() {
+ install -d "${D}${sysconfdir}/init.d"
+ install -d "${D}${sysconfdir}/logrotate.d"
+ install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
+ install -m 644 ${WORKDIR}/rsyslog.conf ${D}${sysconfdir}/rsyslog.conf
+ install -m 644 ${WORKDIR}/rsyslog.logrotate ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
+ sed -i -e "s#@BINDIR@#${bindir}#g" ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'imjournal', 'true', 'false', d)}; then
+ install -d 0755 ${D}${sysconfdir}/rsyslog.d
+ echo '$ModLoad imjournal' >> ${D}${sysconfdir}/rsyslog.d/imjournal.conf
+ fi
+}
+
+FILES_${PN} += "${bindir}"
+
+INITSCRIPT_NAME = "syslog"
+INITSCRIPT_PARAMS = "defaults"
+
+CONFFILES_${PN} = "${sysconfdir}/rsyslog.conf"
+
+RCONFLICTS_${PN} = "busybox-syslog sysklogd syslog-ng"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+
+RDEPENDS_${PN} += "logrotate"
+
+# for rsyslog-ptest
+VALGRIND = "valgrind"
+VALGRIND_mips = ""
+VALGRIND_mips64 = ""
+VALGRIND_mips64n32 = ""
+VALGRIND_arm = ""
+VALGRIND_aarch64 = ""
+VALGRIND_riscv64 = ""
+RDEPENDS_${PN}-ptest += "make diffutils gzip bash gawk coreutils procps"
+RRECOMMENDS_${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/0001-fix-compile-failure-with-libc-musl.patch b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/0001-fix-compile-failure-with-libc-musl.patch
new file mode 100644
index 0000000..e4bde80
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock/0001-fix-compile-failure-with-libc-musl.patch
@@ -0,0 +1,80 @@
+From c51c2c543f3c78b2a68acc61f786f903f2e0fec8 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sun, 9 Sep 2018 07:28:09 -0400
+Subject: [PATCH] fix compile failure with libc musl
+
+The lack of random_r in musl:
+[snip]
+|main.c:1393:7: warning: implicit declaration of function 'random_r';
+did you mean 'random'? [-Wimplicit-function-declaration]
+| rv = random_r(&rand_data, &val);
+| ^~~~~~~~
+| random
+|main.c:1408:30: error: invalid application of 'sizeof' to incomplete
+type 'struct random_data'
+| memset(&rand_data, 0, sizeof(rand_data));
+[snip]
+
+s/random_r/random/, s/initstate_r/initstate/ and remove `static struct
+random_data rand_data'
+
+Here is the man of `random_r()':
+[snip]
+The random_r() function is like random(3), except that instead of using
+state information maintained in a global variable
+[snip]
+
+So use random without state information is OK.
+
+Upstream-Status: Submitted [sanlock-devel@lists.fedorahosted.org]
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/main.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index f60b4d3..602c400 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -84,7 +84,6 @@ static char command[COMMAND_MAX];
+ static int cmd_argc;
+ static char **cmd_argv;
+ static struct thread_pool pool;
+-static struct random_data rand_data;
+ static char rand_state[32];
+ static pthread_mutex_t rand_mutex = PTHREAD_MUTEX_INITIALIZER;
+ static const char *run_dir = NULL;
+@@ -1386,16 +1385,15 @@ int get_rand(int a, int b);
+
+ int get_rand(int a, int b)
+ {
+- int32_t val;
+- int rv;
++ long int rv;
+
+ pthread_mutex_lock(&rand_mutex);
+- rv = random_r(&rand_data, &val);
++ rv = random();
+ pthread_mutex_unlock(&rand_mutex);
+ if (rv < 0)
+ return rv;
+
+- return a + (int) (((float)(b - a + 1)) * val / (RAND_MAX+1.0));
++ return a + (int) (((float)(b - a + 1)) * rv / (RAND_MAX+1.0));
+ }
+
+ static void setup_host_name(void)
+@@ -1405,9 +1403,7 @@ static void setup_host_name(void)
+ uuid_t uu;
+
+ memset(rand_state, 0, sizeof(rand_state));
+- memset(&rand_data, 0, sizeof(rand_data));
+-
+- initstate_r(time(NULL), rand_state, sizeof(rand_state), &rand_data);
++ initstate(time(NULL), rand_state, sizeof(rand_state));
+
+ /* use host name from command line */
+
+--
+2.8.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.6.0.bb b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.6.0.bb
new file mode 100644
index 0000000..c51bccc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.6.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "A shared storage lock manager"
+DESCRIPTION = "sanlock is a lock manager built on shared storage. Hosts with access \
+to the storage can perform locking. An application running on the \
+hosts is given a small amount of space on the shared block device or \
+file, and uses sanlock for its own application-specific synchronization. \
+Internally, the sanlock daemon manages locks using two disk-based \
+lease algorithms: delta leases and paxos leases."
+HOMEPAGE = "https://pagure.io/sanlock"
+SECTION = "utils"
+
+LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22"
+
+SRC_URI = "git://pagure.io/sanlock.git;protocol=http \
+ file://0001-fix-compile-failure-with-libc-musl.patch \
+ "
+SRCREV = "90b2ffa77edd46bea007b7bb39bfd4d2db2ff7af"
+S = "${WORKDIR}/git"
+
+DEPENDS = "libaio util-linux"
+
+inherit distutils
+
+do_configure[noexec] = "1"
+
+do_compile_prepend () {
+ oe_runmake -C wdmd CMD_LDFLAGS="${LDFLAGS}" LIB_LDFLAGS="${LDFLAGS}"
+ oe_runmake -C src CMD_LDFLAGS="${LDFLAGS}" LIB_ENTIRE_LDFLAGS="${LDFLAGS}" LIB_CLIENT_LDFLAGS="${LDFLAGS}"
+ cd ${S}/python
+}
+
+do_install_prepend () {
+ oe_runmake -C wdmd DESTDIR=${D} LIBDIR=${libdir} install
+ oe_runmake -C src DESTDIR=${D} LIBDIR=${libdir} install
+ cd ${S}/python
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch
new file mode 100644
index 0000000..7279d84
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch
@@ -0,0 +1,31 @@
+From ad6ca4f392bf549239b1ed3b2b372070eb127e7f Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Wed, 11 Jul 2018 11:06:04 +0800
+Subject: [PATCH] Makefile.am: fix sfcbinst2mof_DEPENDENCIES
+
+Fixed build with automake 1.16.1:
+/path/to/i586-poky-linux/8.1.0/ld: cannot find -lsfcBrokerCore
+collect2: error: ld returned 1 exit status
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 34ac319..47deed7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -360,6 +360,7 @@ sfcbproc_SOURCES=sfcbproc.c
+
+ sfcbinst2mof_SOURCES=sfcbinst2mof.c
+ sfcbinst2mof_LDADD = -lsfcFileRepository -lsfcBrokerCore
++sfcbinst2mof_DEPENDENCIES = libsfcBrokerCore.la libsfcFileRepository.la
+
+ sfcbtrace_SOURCES=sfcbtrace.c
+ sfcbtrace_LDADD = -lsfcBrokerCore
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index 10ffaaa..91c5002 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -25,6 +25,7 @@
file://sblim-sfcb-1.4.9-fix-ftbfs.patch \
file://0001-include-stdint.h-system-header-for-UINT16_MAX.patch \
file://0001-Replace-need-for-error.h-when-it-does-not-exist.patch \
+ file://sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch \
"
SRC_URI[md5sum] = "28021cdabc73690a94f4f9d57254ce30"
@@ -67,14 +68,8 @@
}
pkg_postinst_${PN} () {
- OPTS=""
-
if [ x"$D" != "x" ]; then
- OPTS="--root=$D"
- if type systemctl >/dev/null 2>/dev/null; then
- systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
- fi
- exit 1
+ $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
fi
${datadir}/sfcb/genSslCert.sh ${sysconfdir}/sfcb
diff --git a/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb b/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
index e202d16..77d3cfe 100644
--- a/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
@@ -33,16 +33,14 @@
INITSCRIPT_NAME_${PN}-raidmon = "sgraid"
INITSCRIPT_PARAMS_${PN}-raidmon = "defaults 80 20"
-PACKAGES =+ "${PN}-diskmon ${PN}-diskmon-dbg"
-PACKAGES =+ "${PN}-raidmon ${PN}-raidmon-dbg"
+PACKAGES =+ "${PN}-diskmon"
+PACKAGES =+ "${PN}-raidmon"
-FILES_${PN}-dbg += "/usr/share/scsirastools/.debug"
+RPROVIDES_${PN}-dbg += "${PN}-diskmon-dbg ${PN}-raidmon-dbg"
FILES_${PN}-diskmon = "${sbindir}/sgdiskmon ${sysconfdir}/init.d/sgdisk"
-FILES_${PN}-diskmon-dbg = "${sbindir}/.debug/sgdiskmon"
FILES_${PN}-raidmon = "${sbindir}/sgraidmon ${sysconfdir}/init.d/sgraid"
-FILES_${PN}-raidmon-dbg = "${sbindir}/.debug/sgraidmon"
RDEPENDS_${PN} += "bash"
RDEPENDS_${PN}-diskmon += "${PN}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/sedutil/sedutil_git.bb b/meta-openembedded/meta-oe/recipes-extended/sedutil/sedutil_git.bb
new file mode 100644
index 0000000..cec569f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sedutil/sedutil_git.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "A utility to manage self encrypting drives that conform \
+to the Trusted Computing Group OPAL 2.0 SSC specification."
+SUMMARY = "The Drive Trust Alliance Self Encrypting Drive Utility"
+HOMEPAGE = "https://github.com/Drive-Trust-Alliance/sedutil"
+SECTION = "console/utils"
+LICENSE = "GPLv3"
+
+LIC_FILES_CHKSUM = "file://Common/LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
+
+BASEPV = "1.15.1"
+PV = "${BASEPV}+git${SRCPV}"
+SRCREV = "358cc758948be788284d5faba46ccf4cc1813796"
+SRC_URI = "git://github.com/Drive-Trust-Alliance/sedutil.git"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch b/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch
new file mode 100644
index 0000000..91e64d2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch
@@ -0,0 +1,28 @@
+From f28aa188e5b0ea85369febe657b8807b8025038b Mon Sep 17 00:00:00 2001
+From: chrfranke <authors@smartmontools.org>
+Date: Wed, 8 Nov 2017 06:15:50 +0000
+Subject: [PATCH] os_linux.cpp: Use 'realpath()' (BSD, POSIX) instead of
+ 'canonicalize_file_name()' (GNU extension). This fixes build on systems with
+ musl libc (#921).
+
+git-svn-id: http://svn.code.sf.net/p/smartmontools/code/trunk@4603 4ea69e1a-61f1-4043-bf83-b5c94c648137
+
+Upstream-Status: Backport [https://www.smartmontools.org/ticket/921]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ os_linux.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/os_linux.cpp b/os_linux.cpp
+index 134d5bc..935f9c7 100644
+--- a/os_linux.cpp
++++ b/os_linux.cpp
+@@ -3176,7 +3176,7 @@ static bool is_hpsa(const char * name)
+ {
+ char path[128];
+ snprintf(path, sizeof(path), "/sys/block/%s/device", name);
+- char * syshostpath = canonicalize_file_name(path);
++ char * syshostpath = realpath(name, (char *)0);
+ if (!syshostpath)
+ return false;
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb b/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb
index 1a1767e..c77c105 100644
--- a/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb
@@ -1,6 +1,6 @@
SUMMARY = "Control and monitor storage systems using S.M.A.R.T"
-DESCRIPTION = \
-"The smartmontools package contains two utility programs (smartctl \
+DESCRIPTION = "\
+The smartmontools package contains two utility programs (smartctl \
and smartd) to control and monitor storage systems using the Self-\
Monitoring, Analysis and Reporting Technology System (SMART) built \
into most modern ATA and SCSI hard disks. In many cases, these \
@@ -13,10 +13,11 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "${SOURCEFORGE_MIRROR}/smartmontools/smartmontools-${PV}.tar.gz \
- file://initd.smartd \
- file://smartmontools.default \
- file://smartd.service \
-"
+ file://initd.smartd \
+ file://smartmontools.default \
+ file://smartd.service \
+ file://0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch \
+ "
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'libcap-ng selinux', d)}"
PACKAGECONFIG[libcap-ng] = "--with-libcap-ng=yes,--with-libcap-ng=no,libcap-ng"
diff --git a/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.7.bb b/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.7.bb
new file mode 100644
index 0000000..9f37c5f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.7.bb
@@ -0,0 +1,25 @@
+#
+# Copyright (C) 2014 Wind River Systems, Inc.
+# Released under the BSD-3-Clause license (see COPYING.BSD-3 for the terms)
+#
+SUMMARY = "A compression/decompression library"
+DESCRIPTION = "Snappy is a fast data compression and decompression library \
+It was designed to be very fast and stable, but not to achieve a high \
+compression ratio."
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f62f3080324a97b3159a7a7e61812d0c"
+
+SRC_URI = "https://src.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.7.tar.gz/sha512/32046f532606ba545a4e4825c0c66a19be449f2ca2ff760a6fa170a3603731479a7deadb683546e5f8b5033414c50f4a9a29f6d23b7a41f047e566e69eca7caf/snappy-1.1.7.tar.gz"
+
+SRC_URI[md5sum] = "ee9086291c9ae8deb4dac5e0b85bf54a"
+SRC_URI[sha256sum] = "3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lzo] = "-DHAVE_LIBLZO2=1,-DHAVE_LIBLZO2=0,lzo,"
+TARGET_CFLAGS += "-fPIC"
+
+EXTRA_OECMAKE += '-DBUILD_SHARED_LIBS="ON" \
+ '
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
index 3c019eb..6ce3cab 100644
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
@@ -1,6 +1,6 @@
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=72d977d697c3c05830fdff00a7448931"
-SRCREV = "d1248b0f22ea8dc3b9d84a61bd35a83309bdb4b4"
+SRCREV = "6003f9997587e6a563cebf1f246bcd0eb6deff3d"
PV = "1.0+git${SRCPV}"
SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https"
diff --git a/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-build-when-S-B.patch b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-build-when-S-B.patch
new file mode 100644
index 0000000..51756b8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-build-when-S-B.patch
@@ -0,0 +1,28 @@
+From ad907b1aff217fe3b431ae052025ba8ba6cacc01 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Jun 2018 23:14:58 -0700
+Subject: [PATCH] Fix build when S != B
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 4392c06..2c5cae4 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -69,7 +69,7 @@ install:
+ $(INSTALL) -d $(DESTDIR)$(bindir)
+ $(INSTALL) -m 0755 tiptop $(DESTDIR)$(bindir)
+ $(INSTALL) -d $(DESTDIR)$(man1dir)
+- $(INSTALL) -m 0644 tiptop.1 $(DESTDIR)$(man1dir)
++ $(INSTALL) -m 0644 $(srcdir)/tiptop.1 $(DESTDIR)$(man1dir)
+ ln $(DESTDIR)$(bindir)/tiptop $(DESTDIR)$(bindir)/ptiptop
+ ln $(DESTDIR)$(man1dir)/tiptop.1 $(DESTDIR)$(man1dir)/ptiptop.1
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch
new file mode 100644
index 0000000..ae676ae
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch
@@ -0,0 +1,28 @@
+From 848983a30dc99248ec45632bfc31718716a86e9d Mon Sep 17 00:00:00 2001
+From: Tomasz Buchert <tomasz@debian.org>
+Date: Fri, 7 Jul 2017 21:15:58 +0200
+Subject: [PATCH] Fix parallel build problems (by Adrian Bunk)
+
+Taken from debian
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 32ab563..1993c9b 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -59,8 +59,9 @@ lex.yy.c: calc.lex
+ lex.yy.o: lex.yy.c
+ $(CC) $(CFLAGS) -I$(srcdir) -c lex.yy.c
+
++y.tab.c: y.tab.h
+
+-y.tab.c y.tab.h: calc.y
++y.tab.h: calc.y
+ $(YACC) -d $(srcdir)/calc.y
+
+ y.tab.o: y.tab.c
diff --git a/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0002-fix-reproducibility-of-build-process.patch b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0002-fix-reproducibility-of-build-process.patch
new file mode 100644
index 0000000..cecb70b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop/0002-fix-reproducibility-of-build-process.patch
@@ -0,0 +1,32 @@
+From 89dd9d8705408dccd5c5e47d22eba6fd6ec22b50 Mon Sep 17 00:00:00 2001
+From: Tomasz Buchert <tomasz@debian.org>
+Date: Thu, 9 Jul 2015 16:07:23 +0200
+Subject: [PATCH] fix reproducibility of build process
+
+The upstream Makefile sets macros that depend on
+a particular platform where the package is built.
+We don't set them which fixes the problem.
+
+Taken from debian
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile.in | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 1993c9b..4392c06 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -48,9 +48,7 @@ Makefile: Makefile.in ../config.status
+
+
+ version.o: version.c
+- $(CC) $(CFLAGS) -DCOMPILE_HOST="\""`hostname`"\"" \
+- -DCOMPILE_DATE="\"`date`\"" \
+- -c $(srcdir)/version.c
++ $(CC) $(CFLAGS) -c $(srcdir)/version.c
+
+
+ lex.yy.c: calc.lex
diff --git a/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
index 0a00a36..cf67a08 100644
--- a/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
@@ -2,15 +2,20 @@
HOMEPAGE = "http://tiptop.gforge.inria.fr/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "ncurses libxml2"
+DEPENDS = "ncurses libxml2 bison-native flex-native"
-SRC_URI = "http://tiptop.gforge.inria.fr/releases/${BP}.tar.gz"
+SRC_URI = "http://tiptop.gforge.inria.fr/releases/${BP}.tar.gz \
+ file://0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch \
+ file://0002-fix-reproducibility-of-build-process.patch \
+ file://0001-Fix-build-when-S-B.patch \
+ "
SRC_URI[md5sum] = "46ca0fdf0236f02dd2b96d347626d2a2"
SRC_URI[sha256sum] = "51c4449c95bba34f16b429729c2f58431490665d8093efaa8643b2e1d1084182"
-inherit autotools-brokensep
+inherit autotools
+
EXTRA_OECONF = "CFLAGS="$CFLAGS -I${STAGING_INCDIR}/libxml2""
-COMPATIBLE_HOST = "(i.86|x86_64|arm|powerpc).*-linux"
+COMPATIBLE_HOST = "(i.86|x86_64|arm|powerpc|aarch64).*-linux"
do_configure_prepend () {
# Two bugs in configure.ac when cross-compiling.
diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-Replace-strncpy-with-memcpy.patch b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-Replace-strncpy-with-memcpy.patch
new file mode 100644
index 0000000..4b17087
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-Replace-strncpy-with-memcpy.patch
@@ -0,0 +1,49 @@
+From d314f26e024aaf15bf4ab22ceb98501148d0eac8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 7 May 2018 19:53:33 -0700
+Subject: [PATCH] Replace strncpy with memcpy
+
+gcc8 detects that strncpy is overwiritng the null terminating character
+the source strings are already initialized to 0 so memcpy would do the same
+job
+
+Fixes
+rn2903.c:153:5: error: 'strncpy' output may be truncated copying 16 bytes from a string of length 511 [-Werror=stringop-truncation]
+ strncpy(dev->hardware_eui, dev->resp_data, RN2903_MAX_HEX_EUI64);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ecezo/ecezo.c | 2 +-
+ src/rn2903/rn2903.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/ecezo/ecezo.c b/src/ecezo/ecezo.c
+index 6a195fc1..56c6dab3 100644
+--- a/src/ecezo/ecezo.c
++++ b/src/ecezo/ecezo.c
+@@ -488,7 +488,7 @@ int ecezo_send_command(const ecezo_context dev, char *cmd, char *buffer,
+ // our write buffer
+ char writeBuffer[ECEZO_MAX_BUFFER_LEN];
+
+- strncpy(writeBuffer, cmd, ECEZO_MAX_BUFFER_LEN);
++ memcpy(writeBuffer, cmd, ECEZO_MAX_BUFFER_LEN-1);
+ writeBuffer[ECEZO_MAX_BUFFER_LEN - 1] = 0;
+
+ int writelen = strlen(writeBuffer);
+diff --git a/src/rn2903/rn2903.c b/src/rn2903/rn2903.c
+index f30a33ae..01a011da 100644
+--- a/src/rn2903/rn2903.c
++++ b/src/rn2903/rn2903.c
+@@ -150,7 +150,7 @@ static rn2903_context _rn2903_postinit(rn2903_context dev,
+ rn2903_close(dev);
+ return NULL;
+ }
+- strncpy(dev->hardware_eui, dev->resp_data, RN2903_MAX_HEX_EUI64);
++ memcpy(dev->hardware_eui, dev->resp_data, RN2903_MAX_HEX_EUI64);
+
+ return dev;
+ }
+--
+2.17.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-include-sys-types.h-for-uint-definition.patch b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-include-sys-types.h-for-uint-definition.patch
new file mode 100644
index 0000000..a0a4741
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-include-sys-types.h-for-uint-definition.patch
@@ -0,0 +1,33 @@
+From 48a580bd402cf6a3ee9e42013653219bfeb3caf6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 18:39:16 -0700
+Subject: [PATCH] include sys/types.h for uint definition
+
+uint is defined in sys/types.h, therefore this
+header needs to be included, it gets exposed with
+musl where this header is not getting included indirectly
+as it is happening when building on glibc
+
+Fixes build errors on musl e.g.
+upm/src/kx122/kx122.hpp:456:31: error: 'uint' has not been declared
+| void setBufferThreshold(uint samples);
+| ^~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/intel-iot-devkit/upm/pull/656]
+ src/kx122/kx122.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/kx122/kx122.h b/src/kx122/kx122.h
+index 1622ed50..56e5215e 100644
+--- a/src/kx122/kx122.h
++++ b/src/kx122/kx122.h
+@@ -31,6 +31,7 @@ extern "C"{
+ #include <assert.h>
+ #include <unistd.h>
+ #include <math.h>
++#include <sys/types.h>
+
+ #include <mraa/i2c.h>
+ #include <mraa/spi.h>
diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
index d742a5e..babe5f4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
@@ -7,12 +7,13 @@
DEPENDS = "libjpeg-turbo mraa"
-SRCREV = "cc7fec9ae0228add9011bf1c2cd5e0ca2ba0d4f0"
+SRCREV = "dc45cd78595c7c24c8a8574c63bb48b5bb99c5aa"
PV = "1.6.0-git${SRCPV}"
-SRC_URI = " \
- git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
-"
+SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
+ file://0001-Replace-strncpy-with-memcpy.patch \
+ file://0001-include-sys-types.h-for-uint-definition.patch \
+ "
S = "${WORKDIR}/git"
@@ -21,7 +22,6 @@
inherit distutils3-base cmake
-
# override this in local.conf to get needed bindings.
# BINDINGS_pn-upm="python"
# will result in only the python bindings being built/packaged.
diff --git a/meta-openembedded/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch b/meta-openembedded/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch
deleted file mode 100644
index 03edb13..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 18415c0b4c6e50ed9b99dfdae8d210590d0ab72e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 28 Apr 2017 04:50:30 -0400
-Subject: [PATCH] explicitly support python3 by pkg-config
-
-The PYTHON_CPPFLAGS and -lpython$(PYTHON_VERSION) is hardcoded,
-use pkg-config to replace
-
-Upstream-Status: Inappropriate [wr-installer specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.am | 5 ++---
- configure.ac | 2 ++
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 4569bbf..7a8daf4 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -20,7 +20,6 @@ ACLOCAL_AMFLAGS = -I m4
- AM_CPPFLAGS = $(blkid_CFLAGS) $(glib_CFLAGS) $(GPGME_CFLAGS) \
- $(libcryptsetup_CFLAGS) $(nss_CFLAGS)
- LOCALEDIR_CPPFLAGS = -DLOCALEDIR='"$(localedir)"'
--PYTHON_CPPFLAGS = -I/usr/include/python$(PYTHON_VERSION)
-
- ## Targets
- SUBDIRS = po
-@@ -63,9 +62,9 @@ lib_libvolume_key_la_LIBADD = $(blkid_LIBS) $(glib_LIBS) $(GPGME_LIBS) \
- $(LTLIBINTL) $(libcryptsetup_LIBS) $(nss_LIBS)
-
- python__volume_key_la_SOURCES = python/volume_key_wrap.c
--python__volume_key_la_CPPFLAGS = $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS)
-+python__volume_key_la_CPPFLAGS = $(AM_CPPFLAGS) $(python3_CFLAGS)
- python__volume_key_la_LDFLAGS = -module -avoid-version $(glib_LIBS)
--python__volume_key_la_LIBADD = lib/libvolume_key.la -lpython$(PYTHON_VERSION) \
-+python__volume_key_la_LIBADD = lib/libvolume_key.la $(python3_LIBS) \
- $(glib_LIBS) $(nss_LIBS)
-
- src_volume_key_SOURCES = src/volume_key.c
-diff --git a/configure.ac b/configure.ac
-index ff35dd0..0928a6c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -27,6 +27,8 @@ AM_INIT_AUTOMAKE([no-dist-gzip dist-xz no-define subdir-objects -Wall])
- AC_PROG_CC
- AM_PROG_CC_C_O
- LT_INIT([disable-static])
-+
-+PKG_CHECK_MODULES(python3, [python3])
- AM_PATH_PYTHON
-
- dnl Not gpg2, it cannot receive passphrases from gpgme
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.11.bb b/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.11.bb
new file mode 100644
index 0000000..c41b20c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.11.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "The volume_key project provides a libvolume_key, a library for manipulating \
+storage volume encryption keys and storing them separately from volumes, and an \
+associated command-line tool, named volume_key."
+LICENSE = "GPLv2"
+SECTION = "devel/lib"
+
+HOMEPAGE = "https://pagure.io/volume_key"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://releases.pagure.org/volume_key/volume_key-${PV}.tar.xz \
+"
+SRC_URI[md5sum] = "30df56c7743eb7c965293b3d61194232"
+SRC_URI[sha256sum] = "e6b279c25ae477b555f938db2e41818f90c8cde942b0eec92f70b6c772095f6d"
+
+SRCNAME = "volume_key"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit autotools python3native gettext
+
+DEPENDS += " \
+ util-linux \
+ glib-2.0 \
+ cryptsetup \
+ nss \
+ gpgme \
+ swig-native \
+"
+
+RDEPENDS_python3-${PN} += "${PN}"
+
+PACKAGES += "python3-${PN}"
+FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb b/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb
deleted file mode 100644
index febf3f2..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-DESCRIPTION = "The volume_key project provides a libvolume_key, a library for manipulating \
-storage volume encryption keys and storing them separately from volumes, and an \
-associated command-line tool, named volume_key."
-LICENSE = "GPLv2"
-SECTION = "devel/lib"
-
-HOMEPAGE = "https://pagure.io/volume_key"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "https://releases.pagure.org/volume_key/volume_key-${PV}.tar.xz \
- file://0001-explicitly-support-python3-by-pkg-config.patch \
-"
-SRC_URI[md5sum] = "a2d14931177c660e1f3ebbcf5f47d8e2"
-SRC_URI[sha256sum] = "450a54fe9bf56acec6850c1e71371d3e4913c9ca1ef0cdc3a517b4b6910412a6"
-
-SRCNAME = "volume_key"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit autotools python3native gettext
-
-DEPENDS += " \
- util-linux \
- glib-2.0 \
- cryptsetup \
- nss \
- gpgme \
-"
-
-RDEPENDS_python3-${PN} += "${PN}"
-
-PACKAGES += "python3-${PN}"
-FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_git.bb b/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_git.bb
index 86e6d30..de75164 100644
--- a/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_git.bb
@@ -14,7 +14,7 @@
inherit pkgconfig
-EXTRA_OEMAKE = "CC='${CC}' LD='${LD}'"
+EXTRA_OEMAKE = "CC='${CC}' LD='${LD}' LIBRARY_PATH=${baselib}"
do_install() {
oe_runmake install PREFIX=${D}${exec_prefix} INSTALL=install
diff --git a/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb b/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb
new file mode 100644
index 0000000..0128a7c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "A Python module to deal with freedesktop.org specifications"
+HOMEPAGE = "http://freedesktop.org/wiki/Software/pyxdg"
+SECTION = "devel/python"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
+
+SRCREV = "7db14dcf4c4305c3859a2d9fcf9f5da2db328330"
+SRC_URI = "git://anongit.freedesktop.org/xdg/pyxdg"
+
+inherit distutils
+
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb.inc b/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb.inc
index bd66a28..96aa311 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb.inc
+++ b/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb.inc
@@ -20,6 +20,7 @@
file://union-sigval.patch \
file://use-PTHREAD_MUTEX_RECURSIVE.patch \
file://fix-client-gfx_state-initialisation.patch \
+ file://fix-tslib-version-check.patch \
"
S = "${WORKDIR}/DirectFB-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch b/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch
new file mode 100644
index 0000000..352bfaf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch
@@ -0,0 +1,38 @@
+fix tslib version check in configure.in
+
+The patch makes sure that the old as well as the new tslib pkg-config
+metadata file naming style is handled correctly.
+
+tslib 0.0 to 1.0 created only a tslib-<VERSION>.pc pkg-config metadata
+file.
+
+With tslib 1.1 the tslib-<VERSION>.pc phase out was started.
+Additionally, the pkg-config metadata file tslib.pc was added.
+
+Since tslib 1.6 the tslib-<VERSION>.pc metadata file is deprecated.
+Now, there is only a tslib.pc.
+
+Upstream-Status: Inappropriate [no upstream]
+Signed-off-by: Ben Guan <ben.guan@cn.bosch.com>
+Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
+
+diff -Nru DirectFB-1.7.7.orig/configure.in DirectFB-1.7.7/configure.in
+--- DirectFB-1.7.7.orig/configure.in 2015-02-10 01:16:46.000000000 +0800
++++ DirectFB-1.7.7/configure.in 2018-06-06 17:19:18.472143103 +0800
+@@ -2459,10 +2459,13 @@
+
+ enable_tslib=no
+ if test "$checkfor_tslib" = "yes"; then
+- PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0.0], [enable_tslib=yes], [enable_tslib=no])
++ PKG_CHECK_MODULES([TSLIB], [tslib >= 1.1], [enable_tslib=yes], [enable_tslib=no])
+ if test "$enable_tslib" = "no"; then
+- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no
+- AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])])
++ PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0], [enable_tslib=yes], [enable_tslib=no])
++ if test "$enable_tslib" = "no"; then
++ PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no
++ AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])])
++ fi
+ fi
+ fi
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
index 481fedf..947d36e 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
@@ -45,7 +45,9 @@
cd $currdir
}
-PACKAGES =+ "${PN}-python-dbg ${PN}-python"
+PACKAGES =+ "${PN}-python"
+
+RPROVIDES_${PN}-dbg += "${PN}-python-dbg"
FILES_${PN} += " \
${datadir}/mime \
@@ -53,7 +55,6 @@
"
FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${PN}/python"
-FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
RDEPENDS_${PN}-python = "python"
# for e.g kde's oxygen-fonts
diff --git a/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb b/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
index 4e2ee23..7f16708 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
@@ -4,9 +4,7 @@
Shading Language (GLSL) specifications."
HOMEPAGE = "https://glm.g-truc.net"
BUGTRACKER = "https://github.com/g-truc/glm/issues"
-
SECTION = "libs"
-
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://readme.md;beginline=21;endline=22;md5=3075b5727d36f29edccf97b93e72b790"
@@ -16,13 +14,13 @@
file://0002-glm-install-headers-only.patch \
"
SRCREV = "fcbedf5058ef8613dd02aac62ef00d55dcfeadd7"
+
S = "${WORKDIR}/git"
inherit cmake
EXTRA_OECMAKE = "-DGLM_ENABLE_EXPERIMENTAL=ON"
-FILES_${PN}-dev += "${libdir}/cmake"
RDEPENDS_${PN}-dev = ""
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb
deleted file mode 100644
index 7a691c6..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "libgphoto2 allows you to access digital cameras"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1"
-
-DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2"
-
-# The .fdi and .rules files were generated with:
-# libgphoto2-2.5.8/packaging/generic$ qemu-arm -s 1048576 -r 2.6.24 -L /OE/angstrom-dev/staging/armv5te-angstrom-linux-gnueabi/ .libs/print-camera-list
-# They are release specific, so please regen when adding new releases
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2 \
- file://10-camera-libgphoto2-device.fdi \
- file://10-camera-libgphoto2.fdi \
- file://40-libgphoto2.rules \
- file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
-"
-
-SRC_URI[libgphoto2.md5sum] = "084d220d078d28c0c7a3ba13f4476128"
-SRC_URI[libgphoto2.sha256sum] = "e757416d1623e01a9d0d294b2e790162e434c0964f50d3b7ff1a3424b62a2906"
-
-inherit autotools pkgconfig gettext lib_package
-
-EXTRA_OECONF = " --with-drivers=all udevscriptdir=${nonarch_base_libdir}/udev ac_cv_lib_ltdl_lt_dlcaller_register=yes"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gd] = ",--without-gdlib,gd"
-PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev"
-
-do_configure_append() {
- cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/
- cd ${S}/libgphoto2_port/
- autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
- cd ${S}
-}
-
-do_install_append() {
- install -d ${D}${datadir}/hal/fdi/information/20thirdparty
- install -m 0644 ${WORKDIR}/*.fdi ${D}${datadir}/hal/fdi/information/20thirdparty/
-
- install -d ${D}${sysconfdir}/udev/rules.d/
- install -m 0755 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
-}
-
-PACKAGES =+ "libgphotoport libgphoto2-camlibs"
-FILES_libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*"
-RRECOMMENDS_${PN} = "libgphoto2-camlibs"
-
-FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*"
-
-FILES_${PN} += "${nonarch_base_libdir}/udev/* ${datadir}/hal"
-FILES_${PN}-dbg += "${libdir}/*/*/.debug"
-FILES_${PN}-dev += "${libdir}/*/*/*.la"
-FILES_${PN}-doc += "${datadir}/libgphoto2_port/0.12.0/vcamera/README.txt"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb
new file mode 100644
index 0000000..91c5ed2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb
@@ -0,0 +1,54 @@
+SUMMARY = "libgphoto2 allows you to access digital cameras"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1"
+
+DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2"
+
+# The .fdi and .rules files were generated with:
+# libgphoto2-2.5.8/packaging/generic$ qemu-arm -s 1048576 -r 2.6.24 -L /OE/angstrom-dev/staging/armv5te-angstrom-linux-gnueabi/ .libs/print-camera-list
+# They are release specific, so please regen when adding new releases
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2 \
+ file://10-camera-libgphoto2-device.fdi \
+ file://10-camera-libgphoto2.fdi \
+ file://40-libgphoto2.rules \
+ file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
+"
+
+SRC_URI[libgphoto2.md5sum] = "ae78e7a7936a6962c3a22b256bee1869"
+SRC_URI[libgphoto2.sha256sum] = "417464f0a313fa937e8a71cdf18a371cf01e750830195cd63ae31da0d092b555"
+
+inherit autotools pkgconfig gettext lib_package
+
+EXTRA_OECONF = " --with-drivers=all udevscriptdir=${nonarch_base_libdir}/udev ac_cv_lib_ltdl_lt_dlcaller_register=yes"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gd] = ",--without-gdlib,gd"
+PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev"
+
+do_configure_append() {
+ cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/
+ cd ${S}/libgphoto2_port/
+ autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
+ cd ${S}
+}
+
+do_install_append() {
+ install -d ${D}${datadir}/hal/fdi/information/20thirdparty
+ install -m 0644 ${WORKDIR}/*.fdi ${D}${datadir}/hal/fdi/information/20thirdparty/
+
+ install -d ${D}${sysconfdir}/udev/rules.d/
+ install -m 0755 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
+}
+
+PACKAGES =+ "libgphotoport libgphoto2-camlibs"
+FILES_libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*"
+RRECOMMENDS_${PN} = "libgphoto2-camlibs"
+
+FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*"
+
+FILES_${PN} += "${nonarch_base_libdir}/udev/* ${datadir}/hal"
+FILES_${PN}-dbg += "${libdir}/*/*/.debug"
+FILES_${PN}-dev += "${libdir}/*/*/*.la"
+FILES_${PN}-doc += "${datadir}/libgphoto2_port/0.12.0/vcamera/README.txt"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb
new file mode 100644
index 0000000..b077a0b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb
@@ -0,0 +1,19 @@
+SUMMARY = "SDL graphics drawing primitives and other support functions"
+SECTION = "libs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d1de21f0b70830e299905eac3419084"
+
+DEPENDS = "virtual/libsdl"
+
+SRC_URI = "http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-${PV}.tar.gz"
+SRC_URI[md5sum] = "ea24ed4b82ff1304809c363494fa8e16"
+SRC_URI[sha256sum] = "556eedc06b6cf29eb495b6d27f2dcc51bf909ad82389ba2fa7bdc4dec89059c0"
+
+S = "${WORKDIR}/SDL_gfx-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += " \
+ --disable-mmx \
+"
+
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch
new file mode 100644
index 0000000..fb3ff7e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch
@@ -0,0 +1,11 @@
+diff -Nurd SDL_net-1.2.8/Makefile.am SDL_net-1.2.8/Makefile.am
+--- SDL_net-1.2.8/Makefile.am 2012-01-15 18:20:10.000000000 +0200
++++ SDL_net-1.2.8/Makefile.am 2014-08-01 21:18:52.720815807 +0300
+@@ -1,5 +1,7 @@
+ # Makefile.am for the SDL sample image loading library and viewer
+
++AUTOMAKE_OPTIONS = foreign
++
+ lib_LTLIBRARIES = libSDL_net.la
+
+ libSDL_netincludedir = $(includedir)/SDL
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch
new file mode 100644
index 0000000..9718a3b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch
@@ -0,0 +1,21 @@
+From f9417c864183a0f6d0e90f66f5254a63b04a041a Mon Sep 17 00:00:00 2001
+From: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
+Date: Wed, 17 Oct 2012 20:51:51 +0200
+
+---
+ configure.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure.in b/configure.in
+index c42bd0c..71a4825 100644
+--- a/configure.in
++++ b/configure.in
+@@ -44,6 +44,8 @@ AC_CANONICAL_HOST
+ dnl Setup for automake
+ AM_INIT_AUTOMAKE(SDL_net, $VERSION)
+
++dnl got macros
++AC_CONFIG_MACRO_DIR([acinclude])
+ dnl Check for tools
+ AC_PROG_LIBTOOL
+ AC_PROG_CC
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb
new file mode 100644
index 0000000..b021e56
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Simple DirectMedia Layer networking library."
+SECTION = "libs/network"
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9cf3de2d872bf510f88eb20d06d700b5"
+
+inherit autotools pkgconfig
+
+DEPENDS = "virtual/libsdl"
+
+SRC_URI = " \
+ https://www.libsdl.org/projects/SDL_net/release/SDL_net-${PV}.tar.gz \
+ file://libtool2.patch \
+ file://am_foreign.patch \
+"
+
+S = "${WORKDIR}/SDL_net-${PV}"
+
+SRC_URI[md5sum] = "20e64e61d65662db66c379034f11f718"
+SRC_URI[sha256sum] = "5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4"
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.3.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.3.bb
new file mode 100644
index 0000000..6deb352
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.3.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Simple DirectMedia Layer image library v2"
+SECTION = "libs"
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=a855a9eb5507fc556e672080c4b428ca"
+
+DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz"
+SRC_URI[md5sum] = "c6baf6dfa80fa8a66853661a36a6034e"
+SRC_URI[sha256sum] = "3510c25da735ffcd8ce3b65073150ff4f7f9493b866e85b83738083b556d2368"
+
+S = "${WORKDIR}/SDL2_image-${PV}"
+
+inherit autotools pkgconfig
+
+# Disable the run-time loading of the libs and bring back the soname dependencies.
+EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared"
+
+do_configure_prepend() {
+ # make autoreconf happy
+ touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog
+ # Removing these files fixes a libtool version mismatch.
+ rm -f ${S}/acinclude/libtool.m4
+ rm -f ${S}/acinclude/sdl2.m4
+ rm -f ${S}/acinclude/pkg.m4
+ rm -f ${S}/acinclude/lt~obsolete.m4
+ rm -f ${S}/acinclude/ltoptions.m4
+ rm -f ${S}/acinclude/ltsugar.m4
+ rm -f ${S}/acinclude/ltversion.m4
+}
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.2.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.2.bb
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb
new file mode 100644
index 0000000..0ea96fe
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Simple DirectMedia Layer networking library."
+SECTION = "libs/network"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fe9d52a78585a65224776875510ed127"
+
+SRC_URI = " \
+ https://www.libsdl.org/projects/SDL_net/release/SDL2_net-${PV}.tar.gz \
+"
+S = "${WORKDIR}/SDL2_net-${PV}"
+
+inherit autotools pkgconfig
+
+DEPENDS = "virtual/libsdl2"
+
+SRC_URI[md5sum] = "5c1d9d1cfa63301b141cb5c0de2ea7c4"
+SRC_URI[sha256sum] = "15ce8a7e5a23dafe8177c8df6e6c79b6749a03fff1e8196742d3571657609d21"
+
+do_configure_prepend() {
+ # create dummy files which autotools consider as mandatory
+ touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog
+
+ # Remove old libtool macros.
+ for macro in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do
+ echo ${S}/acinclude/macro
+ rm -f ${S}/acinclude/$macro
+ done
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/use.pkg-config.for.freetype2.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/use.pkg-config.for.freetype2.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
rename to meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Use-override-consistently.patch b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Use-override-consistently.patch
new file mode 100644
index 0000000..6d4bdc2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Use-override-consistently.patch
@@ -0,0 +1,147 @@
+From 0acfb67f99fd8d6af323311fee8c08116295b148 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Sep 2018 18:21:19 -0700
+Subject: [PATCH 1/2] Use override consistently
+
+Make clang++ happy
+error: 'setApplicationTitle' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-over ride]
+
+Upstream-Status: Submitted [https://github.com/libyui/libyui-ncurses/pull/69]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/NCApplication.h | 46 ++++++++++++++++++++++-----------------------
+ 1 file changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/src/NCApplication.h b/src/NCApplication.h
+index e24c3eb..09e4708 100644
+--- a/src/NCApplication.h
++++ b/src/NCApplication.h
+@@ -60,7 +60,7 @@ public:
+ * Reimplemented from YApplication.
+ **/
+ virtual void setLanguage( const std::string & language,
+- const std::string & encoding = std::string() );
++ const std::string & encoding = std::string() ) override;
+
+ /**
+ * Open a directory selection box and prompt the user for an existing
+@@ -77,7 +77,7 @@ public:
+ * Implemented from YApplication.
+ **/
+ virtual std::string askForExistingDirectory( const std::string & startDir,
+- const std::string & headline );
++ const std::string & headline ) override;
+
+ /**
+ * Open a file selection box and prompt the user for an existing file.
+@@ -97,7 +97,7 @@ public:
+ **/
+ virtual std::string askForExistingFile( const std::string & startWith,
+ const std::string & filter,
+- const std::string & headline );
++ const std::string & headline ) override;
+
+ /**
+ * Open a file selection box and prompt the user for a file to save data
+@@ -119,28 +119,28 @@ public:
+ **/
+ virtual std::string askForSaveFileName( const std::string & startWith,
+ const std::string & filter,
+- const std::string & headline );
++ const std::string & headline ) override;
+
+ /**
+ * Beep.
+ *
+ * Reimplemented from YApplication.
+ **/
+- virtual void beep();
++ virtual void beep() override;
+
+ /**
+ * Redraw the screen.
+ *
+ * Reimplemented from YApplication.
+ **/
+- virtual void redrawScreen();
++ virtual void redrawScreen() override;
+
+ /**
+ * Initialize the (text) console keyboard.
+ *
+ * Reimplemented from YApplication.
+ **/
+- virtual void initConsoleKeyboard();
++ virtual void initConsoleKeyboard() override;
+
+ /**
+ * Set the (text) console font according to the current encoding etc.
+@@ -152,7 +152,7 @@ public:
+ const std::string & font,
+ const std::string & screen_map,
+ const std::string & unicode_map,
+- const std::string & language );
++ const std::string & language ) override;
+
+ /**
+ * Run a shell command (typically an interactive program using NCurses)
+@@ -165,7 +165,7 @@ public:
+ *
+ * Reimplemented from YApplication.
+ **/
+- virtual int runInTerminal( const std::string & command );
++ virtual int runInTerminal( const std::string & command ) override;
+
+
+ /// @{
+@@ -183,33 +183,33 @@ public:
+ //
+ // All implemented from YApplication.
+
+- virtual int displayWidth();
+- virtual int displayHeight();
+- virtual int displayDepth();
+- virtual long displayColors();
++ virtual int displayWidth() override;
++ virtual int displayHeight() override;
++ virtual int displayDepth() override;
++ virtual long displayColors() override;
+
+- virtual int defaultWidth();
+- virtual int defaultHeight();
++ virtual int defaultWidth() override;
++ virtual int defaultHeight() override;
+
+- virtual bool isTextMode() { return true; }
++ virtual bool isTextMode() override { return true; }
+
+- virtual bool hasImageSupport() { return false; }
++ virtual bool hasImageSupport() override { return false; }
+
+- virtual bool hasIconSupport() { return false; }
++ virtual bool hasIconSupport() override { return false; }
+
+- virtual bool hasAnimationSupport() { return false; }
++ virtual bool hasAnimationSupport() override { return false; }
+
+- virtual bool hasFullUtf8Support();
+- virtual bool richTextSupportsTable() { return false; }
++ virtual bool hasFullUtf8Support() override;
++ virtual bool richTextSupportsTable() override { return false; }
+
+- virtual bool leftHandedMouse() { return false; }
++ virtual bool leftHandedMouse() override { return false; }
+
+ /**
+ * Set the application title
+ *
+ * Reimplemented from YApplication.
+ **/
+- virtual void setApplicationTitle(const std::string& title);
++ virtual void setApplicationTitle(const std::string& title) override;
+ };
+
+
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch
deleted file mode 100644
index 8e3774c..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 4b84f243a70a8c07f6a38dad3c9411fa707f25c9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Mar 2018 17:08:43 -0800
-Subject: [PATCH] use _nl_msg_cat_cntr only with glibc
-
-The musl libc provides libintl (similar to glibc)
-but does not use the same internals,
-so even though we are using the GNU gettext
-the libintl included with the libc does not define
-_nl_msg_cat_cntr and it does not need to.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/NCi18n.h | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/NCi18n.h b/src/NCi18n.h
-index 165b0e7..bfc4ed7 100644
---- a/src/NCi18n.h
-+++ b/src/NCi18n.h
-@@ -59,12 +59,13 @@ inline void setTextdomain( const char * domain )
- bindtextdomain( domain, YSettings::localeDir().c_str() );
- bind_textdomain_codeset( domain, "UTF-8" );
- textdomain( domain );
--
-+#if defined(__GLIBC__)
- // Make change known
- {
- extern int _nl_msg_cat_cntr;
- ++_nl_msg_cat_cntr;
- }
-+#endif
- }
-
-
---
-2.16.2
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch
new file mode 100644
index 0000000..f65cbe6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch
@@ -0,0 +1,49 @@
+From 162a0899f1dacd83007c4e82b9034f55610d8c20 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Sep 2018 19:01:51 -0700
+Subject: [PATCH 2/2] Define own resize in NCPad and fix param type of
+ SetLabel()
+
+Explicitly override resize() to avoid conflicts from NCursesWindow
+definition since there is another resize definition as well
+
+Fixes
+src/NCPad.h:164:18: error: 'NCPad::resize' hides overloaded virtual function [-Werror,-Woverloaded-virtual]
+
+NCTablePad.h:132:18: error: 'NCTableTag::SetLabel' hides overloaded virtual function [-Werror,-Woverloaded-virtual]
+
+Upstream-Status: Submitted [https://github.com/libyui/libyui-ncurses/pull/69]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/NCPad.h | 1 +
+ src/NCTablePad.h | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/NCPad.h b/src/NCPad.h
+index 328c4aa..d8fb324 100644
+--- a/src/NCPad.h
++++ b/src/NCPad.h
+@@ -162,6 +162,7 @@ public:
+ virtual void Destwin( NCursesWindow * dwin );
+
+ virtual void resize( wsze nsze );
++ virtual int resize( int lines, int columns ) { return NCursesWindow::resize(lines, columns );}
+ virtual void wRecoded();
+ virtual void setDirty() { dirty = true; }
+
+diff --git a/src/NCTablePad.h b/src/NCTablePad.h
+index c450529..3756796 100644
+--- a/src/NCTablePad.h
++++ b/src/NCTablePad.h
+@@ -129,7 +129,7 @@ public:
+
+ virtual ~NCTableTag() {}
+
+- virtual void SetLabel( const NCstring & ) { /*NOOP*/; }
++ virtual void SetLabel( const NClabel & ) { /*NOOP*/; }
+
+ virtual void DrawAt( NCursesWindow & w, const wrect at,
+ NCTableStyle & tableStyle,
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0003-Simplify-ncurses-finding-module.patch b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0003-Simplify-ncurses-finding-module.patch
new file mode 100644
index 0000000..2520ac4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0003-Simplify-ncurses-finding-module.patch
@@ -0,0 +1,35 @@
+From c2291fe28dc5682f81804941512431642975cf21 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Mon, 29 Oct 2018 18:17:32 +0100
+Subject: [PATCH] Simplify ncurses finding module
+
+CMake will automatically look in the right locations, there is no need to
+re-implement the logic with a for loop and NO_DEFAULT_PATH.
+
+It is already done like this to file the headers.
+
+Upstream-Status: Submitted [https://github.com/libyui/libyui-ncurses/pull/73]
+Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
+---
+ cmake/Modules/FindCurses6.cmake | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/cmake/Modules/FindCurses6.cmake b/cmake/Modules/FindCurses6.cmake
+index 0bf02c3..e298d5d 100644
+--- a/cmake/Modules/FindCurses6.cmake
++++ b/cmake/Modules/FindCurses6.cmake
+@@ -5,11 +5,9 @@
+ # CURSES6_LIBRARIES - The libraries needed to use Curses6
+ # CURSES6_DEFINITIONS - Compiler switches required for using Curses6
+
+-FOREACH(path ${CMAKE_LIBRARY_PATH} /usr/${LIB_DIR})
+- FIND_LIBRARY(CURSES6_NCURSESW_LIBRARY NAMES ncursesw PATHS ${path}/ncurses6 ${path} NO_DEFAULT_PATH)
+- FIND_LIBRARY(CURSES6_PANELW_LIBRARY NAMES panelw PATHS ${path}/ncurses6 ${path} NO_DEFAULT_PATH)
+- FIND_LIBRARY(CURSES6_TINFO_LIBRARY NAMES tinfo PATHS ${path}/ncurses6 ${path} NO_DEFAULT_PATH)
+-ENDFOREACH()
++FIND_LIBRARY(CURSES6_NCURSESW_LIBRARY NAMES ncursesw PATH_SUFFIXES ncurses6)
++FIND_LIBRARY(CURSES6_PANELW_LIBRARY NAMES panelw PATH_SUFFIXES ncurses6)
++FIND_LIBRARY(CURSES6_TINFO_LIBRARY NAMES tinfo PATH_SUFFIXES ncurses6)
+
+ SET(CURSES6_LIBRARIES ${CURSES6_NCURSESW_LIBRARY} ${CURSES6_PANELW_LIBRARY})
+ # tinfo is optional (in 12.1 is not there)
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb
index 578c713..18ea2e8 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb
@@ -5,13 +5,15 @@
"
SRC_URI = "git://github.com/libyui/libyui-ncurses.git \
- file://0001-use-_nl_msg_cat_cntr-only-with-glibc.patch \
+ file://0001-Use-override-consistently.patch \
+ file://0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch \
+ file://0003-Simplify-ncurses-finding-module.patch \
"
SRC_URI_append_class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch"
PV = "2.48.3+git${SRCPV}"
-SRCREV = "79b804b45ffc6a0d92e28e793ff389a20b63b54b"
+SRCREV = "c941b32246e8b2952fce4fd5743f8e318222ab98"
S = "${WORKDIR}/git"
@@ -29,8 +31,8 @@
mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
cd -
- sed -i "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt
- sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${PKG_CONFIG_SYSROOT_DIR}${libdir}/cmake/libyui/LibyuiLibraryDepends-release.cmake
+ sed -i -e "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt
+ sed -i -e "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${PKG_CONFIG_SYSROOT_DIR}${libdir}/cmake/libyui/LibyuiLibraryDepends-release.cmake
}
do_install_append () {
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch
deleted file mode 100644
index c1ba42e..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e6d40fec16a94d1a4bd40634405267200b7e969 Mon Sep 17 00:00:00 2001
-From: marxin <mliska@suse.cz>
-Date: Tue, 10 Apr 2018 15:21:40 +0200
-Subject: [PATCH] Fix GCC 8 warning:
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-/home/marxin/Programming/libyui/src/YDialog.cc: In static member function ‘static void YDialog::showText(const string&, bool)’:
-/home/marxin/Programming/libyui/src/YDialog.cc:690:26: error: catching polymorphic type ‘class YUIException’ by value [-Werror=catch-value=]
- catch ( YUIException exception )
- ^~~~~~~~~
-/home/marxin/Programming/libyui/src/YDialog.cc: In static member function ‘static bool YDialog::showRelNotesText()’:
-/home/marxin/Programming/libyui/src/YDialog.cc:814:26: error: catching polymorphic type ‘class YUIException’ by value [-Werror=catch-value=]
- catch ( YUIException exception )
- ^~~~~~~~~
----
-Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/122]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
- src/YDialog.cc | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/YDialog.cc b/src/YDialog.cc
-index 92e5031..8ecff90 100644
---- a/src/YDialog.cc
-+++ b/src/YDialog.cc
-@@ -687,7 +687,7 @@ YDialog::showText( const std::string & text, bool useRichText )
- dialog->waitForEvent();
- dialog->destroy();
- }
-- catch ( YUIException exception )
-+ catch ( YUIException &exception )
- {
- // Don't let the application die just because help couldn't be displayed.
-
-@@ -811,7 +811,7 @@ YDialog::showRelNotesText()
- }
- dialog->destroy();
- }
-- catch ( YUIException exception )
-+ catch ( YUIException &exception )
- {
- // Don't let the application die just because RN couldn't be displayed.
-
---
-2.17.0
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch
new file mode 100644
index 0000000..dbe2417
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch
@@ -0,0 +1,32 @@
+From 4eed37b1a61458fc8e5251f7cb7c6d64e8e9da8d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Sep 2018 17:48:09 -0700
+Subject: [PATCH] Use curly braces for MAKE variable
+
+Fixes errors with ninja
+| ninja: error: build.ninja:142: bad $-escape (literal $ must be written as $$)
+
+Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/137]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ buildtools/LibyuiCommon.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/buildtools/LibyuiCommon.cmake b/buildtools/LibyuiCommon.cmake
+index cb93307..e6fbefd 100644
+--- a/buildtools/LibyuiCommon.cmake
++++ b/buildtools/LibyuiCommon.cmake
+@@ -122,8 +122,8 @@ MACRO( SET_BUILD_FLAGS ) # setup compiler-flags depending on CMAKE_BUILD_TYPE
+ ENABLE_TESTING()
+ # add a wrapper "tests" target, the builtin "test" cannot be extended :-(
+ ADD_CUSTOM_TARGET(tests
+- $(MAKE)
+- COMMAND $(MAKE) test
++ ${MAKE}
++ COMMAND ${MAKE} test
+ )
+ ENDIF ( ENABLE_TESTS OR ENABLE_CODE_COVERAGE)
+
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch
new file mode 100644
index 0000000..11a1678
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch
@@ -0,0 +1,130 @@
+From d24c2516ae25d0ee180c1020e52114ea32230585 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Mon, 29 Oct 2018 18:03:43 +0100
+Subject: [PATCH] Use relative install paths for CMake
+
+Files are installed via a special _PREFIX variant of the INSTALL_???_DIR
+variable which is an absolute path.
+
+This not only is redundant if CMAKE_INTALL_PREFIX is set but it even causes
+the resulting Config.cmake to be non relocatable. This means it contains absolute
+paths to the build host. This is a problem for cross compilation in Yocto.
+
+This change gets rid of the absolute path and removes the no longer needed
+_PREFIX variants.
+
+Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/140]
+Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
+---
+ buildtools/LibyuiCommon.cmake | 35 ++++++++++++++---------------------
+ 1 file changed, 14 insertions(+), 21 deletions(-)
+
+diff --git a/buildtools/LibyuiCommon.cmake b/buildtools/LibyuiCommon.cmake
+index e6fbefd..5e2fc0d 100644
+--- a/buildtools/LibyuiCommon.cmake
++++ b/buildtools/LibyuiCommon.cmake
+@@ -258,13 +258,6 @@ MACRO( SET_ENVIRONMENT ) # setup the environment vars
+
+ SET( INSTALL_DOC_DIR "${DOC_DIR}" )
+
+- FOREACH( p "DOC" LIB INCLUDE CMAKE PKGCONFIG BUILDTOOLS )
+- SET( var "INSTALL_${p}_DIR" )
+- IF( NOT IS_ABSOLUTE "${${var}}" )
+- SET( ${var}_PREFIX "${YPREFIX}/${${var}}" )
+- ENDIF( NOT IS_ABSOLUTE "${${var}}" )
+- ENDFOREACH()
+-
+ ENDMACRO( SET_ENVIRONMENT )
+
+ MACRO( SET_SONAME )
+@@ -359,7 +352,7 @@ MACRO( SET_AUTODOCS ) # looks for doxygen, dot and latex and setup autodocs acc
+ IF( INSTALL_DOCS OR DOCS_ONLY )
+ INSTALL(
+ FILES "${CMAKE_BINARY_DIR}/doc/latex/refman.pdf"
+- DESTINATION "${INSTALL_DOC_DIR_PREFIX}"
++ DESTINATION "${INSTALL_DOC_DIR}"
+ )
+ ENDIF( INSTALL_DOCS OR DOCS_ONLY )
+
+@@ -379,7 +372,7 @@ MACRO( SET_AUTODOCS ) # looks for doxygen, dot and latex and setup autodocs acc
+ FOREACH( p css gif html jpg js png tag )
+ INSTALL(
+ DIRECTORY "${CMAKE_BINARY_DIR}/doc/html"
+- DESTINATION "${INSTALL_DOC_DIR_PREFIX}"
++ DESTINATION "${INSTALL_DOC_DIR}"
+ FILES_MATCHING PATTERN "*.${p}"
+ )
+ ENDFOREACH()
+@@ -638,32 +631,32 @@ MACRO( SET_INSTALL_TARGET )
+
+ INSTALL(
+ EXPORT ${PROJECTNAME_UC}LibraryDepends
+- DESTINATION "${INSTALL_CMAKE_DIR_PREFIX}"
++ DESTINATION "${INSTALL_CMAKE_DIR}"
+ COMPONENT dev
+ )
+
+ FOREACH( p Config.cmake ConfigVersion.cmake )
+ INSTALL(
+ FILES "${CMAKE_BINARY_DIR}/${PROJECTNAME_UC}${p}"
+- DESTINATION "${INSTALL_CMAKE_DIR_PREFIX}"
++ DESTINATION "${INSTALL_CMAKE_DIR}"
+ )
+ ENDFOREACH( p Config.cmake ConfigVersion.cmake )
+
+ INSTALL(
+ FILES "${CMAKE_BINARY_DIR}/${PROJECTNAME}.pc"
+- DESTINATION "${INSTALL_PKGCONFIG_DIR_PREFIX}"
++ DESTINATION "${INSTALL_PKGCONFIG_DIR}"
+ )
+
+ IF( NOT PLUGINNAME AND NOT EXTENSIONNAME )
+ INSTALL(
+ DIRECTORY "${BUILDTOOLS_DIR}"
+- DESTINATION "${INSTALL_BUILDTOOLS_DIR_PREFIX}"
++ DESTINATION "${INSTALL_BUILDTOOLS_DIR}"
+ )
+ ENDIF( NOT PLUGINNAME AND NOT EXTENSIONNAME )
+
+ INSTALL(
+ FILES ${BUILDTOOLS_LIST}
+- DESTINATION "${INSTALL_BUILDTOOLS_DIR_PREFIX}"
++ DESTINATION "${INSTALL_BUILDTOOLS_DIR}"
+ )
+
+ ENDMACRO( SET_INSTALL_TARGET )
+@@ -724,9 +717,9 @@ MACRO( PROCESS_SOURCES )
+ INSTALL(
+ TARGETS ${TARGETLIB}
+ EXPORT ${PROJECTNAME_UC}LibraryDepends
+- LIBRARY DESTINATION "${INSTALL_LIB_DIR_PREFIX}"
+- ARCHIVE DESTINATION "${INSTALL_LIB_DIR_PREFIX}"
+- PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR_PREFIX}"
++ LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
++ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
++ PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}"
+ COMPONENT dev
+ )
+
+@@ -746,9 +739,9 @@ MACRO( PROCESS_SOURCES )
+ INSTALL(
+ TARGETS ${TARGETLIB}_static
+ EXPORT ${PROJECTNAME_UC}LibraryDepends
+- LIBRARY DESTINATION "${INSTALL_LIB_DIR_PREFIX}"
+- ARCHIVE DESTINATION "${INSTALL_LIB_DIR_PREFIX}"
+- PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR_PREFIX}"
++ LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
++ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
++ PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}"
+ COMPONENT dev
+ )
+
+@@ -776,7 +769,7 @@ MACRO( PROCESS_EXAMPLES )
+
+ INSTALL(
+ FILES ${EXAMPLES_LIST}
+- DESTINATION "${INSTALL_DOC_DIR_PREFIX}/examples"
++ DESTINATION "${INSTALL_DOC_DIR}/examples"
+ )
+
+ ENDMACRO( PROCESS_EXAMPLES )
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb
index 4294528..d313fb0 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb
@@ -6,13 +6,14 @@
"
SRC_URI = "git://github.com/libyui/libyui.git \
- file://0001-Fix-GCC-8-warning.patch \
file://0001-Fix-build-with-clang.patch \
+ file://0001-Use-curly-braces-for-MAKE-variable.patch \
+ file://0001-Use-relative-install-paths-for-CMake.patch \
"
PV = "3.3.3+git"
-SRCREV = "2b634cb7821e2e79dd4b7a73caf8e67c50189376"
-
+SRCREV = "50672da835ec9d52766320a44a2677e08a24c99c"
+SRCREV_FORMAT = "default"
S = "${WORKDIR}/git"
inherit cmake gettext pkgconfig
@@ -22,9 +23,9 @@
BBCLASSEXTEND = "native nativesdk"
do_configure_prepend () {
- cd ${S}
- ./bootstrap.sh
- cd -
+ (cd ${S} &&
+ ./bootstrap.sh &&
+ cd -)
}
do_install_append () {
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0001-check-for-libexecinfo-providing-backtrace-APIs.patch b/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0001-check-for-libexecinfo-providing-backtrace-APIs.patch
rename to meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch b/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch
new file mode 100644
index 0000000..afe11f3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch
@@ -0,0 +1,27 @@
+From 72812894cfd9454d70e4b0753531e46580416771 Mon Sep 17 00:00:00 2001
+From: dgod <dgod.osa@gmail.com>
+Date: Mon, 21 Mar 2016 19:25:25 +0800
+Subject: [PATCH] fix css under gtk 3.20
+
+Upstream-Status: Applied [1]
+
+[1] https://git.lxde.org/gitweb/?p=lxde/lxdm.git;a=patch;h=72812894cfd9454d70e4b0753531e46580416771
+---
+ data/themes/Industrial/gtk.css | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/data/themes/Industrial/gtk.css b/data/themes/Industrial/gtk.css
+index 179f0d6..f8e6432 100644
+--- a/data/themes/Industrial/gtk.css
++++ b/data/themes/Industrial/gtk.css
+@@ -17,6 +17,7 @@
+ color: #000000;
+ }
+
++#bottom_pane label,
+ #bottom_pane GtkLabel {
+ font: Sans 12;
+ color: #9E9D9B;
+--
+2.14.4
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb b/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
index 8e7efcd..701266b 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
@@ -7,14 +7,15 @@
${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://lxdm-pam file://lxdm-pam-debug', '', d)} \
${@bb.utils.contains("DISTRO_TYPE", "debug", "", "file://0001-lxdm.conf.in-blacklist-root-for-release-images.patch",d)} \
file://0002-let-autotools-create-lxdm.conf.patch \
- file://0001-check-for-libexecinfo-providing-backtrace-APIs.patch \
+ file://0003-check-for-libexecinfo-providing-backtrace-APIs.patch \
+ file://0004-fix-css-under-gtk-3.20.patch \
"
SRC_URI[md5sum] = "061caae432634e6db38bbdc84bc6ffa0"
SRC_URI[sha256sum] = "4891efee81c72a400cc6703e40aa76f3f3853833d048b72ec805da0f93567f2f"
PE = "1"
-DEPENDS = "virtual/libintl intltool-native cairo dbus gdk-pixbuf glib-2.0 gtk+ virtual/libx11 libxcb pango iso-codes"
+DEPENDS = "virtual/libintl intltool-native cairo dbus gdk-pixbuf glib-2.0 gtk+3 virtual/libx11 libxcb pango iso-codes"
DEPENDS += "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "consolekit", d)}"
DEPENDS_append_libc-musl = " libexecinfo"
@@ -28,7 +29,7 @@
CFLAGS_append = " -fno-builtin-fork -fno-builtin-memset -fno-builtin-strstr "
LDFLAGS_append_libc-musl = " -lexecinfo"
-EXTRA_OECONF += "--enable-gtk3=no --enable-password=yes --with-x -with-xconn=xcb \
+EXTRA_OECONF += "--enable-gtk3=yes --enable-password=yes --with-x -with-xconn=xcb \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/ --disable-consolekit', '--without-systemdsystemunitdir', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
index c35a0c7..f4d21b8 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
@@ -39,7 +39,6 @@
do_split_packages(d, theme_dir, '(.*)', theme_name, '${PN} theme for %s', extra_depends='', allow_dirs=True)
}
-RDEPENDS_${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks"
FILES_${PN}-core = "${bindir}/openbox ${bindir}/openbox-session ${libdir}/*${SOLIBS}"
FILES_${PN}-lxde += "${datadir}/lxde/ \
@@ -54,3 +53,5 @@
"
FILES_${PN}-config += "${sysconfdir}"
+
+RDEPENDS_${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks python pyxdg"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch
deleted file mode 100644
index 866d9aa..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 226f07e4b49c2757b181c62e6841000c512054e3 Mon Sep 17 00:00:00 2001
-From: Even Rouault <even.rouault@spatialys.com>
-Date: Mon, 14 Aug 2017 17:26:58 +0200
-Subject: [PATCH] bmp_read_info_header(): reject bmp files with biBitCount == 0
- (#983)
-
-Upstream-Status: Backport [https://github.com/uclouvain/openjpeg/commit/baf0c1ad4572daa89caa3b12985bdd93530f0dd7]
-CVE: CVE-2017-12982
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- src/bin/jp2/convertbmp.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c
-index b49e7a0..2715fdf 100644
---- a/src/bin/jp2/convertbmp.c
-+++ b/src/bin/jp2/convertbmp.c
-@@ -392,6 +392,10 @@ static OPJ_BOOL bmp_read_info_header(FILE* IN, OPJ_BITMAPINFOHEADER* header)
-
- header->biBitCount = (OPJ_UINT16)getc(IN);
- header->biBitCount |= (OPJ_UINT16)((OPJ_UINT32)getc(IN) << 8);
-+ if (header->biBitCount == 0) {
-+ fprintf(stderr, "Error, invalid biBitCount %d\n", 0);
-+ return OPJ_FALSE;
-+ }
-
- if (header->biSize >= 40U) {
- header->biCompression = (OPJ_UINT32)getc(IN);
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch
new file mode 100644
index 0000000..5c5fe64
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch
@@ -0,0 +1,48 @@
+From fe491c0919f5adc8d626cb98c5ec19d0b99dfe20 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Thu, 27 Sep 2018 23:45:04 +0200
+Subject: [PATCH] Ensure cmake files are installed at common location
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* Otherwise recent poppler is not able to find them
+* Include path needs adjustment with this change
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ CMakeLists.txt | 2 +-
+ cmake/OpenJPEGConfig.cmake.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ff70a06f..23d2fac4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -150,7 +150,7 @@ if(NOT OPENJPEG_INSTALL_PACKAGE_DIR)
+ # We could install *.cmake files in share/ however those files contains
+ # hardcoded path to libraries on a multi-arch system (fedora/debian) those
+ # path will be different (lib/i386-linux-gnu vs lib/x86_64-linux-gnu)
+- set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/${OPENJPEG_INSTALL_SUBDIR}")
++ set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/cmake/${OPENJPEG_INSTALL_SUBDIR}")
+ endif()
+
+ if (APPLE)
+diff --git a/cmake/OpenJPEGConfig.cmake.in b/cmake/OpenJPEGConfig.cmake.in
+index b20294ca..6a2f4baf 100644
+--- a/cmake/OpenJPEGConfig.cmake.in
++++ b/cmake/OpenJPEGConfig.cmake.in
+@@ -26,7 +26,7 @@ get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+ if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake)
+ # This is an install tree
+ include(${SELF_DIR}/OpenJPEGTargets.cmake)
+- get_filename_component(OPENJPEG_INCLUDE_ROOT "${SELF_DIR}/../../@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE)
++ get_filename_component(OPENJPEG_INCLUDE_ROOT "${SELF_DIR}/../../../@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE)
+ set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG_INCLUDE_ROOT})
+
+ else()
+--
+2.14.4
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch
new file mode 100644
index 0000000..0ba13cf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch
@@ -0,0 +1,31 @@
+From 4681de07e21f17aa28710d3a51fabe7da60463f9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 28 Sep 2018 00:38:50 +0200
+Subject: [PATCH] Do not ask cmake to export binaries - they don't make it
+ dependants sysroots
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/bin/jp2/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/bin/jp2/CMakeLists.txt b/src/bin/jp2/CMakeLists.txt
+index 4324c36d..2c11fe02 100644
+--- a/src/bin/jp2/CMakeLists.txt
++++ b/src/bin/jp2/CMakeLists.txt
+@@ -66,7 +66,6 @@ foreach(exe opj_decompress opj_compress opj_dump)
+ endif()
+ # Install exe
+ install(TARGETS ${exe}
+- EXPORT OpenJPEGTargets
+ DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
+ )
+ if(OPJ_USE_DSYMUTIL)
+--
+2.14.4
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb
deleted file mode 100644
index 4ef1c40..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec"
-HOMEPAGE = "http://www.openjpeg.org"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c"
-
-SRC_URI = "https://github.com/uclouvain/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
- file://0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch \
- "
-SRC_URI[md5sum] = "269bb0b175476f3addcc0d03bd9a97b6"
-SRC_URI[sha256sum] = "6fddbce5a618e910e03ad00d66e7fcd09cc6ee307ce69932666d54c73b7c6e7b"
-
-inherit cmake
-
-DEPENDS = "libpng tiff lcms zlib"
-
-# standard path for *.cmake
-EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_PACKAGE_DIR=${baselib}/cmake \
- -DOPENJPEG_INSTALL_LIB_DIR:PATH=${libdir}"
-
-FILES_${PN}-dev += "${libdir}/cmake/*.cmake"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb
new file mode 100644
index 0000000..c50d55e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec"
+HOMEPAGE = "http://www.openjpeg.org"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c"
+
+DEPENDS = "libpng tiff lcms zlib"
+
+SRC_URI = " \
+ git://github.com/uclouvain/openjpeg.git \
+ file://0001-Ensure-cmake-files-are-installed-at-common-location.patch \
+ file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \
+"
+SRCREV = "081de4b15f54cb4482035b7bf5e3fb443e4bc84b"
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch
index 12c4376..f0056d6 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch
@@ -1,6 +1,6 @@
-From 4b423cd2e5e4296abca3be553bf64d8cc287180a Mon Sep 17 00:00:00 2001
+From 47f175618a0b0817714ea557c9e93f22f327421e Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 20 Jul 2017 17:09:05 +0800
+Date: Tue, 31 Jul 2018 16:39:52 +0800
Subject: [PATCH 1/4] tigervnc: remove includedir
Upstream-Status: Pending
@@ -15,28 +15,28 @@
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/unix/xserver/hw/vnc/Makefile.am b/unix/xserver/hw/vnc/Makefile.am
-index 0d6a4ac..854f078 100644
+index 470424b..ee18bf9 100644
--- a/unix/xserver/hw/vnc/Makefile.am
+++ b/unix/xserver/hw/vnc/Makefile.am
-@@ -22,7 +22,7 @@ libvnccommon_la_SOURCES = $(HDRS) \
+@@ -23,7 +23,7 @@ libvnccommon_la_SOURCES = $(HDRS) \
- libvnccommon_la_CPPFLAGS = -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
+ libvnccommon_la_CPPFLAGS = -DVENDOR_RELEASE="$(VENDOR_RELEASE)" -I$(TIGERVNC_SRCDIR)/unix/common \
-DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_H \
- -I$(TIGERVNC_SRCDIR)/unix/vncconfig $(XVNC_CPPFLAGS) ${XSERVERLIBS_CFLAGS} -I$(includedir) \
+ -I$(TIGERVNC_SRCDIR)/unix/vncconfig $(XVNC_CPPFLAGS) ${XSERVERLIBS_CFLAGS} \
-I$(top_srcdir)/include
bin_PROGRAMS = Xvnc
-@@ -42,7 +42,7 @@ Xvnc_CPPFLAGS = $(XVNC_CPPFLAGS) -DTIGERVNC -DNO_MODULE_EXTS \
+@@ -43,7 +43,7 @@ Xvnc_CPPFLAGS = $(XVNC_CPPFLAGS) -DTIGERVNC -DNO_MODULE_EXTS \
-UHAVE_CONFIG_H \
-DXFree86Server -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
- -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common \
+ -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common -I$(TIGERVNC_SRCDIR)/unix/common \
- -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} -I$(includedir)
+ -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS}
Xvnc_LDADD = $(XVNC_LIBS) libvnccommon.la $(COMMON_LIBS) \
$(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XVNC_SYS_LIBS) -lX11
-@@ -62,7 +62,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_
+@@ -64,7 +64,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_
-I$(top_srcdir)/hw/xfree86/os-support \
-I$(top_srcdir)/hw/xfree86/os-support/bus \
-I$(top_srcdir)/include \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch
deleted file mode 100644
index 2f342c6..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From e4ec992984983ac9107efae1f1cc552007e4229e Mon Sep 17 00:00:00 2001
-From: Vishal Biswas <vshlbiswas@ymail.com>
-Date: Mon, 8 May 2017 11:06:11 +0530
-Subject: [PATCH] Remove INITARGS from xserver119.patch
-
-Upstream-Status: Backport
-
----
- unix/xserver119.patch | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/unix/xserver119.patch b/unix/xserver119.patch
-index 614f104..7adf314 100644
---- a/unix/xserver119.patch
-+++ b/unix/xserver119.patch
-@@ -66,7 +66,7 @@ diff -up xserver/mi/miinitext.c.xserver116-rebased xserver/mi/miinitext.c
- #include "globals.h"
-
- +#ifdef TIGERVNC
--+extern void vncExtensionInit(INITARGS);
-++extern void vncExtensionInit(void);
- +#endif
- +
- /* The following is only a small first step towards run-time
---
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb
deleted file mode 100644
index 469745f..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb
+++ /dev/null
@@ -1,132 +0,0 @@
-DESCRIPTION = "TigerVNC remote display system"
-HOMEPAGE = "http://www.tigervnc.com/"
-LICENSE = "GPLv2+"
-SECTION = "x11/utils"
-DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk"
-RDEPENDS_${PN} = "chkconfig coreutils hicolor-icon-theme"
-
-LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
-
-S = "${WORKDIR}/git"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "x11"
-
-inherit autotools cmake
-B = "${S}"
-
-SRCREV = "4d6e1b8306a8cca8ad5e15ff8201f6ea24459cfd"
-
-SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.8-branch \
- file://0001-tigervnc-remove-includedir.patch \
- file://0002-do-not-build-tests-sub-directory.patch \
- file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \
- file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \
- file://0005-Remove-INITARGS-from-xserver119.patch.patch \
-"
-
-# Keep sync with xorg-server in oe-core
-XORG_PN ?= "xorg-server"
-XORG_PV ?= "1.19.3"
-SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg"
-XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}"
-SRC_URI[xorg.md5sum] = "015d2fc4b9f2bfe7a626edb63a62c65e"
-SRC_URI[xorg.sha256sum] = "677a8166e03474719238dfe396ce673c4234735464d6dadf2959b600d20e5a98"
-
-# It is the directory containing the Xorg source for the
-# machine on which you are building TigerVNC.
-XSERVER_SOURCE_DIR="${S}/unix/xserver"
-
-do_patch[postfuncs] += "do_patch_xserver"
-do_patch_xserver () {
- for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do
- install -d ${XSERVER_SOURCE_DIR}/$subdir
- done
-
- for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do
- install -d ${XSERVER_SOURCE_DIR}/$subdir
- done
-
- sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \
- hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \
- hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in"
- for i in ${sources}; do
- install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i;
- done
-
- cd ${XORG_S}
- find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \
- xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -)
-
- cd ${XSERVER_SOURCE_DIR}
- xserverpatch="${S}/unix/xserver119.patch"
- echo "Apply $xserverpatch"
- patch -p1 -b --suffix .vnc < $xserverpatch
-}
-
-EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
- --disable-xwin --disable-xephyr --disable-kdrive --with-pic \
- --disable-static --disable-xinerama \
- --with-xkb-output=${localstatedir}/lib/xkb \
- --disable-glx --disable-dri --disable-dri2 \
- --disable-config-hal \
- --disable-config-udev \
- --without-dtrace \
- --disable-unit-tests \
- --disable-devel-docs \
- --disable-selective-werror \
- --disable-xshmfence \
- --disable-config-udev \
- --disable-dri3 \
- --disable-libunwind \
- --without-xmlto \
- --enable-systemd-logind=no \
- --disable-xinerama \
- --disable-xwayland \
-"
-
-do_configure_append () {
- olddir=`pwd`
- cd ${XSERVER_SOURCE_DIR}
-
- rm -rf aclocal-copy/
- rm -f aclocal.m4
-
- export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy"
- mkdir -p ${ACLOCALDIR}/
- if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
- cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/
- fi
- if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
- cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/
- fi
- ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed."
- chmod +x ./configure
- ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
- cd $olddir
-}
-
-do_compile_append () {
- olddir=`pwd`
- cd ${XSERVER_SOURCE_DIR}
-
- oe_runmake
-
- cd $olddir
-}
-
-do_install_append() {
- olddir=`pwd`
- cd ${XSERVER_SOURCE_DIR}/hw/vnc
-
- oe_runmake 'DESTDIR=${D}' install
-
- cd $olddir
-}
-
-FILES_${PN} += " \
- ${libdir}/xorg/modules/extensions \
- ${datadir}/icons \
-"
-
-FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb
new file mode 100644
index 0000000..f3dc899
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb
@@ -0,0 +1,131 @@
+DESCRIPTION = "TigerVNC remote display system"
+HOMEPAGE = "http://www.tigervnc.com/"
+LICENSE = "GPLv2+"
+SECTION = "x11/utils"
+DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk"
+RDEPENDS_${PN} = "chkconfig coreutils hicolor-icon-theme"
+
+LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
+
+S = "${WORKDIR}/git"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "x11"
+
+inherit autotools cmake
+B = "${S}"
+
+SRCREV = "6f2301d08e64a965ad36b401ec8dc2b24bc47075"
+
+SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.9-branch \
+ file://0001-tigervnc-remove-includedir.patch \
+ file://0002-do-not-build-tests-sub-directory.patch \
+ file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \
+ file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \
+"
+
+# Keep sync with xorg-server in oe-core
+XORG_PN ?= "xorg-server"
+XORG_PV ?= "1.19.6"
+SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg"
+XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}"
+SRC_URI[xorg.md5sum] = "3e47777ff034a331aed2322b078694a8"
+SRC_URI[xorg.sha256sum] = "a732502f1db000cf36a376cd0c010ffdbf32ecdd7f1fa08ba7f5bdf9601cc197"
+
+# It is the directory containing the Xorg source for the
+# machine on which you are building TigerVNC.
+XSERVER_SOURCE_DIR="${S}/unix/xserver"
+
+do_patch[postfuncs] += "do_patch_xserver"
+do_patch_xserver () {
+ for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do
+ install -d ${XSERVER_SOURCE_DIR}/$subdir
+ done
+
+ for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do
+ install -d ${XSERVER_SOURCE_DIR}/$subdir
+ done
+
+ sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \
+ hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \
+ hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in"
+ for i in ${sources}; do
+ install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i;
+ done
+
+ cd ${XORG_S}
+ find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \
+ xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -)
+
+ cd ${XSERVER_SOURCE_DIR}
+ xserverpatch="${S}/unix/xserver119.patch"
+ echo "Apply $xserverpatch"
+ patch -p1 -b --suffix .vnc < $xserverpatch
+}
+
+EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
+ --disable-xwin --disable-xephyr --disable-kdrive --with-pic \
+ --disable-static --disable-xinerama \
+ --with-xkb-output=${localstatedir}/lib/xkb \
+ --disable-glx --disable-dri --disable-dri2 \
+ --disable-config-hal \
+ --disable-config-udev \
+ --without-dtrace \
+ --disable-unit-tests \
+ --disable-devel-docs \
+ --disable-selective-werror \
+ --disable-xshmfence \
+ --disable-config-udev \
+ --disable-dri3 \
+ --disable-libunwind \
+ --without-xmlto \
+ --enable-systemd-logind=no \
+ --disable-xinerama \
+ --disable-xwayland \
+"
+
+do_configure_append () {
+ olddir=`pwd`
+ cd ${XSERVER_SOURCE_DIR}
+
+ rm -rf aclocal-copy/
+ rm -f aclocal.m4
+
+ export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy"
+ mkdir -p ${ACLOCALDIR}/
+ if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
+ cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/
+ fi
+ if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
+ cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/
+ fi
+ ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed."
+ chmod +x ./configure
+ ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
+ cd $olddir
+}
+
+do_compile_append () {
+ olddir=`pwd`
+ cd ${XSERVER_SOURCE_DIR}
+
+ oe_runmake
+
+ cd $olddir
+}
+
+do_install_append() {
+ olddir=`pwd`
+ cd ${XSERVER_SOURCE_DIR}/hw/vnc
+
+ oe_runmake 'DESTDIR=${D}' install
+
+ cd $olddir
+}
+
+FILES_${PN} += " \
+ ${libdir}/xorg/modules/extensions \
+ ${datadir}/icons \
+"
+
+FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.15.bb b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.15.bb
deleted file mode 100644
index 7ae941a..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.15.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-SUMMARY = "An abstraction layer for touchscreen panel events"
-DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
-events, as well as a filter stack for the manipulation of those events. \
-Tslib is generally used on embedded devices to provide a common user \
-space interface to touchscreen functionality."
-HOMEPAGE = "http://tslib.org/"
-
-AUTHOR = "Martin Kepplinger <martink@posteo.de>"
-SECTION = "base"
-LICENSE = "LGPLv2+ & GPLv2+"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \
- file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \
-"
-
-SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
- file://ts.conf \
- file://tslib.sh \
-"
-SRC_URI[md5sum] = "9ff36788c9ab76a10b58422227b9629e"
-SRC_URI[sha256sum] = "7ce48807cab655076d71a1ceef3ed0ab8a25df98074981d4a8fd1477ee5f710c"
-
-UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "debounce dejitter iir linear median pthres skip lowpass invert variance input touchkit waveshare"
-PACKAGECONFIG[debounce] = "--enable-debounce,--disable-debounce"
-PACKAGECONFIG[dejitter] = "--enable-dejitter,--disable-dejitter"
-PACKAGECONFIG[iir] = "--enable-iir,--disable-iir"
-PACKAGECONFIG[linear] = "--enable-linear,--disable-linear"
-PACKAGECONFIG[median] = "--enable-median,--disable-median"
-PACKAGECONFIG[pthres] = "--enable-pthres,--disable-pthres"
-PACKAGECONFIG[skip] = "--enable-skip,--disable-skip"
-PACKAGECONFIG[lowpass] = "--enable-lowpass,--disable-lowpass"
-PACKAGECONFIG[invert] = "--enable-invert,--disable-invert"
-PACKAGECONFIG[variance] = "--enable-variance,--disable-variance"
-PACKAGECONFIG[input] = "--enable-input,--disable-input"
-PACKAGECONFIG[tatung] = "--enable-tatung,--disable-tatung"
-PACKAGECONFIG[touchkit] = "--enable-touchkit,--disable-touchkit"
-PACKAGECONFIG[waveshare] = "--enable-waveshare,--disable-waveshare"
-PACKAGECONFIG[ucb1x00] = "--enable-ucb1x00,--disable-ucb1x00"
-PACKAGECONFIG[mk712] = "--enable-mk712,--disable-mk712"
-PACKAGECONFIG[h3600] = "--enable-h3600,--disable-h3600"
-PACKAGECONFIG[dmc] = "--enable-dmc,--disable-dmc"
-PACKAGECONFIG[linear-h2200] = "--enable-linear-h2200,--disable-linear-h2200"
-PACKAGECONFIG[corgi] = "--enable-corgi,--disable-corgi"
-PACKAGECONFIG[collie] = "--enable-collie,--disable-collie"
-PACKAGECONFIG[arctic2] = "--enable-arctic2,--disable-arctic2"
-PACKAGECONFIG[dmc_dus3000] = "--enable-dmc_dus3000,--disable-dmc_dus3000"
-PACKAGECONFIG[cy8mrln-palmpre] = "--enable-cy8mrln-palmpre,--disable-cy8mrln-palmpre"
-PACKAGECONFIG[galax] = "--enable-galax,--disable-galax"
-PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
-
-do_install_prepend() {
- install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
-}
-
-do_install_append() {
- install -d ${D}${sysconfdir}/profile.d/
- install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
-}
-
-RPROVIDES_tslib-conf = "libts-0.0-conf"
-
-PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput"
-DEBIAN_NOAUTONAME_tslib-conf = "1"
-DEBIAN_NOAUTONAME_tslib-tests = "1"
-DEBIAN_NOAUTONAME_tslib-calibrate = "1"
-DEBIAN_NOAUTONAME_tslib-uinput = "1"
-
-RDEPENDS_${PN} = "tslib-conf"
-RRECOMMENDS_${PN} = "pointercal"
-
-FILES_${PN}-dev += "${libdir}/ts/*.la"
-FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
-FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
-FILES_tslib-calibrate += "${bindir}/ts_calibrate"
-FILES_tslib-uinput += "${bindir}/ts_uinput"
-
-FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_print_mt \
- ${bindir}/ts_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb
new file mode 100644
index 0000000..8d23bd5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.16.bb
@@ -0,0 +1,82 @@
+SUMMARY = "An abstraction layer for touchscreen panel events"
+DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
+events, as well as a filter stack for the manipulation of those events. \
+Tslib is generally used on embedded devices to provide a common user \
+space interface to touchscreen functionality."
+HOMEPAGE = "http://tslib.org/"
+
+AUTHOR = "Martin Kepplinger <martink@posteo.de>"
+SECTION = "base"
+LICENSE = "LGPLv2+ & GPLv2+"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \
+ file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \
+"
+
+SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
+ file://ts.conf \
+ file://tslib.sh \
+"
+SRC_URI[md5sum] = "254a022fc8aa89d164840fe8869c2441"
+SRC_URI[sha256sum] = "c9a54651337a701a66b074c603c313225579995a7910e519bbc7b1dcdab9a755"
+
+UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "debounce dejitter iir linear median pthres skip lowpass invert variance input touchkit waveshare"
+PACKAGECONFIG[debounce] = "--enable-debounce,--disable-debounce"
+PACKAGECONFIG[dejitter] = "--enable-dejitter,--disable-dejitter"
+PACKAGECONFIG[iir] = "--enable-iir,--disable-iir"
+PACKAGECONFIG[linear] = "--enable-linear,--disable-linear"
+PACKAGECONFIG[median] = "--enable-median,--disable-median"
+PACKAGECONFIG[pthres] = "--enable-pthres,--disable-pthres"
+PACKAGECONFIG[skip] = "--enable-skip,--disable-skip"
+PACKAGECONFIG[lowpass] = "--enable-lowpass,--disable-lowpass"
+PACKAGECONFIG[invert] = "--enable-invert,--disable-invert"
+PACKAGECONFIG[variance] = "--enable-variance,--disable-variance"
+PACKAGECONFIG[input] = "--enable-input,--disable-input"
+PACKAGECONFIG[tatung] = "--enable-tatung,--disable-tatung"
+PACKAGECONFIG[touchkit] = "--enable-touchkit,--disable-touchkit"
+PACKAGECONFIG[waveshare] = "--enable-waveshare,--disable-waveshare"
+PACKAGECONFIG[ucb1x00] = "--enable-ucb1x00,--disable-ucb1x00"
+PACKAGECONFIG[mk712] = "--enable-mk712,--disable-mk712"
+PACKAGECONFIG[h3600] = "--enable-h3600,--disable-h3600"
+PACKAGECONFIG[dmc] = "--enable-dmc,--disable-dmc"
+PACKAGECONFIG[linear-h2200] = "--enable-linear-h2200,--disable-linear-h2200"
+PACKAGECONFIG[corgi] = "--enable-corgi,--disable-corgi"
+PACKAGECONFIG[collie] = "--enable-collie,--disable-collie"
+PACKAGECONFIG[arctic2] = "--enable-arctic2,--disable-arctic2"
+PACKAGECONFIG[dmc_dus3000] = "--enable-dmc_dus3000,--disable-dmc_dus3000"
+PACKAGECONFIG[cy8mrln-palmpre] = "--enable-cy8mrln-palmpre,--disable-cy8mrln-palmpre"
+PACKAGECONFIG[galax] = "--enable-galax,--disable-galax"
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
+
+do_install_prepend() {
+ install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
+}
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/profile.d/
+ install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
+}
+
+RPROVIDES_tslib-conf = "libts-0.0-conf"
+
+PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput"
+DEBIAN_NOAUTONAME_tslib-conf = "1"
+DEBIAN_NOAUTONAME_tslib-tests = "1"
+DEBIAN_NOAUTONAME_tslib-calibrate = "1"
+DEBIAN_NOAUTONAME_tslib-uinput = "1"
+
+RDEPENDS_${PN} = "tslib-conf"
+RRECOMMENDS_${PN} = "pointercal"
+
+FILES_${PN}-dev += "${libdir}/ts/*.la"
+FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
+FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
+FILES_tslib-calibrate += "${bindir}/ts_calibrate"
+FILES_tslib-uinput += "${bindir}/ts_uinput"
+
+FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_print_mt \
+ ${bindir}/ts_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb b/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb
index 31bcce0..b79a562 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb
@@ -3,7 +3,7 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=83af8811a28727a13f04132cc33b7f58"
-DEPENDS = "virtual/libx11 libxext dri2proto"
+DEPENDS = "virtual/libx11 libxext xorgproto"
PV = "1.1.1+git${SRCPV}"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb
deleted file mode 100644
index f40dec8..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-
-DESCRIPTION = "A collection of utilities used to tweak and query the runtime configuration\
-of the X server."
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=13f70acf3c27f5f834bbc954df775f8e"
-
-BBCLASSEXTEND = "native"
-
-DEPENDS += "libice"
-
-SRC_URI[md5sum] = "25dab02f8e40d5b71ce29a07dc901b8c"
-SRC_URI[sha256sum] = "1216af2dee99b318fcf8bf9a259915273bcb37a7f1e7859af4f15d0ebf6f3f0a"
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.8.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.8.bb
new file mode 100644
index 0000000..62296b5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.8.bb
@@ -0,0 +1,16 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+
+DESCRIPTION = "A collection of utilities used to tweak and query the runtime configuration\
+of the X server."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=13f70acf3c27f5f834bbc954df775f8e"
+
+BBCLASSEXTEND = "native"
+
+DEPENDS += "libice"
+
+SRC_URI[md5sum] = "3b9b79fa0f9928161f4bad94273de7ae"
+SRC_URI[sha256sum] = "e6ee213a217265cc76050e4293ea70b98c32dce6505c6421227efbda62ab60c6"
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
index a6fc9e7..b42c1b9 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
@@ -5,7 +5,7 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=208668fa9004709ba22c2b748140956c"
-DEPENDS += "libxkbfile"
+DEPENDS += "libxkbfile bison-native"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb
deleted file mode 100644
index 85957e0..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-SUMMARY = "X server resource database utility"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1167c4f586bd41f0c62166db4384a69"
-
-DEPENDS += "libxmu"
-
-SRC_URI[md5sum] = "b54c7e3e53b4f332d41ed435433fbda0"
-SRC_URI[sha256sum] = "73827b6bbfc9d27ca287d95a1224c306d7053cd7b8156641698d7dc541ca565b"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.1.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.1.bb
new file mode 100644
index 0000000..e50c082
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.1.bb
@@ -0,0 +1,9 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "X server resource database utility"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d1167c4f586bd41f0c62166db4384a69"
+
+DEPENDS += "libxmu"
+
+SRC_URI[md5sum] = "96f9423eab4d0641c70848d665737d2e"
+SRC_URI[sha256sum] = "2d23ade7cdbb487996bf77cbb32cbe9bdb34d004748a53de7a4a97660d2217b7"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
index 16f9b78..c2feb81 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
@@ -1,6 +1,6 @@
require recipes-graphics/xorg-app/xorg-app-common.inc
SUMMARY = "xterm is the standard terminal emulator for the X Window System"
-DEPENDS = "libxaw xproto xextproto libxext libxau libxinerama libxpm ncurses"
+DEPENDS = "libxaw xorgproto libxext libxau libxinerama libxpm ncurses"
LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=f02ab9ebda87b770ecf711dbb3784a33"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb
new file mode 100644
index 0000000..b436ef1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb
@@ -0,0 +1,14 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+SUMMARY = "X.Org X server -- ARM SOC display driver"
+LICENSE = "MIT-X & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602"
+
+DEPENDS += "virtual/libx11 libdrm xorgproto"
+
+SRCREV = "8bbdb2ae3bb8ef649999a8da33ddbe11a04763b8"
+SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-armsoc"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS_${PN} += "xserver-xorg-module-exa"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb
new file mode 100644
index 0000000..969c1a0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb
@@ -0,0 +1,25 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
+
+SUMMARY = "X.Org X server -- ATI Radeon video driver"
+
+DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
+
+DEPENDS += "virtual/libx11 libxvmc drm \
+ virtual/libgl xorgproto libpciaccess"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
+
+SRC_URI[md5sum] = "40e7c0a5a69aba3d84e0958f58705ea7"
+SRC_URI[sha256sum] = "72ea3b8127d4550b64f797457f5a7851a541fa4ee2cc3f345b6c1886b81714a0"
+
+EXTRA_OECONF += "--disable-glamor"
+
+RDEPENDS_${PN} += "xserver-xorg-module-exa"
+RRECOMMENDS_${PN} += "linux-firmware-radeon"
+
+FILES_${PN} += "${datadir}/X11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb
deleted file mode 100644
index d409a18..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
-
-SUMMARY = "X.Org X server -- ATI Radeon video driver"
-
-DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
-
-DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
- virtual/libgl xineramaproto libpciaccess"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
-
-SRC_URI[md5sum] = "f34d04a755e761e03b459155fa3ddcbb"
-SRC_URI[sha256sum] = "401f5de772928f3dc4ce43a885adb0a47a2f61aa4a9e45d2ab3d184136a9d6fa"
-
-EXTRA_OECONF += "--disable-glamor"
-
-RDEPENDS_${PN} += "xserver-xorg-module-exa"
-RRECOMMENDS_${PN} += "linux-firmware-radeon"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb
index cd68059..182e18f 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb
@@ -16,6 +16,6 @@
SRC_URI[sha256sum] = "b663cd8e6364f7c4e2637b9fcab9861d0e3971518c73b00d213f6545a1289422"
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}"
-PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,drm xf86driproto,xserver-xorg-extension-dri"
+PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,drm xorgproto,xserver-xorg-extension-dri"
RDEPENDS_${PN} = "xserver-xorg-module-exa"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb
index 2746821..2b1b87c 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb
@@ -6,8 +6,8 @@
DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics"
-DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
- virtual/libgl xineramaproto libpciaccess"
+DEPENDS += "virtual/libx11 libxvmc drm xorgproto \
+ virtual/libgl libpciaccess"
RDEPENDS_${PN} += "xserver-xorg-module-exa"
inherit distro_features_check
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
index 7d26d14..3e5c31a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
@@ -3,7 +3,7 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=b0d5bdc98f7ebab3b6c3791d9bf40907"
SUMMARY = "XFIXES Extension"
-DEPENDS += " xextproto xproto zlib"
+DEPENDS += " xorgproto zlib"
PE = "1"
PR = "r11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb
index 8ba5ac3..cb1ffcd 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb
@@ -1,6 +1,6 @@
require recipes-graphics/xorg-lib/xorg-lib-common.inc
SUMMARY = "X Athena Widget Set"
-DEPENDS += "xproto virtual/libx11 libxext xextproto libxt libxmu libxpm libxau xmlto-native"
+DEPENDS += "xorgproto virtual/libx11 libxext libxt libxmu libxpm libxau xmlto-native"
LIC_FILES_CHKSUM = "file://COPYING;md5=1c65719d42900bb81b83e8293c20a364"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.0.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.0.bb
new file mode 100644
index 0000000..4fe9992
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.0.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-lib/xorg-lib-common.inc
+SUMMARY = "X Athena Widget Set"
+DEPENDS += "xorgproto libxfixes libxrandr"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0"
+
+SRC_URI = "http://xorg.freedesktop.org/archive/individual/lib/libXpresent-${PV}.tar.bz2"
+SRC_URI[md5sum] = "edd87ac15bb666081898dd7382fcbff5"
+SRC_URI[sha256sum] = "c11ae015141a9afbe10f4f2b8ee00b11adca6373dc1b9808d7c6c138b2da7b8a"
+
+XORG_PN = "libXpresent"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/fix-buildscripts.patch b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/fix-buildscripts.patch
new file mode 100644
index 0000000..3a50eff
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/fix-buildscripts.patch
@@ -0,0 +1,116 @@
+--- xscreensaver-5.39.orig/configure.in
++++ xscreensaver-5.39/configure.in
+@@ -14,6 +14,9 @@
+ #
+ ###############################################################################
+
++includedir=''
++libdir=''
++
+ AH_TOP([
+ /* config.h.in --- xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski.
+ *
+@@ -422,12 +425,12 @@
+
+ OBJCC="$CC"
+
+- AC_MSG_CHECKING([whether the compiler works on ANSI C])
+- AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+- AC_MSG_RESULT(yes),
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
+- AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
++# AC_MSG_CHECKING([whether the compiler works on ANSI C])
++# AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
++# AC_MSG_RESULT(yes),
++# AC_MSG_RESULT(no)
++# AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
++# AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
+
+ if test -n "$GCC"; then
+ AC_MSG_RESULT(Turning on gcc compiler warnings.)
+--- xscreensaver-5.39.orig/Makefile.in
++++ xscreensaver-5.39/Makefile.in
+@@ -6,7 +6,7 @@
+ VPATH = @srcdir@
+
+ SHELL = /bin/sh
+-SUBDIRS = utils jwxyz hacks/images hacks hacks/glx driver po
++SUBDIRS = utils jwxyz hacks/images hacks driver
+ SUBDIRS2 = $(SUBDIRS) OSX android
+ TARFILES = README README.hacking README.VMS INSTALL \
+ configure configure.in Makefile.in config.h.in \
+--- xscreensaver-5.39.orig/driver/Makefile.in
++++ xscreensaver-5.39/driver/Makefile.in
+@@ -10,7 +10,7 @@
+ top_srcdir = @top_srcdir@
+ top_builddir = ..
+
+-install_prefix =
++install_prefix = ${DESTDIR}
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+@@ -221,7 +221,7 @@
+ SCRIPTS_1 = xscreensaver-getimage-file xscreensaver-getimage-video \
+ xscreensaver-text
+ SCRIPTS_OSX = xscreensaver-getimage-desktop
+-SCRIPTS = $(SCRIPTS_1) @SCRIPTS_OSX@
++#SCRIPTS = $(SCRIPTS_1) @SCRIPTS_OSX@
+
+ HDRS = XScreenSaver_ad.h XScreenSaver_Xm_ad.h \
+ xscreensaver.h prefs.h remote.h exec.h \
+--- xscreensaver-5.39.orig/hacks/Makefile.in
++++ xscreensaver-5.39/hacks/Makefile.in
+@@ -10,7 +10,7 @@
+ top_srcdir = @top_srcdir@
+ top_builddir = ..
+
+-install_prefix =
++install_prefix = ${DESTDIR}
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+@@ -122,7 +122,7 @@
+ asm6502.c abstractile.c lcdscrub.c hexadrop.c \
+ tessellimage.c delaunay.c recanim.c binaryring.c \
+ webcollage-cocoa.m webcollage-helper-cocoa.m testx11.c
+-SCRIPTS = vidwhacker webcollage ljlatest
++#SCRIPTS = vidwhacker webcollage ljlatest
+
+ # Programs that are mentioned in XScreenSaver.ad, and that have XML files,
+ # but that are not shipped with xscreensaver itself.
+@@ -163,7 +163,13 @@
+ lcdscrub.o hexadrop.o tessellimage.o delaunay.o recanim.o \
+ binaryring.o testx11.o
+
+-EXES = attraction blitspin bouboule braid decayscreen deco \
++EXES = fontglide
++JPEG_EXES = webcollage-helper
++
++RETIRED_EXES = ant bubbles critical flag forest hyperball hypercube laser \
++ lightning lisa lissie lmorph rotor sphere spiral t3d vines \
++ whirlygig worm xsublim juggle testx11 \
++ attraction blitspin bouboule braid decayscreen deco \
+ drift flame galaxy grav greynetic halo \
+ helix hopalong ifs imsmap julia kaleidescope \
+ maze moire noseguy pedal \
+@@ -179,17 +185,12 @@
+ speedmine vermiculate twang apollonian euler2d \
+ polyominoes thornbird fluidballs anemone halftone \
+ metaballs eruption popsquares barcode piecewise cloudlife \
+- fontglide apple2 xanalogtv pong wormhole \
++ apple2 xanalogtv pong wormhole \
+ pacman fuzzyflakes anemotaxis memscroller substrate \
+ intermomentary fireworkx fiberlamp boxfit interaggregate \
+ celtic cwaves m6502 abstractile lcdscrub hexadrop \
+ tessellimage binaryring \
+ @JPEG_EXES@
+-JPEG_EXES = webcollage-helper
+-
+-RETIRED_EXES = ant bubbles critical flag forest hyperball hypercube laser \
+- lightning lisa lissie lmorph rotor sphere spiral t3d vines \
+- whirlygig worm xsublim juggle testx11
+
+ HACK_OBJS_1 = fps.o $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
+ $(UTILS_BIN)/usleep.o $(UTILS_BIN)/yarandom.o \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/tweak-app-defaults.patch b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/tweak-app-defaults.patch
new file mode 100644
index 0000000..099a0b2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/tweak-app-defaults.patch
@@ -0,0 +1,273 @@
+--- xscreensaver-5.39.orig/driver/XScreenSaver.ad.in
++++ xscreensaver-5.39/driver/XScreenSaver.ad.in
+@@ -29,7 +29,7 @@
+ ! /* (xrdb prevention kludge: whole file)
+
+ *mode: random
+-*timeout: 0:10:00
++*timeout: 0:15:00
+ *cycle: 0:10:00
+ *lockTimeout: 0:00:00
+ *passwdTimeout: 0:00:30
+@@ -38,7 +38,7 @@
+ *dpmsStandby: 2:00:00
+ *dpmsSuspend: 2:00:00
+ *dpmsOff: 4:00:00
+-*grabDesktopImages: True
++*grabDesktopImages: False
+ *grabVideoFrames: False
+ *chooseRandomImages: @DEFAULT_IMAGES_P@
+ ! This can be a local directory name, or the URL of an RSS or Atom feed.
+@@ -48,11 +48,11 @@
+ *lock: False
+ *verbose: False
+ *timestamp: True
+-*fade: True
++*fade: False
+ *unfade: False
+ *fadeSeconds: 0:00:03
+ *fadeTicks: 20
+-*splash: True
++*splash: False
+ *splashDuration: 0:00:05
+ *visualID: default
+ *captureStderr: True
+@@ -158,236 +158,8 @@
+ ! screen savers interactively.
+ !
+ *programs: \
+- maze -root \n\
+-@GL_KLUDGE@ GL: superquadrics -root \n\
+- attraction -root \n\
+- blitspin -root \n\
+- greynetic -root \n\
+- helix -root \n\
+- hopalong -root \n\
+- imsmap -root \n\
+-- noseguy -root \n\
+-- pyro -root \n\
+- qix -root \n\
+-- rocks -root \n\
+- rorschach -root \n\
+- decayscreen -root \n\
+- flame -root \n\
+- halo -root \n\
+- slidescreen -root \n\
+- pedal -root \n\
+- bouboule -root \n\
+-- braid -root \n\
+- coral -root \n\
+- deco -root \n\
+- drift -root \n\
+-- fadeplot -root \n\
+- galaxy -root \n\
+- goop -root \n\
+- grav -root \n\
+- ifs -root \n\
+-@GL_KLUDGE@ GL: jigsaw -root \n\
+- julia -root \n\
+-- kaleidescope -root \n\
+-@GL_KLUDGE@ GL: moebius -root \n\
+- moire -root \n\
+-@GL_KLUDGE@ GL: morph3d -root \n\
+- mountain -root \n\
+- munch -root \n\
+- penrose -root \n\
+-@GL_KLUDGE@ GL: pipes -root \n\
+- rd-bomb -root \n\
+-@GL_KLUDGE@ GL: rubik -root \n\
+-- sierpinski -root \n\
+- slip -root \n\
+-@GL_KLUDGE@ GL: sproingies -root \n\
+- starfish -root \n\
+- strange -root \n\
+- swirl -root \n\
+- triangle -root \n\
+- xjack -root \n\
+- xlyap -root \n\
+-@GL_KLUDGE@ GL: atlantis -root \n\
+- bsod -root \n\
+-@GL_KLUDGE@ GL: bubble3d -root \n\
+-@GL_KLUDGE@ GL: cage -root \n\
+-- crystal -root \n\
+- cynosure -root \n\
+- discrete -root \n\
+- distort -root \n\
+- epicycle -root \n\
+- flow -root \n\
+-@GL_KLUDGE@ GL: glplanet -root \n\
+- interference -root \n\
+- kumppa -root \n\
+-@GL_KLUDGE@ GL: lament -root \n\
+- moire2 -root \n\
+-@GL_KLUDGE@ GL: sonar -root \n\
+-@GL_KLUDGE@ GL: stairs -root \n\
+- truchet -root \n\
+-- vidwhacker -root \n\
+- blaster -root \n\
+- bumps -root \n\
+- ccurve -root \n\
+- compass -root \n\
+- deluxe -root \n\
+-- demon -root \n\
+-@GLE_KLUDGE@ GL: extrusion -root \n\
+-- loop -root \n\
+- penetrate -root \n\
+- petri -root \n\
+- phosphor -root \n\
+-@GL_KLUDGE@ GL: pulsar -root \n\
+- ripples -root \n\
+- shadebobs -root \n\
+-@GL_KLUDGE@ GL: sierpinski3d -root \n\
+- spotlight -root \n\
+- squiral -root \n\
+- wander -root \n\
+-- webcollage -root \n\
+- xflame -root \n\
+- xmatrix -root \n\
+-@GL_KLUDGE@ GL: gflux -root \n\
+-- nerverot -root \n\
+- xrayswarm -root \n\
+- xspirograph -root \n\
+-@GL_KLUDGE@ GL: circuit -root \n\
+-@GL_KLUDGE@ GL: dangerball -root \n\
+-- GL: dnalogo -root \n\
+-@GL_KLUDGE@ GL: engine -root \n\
+-@GL_KLUDGE@ GL: flipscreen3d -root \n\
+-@GL_KLUDGE@ GL: gltext -root \n\
+-@GL_KLUDGE@ GL: menger -root \n\
+-@GL_KLUDGE@ GL: molecule -root \n\
+- rotzoomer -root \n\
+- speedmine -root \n\
+-@GL_KLUDGE@ GL: starwars -root \n\
+-@GL_KLUDGE@ GL: stonerview -root \n\
+- vermiculate -root \n\
+- whirlwindwarp -root \n\
+- zoom -root \n\
+- anemone -root \n\
+- apollonian -root \n\
+-@GL_KLUDGE@ GL: boxed -root \n\
+-@GL_KLUDGE@ GL: cubenetic -root \n\
+-@GL_KLUDGE@ GL: endgame -root \n\
+- euler2d -root \n\
+- fluidballs -root \n\
+-@GL_KLUDGE@ GL: flurry -root \n\
+-- GL: glblur -root \n\
+-@GL_KLUDGE@ GL: glsnake -root \n\
+- halftone -root \n\
+-@GL_KLUDGE@ GL: juggler3d -root \n\
+-@GL_KLUDGE@ GL: lavalite -root \n\
+-- polyominoes -root \n\
+-@GL_KLUDGE@ GL: queens -root \n\
+-- GL: sballs -root \n\
+-@GL_KLUDGE@ GL: spheremonics -root \n\
+-- thornbird -root \n\
+- twang -root \n\
+-- GL: antspotlight -root \n\
+- apple2 -root \n\
+-@GL_KLUDGE@ GL: atunnel -root \n\
+- barcode -root \n\
+-@GL_KLUDGE@ GL: blinkbox -root \n\
+-@GL_KLUDGE@ GL: blocktube -root \n\
+-@GL_KLUDGE@ GL: bouncingcow -root \n\
+- cloudlife -root \n\
+-@GL_KLUDGE@ GL: cubestorm -root \n\
+- eruption -root \n\
+-@GL_KLUDGE@ GL: flipflop -root \n\
+-@GL_KLUDGE@ GL: flyingtoasters -root \n\
+- fontglide -root \n\
+-@GL_KLUDGE@ GL: gleidescope -root \n\
+-@GL_KLUDGE@ GL: glknots -root \n\
+-@GL_KLUDGE@ GL: glmatrix -root \n\
+-- GL: glslideshow -root \n\
+-@GL_KLUDGE@ GL: hypertorus -root \n\
+-- GL: jigglypuff -root \n\
+- metaballs -root \n\
+-@GL_KLUDGE@ GL: mirrorblob -root \n\
+- piecewise -root \n\
+-@GL_KLUDGE@ GL: polytopes -root \n\
+- pong -root \n\
+- popsquares -root \n\
+-@GL_KLUDGE@ GL: surfaces -root \n\
+- xanalogtv -root \n\
+- abstractile -root \n\
+- anemotaxis -root \n\
+-- GL: antinspect -root \n\
+- fireworkx -root \n\
+- fuzzyflakes -root \n\
+- interaggregate -root \n\
+- intermomentary -root \n\
+- memscroller -root \n\
+-@GL_KLUDGE@ GL: noof -root \n\
+- pacman -root \n\
+-@GL_KLUDGE@ GL: pinion -root \n\
+-@GL_KLUDGE@ GL: polyhedra -root \n\
+-- GL: providence -root \n\
+- substrate -root \n\
+- wormhole -root \n\
+-- GL: antmaze -root \n\
+-@GL_KLUDGE@ GL: boing -root \n\
+- boxfit -root \n\
+-@GL_KLUDGE@ GL: carousel -root \n\
+- celtic -root \n\
+-@GL_KLUDGE@ GL: crackberg -root \n\
+-@GL_KLUDGE@ GL: cube21 -root \n\
+- fiberlamp -root \n\
+-@GL_KLUDGE@ GL: fliptext -root \n\
+-@GL_KLUDGE@ GL: glhanoi -root \n\
+-@GL_KLUDGE@ GL: tangram -root \n\
+-@GL_KLUDGE@ GL: timetunnel -root \n\
+-@GL_KLUDGE@ GL: glschool -root \n\
+-@GL_KLUDGE@ GL: topblock -root \n\
+-@GL_KLUDGE@ GL: cubicgrid -root \n\
+- cwaves -root \n\
+-@GL_KLUDGE@ GL: gears -root \n\
+-@GL_KLUDGE@ GL: glcells -root \n\
+-@GL_KLUDGE@ GL: lockward -root \n\
+- m6502 -root \n\
+-@GL_KLUDGE@ GL: moebiusgears -root \n\
+-@GL_KLUDGE@ GL: voronoi -root \n\
+-@GL_KLUDGE@ GL: hypnowheel -root \n\
+-@GL_KLUDGE@ GL: klein -root \n\
+-- lcdscrub -root \n\
+-@GL_KLUDGE@ GL: photopile -root \n\
+-@GL_KLUDGE@ GL: skytentacles -root \n\
+-@GL_KLUDGE@ GL: rubikblocks -root \n\
+-@GL_KLUDGE@ GL: companioncube -root \n\
+-@GL_KLUDGE@ GL: hilbert -root \n\
+-@GL_KLUDGE@ GL: tronbit -root \n\
+-@GL_KLUDGE@ GL: geodesic -root \n\
+- hexadrop -root \n\
+-@GL_KLUDGE@ GL: kaleidocycle -root \n\
+-@GL_KLUDGE@ GL: quasicrystal -root \n\
+-@GL_KLUDGE@ GL: unknownpleasures -root \n\
+- binaryring -root \n\
+-@GL_KLUDGE@ GL: cityflow -root \n\
+-@GL_KLUDGE@ GL: geodesicgears -root \n\
+-@GL_KLUDGE@ GL: projectiveplane -root \n\
+-@GL_KLUDGE@ GL: romanboy -root \n\
+- tessellimage -root \n\
+-@GL_KLUDGE@ GL: winduprobot -root \n\
+-@GL_KLUDGE@ GL: splitflap -root \n\
+-@GL_KLUDGE@ GL: cubestack -root \n\
+-@GL_KLUDGE@ GL: cubetwist -root \n\
+-@GL_KLUDGE@ GL: discoball -root \n\
+-@GL_KLUDGE@ GL: dymaxionmap -root \n\
+-@GL_KLUDGE@ GL: energystream -root \n\
+-@GL_KLUDGE@ GL: hexstrut -root \n\
+-@GL_KLUDGE@ GL: hydrostat -root \n\
+-@GL_KLUDGE@ GL: raverhoop -root \n\
+-@GL_KLUDGE@ GL: splodesic -root \n\
+-@GL_KLUDGE@ GL: unicrud -root \n\
+-@GL_KLUDGE@ GL: esper -root \n\
+-@GL_KLUDGE@ GL: vigilance -root \n\
+-@GL_KLUDGE@ GL: crumbler -root \n\
+-@GL_KLUDGE@ GL: maze3d -root \n\
+-@GL_KLUDGE@ GL: peepers -root \n\
+-@GL_KLUDGE@ GL: razzledazzle -root \n
+-
++- fontglide -root -program "date +'%F %H:%M %z'" \n\
++ gifview --window $XSCREENSAVER_WINDOW /usr/share/logo/bosch-black.gif \n
+
+
+ !=============================================================================
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service
new file mode 100755
index 0000000..17dfe75
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Xscreensaver service
+PartOf=xserver-nodm.service
+After=xserver-nodm.service
+
+[Service]
+ExecStart=/usr/bin/xscreensaver
+Environment="DISPLAY=:0"
+User=xuser
+Restart=always
+RestartSec=1
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb
new file mode 100644
index 0000000..6ebf3c7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb
@@ -0,0 +1,29 @@
+SUMMARY = "X screen saver and locker"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://driver/xscreensaver.h;endline=10;md5=e141ab5822fb2d43694e1e47b59fc0df"
+
+SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "a5da62b91271f4e8afcc73d44697364b"
+SRC_URI[sha256sum] = "48ce1880f18b5321182be0c033aeceb5ec5628a1505b9d1ff69dbf06093c2426"
+
+SRC_URI += " \
+ file://xscreensaver.service \
+ file://fix-buildscripts.patch \
+ file://tweak-app-defaults.patch \
+"
+
+DEPENDS = "intltool-native libx11 libxext libxt libxft glib-2.0-native bc-native"
+# These are only needed as part of the stopgap screensaver implementation:
+RDEPENDS_${PN} += "xserver-nodm-init liberation-fonts"
+
+inherit systemd perlnative pkgconfig gettext autotools-brokensep distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append() {
+ install -D ${WORKDIR}/xscreensaver.service ${D}${systemd_unitdir}/system/xscreensaver.service
+}
+
+FILES_${PN} += "${datadir}/X11/app-defaults/XScreenSaver"
+SYSTEMD_SERVICE_${PN} = "xscreensaver.service"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh b/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
deleted file mode 100644
index fa43617..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-. /etc/formfactor/config
-
-if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
- n=1
- while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ] && [ $n -le 5 ]
- do
- /usr/bin/xtscal
- sleep 1
- n=$(($n+1))
- done
-fi
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch b/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch
deleted file mode 100644
index 1da7717..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Pending
-
---- tmp/main.c.orig 2007-01-02 15:39:54.000000000 +0000
-+++ tmp/main.c 2007-01-02 15:39:54.000000000 +0000
-@@ -131,9 +131,10 @@
- {
- XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2);
-
-- XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
-- (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
-- WIDTH + 1, WIDTH + 1, 0, 360 * 64);
-+ XFillRectangle (dpy, crosshair_w, crosshair_gc,
-+ (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
-+ (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
-+ WIDTH, WIDTH);
- }
-
- void
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch b/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch
deleted file mode 100644
index f7b0854..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch
+++ /dev/null
@@ -1,621 +0,0 @@
----
- Makefile.am | 9 --
- configure.ac | 3
- gpe-dist.am | 12 ---
- h3600_ts.h | 216 -----------------------------------------------------------
- main.c | 210 ++-------------------------------------------------------
- xtscal.in | 19 -----
- 6 files changed, 14 insertions(+), 455 deletions(-)
-
-Upstream-Status: Pending
-
-Index: xtscal-0.6.3/xtscal.in
-===================================================================
---- xtscal-0.6.3.orig/xtscal.in 2004-09-10 20:10:36.000000000 +0100
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,19 +0,0 @@
--#!/bin/sh
--
--module_id() {
-- # Get model name
-- echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z`
--}
--
--case `module_id` in
-- "HP IPAQ H3100" | "HP IPAQ H3800" )
-- ARGS="-rotate 90" ;;
-- "HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE)
-- ARGS="-rotate 270" ;;
-- # H2200: works without rotation
--esac
--
--# the things we do for autoconf
--prefix=@prefix@
--exec_prefix=@exec_prefix@
--exec @libexecdir@/xtscal.bin $ARGS $*
-Index: xtscal-0.6.3/main.c
-===================================================================
---- xtscal-0.6.3.orig/main.c 2007-07-01 01:12:52.000000000 +0100
-+++ xtscal-0.6.3/main.c 2007-07-01 01:12:55.000000000 +0100
-@@ -22,12 +22,10 @@
- #include <X11/Xlib.h>
-
- #include <X11/extensions/Xrender.h>
--#include <X11/extensions/Xrandr.h>
- #include <X11/Xft/Xft.h>
- #include <X11/extensions/xcalibrate.h>
- #include <X11/keysym.h>
-
--#include "h3600_ts.h"
- #include "calibrate.h"
-
- Display *dpy;
-@@ -45,15 +43,11 @@ XftColor xftcol;
- XftDraw *xftdraw;
- XftFont *xftfont;
- int screen_x, screen_y;
--int ts_fd;
- int samples;
- Pixmap bg_pixmap;
- int flag_debug;
--int rotation = 0;
- int error_base, event_base;
-
--int using_xcalibrate;
--
- int moving;
-
- #define CROSSHAIR_SIZE 25
-@@ -63,7 +57,6 @@ int moving;
- #define ENOUGH 5
- #define MAX_SAMPLES 40
-
--#define RAW_DEVICE "/dev/h3600_tsraw"
- #define FONTNAME "sans-10"
-
- struct point
-@@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b)
- void
- set_calibration (calibration *cal)
- {
-- TS_CAL tc;
-- int xtrans, ytrans, xscale, yscale, xyscale, yxscale;
- calibration ocal = *cal;
-
-- if (using_xcalibrate)
-- {
- FILE *fp;
- if (flag_debug)
- printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
-@@ -304,29 +293,6 @@ set_calibration (calibration *cal)
- }
- fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
- fclose (fp);
-- return;
-- }
--
-- xtrans = cal->a[0] / cal->a[6];
-- ytrans = cal->a[3] / cal->a[6];
-- xscale = cal->a[1] * 256 / cal->a[6];
-- yscale = cal->a[5] * 256 / cal->a[6];
-- xyscale = cal->a[2] * 256 / cal->a[6];
-- yxscale = cal->a[4] * 256 / cal->a[6];
--
-- tc.xtrans = xtrans;
-- tc.ytrans = ytrans;
-- tc.xscale = xscale;
-- tc.yscale = yscale;
-- tc.xyswap = 0;
--
-- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
--
-- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
-- {
-- perror ("TS_SET_CAL");
-- exit (1);
-- }
- }
-
- void
-@@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press
- }
-
- void
--read_ts (void)
--{
-- TS_EVENT ts_ev;
-- int r;
--
-- r = read (ts_fd, &ts_ev, sizeof (ts_ev));
-- if (r == sizeof (ts_ev))
-- handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure);
--}
--
--void
--do_cal (char **args)
--{
-- TS_CAL tc;
--
-- tc.xscale = atoi (args[0]);
-- tc.xtrans = atoi (args[1]);
-- tc.yscale = atoi (args[2]);
-- tc.ytrans = atoi (args[3]);
-- tc.xyswap = atoi (args[4]);
--
-- if (flag_debug)
-- fprintf (stderr, "setting: %d %d %d %d %d\n",
-- tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap);
--
-- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
-- {
-- perror ("TS_SET_CAL");
-- exit (1);
-- }
--
-- exit (0);
--}
--
--void
--show_cal (void)
--{
-- TS_CAL tc;
--
-- if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0)
-- {
-- perror ("TS_GET_CAL");
-- exit (1);
-- }
--
-- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
--}
--
--void
- usage (const char *name)
- {
-- fprintf (stderr, "usage: %s -view\n", name);
-- fprintf (stderr, " %s [-rotate <0 | 90 | 180 | 270>]\n", name);
-- fprintf (stderr, " %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name);
--
-+ fprintf (stderr, "usage: %s [-debug]\n", name);
- exit (1);
- }
-
- int
--xrr_supported (void)
--{
-- int xrr_event_base, xrr_error_base;
-- int xrr_major, xrr_minor;
--
-- if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False
-- || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0
-- || xrr_major != 1
-- || xrr_minor < 1)
-- return 0;
--
-- return 1;
--}
--
--int
- main (int argc, char *argv[])
- {
- XSetWindowAttributes attributes;
-@@ -480,31 +379,11 @@ main (int argc, char *argv[])
- int max_fd;
- GC bg_gc;
- int i;
-- int have_xrandr;
-
- for (i = 1; i < argc; i++)
- {
-- if (!strcmp (argv[i], "-view"))
-- {
-- show_cal ();
-- exit (0);
-- }
-- else if (!strcmp (argv[i], "-debug"))
-+ if (!strcmp (argv[i], "-debug"))
- flag_debug = 1;
-- else if (!strcmp (argv[i], "-cal"))
-- {
-- if (argc > (i + 5))
-- do_cal (argv + i + 1);
-- else
-- usage (argv[0]);
-- }
-- else if (!strcmp (argv[i], "-rotate"))
-- {
-- if (argc > (i + 1))
-- rotation = atoi (argv[++i]);
-- else
-- usage (argv[0]);
-- }
- else
- usage (argv[0]);
- }
-@@ -531,48 +410,11 @@ main (int argc, char *argv[])
- fprintf (stderr, "failed to set raw mode: error %d\n", r);
- exit (1);
- }
--
-- using_xcalibrate = 1;
-- }
--
-- have_xrandr = xrr_supported ();
-- if (have_xrandr)
-- {
-- XRRScreenConfiguration *rr_screen;
-- Rotation current_rotation;
--
-- if (flag_debug)
-- fprintf (stderr, "XRANDR is supported\n");
--
-- rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen));
--
-- XRRRotations (dpy, screen, ¤t_rotation);
--
-- XRRFreeScreenConfigInfo (rr_screen);
--
-- if (flag_debug)
-- fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation);
--
-- switch (current_rotation)
-- {
-- case RR_Rotate_270:
-- rotation += 90;
-- case RR_Rotate_180:
-- rotation += 90;
-- case RR_Rotate_90:
-- rotation += 90;
-- rotation %= 360;
-- case RR_Rotate_0:
-- break;
-- default:
-- fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation);
-- break;
-- }
- }
- else
- {
-- if (flag_debug)
-- fprintf (stderr, "XRANDR not supported\n");
-+ perror ("XCALIBRATE extension missing");
-+ exit (1);
- }
-
- attributes.override_redirect = flag_debug ? False : True;
-@@ -666,45 +508,17 @@ main (int argc, char *argv[])
-
- for (i = 0; i < NR_POINTS; i++)
- {
-- switch (rotation)
-- {
-- case 0:
-- cal.xfb[i] = cal.xscr[i];
-- cal.yfb[i] = cal.yscr[i];
-- break;
-- case 90:
-- cal.xfb[i] = cal.yscr[i];
-- cal.yfb[i] = screen_x - cal.xscr[i];
-- break;
-- case 180:
-- cal.xfb[i] = screen_x - cal.xscr[i];
-- cal.yfb[i] = screen_y - cal.yscr[i];
-- break;
-- case 270:
-- cal.xfb[i] = screen_y - cal.yscr[i];
-- cal.yfb[i] = cal.xscr[i];
-- break;
-- }
-+ cal.xfb[i] = cal.xscr[i];
-+ cal.yfb[i] = cal.yscr[i];
-+ XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]);
-
- if (flag_debug)
-- printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation,
-+ printf ("rotation conversion: (%d,%d) -> (%d,%d)\n",
- cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]);
- }
-
- next_event ();
-
-- if (!using_xcalibrate)
-- {
-- ts_fd = open (RAW_DEVICE, O_RDONLY);
-- if (ts_fd < 0)
-- {
-- perror (RAW_DEVICE);
-- exit (1);
-- }
-- }
--
-- max_fd = (xfd > ts_fd) ? xfd : ts_fd;
--
- for (;;)
- {
- fd_set fds;
-@@ -713,12 +527,8 @@ main (int argc, char *argv[])
-
- FD_ZERO (&fds);
- FD_SET (xfd, &fds);
-- if (ts_fd != -1)
-- FD_SET (ts_fd, &fds);
-
-- select (max_fd + 1, &fds, NULL, NULL, NULL);
--
-- if (ts_fd != -1 && FD_ISSET (ts_fd, &fds))
-- read_ts ();
-+ select (xfd + 1, &fds, NULL, NULL, NULL);
- }
- }
-+
-Index: xtscal-0.6.3/configure.ac
-===================================================================
---- xtscal-0.6.3.orig/configure.ac 2004-09-10 20:11:12.000000000 +0100
-+++ xtscal-0.6.3/configure.ac 2007-07-01 01:12:55.000000000 +0100
-@@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
- # Checks for programs.
- AC_PROG_CC
-
--PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate)
-+PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
-
- AC_CONFIG_FILES([Makefile])
--AC_CONFIG_FILES([xtscal])
- AC_OUTPUT
-Index: xtscal-0.6.3/gpe-dist.am
-===================================================================
---- xtscal-0.6.3.orig/gpe-dist.am 2004-06-02 23:07:13.000000000 +0100
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,12 +0,0 @@
--CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
--
--dist-upload: dist
-- scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/
--
--tag:
-- cvs tag $(CVSTAG)
--
--retag:
-- cvs tag -F $(CVSTAG)
--
--source: tag dist-upload
-Index: xtscal-0.6.3/h3600_ts.h
-===================================================================
---- xtscal-0.6.3.orig/h3600_ts.h 2003-07-05 17:27:10.000000000 +0100
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,216 +0,0 @@
--/*
--*
--* Driver for the H3600 Touch Screen and other Atmel controlled devices.
--*
--* Copyright 2000 Compaq Computer Corporation.
--*
--* Use consistent with the GNU GPL is permitted,
--* provided that this copyright notice is
--* preserved in its entirety in all copies and derived works.
--*
--* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
--* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
--* FITNESS FOR ANY PARTICULAR PURPOSE.
--*
--* Author: Charles Flynn.
--*
--*/
--
--
--#ifndef __H3600_TS_H__
--#define __H3600_TS_H__
--
--#include <linux/ioctl.h>
--
--enum h3600_ts_minor_devices {
-- TS_MINOR = 0,
-- TSRAW_MINOR = 1,
-- KEY_MINOR = 2
--};
--
--typedef struct h3600_ts_calibration {
-- int xscale;
-- int xtrans;
-- int yscale;
-- int ytrans;
-- int xyswap;
--} TS_CAL;
--
--typedef struct h3600_ts_event {
-- unsigned short pressure;
-- unsigned short x;
-- unsigned short y;
-- unsigned short pad;
--} TS_EVENT;
--
--/* Deprecated - do not use */
--typedef struct h3600_ts_return {
-- unsigned short pressure;
-- unsigned short x;
-- unsigned short y;
-- unsigned short pad;
--} TS_RET;
--
--enum power_button_mode {
-- PBM_SUSPEND = 0,
-- PBM_GENERATE_KEYPRESS = 1
--};
--
--
--/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */
--
--typedef struct therm_dev {
-- short data;
--} THERM_DEV;
--
--#define H3600_BATT_CHEM_ALKALINE 0x01
--#define H3600_BATT_CHEM_NICD 0x02
--#define H3600_BATT_CHEM_NIMH 0x03
--#define H3600_BATT_CHEM_LION 0x04
--#define H3600_BATT_CHEM_LIPOLY 0x05
--#define H3600_BATT_CHEM_NOT_INSTALLED 0x06
--#define H3600_BATT_CHEM_UNKNOWN 0xff
--
--/* These should match the apm_bios.h definitions */
--#define H3600_AC_STATUS_AC_OFFLINE 0x00
--#define H3600_AC_STATUS_AC_ONLINE 0x01
--#define H3600_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */
--#define H3600_AC_STATUS_AC_UNKNOWN 0xff
--
--/* These bitfields are rarely "or'd" together */
--#define H3600_BATT_STATUS_HIGH 0x01
--#define H3600_BATT_STATUS_LOW 0x02
--#define H3600_BATT_STATUS_CRITICAL 0x04
--#define H3600_BATT_STATUS_CHARGING 0x08
--#define H3600_BATT_STATUS_CHARGE_MAIN 0x10
--#define H3600_BATT_STATUS_DEAD 0x20 /* Battery will not charge */
--#define H3600_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */
--#define H3600_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */
--#define H3600_BATT_STATUS_NOBATT 0x80
--#define H3600_BATT_STATUS_UNKNOWN 0xff
--
--struct battery_data {
-- unsigned char chemistry;
-- unsigned char status;
-- unsigned short voltage; /* Voltage for battery #0; unknown for battery #1 */
-- unsigned short percentage; /* Percentage of full charge */
-- unsigned short life; /* Life remaining in minutes */
--};
--
--struct h3600_battery {
-- unsigned char ac_status;
-- unsigned char battery_count; /* How many batteries we have */
-- struct battery_data battery[2];
--};
--
--/* -------- EEPROM and SPI Interfaces ---------------*/
--
--#define EEPROM_RD_BUFSIZ 6 /* EEPROM reads are 16 bits */
--#define EEPROM_WR_BUFSIZ 5 /* Allow room for 8bit 'addr' field in buffer*/
--#define SPI_RD_BUFSIZ 16 /* SPI reads are 8 bits */
--#define SPI_WR_BUFSIZ 7
--
--/* The EEPROM is where internal programs are stored on the Amtel.
-- You probably don't want to read or write these values */
--
--typedef struct h3600_eeprom_read_request {
-- unsigned char addr; /* 8bit Address Offset 0-255 */
-- unsigned char len; /* Number of 16bit words to read 0-128 */
-- unsigned short buff[EEPROM_RD_BUFSIZ];
--} EEPROM_READ;
--
--typedef struct h3600_eeprom_write_request {
-- unsigned char len; /* used only to compute the number of bytes to send */
-- unsigned char addr; /* 0-128 */
-- unsigned short buff[EEPROM_WR_BUFSIZ];
--} EEPROM_WRITE;
--
--/* The SPI bus connects to EEPROMs located on sleeves plugged into
-- the iPAQ. You may want to read these values */
--
--typedef struct h3600_spi_read_request {
-- unsigned short addr; /* 16bit Address Offset 0-128 */
-- unsigned char len; /* Number of bytes to read */
-- unsigned char buff[SPI_RD_BUFSIZ];
--} SPI_READ;
--
--#define SPI_READ_STATUS_BYTE 0xffff /* Use this address to read the status byte */
--
--typedef struct h3600_spi_write_request {
-- unsigned short len; /* used only to compute the number of bytes to send */
-- unsigned short addr; /* this 16bit address accesses a single byte */
-- unsigned char buff[SPI_WR_BUFSIZ];
--} SPI_WRITE;
--
--
--/* -------- end of EEPROM and SPI Interfaces ---------------*/
--
--/* User space structures for IOCTL calls */
--
--typedef struct h3600_ts_version {
-- unsigned char host_version[8]; /* ascii "x.yy" */
-- unsigned char pack_version[8]; /* ascii "x.yy" */
-- unsigned char boot_type; /* TODO ?? */
--} VER_RET;
--
--typedef struct h3600_ts_led {
-- unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */
-- unsigned char TotalTime; /* Units of 5 seconds */
-- unsigned char OnTime; /* units of 100m/s */
-- unsigned char OffTime; /* units of 100m/s */
--} LED_IN;
--
--enum flite_mode {
-- FLITE_MODE1 = 1,
-- FLITE_AUTO_MODE = 1, /* for reference only */
-- FLITE_MANUAL_MODE = 2, /* Use this normally? */
-- FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */
--};
--enum flite_pwr {
-- FLITE_PWR_OFF = 0,
-- FLITE_PWR_ON = 1
--};
--
--typedef struct h3600_ts_flite {
-- unsigned char mode;
-- unsigned char pwr;
-- unsigned char brightness;
--} FLITE_IN;
--
--/*************************** Updated "universal" structures *******************/
--
--/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */
--struct h3600_ts_backlight {
-- enum flite_pwr power; /* 0 = off, 1 = on */
-- unsigned char brightness; /* 0 - 255 */
--};
--
--struct h3600_ts_contrast { /* Only useful on H3100 model */
-- unsigned char contrast; /* 0 - 255 */
--};
--
--/* IOCTL cmds user or kernel space */
--
--/* Use 'f' as magic number */
--#define IOC_H3600_TS_MAGIC 'f'
--
--/* TODO: Some of these IOWR values are just plain wrong */
--#define GET_VERSION _IOR(IOC_H3600_TS_MAGIC, 1, struct h3600_ts_version )
--#define READ_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request)
--#define WRITE_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request)
--#define GET_THERMAL _IOR(IOC_H3600_TS_MAGIC, 4, struct therm_dev)
--#define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led)
--#define GET_BATTERY_STATUS _IOR(IOC_H3600_TS_MAGIC, 6, struct h3600_battery)
--#define FLITE_ON _IOW(IOC_H3600_TS_MAGIC, 7, struct h3600_ts_flite)
--#define READ_SPI _IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request)
--#define WRITE_SPI _IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request)
--#define TS_GET_CAL _IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration)
--#define TS_SET_CAL _IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration)
--
--/* New IOCTL interfaces - defined to be more user friendly */
--#define TS_GET_BACKLIGHT _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
--#define TS_SET_BACKLIGHT _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
--#define TS_GET_CONTRAST _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
--#define TS_SET_CONTRAST _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
--
--#endif
-Index: xtscal-0.6.3/Makefile.am
-===================================================================
---- xtscal-0.6.3.orig/Makefile.am 2004-06-02 23:07:13.000000000 +0100
-+++ xtscal-0.6.3/Makefile.am 2007-07-02 12:51:02.000000000 +0100
-@@ -1,11 +1,8 @@
--libexec_PROGRAMS = xtscal.bin
--bin_SCRIPTS = xtscal
-+bin_PROGRAMS = xtscal
-
--xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h
-+xtscal_SOURCES = main.c calibrate.c calibrate.h
-
--xtscal_bin_LDADD = @XTSCAL_LIBS@
-+xtscal_LDADD = @XTSCAL_LIBS@
-
- INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5
-
--include gpe-dist.am
--
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch b/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
deleted file mode 100644
index 3e4533f..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-after gcc linking has changed, all the libraries must be explicitely specified
-This patch avoids this linking error:
-
-| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xtscal main.o calibrate.o -lX11 -lXft -lXext -lXcalibrate^M
-| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: ^?: invalid DSO for symbol `XRenderChangePicture' definition^M
-| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libXrender.so.1: could not read symbols: Bad value^M
-| collect2: ld returned 1 exit status^M
-| make: *** [xtscal] Error 1
-
-Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: 2011/01/11
-
-Upstream-Status: Pending
-
-Index: xtscal-0.6.3/configure.ac
-===================================================================
---- xtscal-0.6.3.orig/configure.ac
-+++ xtscal-0.6.3/configure.ac
-@@ -9,7 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
- # Checks for programs.
- AC_PROG_CC
-
--PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
-+PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate xrender)
-
- AC_CONFIG_FILES([Makefile])
- AC_OUTPUT
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb b/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb
deleted file mode 100644
index 4bfddf0..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Touchscreen calibration utility"
-
-DESCRIPTION = "Basic touchscreen calibration utility"
-
-HOMEPAGE = "http://gpe.linuxtogo.org"
-BUGTRACKER = "http://bugs.linuxtogo.org"
-LICENSE = "GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87"
-
-SECTION = "x11/base"
-
-DEPENDS = "virtual/libx11 libxft libxcalibrate"
-
-PR = "r13"
-
-SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \
- file://change-cross.patch \
- file://cleanup.patch \
- file://dso_linking_change_build_fix.patch \
- file://30xTs_Calibrate.sh"
-
-SRC_URI[md5sum] = "9bcab80b474d5454477d1ca166a68c34"
-SRC_URI[sha256sum] = "27b9dc2203de9b1706ca39fa6ca80ecab8807909ec901c4a345b8e41178800a1"
-
-inherit autotools pkgconfig distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/X11/Xsession.d/
- install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
-}
diff --git a/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb b/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb
new file mode 100644
index 0000000..fd0653a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Inspect and manipulate eBPF programs and maps"
+DESCRIPTION = "bpftool is a kernel tool for inspection and simple manipulation \
+of eBPF programs and maps."
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+DEPENDS = "binutils elfutils"
+PROVIDES = "virtual/bpftool"
+
+inherit bash-completion kernelsrc kernel-arch
+
+do_populate_lic[depends] += "virtual/kernel:do_patch"
+
+EXTRA_OEMAKE = "-C ${S}/tools/bpf/bpftool O=${B} CROSS=${TARGET_PREFIX} CC="${CC}" LD="${LD}" AR=${AR} ARCH=${ARCH}"
+
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+python do_package_prepend() {
+ d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0])
+}
+
+B = "${WORKDIR}/${BPN}-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_git.bb b/meta-openembedded/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_git.bb
new file mode 100644
index 0000000..8c474ec
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_git.bb
@@ -0,0 +1,76 @@
+# Copyright (C) 2018 Krzysztof Kozlowski <krzk@kernel.org>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Broadcom Bluetooth firmware files"
+DESCRIPTION = "Firmware for Broadcom Bluetooth devices. Note that in case of BT+WiFi devices, separate WiFi firmware might be needed."
+HOMEPAGE = "https://github.com/winterheart/broadcom-bt-firmware"
+
+LICENSE = "Firmware-Broadcom-WIDCOMM"
+NO_GENERIC_LICENSE[Firmware-Broadcom-WIDCOMM] = "LICENSE.broadcom_bcm20702"
+
+LIC_FILES_CHKSUM = "file://LICENSE.broadcom_bcm20702;md5=c0d5ea0502b00df74173d0f8a48b619d"
+SRC_URI = "git://github.com/winterheart/broadcom-bt-firmware.git"
+SRCREV = "c0bd928b8ae5754b6077c99afe6ef5c949a58f32"
+PE = "1"
+PV = "0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit allarch
+
+CLEANBROKEN = "1"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${nonarch_base_libdir}/firmware/brcm/
+ cp brcm/*.hcd ${D}${nonarch_base_libdir}/firmware/brcm/
+
+ # For license package:
+ install -m 0644 LICENSE.broadcom_bcm20702 ${D}${nonarch_base_libdir}/firmware/brcm/
+
+ # For main package:
+ install -m 0644 DEVICES.md ${D}${nonarch_base_libdir}/firmware/brcm/
+}
+
+PACKAGES =+ " \
+ ${PN}-bcm20702a1 \
+ ${PN}-bcm20702b0 \
+ ${PN}-bcm20703a1 \
+ ${PN}-bcm43142a0 \
+ ${PN}-bcm4335c0 \
+ ${PN}-bcm4350c5 \
+ ${PN}-bcm4356a2 \
+ ${PN}-bcm4371c2 \
+ ${PN}-license \
+"
+
+RDEPENDS_${PN}-bcm20702a1 = "${PN}-license"
+RDEPENDS_${PN}-bcm20702b0 = "${PN}-license"
+RDEPENDS_${PN}-bcm20703a1 = "${PN}-license"
+RDEPENDS_${PN}-bcm43142a0 = "${PN}-license"
+RDEPENDS_${PN}-bcm4335c0 = "${PN}-license"
+RDEPENDS_${PN}-bcm4350c5 = "${PN}-license"
+RDEPENDS_${PN}-bcm4356a2 = "${PN}-license"
+RDEPENDS_${PN}-bcm4371c2 = "${PN}-license"
+
+FILES_${PN}-bcm20702a1 = "${nonarch_base_libdir}/firmware/brcm/BCM20702A1*hcd"
+FILES_${PN}-bcm20702b0 = "${nonarch_base_libdir}/firmware/brcm/BCM20702B0*hcd"
+FILES_${PN}-bcm20703a1 = "${nonarch_base_libdir}/firmware/brcm/BCM20703A1*hcd"
+FILES_${PN}-bcm43142a0 = "${nonarch_base_libdir}/firmware/brcm/BCM43142A0*hcd"
+FILES_${PN}-bcm4335c0 = "${nonarch_base_libdir}/firmware/brcm/BCM4335C0*hcd"
+FILES_${PN}-bcm4350c5 = "${nonarch_base_libdir}/firmware/brcm/BCM4350C5*hcd"
+FILES_${PN}-bcm4356a2 = "${nonarch_base_libdir}/firmware/brcm/BCM4356A2*hcd"
+FILES_${PN}-bcm4371c2 = "${nonarch_base_libdir}/firmware/brcm/BCM4371C2*hcd"
+FILES_${PN}-license += "${nonarch_base_libdir}/firmware/brcm/LICENSE.broadcom_bcm20702"
+
+FILES_${PN} += "${nonarch_base_libdir}/firmware/brcm/*"
+RDEPENDS_${PN} += "${PN}-license"
+
+# Make broadcom-bt-firmware depend on all of the split-out packages.
+python populate_packages_prepend () {
+ firmware_pkgs = oe.utils.packages_filter_out_system(d)
+ d.appendVar('RDEPENDS_broadcom-bt-firmware', ' ' + ' '.join(firmware_pkgs))
+}
diff --git a/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb b/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb
index 4abd273..4544f5b 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb
@@ -2,7 +2,7 @@
DESCRIPTION = "cpupower is a collection of tools to examine and tune power \
saving related features of your processor."
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS = "pciutils gettext-native"
PROVIDES = "virtual/cpupower"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.0.bb b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.0.bb
deleted file mode 100644
index 9bea48e..0000000
--- a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.0.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles"
-DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\
-investigate either live systems, kernel core dumps created from the\
-netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\
-offered by Mission Critical Linux, or the LKCD kernel patch."
-
-HOMEPAGE = "http://people.redhat.com/anderson"
-SECTION = "devel"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "zlib readline coreutils-native"
-
-SRC_URI = "https://github.com/crash-utility/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
- http://ftp.gnu.org/gnu/gdb/gdb-7.6.tar.gz;name=gdb;subdir=${BP} \
- file://7001force_define_architecture.patch \
- file://7003cross_ranlib.patch \
- file://0001-cross_add_configure_option.patch \
- file://sim-ppc-drop-LIBS-from-psim-dependency.patch \
- file://sim-common-sim-arange-fix-extern-inline-handling.patch \
- file://donnot-extract-gdb-during-do-compile.patch \
- file://gdb_build_jobs_and_not_write_crash_target.patch \
- file://remove-unrecognized-gcc-option-m32-for-mips.patch \
- file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \
- file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \
- "
-SRC_URI[md5sum] = "48899de3118e04cfa40a2364f5618193"
-SRC_URI[sha256sum] = "5d076e1fefb41aa178ad3e1cef6511670efc47de5cb04d4af9bdd4e8f2f18cbc"
-
-SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
-SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
-
-inherit gettext
-
-BBCLASSEXTEND = "native cross"
-TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
-
-# crash 7.1.3 and before don't support mips64
-COMPATIBLE_HOST = "^(?!mips64).*"
-
-EXTRA_OEMAKE = 'RPMPKG="${PV}" \
- GDB_TARGET="${TARGET_SYS}" \
- GDB_HOST="${BUILD_SYS}" \
- GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
- LDFLAGS="${LDFLAGS}" \
- '
-
-EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \
- GDB_TARGET="${BUILD_SYS} \
- \${GDB_CONF_FLAGS} \
- --target=${TARGET_SYS}" \
- GDB_HOST="${BUILD_SYS}" \
- GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
- '
-
-EXTRA_OEMAKE_append_class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
-EXTRA_OEMAKE_append_class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
-
-REMOVE_M32 = "sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c"
-
-REMOVE_M32_class-cross = ""
-
-do_configure() {
- :
-}
-
-do_compile_prepend() {
- case ${TARGET_ARCH} in
- aarch64*) ARCH=ARM64 ;;
- arm*) ARCH=ARM ;;
- i*86*) ARCH=X86 ;;
- x86_64*) ARCH=X86_64 ;;
- powerpc64*) ARCH=PPC64 ;;
- powerpc*) ARCH=PPC ;;
- mips*) ARCH=MIPS ;;
- esac
-
- sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
- ${REMOVE_M32}
- sed -i 's/>/>/g' ${S}/Makefile
-}
-
-do_compile() {
- oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
-}
-
-do_install_prepend () {
- install -d ${D}${bindir}
- install -d ${D}/${mandir}/man8
- install -d ${D}${includedir}/crash
-
- install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
- install -m 0644 ${S}/defs.h ${D}${includedir}/crash
-}
-
-do_install_class-target () {
- oe_runmake DESTDIR=${D} install
-}
-
-do_install_class-native () {
- oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
-}
-
-do_install_class-cross () {
- install -m 0755 ${S}/crash ${D}/${bindir}
-}
-
-RDEPENDS_${PN} += "liblzma"
-RDEPENDS_${PN}_class-native = ""
-RDEPENDS_${PN}_class-cross = ""
-
-# Causes gcc to get stuck and eat all available memory in qemuarm builds
-# jenkins 15161 100 12.5 10389596 10321284 ? R 11:40 28:17 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/cc1 -quiet -I . -I . -I ./common -I ./config -I ./../include/opcode -I ./../opcodes/.. -I ./../readline/.. -I ../bfd -I ./../bfd -I ./../include -I ../libdecnumber -I ./../libdecnumber -I ./gnulib/import -I build-gnulib/import -isysroot /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -MMD eval.d -MF .deps/eval.Tpo -MP -MT eval.o -D LOCALEDIR="/usr/local/share/locale" -D CRASH_MERGE -D HAVE_CONFIG_H -D TUI=1 eval.c -quiet -dumpbase eval.c -march=armv5te -mthumb -mthumb-interwork -mtls-dialect=gnu -auxbase-strip eval.o -g -O2 -Wall -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -feliminate-unused-debug-types -o -
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.4.bb b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.4.bb
new file mode 100644
index 0000000..c72b1a3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.4.bb
@@ -0,0 +1,120 @@
+SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles"
+DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\
+investigate either live systems, kernel core dumps created from the\
+netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\
+offered by Mission Critical Linux, or the LKCD kernel patch."
+
+HOMEPAGE = "http://people.redhat.com/anderson"
+SECTION = "devel"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "zlib readline coreutils-native"
+
+SRC_URI = "https://github.com/crash-utility/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
+ http://ftp.gnu.org/gnu/gdb/gdb-7.6.tar.gz;name=gdb;subdir=${BP} \
+ file://7001force_define_architecture.patch \
+ file://7003cross_ranlib.patch \
+ file://0001-cross_add_configure_option.patch \
+ file://sim-ppc-drop-LIBS-from-psim-dependency.patch \
+ file://sim-common-sim-arange-fix-extern-inline-handling.patch \
+ file://donnot-extract-gdb-during-do-compile.patch \
+ file://gdb_build_jobs_and_not_write_crash_target.patch \
+ file://remove-unrecognized-gcc-option-m32-for-mips.patch \
+ file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \
+ file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \
+ "
+SRC_URI[md5sum] = "4f66eb0e9a82ff83de06ac2b37501f5c"
+SRC_URI[sha256sum] = "85ca2e93f1ee628ef2499ab9c78623f8b04500bdf7378c09de19283f6a7a698f"
+
+SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
+SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
+
+UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
+
+inherit gettext
+
+BBCLASSEXTEND = "native cross"
+TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
+
+# crash 7.1.3 and before don't support mips64
+COMPATIBLE_HOST = "^(?!mips64).*"
+
+EXTRA_OEMAKE = 'RPMPKG="${PV}" \
+ GDB_TARGET="${TARGET_SYS}" \
+ GDB_HOST="${BUILD_SYS}" \
+ GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
+ LDFLAGS="${LDFLAGS}" \
+ '
+
+EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \
+ GDB_TARGET="${BUILD_SYS} \
+ \${GDB_CONF_FLAGS} \
+ --target=${TARGET_SYS}" \
+ GDB_HOST="${BUILD_SYS}" \
+ GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
+ '
+
+EXTRA_OEMAKE_append_class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
+EXTRA_OEMAKE_append_class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
+
+REMOVE_M32 = "sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c"
+
+REMOVE_M32_class-cross = ""
+
+do_configure() {
+ :
+}
+
+do_compile_prepend() {
+ case ${TARGET_ARCH} in
+ aarch64*) ARCH=ARM64 ;;
+ arm*) ARCH=ARM ;;
+ i*86*) ARCH=X86 ;;
+ x86_64*) ARCH=X86_64 ;;
+ powerpc64*) ARCH=PPC64 ;;
+ powerpc*) ARCH=PPC ;;
+ mips*) ARCH=MIPS ;;
+ esac
+
+ sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
+ ${REMOVE_M32}
+ sed -i 's/>/>/g' ${S}/Makefile
+}
+
+do_compile() {
+ oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
+}
+
+do_install_prepend () {
+ install -d ${D}${bindir}
+ install -d ${D}/${mandir}/man8
+ install -d ${D}${includedir}/crash
+
+ install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
+ install -m 0644 ${S}/defs.h ${D}${includedir}/crash
+}
+
+do_install_class-target () {
+ oe_runmake DESTDIR=${D} install
+}
+
+do_install_class-native () {
+ oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
+}
+
+do_install_class-cross () {
+ install -m 0755 ${S}/crash ${D}/${bindir}
+}
+
+RDEPENDS_${PN} += "liblzma"
+RDEPENDS_${PN}_class-native = ""
+RDEPENDS_${PN}_class-cross = ""
+
+# Causes gcc to get stuck and eat all available memory in qemuarm builds
+# jenkins 15161 100 12.5 10389596 10321284 ? R 11:40 28:17 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/cc1 -quiet -I . -I . -I ./common -I ./config -I ./../include/opcode -I ./../opcodes/.. -I ./../readline/.. -I ../bfd -I ./../bfd -I ./../include -I ../libdecnumber -I ./../libdecnumber -I ./gnulib/import -I build-gnulib/import -isysroot /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -MMD eval.d -MF .deps/eval.Tpo -MP -MT eval.o -D LOCALEDIR="/usr/local/share/locale" -D CRASH_MERGE -D HAVE_CONFIG_H -D TUI=1 eval.c -quiet -dumpbase eval.c -march=armv5te -mthumb -mthumb-interwork -mtls-dialect=gnu -auxbase-strip eval.o -g -O2 -Wall -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -feliminate-unused-debug-types -o -
+ARM_INSTRUCTION_SET = "arm"
+
+# http://errors.yoctoproject.org/Errors/Details/186964/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
new file mode 100644
index 0000000..394aa16
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
@@ -0,0 +1,152 @@
+From c9dcb6afef9c343d070aaff208d11a997a45a105 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Sep 2018 22:19:38 -0700
+Subject: [PATCH] Migrate to openssl 1.1
+
+Upstream-Status: Backport [https://sourceforge.net/p/ipmitool/source/ci/1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1/]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 50 ++++++++++++++----------
+ 1 file changed, 29 insertions(+), 21 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index d5fac37..9652a5e 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -164,11 +164,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ uint8_t * output,
+ uint32_t * bytes_written)
+ {
+- EVP_CIPHER_CTX ctx;
+- EVP_CIPHER_CTX_init(&ctx);
+- EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
+- EVP_CIPHER_CTX_set_padding(&ctx, 0);
+-
++ EVP_CIPHER_CTX *ctx = NULL;
+
+ *bytes_written = 0;
+
+@@ -182,6 +178,14 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ printbuf(input, input_length, "encrypting this data");
+ }
+
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL) {
++ lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
++ return;
++ }
++ EVP_CIPHER_CTX_init(ctx);
++ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++ EVP_CIPHER_CTX_set_padding(ctx, 0);
+
+ /*
+ * The default implementation adds a whole block of padding if the input
+@@ -191,28 +195,28 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
+
+
+- if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
++ if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
+ {
+ /* Error */
+ *bytes_written = 0;
+- return;
+ }
+ else
+ {
+ uint32_t tmplen;
+
+- if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
++ if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+ {
++ /* Error */
+ *bytes_written = 0;
+- return; /* Error */
+ }
+ else
+ {
+ /* Success */
+ *bytes_written += tmplen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
+ }
+ }
++ /* performs cleanup and free */
++ EVP_CIPHER_CTX_free(ctx);
+ }
+
+
+@@ -239,11 +243,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ uint8_t * output,
+ uint32_t * bytes_written)
+ {
+- EVP_CIPHER_CTX ctx;
+- EVP_CIPHER_CTX_init(&ctx);
+- EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
+- EVP_CIPHER_CTX_set_padding(&ctx, 0);
+-
++ EVP_CIPHER_CTX *ctx = NULL;
+
+ if (verbose >= 5)
+ {
+@@ -252,12 +252,20 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ printbuf(input, input_length, "decrypting this data");
+ }
+
+-
+ *bytes_written = 0;
+
+ if (input_length == 0)
+ return;
+
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL) {
++ lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
++ return;
++ }
++ EVP_CIPHER_CTX_init(ctx);
++ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++ EVP_CIPHER_CTX_set_padding(ctx, 0);
++
+ /*
+ * The default implementation adds a whole block of padding if the input
+ * data is perfectly aligned. We would like to keep that from happening.
+@@ -266,33 +274,33 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
+
+
+- if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
++ if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
+ {
+ /* Error */
+ lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
+ *bytes_written = 0;
+- return;
+ }
+ else
+ {
+ uint32_t tmplen;
+
+- if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
++ if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+ {
++ /* Error */
+ char buffer[1000];
+ ERR_error_string(ERR_get_error(), buffer);
+ lprintf(LOG_DEBUG, "the ERR error %s", buffer);
+ lprintf(LOG_DEBUG, "ERROR: decrypt final failed");
+ *bytes_written = 0;
+- return; /* Error */
+ }
+ else
+ {
+ /* Success */
+ *bytes_written += tmplen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
+ }
+ }
++ /* performs cleanup and free */
++ EVP_CIPHER_CTX_free(ctx);
+
+ if (verbose >= 5)
+ {
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
index 9f73d27..b7f1aa9 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
@@ -22,7 +22,9 @@
DEPENDS = "openssl readline ncurses"
-SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2"
+SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2 \
+ file://0001-Migrate-to-openssl-1.1.patch \
+ "
SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3"
SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
new file mode 100644
index 0000000..181e97c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
@@ -0,0 +1,123 @@
+SUMMARY = "Kernel selftest for Linux"
+DESCRIPTION = "Kernel selftest for Linux"
+LICENSE = "GPLv2"
+
+LIC_FILES_CHKSUM = "file://../COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+DEPENDS = "rsync-native llvm-native"
+
+# for musl libc
+SRC_URI_append_libc-musl = "\
+ file://userfaultfd.patch \
+ "
+SRC_URI += "file://run-ptest \
+ file://COPYING \
+ "
+
+# now we just test bpf and vm
+# we will append other kernel selftest in the future
+# bpf was added in 4.10 with: https://github.com/torvalds/linux/commit/5aa5bd14c5f8660c64ceedf14a549781be47e53d
+# if you have older kernel than that you need to remove it from PACKAGECONFIG
+PACKAGECONFIG ??= "bpf vm"
+PACKAGECONFIG_remove_x86 = "bpf"
+PACKAGECONFIG_remove_arm = "bpf"
+
+PACKAGECONFIG[bpf] = ",,elfutils libcap libcap-ng rsync-native,"
+PACKAGECONFIG[vm] = ",,libcap,libgcc bash"
+
+do_patch[depends] += "virtual/kernel:do_shared_workdir"
+
+inherit linux-kernel-base kernel-arch ptest
+
+S = "${WORKDIR}/${BP}"
+
+TEST_LIST = "\
+ ${@bb.utils.filter('PACKAGECONFIG', 'bpf vm', d)} \
+"
+
+EXTRA_OEMAKE = '\
+ CROSS_COMPILE=${TARGET_PREFIX} \
+ ARCH=${ARCH} \
+ CC="${CC}" \
+ AR="${AR}" \
+ LD="${LD}" \
+ DESTDIR="${D}" \
+'
+
+KERNEL_SELFTEST_SRC ?= "Makefile \
+ include \
+ tools \
+ scripts \
+ arch \
+ LICENSES \
+"
+
+python __anonymous () {
+ import re
+
+ var = d.getVar('TARGET_CC_ARCH')
+ pattern = '_FORTIFY_SOURCE=[^0]'
+
+ if re.search(pattern, var):
+ d.appendVar('TARGET_CC_ARCH', " -O")
+}
+
+do_compile() {
+ bbwarn "clang >= 6.0 with bpf support is needed with kernel 4.18+ so \
+either install it and add it to HOSTTOOLS, or add \
+clang-native from meta-clang to dependency"
+ for i in ${TEST_LIST}
+ do
+ oe_runmake -C ${S}/tools/testing/selftests/${i}
+ done
+}
+
+do_install() {
+ for i in ${TEST_LIST}
+ do
+ oe_runmake -C ${S}/tools/testing/selftests/${i} INSTALL_PATH=${D}/usr/kernel-selftest/${i} install
+ done
+ if [ -e ${D}/usr/kernel-selftest/bpf/test_offload.py ]; then
+ sed -i -e '1s,#!.*python3,#! /usr/bin/env python3,' ${D}/usr/kernel-selftest/bpf/test_offload.py
+ fi
+ chown root:root -R ${D}/usr/kernel-selftest
+}
+
+do_configure() {
+ install -D -m 0644 ${WORKDIR}/COPYING ${S}/COPYING
+}
+
+do_patch[prefuncs] += "copy_kselftest_source_from_kernel remove_unrelated"
+python copy_kselftest_source_from_kernel() {
+ sources = (d.getVar("KERNEL_SELFTEST_SRC") or "").split()
+ src_dir = d.getVar("STAGING_KERNEL_DIR")
+ dest_dir = d.getVar("S")
+ bb.utils.mkdirhier(dest_dir)
+ for s in sources:
+ src = oe.path.join(src_dir, s)
+ dest = oe.path.join(dest_dir, s)
+ if os.path.isdir(src):
+ oe.path.copytree(src, dest)
+ else:
+ bb.utils.copyfile(src, dest)
+}
+
+remove_unrelated() {
+ if ${@bb.utils.contains('PACKAGECONFIG','bpf','true','false',d)} ; then
+ test -f ${S}/tools/testing/selftests/bpf/Makefile && \
+ sed -i -e 's/test_pkt_access.*$/\\/' \
+ -e 's/test_pkt_md_access.*$/\\/' \
+ -e 's/sockmap_verdict_prog.*$/\\/' \
+ ${S}/tools/testing/selftests/bpf/Makefile || \
+ bberror "Your kernel is probably older than 4.10 and doesn't have tools/testing/selftests/bpf/Makefile file from https://github.com/torvalds/linux/commit/5aa5bd14c5f8660c64ceedf14a549781be47e53d, disable bpf PACKAGECONFIG"
+ fi
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+INHIBIT_PACKAGE_DEBUG_SPLIT="1"
+FILES_${PN} += "/usr/kernel-selftest"
+
+RDEPENDS_${PN} += "python3"
+# tools/testing/selftests/vm/Makefile doesn't respect LDFLAGS and tools/testing/selftests/Makefile explicitly overrides to empty
+INSANE_SKIP_${PN} += "ldflags"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/COPYING b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/COPYING
new file mode 100644
index 0000000..da4cb28
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/COPYING
@@ -0,0 +1,18 @@
+The Linux Kernel is provided under:
+
+ SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+Being under the terms of the GNU General Public License version 2 only,
+according with:
+
+ LICENSES/preferred/GPL-2.0
+
+With an explicit syscall exception, as stated at:
+
+ LICENSES/exceptions/Linux-syscall-note
+
+In addition, other licenses may also apply. Please see:
+
+ Documentation/process/license-rules.rst
+
+for more details.
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest
new file mode 100755
index 0000000..d40b957
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest
@@ -0,0 +1,11 @@
+#!/bin/sh
+export PATH=$PATH:/usr/kernel-selftest/bpf
+
+# test_align
+test_align | grep "12 pass" &> /dev/null
+if [ $? == 0 ]; then
+ echo "[PASS]: test_align"
+else
+ echo "[FAIL]: test_align"
+fi
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch
new file mode 100644
index 0000000..bed2051
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch
@@ -0,0 +1,322 @@
+From c7b375747cffb627d02543d946b28525455d7d46 Mon Sep 17 00:00:00 2001
+From: "Hongzhi.Song" <hongzhi.song@windriver.com>
+Date: Fri, 13 Jul 2018 06:06:19 -0700
+Subject: [PATCH] vm: add some funtions to support musl libc
+
+Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
+---
+ tools/testing/selftests/vm/userfaultfd.c | 298 +++++++++++++++++++++++++++++++
+ 1 file changed, 298 insertions(+)
+
+diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
+index de2f9ec..dc73021 100644
+--- a/tools/testing/selftests/vm/userfaultfd.c
++++ b/tools/testing/selftests/vm/userfaultfd.c
+@@ -71,6 +71,304 @@
+
+ #ifdef __NR_userfaultfd
+
++/* Linear congruential. */
++#define TYPE_0 0
++#define BREAK_0 8
++#define DEG_0 0
++#define SEP_0 0
++
++/* x**7 + x**3 + 1. */
++#define TYPE_1 1
++#define BREAK_1 32
++#define DEG_1 7
++#define SEP_1 3
++
++/* x**15 + x + 1. */
++#define TYPE_2 2
++#define BREAK_2 64
++#define DEG_2 15
++#define SEP_2 1
++
++/* x**31 + x**3 + 1. */
++#define TYPE_3 3
++#define BREAK_3 128
++#define DEG_3 31
++#define SEP_3 3
++
++/* x**63 + x + 1. */
++#define TYPE_4 4
++#define BREAK_4 256
++#define DEG_4 63
++#define SEP_4 1
++
++/* Array versions of the above information to make code run faster.
++ Relies on fact that TYPE_i == i. */
++
++#define MAX_TYPES 5 /* Max number of types above. */
++
++#define __set_errno(val) (errno = (val))
++
++struct random_data
++ {
++ int32_t *fptr; /* Front pointer. */
++ int32_t *rptr; /* Rear pointer. */
++ int32_t *state; /* Array of state values. */
++ int rand_type; /* Type of random number generator. */
++ int rand_deg; /* Degree of random number generator. */
++ int rand_sep; /* Distance between front and rear. */
++ int32_t *end_ptr; /* Pointer behind state table. */
++ };
++
++struct random_poly_info
++{
++ int seps[MAX_TYPES];
++ int degrees[MAX_TYPES];
++};
++
++static const struct random_poly_info random_poly_info =
++{
++ { SEP_0, SEP_1, SEP_2, SEP_3, SEP_4 },
++ { DEG_0, DEG_1, DEG_2, DEG_3, DEG_4 }
++};
++
++/* If we are using the trivial TYPE_0 R.N.G., just do the old linear
++ congruential bit. Otherwise, we do our fancy trinomial stuff, which is the
++ same in all the other cases due to all the global variables that have been
++ set up. The basic operation is to add the number at the rear pointer into
++ the one at the front pointer. Then both pointers are advanced to the next
++ location cyclically in the table. The value returned is the sum generated,
++ reduced to 31 bits by throwing away the "least random" low bit.
++ Note: The code takes advantage of the fact that both the front and
++ rear pointers can't wrap on the same call by not testing the rear
++ pointer if the front one has wrapped. Returns a 31-bit random number. */
++
++int random_r (struct random_data *buf, int32_t *result)
++{
++ int32_t *state;
++
++ if (buf == NULL || result == NULL)
++ goto fail;
++
++ state = buf->state;
++
++ if (buf->rand_type == TYPE_0)
++ {
++ int32_t val = ((state[0] * 1103515245U) + 12345U) & 0x7fffffff;
++ state[0] = val;
++ *result = val;
++ }
++ else
++ {
++ int32_t *fptr = buf->fptr;
++ int32_t *rptr = buf->rptr;
++ int32_t *end_ptr = buf->end_ptr;
++ uint32_t val;
++
++ val = *fptr += (uint32_t) *rptr;
++ /* Chucking least random bit. */
++ *result = val >> 1;
++ ++fptr;
++ if (fptr >= end_ptr)
++ {
++ fptr = state;
++ ++rptr;
++ }
++ else
++ {
++ ++rptr;
++ if (rptr >= end_ptr)
++ rptr = state;
++ }
++ buf->fptr = fptr;
++ buf->rptr = rptr;
++ }
++ return 0;
++
++ fail:
++ __set_errno (EINVAL);
++ return -1;
++}
++
++/* Initialize the random number generator based on the given seed. If the
++ type is the trivial no-state-information type, just remember the seed.
++ Otherwise, initializes state[] based on the given "seed" via a linear
++ congruential generator. Then, the pointers are set to known locations
++ that are exactly rand_sep places apart. Lastly, it cycles the state
++ information a given number of times to get rid of any initial dependencies
++ introduced by the L.C.R.N.G. Note that the initialization of randtbl[]
++ for default usage relies on values produced by this routine. */
++int srandom_r (unsigned int seed, struct random_data *buf)
++{
++ int type;
++ int32_t *state;
++ long int i;
++ int32_t word;
++ int32_t *dst;
++ int kc;
++
++ if (buf == NULL)
++ goto fail;
++ type = buf->rand_type;
++ if ((unsigned int) type >= MAX_TYPES)
++ goto fail;
++
++ state = buf->state;
++ /* We must make sure the seed is not 0. Take arbitrarily 1 in this case. */
++ if (seed == 0)
++ seed = 1;
++ state[0] = seed;
++ if (type == TYPE_0)
++ goto done;
++
++ dst = state;
++ word = seed;
++ kc = buf->rand_deg;
++ for (i = 1; i < kc; ++i)
++ {
++ /* This does:
++ state[i] = (16807 * state[i - 1]) % 2147483647;
++ but avoids overflowing 31 bits. */
++ long int hi = word / 127773;
++ long int lo = word % 127773;
++ word = 16807 * lo - 2836 * hi;
++ if (word < 0)
++ word += 2147483647;
++ *++dst = word;
++ }
++
++ buf->fptr = &state[buf->rand_sep];
++ buf->rptr = &state[0];
++ kc *= 10;
++ while (--kc >= 0)
++ {
++ int32_t discard;
++ (void) random_r (buf, &discard);
++ }
++
++ done:
++ return 0;
++
++ fail:
++ return -1;
++}
++
++/* Initialize the state information in the given array of N bytes for
++ future random number generation. Based on the number of bytes we
++ are given, and the break values for the different R.N.G.'s, we choose
++ the best (largest) one we can and set things up for it. srandom is
++ then called to initialize the state information. Note that on return
++ from srandom, we set state[-1] to be the type multiplexed with the current
++ value of the rear pointer; this is so successive calls to initstate won't
++ lose this information and will be able to restart with setstate.
++ Note: The first thing we do is save the current state, if any, just like
++ setstate so that it doesn't matter when initstate is called.
++ Returns 0 on success, non-zero on failure. */
++int initstate_r (unsigned int seed, char *arg_state, size_t n,
++ struct random_data *buf)
++{
++ if (buf == NULL)
++ goto fail;
++
++ int32_t *old_state = buf->state;
++ if (old_state != NULL)
++ {
++ int old_type = buf->rand_type;
++ if (old_type == TYPE_0)
++ old_state[-1] = TYPE_0;
++ else
++ old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type;
++ }
++
++ int type;
++ if (n >= BREAK_3)
++ type = n < BREAK_4 ? TYPE_3 : TYPE_4;
++ else if (n < BREAK_1)
++ {
++ if (n < BREAK_0)
++ goto fail;
++
++ type = TYPE_0;
++ }
++ else
++ type = n < BREAK_2 ? TYPE_1 : TYPE_2;
++
++ int degree = random_poly_info.degrees[type];
++ int separation = random_poly_info.seps[type];
++
++ buf->rand_type = type;
++ buf->rand_sep = separation;
++ buf->rand_deg = degree;
++ int32_t *state = &((int32_t *) arg_state)[1]; /* First location. */
++ /* Must set END_PTR before srandom. */
++ buf->end_ptr = &state[degree];
++
++ buf->state = state;
++
++ srandom_r (seed, buf);
++
++ state[-1] = TYPE_0;
++ if (type != TYPE_0)
++ state[-1] = (buf->rptr - state) * MAX_TYPES + type;
++
++ return 0;
++
++ fail:
++ __set_errno (EINVAL);
++ return -1;
++}
++
++/* Restore the state from the given state array.
++ Note: It is important that we also remember the locations of the pointers
++ in the current state information, and restore the locations of the pointers
++ from the old state information. This is done by multiplexing the pointer
++ location into the zeroth word of the state information. Note that due
++ to the order in which things are done, it is OK to call setstate with the
++ same state as the current state
++ Returns 0 on success, non-zero on failure. */
++int setstate_r (char *arg_state, struct random_data *buf)
++{
++ int32_t *new_state = 1 + (int32_t *) arg_state;
++ int type;
++ int old_type;
++ int32_t *old_state;
++ int degree;
++ int separation;
++
++ if (arg_state == NULL || buf == NULL)
++ goto fail;
++
++ old_type = buf->rand_type;
++ old_state = buf->state;
++ if (old_type == TYPE_0)
++ old_state[-1] = TYPE_0;
++ else
++ old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type;
++
++ type = new_state[-1] % MAX_TYPES;
++ if (type < TYPE_0 || type > TYPE_4)
++ goto fail;
++
++ buf->rand_deg = degree = random_poly_info.degrees[type];
++ buf->rand_sep = separation = random_poly_info.seps[type];
++ buf->rand_type = type;
++
++ if (type != TYPE_0)
++ {
++ int rear = new_state[-1] / MAX_TYPES;
++ buf->rptr = &new_state[rear];
++ buf->fptr = &new_state[(rear + separation) % degree];
++ }
++ buf->state = new_state;
++ /* Set end_ptr too. */
++ buf->end_ptr = &new_state[degree];
++
++ return 0;
++
++ fail:
++ __set_errno (EINVAL);
++ return -1;
++}
++
+ static unsigned long nr_cpus, nr_pages, nr_pages_per_cpu, page_size;
+
+ #define BOUNCE_RANDOM (1<<0)
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc
index b1e73e9..cd819f3 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc
+++ b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc
@@ -30,6 +30,7 @@
PROVIDES += "kpatch-build"
COMPATIBLE_HOST = "(x86_64).*-linux"
+COMPATIBLE_HOST_libc-musl = "null"
RDEPENDS_${PN} = "bash binutils"
RDEPENDS_kpatch-build = "bash glibc-utils"
@@ -38,6 +39,7 @@
${sbindir}/kpatch \
${systemd_system_unitdir}/kpatch.service \
${mandir}/man1/kpatch.1.gz \
+ ${sysconfdir}/init/kpatch.conf \
"
FILES_kpatch-build = " \
${bindir}/kpatch-build \
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch
index 459fb21..ab3b127 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch
+++ b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch
@@ -1,4 +1,4 @@
-From a9a80a1f4df65892a0269295ce8a64b06f2ff61d Mon Sep 17 00:00:00 2001
+From 70de3fecbc551907c4fd504cfff385c73be8db75 Mon Sep 17 00:00:00 2001
From: Ruslan Bilovol <rbilovol@cisco.com>
Date: Tue, 19 Dec 2017 15:59:04 +0200
Subject: [PATCH] kpatch-build: add cross-compilation support
@@ -17,16 +17,17 @@
Upstream-Status: Pending
Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
+
---
kpatch-build/kpatch-build | 13 +++++++++++--
kpatch-build/kpatch-gcc | 4 ++--
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
-index 166ecbd..af24cc4 100755
+index a76913f..4a011aa 100755
--- a/kpatch-build/kpatch-build
+++ b/kpatch-build/kpatch-build
-@@ -195,7 +195,7 @@ gcc_version_check() {
+@@ -197,7 +197,7 @@ gcc_version_check() {
# gcc --version varies between distributions therefore extract version
# by compiling a test file and compare it to vmlinux's version.
echo 'void main(void) {}' > "$c"
@@ -35,7 +36,7 @@
gccver="$(gcc_version_from_file "$o")"
kgccver="$(gcc_version_from_file "$VMLINUX")"
rm -f "$c" "$o"
-@@ -381,12 +381,14 @@ usage() {
+@@ -392,12 +392,14 @@ usage() {
echo " -d, --debug Enable 'xtrace' and keep scratch files" >&2
echo " in <CACHEDIR>/tmp" >&2
echo " (can be specified multiple times)" >&2
@@ -51,7 +52,7 @@
eval set -- "$options"
-@@ -444,6 +446,10 @@ while [[ $# -gt 0 ]]; do
+@@ -455,6 +457,10 @@ while [[ $# -gt 0 ]]; do
echo "DEBUG mode enabled"
fi
;;
@@ -62,7 +63,7 @@
--skip-cleanup)
echo "Skipping cleanup"
SKIPCLEANUP=1
-@@ -691,6 +697,8 @@ if [[ $DEBUG -ge 4 ]]; then
+@@ -710,6 +716,8 @@ if [[ $DEBUG -ge 4 ]]; then
export KPATCH_GCC_DEBUG=1
fi
@@ -70,8 +71,8 @@
+
echo "Building original kernel"
./scripts/setlocalversion --save-scmversion || die
- make mrproper 2>&1 | logger || die
-@@ -840,6 +848,7 @@ cd "$TEMPDIR/patch" || die
+ unset KPATCH_GCC_TEMPDIR
+@@ -874,6 +882,7 @@ cd "$TEMPDIR/patch" || die
KPATCH_BUILD="$SRCDIR" KPATCH_NAME="$MODNAME" \
KBUILD_EXTRA_SYMBOLS="$KBUILD_EXTRA_SYMBOLS" \
KPATCH_LDFLAGS="$KPATCH_LDFLAGS" \
@@ -80,7 +81,7 @@
if ! "$KPATCH_MODULE"; then
diff --git a/kpatch-build/kpatch-gcc b/kpatch-build/kpatch-gcc
-index 6ba133c..3937948 100755
+index 2d56da1..59a4255 100755
--- a/kpatch-build/kpatch-gcc
+++ b/kpatch-build/kpatch-gcc
@@ -8,7 +8,7 @@ TOOLCHAINCMD="$1"
@@ -92,12 +93,9 @@
fi
declare -a args=("$@")
-@@ -80,4 +80,4 @@ elif [[ "$TOOLCHAINCMD" = "ld" ]] ; then
+@@ -82,4 +82,4 @@ elif [[ "$TOOLCHAINCMD" = "ld" ]] ; then
done
fi
-exec "$TOOLCHAINCMD" "${args[@]}"
+exec ${KPATCH_CROSS_COMPILE}${TOOLCHAINCMD} "${args[@]}"
---
-1.9.1
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
index a9d8a7f..13cdc6b 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
+++ b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
@@ -1,4 +1,4 @@
-From d418d716dae1e2a05131dfb42a19a4da2fc8a85d Mon Sep 17 00:00:00 2001
+From 15838a86d5ea94fa05976ea32fd847b18261b403 Mon Sep 17 00:00:00 2001
From: Ruslan Bilovol <rbilovol@cisco.com>
Date: Tue, 2 Jan 2018 14:50:03 +0200
Subject: [PATCH] kpatch-build: allow overriding of distro name
@@ -14,15 +14,16 @@
Upstream-Status: Pending
Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
+
---
kpatch-build/kpatch-build | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
-index af24cc4..4f9f78d 100755
+index 4a011aa..eb6cd64 100755
--- a/kpatch-build/kpatch-build
+++ b/kpatch-build/kpatch-build
-@@ -383,12 +383,13 @@ usage() {
+@@ -394,12 +394,13 @@ usage() {
echo " (can be specified multiple times)" >&2
echo " --cross-compile Specify the prefix used for all executables" >&2
echo " used during compilation" >&2
@@ -37,7 +38,7 @@
eval set -- "$options"
-@@ -450,6 +451,10 @@ while [[ $# -gt 0 ]]; do
+@@ -461,6 +462,10 @@ while [[ $# -gt 0 ]]; do
KPATCH_CROSS_COMPILE="$2"
shift
;;
@@ -48,7 +49,7 @@
--skip-cleanup)
echo "Skipping cleanup"
SKIPCLEANUP=1
-@@ -526,7 +531,7 @@ fi
+@@ -539,7 +544,7 @@ fi
# Don't check external file.
# shellcheck disable=SC1091
source /etc/os-release
@@ -57,6 +58,3 @@
if [[ "$DISTRO" = fedora ]] || [[ "$DISTRO" = rhel ]] || [[ "$DISTRO" = ol ]] || [[ "$DISTRO" = centos ]]; then
[[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/lib/modules/$ARCHVERSION/vmlinux"
[[ -e "$VMLINUX" ]] || die "kernel-debuginfo-$ARCHVERSION not installed"
---
-1.9.1
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
index e495e28..024cca6 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
@@ -2,9 +2,9 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV = "db6efbb8c7e90d2b761272cf563047119072768f"
+SRCREV = "7f550f01bd308cf058ae782327d29c8916cc5602"
-PV = "0.5.0+git${SRCPV}"
+PV = "0.6.1+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
index d599a91..a478065 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
+++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
@@ -1,4 +1,4 @@
-From 3c2f4ff583a156a7ed2fa0cc002a413c391d063d Mon Sep 17 00:00:00 2001
+From 8eeb1b15608ce1a9a1f0d5417938fd6da4504406 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 21 Jul 2016 18:06:21 +0800
Subject: [PATCH] makedumpfile: replace hardcode CFLAGS
@@ -13,12 +13,13 @@
Upstream-Status: Inappropriate[oe specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+
---
Makefile | 46 +++++++++++++++++++++++-----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/Makefile b/Makefile
-index 7dde3e4..c5286ac 100644
+index 612b9d0..f6d6265 100644
--- a/Makefile
+++ b/Makefile
@@ -8,13 +8,6 @@ ifeq ($(strip $CC),)
@@ -80,9 +81,9 @@
+ -DRELEASE_DATE='"$(DATE)"'
+
SRC_BASE = makedumpfile.c makedumpfile.h diskdump_mod.h sadump_mod.h sadump_info.h
- SRC_PART = print_info.c dwarf_info.c elf_info.c erase_info.c sadump_info.c cache.c
+ SRC_PART = print_info.c dwarf_info.c elf_info.c erase_info.c sadump_info.c cache.c tools.c
OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART))
-@@ -54,17 +54,17 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH))
+@@ -53,17 +53,17 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH))
LIBS = -ldw -lbz2 -lebl -ldl -lelf -lz
ifneq ($(LINKTYPE), dynamic)
@@ -103,7 +104,7 @@
endif
LIBS := -lpthread $(LIBS)
-@@ -72,14 +72,14 @@ LIBS := -lpthread $(LIBS)
+@@ -71,14 +71,14 @@ LIBS := -lpthread $(LIBS)
all: makedumpfile
$(OBJ_PART): $(SRC_PART)
@@ -120,7 +121,7 @@
echo .TH MAKEDUMPFILE 8 \"$(DATE)\" \"makedumpfile v$(VERSION)\" \"Linux System Administrator\'s Manual\" > temp.8
grep -v "^.TH MAKEDUMPFILE 8" $(VPATH)makedumpfile.8 >> temp.8
mv temp.8 makedumpfile.8
-@@ -90,7 +90,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH)
+@@ -89,7 +89,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH)
gzip -c ./makedumpfile.conf.5 > ./makedumpfile.conf.5.gz
eppic_makedumpfile.so: extension_eppic.c
@@ -129,6 +130,3 @@
clean:
rm -f $(OBJ) $(OBJ_PART) $(OBJ_ARCH) makedumpfile makedumpfile.8.gz makedumpfile.conf.5.gz
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch
index e0c3d9a..766f4fc 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch
+++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch
@@ -1,4 +1,4 @@
-From 653fe8e724081d2f289c2245d1220d5f7170538d Mon Sep 17 00:00:00 2001
+From ba123fa6b2aa0ac62d1b78f327339635ae87201a Mon Sep 17 00:00:00 2001
From: Alexandru Moise <alexandru.moise@windriver.com>
Date: Fri, 29 Apr 2016 07:40:46 +0000
Subject: [PATCH] mem_section: Support only 46 bit for MAX_PHYSMEM_BITS on
@@ -20,18 +20,20 @@
Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
---
arch/ppc64.c | 28 ++--------------------------
1 file changed, 2 insertions(+), 26 deletions(-)
diff --git a/arch/ppc64.c b/arch/ppc64.c
-index 89a7f05..6c928ab 100644
+index 8b6f7d5..458f06b 100644
--- a/arch/ppc64.c
+++ b/arch/ppc64.c
-@@ -302,37 +302,13 @@ ppc64_vtop_level4(unsigned long vaddr)
+@@ -462,38 +462,14 @@ ppc64_vtop_level4(unsigned long vaddr)
+ return paddr;
}
- int
+-int
-set_ppc64_max_physmem_bits(void)
-{
- long array_len = ARRAY_LENGTH(mem_section);
@@ -53,7 +55,7 @@
- return FALSE;
-}
-
--int
+ int
get_machdep_info_ppc64(void)
{
unsigned long vmlist, vmap_area_list, vmalloc_start;
@@ -68,6 +70,3 @@
info->page_offset = __PAGE_OFFSET;
if (SYMBOL(_stext) == NOT_FOUND_SYMBOL) {
---
-2.5.0
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb
deleted file mode 100644
index d6f2d80..0000000
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "VMcore extraction tool"
-DESCRIPTION = "\
- This program is used to extract a subset of the memory available either \
- via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \
- images without extra uneeded information (zero pages, userspace programs, \
- etc). \
-"
-HOMEPAGE = "http://makedumpfile.sourceforge.net"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-LICENSE = "GPLv2.0"
-
-DEPENDS = "bzip2 zlib elfutils"
-RDEPENDS_${PN}-tools = "perl ${PN}"
-
-# arm would compile but has never been tested upstream. mips would not compile.
-#
-COMPATIBLE_HOST = "(x86_64|i.86|powerpc|arm).*-linux"
-
-PACKAGES =+ "${PN}-tools"
-FILES_${PN}-tools = "${bindir}/*.pl"
-
-SRC_URI = "\
- ${SOURCEFORGE_MIRROR}/makedumpfile/${BPN}-${PV}.tar.gz \
- file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
- file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \
-"
-SRC_URI[md5sum] = "72be5bf973eed898c5127e3abc466583"
-SRC_URI[sha256sum] = "ee3d21cb4032a60bd2c802d1d8b21b9f399710e1574f8de8ead5ab50cd821a6d"
-
-SECTION = "base"
-
-# If we do not specify TARGET, makedumpfile will build for the host but use the
-# target gcc.
-#
-EXTRA_OEMAKE = "\
- LINKTYPE=static \
- TARGET=${TARGET_ARCH} \
-"
-
-do_install () {
- mkdir -p ${D}/usr/bin
- install -m 755 ${S}/makedumpfile ${D}/usr/bin
- install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin
-
- mkdir -p ${D}/usr/share/man/man8
- install -m 644 ${S}/makedumpfile.8.gz ${D}/usr/share/man/man8
-
- mkdir -p ${D}/usr/share/man/man5
- install -m 644 ${S}/makedumpfile.conf.5.gz ${D}/usr/share/man/man5
-
- mkdir -p ${D}/etc/
- install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample
-}
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.4.bb b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.4.bb
new file mode 100644
index 0000000..629e251
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.4.bb
@@ -0,0 +1,57 @@
+SUMMARY = "VMcore extraction tool"
+DESCRIPTION = "\
+ This program is used to extract a subset of the memory available either \
+ via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \
+ images without extra uneeded information (zero pages, userspace programs, \
+ etc). \
+"
+HOMEPAGE = "http://makedumpfile.sourceforge.net"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+LICENSE = "GPLv2.0"
+
+DEPENDS = "bzip2 zlib elfutils"
+RDEPENDS_${PN}-tools = "perl ${PN}"
+
+# arm would compile but has never been tested upstream. mips would not compile.
+#
+COMPATIBLE_HOST = "(x86_64|i.86|powerpc|arm).*-linux"
+
+PACKAGES =+ "${PN}-tools"
+FILES_${PN}-tools = "${bindir}/*.pl"
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/makedumpfile/${BPN}-${PV}.tar.gz \
+ file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
+ file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \
+"
+SRC_URI[md5sum] = "7dfbca19f487604c271e2892ba07f4bd"
+SRC_URI[sha256sum] = "7e06f72d5f291fcab9e92975f405a76e37d4f7fc8fa4172f199636398ae812b1"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/makedumpfile/files/makedumpfile/"
+UPSTREAM_CHECK_REGEX = "makedumpfile/(?P<pver>\d+(\.\d+)+)/"
+
+SECTION = "base"
+
+# If we do not specify TARGET, makedumpfile will build for the host but use the
+# target gcc.
+#
+EXTRA_OEMAKE = "\
+ LINKTYPE=static \
+ TARGET=${TARGET_ARCH} \
+"
+
+do_install () {
+ mkdir -p ${D}/usr/bin
+ install -m 755 ${S}/makedumpfile ${D}/usr/bin
+ install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin
+
+ mkdir -p ${D}/usr/share/man/man8
+ install -m 644 ${S}/makedumpfile.8.gz ${D}/usr/share/man/man8
+
+ mkdir -p ${D}/usr/share/man/man5
+ install -m 644 ${S}/makedumpfile.conf.5.gz ${D}/usr/share/man/man5
+
+ mkdir -p ${D}/etc/
+ install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample
+}
diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-fix-compile-error-on-arch-x32.patch b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-fix-compile-error-on-arch-x32.patch
deleted file mode 100644
index 6ba6ad4..0000000
--- a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-fix-compile-error-on-arch-x32.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 883f53ee33eaef8aca1288a110857402ad362966 Mon Sep 17 00:00:00 2001
-From: John Ogness <john.ogness@linutronix.de>
-Date: Fri, 8 Sep 2017 15:03:03 -0700
-Subject: [PATCH] fix compile error on arch=x32
-
-On the x32 architecture time_t is a "long long int". By
- typecasting time_t to "long long", this should work correctly
- for all architectures.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/minicoredumper/corestripper.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/minicoredumper/corestripper.c b/src/minicoredumper/corestripper.c
-index fd39bfb..07dc318 100644
---- a/src/minicoredumper/corestripper.c
-+++ b/src/minicoredumper/corestripper.c
-@@ -1241,7 +1241,7 @@ static int dump_compressed_tar(struct dump_info *di)
- snprintf(hdr.mode, sizeof(hdr.mode), "%07o", 0644);
- snprintf(hdr.uid, sizeof(hdr.uid), "%07o", 0);
- snprintf(hdr.gid, sizeof(hdr.gid), "%07o", 0);
-- snprintf(hdr.mtime, sizeof(hdr.mtime), "%011lo",
-+ snprintf(hdr.mtime, sizeof(hdr.mtime), "%011llo",
- (long long)time(NULL));
- memset(hdr.checksum, ' ', sizeof(hdr.checksum));
- hdr.type = 'S';
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb
index 0d3c66b..bae5cf4 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb
@@ -9,7 +9,7 @@
inherit autotools pkgconfig systemd update-rc.d
-SRCREV = "cdc1faf1212a51e89b477468876e229223fceb9a"
+SRCREV = "1c0d5960b0bb4bac7566e6afe8bc9705399cc76b"
PR .= "+git${SRCPV}"
@@ -17,7 +17,6 @@
file://minicoredumper.service \
file://minicoredumper.init \
file://0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch \
- file://0001-fix-compile-error-on-arch-x32.patch \
"
S = "${WORKDIR}/git"
@@ -43,3 +42,6 @@
sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${sysconfdir}/init.d/minicoredumper
sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${systemd_system_unitdir}/minicoredumper.service
}
+
+# http://errors.yoctoproject.org/Errors/Details/186966/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc
index 4b01654..349e2bf 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc
+++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc
@@ -25,12 +25,12 @@
file://run-ptest \
file://root-home-dir.patch \
file://0001-Add-rmb-definition-for-NIOS2-architecture.patch \
- file://0001-Fix-FTBFS-problem-with-GCC-6.patch \
"
UPSTREAM_CHECK_REGEX = "oprofile-(?P<pver>\d+(\.\d+)+)/"
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/oprofile/files/oprofile/"
-SRC_URI_append_libc-musl = " file://musl.patch"
+SRC_URI_append_libc-musl = " file://musl.patch \
+"
inherit autotools pkgconfig ptest
diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch
deleted file mode 100644
index d372fd5..0000000
--- a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 39d4d46a0bd504ac708ffe72df87bf74cd12ad30 Mon Sep 17 00:00:00 2001
-From: William Cohen <wcohen@redhat.com>
-Date: Fri, 5 Feb 2016 17:30:19 -0500
-Subject: [PATCH] Fix FTBFS problem with GCC-6
-
-GCC-6 is pickier about some of the type conversions causing the Fedora
-24 mass rebuild the build of oprofile failed with:
-
-make[3]: Entering directory '/builddir/build/BUILD/oprofile-1.1.0/libutil++'
-g++ -DHAVE_CONFIG_H -I. -I.. -I ../libutil -I ../libop -I ../libpp -W -Wall -fno-common -ftemplate-depth-50 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c -o op_bfd.o op_bfd.cpp
-op_bfd.cpp: In member function 'void op_bfd::get_symbol_range(symbol_index_t, long long unsigned int&, long long unsigned int&) const':
-op_bfd.cpp:538:47: error: cannot convert 'std::ostream {aka std::basic_ostream<char>}' to 'const bool' in initialization
- bool const verbose = cverb << (vbfd & vlevel1);
- ^
-op_bfd.cpp:546:7: error: in argument to unary !
- if (!verbose)
- ^~~~~~~
-
-Avoid the intermediate bool type to make GCC-6 happy.
-
-Signed-off-by: William Cohen <wcohen@redhat.com>
----
-Upstream-Status: Backport
-
- libutil++/op_bfd.cpp | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/libutil++/op_bfd.cpp b/libutil++/op_bfd.cpp
-index 389c920..f2eb42b 100644
---- a/libutil++/op_bfd.cpp
-+++ b/libutil++/op_bfd.cpp
-@@ -535,15 +535,13 @@ void op_bfd::get_symbol_range(symbol_index_t sym_idx,
- {
- op_bfd_symbol const & sym = syms[sym_idx];
-
-- bool const verbose = cverb << (vbfd & vlevel1);
--
- if (anon_obj)
- start = sym.vma();
- else
- start = sym.filepos();
- end = start + sym.size();
-
-- if (!verbose)
-+ if (!(cverb << (vbfd & vlevel1)))
- return;
-
- io_state state(cverb << (vbfd & vlevel1));
---
-1.9.1
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb
deleted file mode 100644
index 92a94ad..0000000
--- a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require oprofile.inc
-
-DEPENDS += "virtual/kernel"
-DEPENDS_append_powerpc64 = " libpfm4"
-
-SRC_URI[md5sum] = "248c4c069f9476f427fa7195563f9867"
-SRC_URI[sha256sum] = "cf759a6de1a6033d5dfc93bda129a9f2e128aecc4238cc657feb0801d1b0366c"
-
-S = "${WORKDIR}/oprofile-${PV}"
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.3.0.bb b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.3.0.bb
new file mode 100644
index 0000000..1dc535e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.3.0.bb
@@ -0,0 +1,10 @@
+require oprofile.inc
+
+DEPENDS += "virtual/kernel"
+DEPENDS_append_powerpc64 = " libpfm4"
+
+SRC_URI[md5sum] = "bd998df5521ebedae31e71cd3fb6200b"
+SRC_URI[sha256sum] = "95ded8bde1ec39922f0af015981a67aec63e025a501e4dc04cd65d38f73647e6"
+
+S = "${WORKDIR}/oprofile-${PV}"
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat/COPYING b/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat/COPYING
new file mode 100644
index 0000000..da4cb28
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat/COPYING
@@ -0,0 +1,18 @@
+The Linux Kernel is provided under:
+
+ SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+Being under the terms of the GNU General Public License version 2 only,
+according with:
+
+ LICENSES/preferred/GPL-2.0
+
+With an explicit syscall exception, as stated at:
+
+ LICENSES/exceptions/Linux-syscall-note
+
+In addition, other licenses may also apply. Please see:
+
+ Documentation/process/license-rules.rst
+
+for more details.
diff --git a/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb b/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb
new file mode 100644
index 0000000..dc3e78f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb
@@ -0,0 +1,57 @@
+#
+# Copyright (C) 2013 Wind River Systems, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+SUMMARY = "Frequency and Idle power monitoring tools for Linux"
+
+DESCRIPTION = "The turbostat tool allows you to determine the actual \
+processor frequency and idle power saving state residency on supported \
+processors."
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://../COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+COMPATIBLE_HOST_libc-musl = "null"
+
+SRC_URI += "\
+ file://COPYING \
+ "
+
+DEPENDS = "virtual/kernel"
+
+# This looks in S, so we better make sure there's
+# something in the directory.
+#
+do_populate_lic[depends] = "${PN}:do_configure"
+
+
+EXTRA_OEMAKE = '\
+ CC="${CC}" \
+ 'CFLAGS=-Wall -I${STAGING_KERNEL_DIR}/arch/x86/include/uapi ${LDFLAGS}' \
+ '
+
+# If we build under STAGING_KERNEL_DIR, source will not be put
+# into the dbg rpm. STAGING_KERNEL_DIR will exist by the time
+# do_configure() is invoked so we can safely copy from it.
+#
+do_configure_prepend() {
+ mkdir -p ${S}
+ cp -r ${STAGING_KERNEL_DIR}/arch/x86/include/asm/msr-index.h ${S}
+ cp -r ${STAGING_KERNEL_DIR}/arch/x86/include/asm/intel-family.h ${S}
+ cp -r ${STAGING_KERNEL_DIR}/tools/power/x86/turbostat/* ${S}
+ cp -r ${WORKDIR}/COPYING ${S}
+}
+
+do_compile() {
+ sed -i 's#MSRHEADER#"msr-index.h"#' turbostat.c
+ sed -i 's#INTEL_FAMILY_HEADER#"intel-family.h"#' turbostat.c
+ sed -i 's#\$(CC) \$(CFLAGS) \$< -o \$(BUILD_OUTPUT)/\$@#\$(CC) \$(CFLAGS) \$(LDFLAGS) \$< -o \$(BUILD_OUTPUT)/\$@#' Makefile
+ oe_runmake STAGING_KERNEL_DIR=${STAGING_KERNEL_DIR}
+}
+
+do_install() {
+ oe_runmake DESTDIR="${D}" install
+}
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb
deleted file mode 100644
index 0c4a9f5..0000000
--- a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Alsa OSS Compatibility Package"
-SECTION = "libs/multimedia"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-DEPENDS = "alsa-lib"
-
-SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
- file://libio.patch \
-"
-SRC_URI[md5sum] = "91f57e8cee1ad4cc956caa8b62ac5d43"
-SRC_URI[sha256sum] = "3ae62caa88a0bc7b30ed836dcb794dc6ef4d3650439e2260db54cace7d5c6ad5"
-
-inherit autotools
-
-LEAD_SONAME = "libaoss.so.0"
-
-do_configure_prepend () {
- touch NEWS README AUTHORS ChangeLog
- sed -i "s/libaoss.so/${LEAD_SONAME}/" ${S}/alsa/aoss.in
-}
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.6.bb b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.6.bb
new file mode 100644
index 0000000..6c2176f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.6.bb
@@ -0,0 +1,46 @@
+# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'.
+# The following is the difference between the old and the new license text.
+# Please update the LICENSE value if needed, and summarize the changes in
+# the commit message via 'License-Update:' tag.
+# (example: 'License-Update: copyright years updated.')
+#
+# The changes:
+#
+# --- COPYING
+# +++ COPYING
+# @@ -2,7 +2,8 @@
+# Version 2, June 1991
+#
+# Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+# - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+# +
+# Everyone is permitted to copy and distribute verbatim copies
+# of this license document, but changing it is not allowed.
+#
+#
+#
+
+SUMMARY = "Alsa OSS Compatibility Package"
+SECTION = "libs/multimedia"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ed055b4eff93da784176a01582e6ec1a"
+DEPENDS = "alsa-lib"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
+ file://libio.patch \
+"
+SRC_URI[md5sum] = "fc845cafc4444193510ab1865c7350b8"
+SRC_URI[sha256sum] = "c3d3f743e61f05ff95c5cba3b06bc9c91ff86c37495f1d19dab844e6b90845ea"
+
+inherit autotools
+
+LEAD_SONAME = "libaoss.so.0"
+
+do_configure_prepend () {
+ touch NEWS README AUTHORS ChangeLog
+ sed -i "s/libaoss.so/${LEAD_SONAME}/" ${S}/alsa/aoss.in
+}
+
+# http://errors.yoctoproject.org/Errors/Details/186961/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb b/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb
index 63e590c..9e5a381 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb
@@ -1,9 +1,12 @@
-SUMMARY = "Library for reading some sort of media format"
+SUMMARY = "An open source MPEG-4 and MPEG-2 AAC decoding library"
+HOMEPAGE = "http://www.audiocoding.com/faad2.html"
SECTION = "libs"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=381c8cbe277a7bc1ee2ae6083a04c958"
+LICENSE_FLAGS = "commercial"
+
PR = "r1"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Python-3.7-fixes-2126.patch b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Python-3.7-fixes-2126.patch
new file mode 100644
index 0000000..e6021cd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Python-3.7-fixes-2126.patch
@@ -0,0 +1,26 @@
+From 72564b04151b61fa8d954bbb43afc58108ee50ec Mon Sep 17 00:00:00 2001
+From: Thomas Nagy <tnagy@waf.io>
+Date: Mon, 12 Mar 2018 20:42:55 +0100
+Subject: [PATCH] Python 3.7 fixes #2126
+
+Upstream-Status: Backport
+[https://gitlab.com/ita1024/waf/commit/facdc0b173d933073832c768ec1917c553cb369c]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ waflib/Node.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/waflib/Node.py b/waflib/Node.py
+index fb3cd273..405a6fec 100644
+--- a/waflib/Node.py
++++ b/waflib/Node.py
+@@ -537,8 +537,6 @@ class Node(object):
+ if maxdepth:
+ for k in node.ant_iter(accept=accept, maxdepth=maxdepth - 1, pats=npats, dir=dir, src=src, remove=remove):
+ yield k
+- raise StopIteration
+-
+ def ant_glob(self, *k, **kw):
+ """
+ This method is used for finding files across folders. It behaves like ant patterns:
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb
index 11da6b1..52559cb 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb
@@ -14,7 +14,9 @@
DEPENDS = "libsamplerate0 libsndfile1 readline"
-SRC_URI = "git://github.com/jackaudio/jack2.git"
+SRC_URI = "git://github.com/jackaudio/jack2.git \
+ file://0001-Python-3.7-fixes-2126.patch \
+ "
SRCREV = "c1647819eed6d11f94b21981d9c869629299f357"
PV = "1.9.12"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb b/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb
index 831394e..668afc8 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb
@@ -10,3 +10,11 @@
SRC_URI[sha256sum] = "3c05e05aebcbfcc044d9e8c2d4646cd8359be39a3f0ba8ce4e72a9094bee704f"
inherit autotools pkgconfig
+
+do_install_append() {
+ # The GLib dependency was removed in libmms 0.6.3, but the
+ # "Requires" was not removed from the pkg-config file. Since we
+ # don't have (and don't want) the RDEPENDS on GLib, we should
+ # remove the "Requires" line.
+ sed -i '/^Requires: glib-2\.0$/d' ${D}${libdir}/pkgconfig/libmms.pc
+}
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb
index a24f5e3..dd6789d 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb
@@ -50,3 +50,5 @@
#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8'
#| make[2]: *** [celt/celt.lo] Error 1
ARM_INSTRUCTION_SET = "arm"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb
deleted file mode 100644
index 1f9c794..0000000
--- a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer image library v2"
-SECTION = "libs"
-
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=ec65b9778f5584a0bd8dfc17d6340ba0"
-
-DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp"
-
-SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz"
-SRC_URI[md5sum] = "d94b94555ba022fa249a53a021dc3606"
-SRC_URI[sha256sum] = "3a3eafbceea5125c04be585373bfd8b3a18f259bd7eae3efc4e6d8e60e0d7f64"
-
-S = "${WORKDIR}/SDL2_image-${PV}"
-
-inherit autotools pkgconfig
-
-# Disable the run-time loading of the libs and bring back the soname dependencies.
-EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared"
-
-do_configure_prepend() {
- # make autoreconf happy
- touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog
- # Removing these files fixes a libtool version mismatch.
- rm -f ${S}/acinclude/libtool.m4
- rm -f ${S}/acinclude/sdl2.m4
- rm -f ${S}/acinclude/pkg.m4
- rm -f ${S}/acinclude/lt~obsolete.m4
- rm -f ${S}/acinclude/ltoptions.m4
- rm -f ${S}/acinclude/ltsugar.m4
- rm -f ${S}/acinclude/ltversion.m4
-}
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
index de78de2..c2e8e3d 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
@@ -31,6 +31,8 @@
libass \
${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
"
+
+PACKAGECONFIG_remove_aarch64 = "lua"
PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/mesa"
PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch
deleted file mode 100644
index 12609d3..0000000
--- a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 75372b8088c20474497b79ec6cf1e99f2d17f56d Mon Sep 17 00:00:00 2001
-From: Ismo Puustinen <ismo.puustinen@intel.com>
-Date: Mon, 3 Apr 2017 13:23:38 +0300
-Subject: [PATCH] buildsystem: do not assume building in source tree.
-
-Use $(top_srcdir) as reference for include paths and buildtime scripts.
-Otherwise compilation outside of project root directory will fail
-because header and script paths are wrong.
-
-To reproduce: mkdir b; cd b; ../configure; make
-
-Upstream-status: Accepted [https://git.linuxtv.org//v4l-utils.git/commit/?id=bd98c9a99bffc8d44c54859345e4dfee0ada4275]
-
-Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
-
----
- utils/cec-compliance/Makefile.am | 2 +-
- utils/cec-ctl/Makefile.am | 2 +-
- utils/cec-follower/Makefile.am | 4 ++--
- utils/qv4l2/Makefile.am | 2 +-
- utils/v4l2-compliance/Makefile.am | 2 +-
- utils/v4l2-ctl/Makefile.am | 2 +-
- 6 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/utils/cec-compliance/Makefile.am b/utils/cec-compliance/Makefile.am
-index f05fe6c..f7d1535 100644
---- a/utils/cec-compliance/Makefile.am
-+++ b/utils/cec-compliance/Makefile.am
-@@ -7,7 +7,7 @@ cec_compliance_LDFLAGS = -lrt
- cec-compliance.cpp: cec-table.h
-
- cec-table.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
-- ../cec-ctl/msg2ctl.pl 2 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@
-+ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
-
- cec-compliance.cpp: version.h
-
-diff --git a/utils/cec-ctl/Makefile.am b/utils/cec-ctl/Makefile.am
-index 4a6eae5..570a070 100644
---- a/utils/cec-ctl/Makefile.am
-+++ b/utils/cec-ctl/Makefile.am
-@@ -6,7 +6,7 @@ cec_ctl_SOURCES = cec-ctl.cpp
- cec-ctl.cpp: cec-ctl-gen.h
-
- cec-ctl-gen.h: msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
-- ./msg2ctl.pl 0 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@
-+ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 0 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
-
- clean-local:
- -rm -vf cec-ctl-gen.h
-diff --git a/utils/cec-follower/Makefile.am b/utils/cec-follower/Makefile.am
-index d8ad292..e3553eb 100644
---- a/utils/cec-follower/Makefile.am
-+++ b/utils/cec-follower/Makefile.am
-@@ -7,12 +7,12 @@ cec_follower_LDFLAGS = -lrt
- cec-log.cpp: cec-log.h
-
- cec-log.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
-- ../cec-ctl/msg2ctl.pl 1 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@
-+ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 1 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
-
- cec-follower.cpp: cec-table.h version.h
-
- cec-table.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
-- ../cec-ctl/msg2ctl.pl 2 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@
-+ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
-
- version.h:
- @if git show-ref -s HEAD >/dev/null 2>&1; then \
-diff --git a/utils/qv4l2/Makefile.am b/utils/qv4l2/Makefile.am
-index fd58486..ccd1a2a 100644
---- a/utils/qv4l2/Makefile.am
-+++ b/utils/qv4l2/Makefile.am
-@@ -8,7 +8,7 @@ qv4l2_SOURCES = qv4l2.cpp general-tab.cpp ctrl-tab.cpp vbi-tab.cpp capture-win.c
- nodist_qv4l2_SOURCES = moc_qv4l2.cpp moc_general-tab.cpp moc_capture-win.cpp moc_vbi-tab.cpp qrc_qv4l2.cpp
- qv4l2_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la \
- ../libv4l2util/libv4l2util.la ../libmedia_dev/libmedia_dev.la
--qv4l2_CPPFLAGS = -I../common
-+qv4l2_CPPFLAGS = -I$(top_srcdir)/utils/common
-
- if WITH_QTGL
- qv4l2_CPPFLAGS += $(QTGL_CFLAGS)
-diff --git a/utils/v4l2-compliance/Makefile.am b/utils/v4l2-compliance/Makefile.am
-index c2b5919..fb8d12e 100644
---- a/utils/v4l2-compliance/Makefile.am
-+++ b/utils/v4l2-compliance/Makefile.am
-@@ -5,7 +5,7 @@ DEFS :=
- v4l2_compliance_SOURCES = v4l2-compliance.cpp v4l2-test-debug.cpp v4l2-test-input-output.cpp \
- v4l2-test-controls.cpp v4l2-test-io-config.cpp v4l2-test-formats.cpp v4l2-test-buffers.cpp \
- v4l2-test-codecs.cpp v4l2-test-colors.cpp v4l2-compliance.h
--v4l2_compliance_CPPFLAGS = -I../common
-+v4l2_compliance_CPPFLAGS = -I$(top_srcdir)/utils/common
-
- if WITH_V4L2_COMPLIANCE_LIBV4L
- v4l2_compliance_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
-diff --git a/utils/v4l2-ctl/Makefile.am b/utils/v4l2-ctl/Makefile.am
-index 955647d..825e53f 100644
---- a/utils/v4l2-ctl/Makefile.am
-+++ b/utils/v4l2-ctl/Makefile.am
-@@ -7,7 +7,7 @@ v4l2_ctl_SOURCES = v4l2-ctl.cpp v4l2-ctl.h v4l2-ctl-common.cpp v4l2-ctl-tuner.cp
- v4l2-ctl-overlay.cpp v4l2-ctl-vbi.cpp v4l2-ctl-selection.cpp v4l2-ctl-misc.cpp \
- v4l2-ctl-streaming.cpp v4l2-ctl-sdr.cpp v4l2-ctl-edid.cpp v4l2-ctl-modes.cpp \
- v4l2-tpg-colors.c v4l2-tpg-core.c v4l-stream.c
--v4l2_ctl_CPPFLAGS = -I../common
-+v4l2_ctl_CPPFLAGS = -I$(top_srcdir)/utils/common
-
- if WITH_V4L2_CTL_LIBV4L
- v4l2_ctl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch
deleted file mode 100644
index 82fc3e1..0000000
--- a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From b2efcc20617d6317f74c4acb2a6af5b765f20b34 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 13:11:25 -0700
-Subject: [PATCH] ir-ctl: Define TEMP_FAILURE_RETRY if undefined
-
-use strndup() instead of strndupa() which is not
-universally available in C libraries
-
-Taken from AlpineLinux
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- utils/ir-ctl/ir-ctl.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c
-index bc58cee..1a44011 100644
---- a/utils/ir-ctl/ir-ctl.c
-+++ b/utils/ir-ctl/ir-ctl.c
-@@ -42,6 +42,16 @@
- # define _(string) string
- #endif
-
-+/* taken from glibc unistd.h */
-+#ifndef TEMP_FAILURE_RETRY
-+#define TEMP_FAILURE_RETRY(expression) \
-+ (__extension__ \
-+ ({ long int __result; \
-+ do __result = (long int) (expression); \
-+ while (__result == -1L && errno == EINTR); \
-+ __result; }))
-+#endif
-+
- # define N_(string) string
-
-
-@@ -344,12 +354,14 @@ static struct file *read_scancode(const char *name)
- return NULL;
- }
-
-- pstr = strndupa(name, p - name);
-+ pstr = strndup(name, p - name);
-
- if (!protocol_match(pstr, &proto)) {
- fprintf(stderr, _("error: protocol '%s' not found\n"), pstr);
-+ free(pstr);
- return NULL;
- }
-+ free(pstr);
-
- if (!strtoscancode(p + 1, &scancode)) {
- fprintf(stderr, _("error: invalid scancode '%s'\n"), p + 1);
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch
index a779a30..8033fca 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch
+++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch
@@ -6,17 +6,16 @@
musl depends on external argp implementation e.g.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
contrib/test/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/contrib/test/Makefile.am b/contrib/test/Makefile.am
-index 4641e21..e47b948 100644
+index 0188fe2..dac07f3 100644
--- a/contrib/test/Makefile.am
+++ b/contrib/test/Makefile.am
-@@ -32,7 +32,7 @@ v4l2gl_LDFLAGS = $(X11_LIBS) $(GL_LIBS) $(GLU_LIBS) $(ARGP_LIBS)
- v4l2gl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la
+@@ -40,7 +40,7 @@ sdlcam_CFLAGS = -I../.. $(SDL2_CFLAGS)
+ sdlcam_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la
mc_nextgen_test_CFLAGS = $(LIBUDEV_CFLAGS)
-mc_nextgen_test_LDFLAGS = $(LIBUDEV_LIBS)
@@ -24,3 +23,6 @@
ioctl_test_SOURCES = ioctl-test.c ioctl-test.h ioctl_32.h ioctl_64.h
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb
deleted file mode 100644
index 57cfb13..0000000
--- a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "v4l2 and IR applications"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \
- file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0"
-PROVIDES = "libv4l media-ctl"
-
-DEPENDS = "jpeg \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
-DEPENDS_append_libc-musl = " argp-standalone"
-DEPENDS_append_class-target = " udev"
-LDFLAGS_append = " -pthread"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG ??= "media-ctl"
-PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,,"
-
-SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \
- file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \
- file://0001-buildsystem-do-not-assume-building-in-source-tree.patch \
- file://mediactl-pkgconfig.patch \
- file://export-mediactl-headers.patch \
- file://0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch \
- file://0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch \
- file://0003-v4l2-ctl-Do-not-use-getsubopt.patch \
- "
-SRC_URI[md5sum] = "89e1ed6c69c94e0489dc0a638c7841aa"
-SRC_URI[sha256sum] = "5a47dd6f0e7dfe902d94605c01d385a4a4e87583ff5856d6f181900ea81cf46e"
-
-EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev"
-
-VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps"
-
-PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dbg libv4l-dev"
-
-FILES_media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*"
-
-FILES_ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules"
-RDEPENDS_ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}"
-
-FILES_rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
-
-FILES_${PN} = "${bindir} ${sbindir}"
-
-FILES_libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \
- ${libdir}/libdvbv5*${SOLIBS} \
- ${libdir}/libv4l/*-decomp"
-
-FILES_libv4l-dbg += "${libdir}/libv4l/.debug ${libdir}/libv4l/plugins/.debug"
-FILES_libv4l-dev += "${includedir} ${libdir}/pkgconfig \
- ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \
- ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la"
-
-PARALLEL_MAKE_class-native = ""
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.16.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.16.0.bb
new file mode 100644
index 0000000..bcead00
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.16.0.bb
@@ -0,0 +1,54 @@
+SUMMARY = "v4l2 and IR applications"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \
+ file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0"
+PROVIDES = "libv4l media-ctl"
+
+DEPENDS = "jpeg \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+DEPENDS_append_libc-musl = " argp-standalone"
+DEPENDS_append_class-target = " udev"
+LDFLAGS_append = " -pthread"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG ??= "media-ctl"
+PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,,"
+
+SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \
+ file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \
+ file://mediactl-pkgconfig.patch \
+ file://export-mediactl-headers.patch \
+ file://0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch \
+ file://0003-v4l2-ctl-Do-not-use-getsubopt.patch \
+ "
+SRC_URI[md5sum] = "21a6ec3605a1c3114c8ccb70a963c871"
+SRC_URI[sha256sum] = "f1b425584284bac378b76331c0671dc890bd7af49c03e8a6cc0c70e57eea0bad"
+
+EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev"
+
+VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps"
+
+PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dev"
+
+RPROVIDES_${PN}-dbg += "libv4l-dbg"
+
+FILES_media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*"
+
+FILES_ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules"
+RDEPENDS_ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}"
+
+FILES_rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
+
+FILES_${PN} = "${bindir} ${sbindir}"
+
+FILES_libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \
+ ${libdir}/libdvbv5*${SOLIBS} \
+ ${libdir}/libv4l/*-decomp"
+
+FILES_libv4l-dev += "${includedir} ${libdir}/pkgconfig \
+ ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \
+ ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la"
+
+PARALLEL_MAKE_class-native = ""
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb
index d526db2..e823e42 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb
@@ -84,13 +84,13 @@
install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
}
-PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
+PACKAGES =+ "libgps libgpsd python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
+
+RPROVIDES_${PN}-dbg += "python-pygps-dbg"
FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
${libdir}/libQgpsmm.prl"
-FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
-
RDEPENDS_${PN} = "gpsd-gpsctl"
RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
diff --git a/meta-openembedded/meta-oe/recipes-security/nmap/files/nmap-redefine-the-python-library-dir.patch b/meta-openembedded/meta-oe/recipes-security/nmap/files/nmap-redefine-the-python-library-dir.patch
new file mode 100644
index 0000000..356b507
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-security/nmap/files/nmap-redefine-the-python-library-dir.patch
@@ -0,0 +1,37 @@
+[PATCH] redefine the python library install dir
+
+Upstream-Status: Pending
+
+If install-lib is not defined, it is always /usr/lib/, but it
+maybe /usr/lib64 for multilib
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 1bb062c..cced2fb 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -311,7 +311,7 @@ build-zenmap: $(ZENMAPDIR)/setup.py $(ZENMAPDIR)/zenmapCore/Version.py
+
+ install-zenmap: $(ZENMAPDIR)/setup.py
+ $(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
+- cd $(ZENMAPDIR) && $(PYTHON) setup.py --quiet install --prefix "$(prefix)" --force $(if $(DESTDIR),--root "$(DESTDIR)")
++ cd $(ZENMAPDIR) && $(PYTHON) setup.py --quiet install --prefix "$(prefix)" --install-lib="${PYTHON_SITEPACKAGES_DIR}" --force $(if $(DESTDIR),--root "$(DESTDIR)")
+ $(INSTALL) -c -m 644 docs/zenmap.1 $(DESTDIR)$(mandir)/man1/
+ # Create a symlink from nmapfe to zenmap if nmapfe doesn't exist or is
+ # already a link.
+@@ -328,7 +328,7 @@ build-nping: $(NPINGDIR)/Makefile nbase_build nsock_build netutil_build $(NPINGD
+ @cd $(NPINGDIR) && $(MAKE)
+
+ install-ndiff:
+- cd $(NDIFFDIR) && $(PYTHON) setup.py install --prefix "$(prefix)" $(if $(DESTDIR),--root "$(DESTDIR)")
++ cd $(NDIFFDIR) && $(PYTHON) setup.py install --prefix "$(prefix)" --install-lib="${PYTHON_SITEPACKAGES_DIR}" $(if $(DESTDIR),--root "$(DESTDIR)")
+
+ NSE_FILES = scripts/script.db scripts/*.nse
+ NSE_LIB_LUA_FILES = nselib/*.lua nselib/*.luadoc
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-security/nmap/files/nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch b/meta-openembedded/meta-oe/recipes-security/nmap/files/nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch
new file mode 100644
index 0000000..cfe043a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-security/nmap/files/nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch
@@ -0,0 +1,48 @@
+[PATCH] replace "./shtool mkdir" with coreutils mkdir command
+
+Upstream-Status: Pending
+
+"./shtool mkdir" is used when mkdir has not -p parameter, but mkdir in today
+most release has supportted the -p parameter, not need to use shtool, and it
+can not fix the race if two process are running mkdir to create same dir
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ ncat/Makefile.in | 4 ++--
+ nmap-update/Makefile.in | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ncat/Makefile.in b/ncat/Makefile.in
+index cfd306d..2166e08 100644
+--- a/ncat/Makefile.in
++++ b/ncat/Makefile.in
+@@ -163,11 +163,11 @@ $(NSOCKDIR)/libnsock.a: $(NSOCKDIR)/Makefile
+
+ install: $(TARGET)
+ @echo Installing Ncat;
+- $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
++ mkdir -p -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
+ $(INSTALL) -c -m 755 ncat $(DESTDIR)$(bindir)/ncat
+ $(STRIP) -x $(DESTDIR)$(bindir)/ncat
+ if [ -n "$(DATAFILES)" ]; then \
+- $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(pkgdatadir); \
++ mkdir -p -m 755 $(DESTDIR)$(pkgdatadir); \
+ $(INSTALL) -c -m 644 $(DATAFILES) $(DESTDIR)$(pkgdatadir)/; \
+ fi
+ $(INSTALL) -c -m 644 docs/$(TARGET).1 $(DESTDIR)$(mandir)/man1/$(TARGET).1
+diff --git a/nmap-update/Makefile.in b/nmap-update/Makefile.in
+index 89ff928..93f48d8 100644
+--- a/nmap-update/Makefile.in
++++ b/nmap-update/Makefile.in
+@@ -37,7 +37,7 @@ $(NBASELIB):
+ cd $(NBASEDIR) && $(MAKE)
+
+ install: nmap-update
+- $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
++ mkdir -p -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
+ $(INSTALL) -c -m 755 nmap-update $(DESTDIR)$(bindir)
+ $(STRIP) -x $(DESTDIR)$(bindir)/nmap-update
+ $(INSTALL) -c -m 644 ../docs/nmap-update.1 $(DESTDIR)$(mandir)/man1/
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb b/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb
new file mode 100644
index 0000000..01be151
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb
@@ -0,0 +1,48 @@
+SUMMARY = "network auditing tool"
+DESCRIPTION = "Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing.\nGui support via appending to IMAGE_FEATURES x11-base in local.conf"
+SECTION = "security"
+LICENSE = "GPL-2.0"
+
+LIC_FILES_CHKSUM = "file://COPYING;beginline=7;endline=12;md5=1489288f46af415fadc4e8b6345ab9f4"
+
+SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \
+ file://nmap-redefine-the-python-library-dir.patch \
+ file://nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch \
+"
+
+SRC_URI[md5sum] = "84eb6fbe788e0d4918c2b1e39421bf79"
+SRC_URI[sha256sum] = "847b068955f792f4cc247593aca6dc3dc4aae12976169873247488de147a6e18"
+
+inherit autotools-brokensep pkgconfig pythonnative
+
+PACKAGECONFIG ?= "ncat nping ndiff pcap"
+
+PACKAGECONFIG[pcap] = "--with-pcap=linux, --without-pcap, libpcap, libpcap"
+PACKAGECONFIG[pcre] = "--with-libpcre=${STAGING_LIBDIR}/.., --with-libpcre=included, libpre"
+PACKAGECONFIG[ssl] = "--with-openssl=${STAGING_LIBDIR}/.., --without-openssl, openssl, openssl"
+PACKAGECONFIG[ssh2] = "--with-openssh2=${STAGING_LIBDIR}/.., --without-openssh2, libssh2, libssh2"
+PACKAGECONFIG[libz] = "--with-libz=${STAGING_LIBDIR}/.., --without-libz, zlib, zlib"
+
+#disable/enable packages
+PACKAGECONFIG[nping] = ",--without-nping,"
+PACKAGECONFIG[ncat] = ",--without-ncat,"
+PACKAGECONFIG[ndiff] = ",--without-ndiff,python"
+PACKAGECONFIG[update] = ",--without-nmap-update,"
+
+EXTRA_OECONF = "--with-libdnet=included --with-liblinear=included --without-subversion --with-liblua=included"
+
+# zenmap needs python-pygtk which has been removed
+# it also only works with python2
+# disable for now until py3 is supported
+EXTRA_OECONF += "--without-zenmap"
+
+export PYTHON_SITEPACKAGES_DIR
+
+do_configure() {
+ autoconf
+ oe_runconf
+}
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
+
+RDEPENDS_${PN} = "python"
diff --git a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb
index b59d88f..c171963 100644
--- a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb
@@ -7,7 +7,7 @@
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://Copyright;md5=575cf2715c3bf894e1f79aec1d4eaaf5"
SECTION = "base"
-DEPENDS = "ncurses gettext-native"
+DEPENDS = "ncurses virtual/crypt gettext-native"
SRC_URI = " \
http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/${BP}.tar.gz \
file://0001-Enable-system-malloc-on-all-linux.patch \
diff --git a/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb b/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb
index 100c449..3aab65b 100644
--- a/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb
@@ -49,6 +49,7 @@
do_install_append () {
rm -fr ${D}/usr/share
+ rmdir --ignore-fail-on-non-empty ${D}/usr
}
pkg_postinst_${PN} () {
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio.inc b/meta-openembedded/meta-oe/recipes-support/asio/asio.inc
deleted file mode 100644
index 54f78e4..0000000
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Asio is a cross-platform C++ library for network and low-level \
- I/O programming that provides developers with a consistent asynchronous \
- model using a modern C++ approach."
-AUTHOR = "Christopher M. Kohlhoff (chris at kohlhoff dot com)"
-HOMEPAGE = "http://think-async.com/Asio"
-SECTION = "libs"
-LICENSE = "BSL-1.0"
-
-DEPENDS = "boost openssl"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
-
-inherit autotools
-
-ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch b/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch
deleted file mode 100644
index 4244b97..0000000
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 45c855400842fd40f200ae9b7abf9debf4ab5436 Mon Sep 17 00:00:00 2001
-From: Christopher Kohlhoff <chris@kohlhoff.com>
-Date: Sun, 28 Aug 2016 09:21:53 +1000
-Subject: [PATCH] Automatically handle glibc variant of strerror_r without
- #ifdefs.
-
----
-Upstream-Status: Backport https://github.com/chriskohlhoff/asio/commit/443bc17d13eb5e37de780ea6e23157493cf7b3b9
- include/asio/impl/error_code.ipp | 16 +++++++---------
- 1 file changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/include/asio/impl/error_code.ipp b/include/asio/impl/error_code.ipp
-index ccb70dd..a117658 100644
---- a/include/asio/impl/error_code.ipp
-+++ b/include/asio/impl/error_code.ipp
-@@ -97,20 +97,18 @@ public:
- #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
- using namespace std;
- return strerror(value);
--#elif defined(__MACH__) && defined(__APPLE__) \
-- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
-- || defined(_AIX) || defined(__hpux) || defined(__osf__) \
-- || defined(__ANDROID__)
-- char buf[256] = "";
-- using namespace std;
-- strerror_r(value, buf, sizeof(buf));
-- return buf;
- #else
- char buf[256] = "";
-- return strerror_r(value, buf, sizeof(buf));
-+ using namespace std;
-+ return strerror_result(strerror_r(value, buf, sizeof(buf)), buf);
- #endif
- #endif // defined(ASIO_WINDOWS)
- }
-+
-+private:
-+ // Helper function to adapt the result from glibc's variant of strerror_r.
-+ static const char* strerror_result(int, const char* s) { return s; }
-+ static const char* strerror_result(const char* s, const char*) { return s; }
- };
-
- } // namespace detail
---
-2.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch
deleted file mode 100644
index 7f95f5a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From dac36a170188917e2f61b0394ba8a2f6509ddf3a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
-Date: Tue, 8 Nov 2016 20:39:55 +0000
-Subject: [PATCH] use POSIX poll.h instead of sys/poll.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-POSIX specifies that <poll.h> is the correct header to
-include for poll()
- http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
-whereas <sys/poll.h> is only needed for ancient glibc (<2.3),
-so let's follow POSIX instead.
-
-As a side-effect, this silences numerous compilation warnings
-when compiling against the musl C-library:
-
-In file included from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/socket_types.hpp:57:0,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/error_code.ipp:29,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/error_code.hpp:185,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/throw_error.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/impl/posix_tss_ptr.ipp:23,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/posix_tss_ptr.hpp:74,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/tss_ptr.hpp:27,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/call_stack.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/handler_alloc_hook.ipp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/handler_alloc_hook.hpp:78,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/handler_alloc_helpers.hpp:21,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/bind_handler.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/wrapped_handler.hpp:18,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/io_service.hpp:24,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_io_object.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_socket.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_datagram_socket.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/buffers/reference_counted.cpp:11:
-<sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
- #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
- ^~~~~~~
-
-etc.
-
-Signed-off-by: André Draszik <adraszik@tycoint.com>
----
-Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419
- include/asio/detail/socket_types.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/asio/detail/socket_types.hpp b/include/asio/detail/socket_types.hpp
-index f2600c2..cb61b8e 100644
---- a/include/asio/detail/socket_types.hpp
-+++ b/include/asio/detail/socket_types.hpp
-@@ -54,7 +54,7 @@
- #else
- # include <sys/ioctl.h>
- # if !defined(__SYMBIAN32__)
--# include <sys/poll.h>
-+# include <poll.h>
- # endif
- # include <sys/types.h>
- # include <sys/stat.h>
---
-2.10.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb
deleted file mode 100644
index 5656039..0000000
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require asio.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=fede5286a78559dd646e355ab0cc8f04"
-
-SRC_URI[md5sum] = "85d014a356a6e004cd30ccd4c9b6a5c2"
-SRC_URI[sha256sum] = "e0d71c40a7b1f6c1334008fb279e7361b32a063e020efd21e40d9d8ff037195e"
-
-SRC_URI += "\
- file://0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch \
- file://0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch \
-"
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb
new file mode 100644
index 0000000..28cd9c0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Asio is a cross-platform C++ library for network and low-level \
+ I/O programming that provides developers with a consistent asynchronous \
+ model using a modern C++ approach."
+AUTHOR = "Christopher M. Kohlhoff (chris at kohlhoff dot com)"
+HOMEPAGE = "http://think-async.com/Asio"
+SECTION = "libs"
+LICENSE = "BSL-1.0"
+
+DEPENDS = "boost openssl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
+
+inherit autotools
+
+ALLOW_EMPTY_${PN} = "1"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3e73f311a3af69e6df275e8c3b1c09b5"
+
+SRC_URI[md5sum] = "037854d113024f57c9753d6326b339bc"
+SRC_URI[sha256sum] = "a9091b4de847539fa5b2259bf76a5355339c7eaaa5e33d7d4ae74d614c21965a"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch
new file mode 100644
index 0000000..5646061
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch
@@ -0,0 +1,26 @@
+From 13f3771655f859d5e0332dd65b9c43f572f6359d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 16:02:06 -0700
+Subject: [PATCH] add sys/sysmacros.h for major/minor macros
+
+photosyst.c:1465:19: error: called object 'major' is not a function or function pointer
+ dmp->major = major(statbuf.st_rdev);
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ photosyst.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/photosyst.c b/photosyst.c
+index 38828ec..caed352 100644
+--- a/photosyst.c
++++ b/photosyst.c
+@@ -152,6 +152,7 @@
+ static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof Exp $";
+
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch
deleted file mode 100644
index 3708f60..0000000
--- a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 7b651793269b6b86f12c43c30b751b86def27222 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 18 Mar 2017 17:56:40 -0700
-Subject: [PATCH] include missing header files
-
-fixes build with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- deviate.c | 1 +
- procdbase.c | 2 +-
- showgeneric.c | 2 +-
- showlinux.c | 2 +-
- showprocs.c | 2 +-
- showsys.c | 2 +-
- 6 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/deviate.c b/deviate.c
-index 7cf1b49..8e615af 100644
---- a/deviate.c
-+++ b/deviate.c
-@@ -178,6 +178,7 @@ static const char rcsid[] = "$Id: deviate.c,v 1.45 2010/10/23 14:02:03 gerlof Ex
- #include <stdio.h>
- #include <errno.h>
- #include <fcntl.h>
-+#include <stdlib.h>
- #include <unistd.h>
- #include <limits.h>
- #include <memory.h>
-diff --git a/procdbase.c b/procdbase.c
-index 9cab347..0487d26 100644
---- a/procdbase.c
-+++ b/procdbase.c
-@@ -67,7 +67,7 @@ static const char rcsid[] = "$Id: procdbase.c,v 1.8 2010/04/23 12:19:35 gerlof E
- #include <fcntl.h>
- #include <unistd.h>
- #include <string.h>
--#include <malloc.h>
-+#include <stdlib.h>
-
- #include "atop.h"
- #include "photoproc.h"
-diff --git a/showgeneric.c b/showgeneric.c
-index 775afa8..3d5be0e 100644
---- a/showgeneric.c
-+++ b/showgeneric.c
-@@ -268,7 +268,7 @@ static const char rcsid[] = "$Id: showgeneric.c,v 1.71 2010/10/25 19:08:32 gerlo
- #include <errno.h>
- #include <fcntl.h>
- #include <string.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showlinux.c b/showlinux.c
-index 6e60754..aba2ee6 100644
---- a/showlinux.c
-+++ b/showlinux.c
-@@ -274,7 +274,7 @@ static const char rcsid[] = "$Id: showlinux.c,v 1.70 2010/10/23 14:04:12 gerlof
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showprocs.c b/showprocs.c
-index 5194524..f0169ad 100644
---- a/showprocs.c
-+++ b/showprocs.c
-@@ -94,7 +94,7 @@ static const char rcsid[] = "$Id: showprocs.c,v 1.15 2011/09/05 11:44:16 gerlof
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showsys.c b/showsys.c
-index 26331be..5a05fe5 100644
---- a/showsys.c
-+++ b/showsys.c
-@@ -80,7 +80,7 @@ static const char rcsid[] = "XXXXXX";
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
---
-2.12.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb
deleted file mode 100644
index 1ab9e7c..0000000
--- a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "Monitor for system resources and process activity"
-DESCRIPTION = "Atop is an ASCII full-screen performance monitor for Linux that \
-is capable of reporting the activity of all processes (even if processes have \
-finished during the interval), daily logging of system and process activity for \
-long-term analysis, highlighting overloaded system resources by using colors, \
-etc. At regular intervals, it shows system-level activity related to the CPU, \
-memory, swap, disks (including LVM) and network layers, and for every process \
-(and thread) it shows e.g. the CPU utilization, memory growth, disk \
-utilization, priority, username, state, and exit code."
-HOMEPAGE = "http://www.atoptool.nl"
-SECTION = "console/utils"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-
-DEPENDS = "ncurses zlib"
-
-ATOP_VER = "${@'-'.join(d.getVar('PV').rsplit('.', 1))}"
-
-SRC_URI = " \
- http://www.atoptool.nl/download/${BPN}-${ATOP_VER}.tar.gz \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \
- file://0001-include-missing-header-files.patch \
- file://remove-bashisms.patch \
- file://fix-permissions.patch \
- file://sysvinit-implement-status.patch \
-"
-
-SRC_URI[md5sum] = "034dc1544f2ec4e4d2c739d320dc326d"
-SRC_URI[sha256sum] = "c785b8a2355be28b3de6b58a8ea4c4fcab8fadeaa57a99afeb03c66fac8e055d"
-
-S = "${WORKDIR}/${BPN}-${ATOP_VER}"
-
-do_compile() {
- oe_runmake all
-}
-
-do_install() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- make DESTDIR=${D} VERS=${ATOP_VER} SYSDPATH=${systemd_system_unitdir} \
- PMPATHD=${systemd_unitdir}/system-sleep systemdinstall
- install -d ${D}${sysconfdir}/tmpfiles.d
- install -m 644 ${WORKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf
- rm -f ${D}${systemd_system_unitdir}/atopacct.service
- else
- make DESTDIR=${D} VERS=${ATOP_VER} sysvinstall
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 644 ${WORKDIR}/volatiles.99_atop ${D}${sysconfdir}/default/volatiles/99_atop
- rm -f ${D}${sysconfdir}/init.d/atopacct
- fi
-
- # remove atopacct related files
- rm -rf ${D}${sbindir} ${D}${mandir}/man8
-}
-
-inherit systemd
-
-SYSTEMD_SERVICE_${PN} = "atop.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-FILES_${PN} += "${systemd_unitdir}/system-sleep"
-
-RDEPENDS_${PN} = "procps"
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.3.0.bb b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.3.0.bb
new file mode 100644
index 0000000..302813c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.3.0.bb
@@ -0,0 +1,57 @@
+SUMMARY = "Monitor for system resources and process activity"
+DESCRIPTION = "Atop is an ASCII full-screen performance monitor for Linux that \
+is capable of reporting the activity of all processes (even if processes have \
+finished during the interval), daily logging of system and process activity for \
+long-term analysis, highlighting overloaded system resources by using colors, \
+etc. At regular intervals, it shows system-level activity related to the CPU, \
+memory, swap, disks (including LVM) and network layers, and for every process \
+(and thread) it shows e.g. the CPU utilization, memory growth, disk \
+utilization, priority, username, state, and exit code."
+HOMEPAGE = "http://www.atoptool.nl"
+SECTION = "console/utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+DEPENDS = "ncurses zlib"
+
+SRC_URI = "http://www.atoptool.nl/download/${BP}.tar.gz \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \
+ file://remove-bashisms.patch \
+ file://fix-permissions.patch \
+ file://sysvinit-implement-status.patch \
+ file://0001-add-sys-sysmacros.h-for-major-minor-macros.patch \
+ "
+SRC_URI[md5sum] = "48e1dbef8c7d826e68829a8d5fc920fc"
+SRC_URI[sha256sum] = "73e4725de0bafac8c63b032e8479e2305e3962afbe977ec1abd45f9e104eb264"
+
+do_compile() {
+ oe_runmake all
+}
+
+do_install() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ make DESTDIR=${D} VERS=${PV} SYSDPATH=${systemd_system_unitdir} \
+ PMPATHD=${systemd_unitdir}/system-sleep systemdinstall
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m 644 ${WORKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf
+ rm -f ${D}${systemd_system_unitdir}/atopacct.service
+ else
+ make DESTDIR=${D} VERS=${PV} sysvinstall
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 644 ${WORKDIR}/volatiles.99_atop ${D}${sysconfdir}/default/volatiles/99_atop
+ rm -f ${D}${sysconfdir}/init.d/atopacct
+ fi
+
+ # remove atopacct related files
+ rm -rf ${D}${sbindir} ${D}${mandir}/man8
+}
+
+inherit systemd
+
+SYSTEMD_SERVICE_${PN} = "atop.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+FILES_${PN} += "${systemd_unitdir}/system-sleep"
+
+RDEPENDS_${PN} = "procps"
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc b/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc
index 185abae..c939d4b 100644
--- a/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc
@@ -31,3 +31,5 @@
PACKAGECONFIG ??= ""
PACKAGECONFIG[libselinux] = "--with-selinux,--without-selinux,libselinux"
+
+EXTRA_AUTORECONF += "-I ${S}/gnulib/m4"
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb
new file mode 100644
index 0000000..26e191b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb
@@ -0,0 +1,4 @@
+require augeas.inc
+
+SRC_URI[md5sum] = "6c0b2ea6eec45e8bc374b283aedf27ce"
+SRC_URI[sha256sum] = "52db256afab261d31cc147eaa1a71795a5fec59e888dfd0b65a84c7aacd6364d"
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb
deleted file mode 100644
index c4f62e7..0000000
--- a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require augeas.inc
-
-SRC_URI[md5sum] = "01190e455c513124a2dae29a1182c113"
-SRC_URI[sha256sum] = "223bb6e6fe3e9e92277dafd5d34e623733eb969a72a382998d204feab253f73f"
diff --git a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
index 29917c8..a62e5ef 100644
--- a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
@@ -1,20 +1,19 @@
DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems."
AUTHOR = "Sameer Agarwal and Keir Mierle and Others"
HOMEPAGE = "http://ceres-solver.org/"
-
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=35e00f0c4c96a0820a03e0b31e6416be"
+DEPENDS = "libeigen glog"
+
SRC_URI = "git://github.com/ceres-solver/ceres-solver.git"
SRCREV = "facb199f3eda902360f9e1d5271372b7e54febe1"
S = "${WORKDIR}/git"
-DEPENDS = "libeigen glog"
-
inherit cmake
# Only a static library and headers are created
-ALLOW_EMPTY_${PN} = "1"
-
-FILES_${PN}-dev += "${libdir}/cmake/*"
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dev = "${PN}-staticdev"
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb b/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
index 61c08ee..abeeecc 100644
--- a/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
@@ -20,12 +20,6 @@
EXTRA_OEMAKE = "-e MAKEFLAGS="
-# Additional flags. For uclibc we add -DNOARROWKEYS which stops ckermit
-# trying to look inside the stdio headers.
-CKERMIT_ADDITIONAL = ""
-CKERMIT_ADDITIONAL_libc-uclibc = "-DNOARROWKEYS"
-CKERMIT_ADDITIONAL_libc-musl = "-DNOARROWKEYS"
-
TARGET_CC_ARCH += "${LDFLAGS}"
do_compile () {
@@ -49,7 +43,7 @@
-DNORESEND -DNOAUTODL -DNOSTREAMING -DNOHINTS -DNOCKXYZ -DNOLEARN \
-DNOMKDIR -DNOPERMS -DNOCKTIMERS -DNOCKREGEX -DNOREALPATH \
-DCK_SMALL -DNOLOGDIAL -DNORENAME -DNOWHATAMI \
- ${CKERMIT_ADDITIONAL}"
+ -DNOARROWKEYS"
}
do_install () {
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
deleted file mode 100644
index 0feafef..0000000
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: install cmake files into /usr/lib/cmake/cpprestsdk
-Author: Gianfranco Costamagna <locutusofborg@debian.org>
-Upstream-Status: https://github.com/Microsoft/cpprestsdk/pull/737
-Forwarded: https://github.com/Microsoft/cpprestsdk/pull/737
-Last-Update: 2018-04-19
-
---- cpprest-2.10.2.orig/CMakeLists.txt
-+++ cpprest-2.10.2/CMakeLists.txt
-@@ -18,7 +18,7 @@ enable_testing()
- set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
- set(CPPREST_EXCLUDE_WEBSOCKETS OFF CACHE BOOL "Exclude websockets functionality.")
- set(CPPREST_EXCLUDE_COMPRESSION OFF CACHE BOOL "Exclude compression functionality.")
--set(CPPREST_EXPORT_DIR lib/cpprestsdk CACHE STRING "Directory to install CMake config files.")
-+set(CPPREST_EXPORT_DIR lib/cmake/cpprestsdk CACHE STRING "Directory to install CMake config files.")
- set(CPPREST_INSTALL_HEADERS ON CACHE BOOL "Install header files.")
- set(CPPREST_INSTALL ON CACHE BOOL "Add install commands.")
-
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch
new file mode 100644
index 0000000..3ae46a1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch
@@ -0,0 +1,26 @@
+Origin: upstream
+Bug: https://github.com/Microsoft/cpprestsdk/issues/950
+Last-Update: 2018-11-04
+
+Index: cpprest/Release/src/utilities/asyncrt_utils.cpp
+===================================================================
+--- cpprest.orig/Release/src/utilities/asyncrt_utils.cpp
++++ cpprest/Release/src/utilities/asyncrt_utils.cpp
+@@ -356,7 +356,7 @@
+ inline size_t count_utf8_to_utf16(const std::string& s)
+ {
+ const size_t sSize = s.size();
+- auto sData = reinterpret_cast<const UtilCharInternal_t* const>(s.data());
++ auto const sData = reinterpret_cast<const UtilCharInternal_t*>(s.data());
+ size_t result{ sSize };
+
+ for (size_t index = 0; index < sSize;)
+@@ -441,7 +441,7 @@
+ {
+ // Save repeated heap allocations, use the length of resulting sequence.
+ const size_t srcSize = s.size();
+- auto srcData = reinterpret_cast<const UtilCharInternal_t* const>(s.data());
++ auto const srcData = reinterpret_cast<const UtilCharInternal_t*>(s.data());
+ utf16string dest(count_utf8_to_utf16(s), L'\0');
+ utf16string::value_type* const destData = &dest[0];
+ size_t destIndex = 0;
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
new file mode 100644
index 0000000..75f74ec
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
@@ -0,0 +1,25 @@
+Description: new toolchain might have increased the float precision
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2017-10-28
+Forwarded: https://github.com/Microsoft/cpprestsdk/issues/576
+
+--- casablanca-2.10.0.orig/Release/tests/functional/streams/istream_tests.cpp
++++ casablanca-2.10.0/Release/tests/functional/streams/istream_tests.cpp
+@@ -1302,7 +1302,7 @@ void compare_float(float expected, float
+ {
+ compare_floating(expected, actual, FLT_EPSILON);
+ }
+-
++/*
+ TEST(extract_floating_point)
+ {
+ std::string test_string;
+@@ -1349,7 +1349,7 @@ TEST(extract_floating_point)
+ VERIFY_ARE_EQUAL(1 / expected, 1 / actual);
+ } while (!std_istream.eof());
+ }
+-
++*/
+ TEST(extract_floating_point_with_exceptions)
+ {
+ std::vector<std::pair<std::string, std::string>> tests;
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
new file mode 100644
index 0000000..2dff0d9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
@@ -0,0 +1,142 @@
+Description: Debian forbids calls to external websites.
+
+Author: Gianfranco Costamagna <locutus@debian.org>
+Origin: Debian
+Forwarded: not-needed
+Reviewed-By: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2015-11-25
+
+Index: casablanca/Release/tests/functional/http/client/CMakeLists.txt
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/CMakeLists.txt
++++ casablanca/Release/tests/functional/http/client/CMakeLists.txt
+@@ -12,7 +12,6 @@
+ multiple_requests.cpp
+ oauth1_tests.cpp
+ oauth2_tests.cpp
+- outside_tests.cpp
+ pipeline_stage_tests.cpp
+ progress_handler_tests.cpp
+ proxy_tests.cpp
+Index: casablanca/Release/tests/functional/http/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/http/client/authentication_tests.cpp
+@@ -663,15 +663,19 @@
+ VERIFY_ARE_EQUAL(return_code, response.status_code());
+ }
+
++/*
+ TEST(auth_no_data)
+ {
+ auth_test_impl(false);
+ }
++*/
+
++/*
+ TEST(unsuccessful_auth_with_basic_cred)
+ {
+ auth_test_impl(true);
+ }
++*/
+
+ TEST_FIXTURE(uri_address, set_user_options_asio_http)
+ {
+@@ -692,7 +696,7 @@
+ auto response = client.request(methods::GET).get();
+ VERIFY_ARE_EQUAL(200, response.status_code());
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, set_user_options_asio_https)
+ {
+ handle_timeout([]
+@@ -714,7 +718,7 @@
+ VERIFY_IS_FALSE(v.empty());
+ });
+ }
+-
++*/
+ #endif
+
+ } // SUITE(authentication_tests)
+Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+@@ -86,7 +86,7 @@
+ }
+ return false;
+ }
+-
++/*
+ TEST(ssl_test)
+ {
+ websocket_client client;
+@@ -122,7 +122,7 @@
+ throw;
+ }
+ }
+-
++*/
+ // These tests are specific to our websocketpp based implementation.
+ #if !defined(__cplusplus_winrt)
+
+@@ -153,14 +153,15 @@
+ throw;
+ }
+ }
+-
++/*
+ // Test specifically for server SignalR team hit interesting cases with.
+ TEST(sni_with_older_server_test)
+ {
+ websocket_client client;
+ sni_test_impl(client);
+ }
+-
++*/
++/*
+ // WinRT doesn't expose option for disabling.
+ // No stable server is available to reliably test this.
+ // The configuration below relies on a timeout in the success case.
+@@ -188,7 +189,8 @@
+ throw;
+ }
+ }
+-
++*/
++/*
+ // Winrt doesn't allow explicitly setting server host for SNI.
+ TEST(sni_explicit_hostname)
+ {
+@@ -199,7 +201,7 @@
+ websocket_client client(config);
+ sni_test_impl(client);
+ }
+-
++*/
+ void handshake_error_test_impl(const ::utility::string_t &host)
+ {
+ websocket_client client;
+Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp
++++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+@@ -415,6 +415,7 @@
+ }
+ #endif
+
++/*
+ // Try to connect to a server on a closed port and cancel the operation.
+ TEST_FIXTURE(uri_address, cancel_bad_port)
+ {
+@@ -446,7 +447,7 @@
+
+ VERIFY_THROWS_HTTP_ERROR_CODE(t.get(), std::errc::operation_canceled);
+ }
+-
++*/
+ } // SUITE(connections_and_errors)
+
+ }}}}
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch
new file mode 100644
index 0000000..93c3e8a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch
@@ -0,0 +1,103 @@
+Description: Some tests takes too long on slow architectures and timeouts
+ We can safely disable them.
+ e.g.
+ Release/tests/functional/http/client/connections_and_errors.cpp:142: error: Failure in request_timeout_microsecond: Test case timed out and is hung. Aborting all remaining test cases. Expected under 180000ms. FAILED
+
+Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp
++++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+@@ -127,7 +127,7 @@
+ // Try sending another request.
+ VERIFY_THROWS(client.request(methods::GET).wait(), web::http::http_exception);
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, request_timeout)
+ {
+ test_http_server::scoped_server scoped(m_uri);
+@@ -146,7 +146,8 @@
+ #endif
+ t.get();
+ }
+-
++*/
++/*
+ TEST_FIXTURE(uri_address, request_timeout_microsecond)
+ {
+ pplx::task<test_request*> t;
+@@ -168,7 +169,7 @@
+ try { t.get(); }
+ catch (...) {}
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, invalid_method)
+ {
+ web::http::uri uri(U("http://www.bing.com/"));
+Index: casablanca/Release/tests/functional/http/listener/requests_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/listener/requests_tests.cpp
++++ casablanca/Release/tests/functional/http/listener/requests_tests.cpp
+@@ -173,7 +173,7 @@
+
+ listener.close().wait();
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, response_order)
+ {
+ http_listener listener(m_uri);
+@@ -217,7 +217,7 @@
+
+ listener.close().wait();
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, uri_encoding, "Ignore", "Codeplex 201")
+ {
+ http_listener listener(m_uri);
+Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+@@ -221,7 +221,7 @@
+ VERIFY_ARE_EQUAL("TLS handshake failed", e.error_code().message());
+ }
+ }
+-
++/*
+ TEST(self_signed_cert)
+ {
+ handshake_error_test_impl(U("wss://self-signed.badssl.com/"));
+@@ -236,7 +236,7 @@
+ {
+ handshake_error_test_impl(U("wss://expired.badssl.com/"));
+ }
+-
++*/
+ #endif
+
+ } // SUITE(authentication_tests)
+Index: casablanca/Release/tests/functional/websockets/client/client_construction.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/client_construction.cpp
++++ casablanca/Release/tests/functional/websockets/client/client_construction.cpp
+@@ -81,7 +81,7 @@
+ VERIFY_ARE_EQUAL(config2.credentials().username(), cred.username());
+ }
+
+-
++/*
+ // Verify that we can get the baseuri from websocket_client connect.
+ TEST_FIXTURE(uri_address, uri_test)
+ {
+@@ -101,7 +101,7 @@
+ VERIFY_ARE_EQUAL(client2.uri(), m_uri);
+ client2.close().wait();
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, move_operations)
+ {
+ std::string body("hello");
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch
new file mode 100644
index 0000000..e6f6477
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch
@@ -0,0 +1,38 @@
+Description: Find system brotli
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Forwarded: https://github.com/Microsoft/cpprestsdk/pull/952
+Last-Update: 2018-11-05
+
+--- cpprest-2.10.7.orig/Release/cmake/cpprest_find_brotli.cmake
++++ cpprest-2.10.7/Release/cmake/cpprest_find_brotli.cmake
+@@ -3,8 +3,17 @@ function(cpprest_find_brotli)
+ return()
+ endif()
+
+- find_package(unofficial-brotli REQUIRED)
+
+- add_library(cpprestsdk_brotli_internal INTERFACE)
+- target_link_libraries(cpprestsdk_brotli_internal INTERFACE unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon)
++ find_package(PkgConfig)
++ pkg_check_modules(BROTLIENC libbrotlienc)
++ pkg_check_modules(BROTLIDEC libbrotlidec)
++ if(BROTLIDEC_FOUND AND BROTLIENC_FOUND)
++ target_link_libraries(cpprest PRIVATE ${BROTLIDEC_LDFLAGS} ${BROTLIENC_LDFLAGS})
++ else(BROTLIDEC_FOUND AND BROTLIENC_FOUND)
++ find_package(unofficial-brotli REQUIRED)
++ add_library(cpprestsdk_brotli_internal INTERFACE)
++ target_link_libraries(cpprestsdk_brotli_internal INTERFACE unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon)
++ target_link_libraries(cpprest PRIVATE cpprestsdk_brotli_internal)
++ endif(BROTLIDEC_FOUND AND BROTLIENC_FOUND)
++
+ endfunction()
+--- cpprest-2.10.7.orig/Release/src/CMakeLists.txt
++++ cpprest-2.10.7/Release/src/CMakeLists.txt
+@@ -84,7 +84,6 @@ else()
+ target_compile_definitions(cpprest PRIVATE -DCPPREST_EXCLUDE_BROTLI=1)
+ else()
+ cpprest_find_brotli()
+- target_link_libraries(cpprest PRIVATE cpprestsdk_brotli_internal)
+ endif()
+ endif()
+
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
deleted file mode 100644
index 2ba6fc6..0000000
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design."
-SECTION = "libs/network"
-HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/../license.txt;md5=a2e15b954769218ff912468eecd6a02f"
-DEPENDS = "openssl websocketpp zlib boost"
-
-SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master"
-
-SRC_URI += "file://fix-cmake-install.patch"
-
-# tag 2.10.2
-SRCREV= "fea848e2a77563cf2a6f28f8eab396fd6e787fbf"
-
-S = "${WORKDIR}/git/Release"
-
-inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb
new file mode 100644
index 0000000..5cc6385
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/license.txt;md5=a2e15b954769218ff912468eecd6a02f"
+DEPENDS = "openssl websocketpp zlib boost brotli"
+
+EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake -DCPPREST_EXCLUDE_BROTLI=OFF"
+
+SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \
+ file://disable-outside-tests.patch \
+ file://disable-test-timeouts.patch \
+ file://disable-float-tests.patch \
+ file://950-fix.patch \
+ file://system-brotli.patch \
+ "
+
+# tag 2.10.7
+SRCREV= "c4cef129e880a3f9c23a480e8c983793963173bb"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb b/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
deleted file mode 100644
index 8d3c578..0000000
--- a/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Convert text file line endings between CRLF and LF"
-DESCRIPTION = "The Dos2unix package includes utilities dos2unix and \
-unix2dos to convert plain text files in DOS or Mac format to Unix \
-format and vice versa."
-HOMEPAGE = "http://waterlan.home.xs4all.nl/dos2unix.html"
-SECTION = "support"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=1b78fca784db24f4a40e30b300787f3f"
-
-SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix"
-
-# Release 7.4.0
-SRCREV = "1182533bde3c1fe65be2ead465e87671faa2c027"
-
-S = "${WORKDIR}/git/dos2unix"
-
-inherit gettext perlnative
-
-# The dos2unix NLS relies on po4a-native, while po4a recipe is
-# provided by meta-perl layer, so make it optional here, you
-# need have meta-perl in bblayers.conf before enabling nls in
-# PACKAGECONFIG.
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[nls] = "ENABLE_NLS=1,ENABLE_NLS=,po4a-native"
-
-EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} LDFLAGS_USER='${LDFLAGS}'"
-EXTRA_OEMAKE_class-native = "ENABLE_NLS="
-
-do_install () {
- oe_runmake DESTDIR="${D}${base_prefix}" install
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch b/meta-openembedded/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch
new file mode 100644
index 0000000..0551287
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch
@@ -0,0 +1,27 @@
+From 433ffb21119a0f39e882dd3fea4742e64aadcc40 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 09:56:40 -0700
+Subject: [PATCH] eject: Include sys/sysmacros.h for major/minor
+
+Fixes
+arm-bec-linux-gnueabi/gcc/arm-bec-linux-gnueabi/8.2.0/ld: eject.o: in function `GetMajorMinor':
+/usr/src/debug/eject/2.1.5-r1/eject-2.1.5/../../../../../../../workspace/sources/eject/eject.c:866: undefined reference to `major'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ eject.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/eject.c b/eject.c
+index 47e09fe..b171218 100644
+--- a/eject.c
++++ b/eject.c
+@@ -54,6 +54,7 @@
+ #include <sys/wait.h>
+ #include <sys/mtio.h>
+ #include <sys/mount.h>
++#include <sys/sysmacros.h>
+
+ #if defined(__linux__)
+ #include <linux/version.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb b/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
index 49a3d74..dec2e7a 100644
--- a/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
@@ -10,7 +10,8 @@
file://eject-2.1.1-verbose.patch \
file://eject-2.1.5-spaces.patch \
file://eject-timeout.patch \
-"
+ file://0001-eject-Include-sys-sysmacros.h-for-major-minor.patch \
+ "
SRC_URI[md5sum] = "b96a6d4263122f1711db12701d79f738"
SRC_URI[sha256sum] = "ef9f7906484cfde4ba223b2682a37058f9a3c7d3bb1adda7a34a67402e2ffe55"
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb b/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
index 79b2cc1..a4e5d14 100644
--- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
@@ -14,7 +14,7 @@
sed -i '/^ *CC *=/d' Makefile
sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c
oe_runmake
- ./espeak-phoneme-data "${S}/espeak-data"
+ ./espeak-phoneme-data "${S}/espeak-data" "." "${S}/espeak-data/phondata-manifest"
cp -f phondata phonindex phontab "${S}/espeak-data"
}
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc b/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
index 60b3f73..f45455c 100644
--- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
@@ -4,7 +4,8 @@
LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \
- file://gcc-narrowing-warning-fix.patch \
+ file://0001-Fix-build-of-shared-library-on-architectures-needing.patch \
+ file://espeak-1.48-gcc-6-fix.patch \
"
SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3"
SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb b/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
index 552f404..57e30f0 100644
--- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
@@ -36,6 +36,5 @@
rm -f ${S}/espeak-data/phon*
fi
- cp -prf ${S}/espeak-data/* ${D}${datadir}/espeak-data
- chown -R root:root ${D}${datadir}/espeak-data
+ cp -R --no-dereference --preserve=mode,links ${S}/espeak-data/* ${D}${datadir}/espeak-data
}
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch
new file mode 100644
index 0000000..2590e15
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch
@@ -0,0 +1,31 @@
+From 08a464e2b6bd31bb2bf4e258ebfa9b9d65805abf Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Fri, 27 Nov 2015 15:17:02 +0100
+Subject: [PATCH] Fix build of shared library on architectures needing -fPIC
+
+Certain architectures, like Sparc and Sparc64 require objects to be
+built with -fPIC (and not just -fpic) to be usable in shared
+libraries. On other architectures, -fPIC is the same as -fpic so this
+patch doesn't affect such architectures.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 95fe549..c293611 100755
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -110,7 +110,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME)
+
+
+ x_%.o: %.cpp
+- $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic -fvisibility=hidden -pedantic \
++ $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fPIC -fvisibility=hidden -pedantic \
+ -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
+
+ $(LIB_NAME): $(OBJS2)
+--
+2.6.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch
new file mode 100644
index 0000000..6e59c78
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch
@@ -0,0 +1,12 @@
+diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp
+--- a/src/tr_languages.cpp
++++ b/src/tr_languages.cpp
+@@ -198,7 +198,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = {
+ 0x200d, 1, // zero width joiner
+ 0, 0 };
+
+-const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
++const char string_ordinal[] = {'\xc2','\xba',0}; // masculine ordinal character, UTF-8
+
+
+ static Translator* NewTranslator(void)
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
deleted file mode 100644
index 2a9b460..0000000
--- a/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From f09c83640b9173552fd9277c3a48619b903fa436 Mon Sep 17 00:00:00 2001
-From: "Reece H. Dunn" <msclrhd@gmail.com>
-Date: Wed, 20 Jan 2016 20:48:29 +0000
-Subject: [PATCH] Fix GCC -Wnarrowing warnings.
-
----
- src/tr_languages.cpp | 7 ++++---
- src/translate.h | 2 +-
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-Index: espeak-1.48.04-source/src/tr_languages.cpp
-===================================================================
---- espeak-1.48.04-source.orig/src/tr_languages.cpp
-+++ espeak-1.48.04-source/src/tr_languages.cpp
-@@ -198,8 +198,8 @@ static const unsigned short chars_ignore
- 0x200d, 1, // zero width joiner
- 0, 0 };
-
--const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
--
-+const unsigned char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
-+const unsigned char utf8_null[] = { 0 }; // null string, UTF-8
-
- static Translator* NewTranslator(void)
- {//===================================
-@@ -296,7 +296,7 @@ static const char transpose_map_latin[]
- tr->langopts.replace_chars = NULL;
- tr->langopts.ascii_language[0] = 0; // Non-Latin alphabet languages, use this language to speak Latin words, default is English
- tr->langopts.alt_alphabet_lang = L('e','n');
-- tr->langopts.roman_suffix = "";
-+ tr->langopts.roman_suffix = utf8_null;
-
- SetLengthMods(tr,201);
- // tr->langopts.length_mods = length_mods_en;
-@@ -758,7 +758,7 @@ Translator *SelectTranslator(const char
- tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
- tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_ORDINAL;
- tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND;
-- tr->langopts.roman_suffix = string_ordinal;
-+ tr->langopts.roman_suffix = utf8_null;
- }
- else
- if(name2 == L_pap)
-Index: espeak-1.48.04-source/src/translate.h
-===================================================================
---- espeak-1.48.04-source.orig/src/translate.h
-+++ espeak-1.48.04-source/src/translate.h
-@@ -545,7 +545,7 @@ typedef struct {
- int decimal_sep;
- int max_digits; // max number of digits which can be spoken as an integer number (rather than individual digits)
- const char *ordinal_indicator; // UTF-8 string
-- const char *roman_suffix; // add this (ordinal) suffix to Roman numbers (LANG=an)
-+ const unsigned char *roman_suffix; // add this (ordinal) suffix to Roman numbers (LANG=an)
-
- // bit 0, accent name before the letter name, bit 1 "capital" after letter name
- int accents;
diff --git a/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb b/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
deleted file mode 100644
index 13eb794..0000000
--- a/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Replacement syslog API"
-HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
-DESCRIPTION = "The EventLog library aims to be a replacement of the \
- simple syslog() API provided on UNIX systems. The \
- major difference between EventLog and syslog is that \
- EventLog tries to add structure to messages. EventLog \
- provides an interface to build, format and output an \
- event record. The exact format and output method can \
- be customized by the administrator via a configuration \
- file. his package is the runtime part of the library. \
-"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b8ba8e77bcda9a53fac0fe39fe957767"
-
-SRC_URI = "https://www.balabit.com/downloads/syslog-ng/open-source-edition/3.4.2/source/${BPN}_${PV}.tar.gz"
-
-inherit autotools pkgconfig
-
-SRC_URI[md5sum] = "68ec8d1ea3b98fa35002bb756227c315"
-SRC_URI[sha256sum] = "7cb4e6f316daede4fa54547371d5c986395177c12dbdec74a66298e684ac8b85"
diff --git a/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb
deleted file mode 100644
index 48c8221..0000000
--- a/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Interactive Connectivity Establishment library"
-DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)."
-HOMEPAGE = "http://nice.freedesktop.org/wiki/"
-SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz"
-SRC_URI[md5sum] = "3226faeaf48a9150ada00da2e2865959"
-SRC_URI[sha256sum] = "61112d9f3be933a827c8365f20551563953af6718057928f51f487bfe88419e1"
-
-LICENSE = "LGPLv2.1 & MPLv1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
- file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \
-"
-
-DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
-
-inherit autotools pkgconfig gtk-doc gobject-introspection
-
-FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
-FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
-FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
-FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
-
-do_configure_prepend() {
- mkdir ${S}/m4 || true
-}
-
-do_compile_append() {
- for i in $(find ${B} -name "*.pc") ; do
- sed -i -e s:${STAGING_DIR_TARGET}::g \
- -e s:/${TARGET_SYS}::g \
- $i
- done
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb
new file mode 100644
index 0000000..775257f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Interactive Connectivity Establishment library"
+DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)."
+HOMEPAGE = "http://nice.freedesktop.org/wiki/"
+SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz"
+SRC_URI[md5sum] = "c9b9b74b8ae1b3890e4bd93f1b70e8ff"
+SRC_URI[sha256sum] = "be120ba95d4490436f0da077ffa8f767bf727b82decf2bf499e39becc027809c"
+
+LICENSE = "LGPLv2.1 & MPLv1.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
+ file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \
+"
+
+DEPENDS = "glib-2.0 gnutls"
+
+PACKAGECONFIG ??= "gstreamer1.0"
+PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
+PACKAGECONFIG[gstreamer0.10] = "--with-gstreamer-0.10,--without-gstreamer-0.10,gstreamer gst-plugins-base"
+PACKAGECONFIG[gstreamer1.0] = "--with-gstreamer,--without-gstreamer,gstreamer1.0 gstreamer1.0-plugins-base"
+
+inherit autotools pkgconfig gtk-doc gobject-introspection
+
+FILES_${PN} += "${libdir}/gstreamer-0.10/*.so ${libdir}/gstreamer-1.0/*.so"
+FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-1.0/*.la"
+FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a ${libdir}/gstreamer-1.0/*.a"
+FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug ${libdir}/gstreamer-1.0/.debug"
+
+do_configure_prepend() {
+ mkdir ${S}/m4 || true
+}
+
+do_compile_append() {
+ for i in $(find ${B} -name "*.pc") ; do
+ sed -i -e s:${STAGING_DIR_TARGET}::g \
+ -e s:/${TARGET_SYS}::g \
+ $i
+ done
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
index 5f6f990..b768553 100644
--- a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
@@ -14,8 +14,6 @@
install -m 0644 ${WORKDIR}/fb.modes ${D}${sysconfdir}
}
-inherit allarch
-
# fb.modes file is MACHINE_ARCH, base.bbclass correctly changes it to MACHINE_ARCH, but too late for allarch.bbclass
# to disable "all" behavior (found when comparing qemuarm and qemux86 signatures)
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
deleted file mode 100644
index aae6ec9..0000000
--- a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-DESCRIPTION = "FFTW"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-SRC_URI = " \
- http://www.fftw.org/fftw-${PV}.tar.gz \
- file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
-"
-SRC_URI[md5sum] = "0d5915d7d39b3253c1cc05030d79ac47"
-SRC_URI[sha256sum] = "3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573"
-
-inherit autotools pkgconfig
-
-# we had multiple recipes in the past
-PROVIDES = "fftwl fftwf"
-
-EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
-FFTW_NEON_class-native = ""
-
-do_configure() {
- # configure fftw
- rm -rf ${WORKDIR}/build-fftw
- mkdir -p ${B}
- cd ${B}
- # full (re)configure
- autotools_do_configure
- mv ${B} ${WORKDIR}/build-fftw
-
- # configure fftwl
- rm -rf ${WORKDIR}/build-fftwl
- mkdir -p ${B}
- cd ${B}
- # configure only
- oe_runconf --enable-long-double
- mv ${B} ${WORKDIR}/build-fftwl
-
- # configure fftwf
- rm -rf ${WORKDIR}/build-fftwf
- mkdir -p ${B}
- cd ${B}
- # configure only
- oe_runconf --enable-single ${FFTW_NEON}
- mv ${B} ${WORKDIR}/build-fftwf
-}
-
-do_compile() {
- for lib in fftw fftwl fftwf; do
- cd ${WORKDIR}/build-$lib
- autotools_do_compile
- done
-}
-
-do_install() {
- for lib in fftw fftwl fftwf; do
- cd ${WORKDIR}/build-$lib
- autotools_do_install
- done
-}
-
-
-PACKAGES =+ "libfftw libfftwl libfftwf"
-FILES_libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
-FILES_libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
-FILES_libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
-
-PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
-FILES_fftw-wisdom = "${bindir}/fftw-wisdom"
-FILES_fftwl-wisdom = "${bindir}/fftwl-wisdom"
-FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom"
-FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
-
-FILES_${PN}-dev += "${libdir}/cmake"
-RDEPENDS_${PN}-dev = "libfftw libfftwl libfftwf"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.8.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.8.bb
new file mode 100644
index 0000000..d9e0ea3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.8.bb
@@ -0,0 +1,83 @@
+DESCRIPTION = "FFTW"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SRC_URI = " \
+ http://www.fftw.org/fftw-${PV}.tar.gz \
+ file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
+"
+SRC_URI[md5sum] = "8aac833c943d8e90d51b697b27d4384d"
+SRC_URI[sha256sum] = "6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303"
+
+inherit autotools pkgconfig
+
+# we had multiple recipes in the past
+PROVIDES = "fftwl fftwf"
+
+EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+# neon is optional for arm version < 8 -> check tune features
+FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
+# neon is suppored for arm version = 8 -> enable
+FFTW_NEON_aarch64 = "--enable-neon"
+FFTW_NEON_class-native = ""
+
+do_configure() {
+ # configure fftw
+ rm -rf ${WORKDIR}/build-fftw
+ mkdir -p ${B}
+ cd ${B}
+ # full (re)configure
+ autotools_do_configure
+ mv ${B} ${WORKDIR}/build-fftw
+
+ # configure fftwl
+ rm -rf ${WORKDIR}/build-fftwl
+ mkdir -p ${B}
+ cd ${B}
+ # configure only
+ oe_runconf --enable-long-double
+ mv ${B} ${WORKDIR}/build-fftwl
+
+ # configure fftwf
+ rm -rf ${WORKDIR}/build-fftwf
+ mkdir -p ${B}
+ cd ${B}
+ # configure only
+ oe_runconf --enable-single ${FFTW_NEON}
+ mv ${B} ${WORKDIR}/build-fftwf
+}
+
+do_compile() {
+ for lib in fftw fftwl fftwf; do
+ cd ${WORKDIR}/build-$lib
+ autotools_do_compile
+ done
+}
+
+do_install() {
+ for lib in fftw fftwl fftwf; do
+ cd ${WORKDIR}/build-$lib
+ autotools_do_install
+ done
+}
+
+
+PACKAGES =+ "libfftw libfftwl libfftwf"
+FILES_libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
+FILES_libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
+FILES_libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
+
+PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
+FILES_fftw-wisdom = "${bindir}/fftw-wisdom"
+FILES_fftwl-wisdom = "${bindir}/fftwl-wisdom"
+FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom"
+FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+RDEPENDS_${PN}-dev = "libfftw libfftwl libfftwf"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
index dbe700a..d3416c8 100644
--- a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
@@ -12,9 +12,9 @@
file://0002-always-build-fluid-and-export-pointers.patch \
"
-PV = "1.3.4-1"
-SRC_URI[md5sum] = "d7fcd27ab928648e1a1366dd2e273970"
-SRC_URI[sha256sum] = "7fb2c8882433ce694e6900c94fda505e8f4ed3fa9c7e597007098a33b85c53f4"
+PV = "1.3.4-2"
+SRC_URI[md5sum] = "b8e291343357e49dd81a22408744e400"
+SRC_URI[sha256sum] = "25d349c18c99508737d48f225a2eb26a43338f9247551cab72a317fa42cda910"
inherit cmake pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
new file mode 100644
index 0000000..c377b37
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
@@ -0,0 +1,46 @@
+From 85c7694a5cf34597909bdd1ca6931b0f99904c2e Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Tue, 19 Jun 2018 00:40:49 -0700
+Subject: [PATCH] annotate.c/gdft.c: Replace strncpy with memccpy to fix
+ -Wstringop-truncation.
+
+Fixed for gcc8:
+git/src/gdft.c:1699:2: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
+
+Upstream-Status: Submitted [https://github.com/libgd/libgd/pull/442]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ src/annotate.c | 2 +-
+ src/gdft.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/annotate.c b/src/annotate.c
+index 00aaf49..17df813 100644
+--- a/src/annotate.c
++++ b/src/annotate.c
+@@ -104,7 +104,7 @@ int main(int argc, char *argv[])
+ fprintf(stderr, "Font maximum length is 1024, %d given\n", font_len);
+ goto badLine;
+ }
+- strncpy(font, st, font_len);
++ memcpy(font, st, font_len);
+ }
+ } else if(!strcmp(st, "align")) {
+ char *st = strtok(0, " \t\r\n");
+diff --git a/src/gdft.c b/src/gdft.c
+index 9fa8295..81dbe41 100644
+--- a/src/gdft.c
++++ b/src/gdft.c
+@@ -1696,7 +1696,7 @@ static char * font_path(char **fontpath, char *name_list)
+ gdFree(path);
+ return "could not alloc full list of fonts";
+ }
+- strncpy(fontlist, name_list, name_list_len);
++ memcpy(fontlist, name_list, name_list_len);
+ fontlist[name_list_len] = 0;
+
+ /*
+--
+2.10.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch
new file mode 100644
index 0000000..25924d1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch
@@ -0,0 +1,82 @@
+From 4b1e18a00ce7c4b7e6919c3b3109a034393b805a Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 14 Jul 2018 13:54:08 -0400
+Subject: [PATCH] bmp: check return value in gdImageBmpPtr
+
+Closes #447.
+
+(cherry picked from commit ac16bdf2d41724b5a65255d4c28fb0ec46bc42f5)
+
+Upstream-Status: Backport [https://github.com/libgd/libgd/commit/4b1e18a00ce7c4b7e6919c3b3109a034393b805a]
+CVE: CVE-2018-1000222
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ src/gd_bmp.c | 17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/src/gd_bmp.c b/src/gd_bmp.c
+index ccafdcd..d625da1 100644
+--- a/src/gd_bmp.c
++++ b/src/gd_bmp.c
+@@ -48,6 +48,8 @@ static int bmp_read_4bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp
+ static int bmp_read_8bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp_hdr_t *header);
+ static int bmp_read_rle(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info);
+
++static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression);
++
+ #define BMP_DEBUG(s)
+
+ static int gdBMPPutWord(gdIOCtx *out, int w)
+@@ -88,8 +90,10 @@ BGD_DECLARE(void *) gdImageBmpPtr(gdImagePtr im, int *size, int compression)
+ void *rv;
+ gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+ if (out == NULL) return NULL;
+- gdImageBmpCtx(im, out, compression);
+- rv = gdDPExtractData(out, size);
++ if (!_gdImageBmpCtx(im, out, compression))
++ rv = gdDPExtractData(out, size);
++ else
++ rv = NULL;
+ out->gd_free(out);
+ return rv;
+ }
+@@ -142,6 +146,11 @@ BGD_DECLARE(void) gdImageBmp(gdImagePtr im, FILE *outFile, int compression)
+ compression - whether to apply RLE or not.
+ */
+ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
++{
++ _gdImageBmpCtx(im, out, compression);
++}
++
++static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
+ {
+ int bitmap_size = 0, info_size, total_size, padding;
+ int i, row, xpos, pixel;
+@@ -149,6 +158,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
+ unsigned char *uncompressed_row = NULL, *uncompressed_row_start = NULL;
+ FILE *tmpfile_for_compression = NULL;
+ gdIOCtxPtr out_original = NULL;
++ int ret = 1;
+
+ /* No compression if its true colour or we don't support seek */
+ if (im->trueColor) {
+@@ -326,6 +336,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
+ out_original = NULL;
+ }
+
++ ret = 0;
+ cleanup:
+ if (tmpfile_for_compression) {
+ #ifdef _WIN32
+@@ -339,7 +350,7 @@ cleanup:
+ if (out_original) {
+ out_original->gd_free(out_original);
+ }
+- return;
++ return ret;
+ }
+
+ static int compress_row(unsigned char *row, int length)
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
index 63d9acf..548d2c5 100644
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
@@ -14,6 +14,8 @@
DEPENDS = "freetype libpng jpeg zlib tiff"
SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \
+ file://0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch \
+ file://CVE-2018-1000222.patch \
"
SRCREV = "8255231b68889597d04d451a72438ab92a405aba"
diff --git a/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb b/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
index 28b652a..29a1125 100644
--- a/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
@@ -1,7 +1,5 @@
DESCRIPTION = "The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used"
-
HOMEPAGE = "https://github.com/gflags/gflags"
-
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df"
@@ -10,14 +8,13 @@
S = "${WORKDIR}/git"
-FILES_${PN}-dev += "${libdir}/cmake"
-
inherit cmake
EXTRA_OECMAKE="-DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF -DLIB_INSTALL_DIR=${baselib}"
PACKAGES =+ "${PN}-bash-completion"
FILES_${PN}-bash-completion += "${bindir}/gflags_completions.sh"
+
RDEPENDS_${PN}-bash-completion = "bash bash-completion"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-Rework-CMake-glog-VERSION-management.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-Rework-CMake-glog-VERSION-management.patch
new file mode 100644
index 0000000..f41a6c9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-Rework-CMake-glog-VERSION-management.patch
@@ -0,0 +1,71 @@
+From 4ea11e0d7c0575316a6ccc07a931164ca29c3d2f Mon Sep 17 00:00:00 2001
+From: Corentin Le Molgat <corentinl@google.com>
+Date: Mon, 29 Jan 2018 14:59:08 +0100
+Subject: [PATCH] Rework CMake glog VERSION management.
+
+- Use of Project version properties instead of custom variables
+- fix missmatch between VERSION (build version) and SOVERSION (API version)
+src: https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html#prop_tgt:VERSION
+
+Upstream-Status: Backport [https://github.com/google/glog/commit/6b6e38a7d53fe01f42ce34384cf4ba4c50e8cb65]
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ CMakeLists.txt | 23 ++++++++---------------
+ 1 file changed, 8 insertions(+), 15 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7415eab..fb4e408 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,23 +8,16 @@ if (POLICY CMP0063)
+ cmake_policy (SET CMP0063 NEW)
+ endif (POLICY CMP0063)
+
+-project (google-glog)
++project(glog VERSION 0.3.5 LANGUAGES C CXX)
+
+ enable_testing ()
+
+-set (GLOG_MAJOR_VERSION 0)
+-set (GLOG_MINOR_VERSION 3)
+-set (GLOG_PATCH_VERSION 5)
+-
+-set (GLOG_VERSION
+- ${GLOG_MAJOR_VERSION}.${GLOG_MINOR_VERSION}.${GLOG_PATCH_VERSION})
+-
+ set (CPACK_PACKAGE_NAME glog)
+ set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "")
+-set (CPACK_PACKAGE_VERSION_MAJOR ${GLOG_MAJOR_VERSION})
+-set (CPACK_PACKAGE_VERSION_MINOR ${GLOG_MINOR_VERSION})
+-set (CPACK_PACKAGE_VERSION_PATCH ${GLOG_PATCH_VERSION})
+-set (CPACK_PACKAGE_VERSION ${GLOG_VERSION})
++set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
++set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
++set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
++set (CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+
+ option (WITH_GFLAGS "Use gflags" ON)
+ option (WITH_THREADS "Enable multithreading support" ON)
+@@ -406,8 +399,8 @@ if (gflags_FOUND)
+ endif (NOT BUILD_SHARED_LIBS)
+ endif (gflags_FOUND)
+
+-set_target_properties (glog PROPERTIES VERSION ${GLOG_MAJOR_VERSION})
+-set_target_properties (glog PROPERTIES SOVERSION ${GLOG_VERSION})
++set_target_properties (glog PROPERTIES VERSION ${PROJECT_VERSION})
++set_target_properties (glog PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR})
+
+ if (WIN32)
+ target_compile_definitions (glog PUBLIC GLOG_NO_ABBREVIATED_SEVERITIES)
+@@ -570,7 +563,7 @@ configure_package_config_file (glog-config.cmake.in
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+
+ write_basic_package_version_file (glog-config-version.cmake VERSION
+- ${GLOG_VERSION} COMPATIBILITY SameMajorVersion)
++ ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion)
+
+ export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
+ export (PACKAGE glog)
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
deleted file mode 100644
index 596281f..0000000
--- a/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0fabde0515e180c53961c27346dd7a79cffa4c1f Mon Sep 17 00:00:00 2001
-From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-Date: Thu, 11 Aug 2016 11:49:36 +0200
-Subject: [PATCH] configure.ac: Allow user to disable gflags
-
-Under some circumstances like cross-compilation, the user might not want
-to enable support for gflags.
-
-This patch allows support for --without-gflags
-
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
----
- configure.ac | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7b4d21e7ae8a..eba5e5cda1ea 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -136,7 +136,11 @@ AC_ARG_WITH(gflags, AS_HELP_STRING[--with-gflags=GFLAGS_DIR],
- CFLAGS="$CFLAGS $GFLAGS_CFLAGS"
- LIBS="$LIBS $GFLAGS_LIBS"
- )
--AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
-+if test x"$with_gflags" = x"no"; then
-+ ac_cv_have_libgflags=0
-+else
-+ AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
-+fi
- if test x"$ac_cv_have_libgflags" = x"1"; then
- AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags library])
- if test x"$GFLAGS_LIBS" = x""; then
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
new file mode 100644
index 0000000..15cf67f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
@@ -0,0 +1,120 @@
+diff -uNr a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake
+--- a/cmake/FindLibunwind.cmake 1970-01-01 01:00:00.000000000 +0100
++++ b/cmake/FindLibunwind.cmake 2018-11-20 15:53:48.799078114 +0100
+@@ -0,0 +1,54 @@
++# - Try to find libunwind
++# Once done this will define
++#
++# Libunwind_FOUND - system has libunwind
++# unwind - cmake target for libunwind
++
++find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
++include (CheckIncludeFile)
++check_include_file (libunwind.h HAVE_LIBUNWIND_H)
++check_include_file (unwind.h HAVE_UNWIND_H)
++
++if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
++ set(LIBUNWIND_ARCH "arm")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
++ set(LIBUNWIND_ARCH "aarch64")
++elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR
++ CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64" OR
++ CMAKE_SYSTEM_PROCESSOR STREQUAL "corei7-64")
++ set(LIBUNWIND_ARCH "x86_64")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
++ set(LIBUNWIND_ARCH "x86")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64")
++ set(LIBUNWIND_ARCH "ppc64")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc")
++ set(LIBUNWIND_ARCH "ppc32")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
++ set(LIBUNWIND_ARCH "mips")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^hppa")
++ set(LIBUNWIND_ARCH "hppa")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ia64")
++ set(LIBUNWIND_ARCH "ia64")
++endif()
++
++find_library (UNWIND_LIBRARY_PLATFORM NAMES "unwind-${LIBUNWIND_ARCH}" DOC "unwind library platform")
++if (UNWIND_LIBRARY_PLATFORM)
++ set(HAVE_LIB_UNWIND "1")
++endif()
++
++include(FindPackageHandleStandardArgs)
++# handle the QUIETLY and REQUIRED arguments and set Libunwind_FOUND to TRUE
++# if all listed variables are TRUE
++find_package_handle_standard_args(Libunwind DEFAULT_MSG
++ UNWIND_LIBRARY HAVE_LIBUNWIND_H HAVE_UNWIND_H HAVE_LIB_UNWIND)
++
++mark_as_advanced (UNWIND_LIBRARY UNWIND_LIBRARY_PLATFORM)
++
++if (Libunwind_FOUND)
++ add_library(unwind INTERFACE IMPORTED)
++ set_target_properties(unwind PROPERTIES
++ INTERFACE_LINK_LIBRARIES "${UNWIND_LIBRARY};${UNWIND_LIBRARY_PLATFORM}"
++ )
++else()
++ message("Can't find libunwind library")
++endif()
+diff -uNr a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2018-11-20 15:49:07.576278417 +0100
++++ b/CMakeLists.txt 2018-11-20 15:49:32.106819928 +0100
+@@ -58,7 +58,6 @@
+ check_include_file (execinfo.h HAVE_EXECINFO_H)
+ check_include_file (glob.h HAVE_GLOB_H)
+ check_include_file (inttypes.h HAVE_INTTYPES_H)
+-check_include_file (libunwind.h HAVE_LIBUNWIND_H)
+ check_include_file (memory.h HAVE_MEMORY_H)
+ check_include_file (pwd.h HAVE_PWD_H)
+ check_include_file (stdint.h HAVE_STDINT_H)
+@@ -74,7 +73,6 @@
+ check_include_file (syslog.h HAVE_SYSLOG_H)
+ check_include_file (ucontext.h HAVE_UCONTEXT_H)
+ check_include_file (unistd.h HAVE_UNISTD_H)
+-check_include_file (unwind.h HAVE_UNWIND_H)
+
+ check_include_file_cxx ("ext/hash_map" HAVE_EXT_HASH_MAP)
+ check_include_file_cxx ("ext/hash_set" HAVE_EXT_HASH_SET)
+@@ -109,10 +107,7 @@
+ # snprintf as an inline function
+ check_symbol_exists (snprintf stdio.h HAVE_SNPRINTF)
+
+-check_library_exists (unwind get_static_proc_name "" HAVE_LIB_UNWIND)
+-
+-find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
+-mark_as_advanced (UNWIND_LIBRARY)
++find_package(Libunwind)
+
+ check_c_source_compiles ("
+ #include <stdlib.h>
+@@ -376,9 +371,9 @@
+
+ set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON)
+
+-if (UNWIND_LIBRARY)
+- target_link_libraries (glog PUBLIC ${UNWIND_LIBRARY})
+-endif (UNWIND_LIBRARY)
++if (Libunwind_FOUND)
++ target_link_libraries (glog PUBLIC unwind)
++endif (Libunwind_FOUND)
+
+ if (HAVE_PTHREAD)
+ target_link_libraries (glog PUBLIC ${CMAKE_THREAD_LIBS_INIT})
+@@ -571,6 +566,7 @@
+ install (FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
++ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLibunwind.cmake
+ DESTINATION lib/cmake/glog)
+
+ install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
+diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
+--- a/glog-config.cmake.in 2018-11-20 15:49:07.576278417 +0100
++++ b/glog-config.cmake.in 2018-11-20 15:52:32.330418489 +0100
+@@ -4,4 +4,6 @@
+
+ @gflags_DEPENDENCY@
+
++find_dependency (Libunwind)
++
+ include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch
new file mode 100644
index 0000000..641f70c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch
@@ -0,0 +1,65 @@
+diff -uNr a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2018-12-05 12:55:59.630792054 +0100
++++ b/CMakeLists.txt 2018-12-05 13:00:22.922269200 +0100
+@@ -403,10 +403,15 @@
+
+ set_target_properties (glog PROPERTIES PUBLIC_HEADER "${GLOG_PUBLIC_H}")
+
++set (_glog_CMake_BINDIR ${CMAKE_INSTALL_BINDIR})
++set (_glog_CMake_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR})
++set (_glog_CMake_LIBDIR ${CMAKE_INSTALL_LIBDIR})
++set (_glog_CMake_INSTALLDIR ${_glog_CMake_LIBDIR}/cmake/glog)
++
+ target_include_directories (glog BEFORE PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>"
+- "$<INSTALL_INTERFACE:include>"
++ "$<INSTALL_INTERFACE:${_glog_CMake_INCLUDE_DIR}>"
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
+
+@@ -543,10 +548,10 @@
+
+ install (TARGETS glog
+ EXPORT glog-targets
+- RUNTIME DESTINATION bin
+- PUBLIC_HEADER DESTINATION include/glog
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib)
++ RUNTIME DESTINATION ${_glog_CMake_BINDIR}
++ PUBLIC_HEADER DESTINATION ${_glog_CMake_INCLUDE_DIR}/glog
++ LIBRARY DESTINATION ${_glog_CMake_LIBDIR}
++ ARCHIVE DESTINATION ${_glog_CMake_LIBDIR})
+
+ if (gflags_FOUND)
+ set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})")
+@@ -554,7 +559,7 @@
+
+ configure_package_config_file (glog-config.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
+- INSTALL_DESTINATION lib/cmake/glog
++ INSTALL_DESTINATION ${_glog_CMake_INSTALLDIR}
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+
+ write_basic_package_version_file (glog-config-version.cmake VERSION
+@@ -567,6 +572,7 @@
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLibunwind.cmake
+- DESTINATION lib/cmake/glog)
++ DESTINATION ${_glog_CMake_INSTALLDIR})
+
+-install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
++install (EXPORT glog-targets NAMESPACE glog:: DESTINATION
++ ${_glog_CMake_INSTALLDIR})
+diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
+--- a/glog-config.cmake.in 2018-12-05 12:55:59.630792054 +0100
++++ b/glog-config.cmake.in 2018-12-05 13:05:19.547196843 +0100
+@@ -4,6 +4,7 @@
+
+ @gflags_DEPENDENCY@
+
++list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+ find_dependency (Libunwind)
+
+ include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb
deleted file mode 100644
index d7c1974..0000000
--- a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "The glog library implements application-level logging. This \
-library provides logging APIs based on C++-style streams and various helper \
-macros."
-HOMEPAGE = "https://github.com/google/glog"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
-
-DEPENDS = "libunwind"
-
-SRC_URI = " \
- git://github.com/google/glog.git \
- file://0001-configure.ac-Allow-user-to-disable-gflags.patch \
-"
-
-SRCREV = "d8cb47f77d1c31779f3ff890e1a5748483778d6a"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gflags] = ",--without-gflags,gflags,"
-
-inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
new file mode 100644
index 0000000..3de01ef
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "The glog library implements application-level logging. This \
+library provides logging APIs based on C++-style streams and various helper \
+macros."
+HOMEPAGE = "https://github.com/google/glog"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
+
+DEPENDS = "libunwind"
+
+SRC_URI = " \
+ git://github.com/google/glog.git;branch=v035 \
+ file://0001-Rework-CMake-glog-VERSION-management.patch \
+ file://0002-Find-Libunwind-during-configure.patch \
+ file://0003-installation-path-fix.patch \
+"
+
+SRCREV = "a6a166db069520dbbd653c97c2e5b12e08a8bb26"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+RDEPENDS_${PN} += "libunwind"
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
diff --git a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch
new file mode 100644
index 0000000..77e82b1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch
@@ -0,0 +1,88 @@
+From e91600a7aae3bafbefbe13abf771e61badd16286 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 16 Oct 2018 14:26:11 +0800
+Subject: [PATCH] vasnprintf: Fix heap memory overrun bug.
+
+Reported by Ben Pfaff <blp@cs.stanford.edu> in
+<https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00107.html>.
+
+* lib/vasnprintf.c (convert_to_decimal): Allocate one more byte of
+memory.
+* tests/test-vasnprintf.c (test_function): Add another test.
+
+Upstream-Status: Backport [http://git.savannah.gnu.org/gitweb/?p=gnulib.git;
+a=commitdiff;h=278b4175c9d7dd47c1a3071554aac02add3b3c35]
+
+CVE: CVE-2018-17942
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ ChangeLog | 8 ++++++++
+ lib/vasnprintf.c | 4 +++-
+ tests/test-vasnprintf.c | 19 ++++++++++++++++++-
+ 3 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 9864353..5ff76a3 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,11 @@
++2018-09-23 Bruno Haible <bruno@clisp.org>
++ vasnprintf: Fix heap memory overrun bug.
++ Reported by Ben Pfaff <blp@cs.stanford.edu> in
++ <https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00107.html>.
++ * lib/vasnprintf.c (convert_to_decimal): Allocate one more byte of
++ memory.
++ * tests/test-vasnprintf.c (test_function): Add another test.
++
+ 2017-08-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ vc-list-files: port to Solaris 10
+diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
+index 2e4eb19..45de49f 100644
+--- a/lib/vasnprintf.c
++++ b/lib/vasnprintf.c
+@@ -860,7 +860,9 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
+ size_t a_len = a.nlimbs;
+ /* 0.03345 is slightly larger than log(2)/(9*log(10)). */
+ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1);
+- char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes));
++ /* We need extra_zeroes bytes for zeroes, followed by c_len bytes for the
++ digits of a, followed by 1 byte for the terminating NUL. */
++ char *c_ptr = (char *) malloc (xsum (xsum (extra_zeroes, c_len), 1));
+ if (c_ptr != NULL)
+ {
+ char *d_ptr = c_ptr;
+diff --git a/tests/test-vasnprintf.c b/tests/test-vasnprintf.c
+index 2dd869f..ff68d5c 100644
+--- a/tests/test-vasnprintf.c
++++ b/tests/test-vasnprintf.c
+@@ -53,7 +53,24 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12345") == 0);
+ ASSERT (length == 5);
+- if (size < 6)
++ if (size < 5 + 1)
++ ASSERT (result != buf);
++ ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
++ if (result != buf)
++ free (result);
++ }
++ /* Note: This test assumes IEEE 754 representation of 'double' floats. */
++ for (size = 0; size <= 8; size++)
++ {
++ size_t length;
++ char *result;
++ memcpy (buf, "DEADBEEF", 8);
++ length = size;
++ result = my_asnprintf (buf, &length, "%2.0f", 1.6314159265358979e+125);
++ ASSERT (result != NULL);
++ ASSERT (strcmp (result, "163141592653589790215729350939528493057529598899734151772468186268423257777068536614838678161083520756952076273094236944990208") == 0);
++ ASSERT (length == 126);
++ if (size < 126 + 1)
+ ASSERT (result != buf);
+ ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
+ if (result != buf)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
index b72ffa9..e048810 100644
--- a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
@@ -14,6 +14,7 @@
SRCREV = "b23000de1e47c7d580e0e220966dd1ee42a5e5bc"
SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \
+ file://CVE-2018-17942.patch \
"
S = "${WORKDIR}/git"
@@ -22,6 +23,8 @@
cd ${S}
git checkout master
git clone ${S} ${D}/${datadir}/gnulib
+ cd ${D}/${datadir}/gnulib
+ git am ${WORKDIR}/CVE-2018-17942.patch
}
do_patch[noexec] = "1"
@@ -32,5 +35,6 @@
deltask package_write_ipk
deltask package_write_deb
deltask package_write_rpm
+deltask do_deploy_archives
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
deleted file mode 100644
index b303362..0000000
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 230cd84486145c5bb1d69d4c9a544e00adbcc9b5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Jul 2017 13:21:21 -0700
-Subject: [PATCH] Use ucontext_t instead of struct ucontext
-
-Newer glibc has dropped the ucontext tag from exposing
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/stacktrace_powerpc-linux-inl.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h
-index 3b3843b..a301a46 100644
---- a/src/stacktrace_powerpc-linux-inl.h
-+++ b/src/stacktrace_powerpc-linux-inl.h
-@@ -53,7 +53,6 @@
- #elif defined(HAVE_UCONTEXT_H)
- #include <ucontext.h> // for ucontext_t
- #endif
--typedef ucontext ucontext_t;
-
- // PowerPC64 Little Endian follows BE wrt. backchain, condition register,
- // and LR save area, so no need to adjust the reading struct.
-@@ -202,7 +201,7 @@ static int GET_STACK_TRACE_OR_FRAMES {
- struct rt_signal_frame_32 {
- char dummy[64 + 16];
- siginfo_t info;
-- struct ucontext uc;
-+ ucontext_t uc;
- // We don't care about the rest, since IP value is at 'uc' field.A
- } *sigframe = reinterpret_cast<rt_signal_frame_32*>(current);
- result[n] = (void*) sigframe->uc.uc_mcontext.uc_regs->gregs[PT_NIP];
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
index 0a72ff2..49d5c21 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
@@ -1,4 +1,4 @@
-From 034e7da08c3fbffcba8cf8d4e24a71a16558db5a Mon Sep 17 00:00:00 2001
+From 696674a800cb6d2070897a565b92d7e63022a8f1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 16 Jul 2017 15:51:28 -0700
Subject: [PATCH] fix build with musl libc
@@ -13,7 +13,7 @@
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
-index b42fea3..70b49a3 100644
+index 497103e..f9efc3e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -188,6 +188,7 @@ AC_HEADER_STDC
@@ -25,7 +25,7 @@
AC_CHECK_FUNCS(geteuid) # for turning off services when run as root
AC_CHECK_FUNCS(fork) # for the pthread_atfork setup
diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
-index 79ac4e3..d444635 100755
+index 2f6116f..0605855 100755
--- a/src/malloc_hook_mmap_linux.h
+++ b/src/malloc_hook_mmap_linux.h
@@ -46,6 +46,10 @@
@@ -55,5 +55,5 @@
-#ifndef __UCLIBC__
+#if HAVE___SBRK
// libc's version:
- extern "C" void* __sbrk(ptrdiff_t increment);
+ extern "C" void* __sbrk(intptr_t increment);
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
deleted file mode 100644
index 4c63e73..0000000
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a16a73f0819d26219ee83cd98eea82786d7c1755 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 19:28:17 -0700
-Subject: [PATCH] include fcntl.h for loff_t definition
-
-Fixes
-linux_syscall_support.h:2641:26: error: 'loff_t' has not been declared
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/base/linux_syscall_support.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
-index 85347a2..70431ca 100644
---- a/src/base/linux_syscall_support.h
-+++ b/src/base/linux_syscall_support.h
-@@ -162,6 +162,7 @@ extern "C" {
- #include <unistd.h>
- #include <linux/unistd.h>
- #include <endian.h>
-+#include <fcntl.h>
-
- #ifdef __mips__
- /* Include definitions of the ABI currently in use. */
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
deleted file mode 100644
index ecac6c5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
-HOMEPAGE = "https://github.com/gperftools/gperftools"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
-DEPENDS += "libunwind"
-
-SRCREV = "bf840dec0495e17f5c8403e68e10b9d6bf05c559"
-SRC_URI = "git://github.com/gperftools/gperftools \
- file://0001-Support-Atomic-ops-on-clang.patch \
- file://0001-Use-ucontext_t-instead-of-struct-ucontext.patch \
- file://0001-fix-build-with-musl-libc.patch \
- file://0001-include-fcntl.h-for-loff_t-definition.patch \
- file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
- file://disable_libunwind_aarch64.patch \
- file://sgidef.patch \
- "
-
-inherit autotools
-
-S = "${WORKDIR}/git"
-
-# Disable thumb1
-# {standard input}: Assembler messages:
-# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
-# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
new file mode 100644
index 0000000..e9fcc4c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE = "https://github.com/gperftools/gperftools"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
+DEPENDS += "libunwind"
+
+SRCREV = "9608fa3bcf8020d35f59fbf70cd3cbe4b015b972"
+SRC_URI = "git://github.com/gperftools/gperftools \
+ file://0001-Support-Atomic-ops-on-clang.patch \
+ file://0001-fix-build-with-musl-libc.patch \
+ file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
+ file://disable_libunwind_aarch64.patch \
+ file://sgidef.patch \
+ "
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+
+# On mips, we have the following error.
+# do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008
+# Segmentation fault (core dumped)
+COMPATIBLE_HOST_mipsarch_libc-glibc = "null"
+# Disable thumb1
+# {standard input}: Assembler messages:
+# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
+# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
index 51c4dd6..dcc9d68 100644
--- a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -9,7 +9,7 @@
PR = "r2"
SRCREV = "1fd19417b8a4dd9945347e98dfa97e4cfd798d77"
-DEPENDS = "ncurses"
+DEPENDS = "ncurses bison-native"
SRC_URI = "git://github.com/telmich/gpm;protocol=git \
file://init \
diff --git a/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb b/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
index 1a4261a..a7d0607 100644
--- a/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
@@ -43,10 +43,6 @@
rm -rf ${D}/dev
}
-pkg_postinst_${PN}() {
- # make sure running on the target
- if [ x"$D" != "x" ]; then
- exit 1
- fi
+pkg_postinst_ontarget_${PN}() {
/bin/mknod -m 0622 /dev/grsec c 1 13
}
diff --git a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
index 8875844..36530d2 100644
--- a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
@@ -22,7 +22,7 @@
EXTRA_OEMAKE_class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2"
-DEPENDS = "openssl zlib flex bison"
+DEPENDS = "openssl zlib flex bison bison-native"
DEPENDS_append_class-target = " gsoap-native"
do_install_append() {
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb b/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb
deleted file mode 100644
index 33508f9..0000000
--- a/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Interactive process viewer"
-HOMEPAGE = "http://hisham.hm/htop"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
-
-DEPENDS = "ncurses"
-
-SRC_URI = "http://hisham.hm/htop/releases/${PV}/${BP}.tar.gz \
- file://0001-Use-pkg-config.patch"
-SRC_URI[md5sum] = "f262b66ad6c194782f4d3a80627e84c8"
-SRC_URI[sha256sum] = "3260be990d26e25b6b49fc9d96dbc935ad46e61083c0b7f6df413e513bf80748"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "proc \
- cgroup \
- taskstats \
- unicode \
- linux-affinity \
- delayacct"
-PACKAGECONFIG[proc] = "--enable-proc,--disable-proc"
-PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
-PACKAGECONFIG[cgroup] = "--enable-cgroup,--disable-cgroup"
-PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
-PACKAGECONFIG[taskstats] = "--enable-taskstats,--disable-taskstats"
-PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
-PACKAGECONFIG[linux-affinity] = "--enable-linux-affinity,--disable-linux-affinity"
-PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc"
-PACKAGECONFIG[setuid] = "--enable-setuid,--disable-setuid"
-PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
-
-do_configure_prepend () {
- rm -rf ${S}/config.h
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb b/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb
new file mode 100644
index 0000000..01c856d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Interactive process viewer"
+HOMEPAGE = "http://hisham.hm/htop"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "http://hisham.hm/htop/releases/${PV}/${BP}.tar.gz \
+ file://0001-Use-pkg-config.patch"
+SRC_URI[md5sum] = "0d816b6beed31edc75babcfbf863ffa8"
+SRC_URI[sha256sum] = "d9d6826f10ce3887950d709b53ee1d8c1849a70fa38e91d5896ad8cbc6ba3c57"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "proc \
+ cgroup \
+ taskstats \
+ unicode \
+ linux-affinity \
+ delayacct"
+PACKAGECONFIG[proc] = "--enable-proc,--disable-proc"
+PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
+PACKAGECONFIG[cgroup] = "--enable-cgroup,--disable-cgroup"
+PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
+PACKAGECONFIG[taskstats] = "--enable-taskstats,--disable-taskstats"
+PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
+PACKAGECONFIG[linux-affinity] = "--enable-linux-affinity,--disable-linux-affinity"
+PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc"
+PACKAGECONFIG[setuid] = "--enable-setuid,--disable-setuid"
+PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
+
+do_configure_prepend () {
+ rm -rf ${S}/config.h
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
index 679673b..8e8dbf5 100644
--- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
@@ -5,8 +5,8 @@
LICENSE = "GPL-2.0+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
-PV = "0.298+git${SRCPV}"
-SRCREV = "9030fbd6ab1538f4d77d3cf1e0b463a7ec25b5c4"
+PV = "0.316+git${SRCPV}"
+SRCREV = "803819aef862ded2ce0737cd3cf642c633b68c35"
SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
index 669534e..46cc78e 100644
--- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
@@ -3,7 +3,7 @@
LICENSE = "ImageMagick"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dad5a98f173fd3fa6958a1a58c6131c1"
# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
-DEPENDS = "lcms bzip2 jpeg libpng librsvg tiff zlib fftw freetype"
+DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype"
BASE_PV := "${PV}"
PV .= "_7"
@@ -25,6 +25,7 @@
PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz"
PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg"
PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo"
+PACKAGECONFIG[rsvg] = "--with-rsvg,--without-rsvg,librsvg"
PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
index 2f9ac33..56a018b 100644
--- a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
@@ -14,6 +14,31 @@
perl-module-filehandle \
perl-module-getopt-std \
perl-module-digest-sha \
+ perl-module-constant \
+ perl-module-cwd \
+ perl-module-errno \
+ perl-module-file-basename \
+ perl-module-file-find \
+ perl-module-file-path \
+ perl-module-file-spec \
+ perl-module-file-spec-functions \
+ perl-module-file-spec-unix \
+ perl-module-file-temp \
+ perl-module-getopt-long \
+ perl-module-list-util \
+ perl-module-mro \
+ perl-module-overload \
+ perl-module-overloading \
+ perl-module-overload-numbers \
+ perl-module-parent \
+ perl-module-pod-usage \
+ perl-module-posix \
+ perl-module-re \
+ perl-module-safe \
+ perl-module-scalar-util \
+ perl-module-term-cap \
+ perl-module-text-parsewords \
+ perl-module-tie-hash \
"
SRC_URI = "http://downloads.sourceforge.net/ltp/${BP}.tar.gz"
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch b/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
deleted file mode 100644
index b57e39f..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2ddc97b30792817d162f51ec3818376aefbf184e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 3 May 2017 02:05:33 -0400
-Subject: [PATCH] remove python2 support
-
-We use python3 rather than python2 support
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/python/Makefile.am | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/src/python/Makefile.am b/src/python/Makefile.am
-index 567d0d7..8d9f446 100644
---- a/src/python/Makefile.am
-+++ b/src/python/Makefile.am
-@@ -1,8 +1,3 @@
--pylibdir = $(shell python -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
--
--pybytesizedir = $(pylibdir)/bytesize
--dist_pybytesize_DATA = bytesize.py __init__.py
--
- if WITH_PYTHON3
- py3libdir = $(shell python3 -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
- py3bytesizedir = $(py3libdir)/bytesize
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
deleted file mode 100644
index 6903021..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-DESCRIPTION = "The goal of this project is to provide a tiny library that would \
-facilitate the common operations with sizes in bytes."
-HOMEPAGE = "https://github.com/rhinstaller/libbytesize"
-LICENSE = "LGPLv2+"
-SECTION = "devel/lib"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "369127c0edbba7d1a4e2e02486375dd9d379524f"
-PV = "0.10+git${SRCPV}"
-SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \
- file://0001-remove-python2-support.patch \
-"
-
-inherit gettext autotools python3native
-
-DEPENDS += " \
- libpcre \
- gmp \
- mpfr \
-"
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize"
-
-PACKAGECONFIG ??= "python3"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
-
-EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}"
-
-
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.3.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.3.bb
new file mode 100644
index 0000000..caf84de
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.3.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "The goal of this project is to provide a tiny library that would \
+facilitate the common operations with sizes in bytes."
+HOMEPAGE = "https://github.com/rhinstaller/libbytesize"
+LICENSE = "LGPLv2+"
+SECTION = "devel/lib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+SRCREV = "b0dcf6f457d700127b43c0e0a198253c266b78ae"
+PV = "1.3+git${SRCPV}"
+SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \
+"
+
+inherit gettext autotools python3native
+
+DEPENDS += " \
+ libpcre \
+ gmp \
+ mpfr \
+"
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize"
+
+PACKAGECONFIG ??= "python3"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2"
+PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
+
+EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}"
+
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
deleted file mode 100644
index bc3b32e..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms."
-AUTHOR = "Benoît Jacob and Gaël Guennebaud and others"
-HOMEPAGE = "http://eigen.tuxfamily.org/"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad"
-
-SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2"
-SRC_URI[md5sum] = "a7aab9f758249b86c93221ad417fbe18"
-SRC_URI[sha256sum] = "dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6"
-
-S = "${WORKDIR}/eigen-eigen-5a0156e40feb"
-
-inherit cmake
-
-FILES_${PN} = "${includedir} ${libdir}"
-FILES_${PN}-dev = "${datadir}/eigen3/cmake ${datadir}/cmake/Modules ${datadir}/pkgconfig"
-
-# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
-RDEPENDS_${PN}-dev = ""
-RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.5.bb b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.5.bb
new file mode 100644
index 0000000..7078e50
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.5.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms."
+AUTHOR = "Benoît Jacob and Gaël Guennebaud and others"
+HOMEPAGE = "http://eigen.tuxfamily.org/"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad"
+
+SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2"
+SRC_URI[md5sum] = "e83549a79d1b721da0f8899ab34edf95"
+SRC_URI[sha256sum] = "7352bff3ea299e4c7d7fbe31c504f8eb9149d7e685dec5a12fbaa26379f603e2"
+
+S = "${WORKDIR}/eigen-eigen-b3f3d4950030"
+
+inherit cmake
+
+FILES_${PN} = "${libdir}"
+FILES_${PN}-dev = "${includedir} ${datadir}/eigen3/cmake ${datadir}/cmake/Modules ${datadir}/pkgconfig"
+
+# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb b/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
deleted file mode 100644
index 9bff4f3..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "some essentials for string handling (and a bit more)"
-HOMEPAGE = "http://libestr.adiscon.com/"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0"
-
-SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "f4c9165a23587e77f7efe65d676d5e8e"
-SRC_URI[sha256sum] = "bd655e126e750edd18544b88eb1568d200a424a0c23f665eb14bbece07ac703c"
-
-inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.11.bb b/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.11.bb
new file mode 100644
index 0000000..ff61dd8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.11.bb
@@ -0,0 +1,13 @@
+SUMMARY = "some essentials for string handling (and a bit more)"
+HOMEPAGE = "http://libestr.adiscon.com/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0"
+
+SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "1f25a2332750d4bfacfb314235fedff0"
+SRC_URI[sha256sum] = "46632b2785ff4a231dcf241eeb0dcb5fc0c7d4da8ee49cf5687722cdbe8b2024"
+
+UPSTREAM_CHECK_URI = "http://libestr.adiscon.com/download/"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
index 6bea165..4fc6eb0 100644
--- a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
@@ -3,7 +3,6 @@
including the popular bitbang mode."
HOMEPAGE = "http://www.intra2net.com/en/developer/libftdi/"
SECTION = "libs"
-
LICENSE = "LGPLv2.1 & GPLv2"
LIC_FILES_CHKSUM= "\
file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe \
@@ -13,19 +12,16 @@
DEPENDS = "libusb1"
SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
-
SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2"
SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681cb31b74"
S = "${WORKDIR}/${BPN}1-${PV}"
+inherit cmake binconfig pkgconfig
+
PACKAGECONFIG ??= ""
PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost"
-inherit cmake binconfig pkgconfig
-
EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
-FILES_${PN}-dev += "${libdir}/cmake"
-
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb
deleted file mode 100644
index 8f580f9..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "the Git linkable library"
-HOMEPAGE = "http://libgit2.github.com/"
-LICENSE = "GPL-2.0-with-GCC-exception"
-LIC_FILES_CHKSUM = "file://COPYING;md5=34197a479f637beb9e09e56893f48bc2"
-
-DEPENDS = "curl openssl zlib libssh2"
-
-SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.24"
-SRCREV = "4cf1ec7cff28da8838a2f0a9fb330e312ea3f963"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "\
- -DTHREADSAFE=ON \
- -DBUILD_CLAR=OFF \
- -DSHA1_TYPE="builtin" \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DBUILD_EXAMPLES=OFF \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.4.bb b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.4.bb
new file mode 100644
index 0000000..e7f7688
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.4.bb
@@ -0,0 +1,24 @@
+SUMMARY = "the Git linkable library"
+HOMEPAGE = "http://libgit2.github.com/"
+LICENSE = "GPL-2.0-with-GCC-exception & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3f2cd5d3cccd71d62066ba619614592b"
+
+DEPENDS = "curl openssl zlib libssh2 libgcrypt"
+
+SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.27"
+#v0.27.5
+SRCREV = "8e0b172981a046d19f1d9efa5acd6186bccbd3ce"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "\
+ -DTHREADSAFE=ON \
+ -DBUILD_CLAR=OFF \
+ -DSHA1_TYPE="builtin" \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DBUILD_EXAMPLES=OFF \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb
deleted file mode 100644
index 51499fd..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require libgpiod.inc
-
-SRC_URI[md5sum] = "2ca0c3eb17d69e367b6f6a109ca86e41"
-SRC_URI[sha256sum] = "972924195367f5fb045c023d65340c4b7dfc8764499516be446553865208dedc"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb
new file mode 100644
index 0000000..30289b9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb
@@ -0,0 +1,16 @@
+require libgpiod.inc
+
+DEPENDS += "autoconf-archive-native"
+
+SRC_URI[md5sum] = "34a9972f2f4e9c32fa940301301b007d"
+SRC_URI[sha256sum] = "b6b9079c933f7c8524815437937dda6b795a16141bca202a9eec70ba5844b5ba"
+
+PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
+
+PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3,python3-core"
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)}
+
+PACKAGES =+ "${PN}-python"
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+RRECOMMENDS_PYTHON = "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '',d)}"
+RRECOMMENDS_${PN} += "${RRECOMMENDS_PYTHON}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index ba380ed..fa6f4c2 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -24,10 +24,11 @@
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
"
-PACKAGECONFIG ??= "USB_BACKEND NETWORK_BACKEND"
+PACKAGECONFIG ??= "USB_BACKEND NETWORK_BACKEND PYTHON_BINDINGS"
PACKAGECONFIG[USB_BACKEND] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2"
PACKAGECONFIG[NETWORK_BACKEND] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
+PACKAGECONFIG[PYTHON_BINDINGS] = ",,python"
PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-python"
diff --git a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
deleted file mode 100644
index 0930a27..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application"
-HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/"
-LICENSE = "LGPL-2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5"
-SECTION = "net"
-DEPENDS = "libgcrypt gnutls file"
-
-SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "1c20f84a8b9cf692dd50b558b3571a3a"
-SRC_URI[sha256sum] = "0c1cab8dc9f2588bd3076a28f77a7f8de9560cbf2d80e53f9a8696ada80ed0f8"
-
-inherit autotools lib_package pkgconfig gettext
-
-CFLAGS += "-pthread -D_REENTRANT"
-
-EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
-
-PACKAGECONFIG ?= "curl"
-PACKAGECONFIG_append_class-target = "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \
-"
-PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
-
-do_compile_append() {
- sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb
new file mode 100644
index 0000000..b44c66a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application"
+HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5"
+SECTION = "net"
+DEPENDS = "file"
+
+SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "8ab5123535549195aff19e91b4e49f48"
+SRC_URI[sha256sum] = "9b9ccd7d0b11b0e179f1f58dc2caa3e0c62c8609e1e1dc7dcaadf941b67d923c"
+
+inherit autotools lib_package pkgconfig gettext
+
+CFLAGS += "-pthread -D_REENTRANT"
+
+EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
+
+PACKAGECONFIG ?= "curl https"
+PACKAGECONFIG_append_class-target = "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \
+"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
+PACKAGECONFIG[https] = "--enable-https,--disable-https,libgcrypt gnutls,"
+
+do_compile_append() {
+ sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb
new file mode 100644
index 0000000..542fe81
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Tiny XML Library"
+LICENSE = "Mini-XML-License"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6ba38606d63bb042c5d8cfee182e120"
+HOMEPAGE = "https://www.msweet.org/mxml/"
+BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues"
+
+SRC_URI = "git://github.com/michaelrsweet/mxml.git"
+SRCREV = "ba3cca82e15a88a9cc6afb60f059288a99afc703"
+S = "${WORKDIR}/git"
+PV = "2.12+git${SRCPV}"
+
+CONFIGUREOPTS = " --prefix=${prefix} \
+ --bindir=${bindir} \
+ --sbindir=${sbindir} \
+ --libexecdir=${libexecdir} \
+ --datadir=${datadir} \
+ --sysconfdir=${sysconfdir} \
+ --sharedstatedir=${sharedstatedir} \
+ --localstatedir=${localstatedir} \
+ --libdir=${libdir} \
+ --includedir=${includedir} \
+ --oldincludedir=${oldincludedir} \
+ --infodir=${infodir} \
+ --mandir=${mandir} \
+ --host=${TARGET_SYS} \
+ --build=${BUILD_SYS} \
+ ${PACKAGECONFIG_CONFARGS} \
+ "
+
+do_configure() {
+ ./configure ${CONFIGUREOPTS} --enable-shared
+}
+
+do_install () {
+ export DSTROOT=${D}
+ oe_runmake install
+}
+
+PACKAGES += " ${PN}-bin "
+FILES_${PN} = "${libdir}/*"
+FILES_${PN}-bin = "${bindir}/*"
diff --git a/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch
new file mode 100644
index 0000000..8691eae
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch
@@ -0,0 +1,151 @@
+From c14d9bf71753a38df57cc6538b22ed389d2c2cb1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 4 Sep 2018 17:18:51 -0700
+Subject: [PATCH] Support OpenSSL 1.1.0
+
+Taken from https://github.com/x42/liboauth/issues/9
+
+Upstream-Status: Submitted[https://github.com/x42/liboauth/issues/9]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/hash.c | 65 ++++++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 44 insertions(+), 21 deletions(-)
+
+diff --git a/src/hash.c b/src/hash.c
+index 17ff5c8..e128826 100644
+--- a/src/hash.c
++++ b/src/hash.c
+@@ -362,6 +362,11 @@ looser:
+ #include "oauth.h" // base64 encode fn's.
+ #include <openssl/hmac.h>
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000
++#define EVP_MD_CTX_new EVP_MD_CTX_create
++#define EVP_MD_CTX_free EVP_MD_CTX_destroy
++#endif
++
+ char *oauth_sign_hmac_sha1 (const char *m, const char *k) {
+ return(oauth_sign_hmac_sha1_raw (m, strlen(m), k, strlen(k)));
+ }
+@@ -386,7 +391,7 @@ char *oauth_sign_rsa_sha1 (const char *m, const char *k) {
+ unsigned char *sig = NULL;
+ unsigned char *passphrase = NULL;
+ unsigned int len=0;
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+
+ EVP_PKEY *pkey;
+ BIO *in;
+@@ -399,24 +404,31 @@ char *oauth_sign_rsa_sha1 (const char *m, const char *k) {
+ return xstrdup("liboauth/OpenSSL: can not read private key");
+ }
+
++ md_ctx = EVP_MD_CTX_new();
++ if (md_ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++
+ len = EVP_PKEY_size(pkey);
+ sig = (unsigned char*)xmalloc((len+1)*sizeof(char));
+
+- EVP_SignInit(&md_ctx, EVP_sha1());
+- EVP_SignUpdate(&md_ctx, m, strlen(m));
+- if (EVP_SignFinal (&md_ctx, sig, &len, pkey)) {
++ EVP_SignInit(md_ctx, EVP_sha1());
++ EVP_SignUpdate(md_ctx, m, strlen(m));
++ if (EVP_SignFinal (md_ctx, sig, &len, pkey)) {
+ char *tmp;
+ sig[len] = '\0';
+ tmp = oauth_encode_base64(len,sig);
+ OPENSSL_free(sig);
+ EVP_PKEY_free(pkey);
++ EVP_MD_CTX_free(md_ctx);
+ return tmp;
+ }
++ EVP_MD_CTX_free(md_ctx);
+ return xstrdup("liboauth/OpenSSL: rsa-sha1 signing failed");
+ }
+
+ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ EVP_PKEY *pkey;
+ BIO *in;
+ X509 *cert = NULL;
+@@ -437,13 +449,18 @@ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+ return -2;
+ }
+
++ md_ctx = EVP_MD_CTX_new();
++ if (md_ctx == NULL) {
++ return -2;
++ }
++
+ b64d= (unsigned char*) xmalloc(sizeof(char)*strlen(s));
+ slen = oauth_decode_base64(b64d, s);
+
+- EVP_VerifyInit(&md_ctx, EVP_sha1());
+- EVP_VerifyUpdate(&md_ctx, m, strlen(m));
+- err = EVP_VerifyFinal(&md_ctx, b64d, slen, pkey);
+- EVP_MD_CTX_cleanup(&md_ctx);
++ EVP_VerifyInit(md_ctx, EVP_sha1());
++ EVP_VerifyUpdate(md_ctx, m, strlen(m));
++ err = EVP_VerifyFinal(md_ctx, b64d, slen, pkey);
++ EVP_MD_CTX_free(md_ctx);
+ EVP_PKEY_free(pkey);
+ xfree(b64d);
+ return (err);
+@@ -455,35 +472,41 @@ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+ */
+ char *oauth_body_hash_file(char *filename) {
+ unsigned char fb[BUFSIZ];
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ size_t len=0;
+ unsigned char *md;
+ FILE *F= fopen(filename, "r");
+ if (!F) return NULL;
+
+- EVP_MD_CTX_init(&ctx);
+- EVP_DigestInit(&ctx,EVP_sha1());
++ ctx = EVP_MD_CTX_new();
++ if (ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++ EVP_DigestInit(ctx,EVP_sha1());
+ while (!feof(F) && (len=fread(fb,sizeof(char),BUFSIZ, F))>0) {
+- EVP_DigestUpdate(&ctx, fb, len);
++ EVP_DigestUpdate(ctx, fb, len);
+ }
+ fclose(F);
+ len=0;
+ md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char));
+- EVP_DigestFinal(&ctx, md,(unsigned int*) &len);
+- EVP_MD_CTX_cleanup(&ctx);
++ EVP_DigestFinal(ctx, md,(unsigned int*) &len);
++ EVP_MD_CTX_free(ctx);
+ return oauth_body_hash_encode(len, md);
+ }
+
+ char *oauth_body_hash_data(size_t length, const char *data) {
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ size_t len=0;
+ unsigned char *md;
+ md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char));
+- EVP_MD_CTX_init(&ctx);
+- EVP_DigestInit(&ctx,EVP_sha1());
+- EVP_DigestUpdate(&ctx, data, length);
+- EVP_DigestFinal(&ctx, md,(unsigned int*) &len);
+- EVP_MD_CTX_cleanup(&ctx);
++ ctx = EVP_MD_CTX_new();
++ if (ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++ EVP_DigestInit(ctx,EVP_sha1());
++ EVP_DigestUpdate(ctx, data, length);
++ EVP_DigestFinal(ctx, md,(unsigned int*) &len);
++ EVP_MD_CTX_free(ctx);
+ return oauth_body_hash_encode(len, md);
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
index 3311da5..498764a 100644
--- a/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
@@ -9,7 +9,9 @@
SECTION = "libs"
DEPENDS = "curl openssl"
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}.tar.gz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}.tar.gz \
+ file://0001-Support-OpenSSL-1.1.0.patch \
+ "
SRC_URI[md5sum] = "689b46c2b3ab1a39735ac33f714c4f7f"
SRC_URI[sha256sum] = "0df60157b052f0e774ade8a8bac59d6e8d4b464058cc55f9208d72e41156811f"
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
index 949c337..87d99c1 100644
--- a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
@@ -22,5 +22,5 @@
rm -rf ${D}${docdir}/${BPN}
}
-FILES_${PN} += "${libdir}/engines/pkcs11.so"
-FILES_${PN}-dev += "${libdir}/engines/libpkcs11${SOLIBSDEV}"
+FILES_${PN} += "${libdir}/engines*/pkcs11.so"
+FILES_${PN}-dev += "${libdir}/engines*/libpkcs11${SOLIBSDEV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb
deleted file mode 100644
index 79e7dc5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
-HOMEPAGE = "http://www.libssh.org"
-SECTION = "libs"
-
-DEPENDS = "zlib openssl libgcrypt"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
-
-SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=v0-7"
-SRCREV = "cdf7690e038230623cbbf6b024ece62f41efa98d"
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE = " \
- -DWITH_GCRYPT=1 \
- -DWITH_PCAP=1 \
- -DWITH_SFTP=1 \
- -DWITH_ZLIB=1 \
- -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
- "
-
-PACKAGECONFIG ??=""
-PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
-
-inherit cmake
-
-do_configure_prepend () {
- # Disable building of examples
- sed -i -e '/add_subdirectory(examples)/s/^/#DONOTWANT/' ${S}/CMakeLists.txt \
- || bbfatal "Failed to disable examples"
-}
-
-FILES_${PN}-dev += "${libdir}/cmake"
-TOOLCHAIN = "gcc"
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb
new file mode 100644
index 0000000..6040ec9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
+HOMEPAGE = "http://www.libssh.org"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
+
+DEPENDS = "zlib openssl libgcrypt"
+
+SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=stable-0.8"
+SRCREV = "789df0b7d0c7abd6b85db9fc5247e146e3d4ddba"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGECONFIG ??=""
+PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
+
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+EXTRA_OECMAKE = " \
+ -DWITH_GCRYPT=1 \
+ -DWITH_PCAP=1 \
+ -DWITH_SFTP=1 \
+ -DWITH_ZLIB=1 \
+ -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+ "
+
+do_configure_prepend () {
+ # Disable building of examples
+ sed -i -e '/add_subdirectory(examples)/s/^/#DONOTWANT/' ${S}/CMakeLists.txt \
+ || bbfatal "Failed to disable examples"
+}
+
+TOOLCHAIN = "gcc"
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb
index 74780e1..e4bb3f3 100644
--- a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb
@@ -12,6 +12,4 @@
inherit cmake
-FILES_${PN}-dev += "${libdir}/cmake/"
-
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch
new file mode 100644
index 0000000..b88440d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch
@@ -0,0 +1,30 @@
+From 340f911f9e3f4ff6b01682c5341c959060782af2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Apr 2015 19:18:45 -0700
+Subject: [PATCH] usb.h: Include sys/types.h
+
+We need the definitions for things like u_intX_t
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libusb/usb.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libusb/usb.h b/libusb/usb.h
+index 84e730f..caffae2 100644
+--- a/libusb/usb.h
++++ b/libusb/usb.h
+@@ -31,6 +31,8 @@
+
+ #include <dirent.h>
+
++#include <sys/types.h>
++
+ /*
+ * USB spec information
+ *
+--
+2.1.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.5.bb b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.5.bb
new file mode 100644
index 0000000..1ddbe23
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.5.bb
@@ -0,0 +1,42 @@
+SUMMARY = "libusb-0.1 compatibility layer for libusb1"
+DESCRIPTION = "libusb-0.1 compatible layer for libusb1, a drop-in replacement \
+that aims to look, feel and behave exactly like libusb-0.1"
+HOMEPAGE = "http://www.libusb.org/"
+BUGTRACKER = "http://www.libusb.org/report"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f2ac5f3ac4835e8f91324a26a590a423"
+DEPENDS = "libusb1"
+
+# Few packages are known not to work with libusb-compat (e.g. libmtp-1.0.0),
+# so here libusb-0.1 is removed completely instead of adding virtual/libusb0.
+# Besides, libusb-0.1 uses a per 1ms polling that hurts a lot to power
+# consumption.
+PROVIDES = "libusb virtual/libusb0"
+BBCLASSEXTEND = "native nativesdk"
+
+PE = "1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libusb/libusb-compat-${PV}.tar.bz2 \
+ file://0001-usb.h-Include-sys-types.h.patch \
+ "
+
+SRC_URI[md5sum] = "2780b6a758a1e2c2943bdbf7faf740e4"
+SRC_URI[sha256sum] = "404ef4b6b324be79ac1bfb3d839eac860fbc929e6acb1ef88793a6ea328bc55a"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libusb/files/libusb-compat-0.1/"
+UPSTREAM_CHECK_REGEX = "/libusb-compat-(?P<pver>(\d+[\.\-_]*)+)/$"
+
+BINCONFIG = "${bindir}/libusb-config"
+
+inherit autotools pkgconfig binconfig-disabled lib_package
+
+EXTRA_OECONF = "--libdir=${base_libdir}"
+
+do_install_append() {
+ install -d ${D}${libdir}
+ if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
+ mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch b/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
index 41c3826..2dc57a5 100644
--- a/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
+++ b/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
@@ -1,11 +1,21 @@
---- links-2.1pre20/configure.in.orig 2005-12-21 15:23:49.000000000 +0000
-+++ links-2.1pre20/configure.in 2005-12-21 15:23:59.000000000 +0000
-@@ -18,7 +18,7 @@
+From c00668541f68c17a5e453a4dcc2a86022b20af87 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Mon, 30 Jul 2012 23:52:49 +0200
+
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index 7c15b6b..9896631 100644
+--- a/configure.in
++++ b/configure.in
+@@ -23,7 +23,7 @@ AM_CONFIG_HEADER(config.h)
dnl Checks for programs.
AC_PROG_CC
--#AC_PROG_CXX
+-dnl AC_PROG_CXX
+AC_PROG_CXX
- #AC_PROG_AWK
- #AM_PROG_LEX
- #AC_PROG_YACC
+ dnl AC_PROG_AWK
+ dnl AM_PROG_LEX
+ dnl AC_PROG_YACC
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb
new file mode 100644
index 0000000..f55a6fc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb
@@ -0,0 +1,53 @@
+# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'.
+# The following is the difference between the old and the new license text.
+# Please update the LICENSE value if needed, and summarize the changes in
+# the commit message via 'License-Update:' tag.
+# (example: 'License-Update: copyright years updated.')
+#
+# The changes:
+#
+# --- COPYING
+# +++ COPYING
+# @@ -293,7 +293,7 @@
+# <one line to give the program's name and a brief idea of what it does.>
+# Copyright (C) <year> <name of author>
+#
+# - on, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAThis program is free software; you can redistribute it and/or modify
+# + This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+#
+
+require links.inc
+
+DEPENDS += "virtual/libx11"
+RCONFLICTS_${PN} = "links"
+
+inherit distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " file://links2.desktop \
+ http://www.xora.org.uk/oe/links2.png;name=icon"
+
+S = "${WORKDIR}/links-${PV}"
+
+EXTRA_OECONF = "--enable-graphics \
+ --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+ --without-libtiff --without-svgalib --without-fb \
+ --without-directfb --without-pmshell --without-atheos \
+ --with-x --without-gpm"
+
+do_install_append() {
+ install -d ${D}/${datadir}/applications
+ install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications
+ install -d ${D}/${datadir}/pixmaps
+ install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps
+}
+
+SRC_URI[md5sum] = "645fb0c0294e4c3268f94d307d394ffb"
+SRC_URI[sha256sum] = "82f03038d5e050a65681b9888762af41c40fd42dec7e59a8d630bfb0ee134a3f"
+SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
+SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb
deleted file mode 100644
index 2ae11ac..0000000
--- a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-require links.inc
-
-DEPENDS += "virtual/libx11"
-RCONFLICTS_${PN} = "links"
-
-inherit distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += " file://links2.desktop \
- http://www.xora.org.uk/oe/links2.png;name=icon"
-
-S = "${WORKDIR}/links-${PV}"
-
-EXTRA_OECONF = "--enable-graphics \
- --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
- --without-libtiff --without-svgalib --without-fb \
- --without-directfb --without-pmshell --without-atheos \
- --with-x --without-gpm"
-
-do_install_append() {
- install -d ${D}/${datadir}/applications
- install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications
- install -d ${D}/${datadir}/pixmaps
- install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps
-}
-
-SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
-SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
-SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
-SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links.inc b/meta-openembedded/meta-oe/recipes-support/links/links.inc
index e072408..d6aa2d2 100644
--- a/meta-openembedded/meta-oe/recipes-support/links/links.inc
+++ b/meta-openembedded/meta-oe/recipes-support/links/links.inc
@@ -3,7 +3,7 @@
HOMEPAGE = "http://links.twibright.com/"
SECTION = "console/network"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=65e735be2e05d5943803344148f57603"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b0c80473f97008e42e29a9f80fcc55ff"
DEPENDS = "jpeg libpng flex openssl zlib"
SRC_URI = "http://links.twibright.com/download/links-${PV}.tar.bz2 \
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb b/meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb
new file mode 100644
index 0000000..19ea7a6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb
@@ -0,0 +1,15 @@
+require links.inc
+
+DEPENDS += "gpm"
+RCONFLICTS_${PN} = "links-x11"
+
+EXTRA_OECONF = "--enable-graphics \
+ --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+ --without-libtiff --without-svgalib --with-fb \
+ --without-directfb --without-pmshell --without-atheos \
+ --without-x"
+
+SRC_URI[md5sum] = "645fb0c0294e4c3268f94d307d394ffb"
+SRC_URI[sha256sum] = "82f03038d5e050a65681b9888762af41c40fd42dec7e59a8d630bfb0ee134a3f"
+SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
+SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb b/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb
deleted file mode 100644
index e80dd7b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require links.inc
-
-DEPENDS += "gpm"
-RCONFLICTS_${PN} = "links-x11"
-
-EXTRA_OECONF = "--enable-graphics \
- --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
- --without-libtiff --without-svgalib --with-fb \
- --without-directfb --without-pmshell --without-atheos \
- --without-x"
-
-SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
-SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
diff --git a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
index 3a6319c..d9780cf 100644
--- a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
@@ -60,3 +60,7 @@
bash"
FILES_${PN} += "${sbindir}/* /etc/init.d/* /etc/target/*"
+
+# http://errors.yoctoproject.org/Errors/Details/184712/
+# python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch
new file mode 100644
index 0000000..12f5be9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch
@@ -0,0 +1,30 @@
+From 2f39dc3d6f920c0826aa74367da1a0a7cc49b0fe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 15:18:04 -0700
+Subject: [PATCH] include sys/sysmacros.h for major/minor definitions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+inclusion of <sys/sysmacros.h> by <sys/types.h> is deprecated.
+This means that in a future release, the macros “major”, “minor”, and
+“makedev” will only be available from <sys/sysmacros.h>.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lockdev.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lockdev.c b/src/lockdev.c
+index 9a0fca5..3581938 100644
+--- a/src/lockdev.c
++++ b/src/lockdev.c
+@@ -117,6 +117,7 @@
+ #include <sys/stat.h>
+ #include <sys/file.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/wait.h>
+ #include "lockdev.h"
+ #include "ttylock.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
index 507ce3f..5ad7f0c 100644
--- a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
@@ -6,7 +6,9 @@
PV = "1.0.3+git${SRCPV}"
SRCREV = "16b899645d32012cc94cc9232f64d4ddaaf0b795"
-SRC_URI = "git://anonscm.debian.org/lockdev/lockdev.git"
+SRC_URI = "git://anonscm.debian.org/lockdev/lockdev.git \
+ file://0001-include-sys-sysmacros.h-for-major-minor-definitions.patch \
+ "
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
index e86ab25..5b55111 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
@@ -17,17 +17,17 @@
scripts/lvm2_monitoring_init_rhel4 | 4 ++--
8 files changed, 17 insertions(+), 17 deletions(-)
-diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in
-index a84ffe7..6b855b7 100644
---- a/scripts/blk_availability_init_red_hat.in
-+++ b/scripts/blk_availability_init_red_hat.in
+Index: LVM2.2.02.177/scripts/blk_availability_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/blk_availability_init_red_hat.in
++++ LVM2.2.02.177/scripts/blk_availability_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
- # Copyright (C) 2012 Red Hat, Inc. All rights reserved.
+ # Copyright (C) 2012-2017 Red Hat, Inc. All rights reserved.
#
-@@ -53,6 +53,6 @@ case "$1" in
+@@ -51,6 +51,6 @@ case "$1" in
status)
;;
*)
@@ -35,10 +35,10 @@
+ echo "Usage: $0 {start|stop|status}"
;;
esac
-diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in
-index d7f3392..abc8011 100644
---- a/scripts/clvmd_init_red_hat.in
-+++ b/scripts/clvmd_init_red_hat.in
+Index: LVM2.2.02.177/scripts/clvmd_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/clvmd_init_red_hat.in
++++ LVM2.2.02.177/scripts/clvmd_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -63,17 +63,17 @@
rtrn=2
;;
esac
-diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in
-index d4b7e37..d442cbc 100755
---- a/scripts/cmirrord_init_red_hat.in
-+++ b/scripts/cmirrord_init_red_hat.in
+Index: LVM2.2.02.177/scripts/cmirrord_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/cmirrord_init_red_hat.in
++++ LVM2.2.02.177/scripts/cmirrord_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# chkconfig: - 22 78
# description: Starts and stops cmirrord
-@@ -101,7 +101,7 @@ case "$1" in
+@@ -103,7 +103,7 @@ case "$1" in
;;
*)
@@ -82,15 +82,15 @@
;;
esac
-diff --git a/scripts/lvm2_cluster_activation_red_hat.sh.in b/scripts/lvm2_cluster_activation_red_hat.sh.in
-index abea026..d8cba2e 100644
---- a/scripts/lvm2_cluster_activation_red_hat.sh.in
-+++ b/scripts/lvm2_cluster_activation_red_hat.sh.in
+Index: LVM2.2.02.177/scripts/lvm2_cluster_activation_red_hat.sh.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_cluster_activation_red_hat.sh.in
++++ LVM2.2.02.177/scripts/lvm2_cluster_activation_red_hat.sh.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
- sbindir=@sbindir@
+ sbindir="@SBINDIR@"
@@ -54,7 +54,7 @@ case "$1" in
rtrn=$?
@@ -101,15 +101,34 @@
rtrn=3
;;
esac
-diff --git a/scripts/lvm2_lvmetad_init_red_hat.in b/scripts/lvm2_lvmetad_init_red_hat.in
-index b2f5d50..96269a9 100644
---- a/scripts/lvm2_lvmetad_init_red_hat.in
-+++ b/scripts/lvm2_lvmetad_init_red_hat.in
+Index: LVM2.2.02.177/scripts/lvm2_lvmetad_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_lvmetad_init_red_hat.in
++++ LVM2.2.02.177/scripts/lvm2_lvmetad_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
- # Copyright (C) 2012 Red Hat, Inc. All rights reserved.
+ # Copyright (C) 2012-2017 Red Hat, Inc. All rights reserved.
+ #
+@@ -103,7 +103,7 @@ case "$1" in
+ ;;
+
+ *)
+- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
++ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
+ ;;
+ esac
+
+Index: LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_lvmpolld_init_red_hat.in
++++ LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright (C) 2015 Red Hat, Inc. All rights reserved.
#
@@ -105,7 +105,7 @@ case "$1" in
;;
@@ -120,36 +139,17 @@
;;
esac
-diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in
-index c521955..cdbaece 100644
---- a/scripts/lvm2_lvmpolld_init_red_hat.in
-+++ b/scripts/lvm2_lvmpolld_init_red_hat.in
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # Copyright (C) 2015 Red Hat, Inc. All rights reserved.
- #
-@@ -107,7 +107,7 @@ case "$1" in
- ;;
-
- *)
-- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
-+ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
- ;;
- esac
-
-diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in
-index de7ff0d..9ff6bb7 100644
---- a/scripts/lvm2_monitoring_init_red_hat.in
-+++ b/scripts/lvm2_monitoring_init_red_hat.in
+Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_monitoring_init_red_hat.in
++++ LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# Copyright (C) 2007-2009 Red Hat, Inc. All rights reserved.
#
-@@ -128,7 +128,7 @@ case "$1" in
+@@ -127,7 +127,7 @@ case "$1" in
;;
*)
@@ -158,10 +158,10 @@
;;
esac
-diff --git a/scripts/lvm2_monitoring_init_rhel4 b/scripts/lvm2_monitoring_init_rhel4
-index 8eb06c5..2e8d0f7 100644
---- a/scripts/lvm2_monitoring_init_rhel4
-+++ b/scripts/lvm2_monitoring_init_rhel4
+Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_monitoring_init_rhel4
++++ LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -177,6 +177,3 @@
;;
esac
---
-2.12.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
index 5d72402..bb582ed 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
@@ -19,11 +19,11 @@
tools/lvmcmdline.c | 6 +++---
2 files changed, 9 insertions(+), 3 deletions(-)
-diff --git a/lib/log/log.c b/lib/log/log.c
-index c933154..3581084 100644
---- a/lib/log/log.c
-+++ b/lib/log/log.c
-@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_
+Index: LVM2.2.02.177/lib/log/log.c
+===================================================================
+--- LVM2.2.02.177.orig/lib/log/log.c
++++ LVM2.2.02.177/lib/log/log.c
+@@ -161,6 +161,7 @@ static void _check_and_replace_standard_
* Close and reopen standard stream on file descriptor fd.
*/
int reopen_standard_stream(FILE **stream, const char *mode)
@@ -31,7 +31,7 @@
{
int fd, fd_copy, new_fd;
const char *name;
-@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode)
+@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream
*stream = new_stream;
return 1;
}
@@ -43,11 +43,11 @@
void init_log_fn(lvm2_log_fn_t log_fn)
{
-diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
-index 9a4deb7..f1f18e6 100644
---- a/tools/lvmcmdline.c
-+++ b/tools/lvmcmdline.c
-@@ -1818,7 +1818,7 @@ static int _check_standard_fds(void)
+Index: LVM2.2.02.177/tools/lvmcmdline.c
+===================================================================
+--- LVM2.2.02.177.orig/tools/lvmcmdline.c
++++ LVM2.2.02.177/tools/lvmcmdline.c
+@@ -3095,7 +3095,7 @@ static int _check_standard_fds(void)
int err = is_valid_fd(STDERR_FILENO);
if (!is_valid_fd(STDIN_FILENO) &&
@@ -56,7 +56,7 @@
if (err)
perror("stdin stream open");
else
-@@ -1828,7 +1828,7 @@ static int _check_standard_fds(void)
+@@ -3105,7 +3105,7 @@ static int _check_standard_fds(void)
}
if (!is_valid_fd(STDOUT_FILENO) &&
@@ -65,7 +65,7 @@
if (err)
perror("stdout stream open");
/* else no stdout */
-@@ -1836,7 +1836,7 @@ static int _check_standard_fds(void)
+@@ -3113,7 +3113,7 @@ static int _check_standard_fds(void)
}
if (!is_valid_fd(STDERR_FILENO) &&
@@ -74,6 +74,3 @@
printf("stderr stream open: %s\n",
strerror(errno));
return 0;
---
-2.12.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
index 95dcede..ce8a97a 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
@@ -12,11 +12,11 @@
lib/mm/memlock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/lib/mm/memlock.c b/lib/mm/memlock.c
-index da90144..f34f890 100644
---- a/lib/mm/memlock.c
-+++ b/lib/mm/memlock.c
-@@ -150,7 +150,7 @@ static void _touch_memory(void *mem, size_t size)
+Index: LVM2.2.02.177/lib/mm/memlock.c
+===================================================================
+--- LVM2.2.02.177.orig/lib/mm/memlock.c
++++ LVM2.2.02.177/lib/mm/memlock.c
+@@ -151,7 +151,7 @@ static void _touch_memory(void *mem, siz
static void _allocate_memory(void)
{
@@ -25,6 +25,3 @@
void *stack_mem;
struct rlimit limit;
int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
---
-2.12.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
index aaeaa72..517b9a5 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
@@ -1,6 +1,6 @@
-From 0012ea63f6070a5d41fa380970f9c30b953237d2 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Tue, 25 Oct 2016 11:59:40 +0000
+From 3bba45890985b877b823836e78a1c8ac3c878856 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 31 Jul 2018 15:04:29 +0800
Subject: [PATCH 4/4] tweak MODPROBE_CMD for cross compile
Lvm uses variable MODPROBE_CMD at runtime, so build time detection of modprobe
@@ -16,23 +16,23 @@
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
- configure.in | 1 -
- 1 file changed, 1 deletion(-)
+ configure.ac | 2 --
+ 1 file changed, 2 deletions(-)
-diff --git a/configure.in b/configure.in
-index cc77aab..a3579f2 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1853,7 +1853,6 @@ if test "$UDEV_SYNC" = yes; then
+diff --git a/configure.ac b/configure.ac
+index e427708..aa374ea 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1791,8 +1791,6 @@ if test "$BUILD_DMFILEMAPD" = yes; then
fi
################################################################################
--AC_PATH_TOOL(MODPROBE_CMD, modprobe)
-
+-AC_PATH_TOOL(MODPROBE_CMD, modprobe, [], [$PATH_SBIN])
+-
if test -n "$MODPROBE_CMD"; then
AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.])
+ fi
--
-2.9.3
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
index 15aa9f5..e3ce4c8 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
@@ -1,6 +1,6 @@
-From d8bb25e34d6533ba78eaae697771ee499a66706f Mon Sep 17 00:00:00 2001
+From 51d661ff33bb254d7b335a9c87acf5c6e7a94192 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 2 Aug 2017 03:41:37 -0400
+Date: Tue, 31 Jul 2018 15:08:34 +0800
Subject: [PATCH] do not build manual
On some host (ubuntu 1404), build manual failed.
@@ -15,24 +15,33 @@
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- Makefile.in | 4 ++--
- configure.in | 1 -
- 2 files changed, 2 insertions(+), 3 deletions(-)
+ Makefile.in | 6 +++---
+ configure.ac | 1 -
+ 2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index 31d428d..24f89a2 100644
+index e2f5a84..acf31e5 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -18,7 +18,7 @@ top_builddir = @top_builddir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
--SUBDIRS = conf daemons include lib libdaemon libdm man scripts tools
-+SUBDIRS = conf daemons include lib libdaemon libdm scripts tools
+-SUBDIRS = conf daemons include lib libdaemon libdm man scripts device_mapper tools
++SUBDIRS = conf daemons include lib libdaemon libdm scripts device_mapper tools
ifeq ("@UDEV_RULES@", "yes")
SUBDIRS += udev
-@@ -69,7 +69,7 @@ liblvm.device-mapper: include.device-mapper
+@@ -41,7 +41,7 @@ ifeq ($(MAKECMDGOALS),clean)
+ endif
+ # FIXME Should use intermediate Makefiles here!
+ ifeq ($(MAKECMDGOALS),distclean)
+- SUBDIRS = conf include man test scripts \
++ SUBDIRS = conf include test scripts \
+ libdaemon lib tools daemons libdm \
+ udev po liblvm python device_mapper
+ tools.distclean: test.distclean
+@@ -71,7 +71,7 @@ liblvm.device-mapper: include.device-mapper
daemons.device-mapper: libdm.device-mapper
tools.device-mapper: libdm.device-mapper
scripts.device-mapper: include.device-mapper
@@ -41,11 +50,11 @@
ifeq ("@INTL@", "yes")
lib.pofile: include.pofile
-diff --git a/configure.in b/configure.in
-index 1dc8819..108ace4 100644
---- a/configure.in
-+++ b/configure.in
-@@ -2213,7 +2213,6 @@ libdm/Makefile
+diff --git a/configure.ac b/configure.ac
+index aa374ea..5a92cba 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2124,7 +2124,6 @@ libdm/Makefile
libdm/libdevmapper.pc
liblvm/Makefile
liblvm/liblvm2app.pc
@@ -54,5 +63,5 @@
python/Makefile
python/setup.py
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb
deleted file mode 100644
index b6ae902..0000000
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require lvm2.inc
-
-SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
-SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
-
-DEPENDS += "autoconf-archive-native"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' -C libdm install
-}
-
-RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.180.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.180.bb
new file mode 100644
index 0000000..26af327
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.180.bb
@@ -0,0 +1,17 @@
+require lvm2.inc
+
+SRC_URI[md5sum] = "bc26da66e96727babbd288bb0f050339"
+SRC_URI[sha256sum] = "24997e26dfc916151707c9da504d38d0473bec3481a8230b676bc079041bead6"
+
+DEPENDS += "autoconf-archive-native"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' -C libdm install
+ oe_runmake 'DESTDIR=${D}' -C tools install_device-mapper
+}
+
+RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
index 289e07d..26a887e 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -1,11 +1,11 @@
HOMEPAGE = "https://www.sourceware.org/lvm2/"
SECTION = "utils"
DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
-LICENSE = "GPLv2 & LGPLv2"
+LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \
file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24"
-DEPENDS += "util-linux"
+DEPENDS += "util-linux libaio"
SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \
file://lvm.conf \
@@ -17,6 +17,10 @@
file://0005-do-not-build-manual.patch \
file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
"
+
+UPSTREAM_CHECK_URI = "ftp://sources.redhat.com/pub/lvm2/"
+UPSTREAM_CHECK_REGEX = "LVM2\.(?P<pver>\d+(\.\d+)+)"
+
S = "${WORKDIR}/LVM2.${PV}"
inherit autotools-brokensep pkgconfig systemd license
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
index e85818d..7f5dd93 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
@@ -1,4 +1,4 @@
-From 0a8e466fcf99622896e070c5133165e4278e8cfb Mon Sep 17 00:00:00 2001
+From 5a3e13ae94318c2bed60f875bb3852c45ce0113c Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 25 May 2017 05:27:11 -0400
Subject: [PATCH] explicitly do not install libdm
@@ -9,12 +9,14 @@
Upstream-Status: Inappropriate [meta-oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Andrew Bresticker <abrestic@waymo.com>
---
libdm/Makefile.in | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
+ tools/Makefile.in | 3 ++-
+ 2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/libdm/Makefile.in b/libdm/Makefile.in
-index 3c9a4ce..45c91c6 100644
+index 66ec39513..c779c9d86 100644
--- a/libdm/Makefile.in
+++ b/libdm/Makefile.in
@@ -77,9 +77,11 @@ ifeq ("@PKGCONFIG@", "yes")
@@ -23,14 +25,28 @@
-install: $(INSTALL_TYPE) install_include
+install:
-+ echo "Do not install device mappler in lvm2"
++ echo "Do not install device mapper in lvm2"
-install_device-mapper: install
+install_device-mapper:
-+ echo "Do not install device mappler in lvm2"
++ echo "Do not install device mapper in lvm2"
install_include: $(srcdir)/libdevmapper.h
$(INSTALL_DATA) -D $< $(includedir)/$(<F)
+diff --git a/tools/Makefile.in b/tools/Makefile.in
+index 103b76732..63ba7fc04 100644
+--- a/tools/Makefile.in
++++ b/tools/Makefile.in
+@@ -267,7 +267,8 @@ install_dmsetup_static: dmsetup.static
+ $(Q) $(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)
+ $(Q) $(LN_S) -f $(<F) $(staticdir)/dmstats
+
+-install_device-mapper: $(INSTALL_DMSETUP_TARGETS)
++install_device-mapper:
++ echo "Do not install device mapper in lvm2"
+
+ install_lvm2: $(INSTALL_LVM_TARGETS)
+
--
-2.8.1
+2.19.0.397.gdd90340f6a-goog
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
deleted file mode 100644
index 84881e7..0000000
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-require lvm2.inc
-
-SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
-SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
-
-SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch"
-
-DEPENDS += "autoconf-archive-native"
-
-CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
-
-do_install_append() {
- # Install machine specific configuration file
- install -d ${D}${sysconfdir}/lvm
- install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
- sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- oe_runmake 'DESTDIR=${D}' install install_systemd_units
- sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
- else
- oe_runmake 'DESTDIR=${D}' install install_initscripts
- mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
- rm -rf ${D}${sysconfdir}/rc.d
- fi
-}
-
-PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \
- blk-availability.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-FILES_${PN} += "${libdir}/device-mapper/*.so"
-FILES_${PN}-scripts = " \
- ${sbindir}/blkdeactivate \
- ${sbindir}/fsadm \
- ${sbindir}/lvmconf \
- ${sbindir}/lvmdump \
-"
-# Specified explicitly for the udev rules, just in case that it does not get picked
-# up automatically:
-FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d"
-RDEPENDS_${PN}_append_class-target = " libdevmapper"
-
-RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash"
-RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})"
-
-CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.180.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.180.bb
new file mode 100644
index 0000000..7bd7b09
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.180.bb
@@ -0,0 +1,62 @@
+require lvm2.inc
+
+SRC_URI[md5sum] = "bc26da66e96727babbd288bb0f050339"
+SRC_URI[sha256sum] = "24997e26dfc916151707c9da504d38d0473bec3481a8230b676bc079041bead6"
+
+SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch"
+
+DEPENDS += "autoconf-archive-native"
+
+inherit multilib_script
+
+MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/lvm/lvm.conf"
+
+CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
+
+do_install_append() {
+ # Install machine specific configuration file
+ install -d ${D}${sysconfdir}/lvm
+ install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
+ sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ oe_runmake 'DESTDIR=${D}' install install_systemd_units
+ sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
+ else
+ oe_runmake 'DESTDIR=${D}' install install_initscripts
+ mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
+ rm -rf ${D}${sysconfdir}/rc.d
+ fi
+}
+
+PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \
+ blk-availability.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+EXTRA_OECONF_append_class-nativesdk = " --with-confdir=${sysconfdir}"
+
+FILES_${PN} += "${libdir}/device-mapper/*.so"
+FILES_${PN}-scripts = " \
+ ${sbindir}/blkdeactivate \
+ ${sbindir}/fsadm \
+ ${sbindir}/lvmconf \
+ ${sbindir}/lvmdump \
+"
+# Specified explicitly for the udev rules, just in case that it does not get picked
+# up automatically:
+FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d"
+RDEPENDS_${PN}-udevrules = "${PN}"
+RDEPENDS_${PN}_append_class-target = " libdevmapper"
+RDEPENDS_${PN}_append_class-nativesdk = " libdevmapper"
+
+RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash"
+RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})"
+
+CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
index f876144..cc33cba 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
@@ -8,6 +8,10 @@
SRCREV = "4cbe46321b4a81365ff3aafafe63967264dbfec5"
+UPSTREAM_CHECK_COMMITS = "1"
+
+DEPENDS = "bison-native"
+
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://README;beginline=30;md5=94c18755082a2da9c9cf97cba3ad47d6"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb
deleted file mode 100644
index 84633a7..0000000
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "mcelog daemon accounts memory and some other errors in various ways."
-DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \
-and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \
-and should run on all Linux systems that need error handling."
-HOMEPAGE = "http://mcelog.org/"
-SECTION = "System Environment/Base"
-
-SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \
- file://run-ptest \
-"
-
-SRCREV = "2cfdf29b2ef98ccd5ed42cdde8bbe437e0d6412f"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://README.md;md5=279840fabb191e6cd9150492d31b0e20"
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep ptest
-
-COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
-
-do_install_append() {
- install -d ${D}${sysconfdir}/cron.hourly
- install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/
- sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}
- cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH}
- sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test
-}
-
-RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb
new file mode 100644
index 0000000..dfca385
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb
@@ -0,0 +1,35 @@
+SUMMARY = "mcelog daemon accounts memory and some other errors in various ways."
+DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \
+and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \
+and should run on all Linux systems that need error handling."
+HOMEPAGE = "http://mcelog.org/"
+SECTION = "System Environment/Base"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \
+ file://run-ptest \
+"
+
+SRCREV = "6ed93e30f83519b0ab71f8ecd156b8ff0b2912b6"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep ptest
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/cron.hourly
+ install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/
+ sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH}
+ sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test
+}
+
+RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject"
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
deleted file mode 100644
index 46dd8e2..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 330028a5a904a0da3788141030e614569dc5aaa7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 23:28:12 -0700
-Subject: [PATCH] kpartx: include limits.h for PATH_MAX
-
-lopart.c:76:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'INT8_MAX'?
- char path[PATH_MAX];
- ^~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- kpartx/lopart.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/kpartx/lopart.c b/kpartx/lopart.c
-index 7005445..5efe5dc 100644
---- a/kpartx/lopart.c
-+++ b/kpartx/lopart.c
-@@ -22,6 +22,7 @@
- #include <errno.h>
- #include <stdlib.h>
- #include <unistd.h>
-+#include <limits.h>
- #include <sys/ioctl.h>
- #include <sys/stat.h>
- #include <sys/mman.h>
---
-2.13.3
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
deleted file mode 100644
index acb4269..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 5ab50e0cb888e553a2635bbbf81eea3cdeffee60 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 12 Apr 2017 09:07:51 -0500
-Subject: [PATCH 01/14] multipath: attempt at common multipath.rules
-
-This is a proposal to try and bring the Redhat and SuSE multipath.rules
-closer. There are a couple of changes that I'd like some input on.
-
-The big change is moving the kpartx call into the multipath rules. Half
-of the current kpartx.rules file is about creating symlinks for multiple
-types of dm devices. The other half auto-creates kpartx devices on top
-of multipath devices. Since it is only creating kpartx devices on top of
-multipath devices, I've moved the these rules into multipath.rules, or
-rather, I've replaced them with the redhat rules in multipath.rules. The
-biggest difference is the kpartx isn't run on every reload. It works
-with the 11-dm-mpath.rules code to not run kpartx on multipathd
-generated reloads or when there aren't any working paths. It does
-remember if it didn't get to run kpartx when it was supposed to (because
-there were no valid paths or the device was suspended) and will make
-sure to run it on the next possible uevent.
-
-The other change is the redhat multipath rules remove the partition
-device nodes for devices claimed by multipath. The udev rule will only
-do this one time (both to keep from running partx on every event, and so
-that if users manually reread the partition table, we don't keep
-removing them when clearly they are wanted). Redhat does this because we
-had multiple customer issues where they were using the scsi partitions
-instead of the kpartx devices. Obviously, with setting the partition
-devices to not ready and clearing their fs_type, this isn't essential,
-but it has helped make customers do the right thing.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- kpartx/kpartx.rules | 8 --------
- multipath/multipath.rules | 27 ++++++++++++++++++++++++---
- 2 files changed, 24 insertions(+), 11 deletions(-)
-
-diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
-index a958791..906e320 100644
---- a/kpartx/kpartx.rules
-+++ b/kpartx/kpartx.rules
-@@ -34,12 +34,4 @@ ENV{ID_FS_LABEL_ENC}=="?*", IMPORT{db}="ID_FS_LABEL_ENC"
- ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", \
- SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
-
--# Create dm tables for partitions
--ENV{DM_ACTION}=="PATH_FAILED|PATH_REINSTATED", GOTO="kpartx_end"
--ENV{DM_NR_VALID_PATHS}=="0", GOTO="kpartx_end"
--ENV{ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
--ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="kpartx_end"
--ENV{DM_STATE}!="SUSPENDED", ENV{DM_UUID}=="mpath-*", \
-- RUN+="/sbin/kpartx -un -p -part /dev/$name"
--
- LABEL="kpartx_end"
-diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 86defc0..616a04c 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -1,13 +1,13 @@
- # Set DM_MULTIPATH_DEVICE_PATH if the device should be handled by multipath
- SUBSYSTEM!="block", GOTO="end_mpath"
- ACTION!="add|change", GOTO="end_mpath"
--KERNEL!="sd*|dasd*", GOTO="end_mpath"
--
-+KERNEL!="sd*|dasd*|rbd*|dm-*", GOTO="end_mpath"
- IMPORT{cmdline}="nompath"
- ENV{nompath}=="?*", GOTO="end_mpath"
- IMPORT{cmdline}="multipath"
- ENV{multipath}=="off", GOTO="end_mpath"
-
-+KERNEL=="dm-*", GOTO="check_kpartx"
- ENV{DEVTYPE}!="partition", GOTO="test_dev"
- IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
- ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{ID_FS_TYPE}="none", \
-@@ -21,7 +21,28 @@ TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
-
- ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \
- PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -u %k", \
-- ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="none", \
-+ ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="mpath_member", \
- ENV{SYSTEMD_READY}="0"
-
-+ENV{DM_MULTIPATH_DEVICE_PATH}!="1", GOTO="end_mpath"
-+
-+IMPORT{db}="DM_MULTIPATH_WIPE_PARTS"
-+ENV{DM_MULTIPATH_WIPE_PARTS}!="1", ENV{DM_MULTIPATH_WIPE_PARTS}="1", \
-+ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
-+GOTO="end_mpath"
-+
-+LABEL="check_kpartx"
-+
-+IMPORT{db}="DM_MULTIPATH_NEED_KPARTX"
-+ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
-+ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath"
-+ACTION!="change", GOTO="end_mpath"
-+ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath"
-+ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1"
-+ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
-+ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
-+ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath"
-+RUN+="/sbin/kpartx -un -p -part /dev/$name"
-+ENV{DM_MULTIPATH_NEED_KPARTX}=""
-+
- LABEL="end_mpath"
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch
new file mode 100644
index 0000000..1d983e9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Wed, 11 Apr 2018 15:14:13 +0200
+Subject: [PATCH] multipath-tools: add RDAC SUN/ArrayStorage to hwtable
+
+Already in scsi_dh: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/scsi/scsi_dh.c#n70
+
+Cc: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/hwtable.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
+index 88b4700..827e899 100644
+--- a/libmultipath/hwtable.c
++++ b/libmultipath/hwtable.c
+@@ -890,6 +890,18 @@ static struct hwentry default_hw[] = {
+ .no_path_retry = 30,
+ },
+ {
++ .vendor = "SUN",
++ .product = "ArrayStorage",
++ .bl_product = "Universal Xport",
++ .pgpolicy = GROUP_BY_PRIO,
++ .checker_name = RDAC,
++ .features = "2 pg_init_retries 50",
++ .hwhandler = "1 rdac",
++ .prio_name = PRIO_RDAC,
++ .pgfailback = -FAILBACK_IMMEDIATE,
++ .no_path_retry = 30,
++ },
++ {
+ /* ZFS Storage Appliances */
+ .vendor = "SUN",
+ .product = "(Sun Storage|ZFS Storage|COMSTAR)",
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
deleted file mode 100644
index e63d2eb..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 158255383c02d3fb81c82fb9ec6fd36fb234f68e Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 13 Apr 2017 07:22:23 -0500
-Subject: [PATCH 02/14] RH: fixup udev rules for redhat
-
-The multipath rules need to run after scsi_id is run. This means moving
-them after 60-persistent-storage.rules for redhat. Also, we don't
-currently set up all the symlinks that SuSE does. If we want them, they
-should be done in the device-mapper package, since they are for all
-device-mapper devices. Redhat also uses a different naming scheme for
-partitions than SuSE.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- Makefile.inc | 2 +-
- kpartx/Makefile | 14 +++++++-------
- multipath/Makefile | 4 ++--
- multipath/multipath.rules | 3 ++-
- 4 files changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 1815f9a..2591fa9 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -47,7 +47,7 @@ endif
-
- prefix =
- exec_prefix = $(prefix)
--bindir = $(exec_prefix)/sbin
-+bindir = $(exec_prefix)/usr/sbin
- libudevdir = $(prefix)/$(SYSTEMDPATH)/udev
- udevrulesdir = $(libudevdir)/rules.d
- multipathdir = $(TOPDIR)/libmultipath
-diff --git a/kpartx/Makefile b/kpartx/Makefile
-index 7b75032..bfa6fe8 100644
---- a/kpartx/Makefile
-+++ b/kpartx/Makefile
-@@ -26,19 +26,19 @@ $(EXEC): $(OBJS)
- install: $(EXEC) $(EXEC).8
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
-- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
-- $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
-- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d
-- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-+# $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
-+# $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
-+# $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d
-+# $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
-
- uninstall:
- $(RM) $(DESTDIR)$(bindir)/$(EXEC)
- $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
-- $(RM) $(DESTDIR)$(libudevdir)/kpartx_id
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
-+# $(RM) $(DESTDIR)$(libudevdir)/kpartx_id
-+# $(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-+# $(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
-
- clean:
- $(RM) core *.o $(EXEC) *.gz
-diff --git a/multipath/Makefile b/multipath/Makefile
-index c85314e..1e9ee4b 100644
---- a/multipath/Makefile
-+++ b/multipath/Makefile
-@@ -24,7 +24,7 @@ install:
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
- $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
-- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
-+ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
-@@ -33,7 +33,7 @@ install:
- uninstall:
- $(RM) $(DESTDIR)$(bindir)/$(EXEC)
- $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
-+ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
- $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
- $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
-
-diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 616a04c..4d78b98 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -33,6 +33,7 @@ GOTO="end_mpath"
-
- LABEL="check_kpartx"
-
-+ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10"
- IMPORT{db}="DM_MULTIPATH_NEED_KPARTX"
- ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
- ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath"
-@@ -42,7 +43,7 @@ ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1"
- ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
- ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
- ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath"
--RUN+="/sbin/kpartx -un -p -part /dev/$name"
-+RUN+="/sbin/kpartx -un /dev/$name"
- ENV{DM_MULTIPATH_NEED_KPARTX}=""
-
- LABEL="end_mpath"
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch
new file mode 100644
index 0000000..73f000a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch
@@ -0,0 +1,33 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Tue, 24 Apr 2018 15:03:40 +0200
+Subject: [PATCH] multipath-tools: remove "c" from __cpluscplus, misspelled
+
+found by cppcheck(http://cppcheck.sf.net/):
+[libmpathcmd/mpath_cmd.h:24]: (error) Invalid number of character '{' when these macros are defined: '__cpluscplus'.
+
+Cc: Benjamin Marzinski <bmarzins@redhat.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmpathcmd/mpath_cmd.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libmpathcmd/mpath_cmd.h b/libmpathcmd/mpath_cmd.h
+index aaa8da9..df9d938 100644
+--- a/libmpathcmd/mpath_cmd.h
++++ b/libmpathcmd/mpath_cmd.h
+@@ -20,7 +20,7 @@
+ #ifndef LIB_MPATH_CMD_H
+ #define LIB_MPATH_CMD_H
+
+-#ifdef __cpluscplus
++#ifdef __cplusplus
+ extern "C" {
+ #endif
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
deleted file mode 100644
index 684e959..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 69a67c2ed09ae51b53de402966a9f7a4cc737715 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 2 Jul 2014 12:49:53 -0500
-Subject: [PATCH 03/14] RH: Remove the property blacklist exception builtin
-
-Multipath set the default property blacklist exceptions to
-(ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal
-devices. These devices may never have multiple paths, but it is nice
-to be able to set multipath up on them all the same. This patch simply
-removes the default, and makes it so that if no property
-blacklist_exception is given, then devices aren't failed for not matching
-it.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/blacklist.c | 15 ++++++---------
- multipath/multipath.conf.5 | 4 ----
- 2 files changed, 6 insertions(+), 13 deletions(-)
-
-diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
-index ee396e2..19d4697 100644
---- a/libmultipath/blacklist.c
-+++ b/libmultipath/blacklist.c
-@@ -181,12 +181,6 @@ setup_default_blist (struct config * conf)
- if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
- return 1;
-
-- str = STRDUP("(SCSI_IDENT_|ID_WWN)");
-- if (!str)
-- return 1;
-- if (store_ble(conf->elist_property, str, ORIGIN_DEFAULT))
-- return 1;
--
- vector_foreach_slot (conf->hwtable, hwe, i) {
- if (hwe->bl_product) {
- if (_blacklist_device(conf->blist_device, hwe->vendor,
-@@ -390,9 +384,12 @@ filter_property(struct config * conf, struct udev_device * udev)
- * This is the inverse of the 'normal' matching;
- * the environment variable _has_ to match.
- */
-- log_filter(devname, NULL, NULL, NULL, NULL,
-- MATCH_PROPERTY_BLIST_MISSING);
-- return MATCH_PROPERTY_BLIST_MISSING;
-+ if (VECTOR_SIZE(conf->elist_property)) {
-+ log_filter(devname, NULL, NULL, NULL, NULL,
-+ MATCH_PROPERTY_BLIST_MISSING);
-+ return MATCH_PROPERTY_BLIST_MISSING;
-+ }
-+ return 0;
- }
-
- void
-diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
-index f04ff19..fbbbb27 100644
---- a/multipath/multipath.conf.5
-+++ b/multipath/multipath.conf.5
-@@ -1014,10 +1014,6 @@ The \fIWorld Wide Identification\fR of a device.
- .TP
- .B property
- Regular expression of the udev property to be whitelisted.
--.RS
--.TP
--The default is: \fB(SCSI_IDENT_|ID_WWN)\fR
--.RE
- .TP
- .B device
- Subsection for the device description. This subsection recognizes the
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch
new file mode 100644
index 0000000..7358e1a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch
@@ -0,0 +1,43 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Thu, 12 Apr 2018 18:17:13 +0200
+Subject: [PATCH] multipath-tools: remove emacs autoconfig of kpartx/gpt.h
+
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ kpartx/gpt.h | 19 -------------------
+ 1 file changed, 19 deletions(-)
+
+diff --git a/kpartx/gpt.h b/kpartx/gpt.h
+index 66ce8f1..7bb54b7 100644
+--- a/kpartx/gpt.h
++++ b/kpartx/gpt.h
+@@ -109,22 +109,3 @@ int read_gpt_pt (int fd, struct slice all, struct slice *sp, int ns);
+
+
+ #endif
+-
+-/*
+- * Overrides for Emacs so that we follow Linus's tabbing style.
+- * Emacs will notice this stuff at the end of the file and automatically
+- * adjust the settings for this buffer only. This must remain at the end
+- * of the file.
+- * ---------------------------------------------------------------------------
+- * Local variables:
+- * c-indent-level: 4
+- * c-brace-imaginary-offset: 0
+- * c-brace-offset: -4
+- * c-argdecl-indent: 4
+- * c-label-offset: -4
+- * c-continued-statement-offset: 4
+- * c-continued-brace-offset: 0
+- * indent-tabs-mode: nil
+- * tab-width: 8
+- * End:
+- */
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
deleted file mode 100644
index 87a6d3f..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From b2b504fc1959c7a3f0a843c3c204e8e193b675b7 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 15 Oct 2014 10:39:30 -0500
-Subject: [PATCH 04/14] RH: don't start without a config file
-
-If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist
-all devices when running multipath. A completely blank configuration file
-is almost never what users want. Also, people may have the multipath
-packages installed but don't want to use them. This patch provides a
-simple way to disable multipath. Simply removing or renaming
-/etc/multipath.conf will keep multipath from doing anything.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/config.c | 17 +++++++++++++++++
- libmultipath/config.h | 1 +
- multipath/multipath.rules | 1 +
- multipathd/multipathd.8 | 2 ++
- multipathd/multipathd.service | 1 +
- 5 files changed, 22 insertions(+)
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index bb6619b..aae69b8 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -25,6 +25,7 @@
- #include "prio.h"
- #include "devmapper.h"
- #include "mpath_cmd.h"
-+#include "version.h"
-
- static int
- hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2)
-@@ -667,6 +668,22 @@ load_config (char * file)
- factorize_hwtable(conf->hwtable, builtin_hwtable_size);
- }
-
-+ } else {
-+ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
-+ condlog(0, "A default multipath.conf file is located at");
-+ condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
-+ if (conf->blist_devnode == NULL) {
-+ conf->blist_devnode = vector_alloc();
-+ if (!conf->blist_devnode) {
-+ condlog(0, "cannot allocate blacklist\n");
-+ goto out;
-+ }
-+ }
-+ if (store_ble(conf->blist_devnode, strdup(".*"),
-+ ORIGIN_NO_CONFIG)) {
-+ condlog(0, "cannot store default no-config blacklist\n");
-+ goto out;
-+ }
- }
-
- conf->processed_main_config = 1;
-diff --git a/libmultipath/config.h b/libmultipath/config.h
-index ffc69b5..614331c 100644
---- a/libmultipath/config.h
-+++ b/libmultipath/config.h
-@@ -7,6 +7,7 @@
-
- #define ORIGIN_DEFAULT 0
- #define ORIGIN_CONFIG 1
-+#define ORIGIN_NO_CONFIG 2
-
- /*
- * In kernel, fast_io_fail == 0 means immediate failure on rport delete.
-diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 4d78b98..5753766 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -6,6 +6,7 @@ IMPORT{cmdline}="nompath"
- ENV{nompath}=="?*", GOTO="end_mpath"
- IMPORT{cmdline}="multipath"
- ENV{multipath}=="off", GOTO="end_mpath"
-+TEST!="/etc/multipath.conf", GOTO="end_mpath"
-
- KERNEL=="dm-*", GOTO="check_kpartx"
- ENV{DEVTYPE}!="partition", GOTO="test_dev"
-diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8
-index 4c765af..c1499a5 100644
---- a/multipathd/multipathd.8
-+++ b/multipathd/multipathd.8
-@@ -39,6 +39,8 @@ map regains its maximum performance and redundancy.
- This daemon executes the external \fBmultipath\fR tool when events occur.
- In turn, the multipath tool signals the multipathd daemon when it is done with
- devmap reconfiguration, so that it can refresh its failed path list.
-+
-+In this Linux distribution, multipathd does not run unless a /etc/multipath.conffile exists
- .
- .
- .\" ----------------------------------------------------------------------------
-diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index fd66cf6..fafd088 100644
---- a/multipathd/multipathd.service
-+++ b/multipathd/multipathd.service
-@@ -4,6 +4,7 @@ Wants=systemd-udev-trigger.service systemd-udev-settle.service
- Before=iscsi.service iscsid.service lvm2-lvmetad.service lvm2-activation-early.service
- Before=local-fs-pre.target blk-availability.service
- After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service
-+ConditionPathExists=/etc/multipath.conf
- DefaultDependencies=no
- Conflicts=shutdown.target
- ConditionKernelCommandLine=!nompath
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch
new file mode 100644
index 0000000..13f18b5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch
@@ -0,0 +1,191 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Fri, 11 May 2018 15:42:43 +0200
+Subject: [PATCH] multipath-tools: replace FSF address with a www pointer
+
+Less prone to future modifications, new FSF licences
+point exactly to this url: <http://www.gnu.org/licenses/>.
+And sending a smail to FSF is outdated.
+
+First clean up was done in 5619a39c433ac3d10a88079593cec1aa6472cbeb
+
+Cc: Martin Wilck <mwilck@suse.com>
+Cc: Benjamin Marzinski <bmarzins@redhat.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/dm-generic.c | 4 +---
+ libmultipath/dm-generic.h | 4 +---
+ libmultipath/foreign.c | 4 +---
+ libmultipath/foreign.h | 4 +---
+ libmultipath/foreign/nvme.c | 4 +---
+ libmultipath/generic.c | 4 +---
+ libmultipath/generic.h | 4 +---
+ tests/dmevents.c | 2 +-
+ tests/parser.c | 2 +-
+ tests/uevent.c | 2 +-
+ tests/util.c | 2 +-
+ 11 files changed, 11 insertions(+), 25 deletions(-)
+
+diff --git a/libmultipath/dm-generic.c b/libmultipath/dm-generic.c
+index bdc9ca0..d752991 100644
+--- a/libmultipath/dm-generic.c
++++ b/libmultipath/dm-generic.c
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+ #include <stdint.h>
+diff --git a/libmultipath/dm-generic.h b/libmultipath/dm-generic.h
+index 5d59724..986429f 100644
+--- a/libmultipath/dm-generic.h
++++ b/libmultipath/dm-generic.h
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+ #ifndef _DM_GENERIC_H
+ #define _DM_GENERIC_H
+diff --git a/libmultipath/foreign.c b/libmultipath/foreign.c
+index 7217184..80b399b 100644
+--- a/libmultipath/foreign.c
++++ b/libmultipath/foreign.c
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+ #include <sys/sysmacros.h>
+diff --git a/libmultipath/foreign.h b/libmultipath/foreign.h
+index 973f368..697f12f 100644
+--- a/libmultipath/foreign.h
++++ b/libmultipath/foreign.h
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+ #ifndef _FOREIGN_H
+ #define _FOREIGN_H
+diff --git a/libmultipath/foreign/nvme.c b/libmultipath/foreign/nvme.c
+index 235f75d..280b6bd 100644
+--- a/libmultipath/foreign/nvme.c
++++ b/libmultipath/foreign/nvme.c
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+ #include <sys/sysmacros.h>
+diff --git a/libmultipath/generic.c b/libmultipath/generic.c
+index 6f7a2cd..0d1e632 100644
+--- a/libmultipath/generic.c
++++ b/libmultipath/generic.c
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+
+diff --git a/libmultipath/generic.h b/libmultipath/generic.h
+index 7f7fe66..6346ffe 100644
+--- a/libmultipath/generic.h
++++ b/libmultipath/generic.h
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+ #ifndef _GENERIC_H
+ #define _GENERIC_H
+diff --git a/tests/dmevents.c b/tests/dmevents.c
+index bba51dc..3399c81 100644
+--- a/tests/dmevents.c
++++ b/tests/dmevents.c
+@@ -12,7 +12,7 @@
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+diff --git a/tests/parser.c b/tests/parser.c
+index a7e7598..29859da 100644
+--- a/tests/parser.c
++++ b/tests/parser.c
+@@ -12,7 +12,7 @@
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+diff --git a/tests/uevent.c b/tests/uevent.c
+index acfcb14..b0d0bfd 100644
+--- a/tests/uevent.c
++++ b/tests/uevent.c
+@@ -12,7 +12,7 @@
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+diff --git a/tests/util.c b/tests/util.c
+index 113b134..839effd 100644
+--- a/tests/util.c
++++ b/tests/util.c
+@@ -12,7 +12,7 @@
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
deleted file mode 100644
index acef410..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
+++ /dev/null
@@ -1,648 +0,0 @@
-From de44504fe7f7802cd474efd92ac15b5a8857db1f Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 16 Oct 2014 15:49:01 -0500
-Subject: [PATCH 05/14] RH: add mpathconf
-
-mpathconf is a program (largely based on lvmcomf) to help users
-configure /etc/multipath.conf and enable or disable multipathing. It
-has a couple of built-in options that can be set directly from the
-command line. But, mostly it is used to get a multipath.conf file
-with the OS defaults, and to enable and disable multipathing via
-a single command.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/config.c | 1 +
- multipath/Makefile | 5 +
- multipath/mpathconf | 464 ++++++++++++++++++++++++++++++++++++++++++++++++++
- multipath/mpathconf.8 | 101 +++++++++++
- 4 files changed, 571 insertions(+)
- create mode 100644 multipath/mpathconf
- create mode 100644 multipath/mpathconf.8
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index aae69b8..c485748 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -672,6 +672,7 @@ load_config (char * file)
- condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
- condlog(0, "A default multipath.conf file is located at");
- condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
-+ condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
- if (conf->blist_devnode == NULL) {
- conf->blist_devnode = vector_alloc();
- if (!conf->blist_devnode) {
-diff --git a/multipath/Makefile b/multipath/Makefile
-index 1e9ee4b..3d4d459 100644
---- a/multipath/Makefile
-+++ b/multipath/Makefile
-@@ -18,10 +18,12 @@ $(EXEC): $(OBJS)
- $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS) $(LIBDEPS)
- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
- $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
-+ $(GZIP) mpathconf.8 > mpathconf.8.gz
-
- install:
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
-+ $(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
- $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
-@@ -29,13 +31,16 @@ install:
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
-+ $(INSTALL_PROGRAM) -m 644 mpathconf.8.gz $(DESTDIR)$(man8dir)
-
- uninstall:
- $(RM) $(DESTDIR)$(bindir)/$(EXEC)
- $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
- $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
-+ $(RM) $(DESTDIR)$(bindir)/mpathconf
- $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
- $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
-+ $(RM) $(DESTDIR)$(man8dir)/mpathconf.8.gz
-
- clean:
- $(RM) core *.o $(EXEC) *.gz
-diff --git a/multipath/mpathconf b/multipath/mpathconf
-new file mode 100644
-index 0000000..e839134
---- /dev/null
-+++ b/multipath/mpathconf
-@@ -0,0 +1,464 @@
-+#!/bin/bash
-+#
-+# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
-+#
-+# This file is part of the device-mapper-multipath package.
-+#
-+# This copyrighted material is made available to anyone wishing to use,
-+# modify, copy, or redistribute it subject to the terms and conditions
-+# of the GNU General Public License v.2.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software Foundation,
-+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+
-+#
-+# Simple editting of /etc/multipath.conf
-+# This program was largely ripped off from lvmconf
-+#
-+
-+unset ENABLE FIND FRIENDLY MODULE MULTIPATHD HAVE_DISABLE HAVE_WWID_DISABLE HAVE_FIND HAVE_BLACKLIST HAVE_EXCEPTIONS HAVE_DEFAULTS HAVE_FRIENDLY HAVE_MULTIPATHD HAVE_MODULE HAVE_OUTFILE SHOW_STATUS CHANGED_CONFIG WWID_LIST
-+
-+DEFAULT_CONFIG="# device-mapper-multipath configuration file
-+
-+# For a complete list of the default configuration values, run either:
-+# # multipath -t
-+# or
-+# # multipathd show config
-+
-+# For a list of configuration options with descriptions, see the
-+# multipath.conf man page.
-+
-+defaults {
-+ user_friendly_names yes
-+ find_multipaths yes
-+}
-+
-+blacklist_exceptions {
-+ property \"(SCSI_IDENT_|ID_WWN)\"
-+}"
-+
-+CONFIGFILE="/etc/multipath.conf"
-+OUTPUTFILE="/etc/multipath.conf"
-+MULTIPATHDIR="/etc/multipath"
-+TMPFILE="/etc/multipath/.multipath.conf.tmp"
-+WWIDS=0
-+
-+function usage
-+{
-+ echo "usage: $0 <command>"
-+ echo ""
-+ echo "Commands:"
-+ echo "Enable: --enable "
-+ echo "Disable: --disable"
-+ echo "Only allow certain wwids (instead of enable): --allow <WWID>"
-+ echo "Set user_friendly_names (Default y): --user_friendly_names <y|n>"
-+ echo "Set find_multipaths (Default y): --find_multipaths <y|n>"
-+ echo "Load the dm-multipath modules on enable (Default y): --with_module <y|n>"
-+ echo "start/stop/reload multipathd (Default n): --with_multipathd <y|n>"
-+ echo "select output file (Default /etc/multipath.conf): --outfile <FILE>"
-+ echo ""
-+}
-+
-+function add_wwid
-+{
-+ INDEX=0
-+ while [ "$INDEX" -lt "$WWIDS" ] ; do
-+ if [ "$1" = "${WWID_LIST[$INDEX]}" ] ; then
-+ return
-+ fi
-+ ((INDEX++))
-+ done
-+ WWID_LIST[$WWIDS]="$1"
-+ ((WWIDS++))
-+}
-+
-+function get_dm_deps
-+{
-+ shift 3
-+ while [ -n "$1" -a -n "$2" ]; do
-+ MAJOR=$(echo $1 | tr -d '(,')
-+ MINOR=$(echo $2 | tr -d ')')
-+ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
-+ if [ -n "$UUID" ] ; then
-+ set_dm_wwid $UUID
-+ fi
-+ shift 2
-+ done
-+}
-+
-+function set_dm_wwid
-+{
-+ if [[ "$1" =~ ^part[[:digit:]]+-mpath- ]] ; then
-+ add_wwid "${1##part*-mpath-}"
-+ elif [[ "$1" =~ ^mpath- ]] ; then
-+ add_wwid "${1##mpath-}"
-+ else
-+ get_dm_deps `dmsetup deps -u $1`
-+ fi
-+}
-+
-+function set_wwid
-+{
-+ UUID=""
-+ if [[ "$1" =~ ^[[:digit:]]+:[[:digit:]]+$ ]] ; then
-+ MAJOR=${1%%:*}
-+ MINOR=${1##*:}
-+ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
-+ else
-+ UUID=`dmsetup info -c --noheadings -o uuid $1 2> /dev/null`
-+ fi
-+ if [ -n "$UUID" ] ; then
-+ set_dm_wwid $UUID
-+ else
-+ add_wwid "$1"
-+ fi
-+}
-+
-+function parse_args
-+{
-+ while [ -n "$1" ]; do
-+ case $1 in
-+ --enable)
-+ ENABLE=1
-+ shift
-+ ;;
-+ --disable)
-+ ENABLE=0
-+ shift
-+ ;;
-+ --allow)
-+ ENABLE=2
-+ if [ -n "$2" ]; then
-+ set_wwid $2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --user_friendly_names)
-+ if [ -n "$2" ]; then
-+ FRIENDLY=$2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --find_multipaths)
-+ if [ -n "$2" ]; then
-+ FIND=$2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --with_module)
-+ if [ -n "$2" ]; then
-+ MODULE=$2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --with_multipathd)
-+ if [ -n "$2" ]; then
-+ MULTIPATHD=$2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --outfile)
-+ if [ -n "$2" ]; then
-+ OUTPUTFILE=$2
-+ HAVE_OUTFILE=1
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ *)
-+ usage
-+ exit
-+ esac
-+ done
-+}
-+
-+function validate_args
-+{
-+ if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" -o -n "$MODULE" ]; then
-+ echo "ignoring extra parameters on disable"
-+ FRIENDLY=""
-+ FIND=""
-+ MODULE=""
-+ fi
-+ if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then
-+ echo "--user_friendly_names must be either 'y' or 'n'"
-+ exit 1
-+ fi
-+ if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then
-+ echo "--find_multipaths must be either 'y' or 'n'"
-+ exit 1
-+ fi
-+ if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then
-+ SHOW_STATUS=1
-+ fi
-+ if [ -n "$MODULE" ] && [ "$MODULE" != "y" -a "$MODULE" != "n" ]; then
-+ echo "--with_module must be either 'y' or 'n'"
-+ exit 1
-+ fi
-+ if [ -n "$MULTIPATHD" ] && [ "$MULTIPATHD" != "y" -a "$MULTIPATHD" != "n" ]; then
-+ echo "--with_multipathd must be either 'y' or 'n'"
-+ exit 1
-+ fi
-+ if [ "$ENABLE" = 2 -a -z "$HAVE_OUTFILE" ]; then
-+ echo "Because --allow makes changes that cannot be automatically reversed,"
-+ echo "you must set --outfile when you set --allow"
-+ exit 1
-+ fi
-+}
-+
-+function add_blacklist_exceptions
-+{
-+ INDEX=0
-+ while [ "$INDEX" -lt "$WWIDS" ] ; do
-+ sed -i '/^blacklist_exceptions[[:space:]]*{/ a\
-+ wwid '"\"${WWID_LIST[$INDEX]}\""'
-+' $TMPFILE
-+ ((INDEX++))
-+ done
-+}
-+
-+umask 0077
-+
-+parse_args "$@"
-+
-+validate_args
-+
-+if [ ! -d "$MULTIPATHDIR" ]; then
-+ echo "/etc/multipath/ does not exist. failing"
-+ exit 1
-+fi
-+
-+rm $TMPFILE 2> /dev/null
-+echo "$DEFAULT_CONFIG" > $TMPFILE
-+if [ -f "$CONFIGFILE" ]; then
-+ cp $CONFIGFILE $TMPFILE
-+fi
-+
-+if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then
-+ HAVE_BLACKLIST=1
-+fi
-+
-+if grep -q "^blacklist_exceptions[[:space:]]*{" $TMPFILE ; then
-+ HAVE_EXCEPTIONS=1
-+fi
-+
-+if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then
-+ HAVE_DEFAULTS=1
-+fi
-+
-+if [ -z "$MODULE" -o "$MODULE" = "y" ]; then
-+ if lsmod | grep -q "dm_multipath" ; then
-+ HAVE_MODULE=1
-+ else
-+ HAVE_MODULE=0
-+ fi
-+fi
-+
-+if [ "$MULTIPATHD" = "y" ]; then
-+ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
-+ HAVE_MULTIPATHD=1
-+ else
-+ HAVE_MULTIPATHD=0
-+ fi
-+fi
-+
-+if [ "$HAVE_BLACKLIST" = "1" ]; then
-+ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then
-+ HAVE_DISABLE=1
-+ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"" ; then
-+ HAVE_DISABLE=0
-+ fi
-+fi
-+
-+if [ "$HAVE_BLACKLIST" = "1" ]; then
-+ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*wwid \"\.\?\*\"" ; then
-+ HAVE_WWID_DISABLE=1
-+ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"" ; then
-+ HAVE_WWID_DISABLE=0
-+ fi
-+fi
-+
-+if [ "$HAVE_DEFAULTS" = "1" ]; then
-+ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then
-+ HAVE_FIND=1
-+ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then
-+ HAVE_FIND=0
-+ fi
-+ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then
-+ HAVE_FRIENDLY=1
-+ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then
-+ HAVE_FRIENDLY=0
-+ fi
-+fi
-+
-+if [ -n "$SHOW_STATUS" ]; then
-+ if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then
-+ echo "multipath is enabled"
-+ else
-+ echo "multipath is disabled"
-+ fi
-+ if [ -z "$HAVE_FIND" -o "$HAVE_FIND" = 0 ]; then
-+ echo "find_multipaths is disabled"
-+ else
-+ echo "find_multipaths is enabled"
-+ fi
-+ if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then
-+ echo "user_friendly_names is disabled"
-+ else
-+ echo "user_friendly_names is enabled"
-+ fi
-+ if [ -n "$HAVE_MODULE" ]; then
-+ if [ "$HAVE_MODULE" = 1 ]; then
-+ echo "dm_multipath module is loaded"
-+ else
-+ echo "dm_multipath module is not loaded"
-+ fi
-+ fi
-+ if [ -z "$HAVE_MULTIPATHD" ]; then
-+ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
-+ HAVE_MULTIPATHD=1
-+ else
-+ HAVE_MULTIPATHD=0
-+ fi
-+ fi
-+ if [ "$HAVE_MULTIPATHD" = 1 ]; then
-+ echo "multipathd is running"
-+ else
-+ echo "multipathd is not running"
-+ fi
-+ exit 0
-+fi
-+
-+if [ -z "$HAVE_BLACKLIST" ]; then
-+ cat >> $TMPFILE <<- _EOF_
-+
-+blacklist {
-+}
-+_EOF_
-+fi
-+
-+if [ -z "$HAVE_DEFAULTS" ]; then
-+ cat >> $TMPFILE <<- _EOF_
-+
-+defaults {
-+}
-+_EOF_
-+fi
-+
-+if [ "$ENABLE" = 2 ]; then
-+ if [ "$HAVE_DISABLE" = 1 ]; then
-+ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
-+ fi
-+ if [ -z "$HAVE_WWID_DISABLE" ]; then
-+ sed -i '/^blacklist[[:space:]]*{/ a\
-+ wwid ".*"
-+' $TMPFILE
-+ elif [ "$HAVE_WWID_DISABLE" = 0 ]; then
-+ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"/ wwid ".*"/' $TMPFILE
-+ fi
-+ if [ "$HAVE_EXCEPTIONS" = 1 ]; then
-+ sed -i '/^blacklist_exceptions[[:space:]]*{/,/^}/ {/^[[:space:]]*wwid/ d}' $TMPFILE
-+ else
-+ cat >> $TMPFILE <<- _EOF_
-+
-+blacklist_exceptions {
-+}
-+_EOF_
-+ fi
-+ add_blacklist_exceptions
-+elif [ "$ENABLE" = 1 ]; then
-+ if [ "$HAVE_DISABLE" = 1 ]; then
-+ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
-+ fi
-+elif [ "$ENABLE" = 0 ]; then
-+ if [ -z "$HAVE_DISABLE" ]; then
-+ sed -i '/^blacklist[[:space:]]*{/ a\
-+ devnode ".*"
-+' $TMPFILE
-+ elif [ "$HAVE_DISABLE" = 0 ]; then
-+ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"/ devnode ".*"/' $TMPFILE
-+ fi
-+fi
-+
-+if [ "$FIND" = "n" ]; then
-+ if [ "$HAVE_FIND" = 1 ]; then
-+ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/ find_multipaths no/' $TMPFILE
-+ CHANGED_CONFIG=1
-+ fi
-+elif [ "$FIND" = "y" ]; then
-+ if [ -z "$HAVE_FIND" ]; then
-+ sed -i '/^defaults[[:space:]]*{/ a\
-+ find_multipaths yes
-+' $TMPFILE
-+ CHANGED_CONFIG=1
-+ elif [ "$HAVE_FIND" = 0 ]; then
-+ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/ find_multipaths yes/' $TMPFILE
-+ CHANGED_CONFIG=1
-+ fi
-+fi
-+
-+if [ "$FRIENDLY" = "n" ]; then
-+ if [ "$HAVE_FRIENDLY" = 1 ]; then
-+ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/ user_friendly_names no/' $TMPFILE
-+ CHANGED_CONFIG=1
-+ fi
-+elif [ "$FRIENDLY" = "y" ]; then
-+ if [ -z "$HAVE_FRIENDLY" ]; then
-+ sed -i '/^defaults[[:space:]]*{/ a\
-+ user_friendly_names yes
-+' $TMPFILE
-+ CHANGED_CONFIG=1
-+ elif [ "$HAVE_FRIENDLY" = 0 ]; then
-+ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/ user_friendly_names yes/' $TMPFILE
-+ CHANGED_CONFIG=1
-+ fi
-+fi
-+
-+if [ -f "$OUTPUTFILE" ]; then
-+ cp $OUTPUTFILE $OUTPUTFILE.old
-+ if [ $? != 0 ]; then
-+ echo "failed to backup old config file, $OUTPUTFILE not updated"
-+ exit 1
-+ fi
-+fi
-+
-+cp $TMPFILE $OUTPUTFILE
-+if [ $? != 0 ]; then
-+ echo "failed to copy new config file into place, check $OUTPUTFILE is still OK"
-+ exit 1
-+fi
-+
-+rm -f $TMPFILE
-+
-+if [ "$ENABLE" = 1 ]; then
-+ if [ "$HAVE_MODULE" = 0 ]; then
-+ modprobe dm_multipath
-+ fi
-+ if [ "$HAVE_MULTIPATHD" = 0 ]; then
-+ systemctl start multipathd.service
-+ fi
-+elif [ "$ENABLE" = 0 ]; then
-+ if [ "$HAVE_MULTIPATHD" = 1 ]; then
-+ systemctl stop multipathd.service
-+ fi
-+elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then
-+ systemctl reload multipathd.service
-+fi
-diff --git a/multipath/mpathconf.8 b/multipath/mpathconf.8
-new file mode 100644
-index 0000000..4cd3267
---- /dev/null
-+++ b/multipath/mpathconf.8
-@@ -0,0 +1,101 @@
-+.TH MPATHCONF 8 "June 2010" "" "Linux Administrator's Manual"
-+.SH NAME
-+mpathconf - A tool for configuring device-mapper-multipath
-+.SH SYNOPSIS
-+.B mpathconf
-+.RB [\| commands \|]
-+.RB [\| options \|]
-+.SH DESCRIPTION
-+.B mpathconf
-+is a utility that creates or modifies
-+.B /etc/multipath.conf.
-+It can enable or disable multipathing and configure some common options.
-+.B mpathconf
-+can also load the
-+.B dm_multipath
-+module, start and stop the
-+.B multipathd
-+daemon, and configure the
-+.B multipathd
-+service to start automatically or not. If
-+.B mpathconf
-+is called with no commands, it will display the current configuration.
-+
-+The default options for mpathconf are
-+.B --with_module
-+The
-+.B --with_multipathd
-+option is not set by default. Enabling multipathing will load the
-+.B dm_multipath
-+module but it will not immediately start it. This is so
-+that users can manually edit their config file if necessary, before starting
-+.B multipathd.
-+
-+If
-+.B /etc/multipath.conf
-+already exists, mpathconf will edit it. If it does not exist, mpathconf will
-+create a default file with
-+.B user_friendly_names
-+and
-+.B find_multipaths
-+set. To disable these, use the
-+.B --user_friendly_names n
-+and
-+.B --find_multipaths n
-+options
-+.SH COMMANDS
-+.TP
-+.B --enable
-+Removes any line that blacklists all device nodes from the
-+.B /etc/multipath.conf
-+blacklist section.
-+.TP
-+.B --disable
-+Adds a line that blacklists all device nodes to the
-+.B /etc/multipath.conf
-+blacklist section. If no blacklist section exists, it will create one.
-+.TP
-+.B --user_friendly_name \fP { \fBy\fP | \fBn\fP }
-+If set to \fBy\fP, this adds the line
-+.B user_friendly_names yes
-+to the
-+.B /etc/multipath.conf
-+defaults section. If set to \fBn\fP, this removes the line, if present. This
-+command can be used along with any other command.
-+.TP
-+.B --find_multipaths\fP { \fBy\fP | \fBn\fP }
-+If set to \fBy\fP, this adds the line
-+.B find_multipaths yes
-+to the
-+.B /etc/multipath.conf
-+defaults section. If set to \fBn\fP, this removes the line, if present. This
-+command can be used aldong with any other command.
-+.SH OPTIONS
-+.TP
-+.B --with_module\fP { \fBy\fP | \fBn\fP }
-+If set to \fBy\fP, this runs
-+.B modprobe dm_multipath
-+to install the multipath modules. This option only works with the
-+.B --enable
-+command. This option is set to \fBy\fP by default.
-+.TP
-+.B --with_multipathd { \fBy\fP | \fBn\fP }
-+If set to \fBy\fP, this runs
-+.B service multipathd start
-+to start the multipathd daemon on \fB--enable\fP,
-+.B service multipathd stop
-+to stop the multipathd daemon on \fB--disable\fP, and
-+.B service multipathd reload
-+to reconfigure multipathd on \fB--user_frindly_names\fP and
-+\fB--find_multipaths\fP.
-+This option is set to \fBn\fP by default.
-+.SH FILES
-+.BR /etc/multipath.conf
-+.SH "SEE ALSO"
-+.BR multipath.conf (5),
-+.BR modprobe (8),
-+.BR multipath (8),
-+.BR multipathd (8),
-+.BR service (8),
-+.SH AUTHOR
-+Benjamin Marzinski <bmarzins@redhat.com>
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch
new file mode 100644
index 0000000..953e739
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch
@@ -0,0 +1,156 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Fri, 11 May 2018 15:43:11 +0200
+Subject: [PATCH] multipath-tools: Remove trailing/leading whitespaces and
+ reformat code
+
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: device-mapper development <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ Makefile.inc | 23 +++++++++++------------
+ kpartx/mac.h | 2 +-
+ kpartx/test-kpartx | 2 +-
+ libmpathcmd/Makefile | 2 +-
+ libmultipath/hwtable.c | 14 +++++++-------
+ libmultipath/print.h | 2 +-
+ multipathd/main.h | 6 +++---
+ 7 files changed, 25 insertions(+), 26 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 57a1835..af2f5ba 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -103,21 +103,20 @@ LDFLAGS = -Wl,-z,relro -Wl,-z,now
+ BIN_LDFLAGS = -pie
+
+ # Check whether a function with name $1 has been declared in header file $2.
+-check_func = \
+- $(shell \
++check_func = $(shell \
+ if grep -Eq "^[^[:blank:]]+[[:blank:]]+$1[[:blank:]]*(.*)*" "$2"; then \
+- found=1; \
+- status="yes"; \
+- else \
+- found=0; \
+- status="no"; \
+- fi; \
+- echo 1>&2 "Checking for $1 in $2 ... $$status"; \
+- echo "$$found" \
+- )
++ found=1; \
++ status="yes"; \
++ else \
++ found=0; \
++ status="no"; \
++ fi; \
++ echo 1>&2 "Checking for $1 in $2 ... $$status"; \
++ echo "$$found" \
++ )
+
+ # Checker whether a file with name $1 exists
+-check_file = $(shell \
++check_file = $(shell \
+ if [ -f "$1" ]; then \
+ found=1; \
+ status="yes"; \
+diff --git a/kpartx/mac.h b/kpartx/mac.h
+index a44cf38..55c3ec9 100644
+--- a/kpartx/mac.h
++++ b/kpartx/mac.h
+@@ -24,7 +24,7 @@ struct mac_driver_desc {
+ uint16_t signature; /* expected to be MAC_DRIVER_MAGIC */
+ uint16_t block_size;
+ uint32_t block_count;
+- /* ... more stuff */
++ /* ... more stuff */
+ };
+
+ #endif
+diff --git a/kpartx/test-kpartx b/kpartx/test-kpartx
+index 9cee20f..d2001dc 100755
+--- a/kpartx/test-kpartx
++++ b/kpartx/test-kpartx
+@@ -131,7 +131,7 @@ step "create DM devices (spans)"
+ # They also serve as DM devices to test partition removal on those.
+
+ TABLE="\
+-0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS
++0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS
+ $((SIZE/SECTSIZ-OFFS)) $((SIZE/SECTSIZ-OFFS)) linear $DEV2 $OFFS"
+
+ SPAN1=kpt
+diff --git a/libmpathcmd/Makefile b/libmpathcmd/Makefile
+index 53c0899..0f6b816 100644
+--- a/libmpathcmd/Makefile
++++ b/libmpathcmd/Makefile
+@@ -27,7 +27,7 @@ uninstall:
+ $(RM) $(DESTDIR)$(includedir)/mpath_cmd.h
+
+ clean: dep_clean
+- $(RM) core *.a *.o *.so *.so.* *.gz
++ $(RM) core *.a *.o *.so *.so.* *.gz
+
+ include $(wildcard $(OBJS:.o=.d))
+
+diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
+index 827e899..2ca6888 100644
+--- a/libmultipath/hwtable.c
++++ b/libmultipath/hwtable.c
+@@ -78,13 +78,13 @@
+ #endif
+
+ static struct hwentry default_hw[] = {
+- /*
+- * Generic NVMe
+- *
+- * Due to the parsing logic in find_hwe(), generic entries
+- * have to be put on top of this list, and more specific ones
+- * below.
+- */
++ /*
++ * Generic NVMe devices
++ *
++ * Due to the parsing logic in find_hwe(), generic entries
++ * have to be put on top of this list, and more specific ones
++ * below.
++ */
+ {
+ .vendor = "NVME",
+ .product = ".*",
+diff --git a/libmultipath/print.h b/libmultipath/print.h
+index 7ba6438..9b5a23a 100644
+--- a/libmultipath/print.h
++++ b/libmultipath/print.h
+@@ -113,7 +113,7 @@ int _snprint_multipath (const struct gen_multipath *, char *, int,
+ const char *, int);
+ #define snprint_multipath(buf, len, fmt, mp, v) \
+ _snprint_multipath(dm_multipath_to_gen(mp), buf, len, fmt, v)
+-int _snprint_multipath_topology (const struct gen_multipath *, char *, int,
++int _snprint_multipath_topology (const struct gen_multipath *, char *, int,
+ int verbosity);
+ #define snprint_multipath_topology(buf, len, mpp, v) \
+ _snprint_multipath_topology (dm_multipath_to_gen(mpp), buf, len, v)
+diff --git a/multipathd/main.h b/multipathd/main.h
+index af39558..8fd426b 100644
+--- a/multipathd/main.h
++++ b/multipathd/main.h
+@@ -29,11 +29,11 @@ int ev_remove_map (char *, char *, int, struct vectors *);
+ int set_config_state(enum daemon_status);
+ void * mpath_alloc_prin_response(int prin_sa);
+ int prin_do_scsi_ioctl(char *, int rq_servact, struct prin_resp * resp,
+- int noisy);
++ int noisy);
+ void dumpHex(const char * , int len, int no_ascii);
+ int prout_do_scsi_ioctl(char * , int rq_servact, int rq_scope,
+- unsigned int rq_type, struct prout_param_descriptor *param,
+- int noisy);
++ unsigned int rq_type,
++ struct prout_param_descriptor *param, int noisy);
+ int mpath_pr_event_handle(struct path *pp);
+ void * mpath_pr_event_handler_fn (void * );
+ int update_map_pr(struct multipath *mpp);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
deleted file mode 100644
index dc291b8..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 15179c830521d8f37f9254ebc6bbf150a409f956 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Fri, 17 Oct 2014 11:20:34 -0500
-Subject: [PATCH 06/14] RH: add wwids from kernel cmdline mpath.wwids with -A
-
-This patch adds another option to multipath, "-A", which reads
-/proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds
-to /etc/multipath/wwids. While this isn't usually important during
-normal operation, since these wwids should already be added, it can be
-helpful during installation, to make sure that multipath can claim
-devices as its own, before LVM or something else makes use of them. The
-patch also execs "/sbin/multipath -A" before running multipathd in
-multipathd.service
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/wwids.c | 44 +++++++++++++++++++++++++++++++++++++++++++
- libmultipath/wwids.h | 1 +
- multipath/main.c | 10 ++++++++--
- multipath/multipath.8 | 5 ++++-
- multipathd/multipathd.service | 1 +
- 5 files changed, 58 insertions(+), 3 deletions(-)
-
-diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
-index bc70a27..88bb72b 100644
---- a/libmultipath/wwids.c
-+++ b/libmultipath/wwids.c
-@@ -321,3 +321,47 @@ remember_wwid(char *wwid)
- condlog(4, "wwid %s already in wwids file", wwid);
- return 0;
- }
-+
-+int remember_cmdline_wwid(void)
-+{
-+ FILE *f = NULL;
-+ char buf[LINE_MAX], *next, *ptr;
-+ int ret = 0;
-+
-+ f = fopen("/proc/cmdline", "re");
-+ if (!f) {
-+ condlog(0, "can't open /proc/cmdline : %s", strerror(errno));
-+ return -1;
-+ }
-+
-+ if (!fgets(buf, sizeof(buf), f)) {
-+ if (ferror(f))
-+ condlog(0, "read of /proc/cmdline failed : %s",
-+ strerror(errno));
-+ else
-+ condlog(0, "couldn't read /proc/cmdline");
-+ fclose(f);
-+ return -1;
-+ }
-+ fclose(f);
-+ next = buf;
-+ while((ptr = strstr(next, "mpath.wwid="))) {
-+ ptr += 11;
-+ next = strpbrk(ptr, " \t\n");
-+ if (next) {
-+ *next = '\0';
-+ next++;
-+ }
-+ if (strlen(ptr)) {
-+ if (remember_wwid(ptr) != 0)
-+ ret = -1;
-+ }
-+ else {
-+ condlog(0, "empty mpath.wwid kernel command line option");
-+ ret = -1;
-+ }
-+ if (!next)
-+ break;
-+ }
-+ return ret;
-+}
-diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h
-index 9527012..b665232 100644
---- a/libmultipath/wwids.h
-+++ b/libmultipath/wwids.h
-@@ -17,5 +17,6 @@ int remember_wwid(char *wwid);
- int check_wwids_file(char *wwid, int write_wwid);
- int remove_wwid(char *wwid);
- int replace_wwids(vector mp);
-+int remember_cmdline_wwid(void);
-
- #endif /* _WWIDS_H */
-diff --git a/multipath/main.c b/multipath/main.c
-index 4174d43..72585b0 100644
---- a/multipath/main.c
-+++ b/multipath/main.c
-@@ -102,7 +102,7 @@ usage (char * progname)
- {
- fprintf (stderr, VERSION_STRING);
- fprintf (stderr, "Usage:\n");
-- fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
-+ fprintf (stderr, " %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
- fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname);
- fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname);
- fprintf (stderr, " %s -t\n", progname);
-@@ -116,6 +116,8 @@ usage (char * progname)
- " -f flush a multipath device map\n"
- " -F flush all multipath device maps\n"
- " -a add a device wwid to the wwids file\n"
-+ " -A add devices from kernel command line mpath.wwids\n"
-+ " parameters to wwids file\n"
- " -c check if a device should be a path in a multipath device\n"
- " -q allow queue_if_no_path when multipathd is not running\n"
- " -d dry run, do not create or update devmaps\n"
-@@ -522,7 +524,7 @@ main (int argc, char *argv[])
- exit(1);
- multipath_conf = conf;
- conf->retrigger_tries = 0;
-- while ((arg = getopt(argc, argv, ":adchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
-+ while ((arg = getopt(argc, argv, ":aAdchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
- switch(arg) {
- case 1: printf("optarg : %s\n",optarg);
- break;
-@@ -586,6 +588,10 @@ main (int argc, char *argv[])
- case 't':
- r = dump_config(conf);
- goto out_free_config;
-+ case 'A':
-+ if (remember_cmdline_wwid() != 0)
-+ exit(1);
-+ exit(0);
- case 'h':
- usage(argv[0]);
- exit(0);
-diff --git a/multipath/multipath.8 b/multipath/multipath.8
-index b9436e5..b9ad6b1 100644
---- a/multipath/multipath.8
-+++ b/multipath/multipath.8
-@@ -25,7 +25,7 @@ multipath \- Device mapper target autoconfig.
- .RB [\| \-b\ \c
- .IR bindings_file \|]
- .RB [\| \-d \|]
--.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \|-u | \-w | \-W \|]
-+.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \-A | \-u | \-w | \-W \|]
- .RB [\| \-p\ \c
- .IR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|]
- .RB [\| \-R\ \c
-@@ -122,6 +122,9 @@ Add the WWID for the specified device to the WWIDs file.
- Check if the device specified in the program environment should be
- a path in a multipath device.
- .
-+.B \-A
-+add wwids from any kernel command line mpath.wwid parameters to the wwids file
-+.
- .TP
- .B \-w
- Remove the WWID for the specified device from the WWIDs file.
-diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index fafd088..a623a3f 100644
---- a/multipathd/multipathd.service
-+++ b/multipathd/multipathd.service
-@@ -15,6 +15,7 @@ Type=notify
- NotifyAccess=main
- LimitCORE=infinity
- ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
-+ExecStartPre=-/sbin/multipath -A
- ExecStart=/sbin/multipathd -d -s
- ExecReload=/sbin/multipathd reconfigure
-
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch
new file mode 100644
index 0000000..c6fd5b4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch
@@ -0,0 +1,58 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Fri, 11 May 2018 18:39:44 +0200
+Subject: [PATCH] multipath-tools: fix compilation with musl libc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In file included from alias.c:15:
+file.h:9:47: error: unknown type name ‘mode_t’; did you mean ‘time_t’?
+ int ensure_directories_exist(const char *str, mode_t dir_mode);
+ ^~~~~~
+ time_t
+
+sysfs.c: In function ‘sysfs_is_multipathed’:
+sysfs.c:304:15: error: ‘PATH_MAX’ undeclared (first use in this function); did you mean ‘PATH_UP’?
+ char pathbuf[PATH_MAX];
+ ^~~~~~~~
+ PATH_UP
+
+Cc: Martin Wilck <mwilck@suse.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/file.h | 2 ++
+ libmultipath/sysfs.c | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/libmultipath/file.h b/libmultipath/file.h
+index 29520c7..3c75c90 100644
+--- a/libmultipath/file.h
++++ b/libmultipath/file.h
+@@ -5,6 +5,8 @@
+ #ifndef _FILE_H
+ #define _FILE_H
+
++#include <sys/stat.h>
++
+ #define FILE_TIMEOUT 30
+ int ensure_directories_exist(const char *str, mode_t dir_mode);
+ int open_file(const char *file, int *can_write, const char *header);
+diff --git a/libmultipath/sysfs.c b/libmultipath/sysfs.c
+index ee72e6a..16e0a73 100644
+--- a/libmultipath/sysfs.c
++++ b/libmultipath/sysfs.c
+@@ -28,6 +28,7 @@
+ #include <dirent.h>
+ #include <libudev.h>
+ #include <fnmatch.h>
++#include <limits.h>
+
+ #include "checkers.h"
+ #include "vector.h"
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
deleted file mode 100644
index 025a351..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 0d2c9afbd89d79fd700f9c99aa20e5f7c7382027 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Mon, 24 Apr 2017 09:39:57 -0500
-Subject: [PATCH 07/14] RH: trigger change uevent on new device creation
-
-When multipath first sees a path device with user_friendly names
-enabled, it can't know if the device should be multipathed. This means
-that it will not claim the device in udev. If the device is eventually
-multipathed, multipath should trigger a change uevent to update the udev
-database to claim the device.
-
-This also reverts commit 64e27ec066a001012f44550f095c93443e91d845.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/configure.c | 26 ++++++++++++++++++++++++--
- libmultipath/configure.h | 1 +
- libmultipath/wwids.c | 4 ++--
- multipath/main.c | 2 +-
- multipathd/main.c | 7 ++-----
- 5 files changed, 30 insertions(+), 10 deletions(-)
-
-diff --git a/libmultipath/configure.c b/libmultipath/configure.c
-index bd090d9..843dd09 100644
---- a/libmultipath/configure.c
-+++ b/libmultipath/configure.c
-@@ -422,6 +422,28 @@ trigger_udev_change(const struct multipath *mpp)
- udev_device_unref(udd);
- }
-
-+void
-+trigger_paths_udev_change(const struct multipath *mpp)
-+{
-+ struct pathgroup * pgp;
-+ struct path * pp;
-+ int i, j;
-+
-+ if (!mpp || !mpp->pg)
-+ return;
-+
-+ vector_foreach_slot (mpp->pg, pgp, i) {
-+ if (!pgp->paths)
-+ continue;
-+ vector_foreach_slot(pgp->paths, pp, j) {
-+ if (!pp->udev)
-+ continue;
-+ sysfs_attr_set_value(pp->udev, "uevent", "change",
-+ strlen("change"));
-+ }
-+ }
-+}
-+
- static int
- is_mpp_known_to_udev(const struct multipath *mpp)
- {
-@@ -802,8 +824,8 @@ int domap(struct multipath *mpp, char *params, int is_daemon)
- * succeeded
- */
- mpp->force_udev_reload = 0;
-- if (mpp->action == ACT_CREATE)
-- remember_wwid(mpp->wwid);
-+ if (mpp->action == ACT_CREATE && remember_wwid(mpp->wwid) == 1)
-+ trigger_paths_udev_change(mpp);
- if (!is_daemon) {
- /* multipath client mode */
- dm_switchgroup(mpp->alias, mpp->bestpg);
-diff --git a/libmultipath/configure.h b/libmultipath/configure.h
-index fd7f581..253e29b 100644
---- a/libmultipath/configure.h
-+++ b/libmultipath/configure.h
-@@ -36,3 +36,4 @@ int get_refwwid (enum mpath_cmds cmd, char * dev, enum devtypes dev_type,
- vector pathvec, char **wwid);
- int reload_map(struct vectors *vecs, struct multipath *mpp, int refresh, int is_daemon);
- int sysfs_get_host_adapter_name(struct path *pp, char *adapter_name);
-+void trigger_paths_udev_change(const struct multipath *mpp);
-diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
-index 88bb72b..249c6c1 100644
---- a/libmultipath/wwids.c
-+++ b/libmultipath/wwids.c
-@@ -319,7 +319,7 @@ remember_wwid(char *wwid)
- condlog(3, "wrote wwid %s to wwids file", wwid);
- else
- condlog(4, "wwid %s already in wwids file", wwid);
-- return 0;
-+ return ret;
- }
-
- int remember_cmdline_wwid(void)
-@@ -353,7 +353,7 @@ int remember_cmdline_wwid(void)
- next++;
- }
- if (strlen(ptr)) {
-- if (remember_wwid(ptr) != 0)
-+ if (remember_wwid(ptr) < 0)
- ret = -1;
- }
- else {
-diff --git a/multipath/main.c b/multipath/main.c
-index 72585b0..2eda6a3 100644
---- a/multipath/main.c
-+++ b/multipath/main.c
-@@ -336,7 +336,7 @@ configure (struct config *conf, enum mpath_cmds cmd,
- }
- if (cmd == CMD_ADD_WWID) {
- r = remember_wwid(refwwid);
-- if (r == 0)
-+ if (r >= 0)
- printf("wwid '%s' added\n", refwwid);
- else
- printf("failed adding '%s' to wwids file\n",
-diff --git a/multipathd/main.c b/multipathd/main.c
-index 81c76ca..874bcce 100644
---- a/multipathd/main.c
-+++ b/multipathd/main.c
-@@ -2093,7 +2093,8 @@ configure (struct vectors * vecs, int start_waiters)
-
- sync_maps_state(mpvec);
- vector_foreach_slot(mpvec, mpp, i){
-- remember_wwid(mpp->wwid);
-+ if (remember_wwid(mpp->wwid) == 1)
-+ trigger_paths_udev_change(mpp);
- update_map_pr(mpp);
- }
-
-@@ -2175,10 +2176,6 @@ reconfigure (struct vectors * vecs)
- conf->verbosity = verbosity;
- if (bindings_read_only)
- conf->bindings_read_only = bindings_read_only;
-- if (conf->find_multipaths) {
-- condlog(2, "find_multipaths is set: -n is implied");
-- ignore_new_devs = 1;
-- }
- if (ignore_new_devs)
- conf->ignore_new_devs = ignore_new_devs;
- uxsock_timeout = conf->uxsock_timeout;
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch
new file mode 100644
index 0000000..9e608e1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch
@@ -0,0 +1,27 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Sun, 13 May 2018 00:39:41 +0200
+Subject: [PATCH] multipath-tools: add +x to doc-preclean.pl and split-man.pl
+
+It is not strictly necessary, but it helps identify bin files.
+
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libdmmp/docs/doc-preclean.pl | 0
+ libdmmp/docs/split-man.pl | 0
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+ mode change 100644 => 100755 libdmmp/docs/doc-preclean.pl
+ mode change 100644 => 100755 libdmmp/docs/split-man.pl
+
+diff --git a/libdmmp/docs/doc-preclean.pl b/libdmmp/docs/doc-preclean.pl
+old mode 100644
+new mode 100755
+diff --git a/libdmmp/docs/split-man.pl b/libdmmp/docs/split-man.pl
+old mode 100644
+new mode 100755
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
deleted file mode 100644
index f678809..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0be174dbedd861d7694b0c7799fe26be31eb32b0 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Fri, 26 May 2017 17:52:57 -0500
-Subject: [PATCH 08/14] libmultipath: change how RADOS checker is enabled
-
-Instead of making the user call "make", "make install" and "make clean"
-with ENABLE_RADOS set correctly, have the makefile check if
-/usr/include/rados/librados.h exists, just like it checks if specific
-functions exist in a file.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- Makefile.inc | 13 +++++++++++++
- libmultipath/checkers/Makefile | 3 ++-
- 2 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 2591fa9..e084fd1 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -109,5 +109,18 @@ check_func = \
- echo "$$found" \
- )
-
-+# Checker whether a file with name $1 exists
-+check_file = $(shell \
-+ if [ -f "$1" ]; then \
-+ found=1; \
-+ status="yes"; \
-+ else \
-+ found=0; \
-+ status="no"; \
-+ fi; \
-+ echo 1>&2 "Checking if $1 exists ... $$status"; \
-+ echo "$$found" \
-+ )
-+
- %.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
-diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
-index 732ca9d..bce6b8b 100644
---- a/libmultipath/checkers/Makefile
-+++ b/libmultipath/checkers/Makefile
-@@ -14,7 +14,8 @@ LIBS= \
- libcheckemc_clariion.so \
- libcheckhp_sw.so \
- libcheckrdac.so
--ifneq ($(ENABLE_RADOS),0)
-+
-+ifneq ($(call check_file,/usr/include/rados/librados.h),0)
- LIBS += libcheckrbd.so
- endif
-
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch
new file mode 100644
index 0000000..3752158
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch
@@ -0,0 +1,784 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Sun, 13 May 2018 00:39:42 +0200
+Subject: [PATCH] multipath-tools: refresh kernel-doc from kernel sources
+
+Cc: Gris Ge <fge@redhat.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: device-mapper development <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libdmmp/docs/kernel-doc | 671 ++++++++++++++++++++++++++----------------------
+ 1 file changed, 368 insertions(+), 303 deletions(-)
+
+diff --git a/libdmmp/docs/kernel-doc b/libdmmp/docs/kernel-doc
+index fee8952..0057d8e 100755
+--- a/libdmmp/docs/kernel-doc
++++ b/libdmmp/docs/kernel-doc
+@@ -1,4 +1,5 @@
+ #!/usr/bin/env perl
++# SPDX-License-Identifier: GPL-2.0
+
+ use warnings;
+ use strict;
+@@ -328,13 +329,15 @@ my $lineprefix="";
+ use constant {
+ STATE_NORMAL => 0, # normal code
+ STATE_NAME => 1, # looking for function name
+- STATE_FIELD => 2, # scanning field start
+- STATE_PROTO => 3, # scanning prototype
+- STATE_DOCBLOCK => 4, # documentation block
+- STATE_INLINE => 5, # gathering documentation outside main block
++ STATE_BODY_MAYBE => 2, # body - or maybe more description
++ STATE_BODY => 3, # the body of the comment
++ STATE_PROTO => 4, # scanning prototype
++ STATE_DOCBLOCK => 5, # documentation block
++ STATE_INLINE => 6, # gathering documentation outside main block
+ };
+ my $state;
+ my $in_doc_sect;
++my $leading_space;
+
+ # Inline documentation state
+ use constant {
+@@ -363,7 +366,7 @@ my $doc_sect = $doc_com .
+ my $doc_content = $doc_com_body . '(.*)';
+ my $doc_block = $doc_com . 'DOC:\s*(.*)?';
+ my $doc_inline_start = '^\s*/\*\*\s*$';
+-my $doc_inline_sect = '\s*\*\s*(@[\w\s]+):(.*)';
++my $doc_inline_sect = '\s*\*\s*(@\s*[\w][\w\.]*\s*):(.*)';
+ my $doc_inline_end = '^\s*\*/\s*$';
+ my $doc_inline_oneline = '^\s*/\*\*\s*(@[\w\s]+):\s*(.*)\s*\*/\s*$';
+ my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;';
+@@ -553,10 +556,9 @@ sub output_highlight {
+ }
+ if ($line eq ""){
+ if (! $output_preformatted) {
+- print $lineprefix, local_unescape($blankline);
++ print $lineprefix, $blankline;
+ }
+ } else {
+- $line =~ s/\\\\\\/\&/g;
+ if ($output_mode eq "man" && substr($line, 0, 1) eq ".") {
+ print "\\&$line";
+ } else {
+@@ -747,17 +749,73 @@ sub output_blockhead_rst(%) {
+ }
+ }
+
+-sub output_highlight_rst {
+- my $contents = join "\n",@_;
+- my $line;
+-
+- # undo the evil effects of xml_escape() earlier
+- $contents = xml_unescape($contents);
+-
++#
++# Apply the RST highlights to a sub-block of text.
++#
++sub highlight_block($) {
++ # The dohighlight kludge requires the text be called $contents
++ my $contents = shift;
+ eval $dohighlight;
+ die $@ if $@;
++ return $contents;
++}
+
+- foreach $line (split "\n", $contents) {
++#
++# Regexes used only here.
++#
++my $sphinx_literal = '^[^.].*::$';
++my $sphinx_cblock = '^\.\.\ +code-block::';
++
++sub output_highlight_rst {
++ my $input = join "\n",@_;
++ my $output = "";
++ my $line;
++ my $in_literal = 0;
++ my $litprefix;
++ my $block = "";
++
++ foreach $line (split "\n",$input) {
++ #
++ # If we're in a literal block, see if we should drop out
++ # of it. Otherwise pass the line straight through unmunged.
++ #
++ if ($in_literal) {
++ if (! ($line =~ /^\s*$/)) {
++ #
++ # If this is the first non-blank line in a literal
++ # block we need to figure out what the proper indent is.
++ #
++ if ($litprefix eq "") {
++ $line =~ /^(\s*)/;
++ $litprefix = '^' . $1;
++ $output .= $line . "\n";
++ } elsif (! ($line =~ /$litprefix/)) {
++ $in_literal = 0;
++ } else {
++ $output .= $line . "\n";
++ }
++ } else {
++ $output .= $line . "\n";
++ }
++ }
++ #
++ # Not in a literal block (or just dropped out)
++ #
++ if (! $in_literal) {
++ $block .= $line . "\n";
++ if (($line =~ /$sphinx_literal/) || ($line =~ /$sphinx_cblock/)) {
++ $in_literal = 1;
++ $litprefix = "";
++ $output .= highlight_block($block);
++ $block = ""
++ }
++ }
++ }
++
++ if ($block) {
++ $output .= highlight_block($block);
++ }
++ foreach $line (split "\n", $output) {
+ print $lineprefix . $line . "\n";
+ }
+ }
+@@ -1062,7 +1120,7 @@ sub dump_struct($$) {
+ # Handle bitmaps
+ $arg =~ s/:\s*\d+\s*//g;
+ # Handle arrays
+- $arg =~ s/\[\S+\]//g;
++ $arg =~ s/\[.*\]//g;
+ # The type may have multiple words,
+ # and multiple IDs can be defined, like:
+ # const struct foo, *bar, foobar
+@@ -1422,8 +1480,6 @@ sub push_parameter($$$$) {
+ }
+ }
+
+- $param = xml_escape($param);
+-
+ # strip spaces from $param so that it is one continuous string
+ # on @parameterlist;
+ # this fixes a problem where check_sections() cannot find
+@@ -1522,6 +1578,7 @@ sub dump_function($$) {
+ $prototype =~ s/__meminit +//;
+ $prototype =~ s/__must_check +//;
+ $prototype =~ s/__weak +//;
++ $prototype =~ s/__sched +//;
+ my $define = $prototype =~ s/^#\s*define\s+//; #ak added
+ $prototype =~ s/__attribute__\s*\(\(
+ (?:
+@@ -1748,47 +1805,6 @@ sub process_proto_type($$) {
+ }
+ }
+
+-# xml_escape: replace <, >, and & in the text stream;
+-#
+-# however, formatting controls that are generated internally/locally in the
+-# kernel-doc script are not escaped here; instead, they begin life like
+-# $blankline_html (4 of '\' followed by a mnemonic + ':'), then these strings
+-# are converted to their mnemonic-expected output, without the 4 * '\' & ':',
+-# just before actual output; (this is done by local_unescape())
+-sub xml_escape($) {
+- my $text = shift;
+- if ($output_mode eq "man") {
+- return $text;
+- }
+- $text =~ s/\&/\\\\\\amp;/g;
+- $text =~ s/\</\\\\\\lt;/g;
+- $text =~ s/\>/\\\\\\gt;/g;
+- return $text;
+-}
+-
+-# xml_unescape: reverse the effects of xml_escape
+-sub xml_unescape($) {
+- my $text = shift;
+- if ($output_mode eq "man") {
+- return $text;
+- }
+- $text =~ s/\\\\\\amp;/\&/g;
+- $text =~ s/\\\\\\lt;/</g;
+- $text =~ s/\\\\\\gt;/>/g;
+- return $text;
+-}
+-
+-# convert local escape strings to html
+-# local escape strings look like: '\\\\menmonic:' (that's 4 backslashes)
+-sub local_unescape($) {
+- my $text = shift;
+- if ($output_mode eq "man") {
+- return $text;
+- }
+- $text =~ s/\\\\\\\\lt:/</g;
+- $text =~ s/\\\\\\\\gt:/>/g;
+- return $text;
+-}
+
+ sub map_filename($) {
+ my $file;
+@@ -1826,15 +1842,291 @@ sub process_export_file($) {
+ close(IN);
+ }
+
+-sub process_file($) {
+- my $file;
++#
++# Parsers for the various processing states.
++#
++# STATE_NORMAL: looking for the /** to begin everything.
++#
++sub process_normal() {
++ if (/$doc_start/o) {
++ $state = STATE_NAME; # next line is always the function name
++ $in_doc_sect = 0;
++ $declaration_start_line = $. + 1;
++ }
++}
++
++#
++# STATE_NAME: Looking for the "name - description" line
++#
++sub process_name($$) {
++ my $file = shift;
+ my $identifier;
+- my $func;
+ my $descr;
+- my $in_purpose = 0;
++
++ if (/$doc_block/o) {
++ $state = STATE_DOCBLOCK;
++ $contents = "";
++ $new_start_line = $. + 1;
++
++ if ( $1 eq "" ) {
++ $section = $section_intro;
++ } else {
++ $section = $1;
++ }
++ }
++ elsif (/$doc_decl/o) {
++ $identifier = $1;
++ if (/\s*([\w\s]+?)(\(\))?\s*-/) {
++ $identifier = $1;
++ }
++
++ $state = STATE_BODY;
++ # if there's no @param blocks need to set up default section
++ # here
++ $contents = "";
++ $section = $section_default;
++ $new_start_line = $. + 1;
++ if (/-(.*)/) {
++ # strip leading/trailing/multiple spaces
++ $descr= $1;
++ $descr =~ s/^\s*//;
++ $descr =~ s/\s*$//;
++ $descr =~ s/\s+/ /g;
++ $declaration_purpose = $descr;
++ $state = STATE_BODY_MAYBE;
++ } else {
++ $declaration_purpose = "";
++ }
++
++ if (($declaration_purpose eq "") && $verbose) {
++ print STDERR "${file}:$.: warning: missing initial short description on line:\n";
++ print STDERR $_;
++ ++$warnings;
++ }
++
++ if ($identifier =~ m/^struct/) {
++ $decl_type = 'struct';
++ } elsif ($identifier =~ m/^union/) {
++ $decl_type = 'union';
++ } elsif ($identifier =~ m/^enum/) {
++ $decl_type = 'enum';
++ } elsif ($identifier =~ m/^typedef/) {
++ $decl_type = 'typedef';
++ } else {
++ $decl_type = 'function';
++ }
++
++ if ($verbose) {
++ print STDERR "${file}:$.: info: Scanning doc for $identifier\n";
++ }
++ } else {
++ print STDERR "${file}:$.: warning: Cannot understand $_ on line $.",
++ " - I thought it was a doc line\n";
++ ++$warnings;
++ $state = STATE_NORMAL;
++ }
++}
++
++
++#
++# STATE_BODY and STATE_BODY_MAYBE: the bulk of a kerneldoc comment.
++#
++sub process_body($$) {
++ my $file = shift;
++
++ if (/$doc_sect/i) { # case insensitive for supported section names
++ $newsection = $1;
++ $newcontents = $2;
++
++ # map the supported section names to the canonical names
++ if ($newsection =~ m/^description$/i) {
++ $newsection = $section_default;
++ } elsif ($newsection =~ m/^context$/i) {
++ $newsection = $section_context;
++ } elsif ($newsection =~ m/^returns?$/i) {
++ $newsection = $section_return;
++ } elsif ($newsection =~ m/^\@return$/) {
++ # special: @return is a section, not a param description
++ $newsection = $section_return;
++ }
++
++ if (($contents ne "") && ($contents ne "\n")) {
++ if (!$in_doc_sect && $verbose) {
++ print STDERR "${file}:$.: warning: contents before sections\n";
++ ++$warnings;
++ }
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ }
++
++ $in_doc_sect = 1;
++ $state = STATE_BODY;
++ $contents = $newcontents;
++ $new_start_line = $.;
++ while (substr($contents, 0, 1) eq " ") {
++ $contents = substr($contents, 1);
++ }
++ if ($contents ne "") {
++ $contents .= "\n";
++ }
++ $section = $newsection;
++ $leading_space = undef;
++ } elsif (/$doc_end/) {
++ if (($contents ne "") && ($contents ne "\n")) {
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ }
++ # look for doc_com + <text> + doc_end:
++ if ($_ =~ m'\s*\*\s*[a-zA-Z_0-9:\.]+\*/') {
++ print STDERR "${file}:$.: warning: suspicious ending line: $_";
++ ++$warnings;
++ }
++
++ $prototype = "";
++ $state = STATE_PROTO;
++ $brcount = 0;
++ } elsif (/$doc_content/) {
++ # miguel-style comment kludge, look for blank lines after
++ # @parameter line to signify start of description
++ if ($1 eq "") {
++ if ($section =~ m/^@/ || $section eq $section_context) {
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ $new_start_line = $.;
++ } else {
++ $contents .= "\n";
++ }
++ $state = STATE_BODY;
++ } elsif ($state == STATE_BODY_MAYBE) {
++ # Continued declaration purpose
++ chomp($declaration_purpose);
++ $declaration_purpose .= " " . $1;
++ $declaration_purpose =~ s/\s+/ /g;
++ } else {
++ my $cont = $1;
++ if ($section =~ m/^@/ || $section eq $section_context) {
++ if (!defined $leading_space) {
++ if ($cont =~ m/^(\s+)/) {
++ $leading_space = $1;
++ } else {
++ $leading_space = "";
++ }
++ }
++ $cont =~ s/^$leading_space//;
++ }
++ $contents .= $cont . "\n";
++ }
++ } else {
++ # i dont know - bad line? ignore.
++ print STDERR "${file}:$.: warning: bad line: $_";
++ ++$warnings;
++ }
++}
++
++
++#
++# STATE_PROTO: reading a function/whatever prototype.
++#
++sub process_proto($$) {
++ my $file = shift;
++
++ if (/$doc_inline_oneline/) {
++ $section = $1;
++ $contents = $2;
++ if ($contents ne "") {
++ $contents .= "\n";
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ }
++ } elsif (/$doc_inline_start/) {
++ $state = STATE_INLINE;
++ $inline_doc_state = STATE_INLINE_NAME;
++ } elsif ($decl_type eq 'function') {
++ process_proto_function($_, $file);
++ } else {
++ process_proto_type($_, $file);
++ }
++}
++
++#
++# STATE_DOCBLOCK: within a DOC: block.
++#
++sub process_docblock($$) {
++ my $file = shift;
++
++ if (/$doc_end/) {
++ dump_doc_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ $function = "";
++ %parameterdescs = ();
++ %parametertypes = ();
++ @parameterlist = ();
++ %sections = ();
++ @sectionlist = ();
++ $prototype = "";
++ $state = STATE_NORMAL;
++ } elsif (/$doc_content/) {
++ if ( $1 eq "" ) {
++ $contents .= $blankline;
++ } else {
++ $contents .= $1 . "\n";
++ }
++ }
++}
++
++#
++# STATE_INLINE: docbook comments within a prototype.
++#
++sub process_inline($$) {
++ my $file = shift;
++
++ # First line (state 1) needs to be a @parameter
++ if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) {
++ $section = $1;
++ $contents = $2;
++ $new_start_line = $.;
++ if ($contents ne "") {
++ while (substr($contents, 0, 1) eq " ") {
++ $contents = substr($contents, 1);
++ }
++ $contents .= "\n";
++ }
++ $inline_doc_state = STATE_INLINE_TEXT;
++ # Documentation block end */
++ } elsif (/$doc_inline_end/) {
++ if (($contents ne "") && ($contents ne "\n")) {
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ }
++ $state = STATE_PROTO;
++ $inline_doc_state = STATE_INLINE_NA;
++ # Regular text
++ } elsif (/$doc_content/) {
++ if ($inline_doc_state == STATE_INLINE_TEXT) {
++ $contents .= $1 . "\n";
++ # nuke leading blank lines
++ if ($contents =~ /^\s*$/) {
++ $contents = "";
++ }
++ } elsif ($inline_doc_state == STATE_INLINE_NAME) {
++ $inline_doc_state = STATE_INLINE_ERROR;
++ print STDERR "${file}:$.: warning: ";
++ print STDERR "Incorrect use of kernel-doc format: $_";
++ ++$warnings;
++ }
++ }
++}
++
++
++sub process_file($) {
++ my $file;
+ my $initial_section_counter = $section_counter;
+ my ($orig_file) = @_;
+- my $leading_space;
+
+ $file = map_filename($orig_file);
+
+@@ -1853,250 +2145,23 @@ sub process_file($) {
+ }
+ # Replace tabs by spaces
+ while ($_ =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {};
++ # Hand this line to the appropriate state handler
+ if ($state == STATE_NORMAL) {
+- if (/$doc_start/o) {
+- $state = STATE_NAME; # next line is always the function name
+- $in_doc_sect = 0;
+- $declaration_start_line = $. + 1;
+- }
+- } elsif ($state == STATE_NAME) {# this line is the function name (always)
+- if (/$doc_block/o) {
+- $state = STATE_DOCBLOCK;
+- $contents = "";
+- $new_start_line = $. + 1;
+-
+- if ( $1 eq "" ) {
+- $section = $section_intro;
+- } else {
+- $section = $1;
+- }
+- }
+- elsif (/$doc_decl/o) {
+- $identifier = $1;
+- if (/\s*([\w\s]+?)\s*-/) {
+- $identifier = $1;
+- }
+-
+- $state = STATE_FIELD;
+- # if there's no @param blocks need to set up default section
+- # here
+- $contents = "";
+- $section = $section_default;
+- $new_start_line = $. + 1;
+- if (/-(.*)/) {
+- # strip leading/trailing/multiple spaces
+- $descr= $1;
+- $descr =~ s/^\s*//;
+- $descr =~ s/\s*$//;
+- $descr =~ s/\s+/ /g;
+- $declaration_purpose = xml_escape($descr);
+- $in_purpose = 1;
+- } else {
+- $declaration_purpose = "";
+- }
+-
+- if (($declaration_purpose eq "") && $verbose) {
+- print STDERR "${file}:$.: warning: missing initial short description on line:\n";
+- print STDERR $_;
+- ++$warnings;
+- }
+-
+- if ($identifier =~ m/^struct/) {
+- $decl_type = 'struct';
+- } elsif ($identifier =~ m/^union/) {
+- $decl_type = 'union';
+- } elsif ($identifier =~ m/^enum/) {
+- $decl_type = 'enum';
+- } elsif ($identifier =~ m/^typedef/) {
+- $decl_type = 'typedef';
+- } else {
+- $decl_type = 'function';
+- }
+-
+- if ($verbose) {
+- print STDERR "${file}:$.: info: Scanning doc for $identifier\n";
+- }
+- } else {
+- print STDERR "${file}:$.: warning: Cannot understand $_ on line $.",
+- " - I thought it was a doc line\n";
+- ++$warnings;
+- $state = STATE_NORMAL;
+- }
+- } elsif ($state == STATE_FIELD) { # look for head: lines, and include content
+- if (/$doc_sect/i) { # case insensitive for supported section names
+- $newsection = $1;
+- $newcontents = $2;
+-
+- # map the supported section names to the canonical names
+- if ($newsection =~ m/^description$/i) {
+- $newsection = $section_default;
+- } elsif ($newsection =~ m/^context$/i) {
+- $newsection = $section_context;
+- } elsif ($newsection =~ m/^returns?$/i) {
+- $newsection = $section_return;
+- } elsif ($newsection =~ m/^\@return$/) {
+- # special: @return is a section, not a param description
+- $newsection = $section_return;
+- }
+-
+- if (($contents ne "") && ($contents ne "\n")) {
+- if (!$in_doc_sect && $verbose) {
+- print STDERR "${file}:$.: warning: contents before sections\n";
+- ++$warnings;
+- }
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- }
+-
+- $in_doc_sect = 1;
+- $in_purpose = 0;
+- $contents = $newcontents;
+- $new_start_line = $.;
+- while (substr($contents, 0, 1) eq " ") {
+- $contents = substr($contents, 1);
+- }
+- if ($contents ne "") {
+- $contents .= "\n";
+- }
+- $section = $newsection;
+- $leading_space = undef;
+- } elsif (/$doc_end/) {
+- if (($contents ne "") && ($contents ne "\n")) {
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- }
+- # look for doc_com + <text> + doc_end:
+- if ($_ =~ m'\s*\*\s*[a-zA-Z_0-9:\.]+\*/') {
+- print STDERR "${file}:$.: warning: suspicious ending line: $_";
+- ++$warnings;
+- }
+-
+- $prototype = "";
+- $state = STATE_PROTO;
+- $brcount = 0;
+-# print STDERR "end of doc comment, looking for prototype\n";
+- } elsif (/$doc_content/) {
+- # miguel-style comment kludge, look for blank lines after
+- # @parameter line to signify start of description
+- if ($1 eq "") {
+- if ($section =~ m/^@/ || $section eq $section_context) {
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- $new_start_line = $.;
+- } else {
+- $contents .= "\n";
+- }
+- $in_purpose = 0;
+- } elsif ($in_purpose == 1) {
+- # Continued declaration purpose
+- chomp($declaration_purpose);
+- $declaration_purpose .= " " . xml_escape($1);
+- $declaration_purpose =~ s/\s+/ /g;
+- } else {
+- my $cont = $1;
+- if ($section =~ m/^@/ || $section eq $section_context) {
+- if (!defined $leading_space) {
+- if ($cont =~ m/^(\s+)/) {
+- $leading_space = $1;
+- } else {
+- $leading_space = "";
+- }
+- }
+-
+- $cont =~ s/^$leading_space//;
+- }
+- $contents .= $cont . "\n";
+- }
+- } else {
+- # i dont know - bad line? ignore.
+- print STDERR "${file}:$.: warning: bad line: $_";
+- ++$warnings;
+- }
++ process_normal();
++ } elsif ($state == STATE_NAME) {
++ process_name($file, $_);
++ } elsif ($state == STATE_BODY || $state == STATE_BODY_MAYBE) {
++ process_body($file, $_);
+ } elsif ($state == STATE_INLINE) { # scanning for inline parameters
+- # First line (state 1) needs to be a @parameter
+- if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) {
+- $section = $1;
+- $contents = $2;
+- $new_start_line = $.;
+- if ($contents ne "") {
+- while (substr($contents, 0, 1) eq " ") {
+- $contents = substr($contents, 1);
+- }
+- $contents .= "\n";
+- }
+- $inline_doc_state = STATE_INLINE_TEXT;
+- # Documentation block end */
+- } elsif (/$doc_inline_end/) {
+- if (($contents ne "") && ($contents ne "\n")) {
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- }
+- $state = STATE_PROTO;
+- $inline_doc_state = STATE_INLINE_NA;
+- # Regular text
+- } elsif (/$doc_content/) {
+- if ($inline_doc_state == STATE_INLINE_TEXT) {
+- $contents .= $1 . "\n";
+- # nuke leading blank lines
+- if ($contents =~ /^\s*$/) {
+- $contents = "";
+- }
+- } elsif ($inline_doc_state == STATE_INLINE_NAME) {
+- $inline_doc_state = STATE_INLINE_ERROR;
+- print STDERR "${file}:$.: warning: ";
+- print STDERR "Incorrect use of kernel-doc format: $_";
+- ++$warnings;
+- }
+- }
+- } elsif ($state == STATE_PROTO) { # scanning for function '{' (end of prototype)
+- if (/$doc_inline_oneline/) {
+- $section = $1;
+- $contents = $2;
+- if ($contents ne "") {
+- $contents .= "\n";
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- }
+- } elsif (/$doc_inline_start/) {
+- $state = STATE_INLINE;
+- $inline_doc_state = STATE_INLINE_NAME;
+- } elsif ($decl_type eq 'function') {
+- process_proto_function($_, $file);
+- } else {
+- process_proto_type($_, $file);
+- }
++ process_inline($file, $_);
++ } elsif ($state == STATE_PROTO) {
++ process_proto($file, $_);
+ } elsif ($state == STATE_DOCBLOCK) {
+- if (/$doc_end/)
+- {
+- dump_doc_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- $function = "";
+- %parameterdescs = ();
+- %parametertypes = ();
+- @parameterlist = ();
+- %sections = ();
+- @sectionlist = ();
+- $prototype = "";
+- $state = STATE_NORMAL;
+- }
+- elsif (/$doc_content/)
+- {
+- if ( $1 eq "" )
+- {
+- $contents .= $blankline;
+- }
+- else
+- {
+- $contents .= $1 . "\n";
+- }
+- }
++ process_docblock($file, $_);
+ }
+ }
++
++ # Make sure we got something interesting.
+ if ($initial_section_counter == $section_counter) {
+ if ($output_mode ne "none") {
+ print STDERR "${file}:1: warning: no structured comments found\n";
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
deleted file mode 100644
index 17d2d91..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 526e539628e051128abf46a60ec22e18c9b5d84f Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 31 May 2017 15:03:02 -0500
-Subject: [PATCH 09/14] multipath: set verbosity to default during config
-
-condlog was setting the verbosity to 0 if there was no configuration.
-This keeps multipath from printing warning messages about config file
-problems that are found while loading the configuration. Instead, it
-should use the default config level until it loads the configuration
-to find the current value.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/debug.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libmultipath/debug.c b/libmultipath/debug.c
-index fbe171a..f89b264 100644
---- a/libmultipath/debug.c
-+++ b/libmultipath/debug.c
-@@ -11,6 +11,7 @@
- #include "../third-party/valgrind/drd.h"
- #include "vector.h"
- #include "config.h"
-+#include "defaults.h"
-
- void dlog (int sink, int prio, const char * fmt, ...)
- {
-@@ -21,7 +22,7 @@ void dlog (int sink, int prio, const char * fmt, ...)
- va_start(ap, fmt);
- conf = get_multipath_config();
- ANNOTATE_IGNORE_READS_BEGIN();
-- thres = (conf) ? conf->verbosity : 0;
-+ thres = (conf) ? conf->verbosity : DEFAULT_VERBOSITY;
- ANNOTATE_IGNORE_READS_END();
- put_multipath_config(conf);
-
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch
new file mode 100644
index 0000000..2cae075
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch
@@ -0,0 +1,56 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Mon, 14 May 2018 17:30:17 +0200
+Subject: [PATCH] multipath-tools: configure hitachi ams2000 and hus100 as full
+ active arrays
+
+AMS2000 and HUS100 families are active/active arrays.
+
+Based on https://support.hitachivantara.com/download/epcra/df818913.pdf
+and internal hitachi docs.
+
+Cc: Matthias Rudolph <Matthias.Rudolph@hitachivantara.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM-DEV ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/hwtable.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
+index 2ca6888..148f0ba 100644
+--- a/libmultipath/hwtable.c
++++ b/libmultipath/hwtable.c
+@@ -398,13 +398,13 @@ static struct hwentry default_hw[] = {
+ * Mail : matthias.rudolph@hds.com
+ */
+ {
+- /* USP-V, HUS VM, VSP, VSP G1X00 and VSP GX00 families */
++ /* USP-V, HUS VM, VSP, VSP G1X00 and VSP GX00 families / HP XP */
+ .vendor = "(HITACHI|HP)",
+ .product = "^OPEN-",
+ .pgpolicy = MULTIBUS,
+ },
+ {
+- /* AMS 2000 and HUS 100 families */
++ /* AMS other than AMS 2000 */
+ .vendor = "HITACHI",
+ .product = "^DF",
+ .no_path_retry = NO_PATH_RETRY_QUEUE,
+@@ -412,6 +412,12 @@ static struct hwentry default_hw[] = {
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .prio_name = PRIO_HDS,
+ },
++ {
++ /* AMS 2000 and HUS 100 families */
++ .vendor = "HITACHI",
++ .product = "^DF600F",
++ .pgpolicy = MULTIBUS,
++ },
+ /*
+ * IBM
+ *
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch
new file mode 100644
index 0000000..2dda2ed
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Martin Wilck <mwilck@suse.com>
+Date: Wed, 21 Mar 2018 10:34:18 +0100
+Subject: [PATCH] libmultipath: don't reject maps with undefined prio
+
+libmultipath's prio routines can deal with pp->priority == PRIO_UNDEF
+just fine. PRIO_UNDEF is just a very low priority. So there's
+no reason to reject setting up a multipath map because paths have
+undefined priority.
+
+Signed-off-by: Martin Wilck <mwilck@suse.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/configure.c | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/libmultipath/configure.c b/libmultipath/configure.c
+index 5796683..5c54f9b 100644
+--- a/libmultipath/configure.c
++++ b/libmultipath/configure.c
+@@ -1063,9 +1063,6 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid,
+ continue;
+ }
+
+- if (pp1->priority == PRIO_UNDEF)
+- mpp->action = ACT_REJECT;
+-
+ if (!mpp->paths) {
+ condlog(0, "%s: skip coalesce (no paths)", mpp->alias);
+ remove_map(mpp, vecs, 0);
+@@ -1091,8 +1088,6 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid,
+ mpp->size);
+ mpp->action = ACT_REJECT;
+ }
+- if (pp2->priority == PRIO_UNDEF)
+- mpp->action = ACT_REJECT;
+ }
+ verify_paths(mpp, vecs);
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
deleted file mode 100644
index 396b6d3..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f88d60a93e98d86ae294f2317a122c4efde276f0 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 31 May 2017 17:58:59 -0500
-Subject: [PATCH 10/14] mpath: skip device configs without vendor/product
-
-Right now if multipath.conf includes a device configuration without a
-vendor or product string, it will automatically be applied to all
-devices, skipping all other configs entirely. This is clearly wrong.
-This patch makes sure that user added configs include vendor and
-product strings
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/config.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index c485748..bdde113 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -452,6 +452,13 @@ restart:
- break;
- j = n;
- vector_foreach_slot_after(hw, hwe2, j) {
-+ /* drop invalid device configs */
-+ if (!hwe2->vendor || !hwe2->product) {
-+ condlog(0, "device config missing vendor or product parameter");
-+ vector_del_slot(hw, j--);
-+ free_hwe(hwe2);
-+ continue;
-+ }
- if (hwe_regmatch(hwe1, hwe2))
- continue;
- /* dup */
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
deleted file mode 100644
index 12d6d38..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From bc3ceda747104afdc24386df5dc45ca86f6c2936 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 1 Jun 2017 17:52:28 -0500
-Subject: [PATCH 11/14] multipathd: fix "show maps json" crash
-
-If there are no multipath devices, show_maps_json sets the maximum size
-of the reply buffer to 0. Having a size of 0 causes the calls to calloc
-and realloc to behave in ways that the code isn't designed to handle,
-leading to a double-free crash. Instead, show_maps_json should just
-use the INITIAL_REPLY_LEN if there are no multipath devices.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- multipathd/cli_handlers.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
-index 04c7386..7b0d00c 100644
---- a/multipathd/cli_handlers.c
-+++ b/multipathd/cli_handlers.c
-@@ -162,10 +162,12 @@ show_maps_json (char ** r, int * len, struct vectors * vecs)
- struct multipath * mpp;
- char * c;
- char * reply;
-- unsigned int maxlen = INITIAL_REPLY_LEN *
-- PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec);
-+ unsigned int maxlen = INITIAL_REPLY_LEN;
- int again = 1;
-
-+ if (VECTOR_SIZE(vecs->mpvec) > 0)
-+ maxlen *= PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec);
-+
- vector_foreach_slot(vecs->mpvec, mpp, i) {
- if (update_multipath(vecs, mpp->alias, 0)) {
- return 1;
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch
new file mode 100644
index 0000000..96a814f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch
@@ -0,0 +1,57 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Martin Wilck <mwilck@suse.com>
+Date: Wed, 21 Mar 2018 10:34:19 +0100
+Subject: [PATCH] multipathd: handle errors in uxlsnr as fatal
+
+The ppoll() calls of the uxlsnr thread are vital for proper functioning of
+multipathd. If the uxlsnr thread can't open the socket or fails to call ppoll()
+for other reasons, quit the daemon. If we don't do that, multipathd may
+hang in a state where it can't be terminated any more, because the uxlsnr
+thread is responsible for handling all signals. This happens e.g. if
+systemd's multipathd.socket is running in and multipathd is started from
+outside systemd.
+
+24f2844 "multipathd: fix signal blocking logic" has made this problem more
+severe. Before that patch, the signals weren't actually blocked in any thread.
+That's not to say 24f2844 was wrong. I still think it's correct, we just
+need this one on top.
+
+Signed-off-by: Martin Wilck <mwilck@suse.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ multipathd/uxlsnr.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/multipathd/uxlsnr.c b/multipathd/uxlsnr.c
+index cdafd82..6f66666 100644
+--- a/multipathd/uxlsnr.c
++++ b/multipathd/uxlsnr.c
+@@ -178,7 +178,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data)
+
+ if (ux_sock == -1) {
+ condlog(1, "could not create uxsock: %d", errno);
+- return NULL;
++ exit_daemon();
+ }
+
+ pthread_cleanup_push(uxsock_cleanup, (void *)ux_sock);
+@@ -187,7 +187,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data)
+ polls = (struct pollfd *)MALLOC((MIN_POLLS + 1) * sizeof(struct pollfd));
+ if (!polls) {
+ condlog(0, "uxsock: failed to allocate poll fds");
+- return NULL;
++ exit_daemon();
+ }
+ sigfillset(&mask);
+ sigdelset(&mask, SIGINT);
+@@ -249,6 +249,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data)
+
+ /* something went badly wrong! */
+ condlog(0, "uxsock: poll failed with %d", errno);
++ exit_daemon();
+ break;
+ }
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch
new file mode 100644
index 0000000..8ce2431
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch
@@ -0,0 +1,36 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Martin Wilck <mwilck@suse.com>
+Date: Tue, 15 May 2018 14:32:44 +0200
+Subject: [PATCH] libmultipath: fix error parsing "find_multipaths strict"
+
+If "find_multipaths strict" is set in multipath.conf, the error message
+"illegal value for find_multipaths: strict" is printed. This causes no
+functional problem, as "strict" happens to be the default, fallback
+value. It should be fixed nonetheless. FIND_MULTIPATHS_STRICT, having
+the highest numeric value, must be last in the enum.
+
+Fixes: c36f2f42 "libmultipath: change find_multipaths option to multi-value"
+Signed-off-by: Martin Wilck <mwilck@suse.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/structs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libmultipath/structs.h b/libmultipath/structs.h
+index eb6a178..e424b15 100644
+--- a/libmultipath/structs.h
++++ b/libmultipath/structs.h
+@@ -122,9 +122,9 @@ enum find_multipaths_states {
+ FIND_MULTIPATHS_UNDEF = YNU_UNDEF,
+ FIND_MULTIPATHS_OFF = YNU_NO,
+ FIND_MULTIPATHS_ON = _FIND_MULTIPATHS_F,
+- FIND_MULTIPATHS_STRICT = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_N,
+ FIND_MULTIPATHS_GREEDY = _FIND_MULTIPATHS_I,
+ FIND_MULTIPATHS_SMART = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_I,
++ FIND_MULTIPATHS_STRICT = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_N,
+ __FIND_MULTIPATHS_LAST,
+ };
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
deleted file mode 100644
index 5ccd4ae..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 6864ba28dec61609662ce5dc8bc7ed1925abb546 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 02:56:13 -0400
-Subject: [PATCH 12/14] multipath-tools: modify Makefile.inc for
- cross-compilation
-
-Do not look for systemd info on the host, and allow us to pass in CFLAGS
-using the OPTFLAGS variable.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Update for version 0.5.0-144-g770e6d0
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-Update for version 0.7.1
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.inc | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index e084fd1..c7f45fa 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -35,12 +35,6 @@ ifndef RUN
- endif
- endif
-
--ifndef SYSTEMD
-- ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1)
-- SYSTEMD = $(shell systemctl --version 2> /dev/null | sed -n 's/systemd \([0-9]*\)/\1/p')
-- endif
--endif
--
- ifndef SYSTEMDPATH
- SYSTEMDPATH=usr/lib
- endif
-@@ -82,11 +76,13 @@ TEST_CC_OPTION = $(shell \
-
- STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
-
-+ifndef OPTFLAGS
- OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \
- -Werror=implicit-function-declaration -Werror=format-security \
- -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
- -Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \
- --param=ssp-buffer-size=4
-+endif
-
- CFLAGS = $(OPTFLAGS) -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\"
- BIN_CFLAGS = -fPIE -DPIE
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
deleted file mode 100644
index 52240f6..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 1498338970a093fccbda3e33f5588a289ef2c66a Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 02:59:46 -0400
-Subject: [PATCH 13/14] Always use devmapper
-
-Do not try to compute several _API_ make variables
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Rebase to 0.7.1
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- libmultipath/Makefile | 19 ++++---------------
- 1 file changed, 4 insertions(+), 15 deletions(-)
-
-diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index b3244fc..9006b3f 100644
---- a/libmultipath/Makefile
-+++ b/libmultipath/Makefile
-@@ -20,21 +20,10 @@ ifdef SYSTEMD
- endif
- endif
-
--ifneq ($(call check_func,dm_task_no_flush,/usr/include/libdevmapper.h),0)
-- CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
--endif
--
--ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
-- CFLAGS += -DLIBDM_API_COOKIE
--endif
--
--ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,/usr/include/libudev.h),0)
-- CFLAGS += -DLIBUDEV_API_RECVBUF
--endif
--
--ifneq ($(call check_func,dm_task_deferred_remove,/usr/include/libdevmapper.h),0)
-- CFLAGS += -DLIBDM_API_DEFERRED
--endif
-+CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
-+CFLAGS += -DLIBDM_API_COOKIE
-+CFLAGS += -DLIBUDEV_API_RECVBUF
-+CFLAGS += -DLIBDM_API_DEFERRED
-
- OBJS = memory.o parser.o vector.o devmapper.o callout.o \
- hwtable.o blacklist.o util.o dmparser.o config.o \
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch
new file mode 100644
index 0000000..c767804
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch
@@ -0,0 +1,40 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Mon, 7 May 2018 17:16:05 -0500
+Subject: [PATCH] libmultipath: print correct default for delay_*_checks
+
+These options default to "no", so they should display that when the
+config is printed.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/dict.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 4040611..3e7c5d6 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -1115,7 +1115,8 @@ print_off_int_undef(char * buff, int len, long v)
+ }
+
+ declare_def_handler(delay_watch_checks, set_off_int_undef)
+-declare_def_snprint(delay_watch_checks, print_off_int_undef)
++declare_def_snprint_defint(delay_watch_checks, print_off_int_undef,
++ DEFAULT_DELAY_CHECKS)
+ declare_ovr_handler(delay_watch_checks, set_off_int_undef)
+ declare_ovr_snprint(delay_watch_checks, print_off_int_undef)
+ declare_hw_handler(delay_watch_checks, set_off_int_undef)
+@@ -1123,7 +1124,8 @@ declare_hw_snprint(delay_watch_checks, print_off_int_undef)
+ declare_mp_handler(delay_watch_checks, set_off_int_undef)
+ declare_mp_snprint(delay_watch_checks, print_off_int_undef)
+ declare_def_handler(delay_wait_checks, set_off_int_undef)
+-declare_def_snprint(delay_wait_checks, print_off_int_undef)
++declare_def_snprint_defint(delay_wait_checks, print_off_int_undef,
++ DEFAULT_DELAY_CHECKS)
+ declare_ovr_handler(delay_wait_checks, set_off_int_undef)
+ declare_ovr_snprint(delay_wait_checks, print_off_int_undef)
+ declare_hw_handler(delay_wait_checks, set_off_int_undef)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
deleted file mode 100644
index f951213..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7f5869cd32a7b3f717d9544b35562d9d01ca6510 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 03:03:16 -0400
-Subject: [PATCH 14/14] Always use devmapper for kpartx
-
-Do not try to compute the LIBDM_API_COOKIE make variable
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Rebase to 0.7.1
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- kpartx/Makefile | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/kpartx/Makefile b/kpartx/Makefile
-index bfa6fe8..be87124 100644
---- a/kpartx/Makefile
-+++ b/kpartx/Makefile
-@@ -8,9 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS)
-
- LIBDEPS += -ldevmapper
-
--ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
-- CFLAGS += -DLIBDM_API_COOKIE
--endif
-+CFLAGS += -DLIBDM_API_COOKIE
-
- OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
- gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch
new file mode 100644
index 0000000..0ab4e06
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch
@@ -0,0 +1,31 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 9 May 2018 14:32:59 -0500
+Subject: [PATCH] multipath.conf.5: clarify property whitelist handling
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ multipath/multipath.conf.5 | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index f689795..96d1b66 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -1181,10 +1181,9 @@ and
+ keywords. For a full description of these keywords please see the \fIdevices\fR
+ section description.
+ .LP
+-The \fIproperty\fR blacklist and whitelist handling is different from the usual
+-handling in the sense that the whitelist \fIhas\fR to be set, otherwise the
+-device will be blacklisted. In these cases the message \fIblacklisted, udev
+-property missing\fR will be displayed.
++The \fIproperty\fR whitelist handling is different from the usual
++handling in the sense that the device \fIhas\fR to have a udev property that
++matches the whitelist, otherwise the device will be blacklisted. In these cases the message \fIblacklisted, udev property missing\fR will be displayed.
+ .
+ .
+ .\" ----------------------------------------------------------------------------
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch
new file mode 100644
index 0000000..be2681d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch
@@ -0,0 +1,317 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 31 May 2018 17:47:11 -0500
+Subject: [PATCH] mpathpersist: add all_tg_pt option
+
+Some arrays, such as the EMC VNX, don't follow the scsi persistent
+reservations spec in making key registrations per I_T NEXUS. Instead,
+the registration is shared by all target ports connected to a given
+host. This causes mpathpersist to fail whenever it tries to register a
+key, since it will receive a registration conflict on some of the paths.
+
+To deal with this, mpathpersist needs to track the hosts that it has
+done a registration on, and only register once per host. The new
+"all_tg_pt" multipath.conf option is used to set which arrays need this
+feature. I currently don't know if all EMC VNX arrays handle persistent
+reservations like this, or if it is configurable. A future patch will
+update the VNX built-in config, if this is indeed their default (or
+only) setting.
+
+Multipathd doesn't need to worry about this. It is often the case that
+when a path device comes back, it will still have the keys registered to
+it. Because of this, multipathd uses register-and-ignore, which means
+that it won't cause an error if the registration has already happened
+down a different target port.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmpathpersist/mpath_persist.c | 28 ++++++++++++++++++++++------
+ libmultipath/config.c | 2 ++
+ libmultipath/config.h | 2 ++
+ libmultipath/defaults.h | 1 +
+ libmultipath/dict.c | 10 ++++++++++
+ libmultipath/propsel.c | 15 +++++++++++++++
+ libmultipath/propsel.h | 1 +
+ libmultipath/structs.h | 7 +++++++
+ multipath/multipath.conf.5 | 11 +++++++++++
+ 9 files changed, 71 insertions(+), 6 deletions(-)
+
+diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c
+index 907a17c..ca91c55 100644
+--- a/libmpathpersist/mpath_persist.c
++++ b/libmpathpersist/mpath_persist.c
+@@ -335,6 +335,7 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope,
+
+ conf = get_multipath_config();
+ select_reservation_key(conf, mpp);
++ select_all_tg_pt(conf, mpp);
+ put_multipath_config(conf);
+
+ memcpy(&prkey, paramp->sa_key, 8);
+@@ -456,7 +457,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ unsigned int rq_type, struct prout_param_descriptor * paramp, int noisy)
+ {
+
+- int i, j;
++ int i, j, k;
+ struct pathgroup *pgp = NULL;
+ struct path *pp = NULL;
+ int rollback = 0;
+@@ -481,11 +482,13 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ }
+
+ struct threadinfo thread[active_pathcount];
++ int hosts[active_pathcount];
+
+ memset(thread, 0, sizeof(thread));
+
+ /* init thread parameter */
+ for (i =0; i< active_pathcount; i++){
++ hosts[i] = -1;
+ thread[i].param.rq_servact = rq_servact;
+ thread[i].param.rq_scope = rq_scope;
+ thread[i].param.rq_type = rq_type;
+@@ -514,6 +517,17 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ condlog (1, "%s: %s path not up. Skip.", mpp->wwid, pp->dev);
+ continue;
+ }
++ if (mpp->all_tg_pt == ALL_TG_PT_ON &&
++ pp->sg_id.host_no != -1) {
++ for (k = 0; k < count; k++) {
++ if (pp->sg_id.host_no == hosts[k]) {
++ condlog(3, "%s: %s host %d matches skip.", pp->wwid, pp->dev, pp->sg_id.host_no);
++ break;
++ }
++ }
++ if (k < count)
++ continue;
++ }
+ strncpy(thread[count].param.dev, pp->dev,
+ FILE_NAME_SIZE - 1);
+
+@@ -531,10 +545,12 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ condlog (0, "%s: failed to create thread %d", mpp->wwid, rc);
+ thread[count].param.status = MPATH_PR_THREAD_ERROR;
+ }
++ else
++ hosts[count] = pp->sg_id.host_no;
+ count = count + 1;
+ }
+ }
+- for( i=0; i < active_pathcount ; i++){
++ for( i=0; i < count ; i++){
+ if (thread[i].param.status != MPATH_PR_THREAD_ERROR) {
+ rc = pthread_join(thread[i].id, NULL);
+ if (rc){
+@@ -557,7 +573,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ }
+ if (rollback && ((rq_servact == MPATH_PROUT_REG_SA) && sa_key != 0 )){
+ condlog (3, "%s: ERROR: initiating pr out rollback", mpp->wwid);
+- for( i=0 ; i < active_pathcount ; i++){
++ for( i=0 ; i < count ; i++){
+ if(thread[i].param.status == MPATH_PR_SUCCESS) {
+ memcpy(&thread[i].param.paramp->key, &thread[i].param.paramp->sa_key, 8);
+ memset(&thread[i].param.paramp->sa_key, 0, 8);
+@@ -571,7 +587,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ } else
+ thread[i].param.status = MPATH_PR_SKIP;
+ }
+- for(i=0; i < active_pathcount ; i++){
++ for(i=0; i < count ; i++){
+ if (thread[i].param.status != MPATH_PR_SKIP &&
+ thread[i].param.status != MPATH_PR_THREAD_ERROR) {
+ rc = pthread_join(thread[i].id, NULL);
+@@ -720,7 +736,7 @@ int mpath_prout_rel(struct multipath *mpp,int rq_servact, int rq_scope,
+ }
+ }
+ pthread_attr_destroy (&attr);
+- for (i = 0; i < active_pathcount; i++){
++ for (i = 0; i < count; i++){
+ if (thread[i].param.status != MPATH_PR_THREAD_ERROR) {
+ rc = pthread_join (thread[i].id, NULL);
+ if (rc){
+@@ -729,7 +745,7 @@ int mpath_prout_rel(struct multipath *mpp,int rq_servact, int rq_scope,
+ }
+ }
+
+- for (i = 0; i < active_pathcount; i++){
++ for (i = 0; i < count; i++){
+ /* check thread status here and return the status */
+
+ if (thread[i].param.status == MPATH_PR_RESERV_CONFLICT)
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index 085a3e1..5872927 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -352,6 +352,7 @@ merge_hwe (struct hwentry * dst, struct hwentry * src)
+ merge_num(skip_kpartx);
+ merge_num(max_sectors_kb);
+ merge_num(ghost_delay);
++ merge_num(all_tg_pt);
+
+ snprintf(id, sizeof(id), "%s/%s", dst->vendor, dst->product);
+ reconcile_features_with_options(id, &dst->features,
+@@ -622,6 +623,7 @@ load_config (char * file)
+ conf->disable_changed_wwids = DEFAULT_DISABLE_CHANGED_WWIDS;
+ conf->remove_retries = 0;
+ conf->ghost_delay = DEFAULT_GHOST_DELAY;
++ conf->all_tg_pt = DEFAULT_ALL_TG_PT;
+
+ /*
+ * preload default hwtable
+diff --git a/libmultipath/config.h b/libmultipath/config.h
+index 6e69a37..1bf708a 100644
+--- a/libmultipath/config.h
++++ b/libmultipath/config.h
+@@ -82,6 +82,7 @@ struct hwentry {
+ int skip_kpartx;
+ int max_sectors_kb;
+ int ghost_delay;
++ int all_tg_pt;
+ char * bl_product;
+ };
+
+@@ -194,6 +195,7 @@ struct config {
+ char * partition_delim;
+ char * config_dir;
+ int prkey_source;
++ int all_tg_pt;
+ struct be64 reservation_key;
+
+ vector keywords;
+diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
+index d7b87b4..f076b4b 100644
+--- a/libmultipath/defaults.h
++++ b/libmultipath/defaults.h
+@@ -43,6 +43,7 @@
+ #define DEFAULT_GHOST_DELAY GHOST_DELAY_OFF
+ #define DEFAULT_FIND_MULTIPATHS_TIMEOUT -10
+ #define DEFAULT_UNKNOWN_FIND_MULTIPATHS_TIMEOUT 1
++#define DEFAULT_ALL_TG_PT ALL_TG_PT_OFF
+
+ #define DEFAULT_CHECKINT 5
+ #define MAX_CHECKINT(a) (a << 2)
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 3e7c5d6..2557b8a 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -1178,6 +1178,13 @@ declare_hw_snprint(ghost_delay, print_off_int_undef)
+ declare_mp_handler(ghost_delay, set_off_int_undef)
+ declare_mp_snprint(ghost_delay, print_off_int_undef)
+
++declare_def_handler(all_tg_pt, set_yes_no_undef)
++declare_def_snprint_defint(all_tg_pt, print_yes_no_undef, DEFAULT_ALL_TG_PT)
++declare_ovr_handler(all_tg_pt, set_yes_no_undef)
++declare_ovr_snprint(all_tg_pt, print_yes_no_undef)
++declare_hw_handler(all_tg_pt, set_yes_no_undef)
++declare_hw_snprint(all_tg_pt, print_yes_no_undef)
++
+
+ static int
+ def_uxsock_timeout_handler(struct config *conf, vector strvec)
+@@ -1509,6 +1516,7 @@ init_keywords(vector keywords)
+ install_keyword("prkeys_file", &def_prkeys_file_handler, &snprint_def_prkeys_file);
+ install_keyword("log_checker_err", &def_log_checker_err_handler, &snprint_def_log_checker_err);
+ install_keyword("reservation_key", &def_reservation_key_handler, &snprint_def_reservation_key);
++ install_keyword("all_tg_pt", &def_all_tg_pt_handler, &snprint_def_all_tg_pt);
+ install_keyword("retain_attached_hw_handler", &def_retain_hwhandler_handler, &snprint_def_retain_hwhandler);
+ install_keyword("detect_prio", &def_detect_prio_handler, &snprint_def_detect_prio);
+ install_keyword("detect_checker", &def_detect_checker_handler, &snprint_def_detect_checker);
+@@ -1618,6 +1626,7 @@ init_keywords(vector keywords)
+ install_keyword("skip_kpartx", &hw_skip_kpartx_handler, &snprint_hw_skip_kpartx);
+ install_keyword("max_sectors_kb", &hw_max_sectors_kb_handler, &snprint_hw_max_sectors_kb);
+ install_keyword("ghost_delay", &hw_ghost_delay_handler, &snprint_hw_ghost_delay);
++ install_keyword("all_tg_pt", &hw_all_tg_pt_handler, &snprint_hw_all_tg_pt);
+ install_sublevel_end();
+
+ install_keyword_root("overrides", &overrides_handler);
+@@ -1654,6 +1663,7 @@ init_keywords(vector keywords)
+ install_keyword("skip_kpartx", &ovr_skip_kpartx_handler, &snprint_ovr_skip_kpartx);
+ install_keyword("max_sectors_kb", &ovr_max_sectors_kb_handler, &snprint_ovr_max_sectors_kb);
+ install_keyword("ghost_delay", &ovr_ghost_delay_handler, &snprint_ovr_ghost_delay);
++ install_keyword("all_tg_pt", &ovr_all_tg_pt_handler, &snprint_ovr_all_tg_pt);
+
+ install_keyword_root("multipaths", &multipaths_handler);
+ install_keyword_multi("multipath", &multipath_handler, NULL);
+diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
+index 627d366..9ca1355 100644
+--- a/libmultipath/propsel.c
++++ b/libmultipath/propsel.c
+@@ -978,3 +978,18 @@ out:
+ pp->dev, pp->find_multipaths_timeout, origin);
+ return 0;
+ }
++
++int select_all_tg_pt (struct config *conf, struct multipath * mp)
++{
++ const char *origin;
++
++ mp_set_ovr(all_tg_pt);
++ mp_set_hwe(all_tg_pt);
++ mp_set_conf(all_tg_pt);
++ mp_set_default(all_tg_pt, DEFAULT_ALL_TG_PT);
++out:
++ condlog(3, "%s: all_tg_pt = %s %s", mp->alias,
++ (mp->all_tg_pt == ALL_TG_PT_ON)? "yes" : "no",
++ origin);
++ return 0;
++}
+diff --git a/libmultipath/propsel.h b/libmultipath/propsel.h
+index a022bee..ae99b92 100644
+--- a/libmultipath/propsel.h
++++ b/libmultipath/propsel.h
+@@ -34,3 +34,4 @@ int select_ghost_delay(struct config *conf, struct multipath * mp);
+ void reconcile_features_with_options(const char *id, char **features,
+ int* no_path_retry,
+ int *retain_hwhandler);
++int select_all_tg_pt (struct config *conf, struct multipath * mp);
+diff --git a/libmultipath/structs.h b/libmultipath/structs.h
+index e424b15..0194b1e 100644
+--- a/libmultipath/structs.h
++++ b/libmultipath/structs.h
+@@ -217,6 +217,12 @@ enum prkey_sources {
+ PRKEY_SOURCE_FILE,
+ };
+
++enum all_tg_pt_states {
++ ALL_TG_PT_UNDEF = YNU_UNDEF,
++ ALL_TG_PT_OFF = YNU_NO,
++ ALL_TG_PT_ON = YNU_YES,
++};
++
+ struct sg_id {
+ int host_no;
+ int channel;
+@@ -362,6 +368,7 @@ struct multipath {
+ int prkey_source;
+ struct be64 reservation_key;
+ unsigned char prflag;
++ int all_tg_pt;
+ struct gen_multipath generic_mp;
+ };
+
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index 96d1b66..0c1f174 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -743,6 +743,17 @@ The default is: \fB<unset>\fR
+ .
+ .
+ .TP
++.B all_tg_pt
++This must be set to \fByes\fR to successfully use mpathpersist on arrays that
++automatically set and clear registration keys on all target ports from a
++host, instead of per target port per host.
++.RS
++.TP
++The default is: \fBno\fR
++.RE
++.
++.
++.TP
+ .B retain_attached_hw_handler
+ (Obsolete for kernels >= 4.3) If set to
+ .I yes
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch
new file mode 100644
index 0000000..8d19547
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch
@@ -0,0 +1,1093 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 1 Jun 2018 16:30:44 -0500
+Subject: [PATCH] libmultipath: remove rbd code
+
+The Ceph tean has asked to drop support for multipathed rbd, since it
+was running into data corruption issues. There was never an upstream
+Ceph release based on it, and because of the corruption, there should be
+no users of this code. This patch simply reverts all the rbd code from
+multipath.
+
+Cc: Michael Christie <mchristi@redhat.com>
+Cc: Jason Dillaman <dillaman@redhat.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/checkers.c | 22 --
+ libmultipath/checkers.h | 6 -
+ libmultipath/checkers/Makefile | 7 -
+ libmultipath/checkers/cciss_tur.c | 5 -
+ libmultipath/checkers/directio.c | 5 -
+ libmultipath/checkers/emc_clariion.c | 5 -
+ libmultipath/checkers/hp_sw.c | 5 -
+ libmultipath/checkers/rbd.c | 653 -----------------------------------
+ libmultipath/checkers/rdac.c | 5 -
+ libmultipath/checkers/readsector0.c | 5 -
+ libmultipath/checkers/tur.c | 5 -
+ libmultipath/discovery.c | 70 ----
+ libmultipath/hwtable.c | 12 -
+ multipath/multipath.conf.5 | 3 -
+ multipathd/main.c | 11 -
+ 15 files changed, 819 deletions(-)
+ delete mode 100644 libmultipath/checkers/rbd.c
+
+diff --git a/libmultipath/checkers.c b/libmultipath/checkers.c
+index 08cdfc3..0bacc86 100644
+--- a/libmultipath/checkers.c
++++ b/libmultipath/checkers.c
+@@ -141,13 +141,6 @@ struct checker * add_checker (char *multipath_dir, char * name)
+ if (!c->free)
+ goto out;
+
+- c->repair = (void (*)(struct checker *)) dlsym(c->handle,
+- "libcheck_repair");
+- errstr = dlerror();
+- if (errstr != NULL)
+- condlog(0, "A dynamic linking error occurred: (%s)", errstr);
+- if (!c->repair)
+- goto out;
+ done:
+ c->fd = -1;
+ c->sync = 1;
+@@ -222,20 +215,6 @@ void checker_put (struct checker * dst)
+ free_checker(src);
+ }
+
+-void checker_repair (struct checker * c)
+-{
+- if (!checker_selected(c))
+- return;
+-
+- c->message[0] = '\0';
+- if (c->disable) {
+- MSG(c, "checker disabled");
+- return;
+- }
+- if (c->repair)
+- c->repair(c);
+-}
+-
+ int checker_check (struct checker * c, int path_state)
+ {
+ int r;
+@@ -310,7 +289,6 @@ void checker_get (char *multipath_dir, struct checker * dst, char * name)
+ dst->sync = src->sync;
+ strncpy(dst->name, src->name, CHECKER_NAME_LEN);
+ strncpy(dst->message, src->message, CHECKER_MSG_LEN);
+- dst->repair = src->repair;
+ dst->check = src->check;
+ dst->init = src->init;
+ dst->free = src->free;
+diff --git a/libmultipath/checkers.h b/libmultipath/checkers.h
+index 52154ca..7b18a1a 100644
+--- a/libmultipath/checkers.h
++++ b/libmultipath/checkers.h
+@@ -86,7 +86,6 @@ enum path_check_state {
+ #define READSECTOR0 "readsector0"
+ #define CCISS_TUR "cciss_tur"
+ #define NONE "none"
+-#define RBD "rbd"
+
+ #define ASYNC_TIMEOUT_SEC 30
+
+@@ -113,9 +112,6 @@ struct checker {
+ multipath-wide. Use MALLOC if
+ you want to stuff data in. */
+ int (*check)(struct checker *);
+- void (*repair)(struct checker *); /* called if check returns
+- PATH_DOWN to bring path into
+- usable state */
+ int (*init)(struct checker *); /* to allocate the context */
+ void (*free)(struct checker *); /* to free the context */
+ };
+@@ -136,7 +132,6 @@ void checker_set_async (struct checker *);
+ void checker_set_fd (struct checker *, int);
+ void checker_enable (struct checker *);
+ void checker_disable (struct checker *);
+-void checker_repair (struct checker *);
+ int checker_check (struct checker *, int);
+ int checker_selected (struct checker *);
+ char * checker_name (struct checker *);
+@@ -148,6 +143,5 @@ void checker_get (char *, struct checker *, char *);
+ int libcheck_check(struct checker *);
+ int libcheck_init(struct checker *);
+ void libcheck_free(struct checker *);
+-void libcheck_repair(struct checker *);
+
+ #endif /* _CHECKERS_H */
+diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
+index 87c15bd..02caea6 100644
+--- a/libmultipath/checkers/Makefile
++++ b/libmultipath/checkers/Makefile
+@@ -15,15 +15,8 @@ LIBS= \
+ libcheckhp_sw.so \
+ libcheckrdac.so
+
+-ifneq ($(call check_file,/usr/include/rados/librados.h),0)
+-LIBS += libcheckrbd.so
+-endif
+-
+ all: $(LIBS)
+
+-libcheckrbd.so: rbd.o
+- $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^ -lrados -ludev
+-
+ libcheckdirectio.so: libsg.o directio.o
+ $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^ -laio
+
+diff --git a/libmultipath/checkers/cciss_tur.c b/libmultipath/checkers/cciss_tur.c
+index 436470c..1cab201 100644
+--- a/libmultipath/checkers/cciss_tur.c
++++ b/libmultipath/checkers/cciss_tur.c
+@@ -59,11 +59,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ int libcheck_check(struct checker * c)
+ {
+ int rc;
+diff --git a/libmultipath/checkers/directio.c b/libmultipath/checkers/directio.c
+index ce60e4c..a80848d 100644
+--- a/libmultipath/checkers/directio.c
++++ b/libmultipath/checkers/directio.c
+@@ -118,11 +118,6 @@ void libcheck_free (struct checker * c)
+ free(ct);
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ static int
+ check_state(int fd, struct directio_context *ct, int sync, int timeout_secs)
+ {
+diff --git a/libmultipath/checkers/emc_clariion.c b/libmultipath/checkers/emc_clariion.c
+index 9c1ffed..9115b1b 100644
+--- a/libmultipath/checkers/emc_clariion.c
++++ b/libmultipath/checkers/emc_clariion.c
+@@ -90,11 +90,6 @@ void libcheck_free (struct checker * c)
+ free(c->context);
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ int libcheck_check (struct checker * c)
+ {
+ unsigned char sense_buffer[128] = { 0, };
+diff --git a/libmultipath/checkers/hp_sw.c b/libmultipath/checkers/hp_sw.c
+index cee9aab..0ad34a6 100644
+--- a/libmultipath/checkers/hp_sw.c
++++ b/libmultipath/checkers/hp_sw.c
+@@ -45,11 +45,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ static int
+ do_inq(int sg_fd, int cmddt, int evpd, unsigned int pg_op,
+ void *resp, int mx_resp_len, int noisy, unsigned int timeout)
+diff --git a/libmultipath/checkers/rbd.c b/libmultipath/checkers/rbd.c
+deleted file mode 100644
+index 4ff54f4..0000000
+--- a/libmultipath/checkers/rbd.c
++++ /dev/null
+@@ -1,653 +0,0 @@
+-/*
+- * Copyright (c) 2016 Red Hat
+- * Copyright (c) 2004 Christophe Varoqui
+- *
+- * Code based off of tur.c and ceph's krbd.cc
+- */
+-#define _GNU_SOURCE
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <unistd.h>
+-#include <fcntl.h>
+-#include <errno.h>
+-#include <pthread.h>
+-#include <libudev.h>
+-#include <ifaddrs.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <sys/ioctl.h>
+-#include <sys/time.h>
+-#include <sys/wait.h>
+-#include <urcu.h>
+-
+-#include "rados/librados.h"
+-
+-#include "structs.h"
+-#include "checkers.h"
+-
+-#include "../libmultipath/debug.h"
+-#include "../libmultipath/util.h"
+-#include "../libmultipath/time-util.h"
+-#include "../libmultipath/util.h"
+-
+-struct rbd_checker_context;
+-typedef int (thread_fn)(struct rbd_checker_context *ct, char *msg);
+-
+-#define RBD_MSG(msg, fmt, args...) snprintf(msg, CHECKER_MSG_LEN, fmt, ##args);
+-
+-#define RBD_FEATURE_EXCLUSIVE_LOCK (1 << 2)
+-
+-struct rbd_checker_context {
+- int rbd_bus_id;
+- char *client_addr;
+- char *config_info;
+- char *snap;
+- char *pool;
+- char *image;
+- char *username;
+- int remapped;
+- int blacklisted;
+- unsigned lock_on_read:1;
+-
+- rados_t cluster;
+-
+- int state;
+- int running;
+- time_t time;
+- thread_fn *fn;
+- pthread_t thread;
+- pthread_mutex_t lock;
+- pthread_cond_t active;
+- pthread_spinlock_t hldr_lock;
+- int holders;
+- char message[CHECKER_MSG_LEN];
+-};
+-
+-int libcheck_init(struct checker * c)
+-{
+- struct rbd_checker_context *ct;
+- struct udev_device *block_dev;
+- struct udev_device *bus_dev;
+- struct udev *udev;
+- struct stat sb;
+- const char *block_name, *addr, *config_info, *features_str;
+- const char *image, *pool, *snap, *username;
+- uint64_t features = 0;
+- char sysfs_path[PATH_SIZE];
+- int ret;
+-
+- ct = malloc(sizeof(struct rbd_checker_context));
+- if (!ct)
+- return 1;
+- memset(ct, 0, sizeof(struct rbd_checker_context));
+- ct->holders = 1;
+- pthread_cond_init_mono(&ct->active);
+- pthread_mutex_init(&ct->lock, NULL);
+- pthread_spin_init(&ct->hldr_lock, PTHREAD_PROCESS_PRIVATE);
+- c->context = ct;
+-
+- /*
+- * The rbd block layer sysfs device is not linked to the rbd bus
+- * device that we interact with, so figure that out now.
+- */
+- if (fstat(c->fd, &sb) != 0)
+- goto free_ct;
+-
+- udev = udev_new();
+- if (!udev)
+- goto free_ct;
+-
+- block_dev = udev_device_new_from_devnum(udev, 'b', sb.st_rdev);
+- if (!block_dev)
+- goto free_udev;
+-
+- block_name = udev_device_get_sysname(block_dev);
+- ret = sscanf(block_name, "rbd%d", &ct->rbd_bus_id);
+-
+- udev_device_unref(block_dev);
+- if (ret != 1)
+- goto free_udev;
+-
+- snprintf(sysfs_path, sizeof(sysfs_path), "/sys/bus/rbd/devices/%d",
+- ct->rbd_bus_id);
+- bus_dev = udev_device_new_from_syspath(udev, sysfs_path);
+- if (!bus_dev)
+- goto free_udev;
+-
+- addr = udev_device_get_sysattr_value(bus_dev, "client_addr");
+- if (!addr) {
+- condlog(0, "rbd%d: Could not find client_addr in rbd sysfs. "
+- "Try updating kernel", ct->rbd_bus_id);
+- goto free_dev;
+- }
+-
+- ct->client_addr = strdup(addr);
+- if (!ct->client_addr)
+- goto free_dev;
+-
+- features_str = udev_device_get_sysattr_value(bus_dev, "features");
+- if (!features_str)
+- goto free_addr;
+- features = strtoll(features_str, NULL, 16);
+- if (!(features & RBD_FEATURE_EXCLUSIVE_LOCK)) {
+- condlog(3, "rbd%d: Exclusive lock not set.", ct->rbd_bus_id);
+- goto free_addr;
+- }
+-
+- config_info = udev_device_get_sysattr_value(bus_dev, "config_info");
+- if (!config_info)
+- goto free_addr;
+-
+- if (!strstr(config_info, "noshare")) {
+- condlog(3, "rbd%d: Only nonshared clients supported.",
+- ct->rbd_bus_id);
+- goto free_addr;
+- }
+-
+- if (strstr(config_info, "lock_on_read"))
+- ct->lock_on_read = 1;
+-
+- ct->config_info = strdup(config_info);
+- if (!ct->config_info)
+- goto free_addr;
+-
+- username = strstr(config_info, "name=");
+- if (username) {
+- char *end;
+- int len;
+-
+- username += 5;
+- end = strchr(username, ',');
+- if (!end)
+- goto free_info;
+- len = end - username;
+-
+- ct->username = malloc(len + 1);
+- if (!ct->username)
+- goto free_info;
+- strncpy(ct->username, username, len);
+- ct->username[len] = '\0';
+- }
+-
+- image = udev_device_get_sysattr_value(bus_dev, "name");
+- if (!image)
+- goto free_username;
+-
+- ct->image = strdup(image);
+- if (!ct->image)
+- goto free_username;
+-
+- pool = udev_device_get_sysattr_value(bus_dev, "pool");
+- if (!pool)
+- goto free_image;
+-
+- ct->pool = strdup(pool);
+- if (!ct->pool)
+- goto free_image;
+-
+- snap = udev_device_get_sysattr_value(bus_dev, "current_snap");
+- if (!snap)
+- goto free_pool;
+-
+- if (strcmp("-", snap)) {
+- ct->snap = strdup(snap);
+- if (!ct->snap)
+- goto free_pool;
+- }
+-
+- if (rados_create(&ct->cluster, NULL) < 0) {
+- condlog(0, "rbd%d: Could not create rados cluster",
+- ct->rbd_bus_id);
+- goto free_snap;
+- }
+-
+- if (rados_conf_read_file(ct->cluster, NULL) < 0) {
+- condlog(0, "rbd%d: Could not read rados conf", ct->rbd_bus_id);
+- goto shutdown_rados;
+- }
+-
+- ret = rados_connect(ct->cluster);
+- if (ret < 0) {
+- condlog(0, "rbd%d: Could not connect to rados cluster",
+- ct->rbd_bus_id);
+- goto shutdown_rados;
+- }
+-
+- udev_device_unref(bus_dev);
+- udev_unref(udev);
+-
+- condlog(3, "rbd%d checker init %s %s/%s@%s %s", ct->rbd_bus_id,
+- ct->client_addr, ct->pool, ct->image, ct->snap ? ct->snap : "-",
+- ct->username ? ct->username : "none");
+- return 0;
+-
+-shutdown_rados:
+- rados_shutdown(ct->cluster);
+-free_snap:
+- if (ct->snap)
+- free(ct->snap);
+-free_pool:
+- free(ct->pool);
+-free_image:
+- free(ct->image);
+-free_username:
+- if (ct->username)
+- free(ct->username);
+-free_info:
+- free(ct->config_info);
+-free_addr:
+- free(ct->client_addr);
+-free_dev:
+- udev_device_unref(bus_dev);
+-free_udev:
+- udev_unref(udev);
+-free_ct:
+- free(ct);
+- return 1;
+-}
+-
+-static void cleanup_context(struct rbd_checker_context *ct)
+-{
+- pthread_mutex_destroy(&ct->lock);
+- pthread_cond_destroy(&ct->active);
+- pthread_spin_destroy(&ct->hldr_lock);
+-
+- rados_shutdown(ct->cluster);
+-
+- if (ct->username)
+- free(ct->username);
+- if (ct->snap)
+- free(ct->snap);
+- free(ct->pool);
+- free(ct->image);
+- free(ct->config_info);
+- free(ct->client_addr);
+- free(ct);
+-}
+-
+-void libcheck_free(struct checker * c)
+-{
+- if (c->context) {
+- struct rbd_checker_context *ct = c->context;
+- int holders;
+- pthread_t thread;
+-
+- pthread_spin_lock(&ct->hldr_lock);
+- ct->holders--;
+- holders = ct->holders;
+- thread = ct->thread;
+- pthread_spin_unlock(&ct->hldr_lock);
+- if (holders)
+- pthread_cancel(thread);
+- else
+- cleanup_context(ct);
+- c->context = NULL;
+- }
+-}
+-
+-static int rbd_is_blacklisted(struct rbd_checker_context *ct, char *msg)
+-{
+- char *addr_tok, *start, *save;
+- const char *cmd[2];
+- char *blklist, *stat;
+- size_t blklist_len, stat_len;
+- int ret;
+- char *end;
+-
+- cmd[0] = "{\"prefix\": \"osd blacklist ls\"}";
+- cmd[1] = NULL;
+-
+- ret = rados_mon_command(ct->cluster, (const char **)cmd, 1, "", 0,
+- &blklist, &blklist_len, &stat, &stat_len);
+- if (ret < 0) {
+- RBD_MSG(msg, "checker failed: mon command failed %d", ret);
+- return ret;
+- }
+-
+- if (!blklist || !blklist_len)
+- goto free_bufs;
+-
+- /*
+- * parse list of addrs with the format
+- * ipv4:port/nonce date time\n
+- * or
+- * [ipv6]:port/nonce date time\n
+- */
+- ret = 0;
+- for (start = blklist; ; start = NULL) {
+- addr_tok = strtok_r(start, "\n", &save);
+- if (!addr_tok || !strlen(addr_tok))
+- break;
+-
+- end = strchr(addr_tok, ' ');
+- if (!end) {
+- RBD_MSG(msg, "checker failed: invalid blacklist %s",
+- addr_tok);
+- break;
+- }
+- *end = '\0';
+-
+- if (!strcmp(addr_tok, ct->client_addr)) {
+- ct->blacklisted = 1;
+- RBD_MSG(msg, "%s is blacklisted", ct->client_addr);
+- ret = 1;
+- break;
+- }
+- }
+-
+-free_bufs:
+- rados_buffer_free(blklist);
+- rados_buffer_free(stat);
+- return ret;
+-}
+-
+-static int rbd_check(struct rbd_checker_context *ct, char *msg)
+-{
+- if (ct->blacklisted || rbd_is_blacklisted(ct, msg) == 1)
+- return PATH_DOWN;
+-
+- RBD_MSG(msg, "checker reports path is up");
+- /*
+- * Path may have issues, but the ceph cluster is at least
+- * accepting IO, so we can attempt to do IO.
+- *
+- * TODO: in future versions, we can run other tests to
+- * verify OSDs and networks.
+- */
+- return PATH_UP;
+-}
+-
+-static int sysfs_write_rbd_bus(const char *which, const char *buf,
+- size_t buf_len)
+-{
+- char sysfs_path[PATH_SIZE];
+- int fd;
+- int r;
+-
+- /* we require newer kernels so single_major should always be there */
+- snprintf(sysfs_path, sizeof(sysfs_path),
+- "/sys/bus/rbd/%s_single_major", which);
+- fd = open(sysfs_path, O_WRONLY);
+- if (fd < 0)
+- return -errno;
+-
+- r = safe_write(fd, buf, buf_len);
+- close(fd);
+- return r;
+-}
+-
+-static int rbd_remap(struct rbd_checker_context *ct)
+-{
+- char *argv[11];
+- pid_t pid;
+- int ret = 0, i = 0;
+- int status;
+-
+- pid = fork();
+- switch (pid) {
+- case 0:
+- argv[i++] = "rbd";
+- argv[i++] = "map";
+- if (ct->lock_on_read)
+- argv[i++] = "-o noshare,lock_on_read";
+- else
+- argv[i++] = "-o noshare";
+- if (ct->username) {
+- argv[i++] = "--id";
+- argv[i++] = ct->username;
+- }
+- argv[i++] = "--pool";
+- argv[i++] = ct->pool;
+- if (ct->snap) {
+- argv[i++] = "--snap";
+- argv[i++] = ct->snap;
+- }
+- argv[i++] = ct->image;
+- argv[i] = NULL;
+-
+- ret = execvp(argv[0], argv);
+- condlog(0, "rbd%d: Error executing rbd: %s", ct->rbd_bus_id,
+- strerror(errno));
+- exit(-1);
+- case -1:
+- condlog(0, "rbd%d: fork failed: %s", ct->rbd_bus_id,
+- strerror(errno));
+- return -1;
+- default:
+- ret = -1;
+- wait(&status);
+- if (WIFEXITED(status)) {
+- status = WEXITSTATUS(status);
+- if (status == 0)
+- ret = 0;
+- else
+- condlog(0, "rbd%d: failed with %d",
+- ct->rbd_bus_id, status);
+- }
+- }
+-
+- return ret;
+-}
+-
+-static int sysfs_write_rbd_remove(const char *buf, int buf_len)
+-{
+- return sysfs_write_rbd_bus("remove", buf, buf_len);
+-}
+-
+-static int rbd_rm_blacklist(struct rbd_checker_context *ct)
+-{
+- const char *cmd[2];
+- char *stat, *cmd_str;
+- size_t stat_len;
+- int ret;
+-
+- ret = asprintf(&cmd_str, "{\"prefix\": \"osd blacklist\", \"blacklistop\": \"rm\", \"addr\": \"%s\"}",
+- ct->client_addr);
+- if (ret == -1)
+- return -ENOMEM;
+-
+- cmd[0] = cmd_str;
+- cmd[1] = NULL;
+-
+- ret = rados_mon_command(ct->cluster, (const char **)cmd, 1, "", 0,
+- NULL, NULL, &stat, &stat_len);
+- if (ret < 0) {
+- condlog(1, "rbd%d: repair failed to remove blacklist for %s %d",
+- ct->rbd_bus_id, ct->client_addr, ret);
+- goto free_cmd;
+- }
+-
+- condlog(1, "rbd%d: repair rm blacklist for %s",
+- ct->rbd_bus_id, ct->client_addr);
+- free(stat);
+-free_cmd:
+- free(cmd_str);
+- return ret;
+-}
+-
+-static int rbd_repair(struct rbd_checker_context *ct, char *msg)
+-{
+- char del[17];
+- int ret;
+-
+- if (!ct->blacklisted)
+- return PATH_UP;
+-
+- if (!ct->remapped) {
+- ret = rbd_remap(ct);
+- if (ret) {
+- RBD_MSG(msg, "repair failed to remap. Err %d", ret);
+- return PATH_DOWN;
+- }
+- }
+- ct->remapped = 1;
+-
+- snprintf(del, sizeof(del), "%d force", ct->rbd_bus_id);
+- ret = sysfs_write_rbd_remove(del, strlen(del) + 1);
+- if (ret) {
+- RBD_MSG(msg, "repair failed to clean up. Err %d", ret);
+- return PATH_DOWN;
+- }
+-
+- ret = rbd_rm_blacklist(ct);
+- if (ret) {
+- RBD_MSG(msg, "repair could not remove blacklist entry. Err %d",
+- ret);
+- return PATH_DOWN;
+- }
+-
+- ct->remapped = 0;
+- ct->blacklisted = 0;
+-
+- RBD_MSG(msg, "has been repaired");
+- return PATH_UP;
+-}
+-
+-#define rbd_thread_cleanup_push(ct) pthread_cleanup_push(cleanup_func, ct)
+-#define rbd_thread_cleanup_pop(ct) pthread_cleanup_pop(1)
+-
+-static void cleanup_func(void *data)
+-{
+- int holders;
+- struct rbd_checker_context *ct = data;
+- pthread_spin_lock(&ct->hldr_lock);
+- ct->holders--;
+- holders = ct->holders;
+- ct->thread = 0;
+- pthread_spin_unlock(&ct->hldr_lock);
+- if (!holders)
+- cleanup_context(ct);
+- rcu_unregister_thread();
+-}
+-
+-static void *rbd_thread(void *ctx)
+-{
+- struct rbd_checker_context *ct = ctx;
+- int state;
+-
+- /* This thread can be canceled, so setup clean up */
+- rbd_thread_cleanup_push(ct)
+- rcu_register_thread();
+- condlog(3, "rbd%d: thread starting up", ct->rbd_bus_id);
+-
+- ct->message[0] = '\0';
+-
+- /* checker start up */
+- pthread_mutex_lock(&ct->lock);
+- ct->state = PATH_PENDING;
+- pthread_mutex_unlock(&ct->lock);
+-
+- state = ct->fn(ct, ct->message);
+-
+- /* checker done */
+- pthread_mutex_lock(&ct->lock);
+- ct->state = state;
+- pthread_cond_signal(&ct->active);
+- pthread_mutex_unlock(&ct->lock);
+-
+- condlog(3, "rbd%d: thead finished, state %s", ct->rbd_bus_id,
+- checker_state_name(state));
+- rbd_thread_cleanup_pop(ct);
+- return ((void *)0);
+-}
+-
+-static void rbd_timeout(struct timespec *tsp)
+-{
+- clock_gettime(CLOCK_MONOTONIC, tsp);
+- tsp->tv_nsec += 1000 * 1000; /* 1 millisecond */
+- normalize_timespec(tsp);
+-}
+-
+-static int rbd_exec_fn(struct checker *c, thread_fn *fn)
+-{
+- struct rbd_checker_context *ct = c->context;
+- struct timespec tsp;
+- pthread_attr_t attr;
+- int rbd_status, r;
+-
+- if (c->sync)
+- return fn(ct, c->message);
+- /*
+- * Async mode
+- */
+- r = pthread_mutex_lock(&ct->lock);
+- if (r != 0) {
+- condlog(2, "rbd%d: mutex lock failed with %d", ct->rbd_bus_id,
+- r);
+- MSG(c, "rbd%d: thread failed to initialize", ct->rbd_bus_id);
+- return PATH_WILD;
+- }
+-
+- if (ct->running) {
+- /* Check if checker is still running */
+- if (ct->thread) {
+- condlog(3, "rbd%d: thread not finished",
+- ct->rbd_bus_id);
+- rbd_status = PATH_PENDING;
+- } else {
+- /* checker done */
+- ct->running = 0;
+- rbd_status = ct->state;
+- strncpy(c->message, ct->message, CHECKER_MSG_LEN);
+- c->message[CHECKER_MSG_LEN - 1] = '\0';
+- }
+- pthread_mutex_unlock(&ct->lock);
+- } else {
+- /* Start new checker */
+- ct->state = PATH_UNCHECKED;
+- ct->fn = fn;
+- pthread_spin_lock(&ct->hldr_lock);
+- ct->holders++;
+- pthread_spin_unlock(&ct->hldr_lock);
+- setup_thread_attr(&attr, 32 * 1024, 1);
+- r = pthread_create(&ct->thread, &attr, rbd_thread, ct);
+- if (r) {
+- pthread_mutex_unlock(&ct->lock);
+- ct->thread = 0;
+- ct->holders--;
+- condlog(3, "rbd%d failed to start rbd thread, using sync mode",
+- ct->rbd_bus_id);
+- return fn(ct, c->message);
+- }
+- pthread_attr_destroy(&attr);
+- rbd_timeout(&tsp);
+- r = pthread_cond_timedwait(&ct->active, &ct->lock, &tsp);
+- rbd_status = ct->state;
+- strncpy(c->message, ct->message,CHECKER_MSG_LEN);
+- c->message[CHECKER_MSG_LEN -1] = '\0';
+- pthread_mutex_unlock(&ct->lock);
+-
+- if (ct->thread &&
+- (rbd_status == PATH_PENDING || rbd_status == PATH_UNCHECKED)) {
+- condlog(3, "rbd%d: thread still running",
+- ct->rbd_bus_id);
+- ct->running = 1;
+- rbd_status = PATH_PENDING;
+- }
+- }
+-
+- return rbd_status;
+-}
+-
+-void libcheck_repair(struct checker * c)
+-{
+- struct rbd_checker_context *ct = c->context;
+-
+- if (!ct || !ct->blacklisted)
+- return;
+- rbd_exec_fn(c, rbd_repair);
+-}
+-
+-int libcheck_check(struct checker * c)
+-{
+- struct rbd_checker_context *ct = c->context;
+-
+- if (!ct)
+- return PATH_UNCHECKED;
+-
+- if (ct->blacklisted)
+- return PATH_DOWN;
+-
+- return rbd_exec_fn(c, rbd_check);
+-}
+diff --git a/libmultipath/checkers/rdac.c b/libmultipath/checkers/rdac.c
+index a643a4a..5104e4e 100644
+--- a/libmultipath/checkers/rdac.c
++++ b/libmultipath/checkers/rdac.c
+@@ -139,11 +139,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ static int
+ do_inq(int sg_fd, unsigned int pg_op, void *resp, int mx_resp_len,
+ unsigned int timeout)
+diff --git a/libmultipath/checkers/readsector0.c b/libmultipath/checkers/readsector0.c
+index 8fccb46..1c2a868 100644
+--- a/libmultipath/checkers/readsector0.c
++++ b/libmultipath/checkers/readsector0.c
+@@ -23,11 +23,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ int libcheck_check (struct checker * c)
+ {
+ unsigned char buf[4096];
+diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c
+index eb3348d..bf8486d 100644
+--- a/libmultipath/checkers/tur.c
++++ b/libmultipath/checkers/tur.c
+@@ -112,11 +112,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ #define TUR_MSG(fmt, args...) \
+ do { \
+ char msg[CHECKER_MSG_LEN]; \
+diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
+index 1ef1dfa..18ad0e2 100644
+--- a/libmultipath/discovery.c
++++ b/libmultipath/discovery.c
+@@ -1246,21 +1246,6 @@ nvme_sysfs_pathinfo (struct path * pp, vector hwtable)
+ }
+
+ static int
+-rbd_sysfs_pathinfo (struct path * pp, vector hwtable)
+-{
+- sprintf(pp->vendor_id, "Ceph");
+- sprintf(pp->product_id, "RBD");
+-
+- condlog(3, "%s: vendor = %s product = %s", pp->dev, pp->vendor_id,
+- pp->product_id);
+- /*
+- * set the hwe configlet pointer
+- */
+- pp->hwe = find_hwe(hwtable, pp->vendor_id, pp->product_id, NULL);
+- return 0;
+-}
+-
+-static int
+ ccw_sysfs_pathinfo (struct path * pp, vector hwtable)
+ {
+ struct udev_device *parent;
+@@ -1486,8 +1471,6 @@ sysfs_pathinfo(struct path * pp, vector hwtable)
+ pp->bus = SYSFS_BUS_CCW;
+ if (!strncmp(pp->dev,"sd", 2))
+ pp->bus = SYSFS_BUS_SCSI;
+- if (!strncmp(pp->dev,"rbd", 3))
+- pp->bus = SYSFS_BUS_RBD;
+ if (!strncmp(pp->dev,"nvme", 4))
+ pp->bus = SYSFS_BUS_NVME;
+
+@@ -1502,9 +1485,6 @@ sysfs_pathinfo(struct path * pp, vector hwtable)
+ } else if (pp->bus == SYSFS_BUS_CCISS) {
+ if (cciss_sysfs_pathinfo(pp, hwtable))
+ return 1;
+- } else if (pp->bus == SYSFS_BUS_RBD) {
+- if (rbd_sysfs_pathinfo(pp, hwtable))
+- return 1;
+ } else if (pp->bus == SYSFS_BUS_NVME) {
+ if (nvme_sysfs_pathinfo(pp, hwtable))
+ return 1;
+@@ -1753,53 +1733,6 @@ get_udev_uid(struct path * pp, char *uid_attribute, struct udev_device *udev)
+ }
+
+ static int
+-get_rbd_uid(struct path * pp)
+-{
+- struct udev_device *rbd_bus_dev;
+- int ret, rbd_bus_id;
+- const char *pool, *image, *snap;
+- char sysfs_path[PATH_SIZE];
+- uint64_t snap_id, max_snap_id = -3;
+-
+- ret = sscanf(pp->dev, "rbd%d", &rbd_bus_id);
+- if (ret != 1)
+- return -EINVAL;
+-
+- snprintf(sysfs_path, sizeof(sysfs_path), "/sys/bus/rbd/devices/%d",
+- rbd_bus_id);
+- rbd_bus_dev = udev_device_new_from_syspath(udev, sysfs_path);
+- if (!rbd_bus_dev)
+- return -ENODEV;
+-
+- ret = -EINVAL;
+- pool = udev_device_get_sysattr_value(rbd_bus_dev, "pool_id");
+- if (!pool)
+- goto free_dev;
+-
+- image = udev_device_get_sysattr_value(rbd_bus_dev, "image_id");
+- if (!image)
+- goto free_dev;
+-
+- snap = udev_device_get_sysattr_value(rbd_bus_dev, "snap_id");
+- if (!snap)
+- goto free_dev;
+- snap_id = strtoull(snap, NULL, 19);
+- if (snap_id >= max_snap_id)
+- ret = snprintf(pp->wwid, WWID_SIZE, "%s-%s", pool, image);
+- else
+- ret = snprintf(pp->wwid, WWID_SIZE, "%s-%s-%s", pool,
+- image, snap);
+- if (ret >= WWID_SIZE) {
+- condlog(0, "%s: wwid overflow", pp->dev);
+- ret = -EOVERFLOW;
+- }
+-
+-free_dev:
+- udev_device_unref(rbd_bus_dev);
+- return ret;
+-}
+-
+-static int
+ get_vpd_uid(struct path * pp)
+ {
+ struct udev_device *parent = pp->udev;
+@@ -1876,9 +1809,6 @@ get_uid (struct path * pp, int path_state, struct udev_device *udev)
+ } else
+ len = strlen(pp->wwid);
+ origin = "callout";
+- } else if (pp->bus == SYSFS_BUS_RBD) {
+- len = get_rbd_uid(pp);
+- origin = "sysfs";
+ } else {
+
+ if (udev && pp->uid_attribute) {
+diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
+index 148f0ba..d529bae 100644
+--- a/libmultipath/hwtable.c
++++ b/libmultipath/hwtable.c
+@@ -1000,18 +1000,6 @@ static struct hwentry default_hw[] = {
+ .prio_name = PRIO_ALUA,
+ },
+ /*
+- * Red Hat
+- *
+- * Maintainer: Mike Christie
+- * Mail: mchristi@redhat.com
+- */
+- {
+- .vendor = "Ceph",
+- .product = "RBD",
+- .checker_name = RBD,
+- .deferred_remove = DEFERRED_REMOVE_ON,
+- },
+- /*
+ * Kove
+ */
+ {
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index 0c1f174..31f4585 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -482,9 +482,6 @@ Check the path state for HP/COMPAQ Smart Array(CCISS) controllers.
+ .I none
+ Do not check the device, fallback to use the values retrieved from sysfs
+ .TP
+-.I rbd
+-Check if the path is in the Ceph blacklist and remap the path if it is.
+-.TP
+ The default is: \fBtur\fR
+ .RE
+ .
+diff --git a/multipathd/main.c b/multipathd/main.c
+index 0db88ee..d40c416 100644
+--- a/multipathd/main.c
++++ b/multipathd/main.c
+@@ -1783,15 +1783,6 @@ int update_path_groups(struct multipath *mpp, struct vectors *vecs, int refresh)
+ return 0;
+ }
+
+-void repair_path(struct path * pp)
+-{
+- if (pp->state != PATH_DOWN)
+- return;
+-
+- checker_repair(&pp->checker);
+- LOG_MSG(1, checker_message(&pp->checker));
+-}
+-
+ /*
+ * Returns '1' if the path has been checked, '-1' if it was blacklisted
+ * and '0' otherwise
+@@ -1972,7 +1963,6 @@ check_path (struct vectors * vecs, struct path * pp, int ticks)
+ pp->mpp->failback_tick = 0;
+
+ pp->mpp->stat_path_failures++;
+- repair_path(pp);
+ return 1;
+ }
+
+@@ -2071,7 +2061,6 @@ check_path (struct vectors * vecs, struct path * pp, int ticks)
+ }
+
+ pp->state = newstate;
+- repair_path(pp);
+
+ if (pp->mpp->wait_for_udev)
+ return 1;
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch
new file mode 100644
index 0000000..b98d310
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch
@@ -0,0 +1,543 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Mon, 4 Jun 2018 22:04:44 -0500
+Subject: [PATCH] mpathpersist: fix aptpl support
+
+The "Active Persist Through Power Loss" flag must be set whenever a key
+is registered. However, there is no way for multipathd to know if this
+was set by mpathpersist. The result is that if a path goes down and
+comes back up (or if it wasn't up when mpathpersist was first run)
+multipathd will clear the aptpl flag when it reregisters the key on it.
+
+To fix this, multipath.conf now accepts an optional ":aptpl" appended
+on the reservation_key value. If this is added to the reservation_key
+multipathd will set the aptpl flag when it reregisters the key. If
+reservation_key is set to "file", this will automatically be tracked
+in the /etc/multipath/prkeys file.
+
+To track this flag in the prkeys file, without changing the format
+I've made "0x<key>" stand for non-aptpl keys, and "0X<key>" stand
+for aptpl keys. Since previously, all keys used a lower-case x, this
+will default to the current behavior for existing keys. Obviously, the
+next time mpathpersist is run, this will be changed if --param-aptpl
+is used. Since there are no more flags that are in sg_persist that
+multipathd needs to care about in mpathpersist, there shouldn't need
+to be any more flags added to the prkeys file.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmpathpersist/mpath_persist.c | 3 ++-
+ libmpathpersist/mpath_updatepr.c | 11 +++++++----
+ libmpathpersist/mpathpr.h | 3 ++-
+ libmultipath/Makefile | 2 +-
+ libmultipath/config.h | 2 ++
+ libmultipath/dict.c | 23 +++++++++++++++++++----
+ libmultipath/dict.h | 3 ++-
+ libmultipath/prkey.c | 27 ++++++++++++++++++++++++---
+ libmultipath/prkey.h | 6 ++++--
+ libmultipath/propsel.c | 6 ++++--
+ libmultipath/structs.h | 1 +
+ libmultipath/util.c | 16 ++++++++++++++++
+ libmultipath/util.h | 1 +
+ multipath/multipath.conf.5 | 7 +++++--
+ multipathd/cli_handlers.c | 15 ++++++++++-----
+ multipathd/main.c | 1 +
+ 16 files changed, 101 insertions(+), 26 deletions(-)
+
+diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c
+index ca91c55..6e9e67f 100644
+--- a/libmpathpersist/mpath_persist.c
++++ b/libmpathpersist/mpath_persist.c
+@@ -344,7 +344,8 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope,
+ rq_servact == MPATH_PROUT_REG_SA) ||
+ rq_servact == MPATH_PROUT_REG_IGN_SA)) {
+ memcpy(&mpp->reservation_key, paramp->sa_key, 8);
+- if (update_prkey(alias, get_be64(mpp->reservation_key))) {
++ if (update_prkey_flags(alias, get_be64(mpp->reservation_key),
++ paramp->sa_flags)) {
+ condlog(0, "%s: failed to set prkey for multipathd.",
+ alias);
+ ret = MPATH_PR_DMMP_ERROR;
+diff --git a/libmpathpersist/mpath_updatepr.c b/libmpathpersist/mpath_updatepr.c
+index 8063e90..0aca28e 100644
+--- a/libmpathpersist/mpath_updatepr.c
++++ b/libmpathpersist/mpath_updatepr.c
+@@ -1,7 +1,5 @@
+ #include <stdio.h>
+ #include <unistd.h>
+-#include <errno.h>
+-
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <fcntl.h>
+@@ -11,6 +9,8 @@
+ #include <sys/un.h>
+ #include <poll.h>
+ #include <errno.h>
++#include <libudev.h>
++#include <mpath_persist.h>
+ #include "debug.h"
+ #include "mpath_cmd.h"
+ #include "uxsock.h"
+@@ -59,11 +59,14 @@ int update_prflag(char *mapname, int set) {
+ return do_update_pr(mapname, (set)? "setprstatus" : "unsetprstatus");
+ }
+
+-int update_prkey(char *mapname, uint64_t prkey) {
++int update_prkey_flags(char *mapname, uint64_t prkey, uint8_t sa_flags) {
+ char str[256];
++ char *flagstr = "";
+
++ if (sa_flags & MPATH_F_APTPL_MASK)
++ flagstr = ":aptpl";
+ if (prkey)
+- sprintf(str, "setprkey key %" PRIx64, prkey);
++ sprintf(str, "setprkey key %" PRIx64 "%s", prkey, flagstr);
+ else
+ sprintf(str, "unsetprkey");
+ return do_update_pr(mapname, str);
+diff --git a/libmpathpersist/mpathpr.h b/libmpathpersist/mpathpr.h
+index 72feb60..5ea8cd6 100644
+--- a/libmpathpersist/mpathpr.h
++++ b/libmpathpersist/mpathpr.h
+@@ -46,7 +46,8 @@ int send_prout_activepath(char * dev, int rq_servact, int rq_scope,
+ unsigned int rq_type, struct prout_param_descriptor * paramp, int noisy);
+
+ int update_prflag(char *mapname, int set);
+-int update_prkey(char *mapname, uint64_t prkey);
++int update_prkey_flags(char *mapname, uint64_t prkey, uint8_t sa_flags);
++#define update_prkey(mapname, prkey) update_prkey_flags(mapname, prkey, 0)
+ void * mpath_alloc_prin_response(int prin_sa);
+ int update_map_pr(struct multipath *mpp);
+
+diff --git a/libmultipath/Makefile b/libmultipath/Makefile
+index f51786d..33f5269 100644
+--- a/libmultipath/Makefile
++++ b/libmultipath/Makefile
+@@ -7,7 +7,7 @@ SONAME = 0
+ DEVLIB = libmultipath.so
+ LIBS = $(DEVLIB).$(SONAME)
+
+-CFLAGS += $(LIB_CFLAGS) -I$(mpathcmddir)
++CFLAGS += $(LIB_CFLAGS) -I$(mpathcmddir) -I$(mpathpersistdir)
+
+ LIBDEPS += -lpthread -ldl -ldevmapper -ludev -L$(mpathcmddir) -lmpathcmd -lurcu -laio
+
+diff --git a/libmultipath/config.h b/libmultipath/config.h
+index 1bf708a..fcbe3fc 100644
+--- a/libmultipath/config.h
++++ b/libmultipath/config.h
+@@ -98,6 +98,7 @@ struct mpentry {
+ char * prio_args;
+ int prkey_source;
+ struct be64 reservation_key;
++ uint8_t sa_flags;
+ int pgpolicy;
+ int pgfailback;
+ int rr_weight;
+@@ -197,6 +198,7 @@ struct config {
+ int prkey_source;
+ int all_tg_pt;
+ struct be64 reservation_key;
++ uint8_t sa_flags;
+
+ vector keywords;
+ vector mptable;
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 2557b8a..7ad0f5a 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -22,6 +22,8 @@
+ #include "util.h"
+ #include <errno.h>
+ #include <inttypes.h>
++#include <libudev.h>
++#include <mpath_persist.h>
+ #include "mpath_cmd.h"
+ #include "dict.h"
+
+@@ -1012,10 +1014,12 @@ snprint_def_log_checker_err (struct config *conf, char * buff, int len,
+ }
+
+ static int
+-set_reservation_key(vector strvec, struct be64 *be64_ptr, int *source_ptr)
++set_reservation_key(vector strvec, struct be64 *be64_ptr, uint8_t *flags_ptr,
++ int *source_ptr)
+ {
+ char *buff;
+ uint64_t prkey;
++ uint8_t sa_flags;
+
+ buff = set_value(strvec);
+ if (!buff)
+@@ -1023,35 +1027,43 @@ set_reservation_key(vector strvec, struct be64 *be64_ptr, int *source_ptr)
+
+ if (strcmp(buff, "file") == 0) {
+ *source_ptr = PRKEY_SOURCE_FILE;
++ *flags_ptr = 0;
+ put_be64(*be64_ptr, 0);
+ FREE(buff);
+ return 0;
+ }
+
+- if (parse_prkey(buff, &prkey) != 0) {
++ if (parse_prkey_flags(buff, &prkey, &sa_flags) != 0) {
+ FREE(buff);
+ return 1;
+ }
+ *source_ptr = PRKEY_SOURCE_CONF;
++ *flags_ptr = sa_flags;
+ put_be64(*be64_ptr, prkey);
+ FREE(buff);
+ return 0;
+ }
+
+ int
+-print_reservation_key(char * buff, int len, struct be64 key, int source)
++print_reservation_key(char * buff, int len, struct be64 key, uint8_t flags,
++ int source)
+ {
++ char *flagstr = "";
+ if (source == PRKEY_SOURCE_NONE)
+ return 0;
+ if (source == PRKEY_SOURCE_FILE)
+ return snprintf(buff, len, "file");
+- return snprintf(buff, len, "0x%" PRIx64, get_be64(key));
++ if (flags & MPATH_F_APTPL_MASK)
++ flagstr = ":aptpl";
++ return snprintf(buff, len, "0x%" PRIx64 "%s", get_be64(key),
++ flagstr);
+ }
+
+ static int
+ def_reservation_key_handler(struct config *conf, vector strvec)
+ {
+ return set_reservation_key(strvec, &conf->reservation_key,
++ &conf->sa_flags,
+ &conf->prkey_source);
+ }
+
+@@ -1060,6 +1072,7 @@ snprint_def_reservation_key (struct config *conf, char * buff, int len,
+ const void * data)
+ {
+ return print_reservation_key(buff, len, conf->reservation_key,
++ conf->sa_flags,
+ conf->prkey_source);
+ }
+
+@@ -1070,6 +1083,7 @@ mp_reservation_key_handler(struct config *conf, vector strvec)
+ if (!mpe)
+ return 1;
+ return set_reservation_key(strvec, &mpe->reservation_key,
++ &mpe->sa_flags,
+ &mpe->prkey_source);
+ }
+
+@@ -1079,6 +1093,7 @@ snprint_mp_reservation_key (struct config *conf, char * buff, int len,
+ {
+ const struct mpentry * mpe = (const struct mpentry *)data;
+ return print_reservation_key(buff, len, mpe->reservation_key,
++ mpe->sa_flags,
+ mpe->prkey_source);
+ }
+
+diff --git a/libmultipath/dict.h b/libmultipath/dict.h
+index 7564892..a40ac66 100644
+--- a/libmultipath/dict.h
++++ b/libmultipath/dict.h
+@@ -15,6 +15,7 @@ int print_pgpolicy(char *buff, int len, long v);
+ int print_no_path_retry(char *buff, int len, long v);
+ int print_fast_io_fail(char *buff, int len, long v);
+ int print_dev_loss(char *buff, int len, unsigned long v);
+-int print_reservation_key(char * buff, int len, struct be64 key, int source);
++int print_reservation_key(char * buff, int len, struct be64 key, uint8_t
++ flags, int source);
+ int print_off_int_undef(char *buff, int len, long v);
+ #endif /* _DICT_H */
+diff --git a/libmultipath/prkey.c b/libmultipath/prkey.c
+index 89b90ed..d645f81 100644
+--- a/libmultipath/prkey.c
++++ b/libmultipath/prkey.c
+@@ -11,6 +11,8 @@
+ #include <string.h>
+ #include <inttypes.h>
+ #include <errno.h>
++#include <libudev.h>
++#include <mpath_persist.h>
+
+ #define PRKEY_READ 0
+ #define PRKEY_WRITE 1
+@@ -108,7 +110,8 @@ static int do_prkey(int fd, char *wwid, char *keystr, int cmd)
+ return 0;
+ }
+
+-int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey)
++int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey,
++ uint8_t *sa_flags)
+ {
+ int fd;
+ int unused;
+@@ -124,6 +127,9 @@ int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey)
+ ret = do_prkey(fd, mpp->wwid, keystr, PRKEY_READ);
+ if (ret)
+ goto out_file;
++ *sa_flags = 0;
++ if (strchr(keystr, 'X'))
++ *sa_flags = MPATH_F_APTPL_MASK;
+ ret = !!parse_prkey(keystr, prkey);
+ out_file:
+ close(fd);
+@@ -131,7 +137,8 @@ out:
+ return ret;
+ }
+
+-int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey)
++int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey,
++ uint8_t sa_flags)
+ {
+ int fd;
+ int can_write = 1;
+@@ -141,6 +148,12 @@ int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey)
+ if (!strlen(mpp->wwid))
+ goto out;
+
++ if (sa_flags & ~MPATH_F_APTPL_MASK) {
++ condlog(0, "unsupported pr flags, 0x%x",
++ sa_flags & ~MPATH_F_APTPL_MASK);
++ sa_flags &= MPATH_F_APTPL_MASK;
++ }
++
+ fd = open_file(conf->prkeys_file, &can_write, PRKEYS_FILE_HEADER);
+ if (fd < 0)
+ goto out;
+@@ -149,7 +162,15 @@ int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey)
+ goto out_file;
+ }
+ if (prkey) {
+- snprintf(keystr, PRKEY_SIZE, "0x%016" PRIx64, prkey);
++ /* using the capitalization of the 'x' is a hack, but
++ * it's unlikely that mpath_persist will support more options
++ * since sg_persist doesn't, and this lets us keep the
++ * same file format as before instead of needing to change
++ * the format of the prkeys file */
++ if (sa_flags)
++ snprintf(keystr, PRKEY_SIZE, "0X%016" PRIx64, prkey);
++ else
++ snprintf(keystr, PRKEY_SIZE, "0x%016" PRIx64, prkey);
+ keystr[PRKEY_SIZE - 1] = '\0';
+ ret = do_prkey(fd, mpp->wwid, keystr, PRKEY_WRITE);
+ }
+diff --git a/libmultipath/prkey.h b/libmultipath/prkey.h
+index 4028e70..6739191 100644
+--- a/libmultipath/prkey.h
++++ b/libmultipath/prkey.h
+@@ -13,7 +13,9 @@
+ "# prkey wwid\n" \
+ "#\n"
+
+-int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey);
+-int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey);
++int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey,
++ uint8_t sa_flags);
++int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey,
++ uint8_t *sa_flags);
+
+ #endif /* _PRKEY_H */
+diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
+index 9ca1355..62a6893 100644
+--- a/libmultipath/propsel.c
++++ b/libmultipath/propsel.c
+@@ -106,6 +106,7 @@ do { \
+ if (src && src->prkey_source != PRKEY_SOURCE_NONE) { \
+ mp->prkey_source = src->prkey_source; \
+ mp->reservation_key = src->reservation_key; \
++ mp->sa_flags = src->sa_flags; \
+ origin = msg; \
+ goto out; \
+ } \
+@@ -703,18 +704,19 @@ int select_reservation_key(struct config *conf, struct multipath *mp)
+ do_prkey_set(mp->mpe, multipaths_origin);
+ do_prkey_set(conf, conf_origin);
+ put_be64(mp->reservation_key, 0);
++ mp->sa_flags = 0;
+ mp->prkey_source = PRKEY_SOURCE_NONE;
+ return 0;
+ out:
+ if (mp->prkey_source == PRKEY_SOURCE_FILE) {
+ from_file = " (from prkeys file)";
+- if (get_prkey(conf, mp, &prkey) != 0)
++ if (get_prkey(conf, mp, &prkey, &mp->sa_flags) != 0)
+ put_be64(mp->reservation_key, 0);
+ else
+ put_be64(mp->reservation_key, prkey);
+ }
+ print_reservation_key(buff, PRKEY_SIZE, mp->reservation_key,
+- mp->prkey_source);
++ mp->sa_flags, mp->prkey_source);
+ condlog(3, "%s: reservation_key = %s %s%s", mp->alias, buff, origin,
+ from_file);
+ return 0;
+diff --git a/libmultipath/structs.h b/libmultipath/structs.h
+index 0194b1e..987479f 100644
+--- a/libmultipath/structs.h
++++ b/libmultipath/structs.h
+@@ -367,6 +367,7 @@ struct multipath {
+ /* persistent management data*/
+ int prkey_source;
+ struct be64 reservation_key;
++ uint8_t sa_flags;
+ unsigned char prflag;
+ int all_tg_pt;
+ struct gen_multipath generic_mp;
+diff --git a/libmultipath/util.c b/libmultipath/util.c
+index 7251ad0..8d8fcc8 100644
+--- a/libmultipath/util.c
++++ b/libmultipath/util.c
+@@ -10,6 +10,8 @@
+ #include <dirent.h>
+ #include <unistd.h>
+ #include <errno.h>
++#include <libudev.h>
++#include <mpath_persist.h>
+
+ #include "util.h"
+ #include "debug.h"
+@@ -435,6 +437,20 @@ int parse_prkey(char *ptr, uint64_t *prkey)
+ return 0;
+ }
+
++int parse_prkey_flags(char *ptr, uint64_t *prkey, uint8_t *flags)
++{
++ char *flagstr;
++
++ flagstr = strchr(ptr, ':');
++ *flags = 0;
++ if (flagstr) {
++ *flagstr++ = '\0';
++ if (strlen(flagstr) == 5 && strcmp(flagstr, "aptpl") == 0)
++ *flags = MPATH_F_APTPL_MASK;
++ }
++ return parse_prkey(ptr, prkey);
++}
++
+ int safe_write(int fd, const void *buf, size_t count)
+ {
+ while (count > 0) {
+diff --git a/libmultipath/util.h b/libmultipath/util.h
+index a3ab894..56cec76 100644
+--- a/libmultipath/util.h
++++ b/libmultipath/util.h
+@@ -19,6 +19,7 @@ void setup_thread_attr(pthread_attr_t *attr, size_t stacksize, int detached);
+ int systemd_service_enabled(const char *dev);
+ int get_linux_version_code(void);
+ int parse_prkey(char *ptr, uint64_t *prkey);
++int parse_prkey_flags(char *ptr, uint64_t *prkey, uint8_t *flags);
+ int safe_write(int fd, const void *buf, size_t count);
+
+ #define KERNEL_VERSION(maj, min, ptc) ((((maj) * 256) + (min)) * 256 + (ptc))
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index 31f4585..30d8598 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -726,14 +726,17 @@ This is the service action reservation key used by mpathpersist. It must be
+ set for all multipath devices using persistent reservations, and it must be
+ the same as the RESERVATION KEY field of the PERSISTENT RESERVE OUT parameter
+ list which contains an 8-byte value provided by the application client to the
+-device server to identify the I_T nexus.
++device server to identify the I_T nexus. If the \fI--param-aptpl\fR option is
++used when registering the key with mpathpersist, \fB:aptpl\fR must be appended
++to the end of the reservation key.
+ .RS
+ .PP
+ Alternatively, this can be set to \fBfile\fR, which will store the RESERVATION
+ KEY registered by mpathpersist in the \fIprkeys_file\fR. multipathd will then
+ use this key to register additional paths as they appear. When the
+ registration is removed, the RESERVATION KEY is removed from the
+-\fIprkeys_file\fR.
++\fIprkeys_file\fR. The prkeys file will automatically keep track of whether
++the key was registered with \fI--param-aptpl\fR.
+ .TP
+ The default is: \fB<unset>\fR
+ .RE
+diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
+index ba50fb8..6452796 100644
+--- a/multipathd/cli_handlers.c
++++ b/multipathd/cli_handlers.c
+@@ -21,6 +21,7 @@
+ #include "sysfs.h"
+ #include <errno.h>
+ #include <libudev.h>
++#include <mpath_persist.h>
+ #include "util.h"
+ #include "prkey.h"
+ #include "propsel.h"
+@@ -1463,6 +1464,7 @@ cli_getprkey(void * v, char ** reply, int * len, void * data)
+ struct multipath * mpp;
+ struct vectors * vecs = (struct vectors *)data;
+ char *mapname = get_keyparam(v, MAP);
++ char *flagstr = "";
+
+ mapname = convert_dev(mapname, 0);
+ condlog(3, "%s: get persistent reservation key (operator)", mapname);
+@@ -1478,8 +1480,10 @@ cli_getprkey(void * v, char ** reply, int * len, void * data)
+ *len = strlen(*reply) + 1;
+ return 0;
+ }
+- snprintf(*reply, 20, "0x%" PRIx64 "\n",
+- get_be64(mpp->reservation_key));
++ if (mpp->sa_flags & MPATH_F_APTPL_MASK)
++ flagstr = ":aptpl";
++ snprintf(*reply, 20, "0x%" PRIx64 "%s\n",
++ get_be64(mpp->reservation_key), flagstr);
+ (*reply)[19] = '\0';
+ *len = strlen(*reply) + 1;
+ return 0;
+@@ -1503,7 +1507,7 @@ cli_unsetprkey(void * v, char ** reply, int * len, void * data)
+
+ conf = get_multipath_config();
+ pthread_cleanup_push(put_multipath_config, conf);
+- ret = set_prkey(conf, mpp, 0);
++ ret = set_prkey(conf, mpp, 0, 0);
+ pthread_cleanup_pop(1);
+
+ return ret;
+@@ -1517,6 +1521,7 @@ cli_setprkey(void * v, char ** reply, int * len, void * data)
+ char *mapname = get_keyparam(v, MAP);
+ char *keyparam = get_keyparam(v, KEY);
+ uint64_t prkey;
++ uint8_t flags;
+ int ret;
+ struct config *conf;
+
+@@ -1527,14 +1532,14 @@ cli_setprkey(void * v, char ** reply, int * len, void * data)
+ if (!mpp)
+ return 1;
+
+- if (parse_prkey(keyparam, &prkey) != 0) {
++ if (parse_prkey_flags(keyparam, &prkey, &flags) != 0) {
+ condlog(0, "%s: invalid prkey : '%s'", mapname, keyparam);
+ return 1;
+ }
+
+ conf = get_multipath_config();
+ pthread_cleanup_push(put_multipath_config, conf);
+- ret = set_prkey(conf, mpp, prkey);
++ ret = set_prkey(conf, mpp, prkey, flags);
+ pthread_cleanup_pop(1);
+
+ return ret;
+diff --git a/multipathd/main.c b/multipathd/main.c
+index d40c416..6b1e782 100644
+--- a/multipathd/main.c
++++ b/multipathd/main.c
+@@ -3089,6 +3089,7 @@ void * mpath_pr_event_handler_fn (void * pathp )
+
+ param= malloc(sizeof(struct prout_param_descriptor));
+ memset(param, 0 , sizeof(struct prout_param_descriptor));
++ param->sa_flags = mpp->sa_flags;
+ memcpy(param->sa_key, &mpp->reservation_key, 8);
+ param->num_transportid = 0;
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch
new file mode 100644
index 0000000..5a3fd83
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch
@@ -0,0 +1,34 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Tue, 5 Jun 2018 15:31:55 -0500
+Subject: [PATCH] multipath: don't check timestamps without a path
+
+If a path was blacklisted, pathvec could exist but have no path in it.
+print_cmd_valid wasn't checking this before calling
+find_multipaths_check_timeout(). This was causing it to dereference a
+NULL pointer in these cases.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ multipath/main.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/multipath/main.c b/multipath/main.c
+index c69e996..3f0a6aa 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -482,10 +482,8 @@ static int print_cmd_valid(int k, const vector pathvec,
+ pp, pp->find_multipaths_timeout, &until);
+ if (wait != FIND_MULTIPATHS_WAITING)
+ k = 1;
+- } else if (pathvec != NULL) {
+- pp = VECTOR_SLOT(pathvec, 0);
++ } else if (pathvec != NULL && (pp = VECTOR_SLOT(pathvec, 0)))
+ wait = find_multipaths_check_timeout(pp, 0, &until);
+- }
+ if (wait == FIND_MULTIPATHS_WAITING)
+ printf("FIND_MULTIPATHS_WAIT_UNTIL=\"%ld.%06ld\"\n",
+ until.tv_sec, until.tv_nsec/1000);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch
new file mode 100644
index 0000000..23908fa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch
@@ -0,0 +1,35 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 8 Jun 2018 17:12:37 -0500
+Subject: [PATCH] libmultipath: fix detect alua corner case
+
+If retain_attach_hw_handler = no, then the paths tpgs state will never
+be checked, and the multipath device will always select the alua
+handler, if no other handler is selected. the paths tpgs state
+should be checked, regardless of the retain_hwhandler value.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/propsel.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
+index 62a6893..f626c74 100644
+--- a/libmultipath/propsel.c
++++ b/libmultipath/propsel.c
+@@ -403,9 +403,11 @@ int select_hwhandler(struct config *conf, struct multipath *mp)
+ bool all_tpgs = true;
+
+ dh_state = &handler[2];
++
++ vector_foreach_slot(mp->paths, pp, i)
++ all_tpgs = all_tpgs && (pp->tpgs > 0);
+ if (mp->retain_hwhandler != RETAIN_HWHANDLER_OFF) {
+ vector_foreach_slot(mp->paths, pp, i) {
+- all_tpgs = all_tpgs && (pp->tpgs > 0);
+ if (get_dh_state(pp, dh_state, sizeof(handler) - 2) > 0
+ && strcmp(dh_state, "detached")) {
+ memcpy(handler, "1 ", 2);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch
new file mode 100644
index 0000000..624f45e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch
@@ -0,0 +1,39 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 8 Jun 2018 17:23:07 -0500
+Subject: [PATCH] multipath: fix setting conf->version
+
+Commit d3b71498 stopped multipath from setting conf->version. Instead,
+it was always being set to 0.0.0. Multipathd was still setting this
+correctly.
+
+Fixes: d3b71498 "multipath: fix rcu thread cancellation hang"
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/devmapper.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c
+index f2befad..8136d15 100644
+--- a/libmultipath/devmapper.c
++++ b/libmultipath/devmapper.c
+@@ -245,13 +245,13 @@ void libmp_dm_init(void)
+ int verbosity;
+ unsigned int version[3];
+
++ if (dm_prereq(version))
++ exit(1);
+ conf = get_multipath_config();
+ verbosity = conf->verbosity;
+- memcpy(version, conf->version, sizeof(version));
++ memcpy(conf->version, version, sizeof(version));
+ put_multipath_config(conf);
+ dm_init(verbosity);
+- if (dm_prereq(version))
+- exit(1);
+ dm_udev_set_sync_support(libmp_dm_udev_sync);
+ }
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
new file mode 100644
index 0000000..4ef3e70
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
@@ -0,0 +1,82 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 13 Apr 2017 07:22:23 -0500
+Subject: [PATCH] RH: fixup udev rules for redhat
+
+The multipath rules need to run after scsi_id is run. This means moving
+them after 60-persistent-storage.rules for redhat. Redhat also uses a
+different naming scheme for partitions than SuSE. Also, there are some
+false warnings that gcc throws because of the changed options. Fix these
+too.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ Makefile.inc | 2 +-
+ kpartx/kpartx.rules | 2 +-
+ multipath/Makefile | 4 ++--
+ multipath/main.c | 2 +-
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index af2f5ba..0b271ea 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -51,7 +51,7 @@ endif
+ prefix =
+ exec_prefix = $(prefix)
+ usr_prefix = $(prefix)
+-bindir = $(exec_prefix)/sbin
++bindir = $(exec_prefix)/usr/sbin
+ libudevdir = $(prefix)/$(SYSTEMDPATH)/udev
+ udevrulesdir = $(libudevdir)/rules.d
+ multipathdir = $(TOPDIR)/libmultipath
+diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
+index 8f99049..8a3a171 100644
+--- a/kpartx/kpartx.rules
++++ b/kpartx/kpartx.rules
+@@ -32,6 +32,6 @@ LABEL="mpath_kpartx_end"
+ GOTO="kpartx_end"
+
+ LABEL="run_kpartx"
+-RUN+="/sbin/kpartx -un -p -part /dev/$name"
++RUN+="/sbin/kpartx -un /dev/$name"
+
+ LABEL="kpartx_end"
+diff --git a/multipath/Makefile b/multipath/Makefile
+index 0828a8f..b9bbb3c 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -24,7 +24,7 @@ install:
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+@@ -33,7 +33,7 @@ install:
+ uninstall:
+ $(RM) $(DESTDIR)$(bindir)/$(EXEC)
+ $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
+- $(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+ $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
+
+diff --git a/multipath/main.c b/multipath/main.c
+index 3f0a6aa..6fdde03 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -389,7 +389,7 @@ static int find_multipaths_check_timeout(const struct path *pp, long tmo,
+ struct timespec now, ftimes[2], tdiff;
+ struct stat st;
+ long fd;
+- int r, err, retries = 0;
++ int r, err = 0, retries = 0;
+
+ clock_gettime(CLOCK_REALTIME, &now);
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
new file mode 100644
index 0000000..451c524
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
@@ -0,0 +1,87 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 2 Jul 2014 12:49:53 -0500
+Subject: [PATCH] RH: Remove the property blacklist exception builtin
+
+Multipath set the default property blacklist exceptions to
+(ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal
+devices. These devices may never have multiple paths, but it is nice
+to be able to set multipath up on them all the same. This patch simply
+removes the default, and makes it so that if no property
+blacklist_exception is given, then devices aren't failed for not matching
+it.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/blacklist.c | 15 ++++++---------
+ multipath/multipath.conf.5 | 14 ++++++++------
+ 2 files changed, 14 insertions(+), 15 deletions(-)
+
+diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
+index ee396e2..19d4697 100644
+--- a/libmultipath/blacklist.c
++++ b/libmultipath/blacklist.c
+@@ -181,12 +181,6 @@ setup_default_blist (struct config * conf)
+ if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
+ return 1;
+
+- str = STRDUP("(SCSI_IDENT_|ID_WWN)");
+- if (!str)
+- return 1;
+- if (store_ble(conf->elist_property, str, ORIGIN_DEFAULT))
+- return 1;
+-
+ vector_foreach_slot (conf->hwtable, hwe, i) {
+ if (hwe->bl_product) {
+ if (_blacklist_device(conf->blist_device, hwe->vendor,
+@@ -390,9 +384,12 @@ filter_property(struct config * conf, struct udev_device * udev)
+ * This is the inverse of the 'normal' matching;
+ * the environment variable _has_ to match.
+ */
+- log_filter(devname, NULL, NULL, NULL, NULL,
+- MATCH_PROPERTY_BLIST_MISSING);
+- return MATCH_PROPERTY_BLIST_MISSING;
++ if (VECTOR_SIZE(conf->elist_property)) {
++ log_filter(devname, NULL, NULL, NULL, NULL,
++ MATCH_PROPERTY_BLIST_MISSING);
++ return MATCH_PROPERTY_BLIST_MISSING;
++ }
++ return 0;
+ }
+
+ void
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index 30d8598..c45da9f 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -1179,10 +1179,6 @@ The \fIWorld Wide Identification\fR of a device.
+ .TP
+ .B property
+ Regular expression of the udev property to be whitelisted.
+-.RS
+-.TP
+-The default is: \fB(SCSI_IDENT_|ID_WWN)\fR
+-.RE
+ .TP
+ .B device
+ Subsection for the device description. This subsection recognizes the
+@@ -1193,8 +1189,14 @@ keywords. For a full description of these keywords please see the \fIdevices\fR
+ section description.
+ .LP
+ The \fIproperty\fR whitelist handling is different from the usual
+-handling in the sense that the device \fIhas\fR to have a udev property that
+-matches the whitelist, otherwise the device will be blacklisted. In these cases the message \fIblacklisted, udev property missing\fR will be displayed.
++handling in the sense that if the propery whitelist is set, the device
++\fIhas\fR to have a udev property that matches the whitelist, otherwise the
++device will be blacklisted. In these cases the message \fIblacklisted, udev
++property missing\fR will be displayed. For example settting the
++property blacklist_exception to \fB(SCSI_IDENT_|ID_WWN)\fR will blacklist
++all devices that have no udev property whose name regex matches either
++\fBSCSI_IDENT_\fR or \fBID_WWN\fR. This works to exclude most
++non-multipathable devices.
+ .
+ .
+ .\" ----------------------------------------------------------------------------
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
new file mode 100644
index 0000000..886f1c8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
@@ -0,0 +1,106 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 15 Oct 2014 10:39:30 -0500
+Subject: [PATCH] RH: don't start without a config file
+
+If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist
+all devices when running multipath. A completely blank configuration file
+is almost never what users want. Also, people may have the multipath
+packages installed but don't want to use them. This patch provides a
+simple way to disable multipath. Simply removing or renaming
+/etc/multipath.conf will keep multipath from doing anything.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/config.c | 15 +++++++++++++++
+ libmultipath/config.h | 1 +
+ multipath/multipath.rules | 1 +
+ multipathd/multipathd.8 | 2 ++
+ multipathd/multipathd.service | 1 +
+ 5 files changed, 20 insertions(+)
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index 5872927..0607403 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -26,6 +26,7 @@
+ #include "devmapper.h"
+ #include "mpath_cmd.h"
+ #include "propsel.h"
++#include "version.h"
+
+ static int
+ hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2)
+@@ -658,6 +659,20 @@ load_config (char * file)
+ factorize_hwtable(conf->hwtable, builtin_hwtable_size);
+ }
+
++ } else {
++ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
++ if (conf->blist_devnode == NULL) {
++ conf->blist_devnode = vector_alloc();
++ if (!conf->blist_devnode) {
++ condlog(0, "cannot allocate blacklist\n");
++ goto out;
++ }
++ }
++ if (store_ble(conf->blist_devnode, strdup(".*"),
++ ORIGIN_NO_CONFIG)) {
++ condlog(0, "cannot store default no-config blacklist\n");
++ goto out;
++ }
+ }
+
+ conf->processed_main_config = 1;
+diff --git a/libmultipath/config.h b/libmultipath/config.h
+index fcbe3fc..3a42435 100644
+--- a/libmultipath/config.h
++++ b/libmultipath/config.h
+@@ -9,6 +9,7 @@
+
+ #define ORIGIN_DEFAULT 0
+ #define ORIGIN_CONFIG 1
++#define ORIGIN_NO_CONFIG 2
+
+ /*
+ * In kernel, fast_io_fail == 0 means immediate failure on rport delete.
+diff --git a/multipath/multipath.rules b/multipath/multipath.rules
+index d658073..b3f54d7 100644
+--- a/multipath/multipath.rules
++++ b/multipath/multipath.rules
+@@ -9,6 +9,7 @@ IMPORT{cmdline}="nompath"
+ ENV{nompath}=="?*", GOTO="end_mpath"
+ IMPORT{cmdline}="multipath"
+ ENV{multipath}=="off", GOTO="end_mpath"
++TEST!="/etc/multipath.conf", GOTO="end_mpath"
+
+ ENV{DEVTYPE}!="partition", GOTO="test_dev"
+ IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
+diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8
+index e78ac9e..09cdead 100644
+--- a/multipathd/multipathd.8
++++ b/multipathd/multipathd.8
+@@ -38,6 +38,8 @@ map regains its maximum performance and redundancy.
+ This daemon executes the external \fBmultipath\fR tool when events occur.
+ In turn, the multipath tool signals the multipathd daemon when it is done with
+ devmap reconfiguration, so that it can refresh its failed path list.
++
++In this Linux distribution, multipathd does not run unless a /etc/multipath.conf file exists.
+ .
+ .
+ .\" ----------------------------------------------------------------------------
+diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
+index ba24983..17434ce 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -4,6 +4,7 @@ Wants=systemd-udev-trigger.service systemd-udev-settle.service
+ Before=iscsi.service iscsid.service lvm2-activation-early.service
+ Before=local-fs-pre.target blk-availability.service
+ After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service
++ConditionPathExists=/etc/multipath.conf
+ DefaultDependencies=no
+ Conflicts=shutdown.target
+ ConditionKernelCommandLine=!nompath
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
new file mode 100644
index 0000000..9330bf0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
@@ -0,0 +1,52 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 19 Apr 2017 06:10:01 -0500
+Subject: [PATCH] RH: use rpm optflags if present
+
+Use the passed in optflags when compiling as an RPM, and keep the
+default flags as close as possible to the current fedora flags, while
+still being generic.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ Makefile.inc | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 0b271ea..5ff69a3 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -85,14 +85,22 @@ TEST_CC_OPTION = $(shell \
+ echo "$(2)"; \
+ fi)
+
+-STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
+-
+-OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \
+- -Werror=implicit-function-declaration -Werror=format-security \
+- -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
+- -Werror=cast-qual -Werror=discarded-qualifiers \
+- -Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \
+- --param=ssp-buffer-size=4
++ifndef RPM_OPT_FLAGS
++ STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
++ OPTFLAGS = -O2 -g -pipe -Wall -Werror=format-security \
++ -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
++ $(STACKPROT) --param=ssp-buffer-size=4 \
++ -grecord-gcc-switches
++ ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-hardened-cc1 && echo 1),1)
++ OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
++ endif
++else
++ OPTFLAGS = $(RPM_OPT_FLAGS)
++endif
++OPTFLAGS += -Wextra -Wstrict-prototypes -Wformat=2 -Werror=implicit-int \
++ -Werror=implicit-function-declaration -Wno-sign-compare \
++ -Wno-unused-parameter -Werror=cast-qual \
++ -Werror=discarded-qualifiers
+
+ CFLAGS := $(OPTFLAGS) -DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" \
+ -MMD -MP $(CFLAGS)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
new file mode 100644
index 0000000..5cad22b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
@@ -0,0 +1,648 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 16 Oct 2014 15:49:01 -0500
+Subject: [PATCH] RH: add mpathconf
+
+mpathconf is a program (largely based on lvmcomf) to help users
+configure /etc/multipath.conf and enable or disable multipathing. It
+has a couple of built-in options that can be set directly from the
+command line. But, mostly it is used to get a multipath.conf file
+with the OS defaults, and to enable and disable multipathing via
+a single command.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/config.c | 1 +
+ multipath/Makefile | 5 +
+ multipath/mpathconf | 464 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ multipath/mpathconf.8 | 101 +++++++++++
+ 4 files changed, 571 insertions(+)
+ create mode 100644 multipath/mpathconf
+ create mode 100644 multipath/mpathconf.8
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index 0607403..5c98e48 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -661,6 +661,7 @@ load_config (char * file)
+
+ } else {
+ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
++ condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
+ if (conf->blist_devnode == NULL) {
+ conf->blist_devnode = vector_alloc();
+ if (!conf->blist_devnode) {
+diff --git a/multipath/Makefile b/multipath/Makefile
+index b9bbb3c..e720c7f 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -18,10 +18,12 @@ $(EXEC): $(OBJS) $(multipathdir)/libmultipath.so $(mpathcmddir)/libmpathcmd.so
+ $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS) $(LIBDEPS)
+ $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+ $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
++ $(GZIP) mpathconf.8 > mpathconf.8.gz
+
+ install:
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
++ $(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+@@ -29,13 +31,16 @@ install:
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
++ $(INSTALL_PROGRAM) -m 644 mpathconf.8.gz $(DESTDIR)$(man8dir)
+
+ uninstall:
+ $(RM) $(DESTDIR)$(bindir)/$(EXEC)
+ $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
+ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
++ $(RM) $(DESTDIR)$(bindir)/mpathconf
+ $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+ $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
++ $(RM) $(DESTDIR)$(man8dir)/mpathconf.8.gz
+
+ clean: dep_clean
+ $(RM) core *.o $(EXEC) *.gz
+diff --git a/multipath/mpathconf b/multipath/mpathconf
+new file mode 100644
+index 0000000..e839134
+--- /dev/null
++++ b/multipath/mpathconf
+@@ -0,0 +1,464 @@
++#!/bin/bash
++#
++# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
++#
++# This file is part of the device-mapper-multipath package.
++#
++# This copyrighted material is made available to anyone wishing to use,
++# modify, copy, or redistribute it subject to the terms and conditions
++# of the GNU General Public License v.2.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software Foundation,
++# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++#
++# Simple editting of /etc/multipath.conf
++# This program was largely ripped off from lvmconf
++#
++
++unset ENABLE FIND FRIENDLY MODULE MULTIPATHD HAVE_DISABLE HAVE_WWID_DISABLE HAVE_FIND HAVE_BLACKLIST HAVE_EXCEPTIONS HAVE_DEFAULTS HAVE_FRIENDLY HAVE_MULTIPATHD HAVE_MODULE HAVE_OUTFILE SHOW_STATUS CHANGED_CONFIG WWID_LIST
++
++DEFAULT_CONFIG="# device-mapper-multipath configuration file
++
++# For a complete list of the default configuration values, run either:
++# # multipath -t
++# or
++# # multipathd show config
++
++# For a list of configuration options with descriptions, see the
++# multipath.conf man page.
++
++defaults {
++ user_friendly_names yes
++ find_multipaths yes
++}
++
++blacklist_exceptions {
++ property \"(SCSI_IDENT_|ID_WWN)\"
++}"
++
++CONFIGFILE="/etc/multipath.conf"
++OUTPUTFILE="/etc/multipath.conf"
++MULTIPATHDIR="/etc/multipath"
++TMPFILE="/etc/multipath/.multipath.conf.tmp"
++WWIDS=0
++
++function usage
++{
++ echo "usage: $0 <command>"
++ echo ""
++ echo "Commands:"
++ echo "Enable: --enable "
++ echo "Disable: --disable"
++ echo "Only allow certain wwids (instead of enable): --allow <WWID>"
++ echo "Set user_friendly_names (Default y): --user_friendly_names <y|n>"
++ echo "Set find_multipaths (Default y): --find_multipaths <y|n>"
++ echo "Load the dm-multipath modules on enable (Default y): --with_module <y|n>"
++ echo "start/stop/reload multipathd (Default n): --with_multipathd <y|n>"
++ echo "select output file (Default /etc/multipath.conf): --outfile <FILE>"
++ echo ""
++}
++
++function add_wwid
++{
++ INDEX=0
++ while [ "$INDEX" -lt "$WWIDS" ] ; do
++ if [ "$1" = "${WWID_LIST[$INDEX]}" ] ; then
++ return
++ fi
++ ((INDEX++))
++ done
++ WWID_LIST[$WWIDS]="$1"
++ ((WWIDS++))
++}
++
++function get_dm_deps
++{
++ shift 3
++ while [ -n "$1" -a -n "$2" ]; do
++ MAJOR=$(echo $1 | tr -d '(,')
++ MINOR=$(echo $2 | tr -d ')')
++ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
++ if [ -n "$UUID" ] ; then
++ set_dm_wwid $UUID
++ fi
++ shift 2
++ done
++}
++
++function set_dm_wwid
++{
++ if [[ "$1" =~ ^part[[:digit:]]+-mpath- ]] ; then
++ add_wwid "${1##part*-mpath-}"
++ elif [[ "$1" =~ ^mpath- ]] ; then
++ add_wwid "${1##mpath-}"
++ else
++ get_dm_deps `dmsetup deps -u $1`
++ fi
++}
++
++function set_wwid
++{
++ UUID=""
++ if [[ "$1" =~ ^[[:digit:]]+:[[:digit:]]+$ ]] ; then
++ MAJOR=${1%%:*}
++ MINOR=${1##*:}
++ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
++ else
++ UUID=`dmsetup info -c --noheadings -o uuid $1 2> /dev/null`
++ fi
++ if [ -n "$UUID" ] ; then
++ set_dm_wwid $UUID
++ else
++ add_wwid "$1"
++ fi
++}
++
++function parse_args
++{
++ while [ -n "$1" ]; do
++ case $1 in
++ --enable)
++ ENABLE=1
++ shift
++ ;;
++ --disable)
++ ENABLE=0
++ shift
++ ;;
++ --allow)
++ ENABLE=2
++ if [ -n "$2" ]; then
++ set_wwid $2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --user_friendly_names)
++ if [ -n "$2" ]; then
++ FRIENDLY=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --find_multipaths)
++ if [ -n "$2" ]; then
++ FIND=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --with_module)
++ if [ -n "$2" ]; then
++ MODULE=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --with_multipathd)
++ if [ -n "$2" ]; then
++ MULTIPATHD=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --outfile)
++ if [ -n "$2" ]; then
++ OUTPUTFILE=$2
++ HAVE_OUTFILE=1
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ *)
++ usage
++ exit
++ esac
++ done
++}
++
++function validate_args
++{
++ if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" -o -n "$MODULE" ]; then
++ echo "ignoring extra parameters on disable"
++ FRIENDLY=""
++ FIND=""
++ MODULE=""
++ fi
++ if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then
++ echo "--user_friendly_names must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then
++ echo "--find_multipaths must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then
++ SHOW_STATUS=1
++ fi
++ if [ -n "$MODULE" ] && [ "$MODULE" != "y" -a "$MODULE" != "n" ]; then
++ echo "--with_module must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -n "$MULTIPATHD" ] && [ "$MULTIPATHD" != "y" -a "$MULTIPATHD" != "n" ]; then
++ echo "--with_multipathd must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ "$ENABLE" = 2 -a -z "$HAVE_OUTFILE" ]; then
++ echo "Because --allow makes changes that cannot be automatically reversed,"
++ echo "you must set --outfile when you set --allow"
++ exit 1
++ fi
++}
++
++function add_blacklist_exceptions
++{
++ INDEX=0
++ while [ "$INDEX" -lt "$WWIDS" ] ; do
++ sed -i '/^blacklist_exceptions[[:space:]]*{/ a\
++ wwid '"\"${WWID_LIST[$INDEX]}\""'
++' $TMPFILE
++ ((INDEX++))
++ done
++}
++
++umask 0077
++
++parse_args "$@"
++
++validate_args
++
++if [ ! -d "$MULTIPATHDIR" ]; then
++ echo "/etc/multipath/ does not exist. failing"
++ exit 1
++fi
++
++rm $TMPFILE 2> /dev/null
++echo "$DEFAULT_CONFIG" > $TMPFILE
++if [ -f "$CONFIGFILE" ]; then
++ cp $CONFIGFILE $TMPFILE
++fi
++
++if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then
++ HAVE_BLACKLIST=1
++fi
++
++if grep -q "^blacklist_exceptions[[:space:]]*{" $TMPFILE ; then
++ HAVE_EXCEPTIONS=1
++fi
++
++if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then
++ HAVE_DEFAULTS=1
++fi
++
++if [ -z "$MODULE" -o "$MODULE" = "y" ]; then
++ if lsmod | grep -q "dm_multipath" ; then
++ HAVE_MODULE=1
++ else
++ HAVE_MODULE=0
++ fi
++fi
++
++if [ "$MULTIPATHD" = "y" ]; then
++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++ HAVE_MULTIPATHD=1
++ else
++ HAVE_MULTIPATHD=0
++ fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then
++ HAVE_DISABLE=1
++ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"" ; then
++ HAVE_DISABLE=0
++ fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*wwid \"\.\?\*\"" ; then
++ HAVE_WWID_DISABLE=1
++ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"" ; then
++ HAVE_WWID_DISABLE=0
++ fi
++fi
++
++if [ "$HAVE_DEFAULTS" = "1" ]; then
++ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then
++ HAVE_FIND=1
++ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then
++ HAVE_FIND=0
++ fi
++ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then
++ HAVE_FRIENDLY=1
++ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then
++ HAVE_FRIENDLY=0
++ fi
++fi
++
++if [ -n "$SHOW_STATUS" ]; then
++ if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then
++ echo "multipath is enabled"
++ else
++ echo "multipath is disabled"
++ fi
++ if [ -z "$HAVE_FIND" -o "$HAVE_FIND" = 0 ]; then
++ echo "find_multipaths is disabled"
++ else
++ echo "find_multipaths is enabled"
++ fi
++ if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then
++ echo "user_friendly_names is disabled"
++ else
++ echo "user_friendly_names is enabled"
++ fi
++ if [ -n "$HAVE_MODULE" ]; then
++ if [ "$HAVE_MODULE" = 1 ]; then
++ echo "dm_multipath module is loaded"
++ else
++ echo "dm_multipath module is not loaded"
++ fi
++ fi
++ if [ -z "$HAVE_MULTIPATHD" ]; then
++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++ HAVE_MULTIPATHD=1
++ else
++ HAVE_MULTIPATHD=0
++ fi
++ fi
++ if [ "$HAVE_MULTIPATHD" = 1 ]; then
++ echo "multipathd is running"
++ else
++ echo "multipathd is not running"
++ fi
++ exit 0
++fi
++
++if [ -z "$HAVE_BLACKLIST" ]; then
++ cat >> $TMPFILE <<- _EOF_
++
++blacklist {
++}
++_EOF_
++fi
++
++if [ -z "$HAVE_DEFAULTS" ]; then
++ cat >> $TMPFILE <<- _EOF_
++
++defaults {
++}
++_EOF_
++fi
++
++if [ "$ENABLE" = 2 ]; then
++ if [ "$HAVE_DISABLE" = 1 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
++ fi
++ if [ -z "$HAVE_WWID_DISABLE" ]; then
++ sed -i '/^blacklist[[:space:]]*{/ a\
++ wwid ".*"
++' $TMPFILE
++ elif [ "$HAVE_WWID_DISABLE" = 0 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"/ wwid ".*"/' $TMPFILE
++ fi
++ if [ "$HAVE_EXCEPTIONS" = 1 ]; then
++ sed -i '/^blacklist_exceptions[[:space:]]*{/,/^}/ {/^[[:space:]]*wwid/ d}' $TMPFILE
++ else
++ cat >> $TMPFILE <<- _EOF_
++
++blacklist_exceptions {
++}
++_EOF_
++ fi
++ add_blacklist_exceptions
++elif [ "$ENABLE" = 1 ]; then
++ if [ "$HAVE_DISABLE" = 1 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
++ fi
++elif [ "$ENABLE" = 0 ]; then
++ if [ -z "$HAVE_DISABLE" ]; then
++ sed -i '/^blacklist[[:space:]]*{/ a\
++ devnode ".*"
++' $TMPFILE
++ elif [ "$HAVE_DISABLE" = 0 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"/ devnode ".*"/' $TMPFILE
++ fi
++fi
++
++if [ "$FIND" = "n" ]; then
++ if [ "$HAVE_FIND" = 1 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/ find_multipaths no/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++elif [ "$FIND" = "y" ]; then
++ if [ -z "$HAVE_FIND" ]; then
++ sed -i '/^defaults[[:space:]]*{/ a\
++ find_multipaths yes
++' $TMPFILE
++ CHANGED_CONFIG=1
++ elif [ "$HAVE_FIND" = 0 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/ find_multipaths yes/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++fi
++
++if [ "$FRIENDLY" = "n" ]; then
++ if [ "$HAVE_FRIENDLY" = 1 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/ user_friendly_names no/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++elif [ "$FRIENDLY" = "y" ]; then
++ if [ -z "$HAVE_FRIENDLY" ]; then
++ sed -i '/^defaults[[:space:]]*{/ a\
++ user_friendly_names yes
++' $TMPFILE
++ CHANGED_CONFIG=1
++ elif [ "$HAVE_FRIENDLY" = 0 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/ user_friendly_names yes/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++fi
++
++if [ -f "$OUTPUTFILE" ]; then
++ cp $OUTPUTFILE $OUTPUTFILE.old
++ if [ $? != 0 ]; then
++ echo "failed to backup old config file, $OUTPUTFILE not updated"
++ exit 1
++ fi
++fi
++
++cp $TMPFILE $OUTPUTFILE
++if [ $? != 0 ]; then
++ echo "failed to copy new config file into place, check $OUTPUTFILE is still OK"
++ exit 1
++fi
++
++rm -f $TMPFILE
++
++if [ "$ENABLE" = 1 ]; then
++ if [ "$HAVE_MODULE" = 0 ]; then
++ modprobe dm_multipath
++ fi
++ if [ "$HAVE_MULTIPATHD" = 0 ]; then
++ systemctl start multipathd.service
++ fi
++elif [ "$ENABLE" = 0 ]; then
++ if [ "$HAVE_MULTIPATHD" = 1 ]; then
++ systemctl stop multipathd.service
++ fi
++elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then
++ systemctl reload multipathd.service
++fi
+diff --git a/multipath/mpathconf.8 b/multipath/mpathconf.8
+new file mode 100644
+index 0000000..4cd3267
+--- /dev/null
++++ b/multipath/mpathconf.8
+@@ -0,0 +1,101 @@
++.TH MPATHCONF 8 "June 2010" "" "Linux Administrator's Manual"
++.SH NAME
++mpathconf - A tool for configuring device-mapper-multipath
++.SH SYNOPSIS
++.B mpathconf
++.RB [\| commands \|]
++.RB [\| options \|]
++.SH DESCRIPTION
++.B mpathconf
++is a utility that creates or modifies
++.B /etc/multipath.conf.
++It can enable or disable multipathing and configure some common options.
++.B mpathconf
++can also load the
++.B dm_multipath
++module, start and stop the
++.B multipathd
++daemon, and configure the
++.B multipathd
++service to start automatically or not. If
++.B mpathconf
++is called with no commands, it will display the current configuration.
++
++The default options for mpathconf are
++.B --with_module
++The
++.B --with_multipathd
++option is not set by default. Enabling multipathing will load the
++.B dm_multipath
++module but it will not immediately start it. This is so
++that users can manually edit their config file if necessary, before starting
++.B multipathd.
++
++If
++.B /etc/multipath.conf
++already exists, mpathconf will edit it. If it does not exist, mpathconf will
++create a default file with
++.B user_friendly_names
++and
++.B find_multipaths
++set. To disable these, use the
++.B --user_friendly_names n
++and
++.B --find_multipaths n
++options
++.SH COMMANDS
++.TP
++.B --enable
++Removes any line that blacklists all device nodes from the
++.B /etc/multipath.conf
++blacklist section.
++.TP
++.B --disable
++Adds a line that blacklists all device nodes to the
++.B /etc/multipath.conf
++blacklist section. If no blacklist section exists, it will create one.
++.TP
++.B --user_friendly_name \fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B user_friendly_names yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used along with any other command.
++.TP
++.B --find_multipaths\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B find_multipaths yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used aldong with any other command.
++.SH OPTIONS
++.TP
++.B --with_module\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B modprobe dm_multipath
++to install the multipath modules. This option only works with the
++.B --enable
++command. This option is set to \fBy\fP by default.
++.TP
++.B --with_multipathd { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B service multipathd start
++to start the multipathd daemon on \fB--enable\fP,
++.B service multipathd stop
++to stop the multipathd daemon on \fB--disable\fP, and
++.B service multipathd reload
++to reconfigure multipathd on \fB--user_frindly_names\fP and
++\fB--find_multipaths\fP.
++This option is set to \fBn\fP by default.
++.SH FILES
++.BR /etc/multipath.conf
++.SH "SEE ALSO"
++.BR multipath.conf (5),
++.BR modprobe (8),
++.BR multipath (8),
++.BR multipathd (8),
++.BR service (8),
++.SH AUTHOR
++Benjamin Marzinski <bmarzins@redhat.com>
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
new file mode 100644
index 0000000..ddf022f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
@@ -0,0 +1,167 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 17 Oct 2014 11:20:34 -0500
+Subject: [PATCH] RH: add wwids from kernel cmdline mpath.wwids with -A
+
+This patch adds another option to multipath, "-A", which reads
+/proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds
+to /etc/multipath/wwids. While this isn't usually important during
+normal operation, since these wwids should already be added, it can be
+helpful during installation, to make sure that multipath can claim
+devices as its own, before LVM or something else makes use of them. The
+patch also execs "/sbin/multipath -A" before running multipathd in
+multipathd.service
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/wwids.c | 44 +++++++++++++++++++++++++++++++++++++++++++
+ libmultipath/wwids.h | 1 +
+ multipath/main.c | 10 ++++++++--
+ multipath/multipath.8 | 5 ++++-
+ multipathd/multipathd.service | 1 +
+ 5 files changed, 58 insertions(+), 3 deletions(-)
+
+diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
+index 53e7951..39e08cd 100644
+--- a/libmultipath/wwids.c
++++ b/libmultipath/wwids.c
+@@ -443,3 +443,47 @@ int op ## _wwid(const char *wwid) \
+ declare_failed_wwid_op(is_failed, false)
+ declare_failed_wwid_op(mark_failed, true)
+ declare_failed_wwid_op(unmark_failed, true)
++
++int remember_cmdline_wwid(void)
++{
++ FILE *f = NULL;
++ char buf[LINE_MAX], *next, *ptr;
++ int ret = 0;
++
++ f = fopen("/proc/cmdline", "re");
++ if (!f) {
++ condlog(0, "can't open /proc/cmdline : %s", strerror(errno));
++ return -1;
++ }
++
++ if (!fgets(buf, sizeof(buf), f)) {
++ if (ferror(f))
++ condlog(0, "read of /proc/cmdline failed : %s",
++ strerror(errno));
++ else
++ condlog(0, "couldn't read /proc/cmdline");
++ fclose(f);
++ return -1;
++ }
++ fclose(f);
++ next = buf;
++ while((ptr = strstr(next, "mpath.wwid="))) {
++ ptr += 11;
++ next = strpbrk(ptr, " \t\n");
++ if (next) {
++ *next = '\0';
++ next++;
++ }
++ if (strlen(ptr)) {
++ if (remember_wwid(ptr) != 0)
++ ret = -1;
++ }
++ else {
++ condlog(0, "empty mpath.wwid kernel command line option");
++ ret = -1;
++ }
++ if (!next)
++ break;
++ }
++ return ret;
++}
+diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h
+index 0c6ee54..e32a0b0 100644
+--- a/libmultipath/wwids.h
++++ b/libmultipath/wwids.h
+@@ -17,6 +17,7 @@ int remember_wwid(char *wwid);
+ int check_wwids_file(char *wwid, int write_wwid);
+ int remove_wwid(char *wwid);
+ int replace_wwids(vector mp);
++int remember_cmdline_wwid(void);
+
+ enum {
+ WWID_IS_NOT_FAILED = 0,
+diff --git a/multipath/main.c b/multipath/main.c
+index 6fdde03..7bac232 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -109,7 +109,7 @@ usage (char * progname)
+ {
+ fprintf (stderr, VERSION_STRING);
+ fprintf (stderr, "Usage:\n");
+- fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
++ fprintf (stderr, " %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
+ fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname);
+ fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname);
+ fprintf (stderr, " %s -t\n", progname);
+@@ -123,6 +123,8 @@ usage (char * progname)
+ " -f flush a multipath device map\n"
+ " -F flush all multipath device maps\n"
+ " -a add a device wwid to the wwids file\n"
++ " -A add devices from kernel command line mpath.wwids\n"
++ " parameters to wwids file\n"
+ " -c check if a device should be a path in a multipath device\n"
+ " -C check if a multipath device has usable paths\n"
+ " -q allow queue_if_no_path when multipathd is not running\n"
+@@ -907,7 +909,7 @@ main (int argc, char *argv[])
+ exit(1);
+ multipath_conf = conf;
+ conf->retrigger_tries = 0;
+- while ((arg = getopt(argc, argv, ":adcChl::FfM:v:p:b:BrR:itquUwW")) != EOF ) {
++ while ((arg = getopt(argc, argv, ":aAdcChl::FfM:v:p:b:BrR:itquUwW")) != EOF ) {
+ switch(arg) {
+ case 1: printf("optarg : %s\n",optarg);
+ break;
+@@ -974,6 +976,10 @@ main (int argc, char *argv[])
+ case 't':
+ r = dump_config(conf);
+ goto out_free_config;
++ case 'A':
++ if (remember_cmdline_wwid() != 0)
++ exit(1);
++ exit(0);
+ case 'h':
+ usage(argv[0]);
+ exit(0);
+diff --git a/multipath/multipath.8 b/multipath/multipath.8
+index 914a8cb..8c6a4c1 100644
+--- a/multipath/multipath.8
++++ b/multipath/multipath.8
+@@ -25,7 +25,7 @@ multipath \- Device mapper target autoconfig.
+ .RB [\| \-b\ \c
+ .IR bindings_file \|]
+ .RB [\| \-d \|]
+-.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-C | \-q | \-r | \-i | \-a | \-u | \-U | \-w | \-W \|]
++.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-C | \-q | \-r | \-i | \-a | \-A | \-u | \-U | \-w | \-W \|]
+ .RB [\| \-p\ \c
+ .IR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|]
+ .RB [\| \-R\ \c
+@@ -135,6 +135,9 @@ Add the WWID for the specified device to the WWIDs file.
+ Check if the device specified in the program environment should be
+ a path in a multipath device.
+ .
++.B \-A
++add wwids from any kernel command line mpath.wwid parameters to the wwids file
++.
+ .TP
+ .B \-U
+ Check if the device specified in the program environment is a multipath device
+diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
+index 17434ce..0fbcc46 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -15,6 +15,7 @@ Type=notify
+ NotifyAccess=main
+ LimitCORE=infinity
+ ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
++ExecStartPre=-/sbin/multipath -A
+ ExecStart=/sbin/multipathd -d -s
+ ExecReload=/sbin/multipathd reconfigure
+ TasksMax=infinity
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
new file mode 100644
index 0000000..a23e167
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
@@ -0,0 +1,121 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Mon, 6 Nov 2017 21:39:28 -0600
+Subject: [PATCH] RH: warn on invalid regex instead of failing
+
+multipath.conf used to allow "*" as a match everything regular expression,
+instead of requiring ".*". Instead of erroring when the old style
+regular expressions are used, it should print a warning and convert
+them.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/dict.c | 27 +++++++++++++++++++++------
+ libmultipath/parser.c | 13 +++++++++++++
+ libmultipath/parser.h | 1 +
+ 3 files changed, 35 insertions(+), 6 deletions(-)
+
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 7ad0f5a..ab808d6 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -55,6 +55,21 @@ set_str(vector strvec, void *ptr)
+ }
+
+ static int
++set_regex(vector strvec, void *ptr)
++{
++ char **str_ptr = (char **)ptr;
++
++ if (*str_ptr)
++ FREE(*str_ptr);
++ *str_ptr = set_regex_value(strvec);
++
++ if (!*str_ptr)
++ return 1;
++
++ return 0;
++}
++
++static int
+ set_yes_no(vector strvec, void *ptr)
+ {
+ char * buff;
+@@ -1271,7 +1286,7 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \
+ if (!conf->option) \
+ return 1; \
+ \
+- buff = set_value(strvec); \
++ buff = set_regex_value(strvec); \
+ if (!buff) \
+ return 1; \
+ \
+@@ -1287,7 +1302,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \
+ if (!conf->option) \
+ return 1; \
+ \
+- buff = set_value(strvec); \
++ buff = set_regex_value(strvec); \
+ if (!buff) \
+ return 1; \
+ \
+@@ -1388,16 +1403,16 @@ device_handler(struct config *conf, vector strvec)
+ return 0;
+ }
+
+-declare_hw_handler(vendor, set_str)
++declare_hw_handler(vendor, set_regex)
+ declare_hw_snprint(vendor, print_str)
+
+-declare_hw_handler(product, set_str)
++declare_hw_handler(product, set_regex)
+ declare_hw_snprint(product, print_str)
+
+-declare_hw_handler(revision, set_str)
++declare_hw_handler(revision, set_regex)
+ declare_hw_snprint(revision, print_str)
+
+-declare_hw_handler(bl_product, set_str)
++declare_hw_handler(bl_product, set_regex)
+ declare_hw_snprint(bl_product, print_str)
+
+ declare_hw_handler(hwhandler, set_str)
+diff --git a/libmultipath/parser.c b/libmultipath/parser.c
+index b8b7e0d..34b4ad2 100644
+--- a/libmultipath/parser.c
++++ b/libmultipath/parser.c
+@@ -380,6 +380,19 @@ set_value(vector strvec)
+ return alloc;
+ }
+
++void *
++set_regex_value(vector strvec)
++{
++ char *buff = set_value(strvec);
++
++ if (buff && strcmp("*", buff) == 0) {
++ condlog(0, "Invalid regular expression \"*\" in multipath.conf. Using \".*\"");
++ FREE(buff);
++ return strdup(".*");
++ }
++ return buff;
++}
++
+ /* non-recursive configuration stream handler */
+ static int kw_level = 0;
+
+diff --git a/libmultipath/parser.h b/libmultipath/parser.h
+index 62906e9..b791705 100644
+--- a/libmultipath/parser.h
++++ b/libmultipath/parser.h
+@@ -77,6 +77,7 @@ extern void dump_keywords(vector keydump, int level);
+ extern void free_keywords(vector keywords);
+ extern vector alloc_strvec(char *string);
+ extern void *set_value(vector strvec);
++extern void *set_regex_value(vector strvec);
+ extern int process_file(struct config *conf, char *conf_file);
+ extern struct keyword * find_keyword(vector keywords, vector v, char * name);
+ int snprint_keyword(char *buff, int len, char *fmt, struct keyword *kw,
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
new file mode 100644
index 0000000..05e6864
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
@@ -0,0 +1,29 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 7 Jun 2018 17:43:52 -0500
+Subject: [PATCH] RH: reset default find_mutipaths value to off
+
+Upstream has changed to default find_multipaths to "strict". For now
+Redhat will retain the previous default of "off".
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/defaults.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
+index f076b4b..70ba98a 100644
+--- a/libmultipath/defaults.h
++++ b/libmultipath/defaults.h
+@@ -17,7 +17,7 @@
+ #define DEFAULT_NO_PATH_RETRY NO_PATH_RETRY_UNDEF
+ #define DEFAULT_VERBOSITY 2
+ #define DEFAULT_REASSIGN_MAPS 0
+-#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_STRICT
++#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_OFF
+ #define DEFAULT_FAST_IO_FAIL 5
+ #define DEFAULT_DEV_LOSS_TMO 600
+ #define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
new file mode 100644
index 0000000..45cd32a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
@@ -0,0 +1,49 @@
+From 8bdd4481d822b6625d8bf719431ca74ed1b5e021 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 16 Jul 2018 15:56:37 +0800
+Subject: [PATCH] multipath-tools: modify Makefile.inc for cross-compilation
+
+Do not look for systemd info on the host, and allow us to pass in CFLAGS
+using the OPTFLAGS variable.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Update for version 0.5.0-144-g770e6d0
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Update for version 0.7.1
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+update for version 0.7.7
+
+remove change about CFLAGS part, since patch 0024 already have similar function.
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile.inc | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 57a1835..0c403c7 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -38,12 +38,6 @@ ifndef RUN
+ endif
+ endif
+
+-ifndef SYSTEMD
+- ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1)
+- SYSTEMD = $(shell systemctl --version 2> /dev/null | sed -n 's/systemd \([0-9]*\)/\1/p')
+- endif
+-endif
+-
+ ifndef SYSTEMDPATH
+ SYSTEMDPATH=usr/lib
+ endif
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
new file mode 100644
index 0000000..1281180
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
@@ -0,0 +1,57 @@
+From d929a1ea5e42ecbe30c990644ed4ada2817c6439 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 16 Jul 2018 16:00:14 +0800
+Subject: [PATCH] Always use devmapper
+
+Do not try to compute several _API_ make variables
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Rebase to 0.7.1
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase to 0.7.7
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ libmultipath/Makefile | 19 ++++---------------
+ 1 file changed, 4 insertions(+), 15 deletions(-)
+
+diff --git a/libmultipath/Makefile b/libmultipath/Makefile
+index f51786d..3ad9c48 100644
+--- a/libmultipath/Makefile
++++ b/libmultipath/Makefile
+@@ -20,21 +20,10 @@ ifdef SYSTEMD
+ endif
+ endif
+
+-ifneq ($(call check_func,dm_task_no_flush,/usr/include/libdevmapper.h),0)
+- CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
+-endif
+-
+-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
+- CFLAGS += -DLIBDM_API_COOKIE
+-endif
+-
+-ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,/usr/include/libudev.h),0)
+- CFLAGS += -DLIBUDEV_API_RECVBUF
+-endif
+-
+-ifneq ($(call check_func,dm_task_deferred_remove,/usr/include/libdevmapper.h),0)
+- CFLAGS += -DLIBDM_API_DEFERRED
+-endif
++CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
++CFLAGS += -DLIBDM_API_COOKIE
++CFLAGS += -DLIBUDEV_API_RECVBUF
++CFLAGS += -DLIBDM_API_DEFERRED
+
+ OBJS = memory.o parser.o vector.o devmapper.o callout.o \
+ hwtable.o blacklist.o util.o dmparser.o config.o \
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
new file mode 100644
index 0000000..88a758d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
@@ -0,0 +1,40 @@
+From 145f2b829e5362cda975bebafd7fe4d00ff56d1c Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 16 Jul 2018 16:02:07 +0800
+Subject: [PATCH] Always use devmapper for kpartx
+
+Do not try to compute the LIBDM_API_COOKIE make variable
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Rebase to 0.7.1
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase to 0.7.7
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ kpartx/Makefile | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/kpartx/Makefile b/kpartx/Makefile
+index 7eb467e..c143321 100644
+--- a/kpartx/Makefile
++++ b/kpartx/Makefile
+@@ -8,9 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS)
+
+ LIBDEPS += -ldevmapper
+
+-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
+- CFLAGS += -DLIBDM_API_COOKIE
+-endif
++CFLAGS += -DLIBDM_API_COOKIE
+
+ OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
+ gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
deleted file mode 100644
index 6ec5dff..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
+++ /dev/null
@@ -1,113 +0,0 @@
-SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
-
-DESCRIPTION = "It provides tools to manage multipath devices \
-by instructing the device-mapper kernel module what to do. These \
-tools include: \
-1. multipath - Scan the system for multipath devices and assemble them.\
-2. multipathd - Detects when paths fail and execs multipath to update \
-things.\
-3. mpathpersist - Persistent reservation management feature allows \
-cluster management software to manage persistent reservation through \
-mpath device. It processes management requests from callers and hides \
-the management task details. It also handles persistent reservation \
-management of data path life cycle and state changes.\
-4. kpartx - This tool, derived from util-linux's partx, reads partition \
-tables on specified device and create device maps over partitions \
-segments detected. It is called from hotplug upon device maps creation \
-and deletion"
-
-HOMEPAGE = "http://christophe.varoqui.free.fr/"
-
-DEPENDS = "libdevmapper \
- libaio \
- liburcu \
- readline \
- udev \
- json-c \
- "
-
-LICENSE = "GPLv2"
-
-SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
- file://multipathd.oe \
- file://multipath.conf.example \
- file://0001-multipath-attempt-at-common-multipath.rules.patch \
- file://0002-RH-fixup-udev-rules-for-redhat.patch \
- file://0003-RH-Remove-the-property-blacklist-exception-builtin.patch \
- file://0004-RH-don-t-start-without-a-config-file.patch \
- file://0005-RH-add-mpathconf.patch \
- file://0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
- file://0007-RH-trigger-change-uevent-on-new-device-creation.patch \
- file://0008-libmultipath-change-how-RADOS-checker-is-enabled.patch \
- file://0009-multipath-set-verbosity-to-default-during-config.patch \
- file://0010-mpath-skip-device-configs-without-vendor-product.patch \
- file://0011-multipathd-fix-show-maps-json-crash.patch \
- file://0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
- file://0013-Always-use-devmapper.patch \
- file://0014-Always-use-devmapper-for-kpartx.patch \
- file://0001-kpartx-include-limits.h-for-PATH_MAX.patch \
- "
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-SRCREV = "f21166a812a2cfb50ecf9550d32947c83103f83a"
-
-S = "${WORKDIR}/git"
-
-inherit systemd pkgconfig
-
-SYSTEMD_SERVICE_${PN} = "multipathd.service"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-# multipath-tools includes a copy of the valgrind.h header
-# file and uses the macros to suppress some false positives. However,
-# that only works on ARM when thumb is disabled. Otherwise one gets:
-# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
-# ../Makefile.inc:66: recipe for target 'debug.o' failed
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-# The exact version of SYSTEMD does not matter but should be greater than 209.
-#
-EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
- OPTFLAGS="${CFLAGS}" \
- bindir=${base_sbindir} \
- LIB=${base_libdir} libdir=${base_libdir}/multipath \
- unitdir=${systemd_system_unitdir} \
- ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
- '
-
-do_install() {
- oe_runmake install
-
- # We copy an initscript, but do not start multipathd at init time.
- #
- if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then
- install -d ${D}${sysconfdir}/init.d
- cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
- fi
-
- install -d ${D}${sysconfdir}
- install -m 0644 ${WORKDIR}/multipath.conf.example \
- ${D}${sysconfdir}/multipath.conf.example
-}
-
-FILES_${PN}-dbg += "${base_libdir}/multipath/.debug"
-
-PACKAGES =+ "${PN}-libs"
-FILES_${PN}-libs = "${base_libdir}/lib*.so.* \
- ${base_libdir}/multipath/lib*.so*"
-RDEPENDS_${PN} += "${PN}-libs bash"
-
-PROVIDES += "device-mapper-multipath"
-RPROVIDES_${PN} += "device-mapper-multipath"
-RPROVIDES_${PN}-libs += "device-mapper-multipath-libs"
-
-FILES_${PN}-dev += "${base_libdir}/pkgconfig"
-
-PACKAGES =+ "kpartx"
-FILES_kpartx = "${base_sbindir}/kpartx \
- ${nonarch_libdir}/udev/kpartx_id \
- "
-
-RDEPENDS_${PN} += "bash kpartx"
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.7.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.7.bb
new file mode 100644
index 0000000..5cc1546
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.7.bb
@@ -0,0 +1,131 @@
+SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
+
+DESCRIPTION = "It provides tools to manage multipath devices \
+by instructing the device-mapper kernel module what to do. These \
+tools include: \
+1. multipath - Scan the system for multipath devices and assemble them.\
+2. multipathd - Detects when paths fail and execs multipath to update \
+things.\
+3. mpathpersist - Persistent reservation management feature allows \
+cluster management software to manage persistent reservation through \
+mpath device. It processes management requests from callers and hides \
+the management task details. It also handles persistent reservation \
+management of data path life cycle and state changes.\
+4. kpartx - This tool, derived from util-linux's partx, reads partition \
+tables on specified device and create device maps over partitions \
+segments detected. It is called from hotplug upon device maps creation \
+and deletion"
+
+HOMEPAGE = "http://christophe.varoqui.free.fr/"
+
+DEPENDS = "libdevmapper \
+ libaio \
+ liburcu \
+ readline \
+ udev \
+ json-c \
+ "
+
+LICENSE = "GPLv2"
+
+SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
+ file://multipathd.oe \
+ file://multipath.conf.example \
+ file://0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch \
+ file://0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch \
+ file://0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch \
+ file://0004-multipath-tools-replace-FSF-address-with-a-www-point.patch \
+ file://0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch \
+ file://0006-multipath-tools-fix-compilation-with-musl-libc.patch \
+ file://0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch \
+ file://0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch \
+ file://0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch \
+ file://0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch \
+ file://0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch \
+ file://0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch \
+ file://0013-libmultipath-print-correct-default-for-delay_-_check.patch \
+ file://0014-multipath.conf.5-clarify-property-whitelist-handling.patch \
+ file://0015-mpathpersist-add-all_tg_pt-option.patch \
+ file://0016-libmultipath-remove-rbd-code.patch \
+ file://0017-mpathpersist-fix-aptpl-support.patch \
+ file://0018-multipath-don-t-check-timestamps-without-a-path.patch \
+ file://0019-libmultipath-fix-detect-alua-corner-case.patch \
+ file://0020-multipath-fix-setting-conf-version.patch \
+ file://0021-RH-fixup-udev-rules-for-redhat.patch \
+ file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \
+ file://0023-RH-don-t-start-without-a-config-file.patch \
+ file://0024-RH-use-rpm-optflags-if-present.patch \
+ file://0025-RH-add-mpathconf.patch \
+ file://0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
+ file://0027-RH-warn-on-invalid-regex-instead-of-failing.patch \
+ file://0028-RH-reset-default-find_mutipaths-value-to-off.patch \
+ file://0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
+ file://0030-Always-use-devmapper.patch \
+ file://0031-Always-use-devmapper-for-kpartx.patch \
+ "
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+SRCREV = "386d288b5595fc2c01dffe698b6eb306c6674908"
+
+S = "${WORKDIR}/git"
+
+inherit systemd pkgconfig
+
+SYSTEMD_SERVICE_${PN} = "multipathd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+# multipath-tools includes a copy of the valgrind.h header
+# file and uses the macros to suppress some false positives. However,
+# that only works on ARM when thumb is disabled. Otherwise one gets:
+# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
+# ../Makefile.inc:66: recipe for target 'debug.o' failed
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+# The exact version of SYSTEMD does not matter but should be greater than 209.
+#
+EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
+ OPTFLAGS="${CFLAGS}" \
+ bindir=${base_sbindir} \
+ LIB=${base_libdir} libdir=${base_libdir}/multipath \
+ unitdir=${systemd_system_unitdir} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
+ '
+
+do_install() {
+ oe_runmake install
+
+ # We copy an initscript, but do not start multipathd at init time.
+ #
+ if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then
+ install -d ${D}${sysconfdir}/init.d
+ cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
+ fi
+
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/multipath.conf.example \
+ ${D}${sysconfdir}/multipath.conf.example
+}
+
+FILES_${PN}-dbg += "${base_libdir}/multipath/.debug"
+
+PACKAGES =+ "${PN}-libs"
+FILES_${PN}-libs = "${base_libdir}/lib*.so.* \
+ ${base_libdir}/multipath/lib*.so*"
+RDEPENDS_${PN} += "${PN}-libs bash"
+
+PROVIDES += "device-mapper-multipath"
+RPROVIDES_${PN} += "device-mapper-multipath"
+RPROVIDES_${PN}-libs += "device-mapper-multipath-libs"
+
+FILES_${PN}-dev += "${base_libdir}/pkgconfig"
+
+PACKAGES =+ "kpartx"
+FILES_kpartx = "${base_sbindir}/kpartx \
+ ${nonarch_libdir}/udev/kpartx_id \
+ "
+
+RDEPENDS_${PN} += "bash kpartx"
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano.inc b/meta-openembedded/meta-oe/recipes-support/nano/nano.inc
deleted file mode 100644
index 22f0fb2..0000000
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "GNU nano (Nano's ANOther editor, or \
-Not ANOther editor) is an enhanced clone of the \
-Pico text editor."
-HOMEPAGE = "http://www.nano-editor.org/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-SECTION = "console/utils"
-DEPENDS = "ncurses file"
-RDEPENDS_${PN} = "ncurses-terminfo"
-
-PV_MAJOR = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-
-SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb
deleted file mode 100644
index afb0cf2..0000000
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include nano.inc
-
-SRC_URI[md5sum] = "6dd37f010d6a985bf0e5f8ed091ff919"
-SRC_URI[sha256sum] = "7783bcfd4b2d5dc0bf64d4bd07b1a19e7ba3c91da881a4249772a36b972d4012"
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_3.0.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_3.0.bb
new file mode 100644
index 0000000..2c7fbd5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_3.0.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "GNU nano (Nano's ANOther editor, or \
+Not ANOther editor) is an enhanced clone of the \
+Pico text editor."
+HOMEPAGE = "http://www.nano-editor.org/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+SECTION = "console/utils"
+DEPENDS = "ncurses file"
+RDEPENDS_${PN} = "ncurses-terminfo-base"
+
+PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
+
+SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "74196427a09ec2f82a88facd220d2787"
+SRC_URI[sha256sum] = "e0a5bca354514e64762c987c200a8758b05e7bcced3b00b3e48ea0a2d383c8a0"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
index 76e0741..3afdff7 100644
--- a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -38,7 +38,7 @@
install -m 0644 ${S}/inc/NE10*.h ${D}${includedir}/
install -m 0644 ${B}/modules/libNE10.a ${D}${libdir}/
install -m 0755 ${B}/modules/libNE10.so.* ${D}${libdir}/
- cp -a ${B}/modules/libNE10.so ${D}${libdir}/
+ cp -d ${B}/modules/libNE10.so ${D}${libdir}/
}
# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel]
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch
new file mode 100644
index 0000000..0497613
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch
@@ -0,0 +1,35 @@
+From 5c16beff9909b28f55f25f48ed7ddbf98d8b1d5c Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Wed, 18 Jul 2018 09:43:55 +0800
+Subject: [PATCH] fix NULL pointer problem
+
+return 0 if distance_table is NULL
+
+Upstream-Status: Pending
+
+read_distance_table() maybe return 0, but distance_table is not set,
+if distance_table is used, and will lead to SEGFAULT
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ distance.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/distance.c b/distance.c
+index 8d472af..6a6e886 100644
+--- a/distance.c
++++ b/distance.c
+@@ -113,6 +113,8 @@ int numa_distance(int a, int b)
+ int err = read_distance_table();
+ if (err < 0)
+ return 0;
++ if(!distance_table)
++ return 0;
+ }
+ if ((unsigned)a >= distance_numnodes || (unsigned)b >= distance_numnodes)
+ return 0;
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
deleted file mode 100644
index 53952ae..0000000
--- a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-[PATCH] return 0 if distance_table is NULL
-
-Upstream-Status: Pending
-
-read_distance_table() maybe return 0, but distance_table is not set,
-if distance_table is used, and will lead to SEGFAULT
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- distance.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/distance.c b/distance.c
-index 4a26972..c6ca021 100755
---- a/distance.c
-+++ b/distance.c
-@@ -113,6 +113,8 @@ int numa_distance(int a, int b)
- int err = read_distance_table();
- if (err < 0)
- return 0;
-+ if (!distance_table)
-+ return 0;
- }
- return distance_table[a * distance_numnodes + b];
- }
---
-1.7.10.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb b/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
index b9cbcf0..279ac04 100644
--- a/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
@@ -5,17 +5,16 @@
allocations with NUMA policy in applications."
LICENSE = "GPL-2.0 & LGPL-2.1"
SECTION = "apps"
-RDEPENDS_${PN} = "perl"
inherit autotools-brokensep ptest
-LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
+LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=f8ff2391624f28e481299f3f677b21bb"
-SRCREV = "ea3a70681c2f523fe58e1d44527f478ca76db74e"
-PV = "2.0.11+git${SRCPV}"
+SRCREV = "841253d1313b01a968c380cae4f498f20c46e5aa"
+PV = "2.0.12+git${SRCPV}"
SRC_URI = "git://github.com/numactl/numactl \
- file://fix-null-pointer.patch \
+ file://0001-fix-NULL-pointer-problem.patch \
file://Fix-the-test-output-format.patch \
file://Makefile \
file://run-ptest \
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
deleted file mode 100644
index 9773b4a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From a0983d84185f04c4e40778fe951fde4439894882 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 07:37:03 -0700
-Subject: [PATCH 01/11] Remove assumptions about glibc being only libc
- implementation on linux
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/file/fileIOPosix.c | 2 +-
- open-vm-tools/lib/include/vm_basic_defs.h | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-Index: open-vm-tools/lib/file/fileIOPosix.c
-===================================================================
---- open-vm-tools.orig/lib/file/fileIOPosix.c
-+++ open-vm-tools/lib/file/fileIOPosix.c
-@@ -205,7 +205,7 @@ static AlignedPool alignedPool;
- * are not available in any header file.
- */
-
--#if defined(__linux__) && !defined(__ANDROID__)
-+#if defined(__linux__) && defined(__GLIBC__)
- #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
- /*
- * We want preadv/pwritev. But due to FOB=64, the symbols are -64.
-Index: open-vm-tools/lib/include/vm_basic_defs.h
-===================================================================
---- open-vm-tools.orig/lib/include/vm_basic_defs.h
-+++ open-vm-tools/lib/include/vm_basic_defs.h
-@@ -571,6 +571,7 @@ typedef int pid_t;
- #if defined __linux__ && !defined __KERNEL__ && !defined MODULE && \
- !defined VMM && !defined FROBOS && !defined __ANDROID__
- #include <features.h>
-+#if __GLIBC__
- #if __GLIBC_PREREQ(2, 1) && !defined GLIBC_VERSION_21
- #define GLIBC_VERSION_21
- #endif
-@@ -590,6 +591,7 @@ typedef int pid_t;
- #define GLIBC_VERSION_212
- #endif
- #endif
-+#endif
-
- /*
- * Convenience definitions of unicode characters.
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch
new file mode 100644
index 0000000..432496f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch
@@ -0,0 +1,31 @@
+From 43d859f9d5eecdc0fdc1a6bf539bcde4a152e6f5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 27 Aug 2018 23:22:21 -0700
+Subject: [PATCH] Use off64_t instead of __off64_t
+
+Fixes
+unknown type name '__off64_t'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/file/fileIOPosix.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/file/fileIOPosix.c b/lib/file/fileIOPosix.c
+index 23108279..bcd2ddc5 100644
+--- a/lib/file/fileIOPosix.c
++++ b/lib/file/fileIOPosix.c
+@@ -206,10 +206,10 @@ static AlignedPool alignedPool;
+ * the symbols (and anyone building XOPEN<700 gets nothing).
+ */
+ extern ssize_t preadv64(int fd, const struct iovec *iov, int iovcnt,
+- __off64_t offset) __attribute__ ((weak));
++ off64_t offset) __attribute__ ((weak));
+
+ extern ssize_t pwritev64(int fd, const struct iovec *iov, int iovcnt,
+- __off64_t offset) __attribute__ ((weak));
++ off64_t offset) __attribute__ ((weak));
+ #else
+ #error "Large file support unavailable. Aborting."
+ #endif
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
index e9cb873..b7a4058 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
@@ -14,11 +14,11 @@
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 3400b86..7d6119e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -942,7 +942,7 @@ if test "$with_dnet" = "yes"; then
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -944,7 +944,7 @@ if test "$with_dnet" = "yes"; then
AC_VMW_CHECK_LIB([dnet],
[DNET],
[],
@@ -27,15 +27,12 @@
[],
[dnet.h],
[intf_open],
-@@ -952,7 +952,7 @@ if test "$with_dnet" = "yes"; then
+@@ -954,7 +954,7 @@ if test "$with_dnet" = "yes"; then
if test $have_dnet = "no"; then
AC_MSG_ERROR(
- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
+ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
- fi
+ fi
fi
---
-2.1.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch
new file mode 100644
index 0000000..8820581
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch
@@ -0,0 +1,26 @@
+From 4981bb3013d7f1e40e44618076d99af3484eedea Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:02:50 -0700
+Subject: [PATCH] include poll.h instead of sys/poll.h
+
+including sys/poll.h is deprecated
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
+index 13908679..e0a68e7e 100644
+--- a/lib/asyncsocket/asyncsocket.c
++++ b/lib/asyncsocket/asyncsocket.c
+@@ -69,8 +69,8 @@
+ #else
+ #include <stddef.h>
+ #include <ctype.h>
++#include <poll.h>
+ #include <sys/types.h>
+-#include <sys/poll.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <netdb.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch
new file mode 100644
index 0000000..4d6a0fd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch
@@ -0,0 +1,115 @@
+From 92955b3a6180b4285d11ef79766df01b9ab60dbd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:11:58 -0700
+Subject: [PATCH] Rename poll.h to vm_poll.h
+
+musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this
+we rename poll.h to vm_poll.h.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
+ open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +-
+ open-vm-tools/lib/include/asyncsocket.h | 2 +-
+ open-vm-tools/lib/include/pollImpl.h | 2 +-
+ open-vm-tools/lib/include/{poll.h => vm_poll.h} | 2 +-
+ open-vm-tools/lib/rpcIn/rpcin.c | 2 +-
+ .../services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+ rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%)
+
+diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
+index e0a68e7e..b9675674 100644
+--- a/lib/asyncsocket/asyncsocket.c
++++ b/lib/asyncsocket/asyncsocket.c
+@@ -86,7 +86,7 @@
+ #include "random.h"
+ #include "asyncsocket.h"
+ #include "asyncSocketBase.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "log.h"
+ #include "err.h"
+ #include "hostinfo.h"
+diff --git a/lib/hgfsServer/hgfsServer.c b/lib/hgfsServer/hgfsServer.c
+index 991a7941..ed0c09f9 100644
+--- a/lib/hgfsServer/hgfsServer.c
++++ b/lib/hgfsServer/hgfsServer.c
+@@ -48,7 +48,7 @@
+ #include "hgfsServerOplock.h"
+ #include "hgfsDirNotify.h"
+ #include "userlock.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "mutexRankLib.h"
+ #include "vm_basic_asm.h"
+ #include "unicodeOperations.h"
+diff --git a/lib/include/asyncsocket.h b/lib/include/asyncsocket.h
+index 524147ea..103f944f 100644
+--- a/lib/include/asyncsocket.h
++++ b/lib/include/asyncsocket.h
+@@ -164,7 +164,7 @@ typedef struct AsyncSocket AsyncSocket;
+ * Or the client can specify its favorite poll class and locking behavior.
+ * Use of IVmdbPoll is only supported for regular sockets and for Attach.
+ */
+-#include "poll.h"
++#include "vm_poll.h"
+ struct IVmdbPoll;
+ typedef struct AsyncSocketPollParams {
+ int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
+diff --git a/lib/include/pollImpl.h b/lib/include/pollImpl.h
+index 46442e55..8bc66997 100644
+--- a/lib/include/pollImpl.h
++++ b/lib/include/pollImpl.h
+@@ -44,7 +44,7 @@
+ #define INCLUDE_ALLOW_USERLEVEL
+ #include "includeCheck.h"
+
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "vm_basic_asm.h"
+
+ #if defined(__cplusplus)
+diff --git a/lib/include/poll.h b/lib/include/vm_poll.h
+similarity index 99%
+rename from open-vm-tools/lib/include/poll.h
+rename to open-vm-tools/lib/include/vm_poll.h
+index 988fe6d0..e9e74fb5 100644
+--- a/lib/include/poll.h
++++ b/lib/include/vm_poll.h
+@@ -60,7 +60,7 @@ extern "C" {
+ #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
+ #include <sys/kernel.h>
+ #endif
+-#include <sys/poll.h>
++#include <poll.h>
+ #define HZ 100
+ #endif
+ #ifdef __ANDROID__
+diff --git a/lib/rpcIn/rpcin.c b/lib/rpcIn/rpcin.c
+index c2c51583..d6c62f10 100644
+--- a/lib/rpcIn/rpcin.c
++++ b/lib/rpcIn/rpcin.c
+@@ -57,7 +57,7 @@
+
+ #if defined(VMTOOLS_USE_VSOCKET)
+ # include <glib.h>
+-# include "poll.h"
++# include "vm_poll.h"
+ # include "asyncsocket.h"
+ # include "vmci_defs.h"
+ #include "dataMap.h"
+diff --git a/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+index 03700937..f0b49ad7 100644
+--- a/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
++++ b/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+@@ -48,7 +48,7 @@
+ #include "rpcout.h"
+ #include "rabbitmqProxyConst.h"
+ #include "vm_basic_types.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #ifdef OPEN_VM_TOOLS
+ #include "vmci_sockets.h"
+ #include "sslDirect.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
deleted file mode 100644
index d26bf2d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From d44c7c9de7380ad7b284231bd5b5c99b5c19758d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 07:37:59 -0700
-Subject: [PATCH 02/11] include poll.h instead of obsolete sys/poll.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/asyncsocket/asyncSocketInt.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: open-vm-tools/lib/asyncsocket/asyncSocketInt.h
-===================================================================
---- open-vm-tools.orig/lib/asyncsocket/asyncSocketInt.h
-+++ open-vm-tools/lib/asyncsocket/asyncSocketInt.h
-@@ -71,8 +71,8 @@
- #else
- #include <stddef.h>
- #include <ctype.h>
-+#include <poll.h>
- #include <sys/types.h>
--#include <sys/poll.h>
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <netdb.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
deleted file mode 100644
index 8641778..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
+++ /dev/null
@@ -1,756 +0,0 @@
-From 687fca20b3417ac885b6961e6fe1126d4a3fe7a4 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 17 Nov 2015 10:57:31 +0000
-Subject: [PATCH 03/11] Rename poll.h to vm_poll.h
-
-musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this
-we rename poll.h to vm_poll.h.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
- open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +-
- open-vm-tools/lib/include/asyncsocket.h | 2 +-
- open-vm-tools/lib/include/pollImpl.h | 2 +-
- open-vm-tools/lib/include/{poll.h => vm_poll.h} | 0
- open-vm-tools/lib/rpcIn/rpcin.c | 2 +-
- open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +-
- 7 files changed, 6 insertions(+), 6 deletions(-)
- rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (100%)
-
-Index: open-vm-tools/lib/asyncsocket/asyncsocket.c
-===================================================================
---- open-vm-tools.orig/lib/asyncsocket/asyncsocket.c
-+++ open-vm-tools/lib/asyncsocket/asyncsocket.c
-@@ -52,7 +52,7 @@
- #include "vmware.h"
- #include "asyncsocket.h"
- #include "asyncSocketInt.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #include "log.h"
- #include "err.h"
- #include "hostinfo.h"
-Index: open-vm-tools/lib/hgfsServer/hgfsServer.c
-===================================================================
---- open-vm-tools.orig/lib/hgfsServer/hgfsServer.c
-+++ open-vm-tools/lib/hgfsServer/hgfsServer.c
-@@ -48,7 +48,7 @@
- #include "hgfsServerOplock.h"
- #include "hgfsDirNotify.h"
- #include "userlock.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #include "mutexRankLib.h"
- #include "vm_basic_asm.h"
- #include "unicodeOperations.h"
-Index: open-vm-tools/lib/include/asyncsocket.h
-===================================================================
---- open-vm-tools.orig/lib/include/asyncsocket.h
-+++ open-vm-tools/lib/include/asyncsocket.h
-@@ -129,7 +129,7 @@ typedef struct AsyncSocket AsyncSocket;
- * Or the client can specify its favorite poll class and locking behavior.
- * Use of IVmdbPoll is only supported for regular sockets and for Attach.
- */
--#include "poll.h"
-+#include "vm_poll.h"
- struct IVmdbPoll;
- typedef struct AsyncSocketPollParams {
- int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
-Index: open-vm-tools/lib/include/poll.h
-===================================================================
---- open-vm-tools.orig/lib/include/poll.h
-+++ /dev/null
-@@ -1,324 +0,0 @@
--/*********************************************************
-- * Copyright (C) 1998-2016 VMware, Inc. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of the GNU Lesser General Public License as published
-- * by the Free Software Foundation version 2.1 and no later version.
-- *
-- * This program is distributed in the hope that it will be useful, but
-- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-- * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
-- * License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public License
-- * along with this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-- *
-- *********************************************************/
--
--/*********************************************************
-- * The contents of this file are subject to the terms of the Common
-- * Development and Distribution License (the "License") version 1.0
-- * and no later version. You may not use this file except in
-- * compliance with the License.
-- *
-- * You can obtain a copy of the License at
-- * http://www.opensource.org/licenses/cddl1.php
-- *
-- * See the License for the specific language governing permissions
-- * and limitations under the License.
-- *
-- *********************************************************/
--
--
--#ifndef _POLL_H_
--#define _POLL_H_
--
--#define INCLUDE_ALLOW_USERLEVEL
--#define INCLUDE_ALLOW_VMCORE
--#include "includeCheck.h"
--
--#include "vm_basic_types.h"
--#include "vm_basic_defs.h"
--#include "vmware.h"
--#include "userlock.h"
--
--#ifdef _WIN32
--#define HZ 100
--#elif defined linux
--#include <asm/param.h>
--#elif __APPLE__
--#include <TargetConditionals.h>
--/*
-- * Old SDKs don't define TARGET_OS_IPHONE at all.
-- * New ones define it to 0 on Mac OS X, 1 on iOS.
-- */
--#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
--#include <sys/kernel.h>
--#endif
--#include <sys/poll.h>
--#define HZ 100
--#endif
--#ifdef __ANDROID__
--/*
-- * <poll.h> of android should be included, but its name is same
-- * with this file. So its content is put here to avoid conflict.
-- */
--#include <asm/poll.h>
--#define HZ 100
--typedef unsigned int nfds_t;
--int poll(struct pollfd *, nfds_t, long);
--#endif
--
--
--/*
-- * Poll event types: each type has a different reason for firing,
-- * or condition that must be met before firing.
-- */
--
--typedef enum {
-- /*
-- * Actual Poll queue types against which you can register callbacks.
-- */
-- POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
-- POLL_VTIME = 0,
-- POLL_REALTIME,
-- POLL_DEVICE,
-- POLL_MAIN_LOOP,
-- POLL_NUM_QUEUES
--} PollEventType;
--
--
--/*
-- * Classes of events
-- *
-- * These are the predefined classes. More can be declared
-- * with Poll_AllocClass().
-- */
--
--typedef enum PollClass {
-- POLL_CLASS_MAIN,
-- POLL_CLASS_PAUSE,
-- POLL_CLASS_IPC,
-- POLL_CLASS_CPT,
-- POLL_CLASS_MKS,
-- POLL_FIXED_CLASSES,
-- POLL_MAX_CLASSES = 320 /* Size enum to maximum */
--} PollClass;
--
--
--/*
-- * Each callback is registered in a set of classes
-- */
--
--typedef struct PollClassSet {
-- /* Type is uintptr_t to give best 32/64-bit code. */
--#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8)
-- uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)];
--} PollClassSet;
--
--/* An empty PollClassSet. */
--static INLINE PollClassSet
--PollClassSet_Empty(void)
--{
-- PollClassSet set = { { 0 } };
-- return set;
--}
--
--/* A PollClassSet with the single member. */
--static INLINE PollClassSet
--PollClassSet_Singleton(PollClass c)
--{
-- PollClassSet s = PollClassSet_Empty();
--
-- ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */
-- ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */
-- ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE);
-- ASSERT(c < POLL_MAX_CLASSES);
--
-- s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE);
-- return s;
--}
--
--/* Combine two PollClassSets. */
--static INLINE PollClassSet
--PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
--{
-- PollClassSet u;
-- unsigned i;
--
-- for (i = 0; i < ARRAYSIZE(u.bits); i++) {
-- u.bits[i] = lhs.bits[i] | rhs.bits[i];
-- }
-- return u;
--}
--
--/* Add single class to PollClassSet. */
--static INLINE PollClassSet
--PollClassSet_Include(PollClassSet set, PollClass c)
--{
-- return PollClassSet_Union(set, PollClassSet_Singleton(c));
--}
--
--
--#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN)
--#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \
-- PollClassSet_Singleton(POLL_CLASS_PAUSE))
--#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \
-- PollClassSet_Singleton(POLL_CLASS_CPT))
--#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \
-- PollClassSet_Singleton(POLL_CLASS_IPC))
--#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
--#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS)
--/*
-- * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it.
-- */
--#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
--
--/*
-- * Poll class-set taxonomy:
-- * POLL_CS_MAIN
-- * - Unless you NEED another class, use POLL_CS_MAIN.
-- * POLL_CS_PAUSE
-- * - For callbacks that must occur even if the guest is paused.
-- * Most VMDB or Foundry commands are in this category.
-- * POLL_CS_CPT
-- * - Only for callbacks which can trigger intermediate Checkpoint
-- * transitions.
-- * The ONLY such callback is Migrate.
-- * POLL_CS_IPC
-- * - Only for callbacks which can contain Msg_(Post|Hint|Question)
-- * responses, and for signal handlers (why)?
-- * Vigor, VMDB, and Foundry can contain Msg_* responses.
-- * POLL_CS_MKS
-- * - Callback runs in MKS thread.
-- * POLL_CS_ALWAYS
-- * - Only for events that must be processed immediately.
-- * The ONLY such callback is OvhdMemVmxSizeCheck.
-- */
--
--
--/*
-- * Poll_Callback flags
-- */
--
--#define POLL_FLAG_PERIODIC 0x01 // keep after firing
--#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory
--#define POLL_FLAG_READ 0x04 // device is ready for reading
--#define POLL_FLAG_WRITE 0x08 // device is ready for writing
--#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket
--#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking
--#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events
--#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor.
--#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl
--#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop
--
--
--/*
-- * Advisory minimum time period.
-- * Users that want the fastest running real-time poll
-- * should use TICKS_TO_USECS(1).
-- */
--
--#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ))
--#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ))
--
--
--typedef void (*PollerFunction)(void *clientData);
--typedef void (*PollerFireWrapper)(PollerFunction func,
-- void *funcData,
-- void *wrapperData);
--typedef Bool (*PollerErrorFn)(const char *errorStr);
--
--/*
-- * Initialisers:
-- *
-- * For the sake of convenience, we declare the initialisers
-- * for custom implmentations here, even though the actual
-- * implementations are distinct from the core poll code.
-- */
--
--typedef struct PollOptions {
-- Bool locked; // Use internal MXUser for locking
-- Bool allowFullQueue; // Don't assert when device event queue is full.
-- VThreadID windowsMsgThread; // thread that processes Windows messages
-- PollerFireWrapper fireWrapperFn; // optional; may be useful for stats
-- void *fireWrapperData; // optional
-- PollerErrorFn errorFn; // optional; called upon unrecoverable error
--} PollOptions;
--
--
--void Poll_InitDefault(void);
--void Poll_InitDefaultEx(const PollOptions *opts);
--void Poll_InitGtk(void); // On top of glib for Linux
--void Poll_InitCF(void); // On top of CoreFoundation for OSX
--
--
--/*
-- * Functions
-- */
--int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
--void Poll_Loop(Bool loop, Bool *exit, PollClass c);
--void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
--Bool Poll_LockingEnabled(void);
--void Poll_Exit(void);
--
--
--/*
-- * Poll_Callback adds a callback regardless of whether an identical one exists.
-- *
-- * Likewise, Poll_CallbackRemove removes exactly one callback.
-- */
--
--VMwareStatus Poll_Callback(PollClassSet classSet,
-- int flags,
-- PollerFunction f,
-- void *clientData,
-- PollEventType type,
-- PollDevHandle info, // fd/microsec delay
-- MXUserRecLock *lck);
--Bool Poll_CallbackRemove(PollClassSet classSet,
-- int flags,
-- PollerFunction f,
-- void *clientData,
-- PollEventType type);
--Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
-- int flags,
-- PollerFunction f,
-- PollEventType type,
-- void **clientData);
--
--void Poll_NotifyChange(PollClassSet classSet);
--
--/*
-- * Wrappers for Poll_Callback and Poll_CallbackRemove that present
-- * simpler subsets of those interfaces.
-- */
--
--VMwareStatus Poll_CB_Device(PollerFunction f,
-- void *clientData,
-- PollDevHandle device,
-- Bool periodic);
--
--Bool Poll_CB_DeviceRemove(PollerFunction f,
-- void *clientData,
-- Bool periodic);
--
--
--VMwareStatus Poll_CB_RTime(PollerFunction f,
-- void *clientData,
-- int delay, // microseconds
-- Bool periodic,
-- MXUserRecLock *lock);
--
--Bool Poll_CB_RTimeRemove(PollerFunction f,
-- void *clientData,
-- Bool periodic);
--
--
--#ifdef _WIN32
--void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
--Bool Poll_FireWndCallback(void *lparam);
--#endif
--
--#endif // _POLL_H_
-Index: open-vm-tools/lib/include/pollImpl.h
-===================================================================
---- open-vm-tools.orig/lib/include/pollImpl.h
-+++ open-vm-tools/lib/include/pollImpl.h
-@@ -44,7 +44,7 @@
- #define INCLUDE_ALLOW_USERLEVEL
- #include "includeCheck.h"
-
--#include "poll.h"
-+#include "vm_poll.h"
-
- /*
- * PollImpl:
-Index: open-vm-tools/lib/include/vm_poll.h
-===================================================================
---- /dev/null
-+++ open-vm-tools/lib/include/vm_poll.h
-@@ -0,0 +1,324 @@
-+/*********************************************************
-+ * Copyright (C) 1998-2016 VMware, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Lesser General Public License as published
-+ * by the Free Software Foundation version 2.1 and no later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-+ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
-+ * License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * along with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ *********************************************************/
-+
-+/*********************************************************
-+ * The contents of this file are subject to the terms of the Common
-+ * Development and Distribution License (the "License") version 1.0
-+ * and no later version. You may not use this file except in
-+ * compliance with the License.
-+ *
-+ * You can obtain a copy of the License at
-+ * http://www.opensource.org/licenses/cddl1.php
-+ *
-+ * See the License for the specific language governing permissions
-+ * and limitations under the License.
-+ *
-+ *********************************************************/
-+
-+
-+#ifndef _POLL_H_
-+#define _POLL_H_
-+
-+#define INCLUDE_ALLOW_USERLEVEL
-+#define INCLUDE_ALLOW_VMCORE
-+#include "includeCheck.h"
-+
-+#include "vm_basic_types.h"
-+#include "vm_basic_defs.h"
-+#include "vmware.h"
-+#include "userlock.h"
-+
-+#ifdef _WIN32
-+#define HZ 100
-+#elif defined linux
-+#include <asm/param.h>
-+#elif __APPLE__
-+#include <TargetConditionals.h>
-+/*
-+ * Old SDKs don't define TARGET_OS_IPHONE at all.
-+ * New ones define it to 0 on Mac OS X, 1 on iOS.
-+ */
-+#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
-+#include <sys/kernel.h>
-+#endif
-+#include <sys/poll.h>
-+#define HZ 100
-+#endif
-+#ifdef __ANDROID__
-+/*
-+ * <poll.h> of android should be included, but its name is same
-+ * with this file. So its content is put here to avoid conflict.
-+ */
-+#include <asm/poll.h>
-+#define HZ 100
-+typedef unsigned int nfds_t;
-+int poll(struct pollfd *, nfds_t, long);
-+#endif
-+
-+
-+/*
-+ * Poll event types: each type has a different reason for firing,
-+ * or condition that must be met before firing.
-+ */
-+
-+typedef enum {
-+ /*
-+ * Actual Poll queue types against which you can register callbacks.
-+ */
-+ POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
-+ POLL_VTIME = 0,
-+ POLL_REALTIME,
-+ POLL_DEVICE,
-+ POLL_MAIN_LOOP,
-+ POLL_NUM_QUEUES
-+} PollEventType;
-+
-+
-+/*
-+ * Classes of events
-+ *
-+ * These are the predefined classes. More can be declared
-+ * with Poll_AllocClass().
-+ */
-+
-+typedef enum PollClass {
-+ POLL_CLASS_MAIN,
-+ POLL_CLASS_PAUSE,
-+ POLL_CLASS_IPC,
-+ POLL_CLASS_CPT,
-+ POLL_CLASS_MKS,
-+ POLL_FIXED_CLASSES,
-+ POLL_MAX_CLASSES = 320 /* Size enum to maximum */
-+} PollClass;
-+
-+
-+/*
-+ * Each callback is registered in a set of classes
-+ */
-+
-+typedef struct PollClassSet {
-+ /* Type is uintptr_t to give best 32/64-bit code. */
-+#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8)
-+ uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)];
-+} PollClassSet;
-+
-+/* An empty PollClassSet. */
-+static INLINE PollClassSet
-+PollClassSet_Empty(void)
-+{
-+ PollClassSet set = { { 0 } };
-+ return set;
-+}
-+
-+/* A PollClassSet with the single member. */
-+static INLINE PollClassSet
-+PollClassSet_Singleton(PollClass c)
-+{
-+ PollClassSet s = PollClassSet_Empty();
-+
-+ ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */
-+ ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */
-+ ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE);
-+ ASSERT(c < POLL_MAX_CLASSES);
-+
-+ s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE);
-+ return s;
-+}
-+
-+/* Combine two PollClassSets. */
-+static INLINE PollClassSet
-+PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
-+{
-+ PollClassSet u;
-+ unsigned i;
-+
-+ for (i = 0; i < ARRAYSIZE(u.bits); i++) {
-+ u.bits[i] = lhs.bits[i] | rhs.bits[i];
-+ }
-+ return u;
-+}
-+
-+/* Add single class to PollClassSet. */
-+static INLINE PollClassSet
-+PollClassSet_Include(PollClassSet set, PollClass c)
-+{
-+ return PollClassSet_Union(set, PollClassSet_Singleton(c));
-+}
-+
-+
-+#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN)
-+#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \
-+ PollClassSet_Singleton(POLL_CLASS_PAUSE))
-+#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \
-+ PollClassSet_Singleton(POLL_CLASS_CPT))
-+#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \
-+ PollClassSet_Singleton(POLL_CLASS_IPC))
-+#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
-+#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS)
-+/*
-+ * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it.
-+ */
-+#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
-+
-+/*
-+ * Poll class-set taxonomy:
-+ * POLL_CS_MAIN
-+ * - Unless you NEED another class, use POLL_CS_MAIN.
-+ * POLL_CS_PAUSE
-+ * - For callbacks that must occur even if the guest is paused.
-+ * Most VMDB or Foundry commands are in this category.
-+ * POLL_CS_CPT
-+ * - Only for callbacks which can trigger intermediate Checkpoint
-+ * transitions.
-+ * The ONLY such callback is Migrate.
-+ * POLL_CS_IPC
-+ * - Only for callbacks which can contain Msg_(Post|Hint|Question)
-+ * responses, and for signal handlers (why)?
-+ * Vigor, VMDB, and Foundry can contain Msg_* responses.
-+ * POLL_CS_MKS
-+ * - Callback runs in MKS thread.
-+ * POLL_CS_ALWAYS
-+ * - Only for events that must be processed immediately.
-+ * The ONLY such callback is OvhdMemVmxSizeCheck.
-+ */
-+
-+
-+/*
-+ * Poll_Callback flags
-+ */
-+
-+#define POLL_FLAG_PERIODIC 0x01 // keep after firing
-+#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory
-+#define POLL_FLAG_READ 0x04 // device is ready for reading
-+#define POLL_FLAG_WRITE 0x08 // device is ready for writing
-+#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket
-+#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking
-+#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events
-+#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor.
-+#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl
-+#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop
-+
-+
-+/*
-+ * Advisory minimum time period.
-+ * Users that want the fastest running real-time poll
-+ * should use TICKS_TO_USECS(1).
-+ */
-+
-+#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ))
-+#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ))
-+
-+
-+typedef void (*PollerFunction)(void *clientData);
-+typedef void (*PollerFireWrapper)(PollerFunction func,
-+ void *funcData,
-+ void *wrapperData);
-+typedef Bool (*PollerErrorFn)(const char *errorStr);
-+
-+/*
-+ * Initialisers:
-+ *
-+ * For the sake of convenience, we declare the initialisers
-+ * for custom implmentations here, even though the actual
-+ * implementations are distinct from the core poll code.
-+ */
-+
-+typedef struct PollOptions {
-+ Bool locked; // Use internal MXUser for locking
-+ Bool allowFullQueue; // Don't assert when device event queue is full.
-+ VThreadID windowsMsgThread; // thread that processes Windows messages
-+ PollerFireWrapper fireWrapperFn; // optional; may be useful for stats
-+ void *fireWrapperData; // optional
-+ PollerErrorFn errorFn; // optional; called upon unrecoverable error
-+} PollOptions;
-+
-+
-+void Poll_InitDefault(void);
-+void Poll_InitDefaultEx(const PollOptions *opts);
-+void Poll_InitGtk(void); // On top of glib for Linux
-+void Poll_InitCF(void); // On top of CoreFoundation for OSX
-+
-+
-+/*
-+ * Functions
-+ */
-+int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
-+void Poll_Loop(Bool loop, Bool *exit, PollClass c);
-+void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
-+Bool Poll_LockingEnabled(void);
-+void Poll_Exit(void);
-+
-+
-+/*
-+ * Poll_Callback adds a callback regardless of whether an identical one exists.
-+ *
-+ * Likewise, Poll_CallbackRemove removes exactly one callback.
-+ */
-+
-+VMwareStatus Poll_Callback(PollClassSet classSet,
-+ int flags,
-+ PollerFunction f,
-+ void *clientData,
-+ PollEventType type,
-+ PollDevHandle info, // fd/microsec delay
-+ MXUserRecLock *lck);
-+Bool Poll_CallbackRemove(PollClassSet classSet,
-+ int flags,
-+ PollerFunction f,
-+ void *clientData,
-+ PollEventType type);
-+Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
-+ int flags,
-+ PollerFunction f,
-+ PollEventType type,
-+ void **clientData);
-+
-+void Poll_NotifyChange(PollClassSet classSet);
-+
-+/*
-+ * Wrappers for Poll_Callback and Poll_CallbackRemove that present
-+ * simpler subsets of those interfaces.
-+ */
-+
-+VMwareStatus Poll_CB_Device(PollerFunction f,
-+ void *clientData,
-+ PollDevHandle device,
-+ Bool periodic);
-+
-+Bool Poll_CB_DeviceRemove(PollerFunction f,
-+ void *clientData,
-+ Bool periodic);
-+
-+
-+VMwareStatus Poll_CB_RTime(PollerFunction f,
-+ void *clientData,
-+ int delay, // microseconds
-+ Bool periodic,
-+ MXUserRecLock *lock);
-+
-+Bool Poll_CB_RTimeRemove(PollerFunction f,
-+ void *clientData,
-+ Bool periodic);
-+
-+
-+#ifdef _WIN32
-+void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
-+Bool Poll_FireWndCallback(void *lparam);
-+#endif
-+
-+#endif // _POLL_H_
-Index: open-vm-tools/lib/rpcIn/rpcin.c
-===================================================================
---- open-vm-tools.orig/lib/rpcIn/rpcin.c
-+++ open-vm-tools/lib/rpcIn/rpcin.c
-@@ -57,7 +57,7 @@
-
- #if defined(VMTOOLS_USE_VSOCKET)
- # include <glib.h>
--# include "poll.h"
-+# include "vm_poll.h"
- # include "asyncsocket.h"
- # include "vmci_defs.h"
- #include "dataMap.h"
-Index: open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-===================================================================
---- open-vm-tools.orig/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-+++ open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-@@ -48,7 +48,7 @@
- #include "rpcout.h"
- #include "rabbitmqProxyConst.h"
- #include "vm_basic_types.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #ifdef OPEN_VM_TOOLS
- #include "vmci_sockets.h"
- #include "sslDirect.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch
new file mode 100644
index 0000000..c7d34c5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch
@@ -0,0 +1,39 @@
+From a2e7d9273261c5c5cbc33796900f415097f5455e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:16:53 -0700
+Subject: [PATCH] use posix strerror_r unless on gnu libc system
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/err/errPosix.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/lib/err/errPosix.c b/lib/err/errPosix.c
+index c81b4c13..7a403640 100644
+--- a/lib/err/errPosix.c
++++ b/lib/err/errPosix.c
+@@ -31,6 +31,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <locale.h>
++#include <stdio.h>
+
+ #include "vmware.h"
+ #include "errInt.h"
+@@ -63,11 +64,13 @@ ErrErrno2String(Err_Number errorNumber, // IN
+ {
+ char *p;
+
+-#if defined(__linux__) && !defined(__ANDROID__)
++#if defined(__GLIBC__) && !defined(__ANDROID__)
+ p = strerror_r(errorNumber, buf, bufSize);
+ #else
+- p = strerror(errorNumber);
+-#endif
++ if (strerror_r(errorNumber, buf, bufSize) != 0)
++ snprintf(buf, bufSize, "unknown error %i", errorNumber);
++ p = buf;
++#endif /* defined __GLIBC__ */
+ ASSERT(p != NULL);
+ return p;
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
deleted file mode 100644
index 0105167..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From cdb0b3c898c6b6b6c8259d9ddb8b00163ac5e419 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 09:43:18 -0700
-Subject: [PATCH 04/11] Add -Wno-incompatible-pointer-types and
- -Wno-error=address
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/dynxdr/Makefile.am | 2 +-
- open-vm-tools/lib/file/Makefile.am | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-Index: open-vm-tools/lib/dynxdr/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/dynxdr/Makefile.am
-+++ open-vm-tools/lib/dynxdr/Makefile.am
-@@ -20,4 +20,4 @@ noinst_LTLIBRARIES = libDynxdr.la
- libDynxdr_la_SOURCES =
- libDynxdr_la_SOURCES += dynxdr.c
- libDynxdr_la_SOURCES += xdrutil.c
--
-+libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types
-Index: open-vm-tools/lib/file/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/file/Makefile.am
-+++ open-vm-tools/lib/file/Makefile.am
-@@ -27,3 +27,4 @@ libFile_la_SOURCES += fileLockPrimitive.
- libFile_la_SOURCES += fileLockPosix.c
- libFile_la_SOURCES += fileTempPosix.c
- libFile_la_SOURCES += fileTemp.c
-+libFile_la_CPPFLAGS = -Wno-error=address
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch
new file mode 100644
index 0000000..e802dca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch
@@ -0,0 +1,29 @@
+From e694a122c1ff32d8b951ae55756796f9576d23ed Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:37:09 -0700
+Subject: [PATCH] Use uintmax_t for handling rlim_t
+
+rlimit types are not representable with long or long long
+formats, therefore use uintmax_t to typecast rlim_t types
+and use %j to print it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/hgfsServer/hgfsServerLinux.c b/lib/hgfsServer/hgfsServerLinux.c
+index 2e73707d..a2fdb850 100644
+--- a/lib/hgfsServer/hgfsServerLinux.c
++++ b/lib/hgfsServer/hgfsServerLinux.c
+@@ -5294,8 +5294,8 @@ HgfsWriteCheckIORange(off_t offset, // IN:
+ goto exit;
+ }
+
+- LOG(6, ("%s: File Size limits: 0x%"FMT64"x 0x%"FMT64"x\n",
+- __FUNCTION__, fileSize.rlim_cur, fileSize.rlim_max));
++ LOG(6, ("%s: File Size limits: 0x%jx 0x%jx\n",
++ __FUNCTION__, (uintmax_t)fileSize.rlim_cur, (uintmax_t)fileSize.rlim_max));
+
+ /*
+ * Check the offset is within the file size range.
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
index 5adf9b0..ad19fb2 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
@@ -29,7 +29,7 @@
===================================================================
--- open-vm-tools.orig/configure.ac
+++ open-vm-tools/configure.ac
-@@ -798,6 +798,7 @@ AC_CHECK_FUNCS(
+@@ -892,6 +892,7 @@ AC_CHECK_FUNCS(
AC_CHECK_FUNCS([ecvt])
AC_CHECK_FUNCS([fcvt])
@@ -37,7 +37,7 @@
AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
-@@ -1063,10 +1064,13 @@ AC_PATH_PROG(
+@@ -1076,10 +1077,13 @@ AC_PATH_PROG(
###
AC_CHECK_HEADERS([crypt.h])
@@ -133,12 +133,3 @@
# include <net/if.h>
#endif
#ifndef NO_DNET
-@@ -348,7 +352,7 @@ GuestInfoGetNicInfo(NicInfoV3 *nicInfo)
- *
- ******************************************************************************
- */
--#if defined(__FreeBSD__) || defined(__APPLE__) || defined(USERWORLD)
-+#if defined(NO_DNET) && defined(HAVE_GETIFADDRS)
-
- char *
- GuestInfoGetPrimaryIP(void)
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
deleted file mode 100644
index 3d1291c..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d4d1e7146ca2698089f6bd532f2fb8b9c1134ca7 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Mon, 2 Jan 2017 14:39:27 +0000
-Subject: [PATCH 08/11] use posix strerror_r unless gnu
-
----
- open-vm-tools/lib/err/errPosix.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-Index: open-vm-tools/lib/err/errPosix.c
-===================================================================
---- open-vm-tools.orig/lib/err/errPosix.c
-+++ open-vm-tools/lib/err/errPosix.c
-@@ -63,11 +63,13 @@ ErrErrno2String(Err_Number errorNumber,
- {
- char *p;
-
--#if defined(linux) && !defined(N_PLAT_NLM) && !defined(__ANDROID__)
-+#if defined(__GLIBC__)
- p = strerror_r(errorNumber, buf, bufSize);
- #else
-- p = strerror(errorNumber);
--#endif
-+ if (strerror_r(errorNumber, buf, bufSize) != 0)
-+ snprintf(buf, bufSize, "unknown error %i", errorNumber);
-+ p = buf;
-+#endif /* defined __GLIBC__ */
- ASSERT(p != NULL);
- return p;
- }
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
deleted file mode 100644
index 2bee5ac..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
+++ /dev/null
@@ -1,342 +0,0 @@
-From 5ae6c662fefa621f4600559e299a7d97c2254e69 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Sun, 16 Jul 2017 10:20:10 -0700
-Subject: [PATCH 1/3] Add support for building with system libtirpc
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- open-vm-tools/configure.ac | 14 ++++++++++++++
- open-vm-tools/lib/dynxdr/Makefile.am | 8 ++++++--
- open-vm-tools/lib/err/errPosix.c | 1 +
- open-vm-tools/lib/guestRpc/Makefile.am | 6 ++++++
- open-vm-tools/lib/misc/Makefile.am | 1 +
- open-vm-tools/lib/netUtil/Makefile.am | 4 ++++
- open-vm-tools/lib/nicInfo/Makefile.am | 2 ++
- open-vm-tools/lib/rpcChannel/Makefile.am | 4 ++++
- open-vm-tools/lib/slashProc/Makefile.am | 4 ++++
- open-vm-tools/lib/string/bsd_output_shared.c | 2 +-
- open-vm-tools/libguestlib/Makefile.am | 2 ++
- open-vm-tools/rpctool/Makefile.am | 3 +++
- open-vm-tools/rpctool/rpctool.c | 2 ++
- open-vm-tools/services/plugins/dndcp/Makefile.am | 2 ++
- open-vm-tools/services/plugins/guestInfo/Makefile.am | 1 +
- open-vm-tools/services/plugins/resolutionSet/Makefile.am | 2 ++
- open-vm-tools/services/plugins/vix/Makefile.am | 2 ++
- open-vm-tools/services/plugins/vmbackup/Makefile.am | 2 ++
- open-vm-tools/toolbox/Makefile.am | 2 ++
- 19 files changed, 61 insertions(+), 3 deletions(-)
-
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -405,6 +405,20 @@ AC_VMW_CHECK_LIB([fuse],
- AC_MSG_WARN([Fuse is missing, vmblock-fuse/vmhgfs-fuse will be disabled.])])
-
- #
-+# Check for libtirpc
-+#
-+AC_VMW_CHECK_LIB([libtirpc],
-+ [LIBTIRPC],
-+ [libtirpc],
-+ [],
-+ [],
-+ [rpc/xdr.h],
-+ [xdr_void],
-+ [have_libtirpc=yes],
-+ [have_libtitirpc=no;
-+ AC_MSG_WARN([libtirpc is missing.])])
-+
-+#
- # Check for PAM.
- #
- AC_ARG_WITH([pam],
-Index: open-vm-tools/lib/dynxdr/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/dynxdr/Makefile.am
-+++ open-vm-tools/lib/dynxdr/Makefile.am
-@@ -17,7 +17,11 @@
-
- noinst_LTLIBRARIES = libDynxdr.la
-
--libDynxdr_la_SOURCES =
-+libDynxdr_la_SOURCES =
- libDynxdr_la_SOURCES += dynxdr.c
- libDynxdr_la_SOURCES += xdrutil.c
--libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types
-+libDynxdr_la_CPPFLAGS = @LIBTIRPC_CPPFLAGS@ -Wno-incompatible-pointer-types
-+
-+libDynxdr_la_LIBADD =
-+libDynxdr_la_LIBADD += @LIBTIRPC_LIBS@
-+
-Index: open-vm-tools/lib/err/errPosix.c
-===================================================================
---- open-vm-tools.orig/lib/err/errPosix.c
-+++ open-vm-tools/lib/err/errPosix.c
-@@ -31,6 +31,7 @@
- #include <errno.h>
- #include <string.h>
- #include <locale.h>
-+#include <stdio.h>
-
- #include "vmware.h"
- #include "errInt.h"
-Index: open-vm-tools/lib/guestRpc/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/guestRpc/Makefile.am
-+++ open-vm-tools/lib/guestRpc/Makefile.am
-@@ -20,6 +20,12 @@ noinst_LTLIBRARIES = libGuestRpc.la
- libGuestRpc_la_SOURCES =
- libGuestRpc_la_SOURCES += nicinfo_xdr.c
-
-+libGuestRpc_la_CPPFLAGS =
-+libGuestRpc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libGuestRpc_la_LIBADD =
-+libGuestRpc_la_LIBADD += @LIBTIRPC_LIBS@
-+
- # XXX: Autoreconf complains about this and recommends using AM_CFLAGS instead.
- # Problem is, $(CFLAGS) is appended to the compiler command line after AM_CFLAGS
- # and after libGuestRpc_la_CFLAGS, so "-Wall -Werror" will override this flag.
-Index: open-vm-tools/lib/misc/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/misc/Makefile.am
-+++ open-vm-tools/lib/misc/Makefile.am
-@@ -52,4 +52,5 @@ libMisc_la_SOURCES += utilMem.c
- libMisc_la_SOURCES += vmstdio.c
- libMisc_la_SOURCES += strutil.c
- libMisc_la_SOURCES += vthreadBase.c
-+libMisc_la_CPPFLAGS = -Wno-error=int-conversion
-
-Index: open-vm-tools/lib/netUtil/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/netUtil/Makefile.am
-+++ open-vm-tools/lib/netUtil/Makefile.am
-@@ -20,3 +20,7 @@ noinst_LTLIBRARIES = libNetUtil.la
- libNetUtil_la_SOURCES =
- libNetUtil_la_SOURCES += netUtilLinux.c
-
-+libNetUtil_la_CPPFLAGS =
-+libNetUtil_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libNetUtil_la_LIBADD = @LIBTIRPC_LIBS@
-Index: open-vm-tools/lib/nicInfo/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/nicInfo/Makefile.am
-+++ open-vm-tools/lib/nicInfo/Makefile.am
-@@ -25,12 +25,14 @@ libNicInfo_la_SOURCES += nicInfoPosix.c
-
- libNicInfo_la_CPPFLAGS =
- libNicInfo_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libNicInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- AM_CFLAGS = $(DNET_CPPFLAGS)
- if USE_SLASH_PROC
- AM_CFLAGS += -DUSE_SLASH_PROC
- endif
- libNicInfo_la_LIBADD =
-+libNicInfo_la_LIBADD += @LIBTIRPC_LIBS@
- if HAVE_DNET
- libNicInfo_la_LIBADD += @DNET_LIBS@
- endif
-Index: open-vm-tools/lib/rpcChannel/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/rpcChannel/Makefile.am
-+++ open-vm-tools/lib/rpcChannel/Makefile.am
-@@ -27,3 +27,7 @@ endif
-
- libRpcChannel_la_CPPFLAGS =
- libRpcChannel_la_CPPFLAGS += @VMTOOLS_CPPFLAGS@
-+libRpcChannel_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libRpcChannel_la_LIBADD =
-+libRpcChannel_la_LIBADD += @LIBTIRPC_LIBS@
-Index: open-vm-tools/lib/slashProc/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/slashProc/Makefile.am
-+++ open-vm-tools/lib/slashProc/Makefile.am
-@@ -22,6 +22,10 @@ libSlashProc_la_SOURCES += net.c
-
- libSlashProc_la_CPPFLAGS =
- libSlashProc_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libSlashProc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libSlashProc_la_LIBADD =
-+libSlashProc_la_LIBADD += @LIBTIRPC_LIBS@
-
- AM_CFLAGS = $(DNET_CPPFLAGS)
-
-Index: open-vm-tools/lib/string/bsd_output_shared.c
-===================================================================
---- open-vm-tools.orig/lib/string/bsd_output_shared.c
-+++ open-vm-tools/lib/string/bsd_output_shared.c
-@@ -38,7 +38,7 @@
- //#include <sys/cdefs.h>
-
- #if !defined(STR_NO_WIN32_LIBS) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__ANDROID__)
--
-+#define _GNU_SOURCE
- #include <stdio.h>
- #include <stdlib.h>
- #ifndef _WIN32
-Index: open-vm-tools/libguestlib/Makefile.am
-===================================================================
---- open-vm-tools.orig/libguestlib/Makefile.am
-+++ open-vm-tools/libguestlib/Makefile.am
-@@ -22,6 +22,7 @@ AM_CFLAGS += -I$(top_srcdir)/include
-
- libguestlib_la_LIBADD =
- libguestlib_la_LIBADD += @VMTOOLS_LIBS@
-+libguestlib_la_LIBADD += @LIBTIRPC_LIBS@
-
- libguestlib_la_SOURCES =
- libguestlib_la_SOURCES += guestlibV3_xdr.c
-@@ -56,6 +57,7 @@ CFLAGS += -Wno-unused
- libguestlib_la_CPPFLAGS =
- libguestlib_la_CPPFLAGS += -DVMTOOLS_USE_GLIB
- libguestlib_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libguestlib_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- EXTRA_DIST = vmguestlib.pc.in
-
-Index: open-vm-tools/rpctool/Makefile.am
-===================================================================
---- open-vm-tools.orig/rpctool/Makefile.am
-+++ open-vm-tools/rpctool/Makefile.am
-@@ -17,10 +17,13 @@
-
- bin_PROGRAMS = vmware-rpctool
-
-+vmware_rpctool_CFLAGS= @LIBTIRPC_LIBS@
-+
- vmware_rpctool_SOURCES =
- vmware_rpctool_SOURCES += rpctool.c
-
- vmware_rpctool_LDADD =
-+vmware_rpctool_LDADD += @LIBTIRPC_LIBS@
- vmware_rpctool_LDADD += ../lib/rpcOut/libRpcOut.la
- vmware_rpctool_LDADD += ../lib/message/libMessage.la
- vmware_rpctool_LDADD += ../lib/backdoor/libBackdoor.la
-Index: open-vm-tools/rpctool/rpctool.c
-===================================================================
---- open-vm-tools.orig/rpctool/rpctool.c
-+++ open-vm-tools/rpctool/rpctool.c
-@@ -23,6 +23,8 @@
- */
-
- #ifndef _WIN32
-+#define _GNU_SOURCE
-+#include <signal.h>
- #include "sigPosixRegs.h"
- #include <errno.h>
- #include <stdint.h>
-Index: open-vm-tools/services/plugins/dndcp/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/dndcp/Makefile.am
-+++ open-vm-tools/services/plugins/dndcp/Makefile.am
-@@ -23,6 +23,7 @@ plugin_LTLIBRARIES = libdndcp.la
- libdndcp_la_CPPFLAGS =
- libdndcp_la_CPPFLAGS += @GTK_CPPFLAGS@
- libdndcp_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libdndcp_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dnd
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dndGuest
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/stringxx
-@@ -44,6 +45,7 @@ libdndcp_la_LIBADD += @GTK_LIBS@
- libdndcp_la_LIBADD += @GTKMM_LIBS@
- libdndcp_la_LIBADD += @VMTOOLS_LIBS@
- libdndcp_la_LIBADD += @HGFS_LIBS@
-+libdndcp_la_LIBADD += @LIBTIRPC_LIBS@
- libdndcp_la_LIBADD += $(top_builddir)/lib/hgfsUri/hgfsUriPosix.lo
-
- libdndcp_la_SOURCES =
-Index: open-vm-tools/services/plugins/guestInfo/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/guestInfo/Makefile.am
-+++ open-vm-tools/services/plugins/guestInfo/Makefile.am
-@@ -22,6 +22,7 @@ plugin_LTLIBRARIES = libguestInfo.la
-
- libguestInfo_la_CPPFLAGS =
- libguestInfo_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libguestInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- libguestInfo_la_LDFLAGS =
- libguestInfo_la_LDFLAGS += @PLUGIN_LDFLAGS@
-Index: open-vm-tools/services/plugins/resolutionSet/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/resolutionSet/Makefile.am
-+++ open-vm-tools/services/plugins/resolutionSet/Makefile.am
-@@ -21,6 +21,7 @@ plugin_LTLIBRARIES = libresolutionSet.la
- libresolutionSet_la_CPPFLAGS =
- libresolutionSet_la_CPPFLAGS += @GTK_CPPFLAGS@
- libresolutionSet_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libresolutionSet_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libresolutionSet_la_CPPFLAGS += -DRESOLUTION_X11
-
- libresolutionSet_la_LDFLAGS =
-@@ -30,6 +31,7 @@ libresolutionSet_la_LIBADD =
- libresolutionSet_la_LIBADD += @COMMON_XLIBS@
- libresolutionSet_la_LIBADD += @GTK_LIBS@
- libresolutionSet_la_LIBADD += @VMTOOLS_LIBS@
-+libresolutionSet_la_LIBADD += @LIBTIRPC_LIBS@
-
- libresolutionSet_la_SOURCES =
- libresolutionSet_la_SOURCES += libvmwarectrl.c
-Index: open-vm-tools/services/plugins/vix/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/vix/Makefile.am
-+++ open-vm-tools/services/plugins/vix/Makefile.am
-@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvix.la
-
- libvix_la_CPPFLAGS =
- libvix_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libvix_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libvix_la_CPPFLAGS += -I$(top_srcdir)/vgauth/public
-
- libvix_la_LDFLAGS =
-@@ -29,6 +30,7 @@ libvix_la_LIBADD =
- libvix_la_LIBADD += @VIX_LIBADD@
- libvix_la_LIBADD += @VMTOOLS_LIBS@
- libvix_la_LIBADD += @HGFS_LIBS@
-+libvix_la_LIBADD += @LIBTIRPC_LIBS@
- libvix_la_LIBADD += $(top_builddir)/lib/auth/libAuth.la
- libvix_la_LIBADD += $(top_builddir)/lib/foundryMsg/libFoundryMsg.la
- libvix_la_LIBADD += $(top_builddir)/lib/impersonate/libImpersonate.la
-Index: open-vm-tools/services/plugins/vmbackup/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/vmbackup/Makefile.am
-+++ open-vm-tools/services/plugins/vmbackup/Makefile.am
-@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvmbackup.la
-
- libvmbackup_la_CPPFLAGS =
- libvmbackup_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libvmbackup_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- libvmbackup_la_LDFLAGS =
- libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAGS@
-@@ -27,6 +28,7 @@ libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAG
- libvmbackup_la_LIBADD =
- libvmbackup_la_LIBADD += @GOBJECT_LIBS@
- libvmbackup_la_LIBADD += @VMTOOLS_LIBS@
-+libvmbackup_la_LIBADD += @LIBTIRPC_LIBS@
-
- libvmbackup_la_SOURCES =
- libvmbackup_la_SOURCES += nullProvider.c
-Index: open-vm-tools/toolbox/Makefile.am
-===================================================================
---- open-vm-tools.orig/toolbox/Makefile.am
-+++ open-vm-tools/toolbox/Makefile.am
-@@ -20,9 +20,11 @@ bin_PROGRAMS = vmware-toolbox-cmd
- vmware_toolbox_cmd_LDADD =
- vmware_toolbox_cmd_LDADD += ../libguestlib/libguestlib.la
- vmware_toolbox_cmd_LDADD += @VMTOOLS_LIBS@
-+vmware_toolbox_cmd_LDADD += @LIBTIRPC_LIBS@
-
- vmware_toolbox_cmd_CPPFLAGS =
- vmware_toolbox_cmd_CPPFLAGS += @VMTOOLS_CPPFLAGS@
-+vmware_toolbox_cmd_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- vmware_toolbox_cmd_SOURCES =
- vmware_toolbox_cmd_SOURCES += toolbox-cmd.c
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
deleted file mode 100644
index c9beac1..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 27442e2dd287d393d7b3f8bf164a887affef84df Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 10:27:51 +0000
-Subject: [PATCH 10/11] gnu-ucontext
-
----
- open-vm-tools/lib/include/sigPosixRegs.h | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
-Index: open-vm-tools/lib/include/sigPosixRegs.h
-===================================================================
---- open-vm-tools.orig/lib/include/sigPosixRegs.h
-+++ open-vm-tools/lib/include/sigPosixRegs.h
-@@ -33,7 +33,7 @@
- #include "includeCheck.h"
-
-
--#if __linux__ // We need the REG_foo offsets in the gregset_t;
-+#if defined(__GLIBC__) // We need the REG_foo offsets in the gregset_t;
- # define _GNU_SOURCE // _GNU_SOURCE maps to __USE_GNU
-
- /* And, the REG_foo definitions conflict with our own in x86.h */
-@@ -73,7 +73,7 @@
- #include <sys/ucontext.h>
- #endif
-
--#if __linux__
-+#if defined(__GLIBC__)
- # if defined(__x86_64__)
- # undef REG_RAX
- # undef REG_RBX
-@@ -199,7 +199,7 @@
- #define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.mc_esp)
- #define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.mc_eip)
- #endif
--#elif defined (sun)
-+#elif !defined (__GLIBC__)
- #ifdef __x86_64__
- #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RAX])
- #define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RBX])
-@@ -219,15 +219,15 @@
- #define SC_R14(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R14])
- #define SC_R15(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R15])
- #else
--#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EAX])
--#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBX])
--#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ECX])
--#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDX])
--#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDI])
--#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESI])
--#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBP])
--#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESP])
--#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EIP])
-+#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EAX])
-+#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBX])
-+#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ECX])
-+#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDX])
-+#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDI])
-+#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESI])
-+#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBP])
-+#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESP])
-+#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EIP])
- #endif
- #elif defined(ANDROID_X86)
- #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.eax)
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch
new file mode 100644
index 0000000..1a6bfdb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch
@@ -0,0 +1,12 @@
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -303,6 +303,7 @@ AC_ARG_ENABLE(
+ [],
+ [enable_resolutionkms="auto"])
+
++AM_INIT_AUTOMAKE([subdir-objects])
+ AM_INIT_AUTOMAKE
+
+ ###
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/tools.conf
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/tools.conf
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
deleted file mode 100644
index c32d2c5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-# This recipe is modified from the recipe originally found in the Open-Switch
-# repository:
-#
-# https://github.com/open-switch/ops-build
-# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
-# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
-#
-# The recipe packaging has been relicensed under the MIT license for inclusion
-# in meta-openembedded by agreement of the author (Diego Dompe).
-#
-
-SUMMARY = "Tools to enhance VMWare guest integration and performance"
-HOMEPAGE = "https://github.com/vmware/open-vm-tools"
-SECTION = "vmware-tools"
-
-LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b66ba4cb4fc017682c95efc300410e79"
-LICENSE_modules/freebsd/vmblock = "BSD"
-LICENSE_modules/freebsd/vmmemctl = "GPL-2.0"
-LICENSE_modules/freebsd/vmxnet = "GPL-2.0"
-LICENSE_modules/linux = "GPL-2.0"
-LICENSE_modules/solaris = "CDDL-1.0"
-
-SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
- file://tools.conf \
- file://vmtoolsd.service \
- file://vmtoolsd.init \
- file://0001-configure.ac-don-t-use-dnet-config.patch \
- file://0002-add-include-sys-sysmacros.h.patch \
- file://0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch \
- file://0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch \
- file://0003-Rename-poll.h-to-vm_poll.h.patch \
- file://0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch \
- file://0005-Use-configure-test-for-struct-timespec.patch \
- file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \
- file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \
- file://0008-use-posix-strerror_r-unless-gnu.patch \
- file://0011-Use-configure-test-for-sys-stat.h-include.patch \
- "
-SRC_URI_append_libc-musl = "\
- file://0009-Add-support-for-building-with-system-libtirpc.patch \
- file://0010-gnu-ucontext.patch \
- "
-SRCREV = "854c0bb374612f7e633b448ca273f970f154458b"
-
-S = "${WORKDIR}/git/open-vm-tools"
-
-DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps"
-DEPENDS_append_libc-musl = " libtirpc"
-
-# open-vm-tools is supported only on x86.
-COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
-
-inherit autotools pkgconfig systemd update-rc.d
-
-SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
-
-EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
- --disable-tests --without-gtkmm --without-xerces --without-pam \
- --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \
- --without-root-privileges --without-kernel-modules"
-
-NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
-X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
-PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
-
-# fuse gets implicitly detected; there is no --without-fuse option.
-PACKAGECONFIG[fuse] = ",,fuse"
-
-CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member"
-FILES_${PN} += "\
- ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
- ${libdir}/open-vm-tools/plugins/common/lib*.so \
- ${sysconfdir}/vmware-tools/tools.conf \
- "
-FILES_${PN}-locale += "${datadir}/open-vm-tools/messages"
-FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
-FILES_${PN}-dbg += "\
- ${libdir}/open-vm-tools/plugins/common/.debug \
- ${libdir}/open-vm-tools/plugins/vmsvc/.debug \
- "
-
-CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf"
-
-RDEPENDS_${PN} = "util-linux libdnet fuse"
-
-do_install_append() {
- ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
- install -d ${D}${sysconfdir}/vmware-tools
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
- else
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
- fi
- install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
-}
-
-do_configure_prepend() {
- export CUSTOM_DNET_NAME=dnet
- export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
-}
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME_${PN} = "vmtoolsd"
-INITSCRIPT_PARAMS_${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
-
-python() {
- if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
- 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
- raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.')
-}
-
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.0.bb b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.0.bb
new file mode 100644
index 0000000..478d762
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.0.bb
@@ -0,0 +1,110 @@
+# This recipe is modified from the recipe originally found in the Open-Switch
+# repository:
+#
+# https://github.com/open-switch/ops-build
+# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
+# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
+#
+# The recipe packaging has been relicensed under the MIT license for inclusion
+# in meta-openembedded by agreement of the author (Diego Dompe).
+#
+
+SUMMARY = "Tools to enhance VMWare guest integration and performance"
+HOMEPAGE = "https://github.com/vmware/open-vm-tools"
+SECTION = "vmware-tools"
+
+LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
+LICENSE_modules/freebsd/vmblock = "BSD"
+LICENSE_modules/freebsd/vmmemctl = "GPL-2.0"
+LICENSE_modules/freebsd/vmxnet = "GPL-2.0"
+LICENSE_modules/linux = "GPL-2.0"
+LICENSE_modules/solaris = "CDDL-1.0"
+
+SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
+ file://tools.conf \
+ file://vmtoolsd.service \
+ file://vmtoolsd.init \
+ file://0001-configure.ac-don-t-use-dnet-config.patch \
+ file://0002-add-include-sys-sysmacros.h.patch \
+ file://0005-Use-configure-test-for-struct-timespec.patch \
+ file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \
+ file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \
+ file://0011-Use-configure-test-for-sys-stat.h-include.patch \
+ file://fix-subdir-objects-configure-error.patch \
+ file://0001-include-poll.h-instead-of-sys-poll.h.patch \
+ file://0002-Rename-poll.h-to-vm_poll.h.patch \
+ file://0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch \
+ file://0004-Use-uintmax_t-for-handling-rlim_t.patch \
+ file://0001-Use-off64_t-instead-of-__off64_t.patch \
+ "
+SRCREV = "2147df6aabe639fc5ff423ed791a8e7f02bf8d0a"
+
+S = "${WORKDIR}/git/open-vm-tools"
+
+DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
+
+# open-vm-tools is supported only on x86.
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+inherit autotools pkgconfig systemd update-rc.d
+
+SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
+
+EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
+ --disable-tests --without-gtkmm --without-xerces --without-pam \
+ --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \
+ --without-root-privileges --without-kernel-modules"
+
+NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
+X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
+PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
+
+# fuse gets implicitly detected; there is no --without-fuse option.
+PACKAGECONFIG[fuse] = ",,fuse"
+
+CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member"
+FILES_${PN} += "\
+ ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
+ ${libdir}/open-vm-tools/plugins/common/lib*.so \
+ ${sysconfdir}/vmware-tools/tools.conf \
+ "
+FILES_${PN}-locale += "${datadir}/open-vm-tools/messages"
+FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
+FILES_${PN}-dbg += "\
+ ${libdir}/open-vm-tools/plugins/common/.debug \
+ ${libdir}/open-vm-tools/plugins/vmsvc/.debug \
+ "
+
+CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf"
+
+RDEPENDS_${PN} = "util-linux libdnet fuse"
+
+do_install_append() {
+ ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
+ install -d ${D}${sysconfdir}/vmware-tools
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
+ else
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
+ fi
+ install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
+}
+
+do_configure_prepend() {
+ export CUSTOM_DNET_NAME=dnet
+ export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
+}
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME_${PN} = "vmtoolsd"
+INITSCRIPT_PARAMS_${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
+
+python() {
+ if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
+ 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.')
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
index 913290c..67b7c29 100644
--- a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -88,7 +88,3 @@
touch ${D}${localstatedir}/run/openct/status
chmod 644 ${D}${localstatedir}/run/openct/status
}
-
-pkg_postinst_${PN} () {
- ln -sf ctapi/libopenctapi.so ${libdir}/libopenctapi.so
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch
new file mode 100644
index 0000000..513597b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch
@@ -0,0 +1,36 @@
+From 60857229aab13ccc426572a43ab891409bb76ea4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 9 Sep 2018 22:52:55 -0700
+Subject: [PATCH] Add missing multi-line separator
+
+Otherwise this fails to build ( found on mips )
+
+Fixes
+contrib/modules/surface_matching/src/hash_murmur86.hpp:97:15: error:
+expected constructor, destructor, or type conversion before '(' token
+ && defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 &&
+__GNUC_MINOR__>=3))
+ ^
+
+Upstream-Status: Submitted [https://github.com/opencv/opencv_contrib/pull/1764]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/surface_matching/src/hash_murmur86.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/surface_matching/src/hash_murmur86.hpp b/modules/surface_matching/src/hash_murmur86.hpp
+index 1edf6bf4..0477d37e 100644
+--- a/modules/surface_matching/src/hash_murmur86.hpp
++++ b/modules/surface_matching/src/hash_murmur86.hpp
+@@ -93,7 +93,7 @@ void hashMurmurx86 ( const void * key, const int len, const uint seed, void * ou
+ /* Now find best way we can to READ_UINT32 */
+ #ifndef WORDS_BIGENDIAN
+ # define READ_UINT32(ptr) (*((uint32_t*)(ptr)))
+-#elif defined(WORDS_BIGENDIAN)
++#elif defined(WORDS_BIGENDIAN) \
+ && defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 && __GNUC_MINOR__>=3))
+ # define READ_UINT32(ptr) (__builtin_bswap32(*((uint32_t*)(ptr))))
+ #endif
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch
new file mode 100644
index 0000000..319071a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch
@@ -0,0 +1,32 @@
+From fa76d8646bb2b9b514728eeef41afed7c43a36f2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Sep 2018 18:18:33 -0700
+Subject: [PATCH] Check for clang before using -isystem
+
+When cross compiling with clang, the internal C++ headers are not found
+when adding sysroot to -isystem, that is redundant anyway because it
+will look for headers insider --sysroot path with same quality as it
+would do with -isystem otherwise
+
+Upstream-Status: Submitted [https://github.com/opencv/opencv/pull/12504]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/OpenCVUtils.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake
+index fae91c165f..60c20192dc 100644
+--- a/cmake/OpenCVUtils.cmake
++++ b/cmake/OpenCVUtils.cmake
+@@ -259,7 +259,7 @@ function(ocv_include_directories)
+ ocv_is_opencv_directory(__is_opencv_dir "${dir}")
+ if(__is_opencv_dir)
+ list(APPEND __add_before "${dir}")
+- elseif(CV_GCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0" AND
++ elseif(((CV_GCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0") OR CV_CLANG) AND
+ dir MATCHES "/usr/include$")
+ # workaround for GCC 6.x bug
+ else()
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
index 6dd48fc..bf0b80a 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
@@ -1,26 +1,30 @@
-From 2bc6bb9831d07f035fea74ea745cea43dd5f9ef9 Mon Sep 17 00:00:00 2001
+From 7144c44ec70dee73a628463b99ffeed74b1a8ef6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 9 Sep 2017 23:48:31 -0700
+Date: Tue, 11 Sep 2018 00:21:18 -0700
Subject: [PATCH] Dont use isystem
+clang really does not like it
+
+Upstream-Status: Pending
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
-Upstream-Status: Pending
+ cmake/OpenCVPCHSupport.cmake | 2 ++
+ 1 file changed, 2 insertions(+)
- cmake/OpenCVPCHSupport.cmake | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
-Index: git/cmake/OpenCVPCHSupport.cmake
-===================================================================
---- git.orig/cmake/OpenCVPCHSupport.cmake
-+++ git/cmake/OpenCVPCHSupport.cmake
-@@ -17,7 +17,8 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
- IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2.0")
+diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake
+index f9b1b48b65..fe27a136f5 100644
+--- a/cmake/OpenCVPCHSupport.cmake
++++ b/cmake/OpenCVPCHSupport.cmake
+@@ -18,6 +18,8 @@ IF(CV_GCC)
SET(PCHSupport_FOUND TRUE)
ENDIF()
--
+
+ SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I")
+ SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I")
SET(_PCH_include_prefix "-I")
SET(_PCH_isystem_prefix "-isystem")
SET(_PCH_define_prefix "-D")
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch
new file mode 100644
index 0000000..63cb7f9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch
@@ -0,0 +1,33 @@
+From 7d31f41d2a6759e244983504ce855fc32916b97a Mon Sep 17 00:00:00 2001
+From: Jason Wessel <jason.wessel@windriver.com>
+Date: Wed, 9 May 2018 13:33:59 -0700
+Subject: [PATCH] Temporarliy work around deprecated ffmpeg RAW function
+ compile failure until next uprev
+
+Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
+---
+ modules/videoio/src/cap_ffmpeg_impl.hpp | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp
+index 5a9b10f075..97c6b74b07 100644
+--- a/modules/videoio/src/cap_ffmpeg_impl.hpp
++++ b/modules/videoio/src/cap_ffmpeg_impl.hpp
+@@ -667,6 +667,14 @@ struct ImplMutex::Impl
+
+ #endif
+
++/* NOTE This is deprecated in ffmpeg and the code should be removed */
++#ifndef AVFMT_RAWPICTURE
++#define AVFMT_RAWPICTURE 0x0020
++#endif /* AVFMT_RAWPICTURE */
++#ifndef CODEC_FLAG_GLOBAL_HEADER
++#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
++#endif
++
+ void ImplMutex::init()
+ {
+ impl = new Impl();
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
deleted file mode 100644
index 0140633..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/0d854db361106dfcb055231fd0112c5b85ef2287]
-
-Fix CVEs for opencv 3.3.
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 0d854db361106dfcb055231fd0112c5b85ef2287 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
-Date: Tue, 15 Aug 2017 21:45:05 +0000
-Subject: [PATCH 1/3] build: workaround GCC 7.1.1 compilation issue with
- sanitize flags
-
-Version: gcc (GCC) 7.1.1 20170622 (Red Hat 7.1.1-3)
-Flags: -fsanitize=address,undefined
----
- modules/ts/src/cuda_test.cpp | 56 ++++++++++++++++++++++++++------------------
- 1 file changed, 33 insertions(+), 23 deletions(-)
-
-diff --git a/modules/ts/src/cuda_test.cpp b/modules/ts/src/cuda_test.cpp
-index a48e0a087..eb4cee136 100644
---- a/modules/ts/src/cuda_test.cpp
-+++ b/modules/ts/src/cuda_test.cpp
-@@ -322,16 +322,20 @@ namespace cvtest
-
- if (m1.size() != m2.size())
- {
-- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \""
-- << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \""
-- << expr2 << "\" [" << PrintToString(m2.size()) << "]";
-+ std::stringstream msg;
-+ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \""
-+ << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \""
-+ << expr2 << "\" [" << PrintToString(m2.size()) << "]";
-+ return AssertionFailure() << msg.str();
- }
-
- if (m1.type() != m2.type())
- {
-- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \""
-- << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \""
-- << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]";
-+ std::stringstream msg;
-+ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \""
-+ << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \""
-+ << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]";
-+ return AssertionFailure() << msg.str();
- }
-
- Mat diff;
-@@ -343,12 +347,14 @@ namespace cvtest
-
- if (maxVal > eps)
- {
-- return AssertionFailure() << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2
-- << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")"
-- << ", which exceeds \"" << eps_expr << "\", where \""
-- << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \""
-- << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \""
-- << eps_expr << "\" evaluates to " << eps;
-+ std::stringstream msg;
-+ msg << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2
-+ << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")"
-+ << ", which exceeds \"" << eps_expr << "\", where \""
-+ << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \""
-+ << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \""
-+ << eps_expr << "\" evaluates to " << eps;
-+ return AssertionFailure() << msg.str();
- }
-
- return AssertionSuccess();
-@@ -469,9 +475,11 @@ namespace cvtest
- {
- if (gold.size() != actual.size())
- {
-- return testing::AssertionFailure() << "KeyPoints size mistmach\n"
-- << "\"" << gold_expr << "\" : " << gold.size() << "\n"
-- << "\"" << actual_expr << "\" : " << actual.size();
-+ std::stringstream msg;
-+ msg << "KeyPoints size mistmach\n"
-+ << "\"" << gold_expr << "\" : " << gold.size() << "\n"
-+ << "\"" << actual_expr << "\" : " << actual.size();
-+ return AssertionFailure() << msg.str();
- }
-
- std::sort(actual.begin(), actual.end(), KeyPointLess());
-@@ -484,14 +492,16 @@ namespace cvtest
-
- if (!keyPointsEquals(p1, p2))
- {
-- return testing::AssertionFailure() << "KeyPoints differ at " << i << "\n"
-- << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n"
-- << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n"
-- << "size : " << p1.size << " vs " << p2.size << "\n"
-- << "angle : " << p1.angle << " vs " << p2.angle << "\n"
-- << "response : " << p1.response << " vs " << p2.response << "\n"
-- << "octave : " << p1.octave << " vs " << p2.octave << "\n"
-- << "class_id : " << p1.class_id << " vs " << p2.class_id;
-+ std::stringstream msg;
-+ msg << "KeyPoints differ at " << i << "\n"
-+ << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n"
-+ << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n"
-+ << "size : " << p1.size << " vs " << p2.size << "\n"
-+ << "angle : " << p1.angle << " vs " << p2.angle << "\n"
-+ << "response : " << p1.response << " vs " << p2.response << "\n"
-+ << "octave : " << p1.octave << " vs " << p2.octave << "\n"
-+ << "class_id : " << p1.class_id << " vs " << p2.class_id;
-+ return AssertionFailure() << msg.str();
- }
- }
-
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
deleted file mode 100644
index a1a56e0..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
+++ /dev/null
@@ -1,1250 +0,0 @@
-From 353fc92618ce0dc6bab4a3e8bff1c13c3b613110 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 23 Aug 2017 17:41:23 +0300
-Subject: [PATCH 1/2] carotene: don't use __asm__ with aarch64
-
----
-Upstream-Status: Backport
-
- 3rdparty/carotene/src/channel_extract.cpp | 4 +-
- 3rdparty/carotene/src/channels_combine.cpp | 2 +-
- 3rdparty/carotene/src/colorconvert.cpp | 104 ++++++++++++++---------------
- 3rdparty/carotene/src/convert.cpp | 54 +++++++--------
- 3rdparty/carotene/src/convert_scale.cpp | 72 ++++++++++----------
- 3rdparty/carotene/src/gaussian_blur.cpp | 6 +-
- 3rdparty/carotene/src/pyramid.cpp | 20 +++---
- 3rdparty/carotene/src/scharr.cpp | 4 +-
- 8 files changed, 133 insertions(+), 133 deletions(-)
-
-diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp
-index f663bc6005..8238a3ece8 100644
---- a/3rdparty/carotene/src/channel_extract.cpp
-+++ b/3rdparty/carotene/src/channel_extract.cpp
-@@ -231,7 +231,7 @@ void extract4(const Size2D &size,
- srcStride == dst2Stride && \
- srcStride == dst3Stride &&
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define SPLIT_ASM2(sgn, bits) __asm__ ( \
- "vld2." #bits " {d0, d2}, [%[in0]] \n\t" \
-@@ -351,7 +351,7 @@ void extract4(const Size2D &size,
- } \
- }
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define ALPHA_QUAD(sgn, bits) { \
- internal::prefetch(src + sj); \
-diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp
-index 157c8b8121..fc98fb9181 100644
---- a/3rdparty/carotene/src/channels_combine.cpp
-+++ b/3rdparty/carotene/src/channels_combine.cpp
-@@ -77,7 +77,7 @@ namespace CAROTENE_NS {
- dstStride == src2Stride && \
- dstStride == src3Stride &&
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define MERGE_ASM2(sgn, bits) __asm__ ( \
- "vld1." #bits " {d0-d1}, [%[in0]] \n\t" \
-diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp
-index 3037fe672a..26ae54b15c 100644
---- a/3rdparty/carotene/src/colorconvert.cpp
-+++ b/3rdparty/carotene/src/colorconvert.cpp
-@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 48)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0}, [%[in]] \n\t"
- "vmov.8 d1, d0 \n\t"
-@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size,
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register uint8x16_t vc255 asm ("q4") = vmovq_n_u8(255);
- #else
- uint8x16x4_t vRgba;
-@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 64)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d5}, [%[in]] \n\t"
- "vmov.8 d6, d5 \n\t"
-@@ -672,7 +672,7 @@ void rgb2rgbx(const Size2D &size,
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- register uint8x8_t vc255_0 asm ("d3") = vmov_n_u8(255);
- #else
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
-@@ -688,7 +688,7 @@ void rgb2rgbx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -742,7 +742,7 @@ void rgbx2rgb(const Size2D &size,
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- union { uint8x16x4_t v4; uint8x16x3_t v3; } v_dst0;
- union { uint8x8x4_t v4; uint8x8x3_t v3; } v_dst;
-@@ -754,7 +754,7 @@ void rgbx2rgb(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -805,7 +805,7 @@ void rgb2bgr(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -817,7 +817,7 @@ void rgb2bgr(const Size2D &size,
- size_t sj = 0u, dj = 0u, j = 0u;
-
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -874,7 +874,7 @@ void rgbx2bgrx(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -885,7 +885,7 @@ void rgbx2bgrx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -943,7 +943,7 @@ void rgbx2bgr(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -954,7 +954,7 @@ void rgbx2bgr(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -1010,7 +1010,7 @@ void rgb2bgrx(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- register uint8x8_t vc255 asm ("d3") = vmov_n_u8(255);
- #else
- union { uint8x16x4_t v4; uint8x16x3_t v3; } vals0;
-@@ -1019,7 +1019,7 @@ void rgb2bgrx(const Size2D &size,
- vals8.v4.val[3] = vmov_n_u8(255);
- #endif
-
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -1030,7 +1030,7 @@ void rgb2bgrx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b,
- "d24","d25","d26","d27","d28","d29","d30","d31" \
- );
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define YCRCB_CONSTS \
- register int16x4_t vcYR asm ("d31") = vmov_n_s16(4899); \
-@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con
- #define COEFF_G ( 8663)
- #define COEFF_B (-17705)
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- #define YUV420ALPHA3_CONST
- #define YUV420ALPHA4_CONST register uint8x16_t c255 asm ("q13") = vmovq_n_u8(255);
- #define YUV420ALPHA3_CONVERT
-@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld4.8 {d2, d4, d6, d8}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld4.8 {d3, d5, d7, d9}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld3.8 {d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld3.8 {d3, d5, d7}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld4.8 {d0, d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld4.8 {d1, d3, d5, d7}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA \n\t"
-@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld3.8 {d0, d2, d4}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld3.8 {d1, d3, d5}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2)
- #else
- uint8x8x4_t vRgba = vld4_u8(src + sj);
-@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0)
- #else
- uint8x8x3_t vBgr = vld3_u8(src + sj);
-@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0)
- #else
- uint8x8x4_t vBgra = vld4_u8(src + sj);
-@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp
-index 403f16d86a..64b6db78ab 100644
---- a/3rdparty/carotene/src/convert.cpp
-+++ b/3rdparty/carotene/src/convert.cpp
-@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16,
- }
- })
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u8, s32, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);
- register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0);
-@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u8, f32, 16,
- ,
- {
-@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16,
- }
- })
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s8, s16, 16,
- ,
- {
-@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s8, s32, 16,
- ,
- {
-@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s8, f32, 16,
- ,
- {
-@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, u8, 16,
- ,
- {
-@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, s8, 16,
- register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);,
- {
-@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u16, s16, 8,
- register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);,
- {
-@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u16, s32, 8,
- register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);,
- {
-@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, f32, 8,
- ,
- {
-@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, u8, 16,
- ,
- {
-@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, s8, 16,
- ,
- {
-@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s16, u16, 8,
- register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);,
- {
-@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, s32, 8,
- ,
- {
-@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, f32, 8,
- ,
- {
-@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, u8, 8,
- ,
- {
-@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, s8, 8,
- ,
- {
-@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, u16, 8,
- ,
- {
-@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, s16, 8,
- ,
- {
-@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, f32, 8,
- ,
- {
-@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, u8, 8,
- register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16));
- register uint32x4_t vmask asm ("q1") = vdupq_n_u32(1<<16);,
-@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s8, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, u16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s32, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp
-index 0a14a8035c..ae41a985c8 100644
---- a/3rdparty/carotene/src/convert_scale.cpp
-+++ b/3rdparty/carotene/src/convert_scale.cpp
-@@ -135,7 +135,7 @@ namespace CAROTENE_NS {
-
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC1(u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -220,7 +220,7 @@ CVTS_FUNC1(u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -305,7 +305,7 @@ CVTS_FUNC(u8, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -389,7 +389,7 @@ CVTS_FUNC(u8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -643,7 +643,7 @@ CVTS_FUNC(u8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -728,7 +728,7 @@ CVTS_FUNC(s8, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC1(s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -813,7 +813,7 @@ CVTS_FUNC1(s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -899,7 +899,7 @@ CVTS_FUNC(s8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha));
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta));
-@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp
-index 1b5399436f..f7b5f18d79 100644
---- a/3rdparty/carotene/src/gaussian_blur.cpp
-+++ b/3rdparty/carotene/src/gaussian_blur.cpp
-@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*2;
- u16* lidx3 = lane + x + 1*2;
- u16* lidx4 = lane + x + 2*2;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ __volatile__ (
- "vld2.16 {d0, d2}, [%[in0]]! \n\t"
- "vld2.16 {d1, d3}, [%[in0]] \n\t"
-@@ -398,7 +398,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*3;
- u16* lidx3 = lane + x + 1*3;
- u16* lidx4 = lane + x + 2*3;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ __volatile__ (
- "vld3.16 {d0, d2, d4}, [%[in0]]! \n\t"
- "vld3.16 {d1, d3, d5}, [%[in0]] \n\t"
-@@ -482,7 +482,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*4;
- u16* lidx3 = lane + x + 1*4;
- u16* lidx4 = lane + x + 2*4;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ __volatile__ (
- "vld4.16 {d0, d2, d4, d6}, [%[in0]]! \n\t"
- "vld4.16 {d1, d3, d5, d7}, [%[in0]] \n\t"
-diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp
-index 8ef1268933..232ccf3efd 100644
---- a/3rdparty/carotene/src/pyramid.cpp
-+++ b/3rdparty/carotene/src/pyramid.cpp
-@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw8; x += 8)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld2.16 {d0-d3}, [%[in0]] \n\t"
- "vld2.16 {d4-d7}, [%[in4]] \n\t"
-@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d4-d7}, [%[in4]] \n\t"
-@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- std::vector<f32> _buf(cn*(srcSize.width + 4) + 32/sizeof(f32));
- f32* lane = internal::alignPtr(&_buf[2*cn], 32);
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register float32x4_t vc6d4f32 asm ("q11") = vmovq_n_f32(1.5f); // 6/4
- register float32x4_t vc1d4f32 asm ("q12") = vmovq_n_f32(0.25f); // 1/4
-
-@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ __volatile__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d8-d11}, [%[in4]] \n\t"
-@@ -932,7 +932,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 8)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.16 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.16 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -973,7 +973,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 24)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vmov.u16 q9, #6 \n\t"
- "vld3.16 {d0, d2, d4}, [%[in0]] /*v0*/ \n\t"
-@@ -1064,7 +1064,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 8)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.16 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.16 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -1210,7 +1210,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 4)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.32 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.32 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -1251,7 +1251,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 12)
- {
- internal::prefetch(lane + x + 3);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vmov.s32 q9, #6 \n\t"
- "vld3.32 {d0, d2, d4}, [%[in0]] /*v0*/ \n\t"
-@@ -1343,7 +1343,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 4)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.32 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.32 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp
-index 5695804fe4..8d3b6328b1 100644
---- a/3rdparty/carotene/src/scharr.cpp
-+++ b/3rdparty/carotene/src/scharr.cpp
-@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- internal::prefetch(srow0 + x);
- internal::prefetch(srow1 + x);
- internal::prefetch(srow2 + x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0}, [%[src0]] \n\t"
- "vld1.8 {d2}, [%[src2]] \n\t"
-@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- x = 0;
- for( ; x < roiw8; x += 8 )
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- __asm__ (
- "vld1.16 {d4-d5}, [%[s2ptr]] \n\t"
- "vld1.16 {d8-d9}, [%[s4ptr]] \n\t"
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
deleted file mode 100644
index 22e868a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
+++ /dev/null
@@ -1,993 +0,0 @@
-From 333f60165b6737588eb975a5e4393d847011a1cd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Sep 2017 18:07:35 -0700
-Subject: [PATCH 2/2] Do not enable asm with clang
-
-clang pretends to be gcc 4.2.0 which means we will
-use inline asm for no reason, instead of builtins
-on clang when possible.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
- 3rdparty/carotene/src/channel_extract.cpp | 4 +-
- 3rdparty/carotene/src/channels_combine.cpp | 2 +-
- 3rdparty/carotene/src/colorconvert.cpp | 78 +++++++++++++++---------------
- 3rdparty/carotene/src/convert.cpp | 54 ++++++++++-----------
- 3rdparty/carotene/src/convert_scale.cpp | 56 ++++++++++-----------
- 3rdparty/carotene/src/gaussian_blur.cpp | 2 +-
- 3rdparty/carotene/src/pyramid.cpp | 8 +--
- 3rdparty/carotene/src/scharr.cpp | 4 +-
- 8 files changed, 104 insertions(+), 104 deletions(-)
-
-diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp
-index 8238a3ece8..ff4fb3770c 100644
---- a/3rdparty/carotene/src/channel_extract.cpp
-+++ b/3rdparty/carotene/src/channel_extract.cpp
-@@ -231,7 +231,7 @@ void extract4(const Size2D &size,
- srcStride == dst2Stride && \
- srcStride == dst3Stride &&
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define SPLIT_ASM2(sgn, bits) __asm__ ( \
- "vld2." #bits " {d0, d2}, [%[in0]] \n\t" \
-@@ -351,7 +351,7 @@ void extract4(const Size2D &size,
- } \
- }
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define ALPHA_QUAD(sgn, bits) { \
- internal::prefetch(src + sj); \
-diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp
-index fc98fb9181..5d9251d51c 100644
---- a/3rdparty/carotene/src/channels_combine.cpp
-+++ b/3rdparty/carotene/src/channels_combine.cpp
-@@ -77,7 +77,7 @@ namespace CAROTENE_NS {
- dstStride == src2Stride && \
- dstStride == src3Stride &&
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define MERGE_ASM2(sgn, bits) __asm__ ( \
- "vld1." #bits " {d0-d1}, [%[in0]] \n\t" \
-diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp
-index 26ae54b15c..d3a40fe64e 100644
---- a/3rdparty/carotene/src/colorconvert.cpp
-+++ b/3rdparty/carotene/src/colorconvert.cpp
-@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 48)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0}, [%[in]] \n\t"
- "vmov.8 d1, d0 \n\t"
-@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size,
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register uint8x16_t vc255 asm ("q4") = vmovq_n_u8(255);
- #else
- uint8x16x4_t vRgba;
-@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 64)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d5}, [%[in]] \n\t"
- "vmov.8 d6, d5 \n\t"
-@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b,
- "d24","d25","d26","d27","d28","d29","d30","d31" \
- );
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define YCRCB_CONSTS \
- register int16x4_t vcYR asm ("d31") = vmov_n_s16(4899); \
-@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con
- #define COEFF_G ( 8663)
- #define COEFF_B (-17705)
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- #define YUV420ALPHA3_CONST
- #define YUV420ALPHA4_CONST register uint8x16_t c255 asm ("q13") = vmovq_n_u8(255);
- #define YUV420ALPHA3_CONVERT
-@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld4.8 {d2, d4, d6, d8}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld4.8 {d3, d5, d7, d9}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld3.8 {d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld3.8 {d3, d5, d7}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld4.8 {d0, d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld4.8 {d1, d3, d5, d7}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA \n\t"
-@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld3.8 {d0, d2, d4}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld3.8 {d1, d3, d5}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2)
- #else
- uint8x8x4_t vRgba = vld4_u8(src + sj);
-@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0)
- #else
- uint8x8x3_t vBgr = vld3_u8(src + sj);
-@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0)
- #else
- uint8x8x4_t vBgra = vld4_u8(src + sj);
-@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp
-index 64b6db78ab..f0c2d153f2 100644
---- a/3rdparty/carotene/src/convert.cpp
-+++ b/3rdparty/carotene/src/convert.cpp
-@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16,
- }
- })
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u8, s32, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);
- register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0);
-@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u8, f32, 16,
- ,
- {
-@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16,
- }
- })
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s8, s16, 16,
- ,
- {
-@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s8, s32, 16,
- ,
- {
-@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s8, f32, 16,
- ,
- {
-@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, u8, 16,
- ,
- {
-@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, s8, 16,
- register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);,
- {
-@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u16, s16, 8,
- register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);,
- {
-@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u16, s32, 8,
- register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);,
- {
-@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, f32, 8,
- ,
- {
-@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, u8, 16,
- ,
- {
-@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, s8, 16,
- ,
- {
-@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s16, u16, 8,
- register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);,
- {
-@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, s32, 8,
- ,
- {
-@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, f32, 8,
- ,
- {
-@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, u8, 8,
- ,
- {
-@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, s8, 8,
- ,
- {
-@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, u16, 8,
- ,
- {
-@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, s16, 8,
- ,
- {
-@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, f32, 8,
- ,
- {
-@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, u8, 8,
- register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16));
- register uint32x4_t vmask asm ("q1") = vdupq_n_u32(1<<16);,
-@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s8, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, u16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s32, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp
-index ae41a985c8..d599d24c1e 100644
---- a/3rdparty/carotene/src/convert_scale.cpp
-+++ b/3rdparty/carotene/src/convert_scale.cpp
-@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha));
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta));
-@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp
-index f7b5f18d79..e5aa8fc75b 100644
---- a/3rdparty/carotene/src/gaussian_blur.cpp
-+++ b/3rdparty/carotene/src/gaussian_blur.cpp
-@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*2;
- u16* lidx3 = lane + x + 1*2;
- u16* lidx4 = lane + x + 2*2;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ __volatile__ (
- "vld2.16 {d0, d2}, [%[in0]]! \n\t"
- "vld2.16 {d1, d3}, [%[in0]] \n\t"
-diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp
-index 232ccf3efd..d4e32ea50f 100644
---- a/3rdparty/carotene/src/pyramid.cpp
-+++ b/3rdparty/carotene/src/pyramid.cpp
-@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw8; x += 8)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld2.16 {d0-d3}, [%[in0]] \n\t"
- "vld2.16 {d4-d7}, [%[in4]] \n\t"
-@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d4-d7}, [%[in4]] \n\t"
-@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- std::vector<f32> _buf(cn*(srcSize.width + 4) + 32/sizeof(f32));
- f32* lane = internal::alignPtr(&_buf[2*cn], 32);
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register float32x4_t vc6d4f32 asm ("q11") = vmovq_n_f32(1.5f); // 6/4
- register float32x4_t vc1d4f32 asm ("q12") = vmovq_n_f32(0.25f); // 1/4
-
-@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ __volatile__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d8-d11}, [%[in4]] \n\t"
-diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp
-index 8d3b6328b1..36f6b2276e 100644
---- a/3rdparty/carotene/src/scharr.cpp
-+++ b/3rdparty/carotene/src/scharr.cpp
-@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- internal::prefetch(srow0 + x);
- internal::prefetch(srow1 + x);
- internal::prefetch(srow2 + x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0}, [%[src0]] \n\t"
- "vld1.8 {d2}, [%[src2]] \n\t"
-@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- x = 0;
- for( ; x < roiw8; x += 8 )
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- __asm__ (
- "vld1.16 {d4-d5}, [%[s2ptr]] \n\t"
- "vld1.16 {d8-d9}, [%[s4ptr]] \n\t"
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
deleted file mode 100644
index 39f33af..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
+++ /dev/null
@@ -1,656 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3]
-
-Fix CVEs for opencv 3.3:
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
-Date: Tue, 15 Aug 2017 22:04:55 +0000
-Subject: [PATCH 2/3] imgcodecs: refactoring, improve code quality
-
----
- modules/imgcodecs/src/bitstrm.cpp | 2 +
- modules/imgcodecs/src/bitstrm.hpp | 19 +++--
- modules/imgcodecs/src/grfmt_bmp.cpp | 13 ++-
- modules/imgcodecs/src/grfmt_pxm.cpp | 122 ++++++++++++++++-----------
- modules/imgcodecs/src/loadsave.cpp | 164 +++++++++++++++++++++++++++++-------
- 5 files changed, 231 insertions(+), 89 deletions(-)
-
-diff --git a/modules/imgcodecs/src/bitstrm.cpp b/modules/imgcodecs/src/bitstrm.cpp
-index a7e187fa0..0a8941aec 100644
---- a/modules/imgcodecs/src/bitstrm.cpp
-+++ b/modules/imgcodecs/src/bitstrm.cpp
-@@ -209,6 +209,8 @@ int RLByteStream::getByte()
- current = m_current;
- }
-
-+ CV_Assert(current < m_end);
-+
- val = *((uchar*)current);
- m_current = current + 1;
- return val;
-diff --git a/modules/imgcodecs/src/bitstrm.hpp b/modules/imgcodecs/src/bitstrm.hpp
-index 465c0a847..26947971f 100644
---- a/modules/imgcodecs/src/bitstrm.hpp
-+++ b/modules/imgcodecs/src/bitstrm.hpp
-@@ -48,13 +48,20 @@
- namespace cv
- {
-
--enum
--{
-- RBS_THROW_EOS=-123, // <end of stream> exception code
-- RBS_THROW_FORB=-124, // <forrbidden huffman code> exception code
-- RBS_HUFF_FORB=2047, // forrbidden huffman code "value"
-- RBS_BAD_HEADER=-125 // invalid header
-+#define DECLARE_RBS_EXCEPTION(name) \
-+class RBS_ ## name ## _Exception : public cv::Exception \
-+{ \
-+public: \
-+ RBS_ ## name ## _Exception(int code_, const String& err_, const String& func_, const String& file_, int line_) : \
-+ cv::Exception(code_, err_, func_, file_, line_) \
-+ {} \
- };
-+DECLARE_RBS_EXCEPTION(THROW_EOS)
-+#define RBS_THROW_EOS RBS_THROW_EOS_Exception(cv::Error::StsError, "Unexpected end of input stream", CV_Func, __FILE__, __LINE__)
-+DECLARE_RBS_EXCEPTION(THROW_FORB)
-+#define RBS_THROW_FORB RBS_THROW_FORB_Exception(cv::Error::StsError, "Forrbidden huffman code", CV_Func, __FILE__, __LINE__)
-+DECLARE_RBS_EXCEPTION(BAD_HEADER)
-+#define RBS_BAD_HEADER RBS_BAD_HEADER_Exception(cv::Error::StsError, "Invalid header", CV_Func, __FILE__, __LINE__)
-
- typedef unsigned long ulong;
-
-diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp
-index 86cacd316..257f97c2d 100644
---- a/modules/imgcodecs/src/grfmt_bmp.cpp
-+++ b/modules/imgcodecs/src/grfmt_bmp.cpp
-@@ -118,8 +118,9 @@ bool BmpDecoder::readHeader()
-
- if( m_bpp <= 8 )
- {
-- memset( m_palette, 0, sizeof(m_palette));
-- m_strm.getBytes( m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
-+ CV_Assert(clrused < 256);
-+ memset(m_palette, 0, sizeof(m_palette));
-+ m_strm.getBytes(m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
- iscolor = IsColorPalette( m_palette, m_bpp );
- }
- else if( m_bpp == 16 && m_rle_code == BMP_BITFIELDS )
-@@ -290,7 +291,9 @@ bool BmpDecoder::readData( Mat& img )
- else if( code > 2 ) // absolute mode
- {
- if( data + code*nch > line_end ) goto decode_rle4_bad;
-- m_strm.getBytes( src, (((code + 1)>>1) + 1) & -2 );
-+ int sz = (((code + 1)>>1) + 1) & (~1);
-+ CV_Assert((size_t)sz < _src.size());
-+ m_strm.getBytes(src, sz);
- if( color )
- data = FillColorRow4( data, src, code, m_palette );
- else
-@@ -379,7 +382,9 @@ decode_rle4_bad: ;
-
- if( data + code3 > line_end )
- goto decode_rle8_bad;
-- m_strm.getBytes( src, (code + 1) & -2 );
-+ int sz = (code + 1) & (~1);
-+ CV_Assert((size_t)sz < _src.size());
-+ m_strm.getBytes(src, sz);
- if( color )
- data = FillColorRow8( data, src, code, m_palette );
- else
-diff --git a/modules/imgcodecs/src/grfmt_pxm.cpp b/modules/imgcodecs/src/grfmt_pxm.cpp
-index 1750cb705..68bd8fd93 100644
---- a/modules/imgcodecs/src/grfmt_pxm.cpp
-+++ b/modules/imgcodecs/src/grfmt_pxm.cpp
-@@ -43,50 +43,58 @@
- #include "precomp.hpp"
- #include "utils.hpp"
- #include "grfmt_pxm.hpp"
-+#include <iostream>
-
- namespace cv
- {
-
- ///////////////////////// P?M reader //////////////////////////////
-
--static int ReadNumber( RLByteStream& strm, int maxdigits )
-+static int ReadNumber(RLByteStream& strm, int maxdigits = 0)
- {
- int code;
-- int val = 0;
-+ int64 val = 0;
- int digits = 0;
-
- code = strm.getByte();
-
-- if( !isdigit(code))
-+ while (!isdigit(code))
- {
-- do
-+ if (code == '#' )
- {
-- if( code == '#' )
-+ do
- {
-- do
-- {
-- code = strm.getByte();
-- }
-- while( code != '\n' && code != '\r' );
-+ code = strm.getByte();
- }
--
-+ while (code != '\n' && code != '\r');
- code = strm.getByte();
--
-- while( isspace(code))
-+ }
-+ else if (isspace(code))
-+ {
-+ while (isspace(code))
- code = strm.getByte();
- }
-- while( !isdigit( code ));
-+ else
-+ {
-+#if 1
-+ CV_ErrorNoReturn_(Error::StsError, ("PXM: Unexpected code in ReadNumber(): 0x%x (%d)", code, code));
-+#else
-+ code = strm.getByte();
-+#endif
-+ }
- }
-
- do
- {
-- val = val*10 + code - '0';
-- if( ++digits >= maxdigits ) break;
-+ val = val*10 + (code - '0');
-+ CV_Assert(val <= INT_MAX && "PXM: ReadNumber(): result is too large");
-+ digits++;
-+ if (maxdigits != 0 && digits >= maxdigits) break;
- code = strm.getByte();
- }
-- while( isdigit(code));
-+ while (isdigit(code));
-
-- return val;
-+ return (int)val;
- }
-
-
-@@ -122,13 +130,13 @@ ImageDecoder PxMDecoder::newDecoder() const
- return makePtr<PxMDecoder>();
- }
-
--void PxMDecoder::close()
-+void PxMDecoder::close()
- {
- m_strm.close();
- }
-
-
--bool PxMDecoder::readHeader()
-+bool PxMDecoder::readHeader()
- {
- bool result = false;
-
-@@ -158,10 +166,10 @@ bool PxMDecoder::readHeader()
- m_binary = code >= '4';
- m_type = m_bpp > 8 ? CV_8UC3 : CV_8UC1;
-
-- m_width = ReadNumber( m_strm, INT_MAX );
-- m_height = ReadNumber( m_strm, INT_MAX );
-+ m_width = ReadNumber(m_strm);
-+ m_height = ReadNumber(m_strm);
-
-- m_maxval = m_bpp == 1 ? 1 : ReadNumber( m_strm, INT_MAX );
-+ m_maxval = m_bpp == 1 ? 1 : ReadNumber(m_strm);
- if( m_maxval > 65535 )
- throw RBS_BAD_HEADER;
-
-@@ -175,8 +183,14 @@ bool PxMDecoder::readHeader()
- result = true;
- }
- }
-- catch(...)
-+ catch (const cv::Exception&)
-+ {
-+ throw;
-+ }
-+ catch (...)
- {
-+ std::cerr << "PXM::readHeader(): unknown C++ exception" << std::endl << std::flush;
-+ throw;
- }
-
- if( !result )
-@@ -189,33 +203,28 @@ bool PxMDecoder::readHeader()
- }
-
-
--bool PxMDecoder::readData( Mat& img )
-+bool PxMDecoder::readData( Mat& img )
- {
- int color = img.channels() > 1;
- uchar* data = img.ptr();
- PaletteEntry palette[256];
- bool result = false;
-- int bit_depth = CV_ELEM_SIZE1(m_type)*8;
-- int src_pitch = (m_width*m_bpp*bit_depth/8 + 7)/8;
-+ const int bit_depth = CV_ELEM_SIZE1(m_type)*8;
-+ const int src_pitch = divUp(m_width*m_bpp*(bit_depth/8), 8);
- int nch = CV_MAT_CN(m_type);
- int width3 = m_width*nch;
-- int i, x, y;
-
- if( m_offset < 0 || !m_strm.isOpened())
- return false;
-
-- AutoBuffer<uchar> _src(src_pitch + 32);
-- uchar* src = _src;
-- AutoBuffer<uchar> _gray_palette;
-- uchar* gray_palette = _gray_palette;
-+ uchar gray_palette[256] = {0};
-
- // create LUT for converting colors
- if( bit_depth == 8 )
- {
-- _gray_palette.allocate(m_maxval + 1);
-- gray_palette = _gray_palette;
-+ CV_Assert(m_maxval < 256);
-
-- for( i = 0; i <= m_maxval; i++ )
-+ for (int i = 0; i <= m_maxval; i++)
- gray_palette[i] = (uchar)((i*255/m_maxval)^(m_bpp == 1 ? 255 : 0));
-
- FillGrayPalette( palette, m_bpp==1 ? 1 : 8 , m_bpp == 1 );
-@@ -229,12 +238,16 @@ bool PxMDecoder::readData( Mat& img )
- {
- ////////////////////////// 1 BPP /////////////////////////
- case 1:
-+ CV_Assert(CV_MAT_DEPTH(m_type) == CV_8U);
- if( !m_binary )
- {
-- for( y = 0; y < m_height; y++, data += img.step )
-+ AutoBuffer<uchar> _src(m_width);
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
-- for( x = 0; x < m_width; x++ )
-- src[x] = ReadNumber( m_strm, 1 ) != 0;
-+ for (int x = 0; x < m_width; x++)
-+ src[x] = ReadNumber(m_strm, 1) != 0;
-
- if( color )
- FillColorRow8( data, src, m_width, palette );
-@@ -244,7 +257,10 @@ bool PxMDecoder::readData( Mat& img )
- }
- else
- {
-- for( y = 0; y < m_height; y++, data += img.step )
-+ AutoBuffer<uchar> _src(src_pitch);
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
- m_strm.getBytes( src, src_pitch );
-
-@@ -260,13 +276,17 @@ bool PxMDecoder::readData( Mat& img )
- ////////////////////////// 8 BPP /////////////////////////
- case 8:
- case 24:
-- for( y = 0; y < m_height; y++, data += img.step )
-+ {
-+ AutoBuffer<uchar> _src(std::max<size_t>(width3*2, src_pitch));
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
- if( !m_binary )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
-- int code = ReadNumber( m_strm, INT_MAX );
-+ int code = ReadNumber(m_strm);
- if( (unsigned)code > (unsigned)m_maxval ) code = m_maxval;
- if( bit_depth == 8 )
- src[x] = gray_palette[code];
-@@ -279,7 +299,7 @@ bool PxMDecoder::readData( Mat& img )
- m_strm.getBytes( src, src_pitch );
- if( bit_depth == 16 && !isBigEndian() )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
- uchar v = src[x * 2];
- src[x * 2] = src[x * 2 + 1];
-@@ -290,7 +310,7 @@ bool PxMDecoder::readData( Mat& img )
-
- if( img.depth() == CV_8U && bit_depth == 16 )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
- int v = ((ushort *)src)[x];
- src[x] = (uchar)(v >> 8);
-@@ -331,12 +351,19 @@ bool PxMDecoder::readData( Mat& img )
- }
- result = true;
- break;
-+ }
- default:
-- assert(0);
-+ CV_ErrorNoReturn(Error::StsError, "m_bpp is not supported");
- }
- }
-- catch(...)
-+ catch (const cv::Exception&)
-+ {
-+ throw;
-+ }
-+ catch (...)
- {
-+ std::cerr << "PXM::readData(): unknown exception" << std::endl << std::flush;
-+ throw;
- }
-
- return result;
-@@ -412,8 +439,9 @@ bool PxMEncoder::write( const Mat& img, const std::vector<int>& params )
- char* buffer = _buffer;
-
- // write header;
-- sprintf( buffer, "P%c\n%d %d\n%d\n",
-+ sprintf( buffer, "P%c\n# Generated by OpenCV %s\n%d %d\n%d\n",
- '2' + (channels > 1 ? 1 : 0) + (isBinary ? 3 : 0),
-+ CV_VERSION,
- width, height, (1 << depth) - 1 );
-
- strm.putBytes( buffer, (int)strlen(buffer) );
-diff --git a/modules/imgcodecs/src/loadsave.cpp b/modules/imgcodecs/src/loadsave.cpp
-index 3b2366217..5ee4ca354 100644
---- a/modules/imgcodecs/src/loadsave.cpp
-+++ b/modules/imgcodecs/src/loadsave.cpp
-@@ -55,6 +55,27 @@
- /****************************************************************************************\
- * Image Codecs *
- \****************************************************************************************/
-+
-+namespace cv {
-+
-+// TODO Add runtime configuration
-+#define CV_IO_MAX_IMAGE_PARAMS (50)
-+#define CV_IO_MAX_IMAGE_WIDTH (1<<20)
-+#define CV_IO_MAX_IMAGE_HEIGHT (1<<20)
-+#define CV_IO_MAX_IMAGE_PIXELS (1<<30) // 1 Gigapixel
-+
-+static Size validateInputImageSize(const Size& size)
-+{
-+ CV_Assert(size.width > 0);
-+ CV_Assert(size.width <= CV_IO_MAX_IMAGE_WIDTH);
-+ CV_Assert(size.height > 0);
-+ CV_Assert(size.height <= CV_IO_MAX_IMAGE_HEIGHT);
-+ uint64 pixels = (uint64)size.width * (uint64)size.height;
-+ CV_Assert(pixels <= CV_IO_MAX_IMAGE_PIXELS);
-+ return size;
-+}
-+
-+
- namespace {
-
- class ByteStreamBuffer: public std::streambuf
-@@ -94,9 +115,6 @@ protected:
-
- }
-
--namespace cv
--{
--
- /**
- * @struct ImageCodecInitializer
- *
-@@ -408,14 +426,26 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
- /// set the filename in the driver
- decoder->setSource( filename );
-
-- // read the header to make sure it succeeds
-- if( !decoder->readHeader() )
-+ try
-+ {
-+ // read the header to make sure it succeeds
-+ if( !decoder->readHeader() )
-+ return 0;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
- return 0;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ return 0;
-+ }
-+
-
- // established the required input image size
-- CvSize size;
-- size.width = decoder->width();
-- size.height = decoder->height();
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-
- // grab the decoded type
- int type = decoder->type();
-@@ -451,7 +481,21 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
- }
-
- // read the image data
-- if( !decoder->readData( *data ))
-+ bool success = false;
-+ try
-+ {
-+ if (decoder->readData(*data))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- {
- cvReleaseImage( &image );
- cvReleaseMat( &matrix );
-@@ -504,8 +548,22 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
- decoder->setSource(filename);
-
- // read the header to make sure it succeeds
-- if (!decoder->readHeader())
-+ try
-+ {
-+ // read the header to make sure it succeeds
-+ if( !decoder->readHeader() )
-+ return 0;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
- return 0;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ return 0;
-+ }
-
- for (;;)
- {
-@@ -523,17 +581,32 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
- type = CV_MAKETYPE(CV_MAT_DEPTH(type), 1);
- }
-
-+ // established the required input image size
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-+
- // read the image data
-- Mat mat(decoder->height(), decoder->width(), type);
-- if (!decoder->readData(mat))
-+ Mat mat(size.height, size.width, type);
-+ bool success = false;
-+ try
- {
-- // optionally rotate the data if EXIF' orientation flag says so
-- if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
-- {
-- ApplyExifOrientation(filename, mat);
-- }
--
-+ if (decoder->readData(mat))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- break;
-+
-+ // optionally rotate the data if EXIF' orientation flag says so
-+ if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
-+ {
-+ ApplyExifOrientation(filename, mat);
- }
-
- mats.push_back(mat);
-@@ -616,6 +689,7 @@ static bool imwrite_( const String& filename, const Mat& image,
- }
-
- encoder->setDestination( filename );
-+ CV_Assert(params.size() <= CV_IO_MAX_IMAGE_PARAMS*2);
- bool code = encoder->write( *pimage, params );
-
- // CV_Assert( code );
-@@ -663,22 +737,35 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
- decoder->setSource(filename);
- }
-
-- if( !decoder->readHeader() )
-+ bool success = false;
-+ try
-+ {
-+ if (decoder->readHeader())
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- {
- decoder.release();
-- if ( !filename.empty() )
-+ if (!filename.empty())
- {
-- if ( remove(filename.c_str()) != 0 )
-+ if (0 != remove(filename.c_str()))
- {
-- CV_Error( CV_StsError, "unable to remove temporary file" );
-+ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
- }
- }
- return 0;
- }
-
-- CvSize size;
-- size.width = decoder->width();
-- size.height = decoder->height();
-+ // established the required input image size
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-
- int type = decoder->type();
- if( (flags & IMREAD_LOAD_GDAL) != IMREAD_LOAD_GDAL && flags != IMREAD_UNCHANGED )
-@@ -712,17 +799,30 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
- temp = cvarrToMat(image);
- }
-
-- bool code = decoder->readData( *data );
-+ success = false;
-+ try
-+ {
-+ if (decoder->readData(*data))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
- decoder.release();
-- if ( !filename.empty() )
-+ if (!filename.empty())
- {
-- if ( remove(filename.c_str()) != 0 )
-+ if (0 != remove(filename.c_str()))
- {
-- CV_Error( CV_StsError, "unable to remove temporary file" );
-+ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
- }
- }
-
-- if( !code )
-+ if (!success)
- {
- cvReleaseImage( &image );
- cvReleaseMat( &matrix );
-@@ -859,7 +959,7 @@ cvSaveImage( const char* filename, const CvArr* arr, const int* _params )
- if( _params )
- {
- for( ; _params[i] > 0; i += 2 )
-- ;
-+ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
- }
- return cv::imwrite_(filename, cv::cvarrToMat(arr),
- i > 0 ? std::vector<int>(_params, _params+i) : std::vector<int>(),
-@@ -890,7 +990,7 @@ cvEncodeImage( const char* ext, const CvArr* arr, const int* _params )
- if( _params )
- {
- for( ; _params[i] > 0; i += 2 )
-- ;
-+ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
- }
- cv::Mat img = cv::cvarrToMat(arr);
- if( CV_IS_IMAGE(arr) && ((const IplImage*)arr)->origin == IPL_ORIGIN_BL )
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
index a22b04a..5270b8c 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
@@ -19,29 +19,21 @@
modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
-diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp
-index 41a76b13e..205646140 100644
---- a/modules/ts/include/opencv2/ts.hpp
-+++ b/modules/ts/include/opencv2/ts.hpp
-@@ -555,7 +555,7 @@ protected:
+Index: git/modules/ts/include/opencv2/ts.hpp
+===================================================================
+--- git.orig/modules/ts/include/opencv2/ts.hpp
++++ git/modules/ts/include/opencv2/ts.hpp
+@@ -608,7 +608,7 @@ protected:
}
};
-extern uint64 param_seed;
+CV_EXPORTS extern uint64 param_seed;
- struct CV_EXPORTS DefaultRngAuto
+ struct DefaultRngAuto
{
-@@ -611,14 +611,14 @@ CV_EXPORTS std::string findDataFile(const std::string& relative_path, bool requi
-
- #ifdef HAVE_OPENCL
- namespace ocl {
--void dumpOpenCLDevice();
-+CV_EXPORTS void dumpOpenCLDevice();
- }
- #define TEST_DUMP_OCL_INFO cvtest::ocl::dumpOpenCLDevice();
- #else
- #define TEST_DUMP_OCL_INFO
+@@ -671,7 +671,7 @@ private:
+ #endif
#endif
-void parseCustomOptions(int argc, char **argv);
@@ -49,10 +41,10 @@
#define CV_TEST_INIT0_NOOP (void)0
-diff --git a/modules/ts/include/opencv2/ts/ocl_test.hpp b/modules/ts/include/opencv2/ts/ocl_test.hpp
-index 54b33ece8..ef56bf9ef 100644
---- a/modules/ts/include/opencv2/ts/ocl_test.hpp
-+++ b/modules/ts/include/opencv2/ts/ocl_test.hpp
+Index: git/modules/ts/include/opencv2/ts/ocl_test.hpp
+===================================================================
+--- git.orig/modules/ts/include/opencv2/ts/ocl_test.hpp
++++ git/modules/ts/include/opencv2/ts/ocl_test.hpp
@@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src)
return dst;
}
@@ -62,19 +54,16 @@
#define MAX_VALUE 357
-diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp
-index 0bdd346dd..2cd34dfce 100644
---- a/modules/ts/include/opencv2/ts/ts_ext.hpp
-+++ b/modules/ts/include/opencv2/ts/ts_ext.hpp
+Index: git/modules/ts/include/opencv2/ts/ts_ext.hpp
+===================================================================
+--- git.orig/modules/ts/include/opencv2/ts/ts_ext.hpp
++++ git/modules/ts/include/opencv2/ts/ts_ext.hpp
@@ -9,7 +9,7 @@
#define OPENCV_TS_EXT_HPP
namespace cvtest {
-void checkIppStatus();
+CV_EXPORTS void checkIppStatus();
- }
-
- #define CV_TEST_INIT \
---
-2.13.4
-
+ extern bool skipUnstableTests;
+ extern bool runBigDataTests;
+ extern int testThreads;
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
deleted file mode 100644
index 5f4a60c..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/78a310630fb0a1f6d089576202343e672f27609d]
-
-Fix CVEs for opencv 3.3.
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 78a310630fb0a1f6d089576202343e672f27609d Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 16 Aug 2017 13:53:12 +0300
-Subject: [PATCH 3/3] imgproc(test): add checks for remove() call
-
----
- modules/imgcodecs/test/test_grfmt.cpp | 2 +-
- modules/imgcodecs/test/test_jpeg.cpp | 12 ++++++------
- modules/imgcodecs/test/test_png.cpp | 2 +-
- modules/imgcodecs/test/test_read_write.cpp | 4 ++--
- modules/imgcodecs/test/test_tiff.cpp | 8 ++++----
- modules/imgcodecs/test/test_webp.cpp | 6 +++---
- 6 files changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/modules/imgcodecs/test/test_grfmt.cpp b/modules/imgcodecs/test/test_grfmt.cpp
-index 64a0c1e3a..74b72c3b3 100644
---- a/modules/imgcodecs/test/test_grfmt.cpp
-+++ b/modules/imgcodecs/test/test_grfmt.cpp
-@@ -175,7 +175,7 @@ TEST_P(Imgcodecs_ExtSize, write_imageseq)
- EXPECT_LT(n, 1.);
- EXPECT_PRED_FORMAT2(cvtest::MatComparator(0, 0), img, img_gt);
- }
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
- }
-
-diff --git a/modules/imgcodecs/test/test_jpeg.cpp b/modules/imgcodecs/test/test_jpeg.cpp
-index 5546f2d91..6ddb02840 100644
---- a/modules/imgcodecs/test/test_jpeg.cpp
-+++ b/modules/imgcodecs/test/test_jpeg.cpp
-@@ -123,8 +123,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_progressive_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_progressive, img_jpg_normal, NORM_INF));
-
-- remove(output_progressive.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_progressive.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg)
-@@ -148,8 +148,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_optimized, img_jpg_normal, NORM_INF));
-
-- remove(output_optimized.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_optimized.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg)
-@@ -173,8 +173,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_rst, img_jpg_normal, NORM_INF));
-
-- remove(output_rst.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_rst.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- #endif // HAVE_JPEG
-diff --git a/modules/imgcodecs/test/test_png.cpp b/modules/imgcodecs/test/test_png.cpp
-index c46f90119..4e97043e1 100644
---- a/modules/imgcodecs/test/test_png.cpp
-+++ b/modules/imgcodecs/test/test_png.cpp
-@@ -17,7 +17,7 @@ TEST(Imgcodecs_Png, write_big)
- EXPECT_EQ(13043, img.cols);
- EXPECT_EQ(13917, img.rows);
- ASSERT_NO_THROW(imwrite(dst_file, img));
-- remove(dst_file.c_str());
-+ EXPECT_EQ(0, remove(dst_file.c_str()));
- }
-
- TEST(Imgcodecs_Png, encode)
-diff --git a/modules/imgcodecs/test/test_read_write.cpp b/modules/imgcodecs/test/test_read_write.cpp
-index 38f10225f..5119813bf 100644
---- a/modules/imgcodecs/test/test_read_write.cpp
-+++ b/modules/imgcodecs/test/test_read_write.cpp
-@@ -50,7 +50,7 @@ TEST(Imgcodecs_Image, read_write_bmp)
- psnr = cvtest::PSNR(buf_loaded, image);
- EXPECT_GT(psnr, thresDbell);
-
-- remove(dst_name.c_str());
-+ EXPECT_EQ(0, remove(dst_name.c_str()));
- }
- }
-
-@@ -95,7 +95,7 @@ TEST_P(Imgcodecs_Image, read_write)
- psnr = cvtest::PSNR(buf_loaded, image);
- EXPECT_GT(psnr, thresDbell);
-
-- remove(full_name.c_str());
-+ EXPECT_EQ(0, remove(full_name.c_str()));
- }
-
- const string exts[] = {
-diff --git a/modules/imgcodecs/test/test_tiff.cpp b/modules/imgcodecs/test/test_tiff.cpp
-index 0264da4cd..6ef0c1748 100644
---- a/modules/imgcodecs/test/test_tiff.cpp
-+++ b/modules/imgcodecs/test/test_tiff.cpp
-@@ -41,8 +41,8 @@ TEST(Imgcodecs_Tiff, decode_tile16384x16384)
- // not enough memory
- }
-
-- remove(file3.c_str());
-- remove(file4.c_str());
-+ EXPECT_EQ(0, remove(file3.c_str()));
-+ EXPECT_EQ(0, remove(file4.c_str()));
- }
-
- TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian)
-@@ -88,7 +88,7 @@ TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian)
- EXPECT_EQ(0xDEAD, img.at<ushort>(0,0));
- EXPECT_EQ(0xBEEF, img.at<ushort>(0,1));
-
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
- }
-
-@@ -143,7 +143,7 @@ TEST(Imgcodecs_Tiff, decode_infinite_rowsperstrip)
-
- EXPECT_NO_THROW(cv::imread(filename, IMREAD_UNCHANGED));
-
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
-
- //==================================================================================================
-diff --git a/modules/imgcodecs/test/test_webp.cpp b/modules/imgcodecs/test/test_webp.cpp
-index 6d40ce21e..d82fdd289 100644
---- a/modules/imgcodecs/test/test_webp.cpp
-+++ b/modules/imgcodecs/test/test_webp.cpp
-@@ -44,7 +44,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossless_webp)
- }
- }
-
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
-
- cv::Mat decode = cv::imdecode(buf, IMREAD_COLOR);
- ASSERT_FALSE(decode.empty());
-@@ -71,7 +71,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossy_webp)
-
- EXPECT_NO_THROW(cv::imwrite(output, img, params));
- cv::Mat img_webp = cv::imread(output);
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
- EXPECT_FALSE(img_webp.empty());
- EXPECT_EQ(3, img_webp.channels());
- EXPECT_EQ(512, img_webp.cols);
-@@ -96,7 +96,7 @@ TEST(Imgcodecs_WebP, encode_decode_with_alpha_webp)
-
- EXPECT_NO_THROW(cv::imwrite(output, img));
- cv::Mat img_webp = cv::imread(output);
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
- EXPECT_FALSE(img_webp.empty());
- EXPECT_EQ(4, img_webp.channels());
- EXPECT_EQ(512, img_webp.cols);
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
deleted file mode 100644
index 7ad50a2..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9448/commits/aacae20]
-
-Backport patch to fix CVE-2017-14136.
-
-Ref: https://github.com/opencv/opencv/issues/9443
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From aacae2065744adb05e858d327198c7bbe7f452b0 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 23 Aug 2017 15:15:27 +0300
-Subject: [PATCH] imgcodesc: fix code problems with integer overflow / address
- arithmetic / UB
-
----
- modules/imgcodecs/src/grfmt_bmp.cpp | 8 ++---
- modules/imgcodecs/src/grfmt_exr.cpp | 10 +++----
- modules/imgcodecs/src/grfmt_jpeg.cpp | 2 +-
- modules/imgcodecs/src/grfmt_jpeg2000.cpp | 6 ++--
- modules/imgcodecs/src/grfmt_pam.cpp | 2 +-
- modules/imgcodecs/src/grfmt_sunras.cpp | 6 ++--
- modules/imgcodecs/src/utils.cpp | 51 +++++++++++++++++++-------------
- modules/imgcodecs/src/utils.hpp | 2 ++
- 8 files changed, 50 insertions(+), 37 deletions(-)
-
-diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp
-index 257f97c2d8b..69768e276a3 100644
---- a/modules/imgcodecs/src/grfmt_bmp.cpp
-+++ b/modules/imgcodecs/src/grfmt_bmp.cpp
-@@ -193,7 +193,7 @@ bool BmpDecoder::readHeader()
- bool BmpDecoder::readData( Mat& img )
- {
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ int step = validateToInt(img.step);
- bool color = img.channels() > 1;
- uchar gray_palette[256] = {0};
- bool result = false;
-@@ -206,7 +206,7 @@ bool BmpDecoder::readData( Mat& img )
-
- if( m_origin == IPL_ORIGIN_BL )
- {
-- data += (m_height - 1)*step;
-+ data += (m_height - 1)*(size_t)step;
- step = -step;
- }
-
-@@ -530,7 +530,7 @@ bool BmpEncoder::write( const Mat& img, const std::vector<int>& )
- int bitmapHeaderSize = 40;
- int paletteSize = channels > 1 ? 0 : 1024;
- int headerSize = 14 /* fileheader */ + bitmapHeaderSize + paletteSize;
-- int fileSize = fileStep*height + headerSize;
-+ size_t fileSize = (size_t)fileStep*height + headerSize;
- PaletteEntry palette[256];
-
- if( m_buf )
-@@ -540,7 +540,7 @@ bool BmpEncoder::write( const Mat& img, const std::vector<int>& )
- strm.putBytes( fmtSignBmp, (int)strlen(fmtSignBmp) );
-
- // write file header
-- strm.putDWord( fileSize ); // file size
-+ strm.putDWord( validateToInt(fileSize) ); // file size
- strm.putDWord( 0 );
- strm.putDWord( headerSize );
-
-diff --git a/modules/imgcodecs/src/grfmt_exr.cpp b/modules/imgcodecs/src/grfmt_exr.cpp
-index 0d2ae9fa7d2..78ffe6c7668 100644
---- a/modules/imgcodecs/src/grfmt_exr.cpp
-+++ b/modules/imgcodecs/src/grfmt_exr.cpp
-@@ -195,7 +195,7 @@ bool ExrDecoder::readData( Mat& img )
- bool color = img.channels() > 1;
-
- uchar* data = img.ptr();
-- int step = img.step;
-+ size_t step = img.step;
- bool justcopy = m_native_depth;
- bool chromatorgb = false;
- bool rgbtogray = false;
-@@ -203,8 +203,8 @@ bool ExrDecoder::readData( Mat& img )
- FrameBuffer frame;
- int xsample[3] = {1, 1, 1};
- char *buffer;
-- int xstep;
-- int ystep;
-+ size_t xstep = 0;
-+ size_t ystep = 0;
-
- xstep = m_native_depth ? 4 : 1;
-
-@@ -593,7 +593,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& )
- bool issigned = depth == CV_8S || depth == CV_16S || depth == CV_32S;
- bool isfloat = depth == CV_32F || depth == CV_64F;
- depth = CV_ELEM_SIZE1(depth)*8;
-- const int step = img.step;
-+ const size_t step = img.step;
-
- Header header( width, height );
- Imf::PixelType type;
-@@ -623,7 +623,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& )
- FrameBuffer frame;
-
- char *buffer;
-- int bufferstep;
-+ size_t bufferstep;
- int size;
- if( type == FLOAT && depth == 32 )
- {
-diff --git a/modules/imgcodecs/src/grfmt_jpeg.cpp b/modules/imgcodecs/src/grfmt_jpeg.cpp
-index ce942ca1995..caf768d2569 100644
---- a/modules/imgcodecs/src/grfmt_jpeg.cpp
-+++ b/modules/imgcodecs/src/grfmt_jpeg.cpp
-@@ -396,7 +396,7 @@ int my_jpeg_load_dht (struct jpeg_decompress_struct *info, unsigned char *dht,
- bool JpegDecoder::readData( Mat& img )
- {
- volatile bool result = false;
-- int step = (int)img.step;
-+ size_t step = img.step;
- bool color = img.channels() > 1;
-
- if( m_state && m_width && m_height )
-diff --git a/modules/imgcodecs/src/grfmt_jpeg2000.cpp b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-index 950ec21375f..24dfb38bb9d 100644
---- a/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-+++ b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-@@ -156,7 +156,7 @@ bool Jpeg2KDecoder::readData( Mat& img )
- bool result = false;
- int color = img.channels() > 1;
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ size_t step = img.step;
- jas_stream_t* stream = (jas_stream_t*)m_stream;
- jas_image_t* image = (jas_image_t*)m_image;
-
-@@ -252,9 +252,9 @@ bool Jpeg2KDecoder::readData( Mat& img )
- if( !jas_image_readcmpt( image, cmptlut[i], 0, 0, xend / xstep, yend / ystep, buffer ))
- {
- if( img.depth() == CV_8U )
-- result = readComponent8u( data + i, buffer, step, cmptlut[i], maxval, offset, ncmpts );
-+ result = readComponent8u( data + i, buffer, validateToInt(step), cmptlut[i], maxval, offset, ncmpts );
- else
-- result = readComponent16u( ((unsigned short *)data) + i, buffer, step / 2, cmptlut[i], maxval, offset, ncmpts );
-+ result = readComponent16u( ((unsigned short *)data) + i, buffer, validateToInt(step / 2), cmptlut[i], maxval, offset, ncmpts );
- if( !result )
- {
- i = ncmpts;
-diff --git a/modules/imgcodecs/src/grfmt_pam.cpp b/modules/imgcodecs/src/grfmt_pam.cpp
-index 11195dc342c..8eb9e012309 100644
---- a/modules/imgcodecs/src/grfmt_pam.cpp
-+++ b/modules/imgcodecs/src/grfmt_pam.cpp
-@@ -479,7 +479,7 @@ bool PAMDecoder::readData( Mat& img )
- {
- uchar* data = img.ptr();
- int target_channels = img.channels();
-- int imp_stride = (int)img.step;
-+ size_t imp_stride = img.step;
- int sample_depth = CV_ELEM_SIZE1(m_type);
- int src_elems_per_row = m_width*m_channels;
- int src_stride = src_elems_per_row*sample_depth;
-diff --git a/modules/imgcodecs/src/grfmt_sunras.cpp b/modules/imgcodecs/src/grfmt_sunras.cpp
-index aca9b369318..6d448f94ed3 100644
---- a/modules/imgcodecs/src/grfmt_sunras.cpp
-+++ b/modules/imgcodecs/src/grfmt_sunras.cpp
-@@ -160,7 +160,7 @@ bool SunRasterDecoder::readData( Mat& img )
- {
- int color = img.channels() > 1;
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ size_t step = img.step;
- uchar gray_palette[256] = {0};
- bool result = false;
- int src_pitch = ((m_width*m_bpp + 7)/8 + 1) & -2;
-@@ -308,11 +308,11 @@ bool SunRasterDecoder::readData( Mat& img )
- code = m_strm.getByte();
-
- if( color )
-- data = FillUniColor( data, line_end, step, width3,
-+ data = FillUniColor( data, line_end, validateToInt(step), width3,
- y, m_height, len,
- m_palette[code] );
- else
-- data = FillUniGray( data, line_end, step, width3,
-+ data = FillUniGray( data, line_end, validateToInt(step), width3,
- y, m_height, len,
- gray_palette[code] );
- if( y >= m_height )
-diff --git a/modules/imgcodecs/src/utils.cpp b/modules/imgcodecs/src/utils.cpp
-index 2ee5bafc712..474dae008ca 100644
---- a/modules/imgcodecs/src/utils.cpp
-+++ b/modules/imgcodecs/src/utils.cpp
-@@ -42,6 +42,13 @@
- #include "precomp.hpp"
- #include "utils.hpp"
-
-+int validateToInt(size_t sz)
-+{
-+ int valueInt = (int)sz;
-+ CV_Assert((size_t)valueInt == sz);
-+ return valueInt;
-+}
-+
- #define SCALE 14
- #define cR (int)(0.299*(1 << SCALE) + 0.5)
- #define cG (int)(0.587*(1 << SCALE) + 0.5)
-@@ -537,23 +544,25 @@ uchar* FillColorRow1( uchar* data, uchar* indices, int len, PaletteEntry* palett
- {
- uchar* end = data + len*3;
-
-+ const PaletteEntry p0 = palette[0], p1 = palette[1];
-+
- while( (data += 24) < end )
- {
- int idx = *indices++;
-- *((PaletteEntry*)(data - 24)) = palette[(idx & 128) != 0];
-- *((PaletteEntry*)(data - 21)) = palette[(idx & 64) != 0];
-- *((PaletteEntry*)(data - 18)) = palette[(idx & 32) != 0];
-- *((PaletteEntry*)(data - 15)) = palette[(idx & 16) != 0];
-- *((PaletteEntry*)(data - 12)) = palette[(idx & 8) != 0];
-- *((PaletteEntry*)(data - 9)) = palette[(idx & 4) != 0];
-- *((PaletteEntry*)(data - 6)) = palette[(idx & 2) != 0];
-- *((PaletteEntry*)(data - 3)) = palette[(idx & 1) != 0];
-+ *((PaletteEntry*)(data - 24)) = (idx & 128) ? p1 : p0;
-+ *((PaletteEntry*)(data - 21)) = (idx & 64) ? p1 : p0;
-+ *((PaletteEntry*)(data - 18)) = (idx & 32) ? p1 : p0;
-+ *((PaletteEntry*)(data - 15)) = (idx & 16) ? p1 : p0;
-+ *((PaletteEntry*)(data - 12)) = (idx & 8) ? p1 : p0;
-+ *((PaletteEntry*)(data - 9)) = (idx & 4) ? p1 : p0;
-+ *((PaletteEntry*)(data - 6)) = (idx & 2) ? p1 : p0;
-+ *((PaletteEntry*)(data - 3)) = (idx & 1) ? p1 : p0;
- }
-
-- int idx = indices[0] << 24;
-+ int idx = indices[0];
- for( data -= 24; data < end; data += 3, idx += idx )
- {
-- PaletteEntry clr = palette[idx < 0];
-+ const PaletteEntry clr = (idx & 128) ? p1 : p0;
- WRITE_PIX( data, clr );
- }
-
-@@ -565,23 +574,25 @@ uchar* FillGrayRow1( uchar* data, uchar* indices, int len, uchar* palette )
- {
- uchar* end = data + len;
-
-+ const uchar p0 = palette[0], p1 = palette[1];
-+
- while( (data += 8) < end )
- {
- int idx = *indices++;
-- *((uchar*)(data - 8)) = palette[(idx & 128) != 0];
-- *((uchar*)(data - 7)) = palette[(idx & 64) != 0];
-- *((uchar*)(data - 6)) = palette[(idx & 32) != 0];
-- *((uchar*)(data - 5)) = palette[(idx & 16) != 0];
-- *((uchar*)(data - 4)) = palette[(idx & 8) != 0];
-- *((uchar*)(data - 3)) = palette[(idx & 4) != 0];
-- *((uchar*)(data - 2)) = palette[(idx & 2) != 0];
-- *((uchar*)(data - 1)) = palette[(idx & 1) != 0];
-+ *((uchar*)(data - 8)) = (idx & 128) ? p1 : p0;
-+ *((uchar*)(data - 7)) = (idx & 64) ? p1 : p0;
-+ *((uchar*)(data - 6)) = (idx & 32) ? p1 : p0;
-+ *((uchar*)(data - 5)) = (idx & 16) ? p1 : p0;
-+ *((uchar*)(data - 4)) = (idx & 8) ? p1 : p0;
-+ *((uchar*)(data - 3)) = (idx & 4) ? p1 : p0;
-+ *((uchar*)(data - 2)) = (idx & 2) ? p1 : p0;
-+ *((uchar*)(data - 1)) = (idx & 1) ? p1 : p0;
- }
-
-- int idx = indices[0] << 24;
-+ int idx = indices[0];
- for( data -= 8; data < end; data++, idx += idx )
- {
-- data[0] = palette[idx < 0];
-+ data[0] = (idx & 128) ? p1 : p0;
- }
-
- return data;
-diff --git a/modules/imgcodecs/src/utils.hpp b/modules/imgcodecs/src/utils.hpp
-index cab10609db2..7af4c6174ee 100644
---- a/modules/imgcodecs/src/utils.hpp
-+++ b/modules/imgcodecs/src/utils.hpp
-@@ -42,6 +42,8 @@
- #ifndef _UTILS_H_
- #define _UTILS_H_
-
-+int validateToInt(size_t step);
-+
- struct PaletteEntry
- {
- unsigned char b, g, r, a;
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch
deleted file mode 100644
index 6e24f2d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch
+++ /dev/null
@@ -1,394 +0,0 @@
-From e4bf148cddf277834e57c9afeec8daff8378a655 Mon Sep 17 00:00:00 2001
-From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-Date: Wed, 22 Nov 2017 15:27:07 +0100
-Subject: [PATCH] Fix: File already exists in database: caffe.proto
-
-Fixes error when importing python cv
-
-Upstream-status: Backport https://github.com/opencv/opencv/pull/10092
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
----
- modules/dnn/CMakeLists.txt | 6 +++---
- modules/dnn/src/caffe/caffe_importer.cpp | 1 -
- modules/dnn/src/caffe/caffe_io.cpp | 1 -
- modules/dnn/src/caffe/caffe_io.hpp | 2 +-
- modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} | 0
- 5 files changed, 4 insertions(+), 6 deletions(-)
- rename modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} (100%)
-
-diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
-index c6329a742263..8ef00ef983ff 100644
---- a/modules/dnn/CMakeLists.txt
-+++ b/modules/dnn/CMakeLists.txt
-@@ -55,13 +55,13 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS
-
- if(PROTOBUF_UPDATE_FILES)
- file(GLOB proto_files src/tensorflow/*.proto)
-- list(APPEND proto_files src/caffe/caffe.proto)
-+ list(APPEND proto_files src/caffe/opencv-caffe.proto)
- PROTOBUF_GENERATE_CPP(Protobuf_HDRS Protobuf_SRCS ${proto_files})
- else()
- file(GLOB fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.cc)
- file(GLOB fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.h)
-- list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.cc)
-- list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.h)
-+ list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.cc)
-+ list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.h)
- list(APPEND Protobuf_SRCS ${fw_srcs})
- list(APPEND Protobuf_HDRS ${fw_hdrs})
- list(APPEND Protobuf_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe)
-diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
-index c075651b95b3..2c977c84b0f4 100644
---- a/modules/dnn/src/caffe/caffe_importer.cpp
-+++ b/modules/dnn/src/caffe/caffe_importer.cpp
-@@ -42,7 +42,6 @@
- #include "../precomp.hpp"
-
- #ifdef HAVE_PROTOBUF
--#include "caffe.pb.h"
-
- #include <iostream>
- #include <fstream>
-diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
-index 0f46ea77df9a..1d3c518f1328 100644
---- a/modules/dnn/src/caffe/caffe_io.cpp
-+++ b/modules/dnn/src/caffe/caffe_io.cpp
-@@ -99,7 +99,6 @@
- #include <fstream>
- #include <vector>
-
--#include "caffe.pb.h"
- #include "caffe_io.hpp"
- #include "glog_emulator.hpp"
-
-diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
-index 09bc5709a24e..f5912c3bcec1 100644
---- a/modules/dnn/src/caffe/caffe_io.hpp
-+++ b/modules/dnn/src/caffe/caffe_io.hpp
-@@ -91,7 +91,7 @@
- #define __OPENCV_DNN_CAFFE_IO_HPP__
- #ifdef HAVE_PROTOBUF
-
--#include "caffe.pb.h"
-+#include "opencv-caffe.pb.h"
-
- namespace cv {
- namespace dnn {
-diff --git a/modules/dnn/src/caffe/caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
-similarity index 100%
-rename from modules/dnn/src/caffe/caffe.proto
-rename to modules/dnn/src/caffe/opencv-caffe.proto
-diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
-index 0b72326f7e7d..f413bad5b81a 100644
---- a/modules/dnn/src/layers/detection_output_layer.cpp
-+++ b/modules/dnn/src/layers/detection_output_layer.cpp
-@@ -44,7 +44,7 @@
- #include "layers_common.hpp"
- #include <float.h>
- #include <string>
--#include <caffe.pb.h>
-+#include <opencv-caffe.pb.h>
-
- namespace cv
- {
-diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
-index 2c977c84b0f4..a1827a381117 100644
---- a/modules/dnn/src/caffe/caffe_importer.cpp
-+++ b/modules/dnn/src/caffe/caffe_importer.cpp
-@@ -78,8 +78,8 @@ static cv::String toString(const T &v)
-
- class CaffeImporter : public Importer
- {
-- caffe::NetParameter net;
-- caffe::NetParameter netBinary;
-+ opencvcaffe::NetParameter net;
-+ opencvcaffe::NetParameter netBinary;
-
- public:
-
-@@ -197,7 +197,7 @@ public:
- }
- }
-
-- void blobShapeFromProto(const caffe::BlobProto &pbBlob, MatShape& shape)
-+ void blobShapeFromProto(const opencvcaffe::BlobProto &pbBlob, MatShape& shape)
- {
- shape.clear();
- if (pbBlob.has_num() || pbBlob.has_channels() || pbBlob.has_height() || pbBlob.has_width())
-@@ -209,7 +209,7 @@ public:
- }
- else if (pbBlob.has_shape())
- {
-- const caffe::BlobShape &_shape = pbBlob.shape();
-+ const opencvcaffe::BlobShape &_shape = pbBlob.shape();
-
- for (int i = 0; i < _shape.dim_size(); i++)
- shape.push_back((int)_shape.dim(i));
-@@ -218,7 +218,7 @@ public:
- CV_Error(Error::StsError, "Unknown shape of input blob");
- }
-
-- void blobFromProto(const caffe::BlobProto &pbBlob, cv::Mat &dstBlob)
-+ void blobFromProto(const opencvcaffe::BlobProto &pbBlob, cv::Mat &dstBlob)
- {
- MatShape shape;
- blobShapeFromProto(pbBlob, shape);
-@@ -233,7 +233,7 @@ public:
- dstData[i] = pbBlob.data(i);
- }
-
-- void extractBinaryLayerParms(const caffe::LayerParameter& layer, LayerParams& layerParams)
-+ void extractBinaryLayerParms(const opencvcaffe::LayerParameter& layer, LayerParams& layerParams)
- {
- const std::string &name = layer.name();
-
-@@ -247,7 +247,7 @@ public:
- if (li == netBinary.layer_size() || netBinary.layer(li).blobs_size() == 0)
- return;
-
-- const caffe::LayerParameter &binLayer = netBinary.layer(li);
-+ const opencvcaffe::LayerParameter &binLayer = netBinary.layer(li);
- layerParams.blobs.resize(binLayer.blobs_size());
- for (int bi = 0; bi < binLayer.blobs_size(); bi++)
- {
-@@ -289,7 +289,7 @@ public:
-
- for (int li = 0; li < layersSize; li++)
- {
-- const caffe::LayerParameter &layer = net.layer(li);
-+ const opencvcaffe::LayerParameter &layer = net.layer(li);
- String name = layer.name();
- String type = layer.type();
- LayerParams layerParams;
-@@ -313,7 +313,7 @@ public:
- addedBlobs.clear();
- }
-
-- void addOutput(const caffe::LayerParameter &layer, int layerId, int outNum)
-+ void addOutput(const opencvcaffe::LayerParameter &layer, int layerId, int outNum)
- {
- const std::string &name = layer.top(outNum);
-
-diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
-index f5912c3bcec1..24cd5fa254eb 100644
---- a/modules/dnn/src/caffe/caffe_io.hpp
-+++ b/modules/dnn/src/caffe/caffe_io.hpp
-@@ -98,9 +98,9 @@ namespace dnn {
-
- // Read parameters from a file into a NetParameter proto message.
- void ReadNetParamsFromTextFileOrDie(const char* param_file,
-- caffe::NetParameter* param);
-+ opencvcaffe::NetParameter* param);
- void ReadNetParamsFromBinaryFileOrDie(const char* param_file,
-- caffe::NetParameter* param);
-+ opencvcaffe::NetParameter* param);
-
- }
- }
-diff --git a/modules/dnn/src/caffe/opencv-caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
-index 3d23fb48ea6a..df4e1d3269ae 100644
---- a/modules/dnn/src/caffe/opencv-caffe.proto
-+++ b/modules/dnn/src/caffe/opencv-caffe.proto
-@@ -48,7 +48,7 @@
-
- syntax = "proto2";
-
--package caffe;
-+package opencvcaffe;
-
- // Specifies the shape (dimensions) of a Blob.
- message BlobShape {
-diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
-index f413bad5b81a..832c257eebf9 100644
---- a/modules/dnn/src/layers/detection_output_layer.cpp
-+++ b/modules/dnn/src/layers/detection_output_layer.cpp
-@@ -72,7 +72,7 @@ public:
-
- int _backgroundLabelId;
-
-- typedef caffe::PriorBoxParameter_CodeType CodeType;
-+ typedef opencvcaffe::PriorBoxParameter_CodeType CodeType;
- CodeType _codeType;
-
- bool _varianceEncodedInTarget;
-@@ -85,7 +85,7 @@ public:
- enum { _numAxes = 4 };
- static const std::string _layerName;
-
-- typedef std::map<int, std::vector<caffe::NormalizedBBox> > LabelBBox;
-+ typedef std::map<int, std::vector<opencvcaffe::NormalizedBBox> > LabelBBox;
-
- bool getParameterDict(const LayerParams ¶ms,
- const std::string ¶meterName,
-@@ -131,11 +131,11 @@ public:
- {
- String codeTypeString = params.get<String>("code_type").toLowerCase();
- if (codeTypeString == "corner")
-- _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
- else if (codeTypeString == "center_size")
-- _codeType = caffe::PriorBoxParameter_CodeType_CENTER_SIZE;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE;
- else
-- _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
- }
-
- DetectionOutputLayerImpl(const LayerParams ¶ms)
-@@ -215,7 +215,7 @@ public:
- GetConfidenceScores(confidenceData, num, numPriors, _numClasses, allConfidenceScores);
-
- // Retrieve all prior bboxes
-- std::vector<caffe::NormalizedBBox> priorBBoxes;
-+ std::vector<opencvcaffe::NormalizedBBox> priorBBoxes;
- std::vector<std::vector<float> > priorVariances;
- GetPriorBBoxes(priorData, numPriors, priorBBoxes, priorVariances);
-
-@@ -272,7 +272,7 @@ public:
- for (size_t j = 0; j < indices.size(); ++j, ++count)
- {
- int idx = indices[j];
-- const caffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
-+ const opencvcaffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
- outputsData[count * 7] = i;
- outputsData[count * 7 + 1] = label;
- outputsData[count * 7 + 2] = scores[idx];
-@@ -355,7 +355,7 @@ public:
-
- // Compute bbox size
- template<bool normalized>
-- static float BBoxSize(const caffe::NormalizedBBox& bbox)
-+ static float BBoxSize(const opencvcaffe::NormalizedBBox& bbox)
- {
- if (bbox.xmax() < bbox.xmin() || bbox.ymax() < bbox.ymin())
- {
-@@ -388,10 +388,10 @@ public:
- // Decode a bbox according to a prior bbox
- template<bool variance_encoded_in_target>
- static void DecodeBBox(
-- const caffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
-+ const opencvcaffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
- const CodeType code_type,
-- const bool clip_bbox, const caffe::NormalizedBBox& bbox,
-- caffe::NormalizedBBox& decode_bbox)
-+ const bool clip_bbox, const opencvcaffe::NormalizedBBox& bbox,
-+ opencvcaffe::NormalizedBBox& decode_bbox)
- {
- float bbox_xmin = variance_encoded_in_target ? bbox.xmin() : prior_variance[0] * bbox.xmin();
- float bbox_ymin = variance_encoded_in_target ? bbox.ymin() : prior_variance[1] * bbox.ymin();
-@@ -399,13 +399,13 @@ public:
- float bbox_ymax = variance_encoded_in_target ? bbox.ymax() : prior_variance[3] * bbox.ymax();
- switch(code_type)
- {
-- case caffe::PriorBoxParameter_CodeType_CORNER:
-+ case opencvcaffe::PriorBoxParameter_CodeType_CORNER:
- decode_bbox.set_xmin(prior_bbox.xmin() + bbox_xmin);
- decode_bbox.set_ymin(prior_bbox.ymin() + bbox_ymin);
- decode_bbox.set_xmax(prior_bbox.xmax() + bbox_xmax);
- decode_bbox.set_ymax(prior_bbox.ymax() + bbox_ymax);
- break;
-- case caffe::PriorBoxParameter_CodeType_CENTER_SIZE:
-+ case opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE:
- {
- float prior_width = prior_bbox.xmax() - prior_bbox.xmin();
- CV_Assert(prior_width > 0);
-@@ -431,7 +431,7 @@ public:
- };
- if (clip_bbox)
- {
-- // Clip the caffe::NormalizedBBox such that the range for each corner is [0, 1]
-+ // Clip the opencvcaffe::NormalizedBBox such that the range for each corner is [0, 1]
- decode_bbox.set_xmin(std::max(std::min(decode_bbox.xmin(), 1.f), 0.f));
- decode_bbox.set_ymin(std::max(std::min(decode_bbox.ymin(), 1.f), 0.f));
- decode_bbox.set_xmax(std::max(std::min(decode_bbox.xmax(), 1.f), 0.f));
-@@ -443,11 +443,11 @@ public:
-
- // Decode a set of bboxes according to a set of prior bboxes
- static void DecodeBBoxes(
-- const std::vector<caffe::NormalizedBBox>& prior_bboxes,
-+ const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
- const std::vector<std::vector<float> >& prior_variances,
- const CodeType code_type, const bool variance_encoded_in_target,
-- const bool clip_bbox, const std::vector<caffe::NormalizedBBox>& bboxes,
-- std::vector<caffe::NormalizedBBox>& decode_bboxes)
-+ const bool clip_bbox, const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
-+ std::vector<opencvcaffe::NormalizedBBox>& decode_bboxes)
- {
- CV_Assert(prior_bboxes.size() == prior_variances.size());
- CV_Assert(prior_bboxes.size() == bboxes.size());
-@@ -470,7 +470,7 @@ public:
-
- // Decode all bboxes in a batch
- static void DecodeBBoxesAll(const std::vector<LabelBBox>& all_loc_preds,
-- const std::vector<caffe::NormalizedBBox>& prior_bboxes,
-+ const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
- const std::vector<std::vector<float> >& prior_variances,
- const int num, const bool share_location,
- const int num_loc_classes, const int background_label_id,
-@@ -503,10 +503,10 @@ public:
- // Get prior bounding boxes from prior_data
- // prior_data: 1 x 2 x num_priors * 4 x 1 blob.
- // num_priors: number of priors.
-- // prior_bboxes: stores all the prior bboxes in the format of caffe::NormalizedBBox.
-+ // prior_bboxes: stores all the prior bboxes in the format of opencvcaffe::NormalizedBBox.
- // prior_variances: stores all the variances needed by prior bboxes.
- static void GetPriorBBoxes(const float* priorData, const int& numPriors,
-- std::vector<caffe::NormalizedBBox>& priorBBoxes,
-+ std::vector<opencvcaffe::NormalizedBBox>& priorBBoxes,
- std::vector<std::vector<float> >& priorVariances)
- {
- priorBBoxes.clear(); priorBBoxes.resize(numPriors);
-@@ -514,7 +514,7 @@ public:
- for (int i = 0; i < numPriors; ++i)
- {
- int startIdx = i * 4;
-- caffe::NormalizedBBox& bbox = priorBBoxes[i];
-+ opencvcaffe::NormalizedBBox& bbox = priorBBoxes[i];
- bbox.set_xmin(priorData[startIdx]);
- bbox.set_ymin(priorData[startIdx + 1]);
- bbox.set_xmax(priorData[startIdx + 2]);
-@@ -565,7 +565,7 @@ public:
- {
- labelBBox[label].resize(numPredsPerClass);
- }
-- caffe::NormalizedBBox& bbox = labelBBox[label][p];
-+ opencvcaffe::NormalizedBBox& bbox = labelBBox[label][p];
- bbox.set_xmin(locData[startIdx + c * 4]);
- bbox.set_ymin(locData[startIdx + c * 4 + 1]);
- bbox.set_xmax(locData[startIdx + c * 4 + 2]);
-@@ -612,7 +612,7 @@ public:
- // nms_threshold: a threshold used in non maximum suppression.
- // top_k: if not -1, keep at most top_k picked indices.
- // indices: the kept indices of bboxes after nms.
-- static void ApplyNMSFast(const std::vector<caffe::NormalizedBBox>& bboxes,
-+ static void ApplyNMSFast(const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
- const std::vector<float>& scores, const float score_threshold,
- const float nms_threshold, const float eta, const int top_k,
- std::vector<int>& indices)
-@@ -674,10 +674,10 @@ public:
-
- // Compute the jaccard (intersection over union IoU) overlap between two bboxes.
- template<bool normalized>
-- static float JaccardOverlap(const caffe::NormalizedBBox& bbox1,
-- const caffe::NormalizedBBox& bbox2)
-+ static float JaccardOverlap(const opencvcaffe::NormalizedBBox& bbox1,
-+ const opencvcaffe::NormalizedBBox& bbox2)
- {
-- caffe::NormalizedBBox intersect_bbox;
-+ opencvcaffe::NormalizedBBox intersect_bbox;
- if (bbox2.xmin() > bbox1.xmax() || bbox2.xmax() < bbox1.xmin() ||
- bbox2.ymin() > bbox1.ymax() || bbox2.ymax() < bbox1.ymin())
- {
-diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
-index 1d3c518f1328..3cf6e255aa60 100644
---- a/modules/dnn/src/caffe/caffe_io.cpp
-+++ b/modules/dnn/src/caffe/caffe_io.cpp
-@@ -107,7 +107,7 @@ namespace dnn {
-
- using std::string;
- using std::map;
--using namespace caffe;
-+using namespace opencvcaffe;
- using namespace ::google::protobuf;
- using namespace ::google::protobuf::io;
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
index 3aeda7d..3ed3468 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
@@ -1,24 +1,25 @@
-diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
-index b8cb8777c06b..75281ee964fd 100644
---- a/cmake/OpenCVGenPkgconfig.cmake
-+++ b/cmake/OpenCVGenPkgconfig.cmake
-@@ -27,7 +27,7 @@ macro(fix_prefix lst isown)
+Index: git/cmake/OpenCVGenPkgconfig.cmake
+===================================================================
+--- git.orig/cmake/OpenCVGenPkgconfig.cmake
++++ git/cmake/OpenCVGenPkgconfig.cmake
+@@ -31,7 +31,7 @@ macro(fix_prefix lst isown)
get_filename_component(libdir "${item}" PATH)
- get_filename_component(libname "${item}" NAME_WE)
- string(REGEX REPLACE "^lib(.*)" "\\1" libname "${libname}")
+ get_filename_component(_libname "${item}" NAME)
+ ocv_get_libname(libname "${_libname}")
- list(APPEND _lst "-L${libdir}" "-l${libname}")
+ list(APPEND _lst "-l${libname}")
else()
list(APPEND _lst "-l${item}")
endif()
-@@ -66,10 +66,14 @@ ocv_list_unique(_3rdparty)
+@@ -124,11 +124,14 @@ ocv_list_unique(_extra)
+ ocv_list_unique(_3rdparty)
set(OPENCV_PC_LIBS
- "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
+- "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
+ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
"${_modules}"
)
- if (BUILD_SHARED_LIBS)
+ if(BUILD_SHARED_LIBS)
- set(OPENCV_PC_LIBS_PRIVATE "${_extra}")
+ set(OPENCV_PC_LIBS_PRIVATE
+ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch
deleted file mode 100644
index 56526ec..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream-status: Inappropriate [OE specific] https://github.com/opencv/opencv/pull/10039#issuecomment-342539288
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt
-index 74bc0ef04169..4622fbf9a5f1 100644
---- a/modules/java/CMakeLists.txt
-+++ b/modules/java/CMakeLists.txt
-@@ -291,7 +291,7 @@ foreach(java_file ${step3_input_files})
- endif()
- if(__configure)
- configure_file("${java_file}" "${java_src_dir}/${output_name}" @ONLY)
-- elseif(NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
-+ elseif(EXISTS "${java_file}" AND NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
- configure_file("${java_file}" "${java_src_dir}/${output_name}" COPYONLY)
- else()
- add_custom_command(OUTPUT "${java_src_dir}/${output_name}"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch
deleted file mode 100644
index c63dc14..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Upstream-status: Inappropriate [OE specific]
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/cmake/OpenCVFindLibProtobuf.cmake b/cmake/OpenCVFindLibProtobuf.cmake
-index b6ce1e7fd56b..e916ec0df2a6 100644
---- a/cmake/OpenCVFindLibProtobuf.cmake
-+++ b/cmake/OpenCVFindLibProtobuf.cmake
-@@ -7,21 +7,21 @@ OCV_OPTION(BUILD_PROTOBUF "Force to build libprotobuf from sources" ON)
- OCV_OPTION(PROTOBUF_UPDATE_FILES "Force to rebuild .proto files" OFF)
-
- if(PROTOBUF_UPDATE_FILES)
-- if(NOT DEFINED Protobuf_PROTOC_EXECUTABLE)
-+ if(NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE)
- find_package(Protobuf QUIET)
- endif()
-- if(DEFINED Protobuf_PROTOC_EXECUTABLE AND EXISTS ${Protobuf_PROTOC_EXECUTABLE})
-- message(STATUS "The protocol buffer compiler is found (${Protobuf_PROTOC_EXECUTABLE})")
-+ if(DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE})
-+ message(STATUS "The protocol buffer compiler is found (${PROTOBUF_PROTOC_EXECUTABLE})")
- else()
-- message(FATAL_ERROR "The protocol buffer compiler is not found (Protobuf_PROTOC_EXECUTABLE='${Protobuf_PROTOC_EXECUTABLE}')")
-+ message(FATAL_ERROR "The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='${PROTOBUF_PROTOC_EXECUTABLE}')")
- endif()
- endif()
-
--if(NOT BUILD_PROTOBUF AND NOT (DEFINED Protobuf_INCLUDE_DIRS AND DEFINED Protobuf_LIBRARIES))
-+if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
- find_package(Protobuf QUIET)
- endif()
-
--if(Protobuf_FOUND)
-+if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
- # nothing
- else()
- set(Protobuf_LIBRARIES libprotobuf)
-diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
-index 2a71568d1a44..c6329a742263 100644
---- a/modules/dnn/CMakeLists.txt
-+++ b/modules/dnn/CMakeLists.txt
-@@ -7,7 +7,7 @@ if(DEFINED BUILD_opencv_dnn AND NOT BUILD_opencv_dnn)
- endif()
-
- include(${OpenCV_SOURCE_DIR}/cmake/OpenCVFindLibProtobuf.cmake)
--if(NOT Protobuf_FOUND)
-+if(NOT PROTOBUF_FOUND)
- ocv_module_disable(opencv_dnn)
- endif()
-
-@@ -72,7 +72,7 @@ ocv_source_group("Src\\protobuf" FILES ${Protobuf_SRCS} ${Protobuf_HDRS})
- ocv_module_include_directories(include ${Protobuf_INCLUDE_DIRS})
-
- ocv_glob_module_sources(${Protobuf_SRCS} ${Protobuf_HDRS} ${CBLAS_H_PROXY_PATH})
--ocv_create_module(${Protobuf_LIBRARIES} ${LAPACK_LIBRARIES})
-+ocv_create_module(${PROTOBUF_LIBRARIES} ${LAPACK_LIBRARIES})
- ocv_add_samples()
- ocv_add_accuracy_tests()
- ocv_add_perf_tests()
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
deleted file mode 100644
index c433fc3..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Upstream-status: Inappropriate [OE specific]
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/modules/dnn_modern/CMakeLists.txt b/modules/dnn_modern/CMakeLists.txt
-index 79b64b12160b..ba06a0a163e4 100644
---- a/modules/dnn_modern/CMakeLists.txt
-+++ b/modules/dnn_modern/CMakeLists.txt
-@@ -15,24 +15,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
- # MODULE REQUIREMENTS
- # ----------------------------------------------------------------------------
-
--set(TINY_DNN_CPP_PATH "${OpenCV_BINARY_DIR}/3rdparty/tinydnn")
--set(TINY_DNN_CPP_ROOT "${TINY_DNN_CPP_PATH}/tiny-dnn-1.0.0a3")
--ocv_download(FILENAME "v1.0.0a3.tar.gz"
-- HASH "adb1c512e09ca2c7a6faef36f9c53e59"
-- URL
-- "${OPENCV_TINY_DNN_URL}"
-- "$ENV{OPENCV_TINY_DNN_URL}"
-- "https://github.com/tiny-dnn/tiny-dnn/archive/"
-- DESTINATION_DIR "${TINY_DNN_CPP_PATH}"
-- STATUS TINY_DNN_DOWNLOAD_SUCCESS
-- ID "tiny-dnn"
-- UNPACK RELATIVE_URL)
--
--if(NOT TINY_DNN_DOWNLOAD_SUCCESS)
-- message(STATUS "Failed to download tiny-dnn sources")
--endif()
--
--find_package(TinyDNN QUIET)
-+set(TINYDNN_INCLUDE_DIRS "${OpenCV_SOURCE_DIR}/3rdparty/tinydnn/tiny-dnn-1.0.0a3")
-+set(TinyDNN_FOUND TRUE)
-
- include(CheckCXXCompilerFlag)
- CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
deleted file mode 100644
index ca62de7..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
+++ /dev/null
@@ -1,203 +0,0 @@
-SUMMARY = "Opencv : The Open Computer Vision Library"
-HOMEPAGE = "http://opencv.org/"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2b2f8752cc5edf504d283107d033f544"
-
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
-
-SRCREV_opencv = "87c27a074db9f6d9d60513f351daa903606ca370"
-SRCREV_contrib = "2a9d1b22ed76eb22fad1a5edf6faf4d05f207b13"
-SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db"
-SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
-SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
-SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59"
-SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b"
-
-def ipp_filename(d):
- import re
- arch = d.getVar('TARGET_ARCH', True)
- if re.match("i.86$", arch):
- return "ippicv_2017u2_lnx_ia32_20170418.tgz"
- else:
- return "ippicv_2017u2_lnx_intel64_20170418.tgz"
-
-def ipp_md5sum(d):
- import re
- arch = d.getVar('TARGET_ARCH', True)
- if re.match("i.86$", arch):
- return "f2cece00d802d4dea86df52ed095257e"
- else:
- return "808b791a6eac9ed78d32a7666804320e"
-
-IPP_FILENAME = "${@ipp_filename(d)}"
-IPP_MD5 = "${@ipp_md5sum(d)}"
-
-SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
-SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
- git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
- git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \
- git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \
- git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
- https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \
- file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
- file://fixpkgconfig.patch \
- file://uselocalxfeatures.patch;patchdir=../contrib/ \
- file://tinydnn.patch;patchdir=../contrib/ \
- file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \
- file://0003-To-fix-errors-as-following.patch \
- file://0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch \
- file://0002-imgcodecs-refactoring-improve-code-quality.patch \
- file://0003-imgproc-test-add-checks-for-remove-call.patch \
- file://0001-Dont-use-isystem.patch \
- file://0001-carotene-don-t-use-__asm__-with-aarch64.patch \
- file://0002-Do-not-enable-asm-with-clang.patch \
- file://CVE-2017-14136.patch \
- file://javagen.patch \
- file://protobuf.patch \
- file://already-exists.patch \
-"
-PV = "3.3+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-do_unpack_extra() {
- mkdir -p ${S}/3rdparty/tinydnn/
- tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/
- tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
- cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
- cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
-}
-addtask unpack_extra after do_unpack before do_patch
-
-EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
- -DWITH_1394=OFF \
- -DCMAKE_SKIP_RPATH=ON \
- -DOPENCV_ICV_HASH=${IPP_MD5} \
- -DIPPROOT=${WORKDIR}/ippicv_lnx \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
- ${@oe.utils.conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
- ${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
-"
-EXTRA_OECMAKE_append_x86 = " -DX86=ON"
-
-PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \
- ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
-
-PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
-PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
-PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
-PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
-PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
-PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
-PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base,"
-PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3,"
-PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
-PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native,"
-PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
-PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
-PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
-PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd,"
-PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native,"
-PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
-PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy,"
-PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy,"
-PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,,"
-PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb,"
-PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract,"
-PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
-PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
-
-inherit pkgconfig cmake
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)}
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)}
-
-export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
-export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}"
-export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java"
-export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native"
-export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/"
-
-TARGET_CC_ARCH += "-I${S}/include "
-
-PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \
- ${PN}-apps"
-
-python populate_packages_prepend () {
- cv_libdir = d.expand('${libdir}')
- do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
- do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
-
- pn = d.getVar('PN')
- metapkg = pn + '-dev'
- d.setVar('ALLOW_EMPTY_' + metapkg, "1")
- blacklist = [ metapkg ]
- metapkg_rdepends = [ ]
- packages = d.getVar('PACKAGES').split()
- for pkg in packages[1:]:
- if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
- metapkg_rdepends.append(pkg)
- d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
-
- metapkg = pn
- d.setVar('ALLOW_EMPTY_' + metapkg, "1")
- blacklist = [ metapkg, "libopencv-ts" ]
- metapkg_rdepends = [ ]
- for pkg in packages[1:]:
- if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
- metapkg_rdepends.append(pkg)
- d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
-}
-
-PACKAGES_DYNAMIC += "^libopencv-.*"
-
-FILES_${PN} = ""
-FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*"
-FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake"
-FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a"
-FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
-FILES_${PN}-java = "${datadir}/OpenCV/java"
-FILES_${PN}-samples = "${datadir}/OpenCV/samples/"
-
-INSANE_SKIP_${PN}-java = "libdir"
-INSANE_SKIP_${PN}-dbg = "libdir"
-
-ALLOW_EMPTY_${PN} = "1"
-
-SUMMARY_python-opencv = "Python bindings to opencv"
-FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python-opencv = "python-core python-numpy"
-
-SUMMARY_python3-opencv = "Python bindings to opencv"
-FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python3-opencv = "python3-core python3-numpy"
-
-do_install_append() {
- cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
- sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
-
- # Move Python files into correct library folder (for multilib build)
- if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
- mv ${D}/usr/lib/* ${D}/${libdir}/
- rm -rf ${D}/usr/lib
- fi
-
- if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then
- install -d ${D}${datadir}/OpenCV/samples/bin/
- cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/
- fi
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.3.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.3.bb
new file mode 100644
index 0000000..0a99700
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.3.bb
@@ -0,0 +1,192 @@
+SUMMARY = "Opencv : The Open Computer Vision Library"
+HOMEPAGE = "http://opencv.org/"
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=62d89c5dcb0583609ea919c56be0ee76"
+
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
+
+SRCREV_opencv = "b38c50b3d0c31e82294315ec44b54b7ef559ef12"
+SRCREV_contrib = "1f6d6f06266e1ef336437ae5404bee1c65d42cda"
+SRCREV_ipp = "bdb7bb85f34a8cb0d35e40a81f58da431aa1557a"
+SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
+SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
+SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59"
+SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b"
+
+def ipp_filename(d):
+ import re
+ arch = d.getVar('TARGET_ARCH', True)
+ if re.match("i.86$", arch):
+ return "ippicv_2017u3_lnx_ia32_general_20180518.tgz"
+ else:
+ return "ippicv_2017u3_lnx_intel64_general_20180518.tgz"
+
+def ipp_md5sum(d):
+ import re
+ arch = d.getVar('TARGET_ARCH', True)
+ if re.match("i.86$", arch):
+ return "ea72de74dae3c604eb6348395366e78e"
+ else:
+ return "b7cc351267db2d34b9efa1cd22ff0572"
+
+IPP_FILENAME = "${@ipp_filename(d)}"
+IPP_MD5 = "${@ipp_md5sum(d)}"
+
+SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
+SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
+ git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
+ git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20180518;destsuffix=ipp;name=ipp \
+ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \
+ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
+ https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \
+ file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
+ file://uselocalxfeatures.patch;patchdir=../contrib/ \
+ file://0001-Add-missing-multi-line-separator.patch;patchdir=../contrib/ \
+ file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \
+ file://0003-To-fix-errors-as-following.patch \
+ file://fixpkgconfig.patch \
+ file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \
+ file://0001-Dont-use-isystem.patch \
+ file://0001-Check-for-clang-before-using-isystem.patch \
+"
+PV = "3.4.3+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+do_unpack_extra() {
+ mkdir -p ${S}/3rdparty/tinydnn/
+ tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/
+ tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
+ cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
+ cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
+}
+addtask unpack_extra after do_unpack before do_patch
+
+EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
+ -DWITH_1394=OFF \
+ -DENABLE_PRECOMPILED_HEADERS=OFF \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DOPENCV_ICV_HASH=${IPP_MD5} \
+ -DIPPROOT=${WORKDIR}/ippicv_lnx \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
+ ${@oe.utils.conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+ ${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+"
+EXTRA_OECMAKE_append_x86 = " -DX86=ON"
+
+PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
+
+PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
+PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
+PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
+PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
+PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
+PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base,"
+PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3,"
+PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
+PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native,"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
+PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
+PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
+PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd,"
+PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native,"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
+PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy,"
+PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy,"
+PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,,"
+PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb,"
+PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract,"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
+PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
+
+inherit pkgconfig cmake
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)}
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)}
+
+export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
+export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}"
+export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java"
+export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native"
+export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/"
+
+TARGET_CC_ARCH += "-I${S}/include "
+
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \
+ ${PN}-apps"
+
+python populate_packages_prepend () {
+ cv_libdir = d.expand('${libdir}')
+ do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
+ do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
+
+ pn = d.getVar('PN')
+ metapkg = pn + '-dev'
+ d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+ blacklist = [ metapkg ]
+ metapkg_rdepends = [ ]
+ packages = d.getVar('PACKAGES').split()
+ for pkg in packages[1:]:
+ if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
+
+ metapkg = pn
+ d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+ blacklist = [ metapkg, "libopencv-ts" ]
+ metapkg_rdepends = [ ]
+ for pkg in packages[1:]:
+ if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
+}
+
+PACKAGES_DYNAMIC += "^libopencv-.*"
+
+FILES_${PN} = ""
+FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*"
+FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake"
+FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a"
+FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
+FILES_${PN}-java = "${datadir}/OpenCV/java"
+FILES_${PN}-samples = "${datadir}/OpenCV/samples/"
+
+INSANE_SKIP_${PN}-java = "libdir"
+INSANE_SKIP_${PN}-dbg = "libdir"
+
+ALLOW_EMPTY_${PN} = "1"
+
+SUMMARY_python-opencv = "Python bindings to opencv"
+FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python-opencv = "python-core python-numpy"
+
+SUMMARY_python3-opencv = "Python bindings to opencv"
+FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python3-opencv = "python3-core python3-numpy"
+
+do_install_append() {
+ cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
+ sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
+
+ # Move Python files into correct library folder (for multilib build)
+ if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
+ mv ${D}/usr/lib/* ${D}/${libdir}/
+ rm -rf ${D}/usr/lib
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
index 2992b70..7c67596 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
@@ -1,6 +1,9 @@
# This patch ensures that the install operations which strip
# programs and libraries (LTINSTALL) work in a cross build
# environment.
+
+Upstream-Status: Pending
+
--- openldap-2.2.24/.pc/install-strip.patch/build/top.mk 2005-01-20 09:00:55.000000000 -0800
+++ openldap-2.2.24/build/top.mk 2005-04-16 13:48:20.536710376 -0700
@@ -116,7 +116,7 @@
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
index dcf5411..35e4646 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
@@ -2,7 +2,7 @@
slapd depends on ICU if it was built first.
-Upstream-status: inappropiate [embedded specific]
+Upstream-Status: inappropiate [embedded specific]
---
configure.in | 8 --------
1 file changed, 8 deletions(-)
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
index c7b1552..86d0767 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
@@ -1,6 +1,6 @@
From http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-nds/openldap/files/
-Upstream-status: Unknown
+Upstream-status: Pending
--
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
index de9ca52..25e148e 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
@@ -10,6 +10,8 @@
be used and allow remote attackers to have unspecified impact via
unknown vectors.
+Upstream-Status: Pending
+
Signed-off-by: Li Wang <li.wang@windriver.com>
---
libraries/libldap/tls_m.c | 27 ++++++++++++++++-----------
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
index b669b72..38c0a5a 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- openldap-2.3.11/build/openldap.m4.orig 2005-11-11 00:11:18.604322590 -0800
+++ openldap-2.3.11/build/openldap.m4 2005-11-11 00:26:21.621145856 -0800
@@ -788,7 +788,7 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch
new file mode 100644
index 0000000..4eb3897
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch
@@ -0,0 +1,29 @@
+diff -ru openldap-2.4.46.orig/build/mkversion openldap-2.4.46/build/mkversion
+--- openldap-2.4.46.orig/build/mkversion 2018-10-25 18:46:10.383750480 +1300
++++ openldap-2.4.46/build/mkversion 2018-10-25 18:46:33.156232586 +1300
+@@ -50,7 +50,15 @@
+ fi
+
+ APPLICATION=$1
+-WHOWHERE="$USER@`uname -n`:`pwd`"
++if [ -n "${SOURCE_DATE_EPOCH}" ]; then
++ WHOWHERE="openldap"
++ DATE=$(date -d@$SOURCE_DATE_EPOCH +' %b %d %Y ')
++ TIME=$(date -d@$SOURCE_DATE_EPOCH +' %H:%M:%S ')
++else
++ WHOWHERE="$USER@$(uname -n):$(pwd)"
++ DATE='" __DATE__ "'
++ TIME='" __TIME__ "'
++fi
+
+ cat << __EOF__
+ /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+@@ -72,7 +80,7 @@
+ "COPYING RESTRICTIONS APPLY\n";
+
+ $static $const char $SYMBOL[] =
+-"@(#) \$$PACKAGE: $APPLICATION $VERSION (" __DATE__ " " __TIME__ ") \$\n"
++"@(#) \$$PACKAGE: $APPLICATION $VERSION ($DATE $TIME) \$\n"
+ "\t$WHOWHERE\n";
+
+ __EOF__
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
deleted file mode 100644
index 82d6619..0000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
+++ /dev/null
@@ -1,256 +0,0 @@
-# OpenLDAP, a license free (see http://www.OpenLDAP.org/license.html)
-#
-SUMMARY = "OpenLDAP Directory Service"
-DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
-HOMEPAGE = "http://www.OpenLDAP.org/license.html"
-# The OpenLDAP Public License - see the HOMEPAGE - defines
-# the license. www.openldap.org claims this is Open Source
-# (see http://www.openldap.org), the license appears to be
-# basically BSD. opensource.org does not record this license
-# at present (so it is apparently not OSI certified).
-LICENSE = "OpenLDAP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25fd3721960f39128cd15a749fd21139 \
- file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
-"
-SECTION = "libs"
-
-LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
-
-SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \
- file://openldap-m4-pthread.patch \
- file://kill-icu.patch \
- file://openldap-2.4.28-gnutls-gcrypt.patch \
- file://use-urandom.patch \
- file://initscript \
- file://slapd.service \
- file://thread_stub.patch \
- file://openldap-CVE-2015-3276.patch \
-"
-
-SRC_URI[md5sum] = "00ff8301277cdfd0af728a6927042a13"
-SRC_URI[sha256sum] = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824"
-
-DEPENDS = "util-linux groff-native"
-
-# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when
-# installing .so and executables, this fails in cross compilation
-# environments
-SRC_URI += "file://install-strip.patch"
-
-inherit autotools-brokensep update-rc.d systemd
-
-# CV SETTINGS
-# Required to work round AC_FUNC_MEMCMP which gets the wrong answer
-# when cross compiling (should be in site?)
-EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
-
-# CONFIG DEFINITIONS
-# The following is necessary because it cannot be determined for a
-# cross compile automagically. Select should yield fine on all OE
-# systems...
-EXTRA_OECONF += "--with-yielding-select=yes"
-# Shared libraries are nice...
-EXTRA_OECONF += "--enable-dynamic"
-
-PACKAGECONFIG ??= "gnutls modules \
- mdb ldap meta monitor null passwd shell proxycache dnssrv \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-#--with-tls with TLS/SSL support auto|openssl|gnutls [auto]
-PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt"
-PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl"
-
-PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
-
-# SLAPD options
-#
-# UNIX crypt(3) passwd support:
-EXTRA_OECONF += "--enable-crypt"
-
-# SLAPD BACKEND
-#
-# The backend must be set by the configuration. This controls the
-# required database.
-#
-# Backends="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql"
-#
-# Note that multiple backends can be built. The ldbm backend requires a
-# build-time choice of database API. The bdb backend forces this to be
-# DB4. To use the gdbm (or other) API the Berkely database module must
-# be removed from the build.
-md = "${libexecdir}/openldap"
-#
-#--enable-bdb enable Berkeley DB backend no|yes|mod yes
-# The Berkely DB is the standard choice. This version of OpenLDAP requires
-# the version 4 implementation or better.
-PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db"
-
-#--enable-dnssrv enable dnssrv backend no|yes|mod no
-PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
-
-#--enable-hdb enable Hierarchical DB backend no|yes|mod no
-PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db"
-
-#--enable-ldap enable ldap backend no|yes|mod no
-PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no,"
-
-#--enable-mdb enable mdb database backend no|yes|mod [yes]
-PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no,"
-
-#--enable-meta enable metadirectory backend no|yes|mod no
-PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
-
-#--enable-monitor enable monitor backend no|yes|mod yes
-PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=no,"
-
-#--enable-ndb enable MySQL NDB Cluster backend no|yes|mod [no]
-PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no,"
-
-#--enable-null enable null backend no|yes|mod no
-PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
-
-#--enable-passwd enable passwd backend no|yes|mod no
-PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no,"
-
-#--enable-perl enable perl backend no|yes|mod no
-# This requires a loadable perl dynamic library, if enabled without
-# doing something appropriate (building perl?) the build will pick
-# up the build machine perl - not good (inherit perlnative?)
-PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl"
-
-#--enable-relay enable relay backend no|yes|mod [yes]
-PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no,"
-
-#--enable-shell enable shell backend no|yes|mod no
-# configure: WARNING: Use of --without-threads is recommended with back-shell
-PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=no,"
-
-#--enable-sock enable sock backend no|yes|mod [no]
-PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no,"
-
-#--enable-sql enable sql backend no|yes|mod no
-# sql requires some sql backend which provides sql.h, sqlite* provides
-# sqlite.h (which may be compatible but hasn't been tried.)
-PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3"
-
-#--enable-dyngroup Dynamic Group overlay no|yes|mod no
-# This is a demo, Proxy Cache defines init_module which conflicts with the
-# same symbol in dyngroup
-PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no,"
-
-#--enable-proxycache Proxy Cache overlay no|yes|mod no
-PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
-FILES_${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
-PACKAGES += "${PN}-overlay-proxycache"
-
-# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
-# This allows tls to obtain random bits from /dev/urandom, by default
-# it was disabled for cross-compiling.
-CPPFLAGS_append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\' -fPIC"
-
-LDFLAGS_append = " -pthread"
-
-do_configure() {
- cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
- rm -f ${S}/libtool
- aclocal
- libtoolize --force --copy
- gnu-configize
- autoconf
- oe_runconf
-}
-
-LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
-
-# The executables go in a separate package. This allows the
-# installation of the libraries with no daemon support.
-# Each module also has its own package - see above.
-PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
-
-# Package contents - shift most standard contents to -bin
-FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
-FILES_${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
- ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
- ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
-FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run ${localstatedir}/volatile/run"
-FILES_${PN}-bin = "${bindir}"
-FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so"
-FILES_${PN}-dbg += "${libexecdir}/openldap/.debug"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/init.d
- cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap
- chmod 755 ${D}${sysconfdir}/init.d/openldap
- # This is duplicated in /etc/openldap and is for slapd
- rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example
-
- # Installing slapd under ${sbin} is more FHS and LSB compliance
- mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
- rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
- SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema"
- cd ${D}/${sbindir}/
- rm -f ${SLAPTOOLS}
- for i in ${SLAPTOOLS}; do ln -sf slapd $i; done
-
- rmdir "${D}${localstatedir}/run"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service
-
- # Uses mdm as the database
- # and localstatedir as data directory ...
- sed -e 's/# modulepath/modulepath/' \
- -e 's/# moduleload\s*back_bdb.*/moduleload back_mdb/' \
- -e 's/database\s*bdb/database mdb/' \
- -e 's%^directory\s*.*%directory ${localstatedir}/${BPN}/data/%' \
- -i ${D}${sysconfdir}/openldap/slapd.conf
-
- mkdir -p ${D}${localstatedir}/${BPN}/data
-
-
-}
-
-INITSCRIPT_PACKAGES = "${PN}-slapd"
-INITSCRIPT_NAME_${PN}-slapd = "openldap"
-INITSCRIPT_PARAMS_${PN}-slapd = "defaults"
-SYSTEMD_SERVICE_${PN}-slapd = "hostapd.service"
-SYSTEMD_AUTO_ENABLE_${PN}-slapd ?= "disable"
-
-
-PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*"
-
-# The modules require their .so to be dynamicaly loaded
-INSANE_SKIP_${PN}-backend-dnssrv += "dev-so"
-INSANE_SKIP_${PN}-backend-ldap += "dev-so"
-INSANE_SKIP_${PN}-backend-meta += "dev-so"
-INSANE_SKIP_${PN}-backend-mdb += "dev-so"
-INSANE_SKIP_${PN}-backend-monitor += "dev-so"
-INSANE_SKIP_${PN}-backend-null += "dev-so"
-INSANE_SKIP_${PN}-backend-passwd += "dev-so"
-INSANE_SKIP_${PN}-backend-shell += "dev-so"
-
-
-python populate_packages_prepend () {
- backend_dir = d.expand('${libexecdir}/openldap')
- do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
- do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
-
- metapkg = "${PN}-backends"
- d.setVar('ALLOW_EMPTY_' + metapkg, "1")
- d.setVar('FILES_' + metapkg, "")
- metapkg_rdepends = []
- packages = d.getVar('PACKAGES').split()
- for pkg in packages[1:]:
- if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
- metapkg_rdepends.append(pkg)
- d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
- d.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package')
- packages.append(metapkg)
- d.setVar('PACKAGES', ' '.join(packages))
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.46.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.46.bb
new file mode 100644
index 0000000..7fe9fb0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.46.bb
@@ -0,0 +1,255 @@
+SUMMARY = "OpenLDAP Directory Service"
+DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
+HOMEPAGE = "http://www.OpenLDAP.org/license.html"
+# The OpenLDAP Public License - see the HOMEPAGE - defines
+# the license. www.openldap.org claims this is Open Source
+# (see http://www.openldap.org), the license appears to be
+# basically BSD. opensource.org does not record this license
+# at present (so it is apparently not OSI certified).
+LICENSE = "OpenLDAP"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25b4ead0e45182e7c2914e59ff57009f \
+ file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
+ "
+SECTION = "libs"
+
+LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
+
+SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \
+ file://openldap-m4-pthread.patch \
+ file://kill-icu.patch \
+ file://openldap-2.4.28-gnutls-gcrypt.patch \
+ file://use-urandom.patch \
+ file://initscript \
+ file://slapd.service \
+ file://thread_stub.patch \
+ file://openldap-CVE-2015-3276.patch \
+ file://remove-user-host-pwd-from-version.patch \
+"
+
+SRC_URI[md5sum] = "829016c5a9f45c51adc50073ac6f9fd7"
+SRC_URI[sha256sum] = "9a90dcb86b99ae790ccab93b7585a31fbcbeec8c94bf0f7ab0ca0a87ea0c4b2d"
+
+DEPENDS = "util-linux groff-native"
+
+# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when
+# installing .so and executables, this fails in cross compilation
+# environments
+SRC_URI += "file://install-strip.patch"
+
+inherit autotools-brokensep update-rc.d systemd
+
+# CV SETTINGS
+# Required to work round AC_FUNC_MEMCMP which gets the wrong answer
+# when cross compiling (should be in site?)
+EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
+
+# CONFIG DEFINITIONS
+# The following is necessary because it cannot be determined for a
+# cross compile automagically. Select should yield fine on all OE
+# systems...
+EXTRA_OECONF += "--with-yielding-select=yes"
+# Shared libraries are nice...
+EXTRA_OECONF += "--enable-dynamic"
+
+PACKAGECONFIG ??= "gnutls modules \
+ mdb ldap meta monitor null passwd shell proxycache dnssrv \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+#--with-tls with TLS/SSL support auto|openssl|gnutls [auto]
+PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt"
+PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl"
+
+PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
+
+# SLAPD options
+#
+# UNIX crypt(3) passwd support:
+EXTRA_OECONF += "--enable-crypt"
+
+# SLAPD BACKEND
+#
+# The backend must be set by the configuration. This controls the
+# required database.
+#
+# Backends="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql"
+#
+# Note that multiple backends can be built. The ldbm backend requires a
+# build-time choice of database API. The bdb backend forces this to be
+# DB4. To use the gdbm (or other) API the Berkely database module must
+# be removed from the build.
+md = "${libexecdir}/openldap"
+#
+#--enable-bdb enable Berkeley DB backend no|yes|mod yes
+# The Berkely DB is the standard choice. This version of OpenLDAP requires
+# the version 4 implementation or better.
+PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db"
+
+#--enable-dnssrv enable dnssrv backend no|yes|mod no
+PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
+
+#--enable-hdb enable Hierarchical DB backend no|yes|mod no
+PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db"
+
+#--enable-ldap enable ldap backend no|yes|mod no
+PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no,"
+
+#--enable-mdb enable mdb database backend no|yes|mod [yes]
+PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no,"
+
+#--enable-meta enable metadirectory backend no|yes|mod no
+PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
+
+#--enable-monitor enable monitor backend no|yes|mod yes
+PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=no,"
+
+#--enable-ndb enable MySQL NDB Cluster backend no|yes|mod [no]
+PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no,"
+
+#--enable-null enable null backend no|yes|mod no
+PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
+
+#--enable-passwd enable passwd backend no|yes|mod no
+PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no,"
+
+#--enable-perl enable perl backend no|yes|mod no
+# This requires a loadable perl dynamic library, if enabled without
+# doing something appropriate (building perl?) the build will pick
+# up the build machine perl - not good (inherit perlnative?)
+PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl"
+
+#--enable-relay enable relay backend no|yes|mod [yes]
+PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no,"
+
+#--enable-shell enable shell backend no|yes|mod no
+# configure: WARNING: Use of --without-threads is recommended with back-shell
+PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=no,"
+
+#--enable-sock enable sock backend no|yes|mod [no]
+PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no,"
+
+#--enable-sql enable sql backend no|yes|mod no
+# sql requires some sql backend which provides sql.h, sqlite* provides
+# sqlite.h (which may be compatible but hasn't been tried.)
+PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3"
+
+#--enable-dyngroup Dynamic Group overlay no|yes|mod no
+# This is a demo, Proxy Cache defines init_module which conflicts with the
+# same symbol in dyngroup
+PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no,"
+
+#--enable-proxycache Proxy Cache overlay no|yes|mod no
+PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
+FILES_${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
+PACKAGES += "${PN}-overlay-proxycache"
+
+# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
+# This allows tls to obtain random bits from /dev/urandom, by default
+# it was disabled for cross-compiling.
+CPPFLAGS_append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\' -fPIC"
+
+LDFLAGS_append = " -pthread"
+
+do_configure() {
+ cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
+ rm -f ${S}/libtool
+ aclocal
+ libtoolize --force --copy
+ gnu-configize
+ autoconf
+ oe_runconf
+}
+
+LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
+
+# The executables go in a separate package. This allows the
+# installation of the libraries with no daemon support.
+# Each module also has its own package - see above.
+PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
+
+# Package contents - shift most standard contents to -bin
+FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
+FILES_${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
+ ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
+ ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
+FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run ${localstatedir}/volatile/run"
+FILES_${PN}-bin = "${bindir}"
+FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so"
+FILES_${PN}-dbg += "${libexecdir}/openldap/.debug"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d
+ cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap
+ chmod 755 ${D}${sysconfdir}/init.d/openldap
+ # This is duplicated in /etc/openldap and is for slapd
+ rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example
+
+ # Installing slapd under ${sbin} is more FHS and LSB compliance
+ mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
+ rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
+ SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema"
+ cd ${D}/${sbindir}/
+ rm -f ${SLAPTOOLS}
+ for i in ${SLAPTOOLS}; do ln -sf slapd $i; done
+
+ rmdir "${D}${localstatedir}/run"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service
+
+ # Uses mdm as the database
+ # and localstatedir as data directory ...
+ sed -e 's/# modulepath/modulepath/' \
+ -e 's/# moduleload\s*back_bdb.*/moduleload back_mdb/' \
+ -e 's/database\s*bdb/database mdb/' \
+ -e 's%^directory\s*.*%directory ${localstatedir}/${BPN}/data/%' \
+ -i ${D}${sysconfdir}/openldap/slapd.conf
+
+ mkdir -p ${D}${localstatedir}/${BPN}/data
+
+
+}
+
+INITSCRIPT_PACKAGES = "${PN}-slapd"
+INITSCRIPT_NAME_${PN}-slapd = "openldap"
+INITSCRIPT_PARAMS_${PN}-slapd = "defaults"
+SYSTEMD_SERVICE_${PN}-slapd = "hostapd.service"
+SYSTEMD_AUTO_ENABLE_${PN}-slapd ?= "disable"
+
+
+PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*"
+
+# The modules require their .so to be dynamicaly loaded
+INSANE_SKIP_${PN}-backend-dnssrv += "dev-so"
+INSANE_SKIP_${PN}-backend-ldap += "dev-so"
+INSANE_SKIP_${PN}-backend-meta += "dev-so"
+INSANE_SKIP_${PN}-backend-mdb += "dev-so"
+INSANE_SKIP_${PN}-backend-monitor += "dev-so"
+INSANE_SKIP_${PN}-backend-null += "dev-so"
+INSANE_SKIP_${PN}-backend-passwd += "dev-so"
+INSANE_SKIP_${PN}-backend-shell += "dev-so"
+
+
+python populate_packages_prepend () {
+ backend_dir = d.expand('${libexecdir}/openldap')
+ do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
+ do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
+
+ metapkg = "${PN}-backends"
+ d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+ d.setVar('FILES_' + metapkg, "")
+ metapkg_rdepends = []
+ packages = d.getVar('PACKAGES').split()
+ for pkg in packages[1:]:
+ if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
+ d.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package')
+ packages.append(metapkg)
+ d.setVar('PACKAGES', ' '.join(packages))
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch b/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch
new file mode 100644
index 0000000..48d8327
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch
@@ -0,0 +1,73 @@
+From 87857d5cae7db94fdd776904886392b1e86053bd Mon Sep 17 00:00:00 2001
+From: Florian Bezdeka <1119693+fbezdeka@users.noreply.github.com>
+Date: Fri, 18 May 2018 18:54:56 +0200
+Subject: [PATCH] Fixed gcc 8 compilation errors (#1353)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The following errors occured during a compilation using gcc 8:
+
+In function »gids_create_file.constprop«,
+ inserted by »gids_save_certificate.isra.8« beicard-gids.c:1548:7:
+card-gids.c:465:2: Error: »strncpy« output may be truncated copying 8 bytes from a string of length 8 [-Werror=stringop-truncation]
+ strncpy(record->filename, filename, 8);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+pkcs15-oberthur.c: In function »sc_pkcs15emu_oberthur_add_prvkey«:
+pkcs15-oberthur.c:741:5: Error: »strncpy« output may be truncated copying 254 bytes from a string of length 254 [-Werror=stringop-truncation]
+ strncpy(kobj.label, objs[ii]->label, sizeof(kobj.label) - 1);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Backport [https://github.com/OpenSC/OpenSC/pull/1353]
+Signed-off-by Khem Raj <raj.khem@gmail.com>
+---
+ src/libopensc/card-gids.c | 3 ++-
+ src/libopensc/pkcs15-oberthur.c | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/libopensc/card-gids.c b/src/libopensc/card-gids.c
+index fc5d2a7..ac3e579 100644
+--- a/src/libopensc/card-gids.c
++++ b/src/libopensc/card-gids.c
+@@ -33,6 +33,7 @@ Some features are undocumented like the format used to store certificates. They
+
+ #include <stdlib.h>
+ #include <string.h>
++#include "../common/compat_strlcpy.h"
+
+ #ifdef ENABLE_OPENSSL
+ /* openssl only needed for card administration */
+@@ -462,7 +463,7 @@ static int gids_create_file(sc_card_t *card, char* directory, char* filename) {
+ memset(masterfilebuffer + offset, 0, sizeof(gids_mf_record_t));
+ record = (gids_mf_record_t*) (masterfilebuffer + offset);
+ strncpy(record->directory, directory, 8);
+- strncpy(record->filename, filename, 8);
++ strlcpy(record->filename, filename, sizeof(record->filename));
+ record->fileIdentifier = fileIdentifier;
+ record->dataObjectIdentifier = dataObjectIdentifier;
+
+diff --git a/src/libopensc/pkcs15-oberthur.c b/src/libopensc/pkcs15-oberthur.c
+index 4f841ed..3415be7 100644
+--- a/src/libopensc/pkcs15-oberthur.c
++++ b/src/libopensc/pkcs15-oberthur.c
+@@ -29,6 +29,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stdio.h>
++#include "../common/compat_strlcpy.h"
+
+ #include "pkcs15.h"
+ #include "log.h"
+@@ -738,7 +739,7 @@ sc_pkcs15emu_oberthur_add_prvkey(struct sc_pkcs15_card *p15card,
+ unsigned int id = path.value[path.len - 2] * 0x100 + path.value[path.len - 1];
+
+ if (id == ccont.id_cert) {
+- strncpy(kobj.label, objs[ii]->label, sizeof(kobj.label) - 1);
++ strlcpy(kobj.label, objs[ii]->label, sizeof(kobj.label));
+ break;
+ }
+ }
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb
deleted file mode 100644
index fd67181..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Smart card library and applications"
-DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\
-functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\
-7816-4 compatible smart card. Encryption and decryption using private\
-keys on the smart card is possible with PKCS\
-such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\
-eID cards have also been confirmed to work."
-
-HOMEPAGE = "http://www.opensc-project.org/opensc/"
-SECTION = "System Environment/Libraries"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz"
-
-SRC_URI[md5sum] = "724d128f23cd7a74b28d04300ce7bcbd"
-SRC_URI[sha256sum] = "3ac8c29542bb48179e7086d35a1b8907a4e86aca3de3323c2f48bd74eaaf5729"
-
-DEPENDS = "openct pcsc-lite virtual/libiconv openssl"
-
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = " \
- --disable-static \
- --enable-openct \
- --disable-pcsc \
- --disable-ctapi \
- --disable-doc \
-"
-EXTRA_OEMAKE = "DESTDIR=${D}"
-
-RDEPENDS_${PN} = "readline"
-
-FILES_${PN} += "\
- ${libdir}/opensc-pkcs11.so \
- ${libdir}/onepin-opensc-pkcs11.so \
- ${libdir}/pkcs11-spy.so \
-"
-FILES_${PN}-dev += "\
- ${libdir}/pkcs11/opensc-pkcs11.so \
- ${libdir}/pkcs11/onepin-opensc-pkcs11.so \
- ${libdir}/pkcs11/pkcs11-spy.so \
-"
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.18.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.18.0.bb
new file mode 100644
index 0000000..45c931e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.18.0.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Smart card library and applications"
+DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\
+functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\
+7816-4 compatible smart card. Encryption and decryption using private\
+keys on the smart card is possible with PKCS\
+such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\
+eID cards have also been confirmed to work."
+
+HOMEPAGE = "http://www.opensc-project.org/opensc/"
+SECTION = "System Environment/Libraries"
+
+SRC_URI = "https://snapshot.debian.org/archive/debian/20180521T101428Z/pool/main/o/opensc/opensc_0.18.0.orig.tar.gz \
+ file://0001-Fixed-gcc-8-compilation-errors-1353.patch \
+ "
+
+SRC_URI[md5sum] = "bce516f752e0db5327aa06cc0136fe27"
+SRC_URI[sha256sum] = "6ef62b00e8fdbe3e386c3ee25c2cadb56c1931ea42f1a11dce8c947f51b45033"
+
+DEPENDS = "openct pcsc-lite virtual/libiconv openssl"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/OpenSC-${PV}"
+EXTRA_OECONF = " \
+ --disable-static \
+ --enable-openct \
+ --disable-pcsc \
+ --disable-ctapi \
+ --disable-doc \
+"
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+RDEPENDS_${PN} = "readline"
+
+FILES_${PN} += "\
+ ${libdir}/opensc-pkcs11.so \
+ ${libdir}/onepin-opensc-pkcs11.so \
+ ${libdir}/pkcs11-spy.so \
+"
+FILES_${PN}-dev += "\
+ ${libdir}/pkcs11/opensc-pkcs11.so \
+ ${libdir}/pkcs11/onepin-opensc-pkcs11.so \
+ ${libdir}/pkcs11/pkcs11-spy.so \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
index 90d58b0..10f724e 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
@@ -11,7 +11,7 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=f38b3d1c7ef7fc2c8b6d20cd38efdc29"
DEPENDS = "udev"
-SRC_URI = "https://alioth.debian.org/frs/download.php/file/4225/pcsc-lite-${PV}.tar.bz2"
+SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2"
SRC_URI[md5sum] = "0ec103b1ef298d0c58d6ef6b00b9cf17"
SRC_URI[sha256sum] = "6a358f61ed3b66a7f6e1f4e794a94c7be4c81b7a58ec360c33791e8d7d9bd405"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
index 088f08b..148e4b6 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
@@ -58,7 +58,9 @@
OE_LT_RPATH_ALLOW=":${libdir}/purple-2:"
OE_LT_RPATH_ALLOW[export]="1"
-PACKAGES =+ "libpurple-dbg libpurple-dev libpurple libgnt-dbg libgnt libgnt-dev finch-dbg finch finch-dev ${PN}-data"
+PACKAGES =+ "libpurple-dev libpurple libgnt libgnt-dev finch finch-dev ${PN}-data"
+
+RPROVIDES_${PN}-dbg += "libpurple-dbg libgnt-dbg finch-dbg"
LEAD_SONAME = "libpurple.so.0"
FILES_libpurple = "${libdir}/libpurple*.so.* ${libdir}/purple-2 ${bindir}/purple-* ${sysconfdir}/gconf/schemas/purple* ${datadir}/purple/ca-certs"
@@ -69,15 +71,10 @@
${libdir}/purple-2/liboscar.so \
${libdir}/purple-2/libymsg.so \
${datadir}/aclocal"
-FILES_libpurple-dbg += "${libdir}/.debug/libpurple* \
- ${libdir}/purple-2/.debug"
FILES_libgnt = "${libdir}/libgnt.so.* ${libdir}/gnt/*.so"
FILES_libgnt-dev = "${libdir}/gnt/*.la"
-FILES_libgnt-dbg = "${libdir}/gnt/.debug"
FILES_finch = "${bindir}/finch"
FILES_finch-dev = "${libdir}/finch/*.la"
-FILES_finch-dbg = "${bindir}/.debug/finch \
- ${libdir}/finch/.debug"
FILES_${PN} = "${bindir} ${datadir}/${PN} ${libdir}/${PN}/*.so \
${datadir}/applications"
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch
new file mode 100644
index 0000000..f4a358f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch
@@ -0,0 +1,31 @@
+From fa079dfc5e1d22ea35762bf4c5b09999bdc5e731 Mon Sep 17 00:00:00 2001
+From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
+Date: Wed, 22 Aug 2018 21:42:09 +0200
+Subject: [PATCH] Don't try to install non existing Encodings/testsuite/data
+
+Upstream-Status: Backport [https://github.com/pocoproject/poco/pull/2437]
+---
+ Encodings/testsuite/CMakeLists.txt | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/Encodings/testsuite/CMakeLists.txt b/Encodings/testsuite/CMakeLists.txt
+index 7508e5522..79495ae02 100644
+--- a/Encodings/testsuite/CMakeLists.txt
++++ b/Encodings/testsuite/CMakeLists.txt
+@@ -19,12 +19,9 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE
+ add_executable( ${TESTUNIT} ${TEST_SRCS} )
+ if(ANDROID)
+ add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+- COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/${TESTUNIT} -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake)
++ COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Encodings-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake)
+ else()
+ add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all)
+- # The test is run in the build directory. So the test data is copied there too
+- add_custom_command(TARGET ${TESTUNIT} POST_BUILD
+- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data )
+ endif()
+ #set_target_properties( ${TESTUNIT} PROPERTIES COMPILE_FLAGS ${RELEASE_CXX_FLAGS} )
+ target_link_libraries( ${TESTUNIT} PocoEncodings PocoFoundation CppUnit )
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb
deleted file mode 100644
index 160b4d3..0000000
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb
+++ /dev/null
@@ -1,106 +0,0 @@
-SUMMARY = "Modern, powerful open source cross-platform C++ class libraries"
-DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems."
-SECTION = "libs"
-HOMEPAGE = "http://pocoproject.org/"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
-
-# These dependencies are required by Foundation
-DEPENDS = "libpcre zlib"
-
-inherit cmake ptest
-
-BBCLASSEXTEND = "native"
-
-SRCREV = "af527ab21fca5ab2659285408aec9920ed7c7b17"
-SRC_URI = " \
- git://github.com/pocoproject/poco.git \
- file://run-ptest \
- "
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
- -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \
- ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
-
-# For the native build we want to use the bundled version
-EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF"
-
-# do not use rpath
-EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON"
-
-# By default the most commonly used poco components are built
-# Foundation is built anyway and doesn't need to be listed explicitly
-# these don't have dependencies outside oe-core
-PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip"
-
-PACKAGECONFIG[XML] = "-DENABLE_XML=ON -DEXPAT_LIBRARY:STRING=expat,-DENABLE_XML=OFF,expat"
-PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
-PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF"
-PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib"
-PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF"
-PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF"
-PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_NETSSL=OFF,openssl"
-PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_CRYPTO=OFF,openssl"
-PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF"
-PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3"
-PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
-
-# Additional components not build by default,
-# they might have dependencies not included in oe-core
-# or they don't work on all architectures
-PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2"
-PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF"
-PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON -DMYSQL_LIB:STRING=mysqlclient_r,-DENABLE_DATA_MYSQL=OFF,mariadb"
-PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc"
-PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF"
-PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF"
-PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF"
-
-# Make a package for each library
-PACKAGES = "${PN}-dbg ${POCO_PACKAGES}"
-python __anonymous () {
- packages = []
- testrunners = []
- components = d.getVar("PACKAGECONFIG").split()
- components.append("Foundation")
- for lib in components:
- pkg = ("poco-%s" % lib.lower()).replace("_","")
- packages.append(pkg)
- if not d.getVar("FILES_%s" % pkg):
- d.setVar("FILES_%s" % pkg, "${libdir}/libPoco%s.so.*" % lib)
- testrunners.append("%s" % lib)
-
- d.setVar("POCO_PACKAGES", " ".join(packages))
- d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners))
-}
-
-# "poco" is a metapackage which pulls in all Poco components
-PACKAGES += "${PN}"
-RRECOMMENDS_${PN} += "${POCO_PACKAGES}"
-RRECOMMENDS_${PN}_class-native = ""
-ALLOW_EMPTY_${PN} = "1"
-
-# -dev last to pick up the remaining stuff
-PACKAGES += "${PN}-dev ${PN}-staticdev"
-FILES_${PN}-dev = "${includedir} ${libdir}/libPoco*.so ${libdir}/cmake"
-FILES_${PN}-staticdev = "${libdir}/libPoco*.a"
-
-# ptest support
-FILES_${PN}-dbg += "${PTEST_PATH}/bin/.debug"
-
-# cppunit is only built if tests are enabled
-PACKAGES += "${PN}-cppunit"
-FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*"
-ALLOW_EMPTY_${PN}-cppunit = "1"
-
-RDEPENDS_${PN}-ptest += "${PN}-cppunit"
-
-do_install_ptest () {
- cp -rf ${B}/bin/ ${D}${PTEST_PATH}
- cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
- cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
- find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
- echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb
new file mode 100644
index 0000000..258cc49
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb
@@ -0,0 +1,99 @@
+SUMMARY = "Modern, powerful open source cross-platform C++ class libraries"
+DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems."
+HOMEPAGE = "http://pocoproject.org/"
+SECTION = "libs"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
+
+# These dependencies are required by Foundation
+DEPENDS = "libpcre zlib"
+
+SRC_URI = " \
+ git://github.com/pocoproject/poco.git;branch=poco-${PV} \
+ file://0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch \
+ file://run-ptest \
+ "
+SRCREV = "daf00da73ab917e4d4581e3aa00c0ee61e0cc58b"
+
+S = "${WORKDIR}/git"
+
+inherit cmake ptest
+
+# By default the most commonly used poco components are built
+# Foundation is built anyway and doesn't need to be listed explicitly
+# these don't have dependencies outside oe-core
+PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip Encodings Redis"
+
+PACKAGECONFIG[XML] = "-DENABLE_XML=ON -DEXPAT_LIBRARY:STRING=expat,-DENABLE_XML=OFF,expat"
+PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
+PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF"
+PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib"
+PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF"
+PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF"
+PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_NETSSL=OFF,openssl"
+PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_CRYPTO=OFF,openssl"
+PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF"
+PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3"
+PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
+PACKAGECONFIG[Encodings] = "-DENABLE_ENCODINGS=ON,-DENABLE_ENCODINGS=OFF"
+PACKAGECONFIG[Redis] = "-DENABLE_REDIS=ON,-DENABLE_REDIS=OFF"
+
+# Additional components not build by default,
+# they might have dependencies not included in oe-core
+# or they don't work on all architectures
+PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2"
+PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF"
+PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON -DMYSQL_LIB:STRING=mysqlclient_r,-DENABLE_DATA_MYSQL=OFF,mariadb"
+PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc"
+PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF"
+PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF"
+PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF"
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
+ -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
+
+# For the native build we want to use the bundled version
+EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF"
+
+# do not use rpath
+EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON"
+
+python populate_packages_prepend () {
+ poco_libdir = d.expand('${libdir}')
+ pn = d.getVar("PN")
+ packages = []
+ testrunners = []
+
+ def hook(f, pkg, file_regex, output_pattern, modulename):
+ packages.append(pkg)
+ testrunners.append(modulename)
+
+ do_split_packages(d, poco_libdir, '^libPoco(.*)\.so\..*$',
+ 'poco-%s', 'Poco %s component', extra_depends='', prepend=True, hook=hook)
+
+ d.setVar("RRECOMMENDS_%s" % pn, " ".join(packages))
+ d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners))
+}
+
+do_install_ptest () {
+ cp -rf ${B}/bin/ ${D}${PTEST_PATH}
+ cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
+ cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
+ find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
+ echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
+}
+
+PACKAGES_DYNAMIC = "poco-.*"
+
+# "poco" is a metapackage which pulls in all Poco components
+ALLOW_EMPTY_${PN} = "1"
+
+# cppunit is only built if tests are enabled
+PACKAGES =+ "${PN}-cppunit"
+FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*"
+ALLOW_EMPTY_${PN}-cppunit = "1"
+
+RDEPENDS_${PN}-ptest += "${PN}-cppunit"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb
deleted file mode 100644
index 343b6db..0000000
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Encoding files for Poppler"
-DESCRIPTION = "Encoding files for use with poppler that enable poppler to \
- correctly render CJK and Cyrrilic."
-LICENSE = "BSD & GPLv2 & GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4870b98343f0bbb25fa43b9d2ba59448 \
- file://COPYING.adobe;md5=63c6a8a9df204c00461fa5f163d8a663 \
- file://COPYING.gpl2;md5=751419260aa954499f7abaabaa882bbe \
-"
-
-inherit allarch
-
-INHIBIT_DEFAULT_DEPS = "1"
-
-CMAP_RESOURCES_BASE = "https://github.com/adobe-type-tools/cmap-resources/raw/0561ebca035813ed04c3485bca636a0aa7abdc1d/cmapresources_identity-0/CMap"
-
-SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz \
- ${CMAP_RESOURCES_BASE}/Identity-H;name=idh \
- ${CMAP_RESOURCES_BASE}/Identity-V;name=idv"
-
-SRC_URI[md5sum] = "00f8989c804de84af0ba2ea629949980"
-SRC_URI[sha256sum] = "1096a18161f263cccdc6d8a2eb5548c41ff8fcf9a3609243f1b6296abdf72872"
-SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc"
-SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95"
-SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf"
-SRC_URI[idv.sha256sum] = "89a85daf7031e93c883e76b9168a226dfd585bf5506e9e1956772163f15cb082"
-
-do_compile() {
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} prefix=${prefix} datadir=${datadir}
- install -d ${D}${datadir}/poppler/cMap
- install -m644 ${WORKDIR}/Identity-* ${D}${datadir}/poppler/cMap/
-}
-
-FILES_${PN} += "${datadir}"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb
new file mode 100644
index 0000000..b2af097
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Encoding files for Poppler"
+DESCRIPTION = "Encoding files for use with poppler that enable poppler to \
+ correctly render CJK and Cyrrilic."
+LICENSE = "BSD & GPLv2 & GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4870b98343f0bbb25fa43b9d2ba59448 \
+ file://COPYING.adobe;md5=63c6a8a9df204c00461fa5f163d8a663 \
+ file://COPYING.gpl2;md5=751419260aa954499f7abaabaa882bbe \
+"
+
+inherit allarch
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+CMAP_RESOURCES_BASE = "https://github.com/adobe-type-tools/cmap-resources/raw/0561ebca035813ed04c3485bca636a0aa7abdc1d/cmapresources_identity-0/CMap"
+
+SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz \
+ ${CMAP_RESOURCES_BASE}/Identity-H;name=idh \
+ ${CMAP_RESOURCES_BASE}/Identity-V;name=idv"
+
+SRC_URI[md5sum] = "35cc7beba00aa174631466f06732be40"
+SRC_URI[sha256sum] = "1f9c7e7de9ecd0db6ab287349e31bf815ca108a5a175cf906a90163bdbe32012"
+SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc"
+SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95"
+SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf"
+SRC_URI[idv.sha256sum] = "89a85daf7031e93c883e76b9168a226dfd585bf5506e9e1956772163f15cb082"
+
+do_compile() {
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} prefix=${prefix} datadir=${datadir}
+ install -d ${D}${datadir}/poppler/cMap
+ install -m644 ${WORKDIR}/Identity-* ${D}${datadir}/poppler/cMap/
+}
+
+FILES_${PN} += "${datadir}"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch
new file mode 100644
index 0000000..528528a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch
@@ -0,0 +1,20 @@
+Minic GNU basename() API for non-glibc library e.g. musl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: poppler-0.64.0/utils/pdfsig.cc
+===================================================================
+--- poppler-0.64.0.orig/utils/pdfsig.cc
++++ poppler-0.64.0/utils/pdfsig.cc
+@@ -35,6 +35,10 @@
+ #include "Win32Console.h"
+ #include "numberofcharacters.h"
+
++#if !defined(__GLIBC__)
++#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
++#endif
++
+ static const char * getReadableSigState(SignatureValidationStatus sig_vs)
+ {
+ switch(sig_vs) {
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb
deleted file mode 100644
index 1e87ae6..0000000
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
-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 \
- 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 glib-2.0"
-
-inherit cmake pkgconfig gobject-introspection
-
-PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
-PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
-PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
-PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
-PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
-PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
-PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
-PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
-
-# surprise - did not expect this to work :)
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
-
-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() {
- # poppler macro uses pkg-config to check for g-ir runtimes. Something
- # makes them point to /usr/bin. Align them to sysroot - that's where the
- # git-wrappers are:
- sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
-}
-
-# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
-def get_poppler_fpu_setting(bb, d):
- if d.getVar('TARGET_FPU') in [ 'soft' ]:
- return "-DUSE_FIXEDPOINT=ON"
- return ""
-
-EXTRA_OECMAKE += "${@get_poppler_fpu_setting(bb, d)}"
-
-PACKAGES =+ "libpoppler libpoppler-glib"
-FILES_libpoppler = "${libdir}/libpoppler.so.*"
-FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
-
-RDEPENDS_libpoppler = "poppler-data"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.70.1.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.70.1.bb
new file mode 100644
index 0000000..b618f28
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.70.1.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
+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 \
+ file://0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch \
+ file://basename-include.patch \
+ "
+SRC_URI[md5sum] = "fdb0699e9aa20e81acd1a50701374c8b"
+SRC_URI[sha256sum] = "66972047d9ef8162cc8c389d7e7698291dfc9f2b3e4ea9a9f08ae604107451bd"
+
+DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
+
+inherit cmake pkgconfig gobject-introspection
+
+PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
+PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
+PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
+PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
+PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
+
+# surprise - did not expect this to work :)
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
+
+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() {
+ # poppler macro uses pkg-config to check for g-ir runtimes. Something
+ # makes them point to /usr/bin. Align them to sysroot - that's where the
+ # git-wrappers are:
+ sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
+}
+
+# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+def get_poppler_fpu_setting(bb, d):
+ if d.getVar('TARGET_FPU') in [ 'soft' ]:
+ return "-DUSE_FIXEDPOINT=ON"
+ return ""
+
+EXTRA_OECMAKE += "${@get_poppler_fpu_setting(bb, d)}"
+
+PACKAGES =+ "libpoppler libpoppler-glib"
+FILES_libpoppler = "${libdir}/libpoppler.so.*"
+FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
+
+RDEPENDS_libpoppler = "poppler-data"
diff --git a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb
new file mode 100644
index 0000000..c8baa5d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb
@@ -0,0 +1,18 @@
+SUMMARY = "User-space tools for LinuxPPS"
+HOMEPAGE = "http://linuxpps.org"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRCREV = "cb48b7ecf7079ceba7081c78d4e61e507b0e8d2d"
+SRC_URI = "git://github.com/ago/pps-tools.git"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS_${PN} = "bash"
+
+do_install() {
+ install -d ${D}${bindir} ${D}${includedir} \
+ ${D}${includedir}/sys
+ oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
deleted file mode 100644
index 8bf9036..0000000
--- a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "User-space tools for LinuxPPS"
-HOMEPAGE = "http://linuxpps.org"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-PV = "0.0.0+git${SRCPV}"
-SRCREV = "0deb9c7e135e9380a6d09e9d2e938a146bb698c8"
-SRC_URI = "git://github.com/ago/pps-tools.git"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -d ${D}${bindir} ${D}${includedir} \
- ${D}${includedir}/sys
- oe_runmake 'DESTDIR=${D}' install
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb b/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
index aa474ce..6160733 100644
--- a/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
+++ b/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
@@ -29,7 +29,7 @@
export CFLAGS="${BUILD_CFLAGS}"
export AR="${BUILD_AR}"
export AS="${BUILD_AS}"
- make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}" autoconf.h
+ make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${BUILD_LDFLAGS}" autoconf.h
}
do_compile() {
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch b/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
deleted file mode 100644
index 9e95a3f..0000000
--- a/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 206f334d62da17093e784094c9d9e80c853f704f Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 12 May 2017 03:03:46 -0400
-Subject: [PATCH] do not support python2
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 16 ----------------
- python/Makefile.am | 24 ------------------------
- 2 files changed, 40 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 200a7cc..8431c51 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,22 +22,6 @@ AM_MISSING_PROG([AUTOM4TE], [autom4te])
- # Needed by tests/atlocal.in.
- AC_SUBST([O0CFLAGS], [`echo $CFLAGS | sed 's/-O[[0-9]] *//'`])
-
--AM_PATH_PYTHON
--AM_CONDITIONAL([HAVE_PYTHON], test -n "$PYTHON")
--[if test -z "$PYTHON"; then]
-- [echo "The python interpreter was not found in the search path. The Python language bindings"]
-- [echo "will not be built. If you want to build the Python language bindings, please ensure"]
-- [echo "that python is installed and its directory is included in the search path."]
-- [echo "Then run configure again before attempting to build Satyr."]
--[fi]
--
--# Just PKG_CHECK_MODULES([PYTHON], [python]) works only with python2.7+
--# Below, if python is not found, we set up for python2.6 w/o checking:
--PKG_CHECK_MODULES([PYTHON], [python2],,[
-- PYTHON_LIBS='-L/usr/lib64 -lpython2.6'
-- PYTHON_CFLAGS='-I/usr/include/python2.6'
--])
--
- AC_ARG_ENABLE([python-manpage],
- [AS_HELP_STRING([--disable-python-manpage],
- [Disable python bindings manpage build])],
-diff --git a/python/Makefile.am b/python/Makefile.am
-index 36fc2e9..0b73f66 100644
---- a/python/Makefile.am
-+++ b/python/Makefile.am
-@@ -1,12 +1,5 @@
- SUBDIRS = . doc
-
--py2satyrdir = $(pyexecdir)/satyr
--
--py2satyr_PYTHON = \
-- __init__.py
--
--py2satyr_LTLIBRARIES = _satyr.la
--
- PYEXTFILES = \
- py_cluster.h \
- py_cluster.c \
-@@ -75,23 +68,6 @@ PYEXTLDFLAGS = \
- -module \
- -avoid-version
-
--_satyr_la_SOURCES = $(PYEXTFILES)
--_satyr_la_CPPFLAGS = \
-- $(PYEXTCPPFLAGS) \
-- $(PYTHON_CFLAGS)
--_satyr_la_LDFLAGS = \
-- $(PYEXTLDFLAGS) \
-- -export-symbols-regex init_satyr
--
--# Depending on the configure option, we either link libsatyr.so dynamically (as
--# is usual), or directly include its object files (by including the
--# convenience library).
--if ENABLE_STATIC_PYTHON_MODULE
--_satyr_la_LIBADD = ../lib/libsatyr_conv.la
--else
--_satyr_la_LIBADD = ../lib/libsatyr.la
--endif
--
- if WITH_PYTHON3
- py3satyrdir = $(py3execdir)/satyr
-
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch b/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
index 5827eb4..b6c32c4 100644
--- a/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
+++ b/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
@@ -14,7 +14,7 @@
index 920e145..58140bf 100644
--- a/lib/rpm.c
+++ b/lib/rpm.c
-@@ -188,7 +188,7 @@ sr_rpm_package_sort(struct sr_rpm_package *packages)
+@@ -191,7 +191,7 @@ sr_rpm_package_sort(struct sr_rpm_package *packages)
}
/* Sort the array. */
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb
deleted file mode 100644
index f795c37..0000000
--- a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "Satyr is a collection of low-level algorithms for program \
-failure processing, analysis, and reporting supporting kernel space, user \
-space, Python, and Java programs"
-
-HOMEPAGE = "https://github.com/abrt/satyr"
-LICENSE = "GPLv2"
-
-inherit autotools-brokensep python3native pkgconfig
-
-SRC_URI = "git://github.com/abrt/satyr.git \
- file://0001-do-not-support-python2.patch \
- file://0002-fix-compile-failure-against-musl-C-library.patch \
-"
-SRCREV = "4742fd4857c446b96f712d52e2e4cd0b6cfe7398"
-S = "${WORKDIR}/git"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS += " \
- gdb \
-"
-
-PACKAGES += "python3-${PN}"
-FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
-
-PACKAGECONFIG ??= "python3 rpm"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[pythonmanpage] = "--enable-python-manpage, --disable-python-manpage"
-PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
-
-do_configure_prepend() {
- ${S}/gen-version
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.26.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.26.bb
new file mode 100644
index 0000000..a09bea2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.26.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Satyr is a collection of low-level algorithms for program \
+failure processing, analysis, and reporting supporting kernel space, user \
+space, Python, and Java programs"
+
+HOMEPAGE = "https://github.com/abrt/satyr"
+LICENSE = "GPLv2"
+
+inherit autotools-brokensep python3native pkgconfig
+
+SRC_URI = "git://github.com/abrt/satyr.git \
+ file://0002-fix-compile-failure-against-musl-C-library.patch \
+"
+SRCREV = "4baa0c765071054314d1e7e78547ce6b7c133fbc"
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS += " \
+ gdb \
+"
+
+PACKAGES += "python3-${PN}"
+FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
+
+PACKAGECONFIG ??= "python3 rpm"
+PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
+
+do_configure_prepend() {
+ ${S}/gen-version
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
index 3299a77..35e22d3 100644
--- a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
@@ -12,6 +12,8 @@
"
MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
+UPSTREAM_CHECK_REGEX = "sdparm-(?P<pver>\d+(\.\d+)+)\.tgz"
+
PACKAGES =+ "${PN}-scripts"
RDEPENDS_${PN}-scripts += "bash ${PN}"
diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch
new file mode 100644
index 0000000..fbad413
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch
@@ -0,0 +1,24 @@
+Fixes:
+http://errors.yoctoproject.org/Errors/Details/185896/
+
+TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: sg_map26.o: in function `nd_match_scandir_select':
+/usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:359: undefined reference to `major'
+TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: /usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:361: undefined reference to `minor'
+TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: sg_map26.o: in function `nt_typ_from_filename':
+/usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:218: undefined reference to `major'
+TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: /usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:219: undefined reference to `minor'
+collect2: error: ld returned 1 exit status
+Makefile:806: recipe for target 'sg_map26' failed
+
+Upstream-Status: Pending
+
+--- sg3_utils-1.42.orig/src/sg_map26.c 2018-08-09 11:53:26.907493996 +0000
++++ sg3_utils-1.42/src/sg_map26.c 2018-08-09 11:51:56.713490763 +0000
+@@ -33,6 +33,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <linux/major.h>
+
+ #ifdef HAVE_CONFIG_H
diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
index c7de057..c37c5e9 100644
--- a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
@@ -8,9 +8,13 @@
LICENSE = "GPLv2+ & BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca"
-SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz"
+SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz \
+ file://glibc-2.28.patch \
+"
MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
+UPSTREAM_CHECK_REGEX = "sg3_utils-(?P<pver>\d+(\.\d+)+)\.tgz"
+
SRC_URI[md5sum] = "28080de5bf2222f8b55a29093bec8aea"
SRC_URI[sha256sum] = "1dcb7a0309bd0ba3d4a83acb526973b80106ee26cd9f7398186cd3f0633c9ef3"
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
new file mode 100644
index 0000000..99dc4e3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
@@ -0,0 +1,61 @@
+From bd68ae1271598e8fdc72f2adb457e6882604582d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 22 Feb 2018 16:39:43 +0100
+Subject: [PATCH] Fix a heap-buffer-overflow in find_archive()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+rw_buffer has allocated rw_base_size bytes. But subsequend fgets() in
+find_archive() reads up-to BUFSIZ bytes.
+
+On my system, BUFSIZ is 8192. rw_base_size is usually equaled to
+a memory page size, 4096 on my system. Thus find_archive() can write
+beyonded allocated memmory for rw_buffer array:
+
+$ valgrind -- ./unshar /tmp/id\:000000\,sig\:06\,src\:000005+000030\,op\:splice\,rep\:4
+==30582== Memcheck, a memory error detector
+==30582== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==30582== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==30582== Command: ./unshar /tmp/id:000000,sig:06,src:000005+000030,op:splice,rep:4
+==30582==
+==30582== Invalid write of size 1
+==30582== at 0x4EAB480: _IO_getline_info (in /usr/lib64/libc-2.27.so)
+==30582== by 0x4EB47C2: fgets_unlocked (in /usr/lib64/libc-2.27.so)
+==30582== by 0x10BF60: fgets_unlocked (stdio2.h:320)
+==30582== by 0x10BF60: find_archive (unshar.c:243)
+==30582== by 0x10BF60: unshar_file (unshar.c:379)
+==30582== by 0x10BCCC: validate_fname (unshar-opts.c:604)
+==30582== by 0x10BCCC: main (unshar-opts.c:639)
+==30582== Address 0x523a790 is 0 bytes after a block of size 4,096 alloc'd
+==30582== at 0x4C2DBBB: malloc (vg_replace_malloc.c:299)
+==30582== by 0x10C670: init_unshar (unshar.c:450)
+==30582== by 0x10BC55: main (unshar-opts.c:630)
+
+This was reported in
+<http://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00004.html>.
+
+CVE: CVE-2018-1000097
+Upstream-Status: no upstream [http://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00004.html]
+Signed-off-by: Petr PísaÅ™ <ppisar@redhat.com>
+Signed-off-by: Sinan Kaya <okaya@kernel.org>
+---
+ src/unshar.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/unshar.c b/src/unshar.c
+index 80bc3a9..0fc3773 100644
+--- a/src/unshar.c
++++ b/src/unshar.c
+@@ -240,7 +240,7 @@ find_archive (char const * name, FILE * file, off_t start)
+ off_t position = ftello (file);
+
+ /* Read next line, fail if no more and no previous process. */
+- if (!fgets (rw_buffer, BUFSIZ, file))
++ if (!fgets (rw_buffer, rw_base_size, file))
+ {
+ if (!start)
+ error (0, 0, _("Found no shell commands in %s"), name);
+--
+2.19.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
index 812fee9..c12289b 100644
--- a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
@@ -8,6 +8,7 @@
SRC_URI = "ftp://ftp.gnu.org/gnu/${BPN}/${BP}.tar.gz \
file://0001-Fix-build-with-clang.patch \
+ file://CVE-2018-1000097.patch \
"
SRC_URI[md5sum] = "32a51b23e25ad5e6af4b89f228be1800"
SRC_URI[sha256sum] = "ee336e68549664e7a19b117adf02edfdeac6307f22e5ba78baca457116914637"
diff --git a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
index 3f6cdc6..af1cd60 100644
--- a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -4,11 +4,9 @@
LICENSE="GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
-PR = "r0"
-
-BPV = "0.8.1"
+BPV = "0.8.3"
PV = "${BPV}"
-SRCREV = "318bcae5249722873bf58b27afdd20473c7047cc"
+SRCREV = "a3f1f68a048d0d2321ee562b3744dd1162cad22f"
S = "${WORKDIR}/git"
@@ -16,4 +14,3 @@
inherit autotools
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch
new file mode 100644
index 0000000..269441f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch
@@ -0,0 +1,39 @@
+From 087840efdbc86b1432ebdd81f25b4cb78c75f818 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Sep 2018 12:28:10 -0700
+Subject: [PATCH] Add linux-musleabi to ostable
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ostable | 1 +
+ triplettable | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/ostable b/ostable
+index 3bb6819..d0ffdc7 100644
+--- a/ostable
++++ b/ostable
+@@ -15,6 +15,7 @@
+ uclibceabi-linux linux-uclibceabi linux[^-]*-uclibceabi
+ uclibc-linux linux-uclibc linux[^-]*-uclibc
+ musleabihf-linux linux-musleabihf linux[^-]*-musleabihf
++musleabi-linux linux-musleabi linux[^-]*-musleabi
+ musl-linux linux-musl linux[^-]*-musl
+ gnueabihf-linux linux-gnueabihf linux[^-]*-gnueabihf
+ gnueabi-linux linux-gnueabi linux[^-]*-gnueabi
+diff --git a/triplettable b/triplettable
+index 7257744..45864c3 100644
+--- a/triplettable
++++ b/triplettable
+@@ -6,6 +6,7 @@
+ uclibceabi-linux-arm uclibc-linux-armel
+ uclibc-linux-<cpu> uclibc-linux-<cpu>
+ musleabihf-linux-arm musl-linux-armhf
++musleabi-linux-arm musl-linux-arm
+ musl-linux-<cpu> musl-linux-<cpu>
+ gnueabihf-linux-arm armhf
+ gnueabi-linux-arm armel
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
index cc2727b..b9b22a3 100644
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
+++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
@@ -9,6 +9,7 @@
SRC_URI = " \
${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \
file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \
+ file://0001-Add-linux-musleabi-to-ostable.patch \
"
SRC_URI[md5sum] = "e48fcfdb2162e77d72c2a83432d537ca"
diff --git a/meta-openembedded/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb b/meta-openembedded/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb
new file mode 100644
index 0000000..854df06
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Open source flash program for STM32 using the ST serial bootloader"
+HOMEPAGE = "https://sourceforge.net/projects/stm32flash/"
+BUGTRACKER = "https://sourceforge.net/p/stm32flash/tickets/"
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+S = "${WORKDIR}/${BPN}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${prefix}
+}
+
+SRC_URI[md5sum] = "40f673502949f3bb655d2bcc539d7b6a"
+SRC_URI[sha256sum] = "97aa9422ef02e82f7da9039329e21a437decf972cb3919ad817f70ac9a49e306"
diff --git a/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb b/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
index 68f0387..f5518bd 100644
--- a/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -1,35 +1,24 @@
SUMMARY = "Synergy - control multiple computers with one keyboard and mouse"
HOMEPAGE = "http://synergy-project.org"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2ba51ca68e055566aade24662f9eb41"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=54c1fc8d8bb6776ae501acfb1585e9d6"
LICENSE = "GPL-2.0-with-OpenSSL-exception"
SECTION = "x11/utils"
DEPENDS = "virtual/libx11 libxtst libxinerama curl openssl"
-do_unpack_extra[depends] = "unzip-native:do_populate_sysroot"
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "git://github.com/symless/synergy.git;protocol=http"
+SRC_URI = "git://github.com/symless/synergy-core;protocol=https;nobranch=1"
-# Version 1.8.8-stable
-SRCREV ?= "c30301e23424db1125664da17deb8c3aa6aec52d"
-PV = "1.8.8+${SRCPV}"
+# Version 1.10.1-stable
+SRCREV ?= "1b4c076127687aceac931d269e898beaac1cad9f"
+PV = "1.10.1+git${SRCPV}"
S = "${WORKDIR}/git"
inherit cmake distro_features_check
-do_unpack_extra() {
- cd ${S}/ext
- for file in *.zip; do
- fname="${file##*/}"
- unzip $file -d ${fname%.*}
- done
-}
-addtask unpack_extra after do_unpack before do_patch
+EXTRA_OECMAKE += "-DSYNERGY_BUILD_LEGACY_GUI=OFF"
-do_install() {
- install -d ${D}/usr/bin
- install -m 0755 ${S}/bin/synergy* ${D}/usr/bin/
-}
+FILES_${PN} += "${datadir}/icons/hicolor"
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch
new file mode 100644
index 0000000..0fc40be
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch
@@ -0,0 +1,75 @@
+From caeccb7bec45f65bc89efa8195b3853368328361 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 17 Sep 2018 12:49:36 +0800
+Subject: [PATCH] syslog-ng: fix segment fault during service start on arm64
+
+service start failed since segment fault on arch arm64,
+syslog-ng have a submodule ivykis, from ivykis V0.42,
+it use pthread_atfork, but for arm64, this symbol is
+not included by libpthread, so cause segment fault.
+
+refer systemd, replace pthread_atfork with __register_atfork
+to fix this problem.
+
+I have create an issue, and this proposal to upstream.
+https://github.com/buytenh/ivykis/issues/15
+
+Upstream-Status: Pending
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/ivykis/src/pthr.h | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/lib/ivykis/src/pthr.h b/lib/ivykis/src/pthr.h
+index a41eaf3..72c5190 100644
+--- a/lib/ivykis/src/pthr.h
++++ b/lib/ivykis/src/pthr.h
+@@ -24,6 +24,16 @@
+ #include <pthread.h>
+ #include <signal.h>
+
++#ifdef __GLIBC__
++/* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
++ * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
++ * libpthread, as it is part of glibc anyway. */
++extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle);
++extern void* __dso_handle __attribute__ ((__weak__));
++#else
++#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child)
++#endif
++
+ #ifdef HAVE_PRAGMA_WEAK
+ #pragma weak pthread_create
+ #endif
+@@ -36,16 +46,7 @@ static inline int pthreads_available(void)
+
+ #ifdef HAVE_PRAGMA_WEAK
+
+-/*
+- * On Linux, pthread_atfork() is defined in libpthread_nonshared.a,
+- * a static library, and we want to avoid "#pragma weak" for that
+- * symbol because that causes it to be undefined even if you link
+- * libpthread_nonshared.a in explicitly.
+- */
+-#ifndef HAVE_LIBPTHREAD_NONSHARED
+-#pragma weak pthread_atfork
+-#endif
+-
++#pragma weak __register_atfork
+ #pragma weak pthread_create
+ #pragma weak pthread_detach
+ #pragma weak pthread_getspecific
+@@ -73,8 +74,7 @@ static inline int
+ pthr_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void))
+ {
+ if (pthreads_available())
+- return pthread_atfork(prepare, parent, child);
+-
++ return __register_atfork(prepare, parent, child, __dso_handle);
+ return ENOSYS;
+ }
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
deleted file mode 100644
index 5d481f2..0000000
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Fix the memory leak problem when HAVE_ENVIRON is defined
-
-Upstream-Status: Pending
-
-Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
----
-Index: syslog-ng-3.8.1/lib/gprocess.c
-===================================================================
---- syslog-ng-3.8.1.orig/lib/gprocess.c
-+++ syslog-ng-3.8.1/lib/gprocess.c
-@@ -1432,6 +1432,18 @@ g_process_startup_ok(void)
- void
- g_process_finish(void)
- {
-+#ifdef HAVE_ENVIRON
-+ int i = 0;
-+
-+ while (environ[i]) {
-+ g_free(environ[i]);
-+ ++i;
-+ }
-+ if (environ)
-+ g_free(environ);
-+ if (process_opts.argv_orig)
-+ free(process_opts.argv_orig);
-+#endif
- g_process_remove_pidfile();
- }
-
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
index c172e4e..4f8a3d0 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
@@ -10,21 +10,21 @@
configure.ac | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
-Index: syslog-ng-3.8.1/configure.ac
+Index: syslog-ng-3.15.1/configure.ac
===================================================================
---- syslog-ng-3.8.1.orig/configure.ac
-+++ syslog-ng-3.8.1/configure.ac
-@@ -147,6 +147,9 @@ AC_ARG_ENABLE(gprof,
+--- syslog-ng-3.15.1.orig/configure.ac
++++ syslog-ng-3.15.1/configure.ac
+@@ -190,6 +190,9 @@ AC_ARG_ENABLE(gprof,
AC_ARG_ENABLE(memtrace,
[ --enable-memtrace Enable alternative leak debugging code.])
+AC_ARG_ENABLE(thread-tls,
-+ [ --enable-thread-tls Enable Thread Transport Layer Security support.],,enable_thread_tls="no")
++ [ --enable-thread-tls Enable Thread Local Storage support.],,enable_thread_tls="no")
+
AC_ARG_ENABLE(dynamic-linking,
[ --enable-dynamic-linking Link everything dynamically.],,enable_dynamic_linking="auto")
-@@ -486,12 +489,14 @@ dnl ************************************
+@@ -591,12 +594,14 @@ dnl ***************************************************************************
dnl Is the __thread keyword available?
dnl ***************************************************************************
@@ -33,14 +33,14 @@
-__thread int a;
-]],
-[a=0;])],
--[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
+-[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Thread Local Storage is supported by the system")])
+if test "x$enable_thread_tls" != "xno"; then
+ AC_LINK_IFELSE([AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ __thread int a;
+ ]],
+ [a=0;])],
-+ [ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
++ [ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Thread Local Storage is supported by the system")])
+fi
dnl ***************************************************************************
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf
deleted file mode 100644
index 0c6f543..0000000
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf
+++ /dev/null
@@ -1,155 +0,0 @@
-@version: 3.8
-#
-# Syslog-ng configuration file, compatible with default Debian syslogd
-# installation. Originally written by anonymous (I can't find his name)
-# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
-
-# First, set some global options.
-options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
- owner("root"); group("adm"); perm(0640); stats_freq(0);
- bad_hostname("^gconfd$");
-};
-
-########################
-# Sources
-########################
-# This is the default behavior of sysklogd package
-# Logs may come from unix stream, but not from another machine.
-#
-source s_src { unix-dgram("/dev/log"); internal();
- file("/proc/kmsg" program_override("kernel"));
-};
-
-# If you wish to get logs from remote machine you should uncomment
-# this and comment the above source line.
-#
-#source s_net { tcp(ip(127.0.0.1) port(1000) authentication(required) encrypt(allow)); };
-
-########################
-# Destinations
-########################
-# First some standard logfile
-#
-destination d_auth { file("/var/log/auth.log"); };
-destination d_cron { file("/var/log/cron.log"); };
-destination d_daemon { file("/var/log/daemon.log"); };
-destination d_kern { file("/var/log/kern.log"); };
-destination d_lpr { file("/var/log/lpr.log"); };
-destination d_mail { file("/var/log/mail.log"); };
-destination d_syslog { file("/var/log/syslog"); };
-destination d_user { file("/var/log/user.log"); };
-destination d_uucp { file("/var/log/uucp.log"); };
-
-# This files are the log come from the mail subsystem.
-#
-destination d_mailinfo { file("/var/log/mail/mail.info"); };
-destination d_mailwarn { file("/var/log/mail/mail.warn"); };
-destination d_mailerr { file("/var/log/mail/mail.err"); };
-
-# Logging for INN news system
-#
-destination d_newscrit { file("/var/log/news/news.crit"); };
-destination d_newserr { file("/var/log/news/news.err"); };
-destination d_newsnotice { file("/var/log/news/news.notice"); };
-
-# Some 'catch-all' logfiles.
-#
-destination d_debug { file("/var/log/debug"); };
-destination d_error { file("/var/log/error"); };
-destination d_messages { file("/var/log/messages"); };
-
-# The root's console.
-#
-destination d_console { usertty("root"); };
-
-# Virtual console.
-#
-destination d_console_all { file("/dev/tty10"); };
-
-# The named pipe /dev/xconsole is for the nsole' utility. To use it,
-# you must invoke nsole' with the -file' option:
-#
-# $ xconsole -file /dev/xconsole [...]
-#
-destination d_xconsole { pipe("/dev/xconsole"); };
-
-# Send the messages to an other host
-#
-#destination d_net { tcp("127.0.0.1" port(1000) authentication(on) encrypt(on) log_fifo_size(1000)); };
-
-# Debian only
-destination d_ppp { file("/var/log/ppp.log"); };
-
-########################
-# Filters
-########################
-# Here's come the filter options. With this rules, we can set which
-# message go where.
-
-filter f_dbg { level(debug); };
-filter f_info { level(info); };
-filter f_notice { level(notice); };
-filter f_warn { level(warn); };
-filter f_err { level(err); };
-filter f_crit { level(crit .. emerg); };
-
-filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
-filter f_error { level(err .. emerg) ; };
-filter f_messages { level(info,notice,warn) and
- not facility(auth,authpriv,cron,daemon,mail,news); };
-
-filter f_auth { facility(auth, authpriv) and not filter(f_debug); };
-filter f_cron { facility(cron) and not filter(f_debug); };
-filter f_daemon { facility(daemon) and not filter(f_debug); };
-filter f_kern { facility(kern) and not filter(f_debug); };
-filter f_lpr { facility(lpr) and not filter(f_debug); };
-filter f_local { facility(local0, local1, local3, local4, local5,
- local6, local7) and not filter(f_debug); };
-filter f_mail { facility(mail) and not filter(f_debug); };
-filter f_news { facility(news) and not filter(f_debug); };
-filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
-filter f_user { facility(user) and not filter(f_debug); };
-filter f_uucp { facility(uucp) and not filter(f_debug); };
-
-filter f_cnews { level(notice, err, crit) and facility(news); };
-filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
-
-filter f_ppp { facility(local2) and not filter(f_debug); };
-filter f_console { level(warn .. emerg); };
-
-########################
-# Log paths
-########################
-log { source(s_src); filter(f_auth); destination(d_auth); };
-log { source(s_src); filter(f_cron); destination(d_cron); };
-log { source(s_src); filter(f_daemon); destination(d_daemon); };
-log { source(s_src); filter(f_kern); destination(d_kern); };
-log { source(s_src); filter(f_lpr); destination(d_lpr); };
-log { source(s_src); filter(f_syslog3); destination(d_syslog); };
-log { source(s_src); filter(f_user); destination(d_user); };
-log { source(s_src); filter(f_uucp); destination(d_uucp); };
-
-log { source(s_src); filter(f_mail); destination(d_mail); };
-#log { source(s_src); filter(f_mail); filter(f_info); destination(d_mailinfo); };
-#log { source(s_src); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
-#log { source(s_src); filter(f_mail); filter(f_err); destination(d_mailerr); };
-
-log { source(s_src); filter(f_news); filter(f_crit); destination(d_newscrit); };
-log { source(s_src); filter(f_news); filter(f_err); destination(d_newserr); };
-log { source(s_src); filter(f_news); filter(f_notice); destination(d_newsnotice); };
-#log { source(s_src); filter(f_cnews); destination(d_console_all); };
-#log { source(s_src); filter(f_cother); destination(d_console_all); };
-
-#log { source(s_src); filter(f_ppp); destination(d_ppp); };
-
-log { source(s_src); filter(f_debug); destination(d_debug); };
-log { source(s_src); filter(f_error); destination(d_error); };
-log { source(s_src); filter(f_messages); destination(d_messages); };
-
-log { source(s_src); filter(f_console); destination(d_console_all);
- destination(d_xconsole); };
-log { source(s_src); filter(f_crit); destination(d_console); };
-
-# All messages send to a remote site
-#
-#log { source(s_src); destination(d_net); };
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
new file mode 100644
index 0000000..9e910ca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
@@ -0,0 +1,155 @@
+@version: 3.15
+#
+# Syslog-ng configuration file, compatible with default Debian syslogd
+# installation. Originally written by anonymous (I can't find his name)
+# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+
+# First, set some global options.
+options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+ owner("root"); group("adm"); perm(0640); stats_freq(0);
+ bad_hostname("^gconfd$");
+};
+
+########################
+# Sources
+########################
+# This is the default behavior of sysklogd package
+# Logs may come from unix stream, but not from another machine.
+#
+source s_src { systemd_journal(); internal();
+ file("/proc/kmsg" program_override("kernel"));
+};
+
+# If you wish to get logs from remote machine you should uncomment
+# this and comment the above source line.
+#
+#source s_net { tcp(ip(127.0.0.1) port(1000) authentication(required) encrypt(allow)); };
+
+########################
+# Destinations
+########################
+# First some standard logfile
+#
+destination d_auth { file("/var/log/auth.log"); };
+destination d_cron { file("/var/log/cron.log"); };
+destination d_daemon { file("/var/log/daemon.log"); };
+destination d_kern { file("/var/log/kern.log"); };
+destination d_lpr { file("/var/log/lpr.log"); };
+destination d_mail { file("/var/log/mail.log"); };
+destination d_syslog { file("/var/log/syslog"); };
+destination d_user { file("/var/log/user.log"); };
+destination d_uucp { file("/var/log/uucp.log"); };
+
+# This files are the log come from the mail subsystem.
+#
+destination d_mailinfo { file("/var/log/mail/mail.info"); };
+destination d_mailwarn { file("/var/log/mail/mail.warn"); };
+destination d_mailerr { file("/var/log/mail/mail.err"); };
+
+# Logging for INN news system
+#
+destination d_newscrit { file("/var/log/news/news.crit"); };
+destination d_newserr { file("/var/log/news/news.err"); };
+destination d_newsnotice { file("/var/log/news/news.notice"); };
+
+# Some 'catch-all' logfiles.
+#
+destination d_debug { file("/var/log/debug"); };
+destination d_error { file("/var/log/error"); };
+destination d_messages { file("/var/log/messages"); };
+
+# The root's console.
+#
+destination d_console { usertty("root"); };
+
+# Virtual console.
+#
+destination d_console_all { file("/dev/tty10"); };
+
+# The named pipe /dev/xconsole is for the nsole' utility. To use it,
+# you must invoke nsole' with the -file' option:
+#
+# $ xconsole -file /dev/xconsole [...]
+#
+destination d_xconsole { pipe("/dev/xconsole"); };
+
+# Send the messages to an other host
+#
+#destination d_net { tcp("127.0.0.1" port(1000) authentication(on) encrypt(on) log_fifo_size(1000)); };
+
+# Debian only
+destination d_ppp { file("/var/log/ppp.log"); };
+
+########################
+# Filters
+########################
+# Here's come the filter options. With this rules, we can set which
+# message go where.
+
+filter f_dbg { level(debug); };
+filter f_info { level(info); };
+filter f_notice { level(notice); };
+filter f_warn { level(warn); };
+filter f_err { level(err); };
+filter f_crit { level(crit .. emerg); };
+
+filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
+filter f_error { level(err .. emerg) ; };
+filter f_messages { level(info,notice,warn) and
+ not facility(auth,authpriv,cron,daemon,mail,news); };
+
+filter f_auth { facility(auth, authpriv) and not filter(f_debug); };
+filter f_cron { facility(cron) and not filter(f_debug); };
+filter f_daemon { facility(daemon) and not filter(f_debug); };
+filter f_kern { facility(kern) and not filter(f_debug); };
+filter f_lpr { facility(lpr) and not filter(f_debug); };
+filter f_local { facility(local0, local1, local3, local4, local5,
+ local6, local7) and not filter(f_debug); };
+filter f_mail { facility(mail) and not filter(f_debug); };
+filter f_news { facility(news) and not filter(f_debug); };
+filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
+filter f_user { facility(user) and not filter(f_debug); };
+filter f_uucp { facility(uucp) and not filter(f_debug); };
+
+filter f_cnews { level(notice, err, crit) and facility(news); };
+filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
+
+filter f_ppp { facility(local2) and not filter(f_debug); };
+filter f_console { level(warn .. emerg); };
+
+########################
+# Log paths
+########################
+log { source(s_src); filter(f_auth); destination(d_auth); };
+log { source(s_src); filter(f_cron); destination(d_cron); };
+log { source(s_src); filter(f_daemon); destination(d_daemon); };
+log { source(s_src); filter(f_kern); destination(d_kern); };
+log { source(s_src); filter(f_lpr); destination(d_lpr); };
+log { source(s_src); filter(f_syslog3); destination(d_syslog); };
+log { source(s_src); filter(f_user); destination(d_user); };
+log { source(s_src); filter(f_uucp); destination(d_uucp); };
+
+log { source(s_src); filter(f_mail); destination(d_mail); };
+#log { source(s_src); filter(f_mail); filter(f_info); destination(d_mailinfo); };
+#log { source(s_src); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
+#log { source(s_src); filter(f_mail); filter(f_err); destination(d_mailerr); };
+
+log { source(s_src); filter(f_news); filter(f_crit); destination(d_newscrit); };
+log { source(s_src); filter(f_news); filter(f_err); destination(d_newserr); };
+log { source(s_src); filter(f_news); filter(f_notice); destination(d_newsnotice); };
+#log { source(s_src); filter(f_cnews); destination(d_console_all); };
+#log { source(s_src); filter(f_cother); destination(d_console_all); };
+
+#log { source(s_src); filter(f_ppp); destination(d_ppp); };
+
+log { source(s_src); filter(f_debug); destination(d_debug); };
+log { source(s_src); filter(f_error); destination(d_error); };
+log { source(s_src); filter(f_messages); destination(d_messages); };
+
+log { source(s_src); filter(f_console); destination(d_console_all);
+ destination(d_xconsole); };
+log { source(s_src); filter(f_crit); destination(d_console); };
+
+# All messages send to a remote site
+#
+#log { source(s_src); destination(d_net); };
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
new file mode 100644
index 0000000..fb183ee
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
@@ -0,0 +1,155 @@
+@version: 3.15
+#
+# Syslog-ng configuration file, compatible with default Debian syslogd
+# installation. Originally written by anonymous (I can't find his name)
+# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+
+# First, set some global options.
+options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+ owner("root"); group("adm"); perm(0640); stats_freq(0);
+ bad_hostname("^gconfd$");
+};
+
+########################
+# Sources
+########################
+# This is the default behavior of sysklogd package
+# Logs may come from unix stream, but not from another machine.
+#
+source s_src { unix-dgram("/dev/log"); internal();
+ file("/proc/kmsg" program_override("kernel"));
+};
+
+# If you wish to get logs from remote machine you should uncomment
+# this and comment the above source line.
+#
+#source s_net { tcp(ip(127.0.0.1) port(1000) authentication(required) encrypt(allow)); };
+
+########################
+# Destinations
+########################
+# First some standard logfile
+#
+destination d_auth { file("/var/log/auth.log"); };
+destination d_cron { file("/var/log/cron.log"); };
+destination d_daemon { file("/var/log/daemon.log"); };
+destination d_kern { file("/var/log/kern.log"); };
+destination d_lpr { file("/var/log/lpr.log"); };
+destination d_mail { file("/var/log/mail.log"); };
+destination d_syslog { file("/var/log/syslog"); };
+destination d_user { file("/var/log/user.log"); };
+destination d_uucp { file("/var/log/uucp.log"); };
+
+# This files are the log come from the mail subsystem.
+#
+destination d_mailinfo { file("/var/log/mail/mail.info"); };
+destination d_mailwarn { file("/var/log/mail/mail.warn"); };
+destination d_mailerr { file("/var/log/mail/mail.err"); };
+
+# Logging for INN news system
+#
+destination d_newscrit { file("/var/log/news/news.crit"); };
+destination d_newserr { file("/var/log/news/news.err"); };
+destination d_newsnotice { file("/var/log/news/news.notice"); };
+
+# Some 'catch-all' logfiles.
+#
+destination d_debug { file("/var/log/debug"); };
+destination d_error { file("/var/log/error"); };
+destination d_messages { file("/var/log/messages"); };
+
+# The root's console.
+#
+destination d_console { usertty("root"); };
+
+# Virtual console.
+#
+destination d_console_all { file("/dev/tty10"); };
+
+# The named pipe /dev/xconsole is for the nsole' utility. To use it,
+# you must invoke nsole' with the -file' option:
+#
+# $ xconsole -file /dev/xconsole [...]
+#
+destination d_xconsole { pipe("/dev/xconsole"); };
+
+# Send the messages to an other host
+#
+#destination d_net { tcp("127.0.0.1" port(1000) authentication(on) encrypt(on) log_fifo_size(1000)); };
+
+# Debian only
+destination d_ppp { file("/var/log/ppp.log"); };
+
+########################
+# Filters
+########################
+# Here's come the filter options. With this rules, we can set which
+# message go where.
+
+filter f_dbg { level(debug); };
+filter f_info { level(info); };
+filter f_notice { level(notice); };
+filter f_warn { level(warn); };
+filter f_err { level(err); };
+filter f_crit { level(crit .. emerg); };
+
+filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
+filter f_error { level(err .. emerg) ; };
+filter f_messages { level(info,notice,warn) and
+ not facility(auth,authpriv,cron,daemon,mail,news); };
+
+filter f_auth { facility(auth, authpriv) and not filter(f_debug); };
+filter f_cron { facility(cron) and not filter(f_debug); };
+filter f_daemon { facility(daemon) and not filter(f_debug); };
+filter f_kern { facility(kern) and not filter(f_debug); };
+filter f_lpr { facility(lpr) and not filter(f_debug); };
+filter f_local { facility(local0, local1, local3, local4, local5,
+ local6, local7) and not filter(f_debug); };
+filter f_mail { facility(mail) and not filter(f_debug); };
+filter f_news { facility(news) and not filter(f_debug); };
+filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
+filter f_user { facility(user) and not filter(f_debug); };
+filter f_uucp { facility(uucp) and not filter(f_debug); };
+
+filter f_cnews { level(notice, err, crit) and facility(news); };
+filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
+
+filter f_ppp { facility(local2) and not filter(f_debug); };
+filter f_console { level(warn .. emerg); };
+
+########################
+# Log paths
+########################
+log { source(s_src); filter(f_auth); destination(d_auth); };
+log { source(s_src); filter(f_cron); destination(d_cron); };
+log { source(s_src); filter(f_daemon); destination(d_daemon); };
+log { source(s_src); filter(f_kern); destination(d_kern); };
+log { source(s_src); filter(f_lpr); destination(d_lpr); };
+log { source(s_src); filter(f_syslog3); destination(d_syslog); };
+log { source(s_src); filter(f_user); destination(d_user); };
+log { source(s_src); filter(f_uucp); destination(d_uucp); };
+
+log { source(s_src); filter(f_mail); destination(d_mail); };
+#log { source(s_src); filter(f_mail); filter(f_info); destination(d_mailinfo); };
+#log { source(s_src); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
+#log { source(s_src); filter(f_mail); filter(f_err); destination(d_mailerr); };
+
+log { source(s_src); filter(f_news); filter(f_crit); destination(d_newscrit); };
+log { source(s_src); filter(f_news); filter(f_err); destination(d_newserr); };
+log { source(s_src); filter(f_news); filter(f_notice); destination(d_newsnotice); };
+#log { source(s_src); filter(f_cnews); destination(d_console_all); };
+#log { source(s_src); filter(f_cother); destination(d_console_all); };
+
+#log { source(s_src); filter(f_ppp); destination(d_ppp); };
+
+log { source(s_src); filter(f_debug); destination(d_debug); };
+log { source(s_src); filter(f_error); destination(d_error); };
+log { source(s_src); filter(f_messages); destination(d_messages); };
+
+log { source(s_src); filter(f_console); destination(d_console_all);
+ destination(d_xconsole); };
+log { source(s_src); filter(f_crit); destination(d_console); };
+
+# All messages send to a remote site
+#
+#log { source(s_src); destination(d_net); };
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
index 6b30c20..39c3f59 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
@@ -7,25 +7,40 @@
Upstream-Status: pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+Updated-by: Andrej Valek <andrej.valek@siemens.com>
---
contrib/systemd/syslog-ng.service | 5 ++---
1 file changed, 2 insertion(+), 3 deletions(-)
-diff --git a/contrib/systemd/syslog-ng.service b/contrib/systemd/syslog-ng.service
-index fc16f8d..8e09deb 100644
---- a/contrib/systemd/syslog-ng.service
-+++ b/contrib/systemd/syslog-ng.service
-@@ -4,8 +4,8 @@ Description=System Logger Daemon
-
- [Service]
+diff --git a/contrib/systemd/syslog-ng@.service b/contrib/systemd/syslog-ng@.service
+index a28640e..93aec94 100644
+--- a/contrib/systemd/syslog-ng@.service
++++ b/contrib/systemd/syslog-ng@.service
+@@ -7,8 +7,8 @@ Conflicts=emergency.service emergency.target
Type=notify
--ExecStart=/usr/sbin/syslog-ng -F $SYSLOGNG_OPTS
+ EnvironmentFile=-/etc/default/syslog-ng@%i
+ EnvironmentFile=-/etc/sysconfig/syslog-ng@%i
+-ExecStart=/usr/sbin/syslog-ng -F $OTHER_OPTIONS --cfgfile $CONFIG_FILE --control $CONTROL_FILE --persist-file $PERSIST_FILE --pidfile $PID_FILE
-ExecReload=/bin/kill -HUP $MAINPID
-+ExecStart=@SBINDIR@/syslog-ng -F $SYSLOGNG_OPTS -p @LOCALSTATEDIR@/run/syslogd.pid
++ExecStart=@SBINDIR@/syslog-ng -F $OTHER_OPTIONS --cfgfile $CONFIG_FILE --control $CONTROL_FILE --persist-file $PERSIST_FILE --pidfile $PID_FILE
+ExecReload=@BASEBINDIR@/kill -HUP $MAINPID
- EnvironmentFile=-/etc/default/syslog-ng
- EnvironmentFile=-/etc/sysconfig/syslog-ng
StandardOutput=journal
+ StandardError=journal
+ Restart=on-failure
+diff --git a/contrib/systemd/syslog-ng@default b/contrib/systemd/syslog-ng@default
+index 02da288..3a8215d 100644
+--- a/contrib/systemd/syslog-ng@default
++++ b/contrib/systemd/syslog-ng@default
+@@ -1,5 +1,5 @@
+-CONFIG_FILE=/etc/syslog-ng.conf
+-PERSIST_FILE=/var/lib/syslog-ng/syslog-ng.persist
+-CONTROL_FILE=/var/lib/syslog-ng/syslog-ng.ctl
+-PID_FILE=/var/run/syslog-ng.pid
++CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf
++PERSIST_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.persist
++CONTROL_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.ctl
++PID_FILE=@LOCALSTATEDIR@/run/syslog-ng.pid
+ OTHER_OPTIONS="--enable-core"
+
--
1.8.4.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index 771cdb1..b52deff 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -13,15 +13,18 @@
LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240"
# util-linux added to get libuuid
-DEPENDS = "libpcre flex eventlog glib-2.0 openssl util-linux"
+DEPENDS = "libpcre flex glib-2.0 openssl util-linux"
SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
- file://syslog-ng.conf \
+ file://syslog-ng.conf.systemd \
+ file://syslog-ng.conf.sysvinit \
file://initscript \
file://volatiles.03_syslog-ng \
file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
"
+UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases"
+
inherit autotools gettext systemd pkgconfig update-rc.d
EXTRA_OECONF = " \
@@ -67,15 +70,8 @@
cd $olddir
}
-do_install_prepend() {
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${S}/contrib/systemd/*.service
- sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${S}/contrib/systemd/*.service
- sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${S}/contrib/systemd/*.service
-}
-
do_install_append() {
install -d ${D}/${sysconfdir}/${BPN}
- install ${WORKDIR}/syslog-ng.conf ${D}${sysconfdir}/${BPN}/${BPN}.conf
install -d ${D}/${sysconfdir}/init.d
install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog
install -d ${D}/${sysconfdir}/default/volatiles/
@@ -83,16 +79,43 @@
install -d ${D}/${localstatedir}/lib/${BPN}
# Remove /var/run as it is created on startup
rm -rf ${D}${localstatedir}/run
+
+ # support for systemd
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
+ install -m 0644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
+
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+ sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+ sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+
+ install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
+ ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
+ else
+ install ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
+ fi
}
-FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools"
-RDEPENDS_${PN} += "gawk"
+FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools ${systemd_unitdir}/system/multi-user.target.wants/*"
+RDEPENDS_${PN} += "gawk ${@bb.utils.contains('PACKAGECONFIG','json','${PN}-jconf','',d)}"
+
+FILES_${PN}-jconf += " \
+${datadir}/${BPN}/include/scl/cim \
+${datadir}/${BPN}/include/scl/elasticsearch \
+${datadir}/${BPN}/include/scl/ewmm \
+${datadir}/${BPN}/include/scl/graylog2 \
+${datadir}/${BPN}/include/scl/loggly \
+${datadir}/${BPN}/include/scl/logmatic \
+"
# This overcomes the syslog-ng rdepends on syslog-ng-dev QA Error
-PACKAGES =+ "${PN}-libs ${PN}-libs-dev ${PN}-libs-dbg"
+PACKAGES =+ "${PN}-jconf ${PN}-libs ${PN}-libs-dev"
+RPROVIDES_${PN}-dbg += "${PN}-libs-dbg"
FILES_${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
FILES_${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
-FILES_${PN}-libs-dbg = "${libdir}/${BPN}/.debug"
FILES_${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a"
INSANE_SKIP_${PN}-libs = "dev-so"
RDEPENDS_${PN} += "${PN}-libs"
@@ -108,7 +131,7 @@
RPROVIDES_${PN} += "${PN}-systemd"
RREPLACES_${PN} += "${PN}-systemd"
RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+SYSTEMD_SERVICE_${PN} = "${BPN}@.service"
INITSCRIPT_NAME = "syslog"
INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb
new file mode 100644
index 0000000..b5f42cf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb
@@ -0,0 +1,16 @@
+require syslog-ng.inc
+
+SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
+ file://syslog-ng.conf.systemd \
+ file://syslog-ng.conf.sysvinit \
+ file://initscript \
+ file://volatiles.03_syslog-ng \
+ file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
+ file://fix-config-libnet.patch \
+ file://fix-invalid-ownership.patch \
+ file://syslog-ng.service-the-syslog-ng-service.patch \
+ file://0001-syslog-ng-fix-segment-fault-during-service-start.patch \
+ "
+
+SRC_URI[md5sum] = "72d44ad02c2e9ba0748b3ecd3f15a7ff"
+SRC_URI[sha256sum] = "c7ee6f1d5e98d86f191964e580111bfa71081ecbb3275cea035bbba177b73a29"
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb
deleted file mode 100644
index 91a0e46..0000000
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require syslog-ng.inc
-
-SRC_URI += " \
- file://fix-config-libnet.patch \
- file://fix-invalid-ownership.patch \
- file://Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch \
- file://syslog-ng.service-the-syslog-ng-service.patch \
-"
-
-SRC_URI[md5sum] = "acf14563cf5ce435db8db35486ce66af"
-SRC_URI[sha256sum] = "84b081f6e5f98cbc52052e342bcfdc5de5fe0ebe9f5ec32fe9eaec5759224cc5"
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
index b4cdda1..547949d 100644
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
@@ -1,6 +1,6 @@
-From e8be402e20cbdfbd8192a171ac9904d9362103bf Mon Sep 17 00:00:00 2001
+From de869ad2cb19d81257a159770ebe27593a71593c Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 31 Aug 2016 01:35:40 -0400
+Date: Tue, 31 Jul 2018 11:29:51 +0800
Subject: [PATCH] do not strip pdata_tools at do_install
It caused QA Issue:
@@ -17,11 +17,11 @@
1 file changed, 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
-index 4264191..ac22042 100644
+index 02b75dd..df590b4 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -189,7 +189,6 @@ distclean: clean
- install: bin/pdata_tools
+@@ -267,7 +267,6 @@ MANPAGES:=$(patsubst %,man8/%.8,$(TOOLS))
+ install: bin/pdata_tools $(MANPAGES)
$(INSTALL_DIR) $(BINDIR)
$(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR)
- $(STRIP) $(BINDIR)/pdata_tools
@@ -29,5 +29,5 @@
ln -s -f pdata_tools $(BINDIR)/cache_dump
ln -s -f pdata_tools $(BINDIR)/cache_metadata_size
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch
new file mode 100644
index 0000000..28b44da
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch
@@ -0,0 +1,42 @@
+From fcbcf9c494cca166106ae4cb03c1dd135ee4f25c Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 1 Aug 2018 09:34:00 +0800
+Subject: [PATCH] fix compile failed with libc musl
+
+There is a failure while compiling with libc musl:
+[snip]
+|./block-cache/io_engine.h:18:17: error: expected
+unqualified-id before numeric constant
+| unsigned const PAGE_SIZE = 4096;
+[snip]
+
+The musl defeines macro PAGE_SIZE, undef it conditionally
+could fix the issue.
+
+http://musl.openwall.narkive.com/tO8vrHdP/why-musl-define-page-size
+
+Upstream-Status: Submitted [git://github.com/jthornber/thin-provisioning-tools]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ block-cache/io_engine.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/block-cache/io_engine.h b/block-cache/io_engine.h
+index 1704251..e36b932 100644
+--- a/block-cache/io_engine.h
++++ b/block-cache/io_engine.h
+@@ -12,6 +12,10 @@
+
+ //----------------------------------------------------------------
+
++// Musl defines
++#ifdef PAGE_SIZE
++#undef PAGE_SIZE
++#endif
+ namespace bcache {
+ using sector_t = uint64_t;
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb
deleted file mode 100755
index c9d6690..0000000
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Tools of dm-thin device-mapper"
-DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
-HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
-LICENSE = "GPLv3"
-SECTION = "devel"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \
- file://0001-do-not-strip-pdata_tools-at-do_install.patch \
-"
-
-SRCREV = "49bfc12e9c7956c1ac134b24afbe1a6a602ce7d5"
-
-DEPENDS += "expat libaio boost"
-
-inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb
new file mode 100644
index 0000000..20cb17a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Tools of dm-thin device-mapper"
+DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
+HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
+LICENSE = "GPLv3"
+SECTION = "devel"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \
+ file://0001-do-not-strip-pdata_tools-at-do_install.patch \
+ file://0001-fix-compile-failed-with-libc-musl.patch \
+"
+
+SRCREV = "6f936992b8e6208a7838fcf1ec87c5bd3a694a77"
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+DEPENDS += "expat libaio boost"
+
+inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch
new file mode 100644
index 0000000..f140793
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch
@@ -0,0 +1,77 @@
+From 64f051963d6cdeebd19f9e7f0a7e584a1f7acc60 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 19:12:57 -0700
+Subject: [PATCH] include sys/sysmacros.h
+
+fixes build with glibc 2.28+
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/daemon.c | 1 +
+ src/device.c | 1 +
+ src/mount-monitor.c | 1 +
+ tools/udisks.c | 1 +
+ tools/umount-udisks.c | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/src/daemon.c b/src/daemon.c
+index 14e952f..2c61cfb 100644
+--- a/src/daemon.c
++++ b/src/daemon.c
+@@ -39,6 +39,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
+diff --git a/src/device.c b/src/device.c
+index d73f9d6..5911d78 100644
+--- a/src/device.c
++++ b/src/device.c
+@@ -29,6 +29,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/wait.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+diff --git a/src/mount-monitor.c b/src/mount-monitor.c
+index 573a69c..ccf3365 100644
+--- a/src/mount-monitor.c
++++ b/src/mount-monitor.c
+@@ -28,6 +28,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <mntent.h>
+
+diff --git a/tools/udisks.c b/tools/udisks.c
+index d30159b..f24a30a 100644
+--- a/tools/udisks.c
++++ b/tools/udisks.c
+@@ -29,6 +29,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <sys/wait.h>
+ #include <fcntl.h>
+diff --git a/tools/umount-udisks.c b/tools/umount-udisks.c
+index 2813fe0..5cf6b4d 100644
+--- a/tools/umount-udisks.c
++++ b/tools/umount-udisks.c
+@@ -29,6 +29,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <pwd.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
deleted file mode 100644
index 1cbd877..0000000
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7fdd4acdf6daf95c5cc74e968f4710513c8ddaea Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 23 Mar 2018 18:33:52 +0100
-Subject: [PATCH] data: fix out of tree build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-| sed: can't read udisks2.service.in: No such file or directory
-
-Upstream-Status: Submitted [1]
-
-[1] https://github.com/storaged-project/udisks/pull/510
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- data/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/Makefile.am b/data/Makefile.am
-index ddf9e3d6..b38928c8 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -22,7 +22,7 @@ systemdservicedir = $(systemdsystemunitdir)
- systemdservice_DATA = $(systemdservice_in_files:.service.in=.service)
-
- $(systemdservice_DATA): udisks2.service.in Makefile
-- @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" udisks2.service.in > udisks2.service
-+ @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" $(srcdir)/udisks2.service.in > udisks2.service
- endif
-
- udevrulesdir = $(udevdir)/rules.d
---
-2.14.3
-
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
deleted file mode 100644
index 4d22afd..0000000
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
-
-DEPENDS = " \
- acl \
- libatasmart \
- polkit \
- libgudev \
- dbus-glib \
- glib-2.0 \
- libblockdev \
- intltool-native \
- gnome-common-native \
- libxslt-native \
-"
-DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-RDEPENDS_${PN} = "acl"
-
-SRC_URI = " \
- git://github.com/storaged-project/udisks.git \
- file://0001-data-fix-out-of-tree-build.patch \
- file://non-gnu-libc.patch \
-"
-SRCREV = "b6471f2e99f6aa1133af0de658f1fa05c748932c"
-S = "${WORKDIR}/git"
-
-CVE_PRODUCT = "udisks"
-
-inherit autotools systemd gtk-doc gobject-introspection
-
-EXTRA_OECONF = "--disable-man --disable-gtk-doc"
-
-FILES_${PN} += " \
- ${datadir}/dbus-1/ \
- ${datadir}/polkit-1 \
- ${datadir}/bash-completion \
- ${libdir}/polkit-1/extensions/*.so \
- ${nonarch_base_libdir}/udev/* \
- ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
- ${systemd_system_unitdir} \
-"
-
-PACKAGES =+ "${PN}-libs"
-FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
-
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.8.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.8.bb
new file mode 100644
index 0000000..64b338f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.8.bb
@@ -0,0 +1,48 @@
+SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
+
+DEPENDS = " \
+ acl \
+ libatasmart \
+ polkit \
+ libgudev \
+ dbus-glib \
+ glib-2.0 \
+ libblockdev \
+ intltool-native \
+ gnome-common-native \
+ libxslt-native \
+"
+DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+RDEPENDS_${PN} = "acl"
+
+SRC_URI = " \
+ git://github.com/storaged-project/udisks.git;branch=2.7.x-branch \
+ file://non-gnu-libc.patch \
+"
+SRCREV = "47bc0141cb84624ba1e2242d596a89a30df1f5ea"
+S = "${WORKDIR}/git"
+
+CVE_PRODUCT = "udisks"
+
+inherit autotools systemd gtk-doc gobject-introspection
+
+EXTRA_OECONF = "--disable-man --disable-gtk-doc"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1/ \
+ ${datadir}/polkit-1 \
+ ${datadir}/bash-completion \
+ ${libdir}/polkit-1/extensions/*.so \
+ ${nonarch_base_libdir}/udev/* \
+ ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
+ ${systemd_system_unitdir} \
+"
+
+PACKAGES =+ "${PN}-libs"
+FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
index e332660..7cd9992 100644
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
@@ -11,13 +11,13 @@
dbus-glib-native \
"
-SRC_URI = " \
- http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \
- file://optional-depends.patch \
- file://0001-fix-build-with-newer-glibc-versions.patch \
- file://udisks-1.0.5-fix-service-file.patch \
- file://0001-Make-udev-rules-directory-configurable.patch \
-"
+SRC_URI = "http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \
+ file://optional-depends.patch \
+ file://0001-fix-build-with-newer-glibc-versions.patch \
+ file://udisks-1.0.5-fix-service-file.patch \
+ file://0001-Make-udev-rules-directory-configurable.patch \
+ file://0001-include-sys-sysmacros.h.patch \
+ "
SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd"
SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71"
diff --git a/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb b/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb
new file mode 100644
index 0000000..6306ddb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "USB hub per-port power control"
+HOMEPAGE = "https://github.com/mvp/uhubctl"
+BUGTRACKER = "https://github.com/mvp/uhubctl/issues"
+DEPENDS = "libusb1"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://github.com/mvp/${PN}/archive/v${PV}.tar.gz"
+SRC_URI[md5sum] = "5c711911d766d76813333c3812277574"
+SRC_URI[sha256sum] = "4c31278b2c03e5be5a696c3088bc86cf2557a70e00f697799c163aba18e3c40e"
+
+# uhubctl gets its program version from "git describe". As we use the source
+# archive do reduce download size replace the call with our hardcoded version.
+do_configure_append() {
+ sed -i "s/^\(GIT_VERSION :=\).*$/\1 ${PV}/g" ${S}/Makefile
+}
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb b/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
index 62d9db8..2674d35 100644
--- a/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
@@ -14,6 +14,8 @@
SRC_URI[md5sum] = "a8629fd2953b04b4639d0a9d8a5cf9d1"
SRC_URI[sha256sum] = "88b637f647c052ecc3861a3baa275c3b503b193b6a49ff8c28b2568656d14d69"
+UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar"
+
inherit autotools-brokensep
S = "${WORKDIR}/unixODBC-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch b/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch
new file mode 100644
index 0000000..de89dc0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch
@@ -0,0 +1,31 @@
+From f64b6ce8054b47e5bdcc8c4c7965534b388e6151 Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Date: Fri, 6 Apr 2018 11:26:54 -0700
+Subject: [PATCH] linux: lower severity of "unhandled action" messages
+
+Newer kernels emit bind/unbind uevents that are not of interest to
+powerd. To avoid littering logs with scary messages, let's lower their
+severity to "debug".
+
+https://bugs.freedesktop.org/show_bug.cgi?id=106019
+
+Upstream-Status: Backport
+---
+ src/linux/up-backend.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/linux/up-backend.c b/src/linux/up-backend.c
+index e668dc8..b8021e7 100644
+--- a/src/linux/up-backend.c
++++ b/src/linux/up-backend.c
+@@ -273,7 +273,7 @@ up_backend_uevent_signal_handler_cb (GUdevClient *client, const gchar *action,
+ g_debug ("SYSFS change %s", g_udev_device_get_sysfs_path (device));
+ up_backend_device_changed (backend, device);
+ } else {
+- g_warning ("unhandled action '%s' on %s", action, g_udev_device_get_sysfs_path (device));
++ g_debug ("unhandled action '%s' on %s", action, g_udev_device_get_sysfs_path (device));
+ }
+ }
+
+--
+2.17.0.484.g0c8726318c-goog
diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
index 973fbe7..2cf3163 100644
--- a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
@@ -4,7 +4,10 @@
DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit"
-SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
+SRC_URI = " \
+ http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ file://0001-linux-lower-severity-of-unhandled-action-messages.patch \
+"
SRC_URI[md5sum] = "236bb439d9ff1151450b3d8582399532"
SRC_URI[sha256sum] = "24bcc2f6ab25a2533bac70b587bcb019e591293076920f5b5e04bdedc140a401"
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
index b4be853..bfcdf83 100644
--- a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
@@ -12,3 +12,5 @@
SRC_URI[md5sum] = "9aabdc3611546f553f4af372167de6d6"
SRC_URI[sha256sum] = "ce7ccda4136974889231e8426a785e7578e66a6283009cfd13f1b24a5e657b23"
+
+BBCLASSEXTEND += "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch
new file mode 100644
index 0000000..93eaa3d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch
@@ -0,0 +1,33 @@
+Description: Fix build failure with new kernel 4.18
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+
+Upstream-Status:Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: vbox_module/vboxsf/utils.c
+===================================================================
+--- vbox_module.orig/vboxsf/utils.c
++++ vbox_module/vboxsf/utils.c
+@@ -50,7 +50,11 @@ static void sf_timespec_from_ftime(RTTIM
+ RTTimeSpecSetNano(ts, t);
+ }
+ #else /* >= 2.6.0 */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
+ static void sf_ftime_from_timespec(struct timespec *tv, RTTIMESPEC *ts)
++#else
++static void sf_ftime_from_timespec(struct timespec64 *tv, RTTIMESPEC *ts)
++#endif
+ {
+ int64_t t = RTTimeSpecGetNano(ts);
+ int64_t nsec;
+@@ -60,7 +64,11 @@ static void sf_ftime_from_timespec(struc
+ tv->tv_nsec = nsec;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
+ static void sf_timespec_from_ftime(RTTIMESPEC *ts, struct timespec *tv)
++#else
++static void sf_timespec_from_ftime(RTTIMESPEC *ts, struct timespec64 *tv)
++#endif
+ {
+ int64_t t = (int64_t)tv->tv_nsec + (int64_t)tv->tv_sec * 1000000000;
+ RTTimeSpecSetNano(ts, t);
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.18.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.18.bb
new file mode 100644
index 0000000..2a4cc38
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.18.bb
@@ -0,0 +1,78 @@
+SUMMARY = "VirtualBox Linux Guest Drivers"
+SECTION = "core"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
+
+DEPENDS = "virtual/kernel"
+
+inherit module kernel-module-split
+
+COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
+
+VBOX_NAME = "VirtualBox-${PV}"
+
+SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
+ file://Makefile.utils \
+ file://kernel-4.18.patch \
+"
+SRC_URI[md5sum] = "d8e291525b84569356773eef507c49ce"
+SRC_URI[sha256sum] = "ed0a7efd56c7f39fae79c7ec3321473da412ef0d7914457b66f42679d513efcf"
+
+S = "${WORKDIR}/vbox_module"
+
+export BUILD_TARGET_ARCH="${ARCH}"
+export BUILD_TARGET_ARCH_x86-64="amd64"
+
+EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'"
+
+addtask export_sources before do_patch after do_unpack
+
+do_export_sources() {
+ mkdir -p "${S}"
+ ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
+ tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
+
+ # add a mount utility to use shared folder from VBox Addition Source Code
+ mkdir -p "${S}/utils"
+ install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
+ install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
+ install ${S}/../Makefile.utils ${S}/utils/Makefile
+
+}
+
+do_configure_prepend() {
+ # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set. Stop.
+ # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in <version>/build, or the variable KERN_VER must be set. Stop.
+ mkdir -p ${WORKDIR}/${KERNEL_VERSION}
+ ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
+}
+
+# compile and install mount utility
+do_compile_append() {
+ oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
+ if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
+ echo "ERROR: One of vbox*.ko modules wasn't built"
+ exit 1
+ fi
+}
+
+module_do_install() {
+ MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
+ install -d $MODULE_DIR
+ install -m 644 vboxguest.ko $MODULE_DIR
+ install -m 644 vboxsf.ko $MODULE_DIR
+ install -m 644 vboxvideo.ko $MODULE_DIR
+}
+
+do_install_append() {
+ install -d ${D}${base_sbindir}
+ install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
+}
+
+PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+
+FILES_${PN} = "${base_sbindir}"
+
+# autoload if installed
+KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
deleted file mode 100644
index e00db4d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
+++ /dev/null
@@ -1,78 +0,0 @@
-SUMMARY = "VirtualBox Linux Guest Drivers"
-SECTION = "core"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
-
-DEPENDS = "virtual/kernel"
-
-inherit module kernel-module-split
-
-COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
-
-VBOX_NAME = "VirtualBox-${PV}"
-
-SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
- file://Makefile.utils \
-"
-
-SRC_URI[md5sum] = "e731ea9c5c31096ec4c2a3bfba26665c"
-SRC_URI[sha256sum] = "ee2759d47b0b4ac81b8b671c9485c87fb2db12c097b3e7e69b94c1291a8084e8"
-
-S = "${WORKDIR}/vbox_module"
-
-export BUILD_TARGET_ARCH="${ARCH}"
-export BUILD_TARGET_ARCH_x86-64="amd64"
-
-EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'"
-
-addtask export_sources before do_patch after do_unpack
-
-do_export_sources() {
- mkdir -p "${S}"
- ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
- tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
-
- # add a mount utility to use shared folder from VBox Addition Source Code
- mkdir -p "${S}/utils"
- install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
- install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
- install ${S}/../Makefile.utils ${S}/utils/Makefile
-
-}
-
-do_configure_prepend() {
- # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set. Stop.
- # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in <version>/build, or the variable KERN_VER must be set. Stop.
- mkdir -p ${WORKDIR}/${KERNEL_VERSION}
- ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
-}
-
-# compile and install mount utility
-do_compile_append() {
- oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
- if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
- echo "ERROR: One of vbox*.ko modules wasn't built"
- exit 1
- fi
-}
-
-module_do_install() {
- MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
- install -d $MODULE_DIR
- install -m 644 vboxguest.ko $MODULE_DIR
- install -m 644 vboxsf.ko $MODULE_DIR
- install -m 644 vboxvideo.ko $MODULE_DIR
-}
-
-do_install_append() {
- install -d ${D}${base_sbindir}
- install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
-}
-
-PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-
-FILES_${PN} = "${base_sbindir}"
-
-# autoload if installed
-KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
deleted file mode 100644
index 937b9ba..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 9c11f80339372b7aa2f43153d574f2b5abb79708 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Sun, 17 Dec 2017 23:09:35 -0800
-Subject: [PATCH] vim: patch 8.0.1263: others can read the swap file if a user
- is careless
-
-Problem: Others can read the swap file if a user is careless with his
- primary group.
-Solution: If the group permission allows for reading but the world
- permissions doesn't, make sure the group is right.
-
-Upstream-Status: Backport
-CVE: CVE-2017-17087
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- src/fileio.c | 24 +++++++++++++++++++++++-
- src/version.c | 2 ++
- 2 files changed, 25 insertions(+), 1 deletion(-)
-
-diff --git a/src/fileio.c b/src/fileio.c
-index f54fb8465..2c7740af9 100644
---- a/src/fileio.c
-+++ b/src/fileio.c
-@@ -716,7 +716,29 @@ readfile(
- /* Set swap file protection bits after creating it. */
- if (swap_mode > 0 && curbuf->b_ml.ml_mfp != NULL
- && curbuf->b_ml.ml_mfp->mf_fname != NULL)
-- (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode);
-+ {
-+ char_u *swap_fname = curbuf->b_ml.ml_mfp->mf_fname;
-+
-+ /*
-+ * If the group-read bit is set but not the world-read bit, then
-+ * the group must be equal to the group of the original file. If
-+ * we can't make that happen then reset the group-read bit. This
-+ * avoids making the swap file readable to more users when the
-+ * primary group of the user is too permissive.
-+ */
-+ if ((swap_mode & 044) == 040)
-+ {
-+ stat_T swap_st;
-+
-+ if (mch_stat((char *)swap_fname, &swap_st) >= 0
-+ && st.st_gid != swap_st.st_gid
-+ && fchown(curbuf->b_ml.ml_mfp->mf_fd, -1, st.st_gid)
-+ == -1)
-+ swap_mode &= 0600;
-+ }
-+
-+ (void)mch_setperm(swap_fname, (long)swap_mode);
-+ }
- #endif
- }
-
-diff --git a/src/version.c b/src/version.c
-index a5cb078f0..5c0df475f 100644
---- a/src/version.c
-+++ b/src/version.c
-@@ -770,6 +770,8 @@ static char *(features[]) =
- static int included_patches[] =
- { /* Add new patch number below this line */
- /**/
-+ 1263,
-+/**/
- 983,
- /**/
- 982,
---
-2.11.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
index 65e5f58..4720003 100644
--- a/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
+++ b/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
@@ -1,14 +1,23 @@
-Upstream-Status: pending
+From 5ed25c076a1fb1889a3c50dddf29f21850b59a13 Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Tue, 26 Jun 2018 17:29:09 +0800
+Subject: [PATCH] disable acl header check
Don't check 'sys/acl.h' if acl support disabled for vim/vim-tiny.
+Upstream-Status: pending
+
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
-================================================
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ src/configure.ac | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
diff --git a/src/configure.ac b/src/configure.ac
-index fb965e5..d734064 100644
+index 107c170..0ee86ad 100644
--- a/src/configure.ac
+++ b/src/configure.ac
-@@ -2511,7 +2511,7 @@ AC_CHECK_HEADERS(stdarg.h stdint.h stdlib.h string.h \
+@@ -3220,7 +3220,7 @@ AC_CHECK_HEADERS(stdint.h stdlib.h string.h \
sys/systeminfo.h locale.h sys/stream.h termios.h \
libc.h sys/statfs.h poll.h sys/poll.h pwd.h \
utime.h sys/param.h libintl.h libgen.h \
@@ -17,11 +26,14 @@
sys/access.h sys/sysinfo.h wchar.h wctype.h)
dnl sys/ptem.h depends on sys/stream.h on Solaris
-@@ -3112,6 +3112,7 @@ AC_ARG_ENABLE(acl,
+@@ -3848,6 +3848,7 @@ AC_ARG_ENABLE(acl,
, [enable_acl="yes"])
if test "$enable_acl" = "yes"; then
- AC_MSG_RESULT(no)
-+AC_CHECK_HEADERS(sys/acl.h)
- AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
+ AC_MSG_RESULT(no)
++ AC_CHECK_HEADERS(sys/acl.h)
+ AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
index 6c620f9..37914d4 100644
--- a/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
+++ b/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
@@ -1,20 +1,24 @@
-vim: add knob whether elf.h are checked
+From 38de4bccdb8a861ffdd447f12fdab19d6d852c02 Mon Sep 17 00:00:00 2001
+From: Chong Lu <Chong.Lu@windriver.com>
+Date: Tue, 26 Jun 2018 17:34:15 +0800
+Subject: [PATCH] vim: add knob whether elf.h are checked
Previously, it still was checked when there was no elf library in sysroots directory.
Add knob to decide whether elf.h are checked or not.
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- src/configure.ac | 7 +++++++
+ src/configure.ac | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/configure.ac b/src/configure.ac
-index d734064..f504fa6 100644
+index 0ee86ad..64736f0 100644
--- a/src/configure.ac
+++ b/src/configure.ac
-@@ -2483,11 +2483,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
+@@ -3192,11 +3192,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
AC_MSG_RESULT(no))
dnl Checks for header files.
@@ -34,5 +38,5 @@
AC_HEADER_DIRENT
--
-1.7.9.5
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
deleted file mode 100644
index bb8f2b7..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require vim_${PV}.bb
-
-SUMMARY += " (with tiny features)"
-
-PACKAGECONFIG += "tiny"
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 0755 ${S}/vim ${D}/${bindir}/vim.tiny
-}
-
-ALTERNATIVE_PRIORITY = "90"
-ALTERNATIVE_TARGET = "${bindir}/vim.tiny"
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb
new file mode 100644
index 0000000..8b1fb7b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb
@@ -0,0 +1,15 @@
+require vim_${PV}.bb
+
+SUMMARY += " (with tiny features)"
+
+PROVIDES_remove = "xxd"
+ALTERNATIVE_${PN}_remove = "xxd"
+
+PACKAGECONFIG += "tiny"
+
+do_install() {
+ install -D -m 0755 ${S}/vim ${D}/${bindir}/vim.tiny
+}
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_TARGET = "${bindir}/vim.tiny"
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
deleted file mode 100644
index 44c868c..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-SUMMARY = "Vi IMproved - enhanced vi editor"
-SECTION = "console/utils"
-DEPENDS = "ncurses gettext-native"
-# vimdiff doesn't like busybox diff
-RSUGGESTS_${PN} = "diffutils"
-LICENSE = "vim"
-LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=eea32ac1424bba14096736a494ae9045"
-
-SRC_URI = "git://github.com/vim/vim.git \
- file://disable_acl_header_check.patch;patchdir=.. \
- file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \
- file://CVE-2017-17087.patch;patchdir=.. \
-"
-SRCREV = "3f9a1ff141412e9e85f7dff47d02946cb9be9228"
-
-S = "${WORKDIR}/git/src"
-
-VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}"
-
-inherit autotools-brokensep update-alternatives
-
-CLEANBROKEN = "1"
-
-# vim configure.in contains functions which got 'dropped' by autotools.bbclass
-do_configure () {
- rm -f auto/*
- touch auto/config.mk
- aclocal
- autoconf
- oe_runconf
- touch auto/configure
- touch auto/config.mk auto/config.h
-}
-
-#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny
-PACKAGECONFIG ??= ""
-PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
-
-PACKAGECONFIG[gtkgui] = "--enable-gtk2-test --enable-gui=gtk2,--enable-gui=no,gtk+,"
-PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
-PACKAGECONFIG[x11] = "--with-x,--without-x,xt,"
-PACKAGECONFIG[tiny] = "--with-features=tiny,--with-features=big,,"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,"
-PACKAGECONFIG[elfutils] = "--enable-elf-check,,elfutils,"
-
-EXTRA_OECONF = " \
- --disable-gpm \
- --disable-gtktest \
- --disable-xim \
- --disable-netbeans \
- --with-tlib=ncurses \
- ac_cv_small_wchar_t=no \
- vim_cv_getcwd_broken=no \
- vim_cv_memmove_handles_overlap=yes \
- vim_cv_stat_ignores_slash=no \
- vim_cv_terminfo=yes \
- vim_cv_tgent=non-zero \
- vim_cv_toupper_broken=no \
- vim_cv_tty_group=world \
- STRIP=/bin/true \
-"
-
-do_install() {
- autotools_do_install
-
- # Work around file-rdeps picking up csh, awk, perl or python as a dep
- chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/vim132
- chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk
- chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl
- chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.py
-
- # Install example vimrc from runtime files
- install -m 0644 ../runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc
-
- # we use --with-features=big as default
- mv ${D}${bindir}/${BPN} ${D}${bindir}/${BPN}.${BPN}
-}
-
-PARALLEL_MAKEINST = ""
-
-PACKAGES =+ "${PN}-common ${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-tools"
-FILES_${PN}-syntax = "${datadir}/${BPN}/${VIMDIR}/syntax"
-FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc"
-FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor"
-FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc"
-FILES_${PN}-data = "${datadir}/${BPN}"
-FILES_${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools"
-FILES_${PN}-common = " \
- ${datadir}/${BPN}/${VIMDIR}/*.vim \
- ${datadir}/${BPN}/${VIMDIR}/autoload \
- ${datadir}/${BPN}/${VIMDIR}/colors \
- ${datadir}/${BPN}/${VIMDIR}/compiler \
- ${datadir}/${BPN}/${VIMDIR}/ftplugin \
- ${datadir}/${BPN}/${VIMDIR}/indent \
- ${datadir}/${BPN}/${VIMDIR}/keymap \
- ${datadir}/${BPN}/${VIMDIR}/lang \
- ${datadir}/${BPN}/${VIMDIR}/macros \
- ${datadir}/${BPN}/${VIMDIR}/plugin \
- ${datadir}/${BPN}/${VIMDIR}/print \
- ${datadir}/${BPN}/${VIMDIR}/spell \
- ${datadir}/icons \
-"
-
-RDEPENDS_${BPN} = "ncurses-terminfo-base"
-# Recommend that runtime data is installed along with vim
-RRECOMMENDS_${BPN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common"
-
-ALTERNATIVE_${PN} = "vi vim"
-ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}"
-ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi"
-ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim"
-ALTERNATIVE_PRIORITY = "100"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb
new file mode 100644
index 0000000..46d229e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb
@@ -0,0 +1,117 @@
+SUMMARY = "Vi IMproved - enhanced vi editor"
+SECTION = "console/utils"
+
+PROVIDES = "xxd"
+DEPENDS = "ncurses gettext-native"
+# vimdiff doesn't like busybox diff
+RSUGGESTS_${PN} = "diffutils"
+LICENSE = "vim"
+LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;endline=287;md5=f1f82b42360005c70b8c19b0ef493f72"
+
+SRC_URI = "git://github.com/vim/vim.git \
+ file://disable_acl_header_check.patch;patchdir=.. \
+ file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \
+"
+SRCREV = "f1c118be93184e8e57e3e80b1b3383f464ed649e"
+
+S = "${WORKDIR}/git/src"
+
+VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}"
+
+inherit autotools-brokensep update-alternatives
+
+CLEANBROKEN = "1"
+
+# vim configure.in contains functions which got 'dropped' by autotools.bbclass
+do_configure () {
+ rm -f auto/*
+ touch auto/config.mk
+ aclocal
+ autoconf
+ oe_runconf
+ touch auto/configure
+ touch auto/config.mk auto/config.h
+}
+
+#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny
+PACKAGECONFIG ??= ""
+PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
+
+PACKAGECONFIG[gtkgui] = "--enable-gtk2-test --enable-gui=gtk2,--enable-gui=no,gtk+,"
+PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
+PACKAGECONFIG[x11] = "--with-x,--without-x,xt,"
+PACKAGECONFIG[tiny] = "--with-features=tiny,--with-features=big,,"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,"
+PACKAGECONFIG[elfutils] = "--enable-elf-check,,elfutils,"
+
+EXTRA_OECONF = " \
+ --disable-gpm \
+ --disable-gtktest \
+ --disable-xim \
+ --disable-netbeans \
+ --with-tlib=ncurses \
+ ac_cv_small_wchar_t=no \
+ vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=no \
+ vim_cv_terminfo=yes \
+ vim_cv_tgetent=non-zero \
+ vim_cv_toupper_broken=no \
+ vim_cv_tty_group=world \
+ STRIP=/bin/true \
+"
+
+do_install() {
+ autotools_do_install
+
+ # Work around file-rdeps picking up csh, awk, perl or python as a dep
+ chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/vim132
+ chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk
+ chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl
+ chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.py
+
+ # Install example vimrc from runtime files
+ install -m 0644 ../runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc
+
+ # we use --with-features=big as default
+ mv ${D}${bindir}/${BPN} ${D}${bindir}/${BPN}.${BPN}
+}
+
+PARALLEL_MAKEINST = ""
+
+PACKAGES =+ "${PN}-common ${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-tools"
+FILES_${PN}-syntax = "${datadir}/${BPN}/${VIMDIR}/syntax"
+FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc"
+FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor"
+FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc"
+FILES_${PN}-data = "${datadir}/${BPN}"
+FILES_${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools"
+FILES_${PN}-common = " \
+ ${datadir}/${BPN}/${VIMDIR}/*.vim \
+ ${datadir}/${BPN}/${VIMDIR}/autoload \
+ ${datadir}/${BPN}/${VIMDIR}/colors \
+ ${datadir}/${BPN}/${VIMDIR}/compiler \
+ ${datadir}/${BPN}/${VIMDIR}/ftplugin \
+ ${datadir}/${BPN}/${VIMDIR}/indent \
+ ${datadir}/${BPN}/${VIMDIR}/keymap \
+ ${datadir}/${BPN}/${VIMDIR}/lang \
+ ${datadir}/${BPN}/${VIMDIR}/macros \
+ ${datadir}/${BPN}/${VIMDIR}/plugin \
+ ${datadir}/${BPN}/${VIMDIR}/print \
+ ${datadir}/${BPN}/${VIMDIR}/spell \
+ ${datadir}/icons \
+"
+
+RDEPENDS_${BPN} = "ncurses-terminfo-base"
+# Recommend that runtime data is installed along with vim
+RRECOMMENDS_${BPN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common"
+
+ALTERNATIVE_${PN} = "vi vim xxd"
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}"
+ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi"
+ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim"
+ALTERNATIVE_TARGET[xxd] = "${bindir}/xxd"
+ALTERNATIVE_LINK_NAME[xxd] = "${bindir}/xxd"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
deleted file mode 100644
index 65fc974..0000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "C++/Boost Asio based websocket client/server library."
-SECTION = "libs/network"
-HOMEPAGE = "https://github.com/zaphoyd/websocketpp"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
-DEPENDS = "openssl boost zlib"
-
-SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
-
-# tag 0.7.0
-SRCREV= "378437aecdcb1dfe62096ffd5d944bf1f640ccc3"
-
-SRC_URI += "file://0001-Fix-issue-599.patch \
- file://9ddb300d874a30db35e3ad58f188944bef0bf31b.patch \
- file://4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch \
- file://disable-tests.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
new file mode 100644
index 0000000..75a5f88
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "C++/Boost Asio based websocket client/server library."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/zaphoyd/websocketpp"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
+DEPENDS = "openssl boost zlib"
+
+SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
+
+# tag 0.8.1
+SRCREV= "c6d7e295bf5a0ab9b5f896720cc1a0e0fdc397a7"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-test/catch2/catch2/0001-Fix-convert-from-char-on-ARM-build.patch b/meta-openembedded/meta-oe/recipes-test/catch2/catch2/0001-Fix-convert-from-char-on-ARM-build.patch
new file mode 100644
index 0000000..3073775
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-test/catch2/catch2/0001-Fix-convert-from-char-on-ARM-build.patch
@@ -0,0 +1,46 @@
+From 5729874fa5059c39aa97cfa08fddf107b7a65c9e Mon Sep 17 00:00:00 2001
+From: Miguel Gaio <mgaio35@gmail.com>
+Date: Wed, 3 Oct 2018 10:22:16 +0200
+Subject: [PATCH] Fix convert from char on ARM build
+
+Some platforms set the signedness of char to unsigned (eg. ARM).
+Convert from char should not assume the signedness of char.
+
+Fix build issue with -Werror,-Wtautological-unsigned-zero-compare flags.
+
+Signed-off-by: Miguel Gaio <mgaio35@gmail.com>
+
+Upstream-Status: Accepted [Commit f1faaa9c107113692301ad8bb56084460ef1a2ff]
+
+Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
+---
+ include/internal/catch_tostring.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/include/internal/catch_tostring.cpp b/include/internal/catch_tostring.cpp
+index 4e0c027d..8cbabbf2 100644
+--- a/include/internal/catch_tostring.cpp
++++ b/include/internal/catch_tostring.cpp
+@@ -205,7 +205,7 @@ std::string StringMaker<bool>::convert(bool b) {
+ return b ? "true" : "false";
+ }
+
+-std::string StringMaker<char>::convert(char value) {
++std::string StringMaker<signed char>::convert(signed char value) {
+ if (value == '\r') {
+ return "'\\r'";
+ } else if (value == '\f') {
+@@ -222,8 +222,8 @@ std::string StringMaker<char>::convert(char value) {
+ return chstr;
+ }
+ }
+-std::string StringMaker<signed char>::convert(signed char c) {
+- return ::Catch::Detail::stringify(static_cast<char>(c));
++std::string StringMaker<char>::convert(char c) {
++ return ::Catch::Detail::stringify(static_cast<signed char>(c));
+ }
+ std::string StringMaker<unsigned char>::convert(unsigned char c) {
+ return ::Catch::Detail::stringify(static_cast<char>(c));
+--
+2.19.1
+
diff --git a/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.4.1.bb b/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.4.1.bb
new file mode 100644
index 0000000..0183c2e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.4.1.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "A modern, C++-native, header-only, test framework for unit-tests, \
+TDD and BDD - using C++11, C++14, C++17 and later."
+AUTHOR = "Phil Nash, Martin Horenovsky and others"
+HOMEPAGE = "https://github.com/catchorg/Catch2"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+SRC_URI = "git://github.com/catchorg/Catch2.git \
+ file://0001-Fix-convert-from-char-on-ARM-build.patch"
+SRCREV = "9e1bdca4667295fcb16265eae00efa8423f07007"
+
+S = "${WORKDIR}/git"
+
+inherit cmake python3native
+
+# Header-only library
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
+
+do_install_append() {
+ rm ${D}/${datadir}/Catch2/lldbinit
+ rm ${D}/${datadir}/Catch2/gdbinit
+ rmdir ${D}/${datadir}/Catch2/
+}
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch
index 192e05f..c2d679a 100644
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch
@@ -1,18 +1,19 @@
-From 232daf5fca6fb52cced5e810f2601fe1a71b96d8 Mon Sep 17 00:00:00 2001
+From 613e5cfe7751068062cc92f83870e436669fc0a8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 8 Jun 2017 16:49:50 -0700
-Subject: [PATCH 1/3] Add correct printf qualifier for off_t
+Subject: [PATCH] Add correct printf qualifier for off_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/bios/ebda_region/ebda_region.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-Index: git/src/bios/ebda_region/ebda_region.c
-===================================================================
---- git.orig/src/bios/ebda_region/ebda_region.c
-+++ git/src/bios/ebda_region/ebda_region.c
-@@ -83,9 +83,9 @@ static int ebda_test1(fwts_framework *fw
+---
+ src/bios/ebda_region/ebda_region.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/bios/ebda_region/ebda_region.c b/src/bios/ebda_region/ebda_region.c
+index 16c39357..ad6d635c 100644
+--- a/src/bios/ebda_region/ebda_region.c
++++ b/src/bios/ebda_region/ebda_region.c
+@@ -83,9 +83,9 @@ static int ebda_test1(fwts_framework *fw)
if ((entry != NULL) &&
(entry->type == FWTS_MEMORY_MAP_RESERVED ||
entry->type == FWTS_MEMORY_MAP_ACPI)) {
@@ -24,7 +25,7 @@
(entry->end_address - entry->start_address) / 1024,
memory_map_name,
entry->start_address,
-@@ -93,8 +93,8 @@ static int ebda_test1(fwts_framework *fw
+@@ -93,8 +93,8 @@ static int ebda_test1(fwts_framework *fw)
} else
fwts_failed(fw, LOG_LEVEL_MEDIUM,
"EBDAMappedNotReserved",
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch
index 8ad0789..4baefe4 100644
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch
@@ -1,18 +1,19 @@
-From 100a107a53d5dc9b0554252ac5dbf2c9330615e9 Mon Sep 17 00:00:00 2001
+From ed988c27efde5355c3ba9d0de8a14a4a40f798cc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 6 Jun 2017 07:25:09 -0700
-Subject: [PATCH 1/3] Include poll.h instead of deprecated sys/poll.h
+Subject: [PATCH] Include poll.h instead of deprecated sys/poll.h
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/lib/src/fwts_ipmi.c | 3 ++-
src/lib/src/fwts_pipeio.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/lib/src/fwts_ipmi.c b/src/lib/src/fwts_ipmi.c
-index cbb27611..70d11cfa 100644
+index a4c8a511..e298969e 100644
--- a/src/lib/src/fwts_ipmi.c
+++ b/src/lib/src/fwts_ipmi.c
@@ -18,10 +18,11 @@
@@ -29,7 +30,7 @@
#include <linux/ipmi.h>
diff --git a/src/lib/src/fwts_pipeio.c b/src/lib/src/fwts_pipeio.c
-index fd719640..bdc5b2ea 100644
+index 3b3cfaff..289564d1 100644
--- a/src/lib/src/fwts_pipeio.c
+++ b/src/lib/src/fwts_pipeio.c
@@ -30,9 +30,9 @@
@@ -43,6 +44,3 @@
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
---
-2.13.0
-
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch
new file mode 100644
index 0000000..611ccc8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch
@@ -0,0 +1,52 @@
+From 475979cf5c1af978f4e8409666365ec75b3320ea Mon Sep 17 00:00:00 2001
+From: Benjamin Berg <bberg@redhat.com>
+Date: Mon, 21 Aug 2017 10:34:40 +0200
+Subject: [PATCH] Remove -Werror from build
+
+Upstream-Status: Pending
+
+---
+ src/Makefile.am | 2 +-
+ src/lib/src/Makefile.am | 2 +-
+ src/utilities/Makefile.am | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 4daa9e8f..873f23eb 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -14,7 +14,7 @@ AM_CPPFLAGS = \
+ `pkg-config --silence-errors --cflags json` \
+ `pkg-config --silence-errors --cflags json-c` \
+ -pthread `pkg-config --cflags glib-2.0 gio-2.0` \
+- -Wall -Werror -Wextra
++ -Wall -Wextra
+
+ bin_PROGRAMS = fwts
+
+diff --git a/src/lib/src/Makefile.am b/src/lib/src/Makefile.am
+index fa232451..082403a2 100644
+--- a/src/lib/src/Makefile.am
++++ b/src/lib/src/Makefile.am
+@@ -24,7 +24,7 @@ AM_CPPFLAGS = \
+ `pkg-config --silence-errors --cflags json-c` \
+ `pkg-config --cflags glib-2.0 gio-2.0` \
+ -DDATAROOTDIR=\"$(datarootdir)\" \
+- -Wall -Werror -Wextra
++ -Wall -Wextra
+
+ pkglib_LTLIBRARIES = libfwts.la
+
+diff --git a/src/utilities/Makefile.am b/src/utilities/Makefile.am
+index aa37de55..4d5297cc 100644
+--- a/src/utilities/Makefile.am
++++ b/src/utilities/Makefile.am
+@@ -16,7 +16,7 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #
+
+-AM_CPPFLAGS = -Wall -Werror -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \
++AM_CPPFLAGS = -Wall -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \
+ `pkg-config --silence-errors --cflags json` \
+ `pkg-config --silence-errors --cflags json-c`
+
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch
index a3cc1ff..ae3665b 100644
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch
@@ -1,9 +1,10 @@
-From 953cff93c85d3cfd5cbcac56e14443dc5f6e5fbd Mon Sep 17 00:00:00 2001
+From 5bd05ad8569880985ddf6d4c06ed927d388c297f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 19 Oct 2016 01:57:16 +0000
Subject: [PATCH] ignore constant-logical-operand warning with clang
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/dmi/dmicheck/dmicheck.c | 3 +++
src/lib/src/fwts_acpi_tables.c | 5 +++++
@@ -11,10 +12,10 @@
3 files changed, 13 insertions(+)
diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c
-index ecd98223..7fca4a64 100644
+index 3cca9db9..60fb758f 100644
--- a/src/dmi/dmicheck/dmicheck.c
+++ b/src/dmi/dmicheck/dmicheck.c
-@@ -209,6 +209,8 @@ static const char *uuid_patterns[] = {
+@@ -211,6 +211,8 @@ static const char *uuid_patterns[] = {
"0A0A0A0A-0A0A-0A0A-0A0A-0A0A0A0A0A0A",
NULL,
};
@@ -23,19 +24,19 @@
static const fwts_chassis_type_map fwts_dmi_chassis_type[] = {
{ "Invalid", FWTS_SMBIOS_CHASSIS_INVALID },
-@@ -245,6 +247,7 @@ static const fwts_chassis_type_map fwts_dmi_chassis_type[] = {
- { "Convertible", FWTS_SMBIOS_CHASSIS_CONVERTIBLE },
- { "Detachable", FWTS_SMBIOS_CHASSIS_DETACHABLE },
+@@ -251,6 +253,7 @@ static const fwts_chassis_type_map fwts_dmi_chassis_type[] = {
+ { "Mini PC", FWTS_SMBIOS_CHASSIS_MINI_PC },
+ { "Stick PC", FWTS_SMBIOS_CHASSIS_STICK_PC },
};
+#pragma clang diagnostic pop
/* Remapping table from buggy version numbers to correct values */
static const fwts_dmi_version dmi_versions[] = {
diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
-index 30b4060e..d5339bf7 100644
+index c7ba59be..bdd224aa 100644
--- a/src/lib/src/fwts_acpi_tables.c
+++ b/src/lib/src/fwts_acpi_tables.c
-@@ -394,10 +394,14 @@ static int fwts_acpi_handle_fadt(
+@@ -393,10 +393,14 @@ static int fwts_acpi_handle_fadt(
/* Determine FACS addr and load it.
* Will ignore the missing FACS in the hardware-reduced mode.
*/
@@ -50,7 +51,7 @@
if (result != FWTS_OK) {
if ((result == FWTS_NULL_POINTER) &&
fwts_acpi_is_reduced_hardware(fadt)) {
-@@ -416,6 +420,7 @@ static int fwts_acpi_handle_fadt(
+@@ -415,6 +419,7 @@ static int fwts_acpi_handle_fadt(
return FWTS_ERROR;
}
return FWTS_OK;
@@ -59,7 +60,7 @@
/*
diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c
-index cdfd7aa3..001e8cc8 100644
+index c2031741..7a33d19d 100644
--- a/src/uefi/uefirtauthvar/uefirtauthvar.c
+++ b/src/uefi/uefirtauthvar/uefirtauthvar.c
@@ -142,6 +142,9 @@ static int uefirtauthvar_deinit(fwts_framework *fw)
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch
deleted file mode 100644
index 35ce883..0000000
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 25f18b9ac37960dc12a3b648a5c866bd56ef2cbe Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 8 Jun 2017 16:50:23 -0700
-Subject: [PATCH 2/3] Add C99 defined format for printing uint64_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/opal/reserv_mem.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/opal/reserv_mem.c b/src/opal/reserv_mem.c
-index eeec2947..f0672e05 100644
---- a/src/opal/reserv_mem.c
-+++ b/src/opal/reserv_mem.c
-@@ -185,7 +185,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
- regions[j].start = (uint64_t)be64toh(ranges[2 * j]);
- regions[j].len = (uint64_t)be64toh(ranges[2 * j + 1]);
- fwts_log_info(fw, "Region name %80s"
-- " start: 0x%08lx, len: 0x%08lx\n",
-+ " start: 0x%08" PRIx64 ", len: 0x%08" PRIx64 "\n",
- regions[j].name, regions[j].start, regions[j].len);
- }
-
-@@ -248,7 +248,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
- fwts_failed(fw, LOG_LEVEL_MEDIUM,
- "ImageSizeMismatch",
- "Mismatch in homer-image size, "
-- "expected: 0x%lx, actual: 0x%lx",
-+ "expected: 0x%" PRIx64 ", actual: 0x%" PRIx64 "",
- configstruct.homer, regions[j].len);
- ok = false;
- } else
-@@ -261,7 +261,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
- fwts_failed(fw, LOG_LEVEL_MEDIUM,
- "ImageSizeMismatch",
- "Mismatch in slw-image size, "
-- "expected: 0x%lx, actual: 0x%lx",
-+ "expected: 0x%" PRIx64 ", actual: 0x%" PRIx64 "",
- configstruct.slw, regions[j].len);
- ok = false;
- } else
-@@ -274,7 +274,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
- fwts_failed(fw, LOG_LEVEL_MEDIUM,
- "ImageSizeMismatch",
- "Mismatch in occ-common-area size, "
-- "expected: 0x%lx, actual: 0x%lx",
-+ "expected: 0x%" PRIx64", actual: 0x%" PRIx64"",
- configstruct.occ_common,
- regions[j].len);
- ok = false;
---
-2.13.1
-
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
index 3b83ca5..b45e46a 100644
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
@@ -1,7 +1,7 @@
-From 0e89127cd02ecd5ea4506b935cb2b59eb94107d2 Mon Sep 17 00:00:00 2001
+From 1112e51d240a206bdcf253878ef1f4963b92da8a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 6 Jun 2017 07:37:20 -0700
-Subject: [PATCH 2/3] Define __SWORD_TYPE if not defined by libc
+Subject: [PATCH] Define __SWORD_TYPE if not defined by libc
__SWORD_TYPE is internal to glibc, therefore
check and define it if needed e.g. on musl
@@ -9,12 +9,13 @@
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/lib/src/fwts_uefi.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/lib/src/fwts_uefi.c b/src/lib/src/fwts_uefi.c
-index 1f9d31fa..2d925f8d 100644
+index 544145fa..460b0b77 100644
--- a/src/lib/src/fwts_uefi.c
+++ b/src/lib/src/fwts_uefi.c
@@ -59,6 +59,10 @@ typedef struct {
@@ -28,6 +29,3 @@
/* File system magic numbers */
#define PSTOREFS_MAGIC ((__SWORD_TYPE)0x6165676C)
#define EFIVARFS_MAGIC ((__SWORD_TYPE)0xde5e81e4)
---
-2.13.0
-
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch
index f84fbff..1d8c620 100644
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch
@@ -1,7 +1,7 @@
-From 0857269d5a053b5b4c31cfa01b6501526b24035f Mon Sep 17 00:00:00 2001
+From 244e9551ab9bbc1dfa91d19cd472ef254a94ae41 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 6 Jun 2017 07:39:28 -0700
-Subject: [PATCH 3/3] Undefine PAGE_SIZE
+Subject: [PATCH] Undefine PAGE_SIZE
musl defines PAGE_SIZE and build complains
of multiple definitions
@@ -9,12 +9,13 @@
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/lib/src/fwts_acpi_tables.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
-index 1d4fc705..71023ad2 100644
+index bdd224aa..58e982a6 100644
--- a/src/lib/src/fwts_acpi_tables.c
+++ b/src/lib/src/fwts_acpi_tables.c
@@ -42,6 +42,7 @@
@@ -25,6 +26,3 @@
#define PAGE_SIZE (4096)
static fwts_acpi_table_info tables[ACPI_MAX_TABLES];
---
-2.13.0
-
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
index 3cd3fbb..bebbfa4 100644
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
@@ -1,13 +1,14 @@
-From d0d76820efe51dd404d381fc4c46544008e757dd Mon Sep 17 00:00:00 2001
+From 1848b8f8b9be500046ca5d632789a068d6151815 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 8 Jun 2017 16:50:59 -0700
-Subject: [PATCH 3/3] use intptr_t to fix pointer-to-int-cast issues
+Subject: [PATCH] use intptr_t to fix pointer-to-int-cast issues
uintptr_t is guaranteed to be wide enough that
converting a void* to uintptr_t and back again
will yield the original pointer value
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/lib/src/fwts_acpi_tables.c | 4 ++--
src/lib/src/fwts_mmap.c | 2 +-
@@ -15,19 +16,19 @@
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
-index 832f8d66..d0006529 100644
+index 58e982a6..6522032f 100644
--- a/src/lib/src/fwts_acpi_tables.c
+++ b/src/lib/src/fwts_acpi_tables.c
-@@ -150,7 +150,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_get_rsdp(fwts_framework *fw, void *addr,
- fwts_acpi_table_rsdp *rsdp = NULL;
- *rsdp_len = 0;
+@@ -156,7 +156,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_get_rsdp(fwts_framework *fw, void *addr,
+ return NULL;
+ }
- if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
+ if ((mem = fwts_mmap((uintptr_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
return NULL;
- if (fwts_safe_memread(mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) {
-@@ -456,7 +456,7 @@ static int fwts_acpi_load_tables_from_firmware(fwts_framework *fw)
+ if (fwts_safe_memcpy(rsdp, mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) {
+@@ -455,7 +455,7 @@ static int fwts_acpi_load_tables_from_firmware(fwts_framework *fw)
if ((rsdp = fwts_acpi_get_rsdp(fw, rsdp_addr, &rsdp_len)) == NULL)
return FWTS_ERROR;
@@ -37,7 +38,7 @@
/* Load any tables from XSDT if it's valid */
if (rsdp->xsdt_address) {
diff --git a/src/lib/src/fwts_mmap.c b/src/lib/src/fwts_mmap.c
-index a09f688e..9fe6329a 100644
+index e28abf87..2180b2cc 100644
--- a/src/lib/src/fwts_mmap.c
+++ b/src/lib/src/fwts_mmap.c
@@ -81,7 +81,7 @@ int fwts_munmap(void *mem, const size_t size)
@@ -50,27 +51,24 @@
if (munmap((void *)((uint8_t *)mem - offset), size + offset) < 0)
return FWTS_ERROR;
diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c
-index 8d0ea39b..63b4bf25 100644
+index e5b3c774..c8134926 100644
--- a/src/lib/src/fwts_smbios.c
+++ b/src/lib/src/fwts_smbios.c
-@@ -54,7 +54,7 @@ static void *fwts_smbios_find_entry_uefi(fwts_framework *fw, fwts_smbios_entry *
- if ((addr = fwts_scan_efi_systab("SMBIOS")) != NULL) {
+@@ -55,7 +55,7 @@ static void *fwts_smbios_find_entry_uefi(fwts_framework *fw, fwts_smbios_entry *
fwts_smbios_entry *mapped_entry;
+ const size_t size = sizeof(fwts_smbios_entry);
-- if ((mapped_entry = fwts_mmap((off_t)addr, sizeof(fwts_smbios_entry))) != FWTS_MAP_FAILED) {
-+ if ((mapped_entry = fwts_mmap((uintptr_t)addr, sizeof(fwts_smbios_entry))) != FWTS_MAP_FAILED) {
- *entry = *mapped_entry;
- (void)fwts_munmap(mapped_entry, sizeof(fwts_smbios_entry));
- *type = FWTS_SMBIOS;
-@@ -84,7 +84,7 @@ static void *fwts_smbios30_find_entry_uefi(fwts_framework *fw, fwts_smbios30_ent
- if ((addr = fwts_scan_efi_systab("SMBIOS3")) != NULL) {
+- if ((mapped_entry = fwts_mmap((off_t)addr, size)) != FWTS_MAP_FAILED) {
++ if ((mapped_entry = fwts_mmap((uintptr_t)addr, size)) != FWTS_MAP_FAILED) {
+ if (fwts_safe_memcpy(entry, mapped_entry, size) == FWTS_OK) {
+ (void)fwts_munmap(mapped_entry, size);
+ *type = FWTS_SMBIOS;
+@@ -91,7 +91,7 @@ static void *fwts_smbios30_find_entry_uefi(fwts_framework *fw, fwts_smbios30_ent
fwts_smbios30_entry *mapped_entry;
+ const size_t size = sizeof(fwts_smbios30_entry);
-- if ((mapped_entry = fwts_mmap((off_t)addr, sizeof(fwts_smbios30_entry))) != FWTS_MAP_FAILED) {
-+ if ((mapped_entry = fwts_mmap((uintptr_t)addr, sizeof(fwts_smbios30_entry))) != FWTS_MAP_FAILED) {
- *entry = *mapped_entry;
- (void)fwts_munmap(mapped_entry, sizeof(fwts_smbios30_entry));
- return addr;
---
-2.13.1
-
+- if ((mapped_entry = fwts_mmap((off_t)addr, size)) != FWTS_MAP_FAILED) {
++ if ((mapped_entry = fwts_mmap((uintptr_t)addr, size)) != FWTS_MAP_FAILED) {
+ if (fwts_safe_memread(mapped_entry, size) == FWTS_OK) {
+ *entry = *mapped_entry;
+ (void)fwts_munmap(mapped_entry, size);
diff --git a/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb b/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb
index 87a23af..d3fb644 100644
--- a/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb
+++ b/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb
@@ -5,27 +5,27 @@
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519"
-PV = "17.03.00+git${SRCPV}"
+PV = "18.05.00+git${SRCPV}"
-SRCREV = "0153ea51cb648b3067a1b327eee6a075b6cfa330"
+SRCREV = "b0ec7aa2ef743d113fd8c5e57c0ca3d5edd86f0e"
SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git \
file://0001-ignore-constant-logical-operand-warning-with-clang.patch \
file://0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch \
file://0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \
file://0003-Undefine-PAGE_SIZE.patch \
file://0001-Add-correct-printf-qualifier-for-off_t.patch \
- file://0002-Add-C99-defined-format-for-printing-uint64_t.patch \
file://0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \
+ file://0001-Remove-Werror-from-build.patch \
"
S = "${WORKDIR}/git"
COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux"
-DEPENDS = "libpcre json-c glib-2.0 dtc"
+DEPENDS = "libpcre json-c glib-2.0 dtc bison-native"
DEPENDS_append_libc-musl = " libexecinfo"
-inherit autotools pkgconfig
+inherit autotools bash-completion pkgconfig
CFLAGS += "-I${STAGING_INCDIR}/json-c -Wno-error=unknown-pragmas"
LDFLAGS_append_libc-musl = " -lexecinfo"
diff --git a/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb b/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb
index 1ee6573..0929090 100644
--- a/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb
+++ b/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb
@@ -63,3 +63,6 @@
done
}
RDEPENDS_${PN} +="bash"
+
+# http://errors.yoctoproject.org/Errors/Details/186956/
+EXCLUDE_FROM_WORLD_libc-musl = "1"
diff --git a/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Revert-Makefile-force-sync-after-build-in-case-reboo.patch b/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Revert-Makefile-force-sync-after-build-in-case-reboo.patch
new file mode 100644
index 0000000..469791d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Revert-Makefile-force-sync-after-build-in-case-reboo.patch
@@ -0,0 +1,31 @@
+From 7c97710bfc44d895b7111bef9c55866f00a3589c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Aug 2018 11:54:27 -0700
+Subject: [PATCH] Revert "Makefile: force sync after build in case reboot loses
+ executable"
+
+This reverts commit ae6322b1baea56a589207c96e358daae8edd0a8f.
+
+Not needed for cross-builds
+
+Upstream-Status: Inappropriate [Cross compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index c0db72c0..5781dda6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -348,7 +348,6 @@ endif
+ stress-ng: $(OBJS)
+ @echo "LD $@"
+ @$(CC) $(CPPFLAGS) $(CFLAGS) $(OBJS) -lm $(LDFLAGS) -o $@
+- @sync
+
+ makeconfig:
+ @if [ ! -s config ]; then \
+--
+2.17.0
+
diff --git a/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch b/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
index d604f86..c0b3449 100644
--- a/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
+++ b/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
@@ -1,11 +1,13 @@
-From 784dcd09d3f266e271d007f4fd257e85036872ca Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
-Date: Tue, 17 Oct 2017 10:13:20 -0500
+From 9bcb4e170f01dbe0a9e7bf6b899c5d9b5283d4c6 Mon Sep 17 00:00:00 2001
+From: Randy MacLeod <Randy.MacLeod@windriver.com>
+Date: Sun, 11 Nov 2018 23:00:53 -0500
Subject: [PATCH] Several changes to fix musl build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+Rebased patch for:
+
stress-{context, stackmmap}.c: Set tests to non-implemented because uses
swapcontext, musl provide the definition but not the implementation due
to that functions are pre-POSIX and set to be deprecated.
@@ -19,20 +21,19 @@
Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Upstream-status: Pending
-
---
cache.c | 4 ++++
stress-madvise.c | 1 +
- stress-malloc.c | 2 +-
stress-pty.c | 18 ------------------
stress-resources.c | 1 -
stress-stackmmap.c | 2 +-
- 6 files changed, 7 insertions(+), 21 deletions(-)
+ 5 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/cache.c b/cache.c
-index fbf7674..936c1ff 100644
+index e8a0f791..4c7bb486 100644
--- a/cache.c
+++ b/cache.c
@@ -28,6 +28,10 @@ typedef struct {
@@ -47,10 +48,10 @@
#define SYS_CPU_PREFIX "/sys/devices/system/cpu"
#define GLOB_PATTERN SYS_CPU_PREFIX "/cpu[0-9]*"
diff --git a/stress-madvise.c b/stress-madvise.c
-index 9e71e11..ddf8d2d 100644
+index b2e3497f..77e43a91 100644
--- a/stress-madvise.c
+++ b/stress-madvise.c
-@@ -147,6 +147,7 @@ static int stress_random_advise(const args_t *args)
+@@ -146,6 +146,7 @@ static int stress_random_advise(const args_t *args)
#if defined(MADV_SOFT_OFFLINE)
if (advise == MADV_SOFT_OFFLINE) {
static int soft_offline_count;
@@ -58,21 +59,8 @@
/* ..and minimize number of soft offline pages */
if ((soft_offline_count >= NUM_SOFT_OFFLINE_MAX) ||
-diff --git a/stress-malloc.c b/stress-malloc.c
-index a46b8c6..427827a 100644
---- a/stress-malloc.c
-+++ b/stress-malloc.c
-@@ -99,7 +99,7 @@ int stress_malloc(const args_t *args)
- malloc_max = MIN_MALLOC_MAX;
- }
-
--#if defined(__GNUC__) && defined(__linux__)
-+#if defined(__GNUC__) && defined(__linux__) && defined(M_MMAP_THRESHOLD)
- if (get_setting("malloc-threshold", &malloc_threshold))
- (void)mallopt(M_MMAP_THRESHOLD, (int)malloc_threshold);
- #endif
diff --git a/stress-pty.c b/stress-pty.c
-index 1bd1fbd..b1fe573 100644
+index 4dd88ab9..c79a7021 100644
--- a/stress-pty.c
+++ b/stress-pty.c
@@ -26,7 +26,6 @@
@@ -83,7 +71,7 @@
#include <termios.h>
typedef struct {
-@@ -108,7 +107,6 @@ int stress_pty(const args_t *args)
+@@ -111,7 +110,6 @@ static int stress_pty(const args_t *args)
*/
for (i = 0; i < n; i++) {
struct termios ios;
@@ -91,7 +79,7 @@
struct winsize ws;
int arg;
-@@ -130,22 +128,6 @@ int stress_pty(const args_t *args)
+@@ -133,22 +131,6 @@ static int stress_pty(const args_t *args)
if (ioctl(ptys[i].slave, TCSETSF, &ios) < 0)
pr_fail_err("ioctl TCSETSF on slave pty");
#endif
@@ -115,10 +103,10 @@
if (ioctl(ptys[i].slave, TIOCGLCKTRMIOS, &ios) < 0)
pr_fail_err("ioctl TIOCGLCKTRMIOS on slave pty");
diff --git a/stress-resources.c b/stress-resources.c
-index 958c99a..af79abd 100644
+index f3dcfb38..86f9a5ba 100644
--- a/stress-resources.c
+++ b/stress-resources.c
-@@ -31,7 +31,6 @@
+@@ -28,7 +28,6 @@
#include <sys/inotify.h>
#endif
#if defined(__linux__)
@@ -127,7 +115,7 @@
#endif
#if defined(HAVE_LIB_PTHREAD) && defined(__linux__)
diff --git a/stress-stackmmap.c b/stress-stackmmap.c
-index 9c83a69..2984f09 100644
+index c2f4c31d..54308777 100644
--- a/stress-stackmmap.c
+++ b/stress-stackmmap.c
@@ -24,7 +24,7 @@
@@ -139,3 +127,6 @@
#include <ucontext.h>
+--
+2.17.0
+
diff --git a/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch b/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch
deleted file mode 100644
index ed3287e..0000000
--- a/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From faadbc147394cea9278bc2494f33e3521d88e742 Mon Sep 17 00:00:00 2001
-From: Tim Orling <timothy.t.orling@linux.intel.com>
-Date: Tue, 9 Jan 2018 18:38:45 -0800
-Subject: [PATCH] stress-fcntl: fix build for musl
-
-Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
-
-Upstream-status: Pending
-
----
- stress-fcntl.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/stress-fcntl.c b/stress-fcntl.c
-index 2ea867b..e91b345 100644
---- a/stress-fcntl.c
-+++ b/stress-fcntl.c
-@@ -415,6 +415,7 @@ ofd_lock_abort: { /* Nowt */ }
- #if (defined(F_GET_FILE_RW_HINT) && defined(F_SET_FILE_RW_HINT)) | \
- (defined(F_GET_RW_HINT) && defined(F_SET_RW_HINT))
- {
-+ int ret;
- size_t i;
- unsigned long hint;
- static const unsigned long hints[] = {
diff --git a/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb b/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb
deleted file mode 100644
index 7fab430..0000000
--- a/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A tool to load and stress a computer system"
-HOMEPAGE = "http://kernel.ubuntu.com/~cking/stress-ng/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "zlib libaio"
-
-SRC_URI = "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \
- file://0002-stress-fcntl-fix-build-for-musl.patch \
- "
-SRC_URI_append_libc-musl = " \
- file://0001-Several-changes-to-fix-musl-build.patch \
- "
-SRC_URI[md5sum] = "1f8b6c2c2830704d2a2814c16082d48e"
-SRC_URI[sha256sum] = "02cac34a5cb041197af60c1867844c6cbb089a6d10a38cdcf7b8f27bfaa6ef8f"
-
-UPSTREAM_CHECK_URI ?= "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/"
-UPSTREAM_CHECK_REGEX ?= "(?P<pver>\d+(\.\d+)+)\.tar"
-
-CFLAGS += "-Wall -Wextra -DVERSION='"$(VERSION)"'"
-
-do_install_append() {
- install -d ${D}${bindir}
- install -m 755 ${S}/stress-ng ${D}${bindir}/stress-ng
-}
diff --git a/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.45.bb b/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.45.bb
new file mode 100644
index 0000000..3e8f2d4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.45.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A tool to load and stress a computer system"
+HOMEPAGE = "http://kernel.ubuntu.com/~cking/stress-ng/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "zlib libaio"
+
+SRC_URI = "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \
+ file://0001-Revert-Makefile-force-sync-after-build-in-case-reboo.patch \
+ "
+SRC_URI_append_libc-musl = " \
+ file://0001-Several-changes-to-fix-musl-build.patch \
+ "
+
+SRC_URI[md5sum] = "b03744c2eb68bf7e9a300e78e397f348"
+SRC_URI[sha256sum] = "0741e3004bf590bb7af3db979a46fe89bee7aaad6065cd1d87d0b7fa49046cb2"
+
+UPSTREAM_CHECK_URI ?= "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/"
+UPSTREAM_CHECK_REGEX ?= "(?P<pver>\d+(\.\d+)+)\.tar"
+
+CFLAGS += "-Wall -Wextra -DVERSION='"$(VERSION)"'"
+
+do_install_append() {
+ install -d ${D}${bindir}
+ install -m 755 ${S}/stress-ng ${D}${bindir}/stress-ng
+}
diff --git a/meta-openembedded/meta-perl/README b/meta-openembedded/meta-perl/README
index 67f2910..3c787f4 100644
--- a/meta-openembedded/meta-perl/README
+++ b/meta-openembedded/meta-perl/README
@@ -52,7 +52,7 @@
This layer depends on:
URI: git://git.openembedded.org/openembedded-core
- branch: master
+ branch: thud
revision: HEAD
prio: default
@@ -75,14 +75,12 @@
-----------
Send patches / pull requests to openembedded-devel@lists.openembedded.org with
-'[meta-perl]' in the subject.
+'[meta-perl][thud]' in the subject.
When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-perl][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-perl][thud][PATCH'
-Layer maintainers:
- Hongxu Jia <hongxu.jia@windriver.com>
- Tim "moto-timo" Orling <ticotimo@gmail.com>
+Thud maintainers: Armin kuster <akuster808@gmail.com>
License
-------
diff --git a/meta-openembedded/meta-perl/conf/layer.conf b/meta-openembedded/meta-perl/conf/layer.conf
index ece6dd0..b2bb379 100644
--- a/meta-openembedded/meta-perl/conf/layer.conf
+++ b/meta-openembedded/meta-perl/conf/layer.conf
@@ -15,4 +15,4 @@
LAYERDEPENDS_perl-layer = "core openembedded-layer"
-LAYERSERIES_COMPAT_perl-layer = "sumo"
+LAYERSERIES_COMPAT_perl-layer = "thud"
diff --git a/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb b/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb
deleted file mode 100644
index b8766a7..0000000
--- a/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-SUMMARY = "Analyzes log files and sends noticeable events as email"
-DESCRIPTION = "\
-Logcheck is a simple utility which is designed to allow a system administrator \
-to view the log-files which are produced upon hosts under their control. \
-It does this by mailing summaries of the log-files to them, after first \
-filtering out "normal" entries. \
-Normal entries are entries which match one of the many included regular \
-expression files contain in the database."
-SECTION = "Applications/System"
-HOMEPAGE = "http://logcheck.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c93c0550bd3173f4504b2cbd8991e50b"
-
-SRC_URI = "git://git.debian.org/git/logcheck/logcheck.git \
- file://99_logcheck \
-"
-SRCREV = "0a5865d80fa34c55387a1917a3e6f885bcff7f1d"
-
-S = "${WORKDIR}/git"
-
-inherit useradd
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "-m -g ${BPN} -G adm -r -d ${localstatedir}/lib/${BPN} \
- -s /bin/false -c 'logcheck account' ${BPN}"
-GROUPADD_PARAM_${PN} = "-r ${BPN}"
-
-do_install() {
- # Fix QA Issue
- sed -i '/install -d $(DESTDIR)\/var\/lock\/logcheck/s/^/#/' Makefile
-
- # "make install" do not install the manpages. Install them manually.
- install -m 755 -d ${D}${mandir}/man1
- install -m 755 -d ${D}${mandir}/man8
- install -m 644 docs/logcheck-test.1 ${D}${mandir}/man1/
- install -m 644 docs/logtail.8 ${D}${mandir}/man8/
- install -m 644 docs/logtail2.8 ${D}${mandir}/man8/
-
- install -m 755 -d ${D}${sysconfdir}/cron.d
- install -m 644 debian/logcheck.cron.d ${D}${sysconfdir}/cron.d/logcheck
- install -m 755 -d ${D}/var/lib/logcheck
-
- oe_runmake install DESTDIR=${D}
-
- # install header.txt for generated mails
- install -m 0644 ${S}/debian/header.txt ${D}${sysconfdir}/${BPN}
-
- chown -R ${BPN}:${BPN} ${D}${localstatedir}/lib/${BPN}
- chown -R root:${BPN} ${D}${sysconfdir}/${BPN}
-
- # Don't install /var/lock when populating rootfs. Do it through volatile
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/99_logcheck ${D}${sysconfdir}/default/volatiles
- fi
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /var/lock/logcheck 0755 logcheck logcheck -" \
- > ${D}${sysconfdir}/tmpfiles.d/logcheck.conf
- fi
-}
-
-VIRTUAL-RUNTIME_syslog ??= "rsyslog"
-
-RDEPENDS_${PN} = "\
- bash \
- cronie \
- debianutils-run-parts \
- grep \
- lockfile-progs \
- mime-construct \
- perl \
- perl-module-file-basename \
- perl-module-getopt-std \
- perl-module-file-glob \
- ${VIRTUAL-RUNTIME_syslog} \
-"
-
-FILES_${PN} += "${datadir}/logtail"
diff --git a/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.19.bb b/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.19.bb
new file mode 100644
index 0000000..873ac2b
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.19.bb
@@ -0,0 +1,78 @@
+SUMMARY = "Analyzes log files and sends noticeable events as email"
+DESCRIPTION = "\
+Logcheck is a simple utility which is designed to allow a system administrator \
+to view the log-files which are produced upon hosts under their control. \
+It does this by mailing summaries of the log-files to them, after first \
+filtering out "normal" entries. \
+Normal entries are entries which match one of the many included regular \
+expression files contain in the database."
+SECTION = "Applications/System"
+HOMEPAGE = "http://logcheck.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/l/${BPN}/${BPN}_${PV}.tar.xz \
+ file://99_logcheck \
+"
+SRC_URI[md5sum] = "7b50d10da6f185228627c55fdd51f624"
+SRC_URI[sha256sum] = "06294c092b2115eca3d054c57778718c91dd2e0fd1c46650b7343c2a92672ca9"
+
+inherit useradd
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "-m -g ${BPN} -G adm -r -d ${localstatedir}/lib/${BPN} \
+ -s /bin/false -c 'logcheck account' ${BPN}"
+GROUPADD_PARAM_${PN} = "-r ${BPN}"
+
+do_install() {
+ # Fix QA Issue
+ sed -i '/install -d $(DESTDIR)\/var\/lock\/logcheck/s/^/#/' Makefile
+
+ # "make install" do not install the manpages. Install them manually.
+ install -m 755 -d ${D}${mandir}/man1
+ install -m 755 -d ${D}${mandir}/man8
+ install -m 644 docs/logcheck-test.1 ${D}${mandir}/man1/
+ install -m 644 docs/logtail.8 ${D}${mandir}/man8/
+ install -m 644 docs/logtail2.8 ${D}${mandir}/man8/
+
+ install -m 755 -d ${D}${sysconfdir}/cron.d
+ install -m 644 debian/logcheck.cron.d ${D}${sysconfdir}/cron.d/logcheck
+ install -m 755 -d ${D}/var/lib/logcheck
+
+ oe_runmake install DESTDIR=${D}
+
+ # install header.txt for generated mails
+ install -m 0644 ${S}/debian/header.txt ${D}${sysconfdir}/${BPN}
+
+ chown -R ${BPN}:${BPN} ${D}${localstatedir}/lib/${BPN}
+ chown -R root:${BPN} ${D}${sysconfdir}/${BPN}
+
+ # Don't install /var/lock when populating rootfs. Do it through volatile
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/99_logcheck ${D}${sysconfdir}/default/volatiles
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /var/lock/logcheck 0755 logcheck logcheck -" \
+ > ${D}${sysconfdir}/tmpfiles.d/logcheck.conf
+ fi
+}
+
+VIRTUAL-RUNTIME_syslog ??= "rsyslog"
+
+RDEPENDS_${PN} = "\
+ bash \
+ cronie \
+ debianutils-run-parts \
+ grep \
+ lockfile-progs \
+ mime-construct \
+ perl \
+ perl-module-file-basename \
+ perl-module-getopt-std \
+ perl-module-file-glob \
+ ${VIRTUAL-RUNTIME_syslog} \
+"
+
+FILES_${PN} += "${datadir}/logtail"
diff --git a/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.116.bb b/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.116.bb
deleted file mode 100644
index 112a5f0..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.116.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "a utility to add users/groups to the system"
-DESCRIPTION = "adduser, addgroup - add a user or group to the system"
-HOMEPAGE = "http://alioth.debian.org/projects/adduser/"
-SECTION = "base/utils"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef"
-
-SRC_URI = "http://ftp.de.debian.org/debian/pool/main/a/${BPN}/${BPN}_${PV}.tar.xz \
- file://adduser-add-M-option-for-useradd.patch \
-"
-
-SRC_URI[md5sum] = "e042a5842b8f24312d6f5a99a1af8f2c"
-SRC_URI[sha256sum] = "72d811ad3ba17d2794b14d19acd1d6b57f9dd31d9250d51e786895dee2daeac0"
-
-inherit cpan-base update-alternatives
-
-S = "${WORKDIR}/${BPN}"
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${S}/adduser ${D}${sbindir}
- install -m 0755 ${S}/deluser ${D}${sbindir}
-
- install -D -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl/${@get_perl_version(d)}/Debian/AdduserCommon.pm
- sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/*
-
- install -d ${D}/${sysconfdir}
- install -m 0644 ${S}/*.conf ${D}/${sysconfdir}
-
- install -d ${D}${mandir}/man5
- install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5
- install -d ${D}${mandir}/man8
- install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8
- install -d ${D}${docdir}/${BPN}
- cp -rf ${S}/examples ${D}${docdir}/${BPN}
-}
-
-RDEPENDS_${PN} += "\
- shadow \
- perl-module-getopt-long \
- perl-module-overloading \
- perl-module-file-find \
- perl-module-file-temp \
-"
-
-ALTERNATIVE_${PN} = "adduser deluser addgroup delgroup"
-ALTERNATIVE_PRIORITY = "60"
-ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
-ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
-ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
-ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
-ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}"
-ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}"
diff --git a/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb b/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb
new file mode 100644
index 0000000..660a7f7
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb
@@ -0,0 +1,54 @@
+SUMMARY = "a utility to add users/groups to the system"
+DESCRIPTION = "adduser, addgroup - add a user or group to the system"
+HOMEPAGE = "https://salsa.debian.org/debian/adduser"
+SECTION = "base/utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef"
+
+SRC_URI = "https://launchpad.net/debian/+archive/primary/+sourcefiles/adduser/${PV}/${BPN}_${PV}.tar.xz \
+ file://adduser-add-M-option-for-useradd.patch \
+"
+
+SRC_URI[md5sum] = "44ba2475ebdaafc9613236bdda321c97"
+SRC_URI[sha256sum] = "3e9eea661c9aac6b2c791bfcc1de3a9c6a422d45c8f3d38ed417737ed3166ffc"
+
+S = "${WORKDIR}/${BPN}"
+
+inherit cpan-base update-alternatives
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 ${S}/adduser ${D}${sbindir}
+ install -m 0755 ${S}/deluser ${D}${sbindir}
+
+ install -D -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl/${@get_perl_version(d)}/Debian/AdduserCommon.pm
+ sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/*
+
+ install -d ${D}/${sysconfdir}
+ install -m 0644 ${S}/*.conf ${D}/${sysconfdir}
+
+ install -d ${D}${mandir}/man5
+ install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5
+ install -d ${D}${mandir}/man8
+ install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8
+ install -d ${D}${docdir}/${BPN}
+ cp -rf ${S}/examples ${D}${docdir}/${BPN}
+}
+
+RDEPENDS_${PN} += "\
+ shadow \
+ perl-module-getopt-long \
+ perl-module-overloading \
+ perl-module-file-find \
+ perl-module-file-temp \
+"
+
+ALTERNATIVE_${PN} = "adduser deluser addgroup delgroup"
+ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
+ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
+ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
+ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
+ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}"
+ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess_0.11.bb b/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess_0.11.bb
new file mode 100644
index 0000000..21be047
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess_0.11.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Guess OpenSSL include path"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea914cc2718e8d53bd7744d96e66c03c"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Guess-${PV}.tar.gz "
+
+SRC_URI[md5sum] = "e768fe2c07826b0ac9ea604c79f93032"
+SRC_URI[sha256sum] = "aa6b18e38cb852cbad80a58cd90c395b40819d4d01e0ab37e7703149094d7167"
+
+DEPENDS += "openssl"
+
+RDEPENDS_${PN}="perl-module-config perl-module-exporter perl-module-symbol perl-module-file-spec"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
+
+S = "${WORKDIR}/Crypt-OpenSSL-Guess-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb b/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb
deleted file mode 100644
index f0c610f..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Crypt Openssl RSA cpan module"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=385c55653886acac3821999a3ccd17b3"
-
-SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-RSA-${PV}.tar.gz "
-
-SRC_URI[md5sum] = "86217a5036fc63779c30420b5fd84129"
-SRC_URI[sha256sum] = "5357f977464bb3a8184cf2d3341851a10d5515b4b2b0dfb88bf78995c0ded7be"
-
-DEPENDS += "openssl"
-
-RDEPENDS_${PN}="libcrypt-openssl-random-perl"
-
-EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
-
-S = "${WORKDIR}/Crypt-OpenSSL-RSA-${PV}"
-
-inherit cpan
-
-do_compile() {
- export OTHERLDFLAGS='-Wl,-rpath'
- cpan_do_compile
-}
diff --git a/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.30.bb b/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.30.bb
new file mode 100644
index 0000000..0a2ad8a
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.30.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Crypt Openssl RSA cpan module"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a67ceecc5d9a91a5a0d003ba50c26346"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-RSA-${PV}.tar.gz "
+
+SRC_URI[md5sum] = "10bca2fc6d0ba1aa329f227424ae87d5"
+SRC_URI[sha256sum] = "23e13531397af102db4fd24bcf70137add7c85c23cca697c43aa71c2959a29ac"
+
+DEPENDS += "libcrypt-openssl-guess-native openssl"
+
+RDEPENDS_${PN}="libcrypt-openssl-random-perl"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
+
+S = "${WORKDIR}/Crypt-OpenSSL-RSA-${PV}"
+
+inherit cpan
+
+do_compile() {
+ export OTHERLDFLAGS='-Wl,-rpath'
+ cpan_do_compile
+}
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.054.bb b/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.054.bb
deleted file mode 100644
index ea78bc4..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.054.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "Perl library for transparent SSL"
-DESCRIPTION = "This module is a true drop-in replacement for IO::Socket::INET that \
-uses SSL to encrypt data before it is transferred to a remote server \
-or client. IO::Socket::SSL supports all the extra features that one \
-needs to write a full-featured SSL client or server application: \
-multiple SSL contexts, cipher selection, certificate verification, and \
-SSL version selection. As an extra bonus, it works perfectly with \
-mod_perl."
-HOMEPAGE = "http://search.cpan.org/dist/IO-Socket-SSL/"
-SECTION = "libs"
-
-LICENSE = "Artistic-1.0|GPLv1+"
-LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;md5=963ce28228347875ace682de56eef8e8"
-
-RDEPENDS_${PN} += "\
- libnet-ssleay-perl \
- perl-module-autoloader \
- perl-module-scalar-util \
- perl-module-io-socket \
-"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-${PV}.tar.gz \
- file://run-ptest \
- "
-SRC_URI[md5sum] = "e1b412e28d107c716e7ca637e2b7f8bd"
-SRC_URI[sha256sum] = "02ea04e9a336a7d3ca9aa604c0c5b5aaf3efa513cefecfc73cc79ceeb5131e4b"
-
-S = "${WORKDIR}/IO-Socket-SSL-${PV}"
-
-inherit cpan ptest
-
-do_install_append () {
- mkdir -p ${D}${docdir}/${PN}/
- cp ${S}/BUGS ${D}${docdir}/${PN}/
- cp ${S}/Changes ${D}${docdir}/${PN}/
- cp ${S}/README ${D}${docdir}/${PN}/
- cp -pRP ${S}/docs ${D}${docdir}/${PN}/
- cp -pRP ${S}/certs ${D}${docdir}/${PN}/
- cp -pRP ${S}/example ${D}${docdir}/${PN}/
-}
-
-do_install_ptest () {
- cp -r ${B}/t ${D}${PTEST_PATH}
- cp -r ${B}/certs ${D}${PTEST_PATH}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.060.bb b/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.060.bb
new file mode 100644
index 0000000..20f8808
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.060.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Perl library for transparent SSL"
+DESCRIPTION = "This module is a true drop-in replacement for IO::Socket::INET that \
+uses SSL to encrypt data before it is transferred to a remote server \
+or client. IO::Socket::SSL supports all the extra features that one \
+needs to write a full-featured SSL client or server application: \
+multiple SSL contexts, cipher selection, certificate verification, and \
+SSL version selection. As an extra bonus, it works perfectly with \
+mod_perl."
+HOMEPAGE = "http://search.cpan.org/dist/IO-Socket-SSL/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;md5=963ce28228347875ace682de56eef8e8"
+
+RDEPENDS_${PN} += "\
+ libnet-ssleay-perl \
+ perl-module-autoloader \
+ perl-module-scalar-util \
+ perl-module-io-socket \
+"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-${PV}.tar.gz \
+ file://run-ptest \
+ "
+SRC_URI[md5sum] = "97fa6cd64f15db60f810cd8ab02d57fc"
+SRC_URI[sha256sum] = "fb5b2877ac5b686a5d7b8dd71cf5464ffe75d10c32047b5570674870e46b1b8c"
+
+S = "${WORKDIR}/IO-Socket-SSL-${PV}"
+
+inherit cpan ptest
+
+do_install_append () {
+ mkdir -p ${D}${docdir}/${PN}/
+ cp ${S}/BUGS ${D}${docdir}/${PN}/
+ cp ${S}/Changes ${D}${docdir}/${PN}/
+ cp ${S}/README ${D}${docdir}/${PN}/
+ cp -pRP ${S}/docs ${D}${docdir}/${PN}/
+ cp -pRP ${S}/certs ${D}${docdir}/${PN}/
+ cp -pRP ${S}/example ${D}${docdir}/${PN}/
+}
+
+do_install_ptest () {
+ cp -r ${B}/t ${D}${PTEST_PATH}
+ cp -r ${B}/certs ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.14.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.14.bb
deleted file mode 100644
index efaa7f7..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.14.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "This package contains the DNS.pm module with friends."
-HOMEPAGE = "http://www.net-dns.org/"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-
-LIC_FILES_CHKSUM = "file://README;md5=92d93d8c5bf22de77578531e283dd219"
-
-DEPENDS += "perl"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "0da1099c0a3548d36ea9e31d5bb9e122"
-SRC_URI[sha256sum] = "83c38a594eeb2c85d66e60047a0f5b403f34bd92a5d13606f02e828d450299fc"
-
-S = "${WORKDIR}/Net-DNS-${PV}"
-
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
-inherit cpan
-
-RDEPENDS_${PN} = "perl-module-integer"
-
-do_compile() {
- export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
- cpan_do_compile
-}
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.18.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.18.bb
new file mode 100644
index 0000000..4e0c9c4
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.18.bb
@@ -0,0 +1,66 @@
+DESCRIPTION = "This package contains the DNS.pm module with friends."
+HOMEPAGE = "http://www.net-dns.org/"
+SECTION = "libs"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://README;beginline=252;endline=269;md5=27db37b42cd1a5173a53922d67072bcb"
+
+DEPENDS += "perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "67af7e5c1c339f60c45c1054374bd8ee"
+SRC_URI[sha256sum] = "52ce1494fc9707fd5a60ed71db5cde727157b7f2363787d730d4d1bd9800a9d3"
+
+UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Net-DNS-${PV}"
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+inherit cpan ptest-perl
+
+RDEPENDS_${PN} = " \
+ libdigest-hmac-perl \
+ perl-module-base \
+ perl-module-constant \
+ perl-module-digest-md5 \
+ perl-module-digest-sha \
+ perl-module-file-spec \
+ perl-module-integer \
+ perl-module-io-file \
+ perl-module-io-select \
+ perl-module-io-socket \
+ perl-module-io-socket-ip \
+ perl-module-mime-base64 \
+ perl-module-scalar-util \
+ perl-module-test-more \
+ perl-module-time-local \
+"
+
+RRECOMMENDS_${PN} += " \
+ libnet-dns-sec-perl \
+"
+
+RDEPENDS_${PN}-ptest += " \
+ perl-module-encode \
+ perl-module-encode-byte \
+ perl-module-extutils-mm \
+ perl-module-extutils-mm-unix \
+ perl-module-overload \
+"
+
+python __anonymous () {
+ # rather than use "find" to determine libc-*.so,
+ # statically export the known paths for glibc and musl
+ import os
+ if d.getVar('TCLIBC') == "glibc":
+ os.environ["LIBC"] = "${STAGING_BASELIBDIR}/libc.so.6"
+ elif d.getVar('TCLIBC') == "musl":
+ os.environ["LIBC"] = "${STAGING_LIBDIR}/libc.so"
+ else:
+ raise bb.parse.SkipRecipe("incompatible with %s C library" %
+ d.getVar('TCLIBC'))
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb
new file mode 100644
index 0000000..3fa6294
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "DNSSEC extensions to Net::DNS"
+HOMEPAGE = "http://www.net-dns.org/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README;beginline=165;endline=192;md5=6ef523fa09e8c272675839e21de16bde"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/W/WI/WILLEM/Net-DNS-SEC-${PV}.tar.gz"
+SRC_URI[md5sum] = "ffa55a9898192c9d4c623cb1357eba9b"
+SRC_URI[sha256sum] = "37a47d4def72d7338f3cc7cd807ec19bd9e2ae638ae656fa536cf0314801989e"
+
+DEPENDS += "openssl"
+
+UPSTREAM_CHECK_REGEX = "Net\-DNS\-SEC\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Net-DNS-SEC-${PV}"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_BASELIBDIR} -lcrypto'"
+
+inherit cpan ptest-perl
+
+RDEPENDS_${PN} = " \
+ libnet-dns-perl \
+ libcrypto \
+ perl-module-dynaloader \
+ perl-module-file-find \
+ perl-module-file-spec \
+ perl-module-io-file \
+ perl-module-mime-base64 \
+ perl-module-test-more \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
new file mode 100644
index 0000000..6efa7d8
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
@@ -0,0 +1,33 @@
+--- a/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2018-08-27 14:56:24.788544991 +0200
++++ b/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2018-08-27 15:00:12.847266331 +0200
+@@ -24,20 +24,7 @@
+ $self->requires_external_cc;
+
+ my $prefix = $self->find_openssl_prefix;
+- my $exec = $self->find_openssl_exec($prefix);
+-
+- unless (-x $exec) {
+- print <<EOM;
+-*** Could not find OpenSSL
+- If it's already installed, please set the OPENSSL_PREFIX environment
+- variable accordingly. If it isn't installed yet, get the latest version
+- from http://www.openssl.org/.
+-EOM
+- exit 0; # according http://wiki.cpantesters.org/wiki/CPANAuthorNotes this is best-practice when "missing library"
+- }
+-
+- $self->check_openssl_version($prefix, $exec);
+- my $opts = $self->ssleay_get_build_opts($prefix, $exec);
++ my $opts = $self->ssleay_get_build_opts($prefix);
+
+ $self->makemaker_args(
+ CCCDLFLAGS => $opts->{cccdlflags},
+@@ -58,7 +45,7 @@
+ }
+
+ sub ssleay_get_build_opts {
+- my ($self, $prefix, $exec) = @_;
++ my ($self, $prefix) = @_;
+
+ my $opts = {
+ lib_links => [],
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.84.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.84.bb
deleted file mode 100644
index cfecef9..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.84.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "Net::SSLeay - Perl extension for using OpenSSL"
-DESCRIPTION = "This module offers some high level convenience functions for accessing \
-web pages on SSL servers (for symmetry, same API is offered for \
-accessing http servers, too), a sslcat() function for writing your own \
-clients, and finally access to the SSL api of SSLeay/OpenSSL package \
-so you can write servers or clients for more complicated applications."
-HOMEPAGE = "http://search.cpan.org/dist/Net-SSLeay/"
-SECTION = "libs"
-
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://README;beginline=274;endline=294;md5=67d67095d83e339da538a082fad5f38e"
-
-DEPENDS = "openssl zlib openssl-native"
-RDEPENDS_${PN} += "\
- libssl \
- libcrypto \
- perl-module-carp \
- perl-module-errno \
- perl-module-extutils-makemaker \
- perl-module-mime-base64 \
- perl-module-socket \
- zlib \
-"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-${PV}.tar.gz \
- file://run-ptest \
- "
-SRC_URI[md5sum] = "cfbe968487149626978f427cc9fb8c77"
-SRC_URI[sha256sum] = "823ec3cbb428309d6a9e56f362a9300693ce3215b7fede109adb7be361fff177"
-
-S = "${WORKDIR}/Net-SSLeay-${PV}"
-
-inherit cpan ptest
-
-export OPENSSL_PREFIX="${STAGING_LIBDIR}"
-
-EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR} LIBS='-L${STAGING_LIBDIR} -lcrypto -lssl -L${STAGING_BASELIBDIR} -lz'"
-
-do_install_ptest() {
- cp -r ${B}/t ${D}${PTEST_PATH}
-}
-
-BBCLASSEXTEND = "native"
-
-FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Net/SSLeay/.debug/"
-
-RDEPENDS_${PN}-ptest = " perl"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb
new file mode 100644
index 0000000..dccef16
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Net::SSLeay - Perl extension for using OpenSSL"
+DESCRIPTION = "This module offers some high level convenience functions for accessing \
+web pages on SSL servers (for symmetry, same API is offered for \
+accessing http servers, too), a sslcat() function for writing your own \
+clients, and finally access to the SSL api of SSLeay/OpenSSL package \
+so you can write servers or clients for more complicated applications."
+HOMEPAGE = "http://search.cpan.org/dist/Net-SSLeay/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=274;endline=294;md5=67d67095d83e339da538a082fad5f38e"
+
+DEPENDS = "openssl zlib openssl-native"
+RDEPENDS_${PN} += "\
+ libssl \
+ libcrypto \
+ perl-module-carp \
+ perl-module-errno \
+ perl-module-extutils-makemaker \
+ perl-module-mime-base64 \
+ perl-module-socket \
+ zlib \
+"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-${PV}.tar.gz \
+ file://no-exec-on-configure.patch \
+ file://run-ptest \
+ "
+SRC_URI[md5sum] = "d602bdce4e0531c6efc276e3e429ca69"
+SRC_URI[sha256sum] = "9d8188b9fb1cae3bd791979c20554925d5e94a138d00414f1a6814549927b0c8"
+
+S = "${WORKDIR}/Net-SSLeay-${PV}"
+
+inherit cpan ptest
+
+do_configure() {
+ export OPENSSL_PREFIX="${STAGING_EXECPREFIXDIR}"
+ cpan_do_configure
+}
+
+do_install_ptest() {
+ cp -r ${B}/t ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native"
+
+FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Net/SSLeay/.debug/"
+
+RDEPENDS_${PN}-ptest = " perl"
diff --git a/meta-openembedded/meta-python/README b/meta-openembedded/meta-python/README
index 0566e49..9c10c78 100644
--- a/meta-openembedded/meta-python/README
+++ b/meta-openembedded/meta-python/README
@@ -5,10 +5,6 @@
-------------------------
This layer is intended to be the home of python modules for OpenEmbedded.
-Modules in this layer need to be independent of openembedded-core and
-meta-openembedded/meta-oe. Because of this, modules required by 'gateone'
-and 'anki' are not included and remain in:
- meta-openembedded/meta-oe/recipes-devtools/python.
Dependencies
-------------------------
@@ -17,12 +13,12 @@
URI: git://git.openembedded.org/openembedded-core
layers: meta
- branch: master
+ branch: thud
revision: HEAD
URI: git://git.openembedded.org/meta-openembedded
layers: meta-oe
- branch: master
+ branch: thud
revision: HEAD
Please follow the recommended setup procedures of your OE distribution.
@@ -39,15 +35,13 @@
before posting.
Send pull requests to openembedded-devel@lists.openembedded.org with
-'[meta-python]' in the subject.
+'[meta-python][thud]' in the subject.
When sending single patches, please use something like:
-'git send-email -M -1 --to=openembedded-devel@lists.openembedded.org --subject-prefix=meta-python][PATCH'
+'git send-email -M -1 --to=openembedded-devel@lists.openembedded.org --subject-prefix=meta-python][thud][PATCH'
Maintenance
-------------------------
-Layer Maintainers:
- Tim "moto-timo" Orling <TicoTimo@gmail.com>
- Derek Straka <derek@asterius.io>
+Thud Maintainers: Armin Kuster <akuster808@gmail.com>
diff --git a/meta-openembedded/meta-python/conf/layer.conf b/meta-openembedded/meta-python/conf/layer.conf
index 7089071..321d51b 100644
--- a/meta-openembedded/meta-python/conf/layer.conf
+++ b/meta-openembedded/meta-python/conf/layer.conf
@@ -14,6 +14,6 @@
LAYERDEPENDS_meta-python = "core openembedded-layer"
-LAYERSERIES_COMPAT_meta-python = "sumo"
+LAYERSERIES_COMPAT_meta-python = "thud"
LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb b/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb
index 4577873..5d2ca00 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb
@@ -16,9 +16,7 @@
inherit setuptools python-dir systemd update-rc.d
-DISTUTILS_INSTALL_ARGS = "--root=${D} \
- --prefix=${prefix} \
- --install-lib=${PYTHON_SITEPACKAGES_DIR} \
+DISTUTILS_INSTALL_ARGS += " \
--install-data=${PYTHON_SITEPACKAGES_DIR} \
--install-scripts=${bindir} \
--skip_init_scripts"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman.inc b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman.inc
new file mode 100644
index 0000000..beb2baf
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "Python-based Network Connectivity Management"
+HOMEPAGE = "https://pypi.python.org/pypi/pyconnman/"
+LICENSE = "Apache-2.0"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[md5sum] = "b7fa82034b1c0e1fb1b518ffe3bb4fc0"
+SRC_URI[sha256sum] = "46c64c0692063fd0c9fb0216d49f7884bec9fa9760d8473db4b1e2f8162fab4a"
+
+inherit pypi
+
+RDEPENDS_${PN} = "connman"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb
index 77b5e4d..3c12db9 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb
@@ -1,12 +1,5 @@
-DESCRIPTION = "Python-based Network Connectivity Management"
-HOMEPAGE = "https://pypi.python.org/pypi/pyconnman/"
-LICENSE = "Apache-2.0"
+require python-pyconnman.inc
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+inherit setuptools
-SRC_URI[md5sum] = "b7fa82034b1c0e1fb1b518ffe3bb4fc0"
-SRC_URI[sha256sum] = "46c64c0692063fd0c9fb0216d49f7884bec9fa9760d8473db4b1e2f8162fab4a"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "connman python-dbus python-pprint"
+RDEPENDS_${PN} += "python-dbus python-pprint"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb
new file mode 100644
index 0000000..e0f3fdd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.1.0.bb
@@ -0,0 +1,5 @@
+require python-pyconnman.inc
+
+inherit setuptools3
+
+RDEPENDS_${PN} += "python3-dbus python3-pprint"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.63.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.63.bb
deleted file mode 100644
index 6f683e3..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.63.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python Remote Objects"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=378acef375e17a3bff03bd0f78c53220"
-
-SRC_URI[md5sum] = "e1d772b67bf7c6f75fa3174bc95c8839"
-SRC_URI[sha256sum] = "67d2b34156619ba37e92100af95aade8129dd2b7327eb05821d43887451f7d7b"
-
-PYPI_PACKAGE = "Pyro4"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-selectors34 \
- ${PYTHON_PN}-serpent \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-zlib \
- "
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb
new file mode 100644
index 0000000..88f5b18
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.73.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python Remote Objects"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc"
+
+SRC_URI[md5sum] = "0375c061b93411feb86da01e801df888"
+SRC_URI[sha256sum] = "536b07a097d0619e7ab1effa3747fda177a24168d17a07a93ca9ac30977608f7"
+
+PYPI_PACKAGE = "Pyro4"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-selectors34 \
+ ${PYTHON_PN}-serpent \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-zlib \
+ "
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb
index 8047ec7..10cff42 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb
@@ -7,6 +7,9 @@
inherit pypi setuptools
+# Use different filename to prevent conflicts with thrift itself
+PYPI_SRC_URI_append = ";downloadfilename=${BP}.${PYPI_PACKAGE_EXT}"
+
RDEPENDS_${PN} += "\
${PYTHON_PN}-logging \
${PYTHON_PN}-six \
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb
index 0b2ac11..f3631cd 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb
@@ -4,7 +4,7 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=76699830db7fa9e897f6a1ad05f98ec8"
-DEPENDS = "python-twisted python-six python-vcversioner"
+DEPENDS = "python-twisted python-six python-vcversioner python-six-native python-vcversioner-native"
SRC_URI = "git://github.com/MostAwesomeDude/txWS.git"
SRCREV= "88cf6d9b9b685ffa1720644bd53c742afb10a414"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb
new file mode 100644
index 0000000..8071fcb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/pamela_0.3.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Pamela: yet another Python wrapper for PAM"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=bfb663f37eb99232bc8ccfa4ea8f1202"
+
+SRC_URI[md5sum] = "de6516118d51eb5fc97017f3b6d5c68b"
+SRC_URI[sha256sum] = "1e198446a6cdd87704aa0def7621d62e7c20b0e6068e2788b9a866a8355e5d6b"
+
+PYPI_PACKAGE = "pamela"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "libpam"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc
index f1a6412..477e89c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-alembic.inc
@@ -2,8 +2,8 @@
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c5f1361296835ff94bda73db7dd312a6"
-SRC_URI[md5sum] = "5cfef58641c9a94d4a5d547e951a7dda"
-SRC_URI[sha256sum] = "13b8611788acf0d7b617775db5c2ae26554a6d4263c590ef628d448fd05aef56"
+SRC_URI[md5sum] = "762ab9ba56d1c0b1bfbc7c9f7f849c92"
+SRC_URI[sha256sum] = "52d73b1d750f1414fa90c25a08da47b87de1e4ad883935718a8f36396e19e78e"
PYPI_PACKAGE = "alembic"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_0.9.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.0.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-alembic_0.9.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-alembic_1.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc
index 5c37995..f1f0a3c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-asn1crypto.inc
@@ -1,7 +1,7 @@
-DESCRIPTION = "Python binding to the Networking and Cryptography (NaCl) library"
-HOMEPAGE = "https://github.com/pyca/pynacl"
+DESCRIPTION = "A fast, pure Python library for parsing and serializing ASN.1 structures"
+HOMEPAGE = "https://github.com/wbond/asn1crypto"
SECTION = "devel/python"
-LICENSE = "Apache-2.0"
+LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=52010cd3c7d7bd965b55721ef4d93ec2"
PYPI_PACKAGE = "asn1crypto"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc
index ead2b6e..fae0f13 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-astroid.inc
@@ -4,8 +4,8 @@
LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI[md5sum] = "7d7dc000b25f0cbfcca20cb9a8dc0310"
-SRC_URI[sha256sum] = "35cfae47aac19c7b407b7095410e895e836f2285ccf1220336afba744cc4c5f2"
+SRC_URI[md5sum] = "2dd01ef0d5b5f0fc754c1ba40137b61c"
+SRC_URI[sha256sum] = "fc9b582dba0366e63540982c3944a9230cbc6f303641c51483fa547dcc22393a"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.5.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-astroid_1.6.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
index c29f058..fa73ea5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
@@ -3,8 +3,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
-SRC_URI[md5sum] = "d7a89063b2e0fd36bd82389c4d82821d"
-SRC_URI[sha256sum] = "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9"
+SRC_URI[sha256sum] = "e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b"
+SRC_URI[md5sum] = "3f3f3e0750dab74cfa1dc8b0fd7a5f86"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_17.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs_18.1.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-attrs_17.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-attrs_18.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc
index 43b9ce9..f6cbb35 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-automat.inc
@@ -5,8 +5,8 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/python-automat:"
-SRC_URI[md5sum] = "ad7bba58d262d8956d732330cb5ef53d"
-SRC_URI[sha256sum] = "3c1fd04ecf08ac87b4dd3feae409542e9bf7827257097b2b6ed5692f69d6f6a8"
+SRC_URI[md5sum] = "b72d5b7a83c2b1bd6e9ec3614a69f9ea"
+SRC_URI[sha256sum] = "cbd78b83fa2d81fe2a4d23d258e1661dd7493c9a50ee2f1a5b2cac61c1793b0e"
PYPI_PACKAGE = "Automat"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
index d6def98..c29b659 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
@@ -1,4 +1,4 @@
-From d5ebe479fc8fe11c5c75e7f35484849320349222 Mon Sep 17 00:00:00 2001
+From 33b70266930c9093712173c4e0c419815b55e313 Mon Sep 17 00:00:00 2001
From: Derek Straka <derek@asterius.io>
Date: Fri, 22 Dec 2017 09:07:00 -0500
Subject: [PATCH] setup.py: remove the dependency on m2r
@@ -11,14 +11,15 @@
Upstream-Status: Inappropriate (OE specific)
Signed-off-by: Derek Straka <derek@asterius.io>
+
---
setup.py | 10 ----------
1 file changed, 10 deletions(-)
-Index: Automat-0.6.0/setup.py
-===================================================================
---- Automat-0.6.0.orig/setup.py
-+++ Automat-0.6.0/setup.py
+diff --git a/setup.py b/setup.py
+index d360c64..7b4180a 100644
+--- a/setup.py
++++ b/setup.py
@@ -4,14 +4,6 @@ Setup file for automat
from setuptools import setup, find_packages
@@ -46,4 +47,4 @@
- 'm2r',
],
install_requires=[
- "attrs",
+ "attrs>=16.1.0",
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.7.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.6.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-automat_0.7.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc
index a3299e4..7423fa7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc
@@ -7,8 +7,8 @@
file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \
"
-SRC_URI[md5sum] = "97e8cf0d40ef3765d979c19b534a716d"
-SRC_URI[sha256sum] = "d68cbff396143e837b4c23b6621d3b7ae374281afc75eed8e51a28625d9125ba"
+SRC_URI[md5sum] = "50a5c46410c2b44b5c09f1ea5eb15a3b"
+SRC_URI[sha256sum] = "b3c8af3ce24eab861447a194f3c382509dd70e90452c86a5426f1e7272460177"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc
index 4dcb255..14b5a9f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-babel.inc
@@ -1,10 +1,10 @@
DESCRIPTION = "A collection of tools for internationalizing Python applications"
HOMEPAGE = "http://babel.edgewall.org/"
LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e6eeaabc92cfc2d03f53e789324d7292"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eebdc057dc12abcc2d6c4453628bfcd4"
-SRC_URI[md5sum] = "152a6b17fe4110b95675aceb9af9fab2"
-SRC_URI[sha256sum] = "8ce4cb6fdd4393edd323227cba3a077bceb2a6ce5201c902c65e730046f41f14"
+SRC_URI[md5sum] = "c384ac03026e8fe6f9b90f55201f1bff"
+SRC_URI[sha256sum] = "8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23"
PYPI_PACKAGE = "Babel"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-babel_2.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-babel_2.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-babel_2.5.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-babel_2.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb
deleted file mode 100644
index 961436f..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Backport of functools.lru_cache from Python 3.3"
-HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=47;endline=47;md5=98fc3658e5970d26f6b2109808c766be"
-
-PYPI_PACKAGE = "backports.functools_lru_cache"
-
-SRC_URI[md5sum] = "b954e7d5e2ca0f0f66ad2ed12ba800e5"
-SRC_URI[sha256sum] = "31f235852f88edc1558d428d890663c49eb4514ffec9f3650e7f3c9e4a12e36f"
-
-DEPENDS += "python-setuptools-scm-native"
-
-inherit setuptools pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-threading \
- "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb
new file mode 100644
index 0000000..825444f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Backport of functools.lru_cache from Python 3.3"
+HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=57;endline=57;md5=98fc3658e5970d26f6b2109808c766be"
+
+PYPI_PACKAGE = "backports.functools_lru_cache"
+
+SRC_URI[md5sum] = "20f53f54cd3f04b3346ce75a54959754"
+SRC_URI[sha256sum] = "9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a"
+
+DEPENDS += "python-setuptools-scm-native"
+
+inherit setuptools pypi
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-pickle \
+ ${PYTHON_PN}-threading \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-behave.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-behave.inc
new file mode 100644
index 0000000..ded7580
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-behave.inc
@@ -0,0 +1,15 @@
+SUMMARY = "A behavior-driven development framework, Python style"
+HOMEPAGE = "https://github.com/behave/behave"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06"
+
+SRC_URI[md5sum] = "3f05c859a1c45f5ed33e925817ad887d"
+SRC_URI[sha256sum] = "b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86"
+
+inherit pypi
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-parse-type \
+ ${PYTHON_PN}-setuptools \
+ ${PYTHON_PN}-six \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.6.bb
index 6797302..6622168 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.6.bb
@@ -1,10 +1,8 @@
-SUMMARY = "A behavior-driven development framework, Python style"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06"
+inherit setuptools
+require python-behave.inc
-SRC_URI[md5sum] = "3f05c859a1c45f5ed33e925817ad887d"
-SRC_URI[sha256sum] = "b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86"
-
-RDEPENDS_${PN} += "python-difflib python-setuptools python-pkgutil python-misc python-argparse python-xml python-enum34 python-parse python-parse-type python-six"
-
-inherit pypi setuptools
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-argparse \
+ ${PYTHON_PN}-enum34 \
+ ${PYTHON_PN}-traceback2 \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc
index 38a22f6..480f048 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray.inc
@@ -1,10 +1,10 @@
SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
HOMEPAGE = "https://github.com/ilanschnell/bitarray"
LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3ba469353f9f2a244b2075902351e37d"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=f4ce1ae80a385140f0ddb2bcef410b06"
-SRC_URI[md5sum] = "3825184f54f4d93508a28031b4c65d3b"
-SRC_URI[sha256sum] = "7da501356e48a83c61f479393681c1bc4b94e5a34ace7e08cb29e7dd9290ab18"
+SRC_URI[md5sum] = "f3131ac2a277f3b70dbb6132ca8f8889"
+SRC_URI[sha256sum] = "050cd30b810ddb3aa941e7ddfbe0d8065e793012d0a88cb5739ec23624b9895e"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc
index a71c47b..46f0859 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-can.inc
@@ -3,8 +3,8 @@
LICENSE = "LGPLv3"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=38138baa100d7259934590850bc0406e"
-SRC_URI[md5sum] = "3310f0aa2a8492d0ff614ecf636ec8a8"
-SRC_URI[sha256sum] = "4a5c01dd67feeda35f88e6c12ea14ac8cabd426b9be0cc5f9fd083fe90a9dbfc"
+SRC_URI[md5sum] = "dcdd3f6b924e3f20acb1ccf4598236cf"
+SRC_URI[sha256sum] = "b5e93b2ee32bdd597d9d908afe5171c402a04c9678ba47b60f33506738b1375b"
PYPI_PACKAGE="python-can"
@@ -14,4 +14,5 @@
${PYTHON_PN}-misc \
${PYTHON_PN}-netserver \
${PYTHON_PN}-sqlite3 \
+ ${PYTHON_PN}-wrapt \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-can_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-can_2.2.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-can_2.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-can_2.2.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cassandra-driver.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cassandra-driver.inc
index 1648d3e..1cc1f4c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cassandra-driver.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cassandra-driver.inc
@@ -8,8 +8,8 @@
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
SRCNAME = "cassandra-driver"
-SRC_URI[md5sum] = "5c8b4a3adfc48180e8ec38b8c4e996fd"
-SRC_URI[sha256sum] = "61b670fb2ba95d51d91fa7b589aae3666df494713f5d1ed78bb5c510778d77f0"
+SRC_URI[md5sum] = "c5bed026bf48c821424c1f6296193908"
+SRC_URI[sha256sum] = "b65218e2582277f5b77d1436e420db8616f63e3437a9e839cdcd7172d760e861"
DISTUTILS_BUILD_ARGS += " \
--no-libev \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc
index 26df5c1..c7955c5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc
@@ -7,7 +7,7 @@
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f77f61d14ee6feac4228d3ebd26cc1f1"
-SRC_URI[md5sum] = "068fd5c3c690ae47504b3e0bf4e56c4c"
-SRC_URI[sha256sum] = "edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d"
+SRC_URI[md5sum] = "a84571995a209dcd00a1702a74302b88"
+SRC_URI[sha256sum] = "4c1d68a1408dd090d2f3a869aa94c3947cc1d967821d1ed303208c9f41f0f2f4"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2018.1.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2018.8.13.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2018.1.18.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2018.8.13.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
index 718bbab..c81545b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
@@ -11,6 +11,8 @@
SRC_URI[md5sum] = "fc4cc00c4863833230d3af92af48abd4"
SRC_URI[sha256sum] = "f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
+UPSTREAM_CHECK_REGEX = "click/(?P<pver>\d+(\.\d+)+)/"
+
CLEANBROKEN = "1"
RDEPENDS_${PN} += "\
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.8.1.bb
deleted file mode 100644
index 145ab98..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.8.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Extra features for standard library's cmd module"
-HOMEPAGE = "http://packages.python.org/cmd2/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=51;endline=51;md5=0f13c9cfc75288223cf7edd2f3b985a2"
-
-SRC_URI[md5sum] = "701b916ffac99137bea413205106f993"
-SRC_URI[sha256sum] = "d09976f9ad2327883c2d07b5acb42e66ad52b17e352873c22041ed124bfe8aba"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-doctest \
- ${PYTHON_PN}-pyparsing \
- ${PYTHON_PN}-pyperclip \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-subprocess \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-textutils \
- "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.2.bb
new file mode 100644
index 0000000..1b75e34
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.9.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Extra features for standard library's cmd module"
+HOMEPAGE = "http://packages.python.org/cmd2/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=60bc6842001870a418935bd84570b676"
+
+SRC_URI[md5sum] = "bfe0900a2288283a40f0ee7533486a2f"
+SRC_URI[sha256sum] = "e7b6b4b76272a051c943c3c709cd760142af16fbc9218e0ed3c22b28ea38d0a8"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-doctest \
+ ${PYTHON_PN}-pyparsing \
+ ${PYTHON_PN}-pyperclip \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-stringold \
+ ${PYTHON_PN}-subprocess \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-textutils \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc
index c1fb858..133dbba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-configparser.inc
@@ -1,4 +1,4 @@
-SUMMARY = "This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what’s found in Microsoft Windows INI files."
+SUMMARY = "This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what's found in Microsoft Windows INI files."
SECTION = "devel/python"
HOMEPAGE = "https://docs.python.org/3/library/configparser.html"
LICENSE = "MIT"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-crcmod.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-crcmod.inc
new file mode 100644
index 0000000..85da7cb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-crcmod.inc
@@ -0,0 +1,14 @@
+SUMMARY = "A Python module for generating objects that compute the Cyclic Redundancy Check."
+HOMEPAGE = "https://pypi.org/project/crcmod"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a19291627cad2d1dfbfcf3c9fb85c2"
+
+SRC_URI[md5sum] = "2d5b92117d958dcead94f9e17f54cd32"
+SRC_URI[sha256sum] = "dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e"
+
+inherit pypi
+
+RDEPENDS_${PN} += "${PYTHON_PN}-unittest"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-crcmod_1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-crcmod_1.7.bb
new file mode 100644
index 0000000..45b9a2c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-crcmod_1.7.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-crcmod.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
index 00bb87b..d1e254b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
@@ -8,8 +8,8 @@
${PYTHON_PN}-cryptography \
"
-SRC_URI[md5sum] = "ef115b870cc8d8b9f0f4189b512bc170"
-SRC_URI[sha256sum] = "78c4b4f3f84853ea5d038e2f53d355229dd8119fe9cf949c3e497c85c760a5ca"
+SRC_URI[md5sum] = "294d44f32885a6b97d5f9cdd7ffc73a3"
+SRC_URI[sha256sum] = "356a2ded84ae379e556515eec9b68dd74957651a38465d10605bb9fbae280f15"
PYPI_PACKAGE = "cryptography_vectors"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
index 4be7907..dbbfe2c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
@@ -1,7 +1,7 @@
SUMMARY = "Provides cryptographic recipes and primitives to python developers"
HOMEPAGE = "https://cryptography.io/"
LICENSE = "Apache-2.0 | BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d5ede125ed08d4fd14ec44d334bdb388"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=097f805837700cfac572ac274cd38124"
DEPENDS += " \
${PYTHON_PN}-cffi \
@@ -10,8 +10,8 @@
${PYTHON_PN}-six \
"
-SRC_URI[md5sum] = "9f39d4d8f2b05f295fa0ff52475ec4f2"
-SRC_URI[sha256sum] = "e4d967371c5b6b2e67855066471d844c5d52d210c36c28d49a8507b96e2c5291"
+SRC_URI[md5sum] = "a0f3f563ab1c5c3bc02fae8d4aa3ad16"
+SRC_URI[sha256sum] = "c132bab45d4bd0fff1d3fe294d92b0a6eb8404e93337b3127bdec9f21de117e6"
RDEPENDS_${PN} += " \
${PYTHON_PN}-cffi \
@@ -39,6 +39,7 @@
${PYTHON_PN}-iso8601 \
${PYTHON_PN}-pretend \
${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-pytz \
"
inherit ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.1.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc
index 5d3b9d5..0939cad 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc
@@ -7,8 +7,8 @@
PYPI_PACKAGE = "Cython"
BBCLASSEXTEND = "native nativesdk"
-SRC_URI[md5sum] = "0e0568d6bed4b09ad01afe0a38805305"
-SRC_URI[sha256sum] = "634e2f10fc8d026c633cffacb45cd8f4582149fa68e1428124e762dbc566e68a"
+SRC_URI[md5sum] = "0cb620e1259818e4ecc1a056e8c3a8be"
+SRC_URI[sha256sum] = "b64575241f64f6ec005a4d4137339fb0ba5e156e826db2fdb5f458060d9979e0"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.28.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.28.5.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.28.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.28.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb
index 4c18e2b..ffb5beb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb
@@ -2,7 +2,7 @@
HOMEPAGE = "https://pagure.io/python-daemon/"
SECTION = "devel/python"
-DEPENDS = "python-docutils"
+DEPENDS += "python-docutils-native"
RDEPENDS_${PN} = "python-docutils \
python-lockfile (>= 0.10) \
python-resource \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc
index 333b5e2..9c5a89d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc
@@ -4,8 +4,8 @@
LICENSE = "BSD-3-Clause & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996"
-SRC_URI[md5sum] = "03a08c8bcf0a2b29f1cd21b9de4d12fb"
-SRC_URI[sha256sum] = "9d8074be4c993fbe4947878ce593052f71dac82932a677d49194d8ce9778002e"
+SRC_URI[md5sum] = "175b7c1a3cc0cb01151eced07c61c0b8"
+SRC_URI[sha256sum] = "e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8"
PYPI_PACKAGE = "python-dateutil"
inherit pypi
@@ -13,6 +13,8 @@
PACKAGES =+ "${PN}-zoneinfo"
FILES_${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo"
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
RDEPENDS_${PN}_class-target = "\
${PYTHON_PN}-datetime \
${PYTHON_PN}-numbers \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.7.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.7.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.7.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.6.bb
deleted file mode 100644
index 0f18ccc..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.6.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Python bindings for the DBus inter-process communication system"
-SECTION = "devel/python"
-HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
-LICENSE = "MIT & AFL-2.1 | GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b03240518994df6d8c974675675e5ca4 \
- file://dbus-gmain/COPYING;md5=05c3eacd50f69bb1d58afec460baad57 "
-DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native"
-
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \
-"
-
-SRC_URI[md5sum] = "1ce1ddf2582060f8f971652ea54cc17e"
-SRC_URI[sha256sum] = "32f29c17172cdb9cb61c68b1f1a71dfe7351506fc830869029c47449bd04faeb"
-S = "${WORKDIR}/dbus-python-${PV}"
-
-inherit distutils-base autotools pkgconfig
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[docs] = "--enable-html-docs,--disable-html-docs,python3-docutils-native"
-PACKAGECONFIG[api-docs] = "--enable-api-docs,--disable-api-docs,python3-docutils-native python3-epydoc-native"
-
-export STAGING_LIBDIR
-export STAGING_INCDIR
-
-RDEPENDS_${PN} = "python-io python-logging python-stringold python-threading python-xml"
-
-FILES_${PN}-dev += "${libdir}/pkgconfig"
-
-do_install_append() {
- # Remove files that clash with python3-dbus; their content is same
- rm ${D}${includedir}/dbus-1.0/dbus/dbus-python.h ${D}${libdir}/pkgconfig/dbus-python.pc
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.8.bb
new file mode 100644
index 0000000..b3f7240
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.8.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Python bindings for the DBus inter-process communication system"
+SECTION = "devel/python"
+HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
+LICENSE = "MIT & AFL-2.1 | GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b03240518994df6d8c974675675e5ca4 \
+ file://dbus-gmain/COPYING;md5=05c3eacd50f69bb1d58afec460baad57 "
+DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native"
+
+SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \
+"
+
+SRC_URI[md5sum] = "7379db774c10904f27e7e2743d90fb43"
+SRC_URI[sha256sum] = "abf12bbb765e300bf8e2a1b2f32f85949eab06998dbda127952c31cb63957b6f"
+S = "${WORKDIR}/dbus-python-${PV}"
+
+inherit distutils-base autotools pkgconfig
+
+# documentation needs python-sphinx, which is not in oe-core or meta-python for now
+# change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python
+EXTRA_OECONF += "--disable-documentation"
+
+export STAGING_LIBDIR
+export STAGING_INCDIR
+
+RDEPENDS_${PN} = "python-io python-logging python-stringold python-threading python-xml"
+
+FILES_${PN}-dev += "${libdir}/pkgconfig"
+
+do_install_append() {
+ # Remove files that clash with python3-dbus; their content is same
+ rm ${D}${includedir}/dbus-1.0/dbus/dbus-python.h ${D}${libdir}/pkgconfig/dbus-python.pc
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-django.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-django.inc
index 4ef2d7f..ee3aee6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-django.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-django.inc
@@ -3,12 +3,14 @@
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa"
-SRC_URI[md5sum] = "f306015e16a8d5024dbac923ac34fffb"
-SRC_URI[sha256sum] = "22383567385a9c406d8a5ce080a2694c82c6b733e157922197e8b393bb3aacd9"
+SRC_URI[md5sum] = "38e82b59a1c27bbf98ccf0564ead7426"
+SRC_URI[sha256sum] = "eb9271f0874f53106a2719c0c35ce67631f6cc27cf81a60c6f8c9817b35a3f6e"
PYPI_PACKAGE = "Django"
inherit pypi
+UPSTREAM_CHECK_REGEX = "(?P<pver>1(\.\d+)+)"
+
FILES_${PN} += "${datadir}/django"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.11.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.11.14.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-django_1.11.10.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-django_1.11.14.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-djangorestframework.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-djangorestframework.inc
new file mode 100644
index 0000000..8551a83
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-djangorestframework.inc
@@ -0,0 +1,16 @@
+SUMMARY = "djangorestframework"
+DESCRIPTION = "pip3 install djangorestframework"
+HOMEPAGE = "https://pypi.python.org/pypi/djangorestframework"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1"
+
+SRC_URI[md5sum] = "0d481bf8dbb87bb927b46798edc1a9bd"
+SRC_URI[sha256sum] = "607865b0bb1598b153793892101d881466bd5a991de12bd6229abb18b1c86136"
+PYPI_PACKAGE = "djangorestframework"
+
+inherit pypi
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-django \
+"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-djangorestframework_3.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-djangorestframework_3.9.0.bb
new file mode 100644
index 0000000..540d12d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-djangorestframework_3.9.0.bb
@@ -0,0 +1,2 @@
+require python-djangorestframework.inc
+inherit setuptools
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc
index 7af4fe1..dfb20e9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc
@@ -2,8 +2,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
-SRC_URI[md5sum] = "def4106c80897b7fad2afb3bc05360e4"
-SRC_URI[sha256sum] = "b709ca8642559c3c5a81a33ab10839fa052177accd5ba821047a99db635255ed"
+SRC_URI[md5sum] = "aaeee55431d0287063657122ff41a0e6"
+SRC_URI[sha256sum] = "cd1b4e6cb829eeb41c02ad9202d83bef5f4b7a036dd9fad72ce96ad1e22efb07"
PYPI_PACKAGE = "Flask-Migrate"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.2.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate_2.2.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sijax.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sijax.inc
new file mode 100644
index 0000000..ff4e70a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sijax.inc
@@ -0,0 +1,8 @@
+DESCRIPTION = "An extension for the Flask microframework that adds Sijax support."
+HOMEPAGE = "https://github.com/spantaleev/flask-sijax"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=266adc7b911b7c84b837bf77196e1ba6"
+
+PYPI_PACKAGE = "Flask-Sijax"
+RDEPENDS_${PN} = "${PYTHON_PN}-sijax"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sijax_0.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sijax_0.4.1.bb
new file mode 100644
index 0000000..74738fc
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sijax_0.4.1.bb
@@ -0,0 +1,4 @@
+inherit pypi setuptools
+require python-flask-sijax.inc
+
+SRC_URI[sha256sum] = "fb2bf2d4f75408185102195055d75549fee8d9c9e954dca2427186925cdc429f"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
index ecf5619..66ad1a6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
@@ -4,10 +4,10 @@
intentions. And before you ask: It’s BSD licensed!"
HOMEPAGE = "https://github.com/mitsuhiko/flask/"
LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=19866b76b054ab30c270c0eb9d7e43d7"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c011883ac26229b8ba3084f55c7664c6"
-SRC_URI[md5sum] = "97278dfdafda98ba7902e890b0289177"
-SRC_URI[sha256sum] = "49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1"
+SRC_URI[md5sum] = "824f0f20aae1f44c9c7dc4054adb7969"
+SRC_URI[sha256sum] = "2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48"
CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask_0.12.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.0.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-flask_0.12.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-flask_1.0.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc
new file mode 100644
index 0000000..2247561
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-future.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Clean single-source support for Python 3 and 2"
+HOMEPAGE = "https://python-future.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3f457538b297bd0ef86564b8ac216ad7"
+
+SRC_URI[md5sum] = "3e8e88a2bda48d54b1da7634d04760d7"
+SRC_URI[sha256sum] = "e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
+
+PYPI_PACKAGE_HASH = "99abde815842bc6e97d5a7806ad51236630da14ca2f3b1fce94c0bb94d3d"
+
+inherit pypi
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb
index 46f7fe5..d95e1ba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-future_0.16.0.bb
@@ -1,13 +1,2 @@
-DESCRIPTION = "Clean single-source support for Python 3 and 2"
-HOMEPAGE = "https://python-future.org"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3f457538b297bd0ef86564b8ac216ad7"
-
-SRC_URI[md5sum] = "3e8e88a2bda48d54b1da7634d04760d7"
-SRC_URI[sha256sum] = "e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
-
-PYPI_PACKAGE_HASH = "99abde815842bc6e97d5a7806ad51236630da14ca2f3b1fce94c0bb94d3d"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native"
+inherit setuptools
+require python-future.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet.inc
index 7a42240..fcd81f6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet.inc
@@ -3,7 +3,7 @@
LIC_FILES_CHKSUM = "file://LICENSE;md5=03143d7a1a9f5d8a0fee825f24ca9c36 \
file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
-SRC_URI[md5sum] = "6e0b9dd5385f81d478451ec8ed1d62b3"
-SRC_URI[sha256sum] = "0fef83d43bf87a5196c91e73cb9772f945a4caaff91242766c5916d1dd1381e4"
+SRC_URI[md5sum] = "a87b6028c3b742b210bf5973939db595"
+SRC_URI[sha256sum] = "f1cc268a15ade58d9a0c04569fe6613e19b8b0345b64453064e2c3c6d79051af"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.14.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.13.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.14.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools.inc
new file mode 100644
index 0000000..91cc62f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Google gRPC tools"
+HOMEPAGE = "http://www.grpc.io/"
+SECTION = "devel/python"
+
+DEPENDS_append = "${PYTHON_PN}-grpcio"
+RDEPENDS_${PN} = "${PYTHON_PN}-grpcio"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
+
+inherit pypi
+
+SRC_URI[md5sum] = "b2fabfb54c7824c1e49a02de2aa6628e"
+SRC_URI[sha256sum] = "4ce5aa660d7884f23aac1eafa93b97a4c3e2b512edff871e91fdb6ee86ebd5ea"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools_1.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools_1.14.1.bb
new file mode 100644
index 0000000..5b19beb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools_1.14.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-grpcio-tools.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools_1.8.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools_1.8.4.bb
deleted file mode 100644
index 45e0cc1..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio-tools_1.8.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Google gRPC tools"
-HOMEPAGE = "http://www.grpc.io/"
-SECTION = "devel/python"
-
-DEPENDS = "python-grpcio"
-RDEPENDS_${PN} = "python-grpcio"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
-
-inherit pypi setuptools
-
-SRC_URI[md5sum] = "e04e65afe60410cf178ff2698f052a7c"
-SRC_URI[sha256sum] = "edc84c09039d3a01012ccd97450abd06ee6b980710f6d9f191b50deb6774a75c"
-
-# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools)
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc
new file mode 100644
index 0000000..23d25f7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "Google gRPC"
+HOMEPAGE = "http://www.grpc.io/"
+SECTION = "devel/python"
+
+DEPENDS_append = "${PYTHON_PN}-protobuf"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-grpcio:"
+SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch "
+
+RDEPENDS_${PN} = "${PYTHON_PN}-protobuf \
+ ${PYTHON_PN}-setuptools \
+ ${PYTHON_PN}-six \
+"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
+
+inherit pypi
+
+SRC_URI[md5sum] = "0987ae2e47b5103de3cacc437874a3c5"
+SRC_URI[sha256sum] = "4bf23666e763ca7ff6010465864e9f088f4ac7ecc1e11abd6f85b250e66b2c05"
+
+CLEANBROKEN = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
index 0c1d964..996597b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
@@ -18,16 +18,25 @@
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: grpcio-1.8.4/setup.py
+Index: grpcio-1.14.1/setup.py
===================================================================
---- grpcio-1.8.4.orig/setup.py
-+++ grpcio-1.8.4/setup.py
-@@ -115,7 +115,7 @@ if EXTRA_ENV_COMPILE_ARGS is None:
+--- grpcio-1.14.1.orig/setup.py
++++ grpcio-1.14.1/setup.py
+@@ -123,7 +123,7 @@ ENABLE_DOCUMENTATION_BUILD = os.environ.
+ EXTRA_ENV_COMPILE_ARGS = os.environ.get('GRPC_PYTHON_CFLAGS', None)
+ EXTRA_ENV_LINK_ARGS = os.environ.get('GRPC_PYTHON_LDFLAGS', None)
+ if EXTRA_ENV_COMPILE_ARGS is None:
+- EXTRA_ENV_COMPILE_ARGS = ' -std=c++11'
++ EXTRA_ENV_COMPILE_ARGS = ""
+ if 'win32' in sys.platform and sys.version_info < (3, 5):
+ EXTRA_ENV_COMPILE_ARGS += ' -D_hypot=hypot'
+ # We use define flags here and don't directly add to DEFINE_MACROS below to
+@@ -135,7 +135,7 @@ if EXTRA_ENV_COMPILE_ARGS is None:
else:
EXTRA_ENV_COMPILE_ARGS += ' -D_ftime=_ftime64 -D_timeb=__timeb64'
elif "linux" in sys.platform:
-- EXTRA_ENV_COMPILE_ARGS += ' -std=c++11 -std=gnu99 -fvisibility=hidden -fno-wrapv -fno-exceptions'
+- EXTRA_ENV_COMPILE_ARGS += ' -std=gnu99 -fvisibility=hidden -fno-wrapv -fno-exceptions'
+ EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions'
elif "darwin" in sys.platform:
EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions'
-
+ EXTRA_ENV_COMPILE_ARGS += ' -DPB_FIELD_16BIT'
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.14.1.bb
new file mode 100644
index 0000000..820bea4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.14.1.bb
@@ -0,0 +1,6 @@
+inherit setuptools
+require python-grpcio.inc
+
+RDEPENDS_${PN} += " python-enum34 \
+ python-futures \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.8.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.8.4.bb
deleted file mode 100644
index bec9d84..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.8.4.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "Google gRPC"
-HOMEPAGE = "http://www.grpc.io/"
-SECTION = "devel/python"
-
-DEPENDS = "python-protobuf"
-
-SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch "
-
-RDEPENDS_${PN} = "python-enum34 \
- python-futures \
- python-protobuf \
- python-setuptools \
- python-six \
-"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
-
-inherit pypi setuptools
-
-SRC_URI[md5sum] = "7860f7c61de3890323670b7b1ff63e56"
-SRC_URI[sha256sum] = "88d87aab9c7889b3ab29dd74aac1a5493ed78b9bf5afba1c069c9dd5531f951d"
-
-# For usage in other recipes when compiling protobuf files (e.g. by grpcio-tools)
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink.inc
index 2b5b0a0..78e3ee8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink.inc
@@ -3,8 +3,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3893d4ed05dcc823f8ed685a9ea19bcb"
-SRC_URI[md5sum] = "eaccb9845b559817e838846669cbc68a"
-SRC_URI[sha256sum] = "bc4ffdbde9bdad204d507bd8f554f16bba82dd356f6130cb16f41422909c33bc"
+SRC_URI[sha256sum] = "f01b4ff744f14bc5d0a22a6b9f1525ab7d6312cb0ff967f59414bbac52f0a306"
+SRC_URI[md5sum] = "f41a96779b324d824864696a94b24823"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink_18.0.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-hyperlink_18.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-idna.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-idna.inc
index b1d0d18..519812d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-idna.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-idna.inc
@@ -1,13 +1,18 @@
SUMMARY = "Internationalised Domain Names in Applications"
HOMEPAGE = "https://github.com/kjd/idna"
LICENSE = "BSD-3-Clause & Python-2.0 & Unicode"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c9ba5acd829579492fd5eb306c7a0565"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=782775b32f96098512e283fb5d4546cd"
-SRC_URI[md5sum] = "c706e2790b016bd0ed4edd2d4ba4d147"
-SRC_URI[sha256sum] = "2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f"
+SRC_URI[md5sum] = "0e5bb69018ddef1b9d95f681182be82c"
+SRC_URI[sha256sum] = "684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
RDEPENDS_${PN}_class-target = "\
${PYTHON_PN}-codecs \
"
+# Remove bundled egg-info
+do_compile_prepend() {
+ rm -rf ${S}/idna.egg-info
+}
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.7.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-inflection.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-inflection.inc
new file mode 100644
index 0000000..556b268
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-inflection.inc
@@ -0,0 +1,14 @@
+SUMMARY = "A port of Ruby on Rails' inflection to Python."
+HOMEPAGE = "https://pypi.org/project/inflection"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=de7833d9c2ce0052a4073928c76a13d7"
+
+SRC_URI[md5sum] = "7941165e9f148e0520023941c0886b40"
+SRC_URI[sha256sum] = "18ea7fb7a7d152853386523def08736aa8c32636b047ade55f7578c4edeb16ca"
+
+inherit pypi
+
+RDEPENDS_${PN} += "${PYTHON_PN}-pytest"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-inflection_0.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-inflection_0.3.1.bb
new file mode 100644
index 0000000..4a9d497
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-inflection_0.3.1.bb
@@ -0,0 +1,4 @@
+inherit setuptools
+require python-inflection.inc
+
+RDEPENDS_${PN} += "${PYTHON_PN}-codecs"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc
new file mode 100644
index 0000000..1ecca35
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-intervals.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Interval arithmetic for Python"
+HOMEPAGE = "https://github.com/AlexandreDecan/python-intervals"
+SECTION = "devel/python"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
+
+PYPI_PACKAGE := "python-intervals"
+
+inherit pypi
+
+SRC_URI[md5sum] = "a35dd44269fdb134bf19cfd80cb2c120"
+SRC_URI[sha256sum] = "a8a15b7c2fadb8465310f44aa96e384828b35a29de38ac74738cd665924cb8ac"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.5.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.5.4.bb
new file mode 100644
index 0000000..3c2a33b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-intervals_1.5.4.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-intervals.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.19.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.19.bb
deleted file mode 100644
index 9c50b46..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.19.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2."
-HOMEPAGE = "https://github.com/phihag/ipaddress"
-LICENSE = "Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a"
-
-DEPENDS += "python-pip"
-
-SRC_URI[md5sum] = "d0687efaf93a32476d81e90ba0609c57"
-SRC_URI[sha256sum] = "200d8686011d470b5e4de207d803445deee427455cd0cb7c982b68cf82524f81"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb
new file mode 100644
index 0000000..66de8b6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.22.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2."
+HOMEPAGE = "https://github.com/phihag/ipaddress"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a"
+
+DEPENDS += "python-pip"
+
+SRC_URI[md5sum] = "74c1ce3109f30eaa1ab3dd342e7b76d4"
+SRC_URI[sha256sum] = "b146c751ea45cad6188dd6cf2d9b757f6f4f8d6ffb96a023e6f2e26eea02a72c"
+
+inherit pypi setuptools
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc
index 6d13e5f..359b180 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-isort.inc
@@ -13,3 +13,5 @@
${PYTHON_PN}-datetime \
${PYTHON_PN}-shell \
"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-linecache2_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-linecache2_1.0.0.bb
new file mode 100644
index 0000000..386da2d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-linecache2_1.0.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A backport of linecache to older supported Pythons"
+HOMEPAGE = "https://github.com/testing-cabal/linecache2"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=19;endline=19;md5=368ddc8588431c180ae7c33f4fb57519"
+
+DEPENDS = "${PYTHON_PN}-pbr-native"
+
+SRC_URI[md5sum] = "7b25d0289ec36bff1f9e63c4329ce65c"
+SRC_URI[sha256sum] = "4b26ff4e7110db76eeb6f5a7b64a82623839d595c2038eeda662f2a2db78e97c"
+
+inherit pypi setuptools
+
+CLEAN_BROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc
index 3f3a1e2..7f355a7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc
@@ -18,8 +18,8 @@
DEPENDS += "libxml2 libxslt"
-SRC_URI[md5sum] = "c266d9062e23b08f66426979a2b36f51"
-SRC_URI[sha256sum] = "e2629cdbcad82b83922a3488937632a4983ecc0fed3e5cfbf430d069382eeb9b"
+SRC_URI[md5sum] = "31239400ca4e130b69993bb3c14204b3"
+SRC_URI[sha256sum] = "e2afbe403090f5893e254958d02875e0732975e73c4c0cdd33c1f009a61963ca"
DISTUTILS_BUILD_ARGS += " \
--with-xslt-config='pkg-config libxslt' \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.2.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.2.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto.inc
new file mode 100644
index 0000000..a36ab8a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto.inc
@@ -0,0 +1,54 @@
+SUMMARY = "A Python crypto and SSL toolkit"
+HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-m2crypto:"
+
+SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \
+ file://cross-compile-platform.patch \
+ file://m2crypto-0.26.4-gcc_macros.patch \
+ "
+SRC_URI[md5sum] = "7fce3cbf85eb84a669682892b935746b"
+SRC_URI[sha256sum] = "a1b2751cdadc6afac3df8a5799676b7b7c67a6ad144bb62d38563062e7cd3fc6"
+
+PYPI_PACKAGE = "M2Crypto"
+inherit pypi siteinfo
+
+DEPENDS += "openssl swig-native"
+RDEPENDS_${PN} += "python-typing"
+
+DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR} -I${STAGING_INCDIR}"
+DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR}"
+
+SWIG_FEATURES_x86 = "-D__i386__"
+SWIG_FEATURES_x32 = "-D__ILP32__"
+SWIG_FEATURES ?= "-D__${HOST_ARCH}__"
+export SWIG_FEATURES
+
+# Get around a problem with swig, but only if the
+# multilib header file exists.
+#
+do_configure_prepend() {
+ ${CPP} -dM - < /dev/null | grep -v '__\(STDC\|REGISTER_PREFIX\|GNUC\|STDC_HOSTED\)__' \
+ | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > SWIG/gcc_macros.h
+
+ if [ "${SITEINFO_BITS}" = "64" ];then
+ bit="64"
+ else
+ bit="32"
+ fi
+
+ if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then
+ for i in SWIG/_ec.i SWIG/_evp.i; do
+ sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i"
+ done
+ elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then
+ for i in SWIG/_ec.i SWIG/_evp.i; do
+ sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i"
+ done
+ fi
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
index c71b16f..b339d93 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
@@ -10,30 +10,26 @@
setup.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
-diff --git a/setup.py b/setup.py
-index 3407c82..15ed7cd 100644
---- a/setup.py
-+++ b/setup.py
-@@ -127,7 +127,7 @@ class _M2CryptoBuildExt(build_ext.build_ext):
- self.openssl = os.path.join(self.openssl, 'OpenSSL')
- else:
- self.libraries = ['ssl', 'crypto']
-- self.openssl = '/usr'
-+ self.openssl = os.environ.get( "STAGING_DIR" )
+Index: M2Crypto-0.30.1/setup.py
+===================================================================
+--- M2Crypto-0.30.1.orig/setup.py
++++ M2Crypto-0.30.1/setup.py
+@@ -130,6 +130,7 @@ class _M2CryptoBuildExt(build_ext.build_
+ self.set_undefined_options('build', ('bundledlls', 'bundledlls'))
- def finalize_options(self):
- '''Overloaded build_ext implementation to append custom openssl
-@@ -143,8 +143,8 @@ class _M2CryptoBuildExt(build_ext.build_ext):
- if _openssl and os.path.isdir(_openssl):
- self.openssl = _openssl
+ self.libraries = ['ssl', 'crypto']
++ self.openssl = os.environ.get( "STAGING_DIR" )
+ if sys.platform == 'win32':
+ self.libraries = ['ssleay32', 'libeay32']
+ if self.openssl and openssl_version(self.openssl, 0x10100000, True):
+@@ -150,8 +151,8 @@ class _M2CryptoBuildExt(build_ext.build_
-- self.include_dirs.append(os.path.join(self.openssl, 'include'))
-- openssl_library_dir = os.path.join(self.openssl, 'lib')
-+ self.include_dirs.append(os.environ.get( "STAGING_INCDIR" ))
-+ openssl_library_dir = os.environ.get( "STAGING_LIBDIR" )
+ if self.openssl is not None:
+ log.debug('self.openssl = %s', self.openssl)
+- openssl_library_dir = os.path.join(self.openssl, 'lib')
+- openssl_include_dir = os.path.join(self.openssl, 'include')
++ openssl_library_dir = os.environ.get( "STAGING_LIBDIR" )
++ openssl_include_dir = os.environ.get( "STAGING_INCDIR" )
- if platform.system() == "Linux":
- if _multiarch: # on Fedora/RHEL it is an empty string
---
-2.7.4
-
+ self.library_dirs.append(openssl_library_dir)
+ self.include_dirs.append(openssl_include_dir)
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch
index c6654e5..4b64f46 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch
@@ -4,27 +4,30 @@
Upstream-Status: Inappropriate
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: M2Crypto-0.26.0/setup.py
+Index: M2Crypto-0.30.1/setup.py
===================================================================
---- M2Crypto-0.26.0.orig/setup.py
-+++ M2Crypto-0.26.0/setup.py
-@@ -141,19 +141,6 @@ class _M2CryptoBuildExt(build_ext.build_
- self.include_dirs.append(
- os.path.join(self.openssl, 'include', 'openssl'))
+--- M2Crypto-0.30.1.orig/setup.py
++++ M2Crypto-0.30.1/setup.py
+@@ -160,22 +160,6 @@ class _M2CryptoBuildExt(build_ext.build_
+ log.debug('self.include_dirs = %s', self.include_dirs)
+ log.debug('self.library_dirs = %s', self.library_dirs)
+- if platform.system() == "Linux":
- # For RedHat-based distros, the '-D__{arch}__' option for
- # Swig needs to be normalized, particularly on i386.
- mach = platform.machine().lower()
- if mach in ('i386', 'i486', 'i586', 'i686'):
- arch = '__i386__'
-- elif mach in ('ppc64', 'powerpc64'):
+- elif mach in ('ppc64', 'powerpc64', 'ppc64le', 'ppc64el'):
- arch = '__powerpc64__'
- elif mach in ('ppc', 'powerpc'):
- arch = '__powerpc__'
- else:
- arch = '__%s__' % mach
- self.swig_opts.append('-D%s' % arch)
+- if mach in ('ppc64le', 'ppc64el'):
+- self.swig_opts.append('-D_CALL_ELF=2')
-
self.swig_opts.extend(['-I%s' % i for i in self.include_dirs])
- self.swig_opts.append('-includeall')
- self.swig_opts.append('-modern')
+
+ # Some Linux distributor has added the following line in
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch
index 2d738cc..7f6dd29 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch
@@ -1,16 +1,22 @@
Imported from Fedora
---- M2Crypto/SWIG/_m2crypto.i 2017-09-26 11:26:33.000000000 +0200
-+++ M2Crypto-0.26.4/SWIG/_m2crypto.i 2017-09-26 21:04:14.080330741 +0200
-@@ -7,6 +7,7 @@
- * Copyright (c) 2009-2010 Heikki Toivonen. All rights reserved.
+Index: M2Crypto-0.30.1/SWIG/_m2crypto.i
+===================================================================
+--- M2Crypto-0.30.1.orig/SWIG/_m2crypto.i
++++ M2Crypto-0.30.1/SWIG/_m2crypto.i
+@@ -8,6 +8,11 @@
*
*/
-+%import "gcc_macros.h"
++%import "gcc_macros.h"
++
++%ignore WCHAR_MAX;
++%ignore WCHAR_MIN;
++
%module(threads=1) m2crypto
/* We really don't need threadblock (PyGILState_Ensure() etc.) anywhere.
-@@ -15,11 +16,6 @@
+ Disable threadallow as well, only enable it for operations likely to
+@@ -15,11 +20,6 @@
%nothreadblock;
%nothreadallow;
@@ -20,5 +26,10 @@
-#endif
-
%{
- #if __GNUC__ < 5
- #pragma GCC diagnostic ignored "-Wunused-label"
+ #ifdef _WIN32
+ #define _WINSOCKAPI_
+@@ -95,4 +95,3 @@ static PyObject *x509_store_verify_cb_fu
+ %constant int encrypt = 1;
+ %constant int decrypt = 0;
+ #endif
+-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb
deleted file mode 100644
index 272c76c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "A Python crypto and SSL toolkit"
-HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e"
-
-SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \
- file://cross-compile-platform.patch \
- file://m2crypto-0.26.4-gcc_macros.patch \
- "
-SRC_URI[md5sum] = "5c74c25ba8b45122318a165a3a2059ad"
-SRC_URI[sha256sum] = "5cae7acc0b34821f8c0ddf6665e482893fe1f198ad6379e61ffa9d8e65f5c199"
-
-PYPI_PACKAGE = "M2Crypto"
-inherit pypi setuptools siteinfo
-
-DEPENDS += "openssl swig-native"
-RDEPENDS_${PN} += "python-typing"
-
-DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_DIR_HOST} -I${STAGING_INCDIR}"
-DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_DIR_HOST}"
-
-SWIG_FEATURES_x86 = "-D__i386__"
-SWIG_FEATURES ?= "-D__${HOST_ARCH}__"
-export SWIG_FEATURES
-
-# Get around a problem with swig, but only if the
-# multilib header file exists.
-#
-do_compile_prepend() {
- ${CPP} -dM - < /dev/null | grep -v __STDC__ | grep -v __REGISTER_PREFIX__ | grep -v __GNUC__ \
- | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > SWIG/gcc_macros.h
- if [ "${SITEINFO_BITS}" = "64" ];then
- bit="64"
- else
- bit="32"
- fi
-
- if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then
- for i in SWIG/_ec.i SWIG/_evp.i; do
- sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i"
- done
- elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then
- for i in SWIG/_ec.i SWIG/_evp.i; do
- sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i"
- done
- fi
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.30.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.30.1.bb
new file mode 100644
index 0000000..c612fcd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.30.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-m2crypto.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb
index a86d158..6b63cd7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb
@@ -16,3 +16,5 @@
python-prettytable \
python-cmd2 \
python-pyparsing"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-mock_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-mock_2.0.0.bb
index 840c36e..210502f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-mock_2.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-mock_2.0.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "A Python Mocking and Patching Library for Testing"
-LICENSE = "Apache-2.0"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=de9dfbf780446b18aab11f00baaf5b7e"
SRC_URI[md5sum] = "0febfafd14330c9dcaa40de2d82d40ad"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.4.bb
deleted file mode 100644
index 4c5d8ae..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "An implementation of time.monotonic() for Python 2.0 through 3.2"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-SRC_URI[md5sum] = "29302cd6b1013b3ab0d1ed78e20d22f2"
-SRC_URI[sha256sum] = "a02611d5b518cd4051bf22d21bd0ae55b3a03f2d2993a19b6c90d9d168691f84"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "${PYTHON_PN}-ctypes ${PYTHON_PN}-io ${PYTHON_PN}-re ${PYTHON_PN}-threading"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.5.bb
new file mode 100644
index 0000000..01e7b1c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.5.bb
@@ -0,0 +1,10 @@
+SUMMARY = "An implementation of time.monotonic() for Python 2.0 through 3.2"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+SRC_URI[md5sum] = "9f81cb0e5966479754453dea2b6822f4"
+SRC_URI[sha256sum] = "23953d55076df038541e648a53676fb24980f7a1be290cdda21300b3bc21dfb0"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "${PYTHON_PN}-ctypes ${PYTHON_PN}-io ${PYTHON_PN}-re ${PYTHON_PN}-threading"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc
index d743023..91235b9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc
@@ -3,8 +3,8 @@
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0"
-SRC_URI[md5sum] = "a0d349cf9530e331697a6e5ab1f40de6"
-SRC_URI[sha256sum] = "fba4d4798dcac2965874f24afb6631b4326baa4bd02505744d34f690c354856a"
+SRC_URI[md5sum] = "b0fc8ea38f87d2c1ab1ed79a95c078f9"
+SRC_URI[sha256sum] = "d72faed0376ab039736c2ba12e30695e2788c4aa569c9c3e3d72131de2592210"
PYPI_PACKAGE = "ndg_httpsclient"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.4.bb
deleted file mode 100644
index ca0eb32..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-ndg-httpsclient.inc
-inherit pypi setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.5.1.bb
new file mode 100644
index 0000000..9cd881a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.5.1.bb
@@ -0,0 +1,6 @@
+require python-ndg-httpsclient.inc
+inherit pypi setuptools update-alternatives
+
+ALTERNATIVE_${PN} = "ndg_httpclient"
+ALTERNATIVE_LINK_NAME[ndg_httpclient] = "${bindir}/ndg_httpclient"
+ALTERNATIVE_PRIORITY = "20"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pandas.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pandas.inc
index b9f84a6..d6ca243 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pandas.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pandas.inc
@@ -6,13 +6,13 @@
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ee0470f2de336c370a71c2f8d5e81c11"
-SRC_URI[md5sum] = "c7a2757b607748255f3270221ac61d59"
-SRC_URI[sha256sum] = "44a94091dd71f05922eec661638ec1a35f26d573c119aa2fad964f10a2880e6c"
+SRC_URI[md5sum] = "7b597c7f989652e0c9af5f09a157e3ae"
+SRC_URI[sha256sum] = "5b24ca47acf69222e82530e89111dd9d14f9b970ab2cd3a1c2c78f0c4fbba4f4"
inherit pypi
DEPENDS += " \
- ${PYTHON_PN}-numpy-native \
+ ${PYTHON_PN}-numpy-native ${PYTHON_PN}-cython-native \
"
RDEPENDS_${PN} += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pandas_0.22.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pandas_0.23.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pandas_0.22.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pandas_0.23.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type.inc
new file mode 100644
index 0000000..4549ec9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type.inc
@@ -0,0 +1,12 @@
+SUMMARY = "Simplifies building parse types based on the parse module"
+HOMEPAGE = "https://github.com/jenisys/parse_type"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d07323820cca0f1d192cbbf8a0516f95"
+
+SRC_URI[md5sum] = "b5fa59e45965d1b2896023742df2e707"
+SRC_URI[sha256sum] = "f596bdc75d3dd93036fbfe3d04127da9f6df0c26c36e01e76da85adef4336b3c"
+
+PYPI_PACKAGE = "parse_type"
+inherit pypi
+
+RDEPENDS_${PN} += "${PYTHON_PN}-parse"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb
index b516c59..8e10e80 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb
@@ -1,11 +1,2 @@
-SUMMARY = "Simplifies building parse types based on the parse module"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d07323820cca0f1d192cbbf8a0516f95"
-PYPI_PACKAGE = "parse_type"
-
-SRC_URI[md5sum] = "b5fa59e45965d1b2896023742df2e707"
-SRC_URI[sha256sum] = "f596bdc75d3dd93036fbfe3d04127da9f6df0c26c36e01e76da85adef4336b3c"
-
-RDEPENDS_${PN} += "python-parse"
-
-inherit pypi setuptools
+inherit setuptools
+require python-parse-type.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc
new file mode 100644
index 0000000..fa55a93
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-parse.inc
@@ -0,0 +1,14 @@
+SUMMARY = "Parse strings using a specification based on the Python format() syntax"
+HOMEPAGE = "https://github.com/r1chardj0n3s/parse"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://parse.py;beginline=1273;endline=1291;md5=5147afdd9b3615290ad8733f0137a1a1"
+
+SRC_URI[md5sum] = "fa69ab2fe846f9b183411391f7c6897b"
+SRC_URI[sha256sum] = "c3cdf6206f22aeebfa00e5b954fcfea13d1b2dc271c75806b6025b94fb490939"
+
+inherit pypi
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-logging \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.2.bb
deleted file mode 100644
index 8e16372..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Parse strings using a specification based on the Python format() syntax"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://parse.py;beginline=1191;endline=1209;md5=5147afdd9b3615290ad8733f0137a1a1"
-
-SRC_URI[md5sum] = "42002338551bdfa0f01bbe4e679a17dd"
-SRC_URI[sha256sum] = "8048dde3f5ca07ad7ac7350460952d83b63eaacecdac1b37f45fd74870d849d2"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-logging \
- "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.4.bb
new file mode 100644
index 0000000..d31ccc7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.8.4.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-parse.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb
deleted file mode 100644
index bdff867..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Python Build Reasonableness: PBR is a library that injects some useful and sensible default behaviors into your setuptools run"
-HOMEPAGE = "https://pypi.python.org/pypi/pbr"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
-
-SRC_URI[md5sum] = "4e82c2e07af544c56a5b71c801525b00"
-SRC_URI[sha256sum] = "05f61c71aaefc02d8e37c0a3eeb9815ff526ea28b3b76324769e6158d7f95be1"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN}_class-target += " \
- python-pip \
- "
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_4.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_4.2.0.bb
new file mode 100644
index 0000000..a4b56cd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_4.2.0.bb
@@ -0,0 +1,3 @@
+inherit setuptools
+# The inc file is in oe-core
+require recipes-devtools/python/python-pbr.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb
index b12d72d..54ce978 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb
@@ -12,3 +12,5 @@
python-prettytable \
python-cmd2 \
python-pyparsing"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc
new file mode 100644
index 0000000..539c357
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery.inc
@@ -0,0 +1,7 @@
+DESCRIPTION = "A pure Python 2/3 library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux."
+HOMEPAGE = "http://pythonhosted.org/python-periphery/"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=063846af82b555d48822cf43dc6db6af"
+
+PYPI_PACKAGE = "python-periphery"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb
new file mode 100644
index 0000000..6ae7fed
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb
@@ -0,0 +1,4 @@
+inherit pypi setuptools
+require python-periphery.inc
+
+SRC_URI[sha256sum] = "fe8f351934edce72cd919b4eb070878ebff551db5e21aea61e0f446101f0a79f"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect.inc
index fa8ad01..efeab83 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect.inc
@@ -4,8 +4,8 @@
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1c7a725251880af8c6a148181665385b"
-SRC_URI[md5sum] = "913fc0a68a915cdf6ad4250493c94cf7"
-SRC_URI[sha256sum] = "9f8eb3277716a01faafaba553d629d3d60a1a624c7cf45daa600d2148c30020c"
+SRC_URI[md5sum] = "d4f3372965a996238d57d19b95d2e03a"
+SRC_URI[sha256sum] = "2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba"
UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pexpect"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect_4.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pexpect_4.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pexpect_4.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pexpect_4.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc
new file mode 100644
index 0000000..53f7783
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pint.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Interval arithmetic for Python"
+HOMEPAGE = "https://github.com/AlexandreDecan/python-intervals"
+SECTION = "devel/python"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
+
+PYPI_PACKAGE := "Pint"
+
+inherit pypi
+
+SRC_URI[md5sum] = "e1f80f3f8fc4e61f68ad3912db26b3a8"
+SRC_URI[sha256sum] = "afcf31443a478c32bbac4b00337ee9026a13d0e2ac83d30c79151462513bb0d4"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.8.1.bb
new file mode 100644
index 0000000..480f088
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pint_0.8.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-pint.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pip_18.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pip_18.0.bb
new file mode 100644
index 0000000..6b943b0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pip_18.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "PIP is a tool for installing and managing Python packages"
+HOMEPAGE = "https://pip.pypa.io/"
+LICENSE = "MIT & LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=593c6cd9d639307226978cbcae61ad4b"
+
+SRC_URI[md5sum] = "52f75ceb21e96c258f289859a2996b60"
+SRC_URI[sha256sum] = "a0e11645ee37c90b40c46d607070c4fd583e2cd46231b1c06e389c5e814eed76"
+
+inherit pypi setuptools
+
+# Since PIP is like CPAN for PERL we need to drag in all python modules to ensure everything works
+RDEPENDS_${PN}_class-target = "python-modules python-distribute python-misc"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pip_9.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pip_9.0.3.bb
deleted file mode 100644
index e3fc6ba..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pip_9.0.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "PIP is a tool for installing and managing Python packages"
-HOMEPAGE = "https://pip.pypa.io/"
-LICENSE = "MIT & LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=25fba45109565f87de20bae85bc39452"
-
-SRC_URI[md5sum] = "b15b33f9aad61f88d0f8c866d16c55d8"
-SRC_URI[sha256sum] = "7bf48f9a693be1d58f49f7af7e0ae9fe29fd671cde8a55e6edca3581c4ef5796"
-
-inherit pypi setuptools
-
-# Since PIP is like CPAN for PERL we need to drag in all python modules to ensure everything works
-RDEPENDS_${PN}_class-target = "python-modules python-distribute python-misc"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb
index 6f4390e..406555a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb
@@ -23,3 +23,5 @@
UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PrettyTable/"
UPSTREAM_CHECK_REGEX = "/PrettyTable/(?P<pver>(\d+[\.\-_]*)+)"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc
index 297c0d3..9f00615 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-progress.inc
@@ -3,8 +3,8 @@
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=aef5566ac4fede9815eccf124c281317"
-SRC_URI[md5sum] = "f65ccfcc2339d522b2dd5801aaa40dc7"
-SRC_URI[sha256sum] = "c88d89ee3bd06716a0b8b5504d9c3bcb3c1c0ab98f96dc7f1dc5f56812a4f60a"
+SRC_URI[md5sum] = "057981e2f09029288f5255b1ea3ab64d"
+SRC_URI[sha256sum] = "5e2f9da88ed8236a76fffbee3ceefd259589cf42dfbc2cec2877102189fae58a"
RDEPENDS_${PN}_class-target += " \
${PYTHON_PN}-datetime \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-progress_1.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc
index cc409a4..1a4bd35 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit.inc
@@ -2,8 +2,8 @@
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
-SRC_URI[md5sum] = "8fe70295006dbc8afedd43e5eba99032"
-SRC_URI[sha256sum] = "858588f1983ca497f1cf4ffde01d978a3ea02b01c8a26a8bbc5cd2e66d816917"
+SRC_URI[md5sum] = "8db8b8e40e91bc6dce133d8d5727a717"
+SRC_URI[sha256sum] = "ff58ce8bb82c11c43416dd3eec7701dcbe8c576e2d7649f1d2b9d21a2fd93808"
PYPI_PACKAGE = "prompt_toolkit"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-prompt-toolkit_2.0.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc
index b84983d..b617904 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc
@@ -7,8 +7,14 @@
inherit pypi
-SRC_URI[md5sum] = "393a53483224cb338df5c643646c0300"
-SRC_URI[sha256sum] = "09879a295fd7234e523b62066223b128c5a8a88f682e3aff62fb115e4a0d8be0"
+SRC_URI[md5sum] = "e2daef80e70249aa1f05363670c6b3f8"
+SRC_URI[sha256sum] = "1489b376b0f364bcc6f89519718c057eb191d7ad6f1b395ffd93d1aa45587811"
+
+# http://errors.yoctoproject.org/Errors/Details/184715/
+# Can't find required file: ../src/google/protobuf/descriptor.proto
+CLEANBROKEN = "1"
+
+UPSTREAM_CHECK_REGEX = "protobuf/(?P<pver>\d+(\.\d+)+)/"
RDEPENDS_${PN} += " \
${PYTHON_PN}-datetime \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf_3.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf_3.6.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-protobuf_3.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-protobuf_3.6.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc
index 5d8e61f..67ae118 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-psutil.inc
@@ -2,8 +2,8 @@
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0f02e99f7f3c9a7fe8ecfc5d44c2be62"
-SRC_URI[md5sum] = "3b291833dbea631db9d271aa602a169a"
-SRC_URI[sha256sum] = "e2467e9312c2fa191687b89ff4bc2ad8843be4af6fb4dc95a7cc5f7d7a327b18"
+SRC_URI[md5sum] = "200e073cdd56cc7a9ba9a06088569200"
+SRC_URI[sha256sum] = "686e5a35fe4c0acc25f3466c32e716f2d498aaae7b7edc03e2305b682226bcf6"
PACKAGES =+ "${PN}-tests"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.4.6.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.4.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-psutil_5.4.6.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ptyprocess.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-ptyprocess.inc
index 43f2d09..49cc5a4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-ptyprocess.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-ptyprocess.inc
@@ -6,8 +6,8 @@
SRCNAME = "ptyprocess"
-SRC_URI[md5sum] = "d3b8febae1b8c53b054bd818d0bb8665"
-SRC_URI[sha256sum] = "e64193f0047ad603b71f202332ab5527c5e52aa7c8b609704fc28c0dc20c4365"
+SRC_URI[md5sum] = "37402d69f3b50913d4d483587bffad8f"
+SRC_URI[sha256sum] = "923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0"
UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ptyprocess"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-ptyprocess_0.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-ptyprocess_0.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-py.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-py.inc
index c7d6727..8144523 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-py.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-py.inc
@@ -3,7 +3,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9"
-SRC_URI[md5sum] = "279ca69c632069e1b71e11b14641ca28"
-SRC_URI[sha256sum] = "ca18943e28235417756316bfada6cd96b23ce60dd532642690dcfdaba988a76d"
+SRC_URI[md5sum] = "5ccd0cd5373c55171cf9fd61b9f19a1b"
+SRC_URI[sha256sum] = "06a30435d058473046be836d3fc4f27167fd84c45b99704f2fb5509ef61f9af1"
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-py_1.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-py_1.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules.inc
index 9fa54cf..87dbd1d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules.inc
@@ -4,10 +4,10 @@
data structures (X.509, PKCS etc.)."
HOMEPAGE = "https://github.com/etingof/pyasn1-modules"
LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=280606d9c18f200e03e0c247ac61475a"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=815ac3f9ca693006349094b358ab3155"
-SRC_URI[md5sum] = "ff938698590f314ff9b3d5c48737d899"
-SRC_URI[sha256sum] = "af00ea8f2022b6287dc375b2c70f31ab5af83989fc6fe9eacd4976ce26cd7ccc"
+SRC_URI[md5sum] = "65ce1ea1021679bffe96065baab232de"
+SRC_URI[sha256sum] = "a0cf3e1842e7c60fde97cb22d275eb6f9524f5c5250489e292529de841417547"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc
index f3c32e0..ab34d25 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc
@@ -1,10 +1,10 @@
SUMMARY = "Python library implementing ASN.1 types."
HOMEPAGE = "http://pyasn1.sourceforge.net/"
LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=280606d9c18f200e03e0c247ac61475a"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=815ac3f9ca693006349094b358ab3155"
-SRC_URI[md5sum] = "cb5883ddc6a9f405600429f37cf0759c"
-SRC_URI[sha256sum] = "d258b0a71994f7770599835249cece1caef3c70def868c4915e6e5ca49b67d15"
+SRC_URI[md5sum] = "0d182b71e1f72fe147d7957bc90be7f2"
+SRC_URI[sha256sum] = "f58f2a3d12fd754aa123e9fa74fb7345333000a035f3921dbdaa08597aa53137"
RDEPENDS_${PN}_class-target += " \
${PYTHON_PN}-codecs \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.4.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.4.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.4.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc
index e441dc6..1722875 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11.inc
@@ -3,5 +3,5 @@
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=beb87117af69fd10fbf9fb14c22a2e62"
-SRC_URI[md5sum] = "2c651a75a20dabbaa18a8b023ffd54c0"
-SRC_URI[sha256sum] = "cbb036a8aad59a199ad672f98813f85c672642c6a67b4ff3868b1d6abc5fae3e"
+SRC_URI[md5sum] = "5b9611041e4ea66b2b919239e3bacd65"
+SRC_URI[sha256sum] = "87ff3ae777d9326349af5272974581270b2a0909b2392dc0cc57eb28ce23bcc3"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pybind11_2.2.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle.inc
new file mode 100644
index 0000000..c0e46b7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle.inc
@@ -0,0 +1,12 @@
+SUMMARY = "Python style guide checker (formly called pep8)"
+HOMEPAGE = "https://pypi.org/project/pycodestyle"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=01831ddbaf398471da3cc87f5037e822"
+
+SRC_URI[md5sum] = "85bbebd2c90d2f833c1db467d4d0e9a3"
+SRC_URI[sha256sum] = "cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a"
+
+inherit pypi
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle_2.4.0.bb
new file mode 100644
index 0000000..7c736e7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pycodestyle_2.4.0.bb
@@ -0,0 +1,4 @@
+inherit setuptools
+require python-pycodestyle.inc
+
+RDEPENDS_${PN} += "${PYTHON_PN}-lang"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb
index 2444859..a16a880 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb
@@ -12,3 +12,5 @@
${PYTHON_PN}-prettytable \
${PYTHON_PN}-cmd2 \
${PYTHON_PN}-pyparsing"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch
new file mode 100644
index 0000000..09c4394
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch
@@ -0,0 +1,69 @@
+From 2ef124e235a47dd4742813cf80e11a89cf4f02f8 Mon Sep 17 00:00:00 2001
+From: Andrew Jeffery <andrew@aj.id.au>
+Date: Thu, 3 May 2018 12:35:31 +0930
+Subject: [PATCH] ptrace: Abstract over user_regs_struct name, which differs on
+ ARM32
+
+Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
+---
+ src/ptrace.cc | 6 +++---
+ src/ptrace.h | 10 ++++++++--
+ 2 files changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/src/ptrace.cc b/src/ptrace.cc
+index 485f58e4d82e..610fabb3b8e8 100644
+--- a/src/ptrace.cc
++++ b/src/ptrace.cc
+@@ -122,8 +122,8 @@ void PtraceInterrupt(pid_t pid) {
+ DoWait(pid);
+ }
+
+-struct user_regs_struct PtraceGetRegs(pid_t pid) {
+- struct user_regs_struct regs;
++user_regs_struct PtraceGetRegs(pid_t pid) {
++ user_regs_struct regs;
+ if (ptrace(PTRACE_GETREGS, pid, 0, ®s)) {
+ std::ostringstream ss;
+ ss << "Failed to PTRACE_GETREGS: " << strerror(errno);
+@@ -132,7 +132,7 @@ struct user_regs_struct PtraceGetRegs(pid_t pid) {
+ return regs;
+ }
+
+-void PtraceSetRegs(pid_t pid, struct user_regs_struct regs) {
++void PtraceSetRegs(pid_t pid, user_regs_struct regs) {
+ if (ptrace(PTRACE_SETREGS, pid, 0, ®s)) {
+ std::ostringstream ss;
+ ss << "Failed to PTRACE_SETREGS: " << strerror(errno);
+diff --git a/src/ptrace.h b/src/ptrace.h
+index 7083be1c4dfd..d6af8bf9f83a 100644
+--- a/src/ptrace.h
++++ b/src/ptrace.h
+@@ -23,6 +23,12 @@
+
+ #include "./config.h"
+
++#if defined(__arm__)
++typedef struct user_regs user_regs_struct;
++#else
++typedef struct user_regs_struct user_regs_struct;
++#endif
++
+ namespace pyflame {
+
+ int DoWait(pid_t pid, int options = 0);
+@@ -39,10 +45,10 @@ void PtraceSeize(pid_t pid);
+ void PtraceInterrupt(pid_t pid);
+
+ // get regs from a process
+-struct user_regs_struct PtraceGetRegs(pid_t pid);
++user_regs_struct PtraceGetRegs(pid_t pid);
+
+ // set regs in a process
+-void PtraceSetRegs(pid_t pid, struct user_regs_struct regs);
++void PtraceSetRegs(pid_t pid, user_regs_struct regs);
+
+ // poke a long word into an address
+ void PtracePoke(pid_t pid, unsigned long addr, long data);
+--
+2.14.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch
new file mode 100644
index 0000000..3eefc9c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch
@@ -0,0 +1,134 @@
+From 007965d341349679607699d005c4af811b2c419a Mon Sep 17 00:00:00 2001
+From: Andrew Jeffery <andrew@aj.id.au>
+Date: Fri, 4 May 2018 11:23:53 +0930
+Subject: [PATCH] symbol: Account for prelinked shared objects
+
+Some projects, such as those derived from Yocto, tend to prelink their
+binaries and libraries to reduce runtime overhead. Currently this trips
+up pyflame in its symbol address calculations, and leads to ptrace
+failures due to spurious addresses:
+
+ $ pyflame -t python -c "print 'foo'"
+ Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
+ Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
+ Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
+ Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
+ Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
+ ...
+
+Add support for reading a prelinked base p_vaddr out of the ELF and
+adjust the PyAddresses values accordingly.
+
+Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
+---
+ src/symbol.cc | 15 +++++++++++++++
+ src/symbol.h | 29 ++++++++++++++++++++++++++++-
+ 2 files changed, 43 insertions(+), 1 deletion(-)
+
+diff --git a/src/symbol.cc b/src/symbol.cc
+index 125174efeeb5..39c3e8132dd1 100644
+--- a/src/symbol.cc
++++ b/src/symbol.cc
+@@ -166,6 +166,17 @@ PyABI ELF::WalkTable(int sym, int str, PyAddresses *addrs) {
+ return abi;
+ }
+
++addr_t ELF::GetBaseAddress() {
++ int32_t phnum = hdr()->e_phnum;
++ int32_t i;
++ for (i = 0; i < phnum && phdr(i)->p_type != PT_LOAD; i++) {
++ }
++ if (i == phnum) {
++ throw FatalException("Failed to find PT_LOAD entry in program headers");
++ }
++ return phdr(i)->p_vaddr;
++}
++
+ PyAddresses ELF::GetAddresses(PyABI *abi) {
+ PyAddresses addrs;
+ PyABI detected_abi = WalkTable(dynsym_, dynstr_, &addrs);
+@@ -176,6 +187,10 @@ PyAddresses ELF::GetAddresses(PyABI *abi) {
+ if (abi != nullptr) {
+ *abi = detected_abi;
+ }
++ // Handle prelinked shared objects
++ if (hdr()->e_type == ET_DYN) {
++ return addrs - GetBaseAddress();
++ }
+ return addrs;
+ }
+ } // namespace pyflame
+diff --git a/src/symbol.h b/src/symbol.h
+index 124853bcc1c1..bb92b9a2604b 100644
+--- a/src/symbol.h
++++ b/src/symbol.h
+@@ -28,15 +28,19 @@
+
+ #if USE_ELF64
+ #define ehdr_t Elf64_Ehdr
++#define phdr_t Elf64_Phdr
+ #define shdr_t Elf64_Shdr
+ #define dyn_t Elf64_Dyn
+ #define sym_t Elf64_Sym
++#define addr_t Elf64_Addr
+ #define ARCH_ELFCLASS ELFCLASS64
+ #else
+ #define ehdr_t Elf32_Ehdr
++#define phdr_t Elf32_Phdr
+ #define shdr_t Elf32_Shdr
+ #define dyn_t Elf32_Dyn
+ #define sym_t Elf32_Sym
++#define addr_t Elf32_Addr
+ #define ARCH_ELFCLASS ELFCLASS32
+ #endif
+
+@@ -67,8 +71,18 @@ struct PyAddresses {
+ interp_head_hint(0),
+ pie(false) {}
+
++ PyAddresses operator-(const unsigned long base) const {
++ PyAddresses res(*this);
++ res.tstate_addr = this->tstate_addr == 0 ? 0 : this->tstate_addr - base;
++ res.interp_head_addr =
++ this->interp_head_addr == 0 ? 0 : this->interp_head_addr - base;
++ res.interp_head_fn_addr =
++ this->interp_head_fn_addr == 0 ? 0 : this->interp_head_fn_addr - base;
++ return res;
++ }
++
+ PyAddresses operator+(const unsigned long base) const {
+- PyAddresses res;
++ PyAddresses res(*this);
+ res.tstate_addr = this->tstate_addr == 0 ? 0 : this->tstate_addr + base;
+ res.interp_head_addr =
+ this->interp_head_addr == 0 ? 0 : this->interp_head_addr + base;
+@@ -113,6 +127,9 @@ class ELF {
+ // ABI.
+ PyAddresses GetAddresses(PyABI *abi);
+
++ // Extract the base load address from the Program Header table
++ addr_t GetBaseAddress();
++
+ private:
+ void *addr_;
+ size_t length_;
+@@ -122,6 +139,16 @@ class ELF {
+ return reinterpret_cast<const ehdr_t *>(addr_);
+ }
+
++ inline const phdr_t *phdr(int idx) const {
++ if (idx < 0) {
++ std::ostringstream ss;
++ ss << "Illegal phdr index: " << idx;
++ throw FatalException(ss.str());
++ }
++ return reinterpret_cast<const phdr_t *>(p() + hdr()->e_phoff +
++ idx * hdr()->e_phentsize);
++ }
++
+ inline const shdr_t *shdr(int idx) const {
+ if (idx < 0) {
+ std::ostringstream ss;
+--
+2.14.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame.inc
new file mode 100644
index 0000000..340aab7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame.inc
@@ -0,0 +1,15 @@
+SUMMARY = "Pyflame: A Ptracing Profiler For Python"
+HOMEPAGE = "https://github.com/uber/pyflame"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+DEPENDS = "python"
+
+SRC_URI = "git://github.com/uber/pyflame.git;protocol=https"
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools
+
+COMPATIBLE_HOST_libc-musl_class-target = "null"
+COMPATIBLE_HOST_mipsarch_class-target = "null"
+COMPATIBLE_HOST_aarch64_class-target = "null"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb
new file mode 100644
index 0000000..8dedb89
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb
@@ -0,0 +1,6 @@
+require python-pyflame.inc
+
+# v1.6.6
+SRCREV = "8a9d8c2acc3b3bb027475b738134f1e6fff14e6c"
+SRC_URI += "file://0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch"
+SRC_URI += "file://0001-symbol-Account-for-prelinked-shared-objects.patch"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyiface.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyiface.inc
index 620b244..2e398fc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyiface.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyiface.inc
@@ -5,7 +5,7 @@
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fe869ee987a340198fb0d54c55c47f1"
-SRC_URI[md5sum] = "06c3c71fe51df740dae6a88a13afb5e0"
-SRC_URI[sha256sum] = "4bb79100cbcf7344a1ccaddc578cd6455da47d8eac6eb1bf903ec32e043af924"
+SRC_URI[md5sum] = "b066aa984656742738127c9c75436ab4"
+SRC_URI[sha256sum] = "e231e5735d329c5b2d4fc8854f069fdaa5436d3ef91ed64ee49e41e3f5e8a3f5"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyiface_0.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyiface_0.0.11.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pyiface_0.0.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pyiface_0.0.11.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc
index 9f9282e..00c38e3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt.inc
@@ -6,8 +6,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=68626705a7b513ca8d5f44a3e200ed0c"
-SRC_URI[md5sum] = "f7dbe0d62f2087a7605946aeeca02541"
-SRC_URI[sha256sum] = "dacba5786fe3bf1a0ae8673874e29f9ac497860955c501289c63b15d3daae63a"
+SRC_URI[md5sum] = "2731c6b66b67b95d1944f072f5fa35a9"
+SRC_URI[sha256sum] = "4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176"
PYPI_PACKAGE = "PyJWT"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pyjwt_1.6.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc
index 7765cc5..468a801 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc
@@ -3,8 +3,8 @@
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
-SRC_URI[md5sum] = "d4fee2abb2d7468010b7fe9ebc68b0cb"
-SRC_URI[sha256sum] = "304fbd8862dfde27d767c093de87fec42fc63c70d8393643d1a3b4f765aae78f"
+SRC_URI[md5sum] = "6d549b36cbfa8c1a3323c5d6e299789e"
+SRC_URI[sha256sum] = "f4ed2000cbe1a314f1f88fd8a8eba4ad05974b351b96f1235c6e532158a39fe0"
RDEPENDS_${PN} += " \
${PYTHON_PN}-dateutil \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.89.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.93.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.89.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.4.93.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc
index baf3dd5..b5277f1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc
@@ -8,8 +8,8 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SRC_URI[md5sum] = "0d72c87fb93cea0759529befafefce54"
-SRC_URI[sha256sum] = "f7ebcb846962ee40374db2d9014a89bea9c983ae63c1877957c3a0a756974796"
+SRC_URI[md5sum] = "7449c81a6c32c3c8cb9bebebc848fded"
+SRC_URI[sha256sum] = "f14fb6c4058772a0d74d82874d3b89d7264d89b4ed7fa0413ea0ef8112b268b9"
PACKAGES =+ "${PYTHON_PN}-bson"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.7.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.7.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl.inc
index 7722e8e..516e795 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl.inc
@@ -5,8 +5,8 @@
DEPENDS += "openssl ${PYTHON_PN}-cryptography"
-SRC_URI[md5sum] = "d9c5134db8bf3183573b7840954cac94"
-SRC_URI[sha256sum] = "2c10cfba46a52c0b0950118981d61e72c1e5b1aac451ca1bc77de1a679456773"
+SRC_URI[md5sum] = "c92e9c85b520b7e153fef0f7f3c5dda7"
+SRC_URI[sha256sum] = "6488f1423b00f73b7ad5167885312bb0ce410d3312eb212393795b53c8caa580"
PYPI_PACKAGE = "pyOpenSSL"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_17.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_18.0.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_17.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_18.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyperclip.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyperclip.inc
index e05de67..4ee47ee 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyperclip.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyperclip.inc
@@ -1,12 +1,14 @@
DESCRIPTION = "A cross-platform clipboard module for Python. (only handles plain text for now)"
LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=1ed92115c8f96b19ec34ed09df586e51"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=4a3129a2c1b8bdc0e2895a1ec0e2dae2"
-SRC_URI[md5sum] = "d2f6a3129cd6f2518b52bb0b8deeeda7"
-SRC_URI[sha256sum] = "ce829433a9af640e08ee89b20f7c62132714bcc5d77df114044d0fccb8c3b3b8"
+SRC_URI[md5sum] = "3680607974f99d6e4411b102358b1884"
+SRC_URI[sha256sum] = "43496f0a1f363a5ecfc4cda5eba6a2a3d5056fe6c7ffb9a99fbb1c5a3c7dea05"
inherit pypi
RDEPENDS_${PN} += " \
${PYTHON_PN}-ctypes \
"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyperclip_1.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyperclip_1.6.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pyperclip_1.6.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pyperclip_1.6.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc
index 9ec9866..ed1981e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2.inc
@@ -3,8 +3,8 @@
LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSE.Apache.v2;md5=34281e312165f843a2b7d1f114fe65ce"
-SRC_URI[md5sum] = "9c251543c4282a2f8b1a8d6aa8afc688"
-SRC_URI[sha256sum] = "7afad28ee0a0f3e7c34adaa9f953d00560ed9910203e93f107833b6e8d151171"
+SRC_URI[md5sum] = "2f6f951e94356ae9d224f417dc6ebed2"
+SRC_URI[sha256sum] = "42bf74495d95a0196a74dd171357f660175aba2bfc23f9b5f63e3830ccbef9ac"
FILESEXTRAPATHS_prepend := "${THISDIR}/python-pyroute2:"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.4.21.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.4.21.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.5.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc
new file mode 100644
index 0000000..a69867d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "This plugin does not provide any helpers to pytest, it does, however, provide a helpers namespace in pytest which enables you to register helper functions in your conftest.py to be used within your tests without having to import them."
+HOMEPAGE = "https://github.com/saltstack/pytest-helpers-namespace"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=71fac4dfeee99c39c51f617e9486237c"
+
+SRC_URI[md5sum] = "80fe3e515f640b1459709b539f6b857e"
+SRC_URI[sha256sum] = "d8bdb017c0f7271699c08850b6b12e1ce9e52913cbd4461b5febd21082a29113"
+
+inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2016.7.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2016.7.10.bb
new file mode 100644
index 0000000..2b6ee85
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-helpers-namespace_2016.7.10.bb
@@ -0,0 +1,7 @@
+require python-pytest-helpers-namespace.inc
+
+inherit setuptools
+
+RDEPENDS_${PN} += " \
+ python-pytest \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc
index 7546743..3b057b0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner.inc
@@ -2,8 +2,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e"
-SRC_URI[md5sum] = "8f8363a52bbabc4cedd5e239beb2ba11"
-SRC_URI[sha256sum] = "0f7c3a3cf5aead13f54baaa01ceb49e5ae92aba5d3ff1928e81e189c40bc6703"
+SRC_URI[md5sum] = "4b696b0f35767f0694f183d0a1855300"
+SRC_URI[sha256sum] = "d23f117be39919f00dd91bffeb4f15e031ec797501b717a245e377aee0f577be"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_4.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pytest-runner_4.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc
new file mode 100644
index 0000000..196f6d6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Adds support for a predictable and repeatable temporary directory."
+HOMEPAGE = "https://github.com/saltstack/pytest-tempdir"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=8751a9cf4a70be4f02697a9b89e686ce"
+
+SRC_URI[md5sum] = "f87f2583f5f8aaca7203d57ada3948b5"
+SRC_URI[sha256sum] = "65ff815966ea6dfc07ca1b43747c9888a6d883971170e67b16290f9f50d434ea"
+
+inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2016.8.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2016.8.20.bb
new file mode 100644
index 0000000..8a9b83e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytest-tempdir_2016.8.20.bb
@@ -0,0 +1,7 @@
+require python-pytest-tempdir.inc
+
+inherit setuptools
+
+RDEPENDS_${PN} += " \
+ python-pytest \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytz.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pytz.inc
index 519487f..aedffe1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pytz.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pytz.inc
@@ -5,8 +5,8 @@
inherit pypi
-SRC_URI[md5sum] = "f054437920c895dd14a4509fabafe029"
-SRC_URI[sha256sum] = "c06425302f2cf668f1bba7a0a03f3c1d34d4ebeef2c72003da308b3947c7f749"
+SRC_URI[md5sum] = "45409cbfa3927bdd2f3ee914dd5b1060"
+SRC_URI[sha256sum] = "ffb9ef1de172603304d9d2819af6f5ece76f2e85ec10692a524dd876e72bf277"
RDEPENDS_${PN}_class-target += "\
${PYTHON_PN}-datetime \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2018.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2018.5.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2018.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2018.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev.inc
index cb906c9..683a75c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev.inc
@@ -15,4 +15,5 @@
${PYTHON_PN}-misc \
${PYTHON_PN}-six \
${PYTHON_PN}-threading \
+ libudev \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml.inc
index 3fef0ca..afce543 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml.inc
@@ -2,14 +2,14 @@
HOMEPAGE = "http://www.pyyaml.org"
SECTION = "devel/python"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5591701d32590f9fa94f3bfee820b634"
DEPENDS = "libyaml ${PYTHON_PN}-cython-native ${PYTHON_PN}"
PYPI_PACKAGE = "PyYAML"
inherit pypi
-SRC_URI[md5sum] = "4c129761b661d181ebf7ff4eb2d79950"
-SRC_URI[sha256sum] = "592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab"
+SRC_URI[md5sum] = "b78b96636d68ac581c0e2f38158c224f"
+SRC_URI[sha256sum] = "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf"
RDEPENDS_${PN} += "\
${PYTHON_PN}-datetime \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.13.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.12.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.13.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq.inc
new file mode 100644
index 0000000..2447c2f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq.inc
@@ -0,0 +1,27 @@
+SUMMARY = "Pyzmq provides Zero message queue access for the Python language"
+HOMEPAGE = "http://zeromq.org/bindings:python"
+LICENSE = "BSD & LGPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e \
+ file://COPYING.LESSER;md5=12c592fa0bcfff3fb0977b066e9cb69e"
+DEPENDS = "zeromq"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-pyzmq:"
+
+SRC_URI += "file://club-rpath-out.patch"
+SRC_URI[md5sum] = "aecdfc328193fbd81f6dc23228319943"
+SRC_URI[sha256sum] = "2199f753a230e26aec5238b0518b036780708a4c887d4944519681a920b9dee4"
+
+inherit pypi pkgconfig
+
+RDEPENDS_${PN} += "${PYTHON_PN}-multiprocessing"
+
+FILES_${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/zmq/backend/cython/.debug"
+
+do_compile_prepend() {
+ echo [global] > ${S}/setup.cfg
+ echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg
+ echo have_sys_un_h = True >> ${S}/setup.cfg
+ echo skip_check_zmq = True >> ${S}/setup.cfg
+ echo libzmq_extension = False >> ${S}/setup.cfg
+ echo no_libzmq_extension = True >> ${S}/setup.cfg
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch
index 2dc3b73..936f165 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch
@@ -1,26 +1,13 @@
diff --git a/setup.py b/setup.py
-index 62df445..1fdbdeb 100755
+index d243eaa..98099bc 100755
--- a/setup.py
+++ b/setup.py
-@@ -213,12 +213,6 @@ def settings_from_prefix(prefix=None, bundle_libzmq_dylib=False):
- pass
- # unused rpath args for OS X:
- # settings['extra_link_args'] = ['-Wl,-rpath','-Wl,$ORIGIN/..']
-- else:
-- settings['runtime_library_dirs'] += ['$ORIGIN/..']
-- elif sys.platform != 'darwin':
-- settings['runtime_library_dirs'] += [
-- os.path.abspath(x) for x in settings['library_dirs']
-- ]
-
- return settings
+@@ -192,8 +192,6 @@ def _add_rpath(settings, path):
+ """
+ if sys.platform == 'darwin':
+ settings['extra_link_args'].extend(['-Wl,-rpath','-Wl,%s' % path])
+- else:
+- settings['runtime_library_dirs'].append(path)
-@@ -592,8 +586,6 @@ class Configure(build_ext):
- pass
- # unused rpath args for OS X:
- # settings['extra_link_args'] = ['-Wl,-rpath','-Wl,$ORIGIN/../zmq']
-- else:
-- settings['runtime_library_dirs'] = [ os.path.abspath(pjoin('.', 'zmq')) ]
-
- line()
- info("Configure: Autodetecting ZMQ settings...")
+ def settings_from_prefix(prefix=None, bundle_libzmq_dylib=False):
+ """load appropriate library/include settings from ZMQ prefix"""
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb
deleted file mode 100644
index b5baf82..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Pyzmq provides Zero message queue access for the Python language"
-HOMEPAGE = "http://zeromq.org/bindings:python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e"
-DEPENDS = "zeromq"
-
-SRC_URI = "file://club-rpath-out.patch"
-SRC_URI[md5sum] = "87e3abb33af5794db5ae85c667bbf324"
-SRC_URI[sha256sum] = "77994f80360488e7153e64e5959dc5471531d1648e3a4bff14a714d074a38cc2"
-
-inherit pypi setuptools pkgconfig
-
-RDEPENDS_${PN} += "python-multiprocessing"
-
-FILES_${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/zmq/backend/cython/.debug"
-
-do_compile_prepend() {
- echo [global] > ${S}/setup.cfg
- echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg
- echo have_sys_un_h = True >> ${S}/setup.cfg
- echo skip_check_zmq = True >> ${S}/setup.cfg
- echo libzmq_extension = False >> ${S}/setup.cfg
- echo no_libzmq_extension = True >> ${S}/setup.cfg
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_17.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_17.1.0.bb
new file mode 100644
index 0000000..b690106
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_17.1.0.bb
@@ -0,0 +1,2 @@
+require python-pyzmq.inc
+inherit setuptools
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
index 5d6dca5..301c2f8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
@@ -1,10 +1,16 @@
DESCRIPTION = "Python HTTP for Humans."
HOMEPAGE = "http://python-requests.org"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=979d6a23b143e13ea0e5e3aa81248820"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bfbeafb85a2cee261510d65d5ec19156"
-SRC_URI[md5sum] = "081412b2ef79bdc48229891af13f4d82"
-SRC_URI[sha256sum] = "9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e"
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-requests:"
+
+SRC_URI += "file://0001-Strip-Authorization-header-whenever-root-URL-changes.patch \
+ file://0002-Rework-authorization-stripping-logic-as-discussed.patch \
+ "
+
+SRC_URI[md5sum] = "6c1a31afec9d614e2e71a91ee6ca2878"
+SRC_URI[sha256sum] = "ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0001-Strip-Authorization-header-whenever-root-URL-changes.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0001-Strip-Authorization-header-whenever-root-URL-changes.patch
new file mode 100644
index 0000000..80ef5ff
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0001-Strip-Authorization-header-whenever-root-URL-changes.patch
@@ -0,0 +1,62 @@
+From fb0d391138df48e93c44a2087ea796cca5e229c0 Mon Sep 17 00:00:00 2001
+From: Bruce Merry <bmerry@ska.ac.za>
+Date: Thu, 28 Jun 2018 16:38:42 +0200
+Subject: [PATCH 1/2] Strip Authorization header whenever root URL changes
+
+Previously the header was stripped only if the hostname changed, but in
+an https -> http redirect that can leak the credentials on the wire
+(#4716). Based on with RFC 7235 section 2.2, the header is now stripped
+if the "canonical root URL" (scheme+authority) has changed, by checking
+scheme, hostname and port.
+
+Upstream-Status: Backport
+
+Fix CVE-2018-18074
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ requests/sessions.py | 4 +++-
+ tests/test_requests.py | 12 +++++++++++-
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/requests/sessions.py b/requests/sessions.py
+index ba13526..2969d83 100644
+--- a/requests/sessions.py
++++ b/requests/sessions.py
+@@ -242,7 +242,9 @@ class SessionRedirectMixin(object):
+ original_parsed = urlparse(response.request.url)
+ redirect_parsed = urlparse(url)
+
+- if (original_parsed.hostname != redirect_parsed.hostname):
++ if (original_parsed.hostname != redirect_parsed.hostname
++ or original_parsed.port != redirect_parsed.port
++ or original_parsed.scheme != redirect_parsed.scheme):
+ del headers['Authorization']
+
+ # .netrc might have more auth for us on our new host.
+diff --git a/tests/test_requests.py b/tests/test_requests.py
+index fcddb1d..e0e801a 100644
+--- a/tests/test_requests.py
++++ b/tests/test_requests.py
+@@ -1575,7 +1575,17 @@ class TestRequests:
+ auth=('user', 'pass'),
+ )
+ assert r.history[0].request.headers['Authorization']
+- assert not r.request.headers.get('Authorization', '')
++ assert 'Authorization' not in r.request.headers
++
++ def test_auth_is_stripped_on_scheme_redirect(self, httpbin, httpbin_secure, httpbin_ca_bundle):
++ r = requests.get(
++ httpbin_secure('redirect-to'),
++ params={'url': httpbin('get')},
++ auth=('user', 'pass'),
++ verify=httpbin_ca_bundle
++ )
++ assert r.history[0].request.headers['Authorization']
++ assert 'Authorization' not in r.request.headers
+
+ def test_auth_is_retained_for_redirect_on_host(self, httpbin):
+ r = requests.get(httpbin('redirect/1'), auth=('user', 'pass'))
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0002-Rework-authorization-stripping-logic-as-discussed.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0002-Rework-authorization-stripping-logic-as-discussed.patch
new file mode 100644
index 0000000..ef069fb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0002-Rework-authorization-stripping-logic-as-discussed.patch
@@ -0,0 +1,118 @@
+From 698c2fa850bfc8b3bdb768e1c1cd6d57e643811d Mon Sep 17 00:00:00 2001
+From: Bruce Merry <bmerry@ska.ac.za>
+Date: Tue, 14 Aug 2018 13:30:43 +0200
+Subject: [PATCH 2/2] Rework authorization stripping logic as discussed
+
+The exception for http->https upgrade now requires the standard HTTP(S)
+ports to be used, either implicitly (no port specified) or explicitly.
+
+Upstream-Status: Backport
+
+Follow-up fix for CVE-2018-18074
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ requests/sessions.py | 26 ++++++++++++++++++--------
+ tests/test_requests.py | 33 ++++++++++++++++++++++-----------
+ 2 files changed, 40 insertions(+), 19 deletions(-)
+
+diff --git a/requests/sessions.py b/requests/sessions.py
+index 2969d83..c11a3a2 100644
+--- a/requests/sessions.py
++++ b/requests/sessions.py
+@@ -115,6 +115,22 @@ class SessionRedirectMixin(object):
+ return to_native_string(location, 'utf8')
+ return None
+
++ def should_strip_auth(self, old_url, new_url):
++ """Decide whether Authorization header should be removed when redirecting"""
++ old_parsed = urlparse(old_url)
++ new_parsed = urlparse(new_url)
++ if old_parsed.hostname != new_parsed.hostname:
++ return True
++ # Special case: allow http -> https redirect when using the standard
++ # ports. This isn't specified by RFC 7235, but is kept to avoid
++ # breaking backwards compatibility with older versions of requests
++ # that allowed any redirects on the same host.
++ if (old_parsed.scheme == 'http' and old_parsed.port in (80, None)
++ and new_parsed.scheme == 'https' and new_parsed.port in (443, None)):
++ return False
++ # Standard case: root URI must match
++ return old_parsed.port != new_parsed.port or old_parsed.scheme != new_parsed.scheme
++
+ def resolve_redirects(self, resp, req, stream=False, timeout=None,
+ verify=True, cert=None, proxies=None, yield_requests=False, **adapter_kwargs):
+ """Receives a Response. Returns a generator of Responses or Requests."""
+@@ -236,16 +252,10 @@ class SessionRedirectMixin(object):
+ headers = prepared_request.headers
+ url = prepared_request.url
+
+- if 'Authorization' in headers:
++ if 'Authorization' in headers and self.should_strip_auth(response.request.url, url):
+ # If we get redirected to a new host, we should strip out any
+ # authentication headers.
+- original_parsed = urlparse(response.request.url)
+- redirect_parsed = urlparse(url)
+-
+- if (original_parsed.hostname != redirect_parsed.hostname
+- or original_parsed.port != redirect_parsed.port
+- or original_parsed.scheme != redirect_parsed.scheme):
+- del headers['Authorization']
++ del headers['Authorization']
+
+ # .netrc might have more auth for us on our new host.
+ new_auth = get_netrc_auth(url) if self.trust_env else None
+diff --git a/tests/test_requests.py b/tests/test_requests.py
+index e0e801a..148067b 100644
+--- a/tests/test_requests.py
++++ b/tests/test_requests.py
+@@ -1567,17 +1567,7 @@ class TestRequests:
+ preq = req.prepare()
+ assert test_url == preq.url
+
+- @pytest.mark.xfail(raises=ConnectionError)
+- def test_auth_is_stripped_on_redirect_off_host(self, httpbin):
+- r = requests.get(
+- httpbin('redirect-to'),
+- params={'url': 'http://www.google.co.uk'},
+- auth=('user', 'pass'),
+- )
+- assert r.history[0].request.headers['Authorization']
+- assert 'Authorization' not in r.request.headers
+-
+- def test_auth_is_stripped_on_scheme_redirect(self, httpbin, httpbin_secure, httpbin_ca_bundle):
++ def test_auth_is_stripped_on_http_downgrade(self, httpbin, httpbin_secure, httpbin_ca_bundle):
+ r = requests.get(
+ httpbin_secure('redirect-to'),
+ params={'url': httpbin('get')},
+@@ -1594,6 +1584,27 @@ class TestRequests:
+
+ assert h1 == h2
+
++ def test_should_strip_auth_host_change(self):
++ s = requests.Session()
++ assert s.should_strip_auth('http://example.com/foo', 'http://another.example.com/')
++
++ def test_should_strip_auth_http_downgrade(self):
++ s = requests.Session()
++ assert s.should_strip_auth('https://example.com/foo', 'http://example.com/bar')
++
++ def test_should_strip_auth_https_upgrade(self):
++ s = requests.Session()
++ assert not s.should_strip_auth('http://example.com/foo', 'https://example.com/bar')
++ assert not s.should_strip_auth('http://example.com:80/foo', 'https://example.com/bar')
++ assert not s.should_strip_auth('http://example.com/foo', 'https://example.com:443/bar')
++ # Non-standard ports should trigger stripping
++ assert s.should_strip_auth('http://example.com:8080/foo', 'https://example.com/bar')
++ assert s.should_strip_auth('http://example.com/foo', 'https://example.com:8443/bar')
++
++ def test_should_strip_auth_port_change(self):
++ s = requests.Session()
++ assert s.should_strip_auth('http://example.com:1234/foo', 'https://example.com:4321/bar')
++
+ def test_manual_redirect_with_partial_body_read(self, httpbin):
+ s = requests.Session()
+ r1 = s.get(httpbin('redirect/2'), allow_redirects=False, stream=True)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.18.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.19.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.18.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.19.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc
new file mode 100644
index 0000000..9f07b65
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc
@@ -0,0 +1,15 @@
+SUMMARY = "Robot Framework test library for serial connection"
+HOMEPAGE = "https://github.com/whosaysni/robotframework-seriallibrary"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI[md5sum] = "b7c9565d54c30df7cd3f3c0e29adffa3"
+SRC_URI[sha256sum] = "256ad60fc0b7df4be44d82c302f5ed8fad4935cda99e4b45942e3c88179d1e19"
+
+SRC_URI = "https://files.pythonhosted.org/packages/ce/e1/1e337dc84a20b9d92d7b243d16bb9f6fc0084967eca7454228bb546efec7/robotframework-seriallibrary-0.3.1.tar.gz"
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-pyserial \
+ ${PYTHON_PN}-robotframework \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary_0.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary_0.3.1.bb
new file mode 100644
index 0000000..440f69c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework-seriallibrary_0.3.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-robotframework-seriallibrary.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework.inc
index 78bbbc6..e920c51 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework.inc
@@ -11,8 +11,8 @@
inherit pypi
-SRC_URI[md5sum] = "ea49a54b9d7e38302712194e85c37eaa"
-SRC_URI[sha256sum] = "2018f233568227f9af8c366f93e243a157b742f3baf5b649ecc9750ac0ee1ff7"
+SRC_URI[md5sum] = "ee753415645ff4831ff0d366a0467fe7"
+SRC_URI[sha256sum] = "ab94257cbd848dfca7148e092d233a12853cc7e840ce8231af9cbb5e7f51aa47"
RDEPENDS_${PN} += " \
${PYTHON_PN}-shell \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework_3.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-robotframework_3.0.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-robotframework_3.0.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-robotframework_3.0.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-semver.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-semver.inc
new file mode 100644
index 0000000..3c95c06
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-semver.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "Python module for Semantic Versioning"
+HOMEPAGE = "https://github.com/k-bx/python-semver"
+BUGTRACKER = "https://github.com/k-bx/python-semver/issues"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
+
+SRC_URI[md5sum] = "dc579ba9d0bb2137bad5324d4bdb7e40"
+SRC_URI[sha256sum] = "5b09010a66d9a3837211bb7ae5a20d10ba88f8cb49e92cb139a69ef90d5060d8"
+
+inherit pypi
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-semver_2.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-semver_2.8.1.bb
new file mode 100644
index 0000000..0572feb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-semver_2.8.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-semver.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc
index 3f51bc2..2ba6570 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-serpent.inc
@@ -1,9 +1,9 @@
SUMMARY = "Serialization based on ast.literal_eval"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=acdea68f0e5a89eb6cbfdf54e38c356e"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5a8193ba89f1083617f32d522f6485e9"
-SRC_URI[md5sum] = "d0c50f1943ff86d830eb3fe40f6dc1e3"
-SRC_URI[sha256sum] = "b6855483d95a03b6aee358363684cd38a3a670240da5bc6da4253079cb07b8df"
+SRC_URI[md5sum] = "0f9684622125a527fa4fbe2587738973"
+SRC_URI[sha256sum] = "264a028e059c1b557701ae7c567cdab330dbd228ff924489343efcb39bd828a0"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.25.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.24.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-serpent_1.25.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc
index eb66580..98883ec 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm.inc
@@ -2,8 +2,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-SRC_URI[md5sum] = "1b55f9cedde4a33ab5d286c5f30e86db"
-SRC_URI[sha256sum] = "e163e8a12d2121f77575773cfc2b5988275dc1f1d2541fdf780127c29dbbea9c"
+SRC_URI[md5sum] = "cfec5d2dbbd0a85c40066f79035b5878"
+SRC_URI[sha256sum] = "a767141fecdab1c0b3c8e4c788ac912d7c94a0d6c452d40777ba84f918316379"
PYPI_PACKAGE = "setuptools_scm"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_1.15.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_2.1.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_1.15.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-setuptools-scm_2.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-sh.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-sh.inc
new file mode 100644
index 0000000..f2fd562
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-sh.inc
@@ -0,0 +1,32 @@
+SUMMARY = "Python subprocess replacement"
+HOMEPAGE = "https://github.com/amoffat/sh"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5317094292296f03405f59ae5f6544b6"
+
+SRC_URI[md5sum] = "a8351aef25d25f707c17e0a7a6280251"
+SRC_URI[sha256sum] = "b52bf5833ed01c7b5c5fb73a7f71b3d98d48e9b9b8764236237bdc7ecae850fc"
+
+PYPI_PACKAGE = "sh"
+
+inherit pypi
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-codecs \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-resource \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-terminal \
+ ${PYTHON_PN}-tests \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-unixadmin \
+"
+
+# WARNING: We were unable to map the following python package/module
+# dependencies to the bitbake packages which include them:
+# coverage - only used in test and there is a check to see if it is
+# available before importing.
+# queue - part of threading
+# signal - part of core in python3. not sure how it is imported in python2.
+# No complants in compiling.
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-sh_1.12.14.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-sh_1.12.14.bb
new file mode 100644
index 0000000..7cb5140
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-sh_1.12.14.bb
@@ -0,0 +1,8 @@
+require python-sh.inc
+inherit setuptools
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-contextlib \
+ ${PYTHON_PN}-lang \
+ ${PYTHON_PN}-textutils \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-sijax.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-sijax.inc
new file mode 100644
index 0000000..9e46893
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-sijax.inc
@@ -0,0 +1,8 @@
+DESCRIPTION = "An easy to use AJAX library for Python based on jQuery.ajax"
+HOMEPAGE = "https://github.com/spantaleev/sijax-python"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=16e213d75641a392478df50cf0841903"
+
+PYPI_PACKAGE = "Sijax"
+inherit pypi
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-sijax_0.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-sijax_0.3.2.bb
new file mode 100644
index 0000000..4226c42
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-sijax_0.3.2.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "An easy to use AJAX library for Python based on jQuery.ajax"
+HOMEPAGE = "https://github.com/spantaleev/sijax-python"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=16e213d75641a392478df50cf0841903"
+
+PYPI_PACKAGE = "Sijax"
+inherit setuptools
+require python-sijax.inc
+
+SRC_URI[sha256sum] = "11b062f4a8b2aad95c87e7c09e5daf5a6b0d0f08abf9efe5f91a0075c6be7c0d"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc
index e28d518..3d36f96 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson.inc
@@ -4,8 +4,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e"
-SRC_URI[md5sum] = "870bf6257465ce2ee8cad14e2394f7eb"
-SRC_URI[sha256sum] = "4c4ecf20e054716cc1e5a81cadc44d3f4027108d8dd0861d8b1e3bd7a32d4f0a"
+SRC_URI[md5sum] = "744fa99aed207478f8fbf9dd9f04fad3"
+SRC_URI[sha256sum] = "b1f329139ba647a9548aa05fb95d046b4a677643070dc2afc05fa2e975d09ca5"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson_3.13.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-simplejson_3.16.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-simplejson_3.13.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-simplejson_3.16.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb
index 8081416..dc587e7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb
@@ -25,3 +25,7 @@
do_compile_prepend() {
sed -e 's/@VERSION@/${PV}/g' setup.py.in > setup.py
}
+
+# http://errors.yoctoproject.org/Errors/Details/184713/
+# python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore.inc
new file mode 100644
index 0000000..14ebc0e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Manage dynamic plugins for Python applications"
+HOMEPAGE = "https://github.com/dreamhost/stevedore"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[md5sum] = "525186cba577852e0408c92c3f8fac65"
+SRC_URI[sha256sum] = "1e153545aca7a6a49d8337acca4f41c212fbfa60bf864ecd056df0cafb9627e8"
+
+inherit pypi
+
+DEPENDS += "${PYTHON_PN}-pbr-native"
+
+RDEPENDS_${PN} += "${PYTHON_PN}-pbr ${PYTHON_PN}-six"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore_1.29.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore_1.29.0.bb
new file mode 100644
index 0000000..70a00c1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-stevedore_1.29.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-stevedore.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc
index 29d10da..16899f8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc
@@ -4,10 +4,10 @@
polling, WebSockets, and other applications that require a long-lived connection to each user."
HOMEPAGE = "http://www.tornadoweb.org/en/stable/"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=3;endline=15;md5=8d463fc66ff8f275354ffe88d1896e12"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI[md5sum] = "a5fc7fd4aea94867609a491ce65786f1"
-SRC_URI[sha256sum] = "6d14e47eab0e15799cf3cdcc86b0b98279da68522caace2bd7ce644287685f0a"
+SRC_URI[md5sum] = "bd264851c409f926d1dae1ad5055d28d"
+SRC_URI[sha256sum] = "4f66a2172cb947387193ca4c2c3e19131f1c70fa8be470ddbbd9317fd0801582"
RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-numbers ${PYTHON_PN}-email \
${PYTHON_PN}-pkgutil ${PYTHON_PN}-html ${PYTHON_PN}-json ${PYTHON_PN}-certifi ${PYTHON_PN}-threading \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_4.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_5.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-tornado_4.5.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-tornado_5.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-traceback2_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-traceback2_1.4.0.bb
new file mode 100644
index 0000000..696c875
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-traceback2_1.4.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A backport of traceback to older supported Pythons"
+HOMEPAGE = "https://github.com/testing-cabal/traceback2"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=31;endline=31;md5=368ddc8588431c180ae7c33f4fb57519"
+
+DEPENDS = "${PYTHON_PN}-pbr-native"
+
+SRC_URI[md5sum] = "9e9723f4d70bfc6308fa992dd193c400"
+SRC_URI[sha256sum] = "05acc67a09980c2ecfedd3423f7ae0104839eccb55fc645773e1caa0951c3030"
+
+inherit pypi setuptools
+
+CLEANBROKEN = "1"
+
+RDEPENDS_${PN} = "${PYTHON_PN}-linecache2"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
index 6480ad5..01616b1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
@@ -5,10 +5,10 @@
#twisted/topfiles/NEWS:655: - Relicensed: Now under the MIT license, rather than LGPL.
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8a9c2fbfcba7d70504e3ba545e1820ed"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=04e7730aecedc79d805625a91bc06145"
-SRC_URI[md5sum] = "6dbedb918f0c7288a4c670f59393ecf8"
-SRC_URI[sha256sum] = "0da1a7e35d5fcae37bc9c7978970b5feb3bc82822155b8654ec63925c05af75c"
+SRC_URI[sha256sum] = "a4cc164a781859c74de47f17f0e85f4bce8a3321a9d0892c015c8f80c4158ad9"
+SRC_URI[md5sum] = "da8142ad4e9971a75fe751ac96a33b95"
PYPI_PACKAGE = "Twisted"
PYPI_PACKAGE_EXT = "tar.bz2"
@@ -49,9 +49,12 @@
${PN}-conch \
${PN}-mail \
${PN}-names \
+ ${PN}-pair \
+ ${PN}-protocols \
${PN}-runner \
${PN}-web \
${PN}-words \
+ ${PN}-zsh \
"
RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb
deleted file mode 100644
index 2be1709..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools
-require python-twisted.inc
-
-RDEPENDS_${PN}-core += "${PYTHON_PN}-contextlib"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_18.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_18.4.0.bb
new file mode 100644
index 0000000..5903db3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_18.4.0.bb
@@ -0,0 +1,8 @@
+inherit pypi setuptools
+require python-twisted.inc
+
+RDEPENDS_${PN}-core += "${PYTHON_PN}-contextlib"
+
+RDEPENDS_${PN} += " \
+ ${PN}-news \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc
index cf79926..288ed8b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3.inc
@@ -3,8 +3,8 @@
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ea114851ad9a8c311aac8728a681a067"
-SRC_URI[md5sum] = "0da7bed3fe94bf7dc59ae37885cc72f7"
-SRC_URI[sha256sum] = "cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"
+SRC_URI[md5sum] = "1ad43e4b5ab7a0794c89dc057e1d7179"
+SRC_URI[sha256sum] = "a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf"
RDEPENDS_${PN} += "\
${PYTHON_PN}-certifi \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.22.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.23.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.22.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.23.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb
deleted file mode 100644
index d2f343e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Python package for parsing and generating vCard and vCalendar files"
-HOMEPAGE = "http://vobject.skyhouseconsulting.com/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[md5sum] = "aa629d6ae95db5edfd5b2402eb1073cb"
-SRC_URI[sha256sum] = "0f56cae196303d875682b9648b4bb43ffc769d2f0f800958e0a506af867b1243"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-numbers \
- "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.9.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.9.6.1.bb
new file mode 100644
index 0000000..d31f2f5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.9.6.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Python package for parsing and generating vCard and vCalendar files"
+HOMEPAGE = "http://vobject.skyhouseconsulting.com/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[md5sum] = "06357e96a84d55de2a71b36d39f6853e"
+SRC_URI[sha256sum] = "96512aec74b90abb71f6b53898dd7fe47300cc940104c4f79148f0671f790101"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-dateutil \
+ ${PYTHON_PN}-numbers \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc
index 916697f..868686b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms.inc
@@ -2,13 +2,12 @@
HOMEPAGE = "https://pypi.python.org/pypi/WTForms"
SECTION = "devel/python"
LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c459accc90c6ed6a94878c8fe0535be2"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c4660c132770d5d0a5757541f6b79493"
-SRC_URI[md5sum] = "6938a541fafd1a1ae2f6b9b88588eef2"
-SRC_URI[sha256sum] = "ffdf10bd1fa565b8233380cb77a304cd36fd55c73023e91d4b803c96bc11d46f"
+SRC_URI[md5sum] = "41c0008dbe7bd98892c58f7457a46a4a"
+SRC_URI[sha256sum] = "0cdbac3e7f6878086c334aa25dc5a33869a3954e9d1e015130d65a69309b3b61"
PYPI_PACKAGE = "WTForms"
-PYPI_PACKAGE_EXT = "zip"
RDEPENDS_${PN} += "\
${PYTHON_PN}-netserver \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.2.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.2.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc
index 1fab2cc..12623c9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface.inc
@@ -2,8 +2,8 @@
LICENSE = "ZPL-2.1"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46"
-SRC_URI[md5sum] = "8700a4f527c1203b34b10c2b4e7a6912"
-SRC_URI[sha256sum] = "d6d26d5dfbfd60c65152938fcb82f949e8dada37c041f72916fef6621ba5c5ce"
+SRC_URI[md5sum] = "7b669cd692d817772c61d2e3ad0f1e71"
+SRC_URI[sha256sum] = "57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c"
PYPI_PACKAGE = "zope.interface"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.5.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.4.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.5.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_0.9.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.0.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_0.9.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.5.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_1.6.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_17.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_18.1.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_17.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_18.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.7.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-automat_0.7.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-babel_2.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-babel_2.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-babel_2.5.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-babel_2.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.4.0.bb
new file mode 100644
index 0000000..84f4761
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.4.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Security oriented static analyser for python code."
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+
+SRC_URI[md5sum] = "f74155cb9921be857693b32d2531e857"
+SRC_URI[sha256sum] = "cb977045497f83ec3a02616973ab845c829cdab8144ce2e757fe031104a9abd4"
+
+DEPENDS = "python3-pyyaml python3-six python3-stevedore python3-pbr-native"
+
+inherit setuptools3 pypi
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
new file mode 100644
index 0000000..1c55871
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-behave.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_0.8.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.2.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-can_2.2.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.14.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.13.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.14.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2018.1.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2018.8.13.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2018.1.18.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2018.8.13.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb
index 038043c..38d8122 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb
@@ -1,2 +1,7 @@
inherit setuptools3
require python-chardet.inc
+
+do_install_append () {
+ # rename scripts that would conflict with the Python 2 build of chardet
+ mv ${D}${bindir}/chardetect ${D}${bindir}/chardetect3
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
new file mode 100644
index 0000000..6996b13
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-crcmod.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.1.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.28.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.28.5.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.28.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.28.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.7.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.7.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.7.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_1.11.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_1.11.14.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-django_1.11.10.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-django_1.11.14.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.9.0.bb
new file mode 100644
index 0000000..9ed6d17
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.9.0.bb
@@ -0,0 +1,2 @@
+require python-djangorestframework.inc
+inherit setuptools3
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.2.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.2.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sijax_0.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sijax_0.4.1.bb
new file mode 100644
index 0000000..e9a65c4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sijax_0.4.1.bb
@@ -0,0 +1,4 @@
+inherit pypi setuptools3
+require python-flask-sijax.inc
+
+SRC_URI[sha256sum] = "fb2bf2d4f75408185102195055d75549fee8d9c9e954dca2427186925cdc429f"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_0.12.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.0.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_0.12.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.0.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.16.0.bb
new file mode 100644
index 0000000..f059186
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-future_0.16.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-future.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_0.4.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_0.4.14.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_0.4.13.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_0.4.14.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.14.1.bb
new file mode 100644
index 0000000..2da1a4d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.14.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-grpcio-tools.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.14.1.bb
new file mode 100644
index 0000000..d4720b4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.14.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-grpcio.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_18.0.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_18.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_2.7.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-idna_2.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-idna_2.7.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.3.1.bb
new file mode 100644
index 0000000..cc36a02
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.3.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-inflection.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.5.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.5.4.bb
new file mode 100644
index 0000000..8cbe109
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.5.4.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-intervals.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.38.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.38.bb
index 0ca58c7..eb42fe9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.38.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.38.bb
@@ -16,8 +16,8 @@
inherit setuptools3 python3native
-DISTUTILS_INSTALL_ARGS = "--prefix=${D}/${prefix} \
- --install-data=${D}/${datadir}/langtable"
+DISTUTILS_INSTALL_ARGS += " \
+ --install-data=${datadir}/langtable"
FILES_${PN} += "${datadir}/*"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.2.1.bb
deleted file mode 100644
index ff4bc7f..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-lxml.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.2.4.bb
new file mode 100644
index 0000000..b95d7ba
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.2.4.bb
@@ -0,0 +1,3 @@
+inherit setuptools3
+require python-lxml.inc
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.30.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.30.1.bb
new file mode 100644
index 0000000..4d63d4b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.30.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-m2crypto.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.4.bb
deleted file mode 100644
index 3f07b2e..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-ndg-httpsclient.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb
new file mode 100644
index 0000000..65a8c81
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb
@@ -0,0 +1,6 @@
+inherit pypi setuptools3 update-alternatives
+require python-ndg-httpsclient.inc
+
+ALTERNATIVE_${PN} = "ndg_httpclient"
+ALTERNATIVE_LINK_NAME[ndg_httpclient] = "${bindir}/ndg_httpclient"
+ALTERNATIVE_PRIORITY = "30"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb
deleted file mode 100644
index be6d4e1..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "A MutableSet that remembers its order, so that every entry has an index."
-HOMEPAGE = "http://github.com/LuminosoInsight/ordered-set"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://MIT-LICENSE;md5=0feb0c85b722f488b87844fb5f81d2dc"
-
-SRC_URI[md5sum] = "7b8d73dc64fd3c783ecb48e050bfcc0d"
-SRC_URI[sha256sum] = "942cad5d7d5b0760d5cbe93dfb385ac2ed402ca1d48c9f4e102d7d5cce3a90eb"
-
-inherit pypi setuptools3
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.0.1.bb
new file mode 100644
index 0000000..662d3ee
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_3.0.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A MutableSet that remembers its order, so that every entry has an index."
+HOMEPAGE = "http://github.com/LuminosoInsight/ordered-set"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://MIT-LICENSE;md5=2b36be0d99854aa2ae292a800a7c1d4e"
+
+SRC_URI[md5sum] = "a8059c7b99cde0f8dda01ddee6b43c2c"
+SRC_URI[sha256sum] = "3d6fd7bffbb15f613a9e8a6281bf97c2d67f7bb8677deca8249df2fbdd9cce7b"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-pytest-runner-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_0.22.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_0.23.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_0.22.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_0.23.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.4.2.bb
new file mode 100644
index 0000000..91d9ce2
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.4.2.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-parse-type.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.8.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.8.4.bb
new file mode 100644
index 0000000..b124254
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.8.4.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-parse.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb
new file mode 100644
index 0000000..ba9a95d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb
@@ -0,0 +1,4 @@
+inherit pypi setuptools3
+require python-periphery.inc
+
+SRC_URI[sha256sum] = "fe8f351934edce72cd919b4eb070878ebff551db5e21aea61e0f446101f0a79f"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pexpect_4.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pexpect_4.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pexpect_4.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pexpect_4.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.8.1.bb
new file mode 100644
index 0000000..f793ac4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.8.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-pint.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb
deleted file mode 100644
index 5de83ce..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Control process attributes through prctl"
-DESCRIPTION = "The linux prctl function allows you to control specific characteristics of a \
-process' behaviour. Usage of the function is fairly messy though, due to \
-limitations in C and linux. This module provides a nice non-messy python(ic) \
-interface."
-SECTION = "devel/python"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5eb2f4bcd60326f83e5deb542372d52f"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "1107d0be7bec4b28c85c62c454882d16844c930a"
-PV = "1.6.1+git${SRCPV}"
-
-SRC_URI = "git://github.com/seveas/python-prctl;branch=master \
- file://0001-support-cross-complication.patch \
-"
-inherit setuptools3 python3native
-
-DEPENDS += "libcap"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.7.bb
new file mode 100644
index 0000000..54620a0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.7.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Control process attributes through prctl"
+DESCRIPTION = "The linux prctl function allows you to control specific characteristics of a \
+process' behaviour. Usage of the function is fairly messy though, due to \
+limitations in C and linux. This module provides a nice non-messy python(ic) \
+interface."
+SECTION = "devel/python"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=23ff9f50449d4bd0e513df16e4d9755f"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+SRCREV = "57cd0a7cad76e8f8792eea22ee5b5d17bae0a90f"
+PV = "1.7+git${SRCPV}"
+
+SRC_URI = "git://github.com/seveas/python-prctl;branch=master \
+ file://0001-support-cross-complication.patch \
+"
+inherit setuptools3 python3native
+
+DEPENDS += "libcap"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-progress_1.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_2.0.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.6.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.6.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.4.6.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.4.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.4.6.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-py_1.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-py_1.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-py_1.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-py_1.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.3.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.2.3.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.4.0.bb
new file mode 100644
index 0000000..cedcdb3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.4.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-pycodestyle.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch
new file mode 100644
index 0000000..c5cb9a8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch
@@ -0,0 +1,93 @@
+From 39a7d79ee6c548902fbac8b95c934af7e4c69260 Mon Sep 17 00:00:00 2001
+From: Vendula Poncova <vponcova@redhat.com>
+Date: Thu, 2 Aug 2018 15:30:45 +0800
+Subject: [PATCH 1/2] Support asynchronous calls (#58)
+
+Added support for asynchronous calls of methods. A method is called
+synchronously unless its callback parameter is specified. A callback
+is a function f(*args, returned=None, error=None), where args is
+callback_args specified in the method call, returned is a return
+value of the method and error is an exception raised by the method.
+
+Example of an asynchronous call:
+
+def func(x, y, returned=None, error=None):
+ pass
+
+proxy.Method(a, b, callback=func, callback_args=(x, y))
+
+Upstream-Status: Cherry-pick [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ pydbus/proxy_method.py | 44 ++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 38 insertions(+), 6 deletions(-)
+
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 8798edd..4ea4304 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -65,15 +65,34 @@ class ProxyMethod(object):
+
+ # Python 2 sux
+ for kwarg in kwargs:
+- if kwarg not in ("timeout",):
++ if kwarg not in ("timeout", "callback", "callback_args"):
+ raise TypeError(self.__qualname__ + " got an unexpected keyword argument '{}'".format(kwarg))
+ timeout = kwargs.get("timeout", None)
++ callback = kwargs.get("callback", None)
++ callback_args = kwargs.get("callback_args", tuple())
++
++ call_args = (
++ instance._bus_name,
++ instance._path,
++ self._iface_name,
++ self.__name__,
++ GLib.Variant(self._sinargs, args),
++ GLib.VariantType.new(self._soutargs),
++ 0,
++ timeout_to_glib(timeout),
++ None
++ )
++
++ if callback:
++ call_args += (self._finish_async_call, (callback, callback_args))
++ instance._bus.con.call(*call_args)
++ return None
++ else:
++ ret = instance._bus.con.call_sync(*call_args)
++ return self._unpack_return(ret)
+
+- ret = instance._bus.con.call_sync(
+- instance._bus_name, instance._path,
+- self._iface_name, self.__name__, GLib.Variant(self._sinargs, args), GLib.VariantType.new(self._soutargs),
+- 0, timeout_to_glib(timeout), None).unpack()
+-
++ def _unpack_return(self, values):
++ ret = values.unpack()
+ if len(self._outargs) == 0:
+ return None
+ elif len(self._outargs) == 1:
+@@ -81,6 +100,19 @@ class ProxyMethod(object):
+ else:
+ return ret
+
++ def _finish_async_call(self, source, result, user_data):
++ error = None
++ return_args = None
++
++ try:
++ ret = source.call_finish(result)
++ return_args = self._unpack_return(ret)
++ except Exception as err:
++ error = err
++
++ callback, callback_args = user_data
++ callback(*callback_args, returned=return_args, error=error)
++
+ def __get__(self, instance, owner):
+ if instance is None:
+ return self
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch
new file mode 100644
index 0000000..f5c0390
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch
@@ -0,0 +1,203 @@
+From 69968dec867053e38de0b91d76ac41d5a5735e36 Mon Sep 17 00:00:00 2001
+From: Vendula Poncova <vponcova@redhat.com>
+Date: Thu, 2 Aug 2018 15:31:56 +0800
+Subject: [PATCH 2/2] Support transformation between D-Bus errors and
+ exceptions.
+
+Exceptions can be registered with decorators, raised in a remote
+method and recreated after return from the remote call.
+
+Upstream-Status: Cherry-pick [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ pydbus/error.py | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ pydbus/proxy_method.py | 18 ++++++++--
+ pydbus/registration.py | 16 ++++++---
+ 3 files changed, 123 insertions(+), 8 deletions(-)
+ create mode 100644 pydbus/error.py
+
+diff --git a/pydbus/error.py b/pydbus/error.py
+new file mode 100644
+index 0000000..aaa3510
+--- /dev/null
++++ b/pydbus/error.py
+@@ -0,0 +1,97 @@
++from gi.repository import GLib, Gio
++
++
++def register_error(name, domain, code):
++ """Register and map decorated exception class to a DBus error."""
++ def decorated(cls):
++ error_registration.register_error(cls, name, domain, code)
++ return cls
++
++ return decorated
++
++
++def map_error(error_name):
++ """Map decorated exception class to a DBus error."""
++ def decorated(cls):
++ error_registration.map_error(cls, error_name)
++ return cls
++
++ return decorated
++
++
++def map_by_default(cls):
++ """Map decorated exception class to all unknown DBus errors."""
++ error_registration.map_by_default(cls)
++ return cls
++
++
++class ErrorRegistration(object):
++ """Class for mapping exceptions to DBus errors."""
++
++ _default = None
++ _map = dict()
++ _reversed_map = dict()
++
++ def map_by_default(self, exception_cls):
++ """Set the exception class as a default."""
++ self._default = exception_cls
++
++ def map_error(self, exception_cls, name):
++ """Map the exception class to a DBus name."""
++ self._map[name] = exception_cls
++ self._reversed_map[exception_cls] = name
++
++ def register_error(self, exception_cls, name, domain, code):
++ """Map and register the exception class to a DBus name."""
++ self.map_error(exception_cls, name)
++ return Gio.DBusError.register_error(domain, code, name)
++
++ def is_registered_exception(self, obj):
++ """Is the exception registered?"""
++ return obj.__class__ in self._reversed_map
++
++ def get_dbus_name(self, obj):
++ """Get the DBus name of the exception."""
++ return self._reversed_map.get(obj.__class__)
++
++ def get_exception_class(self, name):
++ """Get the exception class mapped to the DBus name."""
++ return self._map.get(name, self._default)
++
++ def transform_message(self, name, message):
++ """Transform the message of the exception."""
++ prefix = "{}:{}: ".format("GDBus.Error", name)
++
++ if message.startswith(prefix):
++ return message[len(prefix):]
++
++ return message
++
++ def transform_exception(self, e):
++ """Transform the remote error to the exception."""
++ if not isinstance(e, GLib.Error):
++ return e
++
++ if not Gio.DBusError.is_remote_error(e):
++ return e
++
++ # Get DBus name of the error.
++ name = Gio.DBusError.get_remote_error(e)
++ # Get the exception class.
++ exception_cls = self.get_exception_class(name)
++
++ # Return the original exception.
++ if not exception_cls:
++ return e
++
++ # Return new exception.
++ message = self.transform_message(name, e.message)
++ exception = exception_cls(message)
++ exception.dbus_name = name
++ exception.dbus_domain = e.domain
++ exception.dbus_code = e.code
++ return exception
++
++
++# Default error registration.
++error_registration = ErrorRegistration()
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 4ea4304..e9496f5 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -2,6 +2,7 @@ from gi.repository import GLib
+ from .generic import bound_method
+ from .identifier import filter_identifier
+ from .timeout import timeout_to_glib
++from .error import error_registration
+
+ try:
+ from inspect import Signature, Parameter
+@@ -87,9 +88,20 @@ class ProxyMethod(object):
+ call_args += (self._finish_async_call, (callback, callback_args))
+ instance._bus.con.call(*call_args)
+ return None
++
+ else:
+- ret = instance._bus.con.call_sync(*call_args)
+- return self._unpack_return(ret)
++ result = None
++ error = None
++
++ try:
++ result = instance._bus.con.call_sync(*call_args)
++ except Exception as e:
++ error = error_registration.transform_exception(e)
++
++ if error:
++ raise error
++
++ return self._unpack_return(result)
+
+ def _unpack_return(self, values):
+ ret = values.unpack()
+@@ -108,7 +120,7 @@ class ProxyMethod(object):
+ ret = source.call_finish(result)
+ return_args = self._unpack_return(ret)
+ except Exception as err:
+- error = err
++ error = error_registration.transform_exception(err)
+
+ callback, callback_args = user_data
+ callback(*callback_args, returned=return_args, error=error)
+diff --git a/pydbus/registration.py b/pydbus/registration.py
+index f531539..1d2cbcb 100644
+--- a/pydbus/registration.py
++++ b/pydbus/registration.py
+@@ -5,6 +5,7 @@ from . import generic
+ from .exitable import ExitableWithAliases
+ from functools import partial
+ from .method_call_context import MethodCallContext
++from .error import error_registration
+ import logging
+
+ try:
+@@ -91,11 +92,16 @@ class ObjectWrapper(ExitableWithAliases("unwrap")):
+ logger = logging.getLogger(__name__)
+ logger.exception("Exception while handling %s.%s()", interface_name, method_name)
+
+- #TODO Think of a better way to translate Python exception types to DBus error types.
+- e_type = type(e).__name__
+- if not "." in e_type:
+- e_type = "unknown." + e_type
+- invocation.return_dbus_error(e_type, str(e))
++ if error_registration.is_registered_exception(e):
++ name = error_registration.get_dbus_name(e)
++ invocation.return_dbus_error(name, str(e))
++ else:
++ logger.info("name is not registered")
++ e_type = type(e).__name__
++ if not "." in e_type:
++ e_type = "unknown." + e_type
++
++ invocation.return_dbus_error(e_type, str(e))
+
+ def Get(self, interface_name, property_name):
+ type = self.readable_properties[interface_name + "." + property_name]
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
index 7ed1c63..adaa86d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
@@ -1,2 +1,6 @@
require python-pydbus.inc
inherit pypi setuptools3
+
+SRC_URI += "file://0001-Support-asynchronous-calls-58.patch \
+ file://0002-Support-transformation-between-D-Bus-errors-and-exce.patch \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_1.6.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.89.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.93.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.89.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.93.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.7.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.7.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_17.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_18.0.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_17.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_18.0.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperclip_1.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperclip_1.6.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyperclip_1.6.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyperclip_1.6.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.4.21.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.4.21.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2016.7.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2016.7.10.bb
new file mode 100644
index 0000000..f03f5d4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2016.7.10.bb
@@ -0,0 +1,7 @@
+require python-pytest-helpers-namespace.inc
+
+inherit setuptools3
+
+RDEPENDS_${PN} += " \
+ python3-pytest \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_4.2.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_4.2.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2016.8.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2016.8.20.bb
new file mode 100644
index 0000000..02e8215
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-tempdir_2016.8.20.bb
@@ -0,0 +1,7 @@
+require python-pytest-tempdir.inc
+
+inherit setuptools3
+
+RDEPENDS_${PN} += " \
+ python3-pytest \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2018.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2018.5.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2018.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2018.5.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyyaml_3.13.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyyaml_3.13.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_17.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_17.1.0.bb
new file mode 100644
index 0000000..050f53a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_17.1.0.bb
@@ -0,0 +1,2 @@
+require python-pyzmq.inc
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb
deleted file mode 100644
index 8652876..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "File transport adapter for Requests"
-HOMEPAGE = "http://github.com/dashea/requests-file"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9cc728d6087e43796227b0a31422de6b"
-
-SRC_URI[md5sum] = "a907efb75faf0ccbb1857432bf9d8c0f"
-SRC_URI[sha256sum] = "f518e7cfe048e053fd1019dfb891b4c55b871c56c5a31693d733240c80b8f191"
-
-inherit pypi setuptools3
-
-RDEPENDS_${PN} += " \
- python3-requests \
-"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-file_1.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-file_1.4.3.bb
new file mode 100644
index 0000000..0407779
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-file_1.4.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "File transport adapter for Requests"
+HOMEPAGE = "http://github.com/dashea/requests-file"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9cc728d6087e43796227b0a31422de6b"
+
+SRC_URI[md5sum] = "470711c9b7e0de1057f7b72a58b7ab51"
+SRC_URI[sha256sum] = "8f04aa6201bacda0567e7ac7f677f1499b0fc76b22140c54bc06edf1ba92e2fa"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += " \
+ python3-requests \
+"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.18.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.19.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.18.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.19.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.3.1.bb
new file mode 100644
index 0000000..440f69c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.3.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-robotframework-seriallibrary.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.0.4.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.0.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.0.4.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scapy_0.23.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scapy_0.23.bb
deleted file mode 100644
index 3e7baf4..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-scapy_0.23.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Packet crafting/sending/sniffing, PCAP processing tool,\
-based on scapy with python3 compatibility"
-SECTION = "devel/python"
-HOMEPAGE = "https://github.com/phaethon/scapy"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=95ea6ecfc360eb47fe6f470ad736d7cd"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "scapy-python3"
-
-SRC_URI[md5sum] = "8642d09ca727e7e2b455223ae94059b7"
-SRC_URI[sha256sum] = "8760991a67162f43af4d9e64828bcefc100ba88859b75177ae9f7ace56e58186"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scapy_0.25.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scapy_0.25.bb
new file mode 100644
index 0000000..f785a2f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-scapy_0.25.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Packet crafting/sending/sniffing, PCAP processing tool,\
+based on scapy with python3 compatibility"
+SECTION = "devel/python"
+HOMEPAGE = "https://github.com/phaethon/scapy"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=a4282d4d80227fa599a99e77fdd95e71"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "scapy-python3"
+
+SRC_URI[md5sum] = "c9003d39def73c028cb8c71bcbb42629"
+SRC_URI[sha256sum] = "2ae1b3bd9759844e830a6cc3ba11c3f25b08433a8ee3e7eddc08224905e5ef2b"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_2.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_2.8.1.bb
new file mode 100644
index 0000000..77925ae
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_2.8.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-semver.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.25.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.24.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-serpent_1.25.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_2.1.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-scm_2.1.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.12.14.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.12.14.bb
new file mode 100644
index 0000000..812bd4b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.12.14.bb
@@ -0,0 +1,5 @@
+require python-sh.inc
+inherit setuptools3
+
+RDEPENDS_${PN} += " \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sijax_0.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sijax_0.3.2.bb
new file mode 100644
index 0000000..24e6833
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sijax_0.3.2.bb
@@ -0,0 +1,4 @@
+inherit setuptools3
+require python-sijax.inc
+
+SRC_URI[sha256sum] = "11b062f4a8b2aad95c87e7c09e5daf5a6b0d0f08abf9efe5f91a0075c6be7c0d"
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.13.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.16.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.13.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.16.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_1.29.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_1.29.0.bb
new file mode 100644
index 0000000..3f557f2
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_1.29.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-stevedore.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_4.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_5.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_4.5.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_5.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_18.4.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_18.4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.22.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.23.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.22.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.23.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_2.2.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_2.2.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.5.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-zopeinterface_4.5.0.bb
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch
index 0ee3205..c77b86a 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch
@@ -1,7 +1,7 @@
-From 7d483c27ac0a23ca3bba7f320918afc40013bd8e Mon Sep 17 00:00:00 2001
+From 648a18bfc447f076d48ae4147d984b8ef56e37aa Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 14:25:52 +0800
-Subject: [PATCH 01/13] comment out selinux
+Date: Mon, 30 Jul 2018 16:13:40 +0800
+Subject: [PATCH 01/11] comment out selinux
Upstream-Status: Inappropriate [oe specific]
@@ -12,7 +12,7 @@
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/blivet/flags.py b/blivet/flags.py
-index 06822db..b55a93f 100644
+index 1840121..8789390 100644
--- a/blivet/flags.py
+++ b/blivet/flags.py
@@ -20,7 +20,7 @@
@@ -24,7 +24,7 @@
class Flags(object):
-@@ -49,7 +49,8 @@ class Flags(object):
+@@ -47,7 +47,8 @@ class Flags(object):
#
# enable/disable functionality
#
@@ -35,19 +35,19 @@
self.dmraid = True
self.ibft = True
diff --git a/blivet/util.py b/blivet/util.py
-index e3e71ce..0cf5188 100644
+index 7334ff6..0f2a995 100644
--- a/blivet/util.py
+++ b/blivet/util.py
-@@ -4,7 +4,7 @@ import glob
+@@ -3,7 +3,7 @@ import functools
+ import glob
import itertools
import os
- import shutil
-import selinux
+#import selinux
import subprocess
import re
import sys
-@@ -431,6 +431,8 @@ def get_cow_sysfs_path(dev_path, dev_sysfsPath):
+@@ -430,6 +430,8 @@ def get_cow_sysfs_path(dev_path, dev_sysfsPath):
def match_path_context(path):
""" Return the default SELinux context for the given path. """
context = None
@@ -56,7 +56,7 @@
try:
context = selinux.matchpathcon(os.path.normpath(path), 0)[1]
except OSError as e:
-@@ -455,6 +457,8 @@ def set_file_context(path, context, root=None):
+@@ -454,6 +456,8 @@ def set_file_context(path, context, root=None):
True if successful, False if not.
"""
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
index 01e71be..fea2254 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
@@ -1,7 +1,7 @@
-From 86744d408b91acdcb086a03d7779fcda152f2ac3 Mon Sep 17 00:00:00 2001
+From 596979ed58109141a7fee680ab95b27296c022b1 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 8 May 2017 14:39:56 +0800
-Subject: [PATCH 02/13] run_program support timeout
+Subject: [PATCH 02/11] run_program support timeout
Upstream-Status: Pending
@@ -11,10 +11,10 @@
1 file changed, 39 insertions(+), 29 deletions(-)
diff --git a/blivet/util.py b/blivet/util.py
-index 0cf5188..d4bd9bb 100644
+index 0f2a995..05a253c 100644
--- a/blivet/util.py
+++ b/blivet/util.py
-@@ -158,6 +158,30 @@ class Path(str):
+@@ -157,6 +157,30 @@ class Path(str):
def __hash__(self):
return self._path.__hash__()
@@ -45,7 +45,7 @@
def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False):
if env_prune is None:
-@@ -180,36 +204,22 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -179,36 +203,22 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
stderr_dir = subprocess.STDOUT
else:
stderr_dir = subprocess.PIPE
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
index 489fb56..38f061e 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
@@ -1,7 +1,7 @@
-From 923265e04df5920fc99393aa05f584032aa1b383 Mon Sep 17 00:00:00 2001
+From 325898f3f2951bbde07da47888175c427b11ddc3 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 8 May 2017 16:18:02 +0800
-Subject: [PATCH 03/13] support infinit timeout
+Subject: [PATCH 03/11] support infinit timeout
Upstream-Status: Pending
@@ -11,10 +11,10 @@
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/blivet/util.py b/blivet/util.py
-index d4bd9bb..44a2da5 100644
+index 05a253c..d6804be 100644
--- a/blivet/util.py
+++ b/blivet/util.py
-@@ -158,6 +158,7 @@ class Path(str):
+@@ -157,6 +157,7 @@ class Path(str):
def __hash__(self):
return self._path.__hash__()
@@ -22,7 +22,7 @@
def timeout_command(argv, timeout, *args, **kwargs):
"""call shell-command and either return its output or kill it
if it doesn't normally exit within timeout seconds and return None"""
-@@ -169,7 +170,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -168,7 +169,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
while proc.poll() is None:
time.sleep(0.1)
now = datetime.datetime.now()
@@ -31,7 +31,7 @@
os.kill(proc.pid, signal.SIGKILL)
os.waitpid(-1, os.WNOHANG)
program_log.debug("%d seconds timeout" % timeout)
-@@ -183,7 +184,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -182,7 +183,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
program_log.debug("Return code: %d", proc.returncode)
return (proc.returncode, proc.stdout.read())
@@ -40,7 +40,7 @@
if env_prune is None:
env_prune = []
-@@ -192,7 +193,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -191,7 +192,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
os.chroot(root)
with program_log_lock: # pylint: disable=not-context-manager
@@ -52,7 +52,7 @@
env = os.environ.copy()
env.update({"LC_ALL": "C",
-@@ -205,7 +209,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -204,7 +208,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
else:
stderr_dir = subprocess.PIPE
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch
deleted file mode 100644
index cb837e2..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From c3959bd00665e24a955bbdbea1ef555e76372f12 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 16:25:16 +0800
-Subject: [PATCH 04/13] Mount /var/volatile during install
-
-The installed system needs /var/volatile clean, otherwise it
-caused systemd's journalctl failed to record boot log.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/osinstall.py | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/blivet/osinstall.py b/blivet/osinstall.py
-index a4f9535..61819c2 100644
---- a/blivet/osinstall.py
-+++ b/blivet/osinstall.py
-@@ -294,6 +294,7 @@ class FSSet(object):
- self._sysfs = None
- self._proc = None
- self._devshm = None
-+ self._volatile = None
- self._usb = None
- self._selinux = None
- self._run = None
-@@ -335,6 +336,12 @@ class FSSet(object):
- return self._devshm
-
- @property
-+ def volatile(self):
-+ if not self._volatile:
-+ self._volatile = NoDevice(fmt=get_format("tmpfs", device="tmpfs", mountpoint="/var/volatile"))
-+ return self._volatile
-+
-+ @property
- def usb(self):
- if not self._usb:
- self._usb = NoDevice(fmt=get_format("usbfs", device="usbfs", mountpoint="/proc/bus/usb"))
-@@ -591,6 +598,7 @@ class FSSet(object):
-
- devices = list(self.mountpoints.values()) + self.swap_devices
- devices.extend([self.dev, self.devshm, self.devpts, self.sysfs,
-+ self.volatile,
- self.proc, self.selinux, self.usb, self.run])
- if isinstance(_platform, EFI):
- devices.append(self.efivars)
-@@ -650,6 +658,7 @@ class FSSet(object):
- """ unmount filesystems, except swap if swapoff == False """
- devices = list(self.mountpoints.values()) + self.swap_devices
- devices.extend([self.dev, self.devshm, self.devpts, self.sysfs,
-+ self.volatile,
- self.proc, self.usb, self.selinux, self.run])
- if isinstance(_platform, EFI):
- devices.append(self.efivars)
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch
new file mode 100644
index 0000000..be997ac
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch
@@ -0,0 +1,28 @@
+From c31df1c0f5323ddc70e0d1c6d11db2fbf7a024ad Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 8 May 2017 16:30:20 +0800
+Subject: [PATCH 04/11] fix new.roots object is not iterable
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/blivet.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/blivet.py b/blivet/blivet.py
+index 3405810..f42b73b 100644
+--- a/blivet/blivet.py
++++ b/blivet/blivet.py
+@@ -1198,7 +1198,7 @@ class Blivet(object):
+ p = partition.disk.format.parted_disk.getPartitionByPath(partition.path)
+ partition.parted_partition = p
+
+- for root in new.roots:
++ for root in new.roots or []:
+ root.swaps = [new.devicetree.get_device_by_id(d.id, hidden=True) for d in root.swaps]
+ root.swaps = [s for s in root.swaps if s]
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
new file mode 100644
index 0000000..ecb9503
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
@@ -0,0 +1,48 @@
+From b30a74671ca603e6bfd514f72d4fd7fd6fceef54 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 26 Aug 2016 02:02:49 -0400
+Subject: [PATCH 05/11] fix incorrect timeout while system time changed
+
+While system time changed by NTP, invoking timeout_command
+breaks with incorrect timeout.
+--------
+|05:40:55,872 INFO program: Running... mount -t ext2 -o
+ defaults,ro /dev/sda2 /mnt/sysimage
+|01:40:55,086 DEBUG program: 10 seconds timeout
+--------
+
+Use numbert count to replace current time count could workaround
+the issue.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/util.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/blivet/util.py b/blivet/util.py
+index d6804be..bc08af5 100644
+--- a/blivet/util.py
++++ b/blivet/util.py
+@@ -162,14 +162,14 @@ def timeout_command(argv, timeout, *args, **kwargs):
+ """call shell-command and either return its output or kill it
+ if it doesn't normally exit within timeout seconds and return None"""
+ import subprocess, datetime, os, time, signal
+- start = datetime.datetime.now()
++ count = 0
+
+ try:
+ proc = subprocess.Popen(argv, *args, **kwargs)
+ while proc.poll() is None:
+ time.sleep(0.1)
+- now = datetime.datetime.now()
+- if timeout != -1 and (now - start).seconds> timeout:
++ count += 1
++ if timeout != -1 and count > timeout*10:
+ os.kill(proc.pid, signal.SIGKILL)
+ os.waitpid(-1, os.WNOHANG)
+ program_log.debug("%d seconds timeout" % timeout)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch
deleted file mode 100644
index 4f343b7..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 386ff899763f8473eb93a7a1578fb7cc4f86f66d Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 16:28:12 +0800
-Subject: [PATCH 05/13] update fstab by appending
-
-The 'storage.write()' has updated fstab by overwriting
-the original one, we should update fstab by appending
-to keep original tmpfs partitions.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/osinstall.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/osinstall.py b/blivet/osinstall.py
-index 61819c2..afa82db 100644
---- a/blivet/osinstall.py
-+++ b/blivet/osinstall.py
-@@ -728,7 +728,7 @@ class FSSet(object):
- # /etc/fstab
- fstab_path = os.path.normpath("%s/etc/fstab" % get_sysroot())
- fstab = self.fstab()
-- open(fstab_path, "w").write(fstab)
-+ open(fstab_path, "a").write(fstab)
-
- # /etc/crypttab
- crypttab_path = os.path.normpath("%s/etc/crypttab" % get_sysroot())
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch
deleted file mode 100644
index f5ff754..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From cd92eea8fab37ba6b0c7f03daa5255343dc75716 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 16:30:20 +0800
-Subject: [PATCH 06/13] fix new.roots object is not iterable
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/blivet.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/blivet.py b/blivet/blivet.py
-index 6a33e9c..79ae91a 100644
---- a/blivet/blivet.py
-+++ b/blivet/blivet.py
-@@ -1761,7 +1761,7 @@ class Blivet(object):
- p = partition.disk.format.parted_disk.getPartitionByPath(partition.path)
- partition.parted_partition = p
-
-- for root in new.roots:
-+ for root in new.roots or []:
- root.swaps = [new.devicetree.get_device_by_id(d.id, hidden=True) for d in root.swaps]
- root.swaps = [s for s in root.swaps if s]
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
new file mode 100644
index 0000000..da568a4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
@@ -0,0 +1,45 @@
+From 0659d8a85bcdd76c0b23b8b5af6958783d35ac65 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 8 May 2017 16:33:15 +0800
+Subject: [PATCH 06/11] tweak btrfs packages
+
+In oe-cre/yocto, we name btrfs package with btrfs-tools,
+rather than btrfs-progs.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/devices/btrfs.py | 2 +-
+ blivet/formats/fs.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/blivet/devices/btrfs.py b/blivet/devices/btrfs.py
+index cada940..7e4d4b8 100644
+--- a/blivet/devices/btrfs.py
++++ b/blivet/devices/btrfs.py
+@@ -55,7 +55,7 @@ class BTRFSDevice(StorageDevice):
+
+ """ Base class for BTRFS volume and sub-volume devices. """
+ _type = "btrfs"
+- _packages = ["btrfs-progs"]
++ _packages = ["btrfs-tools"]
+ _external_dependencies = [availability.BLOCKDEV_BTRFS_PLUGIN]
+
+ def __init__(self, *args, **kwargs):
+diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py
+index 81e367f..55e5d57 100644
+--- a/blivet/formats/fs.py
++++ b/blivet/formats/fs.py
+@@ -926,7 +926,7 @@ class BTRFS(FS):
+ _formattable = True
+ _linux_native = True
+ _supported = True
+- _packages = ["btrfs-progs"]
++ _packages = ["btrfs-tools"]
+ _min_size = Size("256 MiB")
+ _max_size = Size("16 EiB")
+ _mkfs_class = fsmkfs.BTRFSMkfs
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch
deleted file mode 100644
index 6512d86..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 78ee2b9090f9400ccc4f730e674f5ae972740ccb Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 26 Aug 2016 02:02:49 -0400
-Subject: [PATCH 07/13] fix incorrect timeout while system time changed
-
-While system time changed by NTP, invoking timeout_command
-breaks with incorrect timeout.
---------
-|05:40:55,872 INFO program: Running... mount -t ext2 -o
- defaults,ro /dev/sda2 /mnt/sysimage
-|01:40:55,086 DEBUG program: 10 seconds timeout
---------
-
-Use numbert count to replace current time count could workaround
-the issue.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/util.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/blivet/util.py b/blivet/util.py
-index 44a2da5..b3c45ac 100644
---- a/blivet/util.py
-+++ b/blivet/util.py
-@@ -163,14 +163,14 @@ def timeout_command(argv, timeout, *args, **kwargs):
- """call shell-command and either return its output or kill it
- if it doesn't normally exit within timeout seconds and return None"""
- import subprocess, datetime, os, time, signal
-- start = datetime.datetime.now()
-+ count = 0
-
- try:
- proc = subprocess.Popen(argv, *args, **kwargs)
- while proc.poll() is None:
- time.sleep(0.1)
-- now = datetime.datetime.now()
-- if timeout != -1 and (now - start).seconds> timeout:
-+ count += 1
-+ if timeout != -1 and count > timeout*10:
- os.kill(proc.pid, signal.SIGKILL)
- os.waitpid(-1, os.WNOHANG)
- program_log.debug("%d seconds timeout" % timeout)
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
new file mode 100644
index 0000000..e301219
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
@@ -0,0 +1,31 @@
+From 9c7a15312259854f12137a30229e52c30fb7c770 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 31 Aug 2016 21:30:32 -0400
+Subject: [PATCH 07/11] invoking mount with infinite timeout
+
+This large timeout is needed when running on machines with
+lots of disks, or with slow disks.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/util.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/util.py b/blivet/util.py
+index bc08af5..b672787 100644
+--- a/blivet/util.py
++++ b/blivet/util.py
+@@ -256,7 +256,7 @@ def mount(device, mountpoint, fstype, options=None):
+
+ argv = ["mount", "-t", fstype, "-o", options, device, mountpoint]
+ try:
+- rc = run_program(argv)
++ rc = run_program(argv, timeout=-1)
+ except OSError:
+ raise
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch
deleted file mode 100644
index 121336e..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 6f661a511eea096c073888c7adb836a9a880b476 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 16:33:15 +0800
-Subject: [PATCH 08/13] tweak btrfs packages
-
-In oe-cre/yocto, we name btrfs package with btrfs-tools,
-rather than btrfs-progs.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/devices/btrfs.py | 2 +-
- blivet/formats/fs.py | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/blivet/devices/btrfs.py b/blivet/devices/btrfs.py
-index c5cb21f..9d417b2 100644
---- a/blivet/devices/btrfs.py
-+++ b/blivet/devices/btrfs.py
-@@ -55,7 +55,7 @@ class BTRFSDevice(StorageDevice):
-
- """ Base class for BTRFS volume and sub-volume devices. """
- _type = "btrfs"
-- _packages = ["btrfs-progs"]
-+ _packages = ["btrfs-tools"]
- _external_dependencies = [availability.BLOCKDEV_BTRFS_PLUGIN]
-
- def __init__(self, *args, **kwargs):
-diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py
-index a49826f..e8f216d 100644
---- a/blivet/formats/fs.py
-+++ b/blivet/formats/fs.py
-@@ -918,7 +918,7 @@ class BTRFS(FS):
- _formattable = True
- _linux_native = True
- _supported = True
-- _packages = ["btrfs-progs"]
-+ _packages = ["btrfs-tools"]
- _min_size = Size("256 MiB")
- _max_size = Size("16 EiB")
- _mkfs_class = fsmkfs.BTRFSMkfs
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
new file mode 100644
index 0000000..feb5647
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
@@ -0,0 +1,34 @@
+From 7f57b2cd145d67c20beb02d5495b502f7af012cd Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 8 May 2017 03:54:12 -0400
+Subject: [PATCH 08/11] use oe variable to replace hardcoded dir
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ setup.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 7edab2c..9be3187 100644
+--- a/setup.py
++++ b/setup.py
+@@ -61,10 +61,10 @@ class blivet_sdist(sdist):
+
+
+ data_files = [
+- ('/etc/dbus-1/system.d', ['dbus/blivet.conf']),
+- ('/usr/share/dbus-1/system-services', ['dbus/com.redhat.Blivet1.service']),
+- ('/usr/libexec', ['dbus/blivetd']),
+- ('/usr/lib/systemd/system', ['dbus/blivet.service'])
++ (os.environ.get('sysconfdir')+'/dbus-1/system.d', ['dbus/blivet.conf']),
++ (os.environ.get('datadir')+'/dbus-1/system-services', ['dbus/com.redhat.Blivet1.service']),
++ (os.environ.get('libexecdir'), ['dbus/blivetd']),
++ (os.environ.get('systemd_system_unitdir'), ['dbus/blivet.service'])
+ ]
+
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch
new file mode 100644
index 0000000..30d2d3e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch
@@ -0,0 +1,31 @@
+From c757666f42f543baeed5df61269798c085665d9b Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 1 Jun 2017 16:05:27 +0800
+Subject: [PATCH 09/11] invoking fsck with infinite timeout
+
+This large timeout is needed when running on machines with
+lots of disks, or with slow disks.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/tasks/fsck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/tasks/fsck.py b/blivet/tasks/fsck.py
+index 5274f13..6e074c4 100644
+--- a/blivet/tasks/fsck.py
++++ b/blivet/tasks/fsck.py
+@@ -77,7 +77,7 @@ class FSCK(task.BasicApplication, fstask.FSTask):
+ raise FSError("\n".join(error_msgs))
+
+ try:
+- rc = util.run_program(self._fsck_command)
++ rc = util.run_program(self._fsck_command, timeout=-1)
+ except OSError as e:
+ raise FSError("filesystem check failed: %s" % e)
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch
deleted file mode 100644
index fc084b1..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From a6ac2157ee6793302e23ddbc5e3b249fa7da5b7e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 31 Aug 2016 21:30:32 -0400
-Subject: [PATCH 09/13] invoking mount with infinite timeout
-
-This large timeout is needed when running on machines with
-lots of disks, or with slow disks.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/util.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/util.py b/blivet/util.py
-index b3c45ac..9f02b18 100644
---- a/blivet/util.py
-+++ b/blivet/util.py
-@@ -257,7 +257,7 @@ def mount(device, mountpoint, fstype, options=None):
-
- argv = ["mount", "-t", fstype, "-o", options, device, mountpoint]
- try:
-- rc = run_program(argv)
-+ rc = run_program(argv, timeout=-1)
- except OSError:
- raise
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
new file mode 100644
index 0000000..b2f4501
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
@@ -0,0 +1,31 @@
+From 42d8e57c748951098534bf7f52c4ebc790ef66e9 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 16 Jun 2017 15:43:00 +0800
+Subject: [PATCH 10/11] invoking mkfs with infinite timeout
+
+This large timeout is needed when running on machines with
+lots of disks, or with slow disks.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/tasks/fsmkfs.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/tasks/fsmkfs.py b/blivet/tasks/fsmkfs.py
+index ad166aa..7bf5075 100644
+--- a/blivet/tasks/fsmkfs.py
++++ b/blivet/tasks/fsmkfs.py
+@@ -170,7 +170,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):
+ options = options or []
+ cmd = self._mkfs_command(options, label, set_uuid)
+ try:
+- ret = util.run_program(cmd)
++ ret = util.run_program(cmd, timeout=-1)
+ except OSError as e:
+ raise FSError(e)
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch
deleted file mode 100644
index 45d8fab..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e07133dbcf3c52e1ddd2f12797dcd16145269273 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 03:54:12 -0400
-Subject: [PATCH 10/13] use oe variable to replace hardcoded dir
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- setup.py | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 4d06a33..a994d06 100644
---- a/setup.py
-+++ b/setup.py
-@@ -61,10 +61,10 @@ class blivet_sdist(sdist):
-
-
- data_files = [
-- ('/etc/dbus-1/system.d', ['dbus/blivet.conf']),
-- ('/usr/share/dbus-1/system-services', ['dbus/com.redhat.Blivet1.service']),
-- ('/usr/libexec', ['dbus/blivetd']),
-- ('/usr/lib/systemd/system', ['dbus/blivet.service'])
-+ (os.environ.get('sysconfdir')+'/dbus-1/system.d', ['dbus/blivet.conf']),
-+ (os.environ.get('datadir')+'/dbus-1/system-services', ['dbus/com.redhat.Blivet1.service']),
-+ (os.environ.get('libexecdir'), ['dbus/blivetd']),
-+ (os.environ.get('systemd_system_unitdir'), ['dbus/blivet.service'])
- ]
-
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
new file mode 100644
index 0000000..f24ce0a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
@@ -0,0 +1,31 @@
+From a4753b3cbbd5aee59dc53eb16564cafd9862763e Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 6 Mar 2018 17:28:56 +0800
+Subject: [PATCH 11/11] invoking dd with infinite timeout
+
+This large timeout is needed when running on machines with
+lots of disks, or with slow disks.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/devices/partition.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py
+index 47ff547..0cd1614 100644
+--- a/blivet/devices/partition.py
++++ b/blivet/devices/partition.py
+@@ -621,7 +621,7 @@ class PartitionDevice(StorageDevice):
+ cmd = ["dd", "if=/dev/zero", "of=%s" % device, "bs=%d" % bs,
+ "seek=%d" % start, "count=%d" % count]
+ try:
+- util.run_program(cmd)
++ util.run_program(cmd, timeout=-1)
+ except OSError as e:
+ log.error(str(e))
+ finally:
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch
deleted file mode 100644
index c61fe01..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From e9ab4376a18cc1bd413c000b036320833eec80d7 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 1 Jun 2017 16:05:27 +0800
-Subject: [PATCH 11/13] invoking fsck with infinite timeout
-
-This large timeout is needed when running on machines with
-lots of disks, or with slow disks.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/tasks/fsck.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/tasks/fsck.py b/blivet/tasks/fsck.py
-index c4214dc..e13ac6b 100644
---- a/blivet/tasks/fsck.py
-+++ b/blivet/tasks/fsck.py
-@@ -77,7 +77,7 @@ class FSCK(task.BasicApplication, fstask.FSTask):
- raise FSError("\n".join(error_msgs))
-
- try:
-- rc = util.run_program(self._fsck_command)
-+ rc = util.run_program(self._fsck_command, timeout=-1)
- except OSError as e:
- raise FSError("filesystem check failed: %s" % e)
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch
deleted file mode 100644
index 33bdbe8..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9f5a048181cf29d241d96814e736b8235b3d42b1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 16 Jun 2017 15:43:00 +0800
-Subject: [PATCH 12/13] invoking mkfs with infinite timeout
-
-This large timeout is needed when running on machines with
-lots of disks, or with slow disks.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/tasks/fsmkfs.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/tasks/fsmkfs.py b/blivet/tasks/fsmkfs.py
-index ad166aa..7bf5075 100644
---- a/blivet/tasks/fsmkfs.py
-+++ b/blivet/tasks/fsmkfs.py
-@@ -170,7 +170,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):
- options = options or []
- cmd = self._mkfs_command(options, label, set_uuid)
- try:
-- ret = util.run_program(cmd)
-+ ret = util.run_program(cmd, timeout=-1)
- except OSError as e:
- raise FSError(e)
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-remove-dmraid-dependency-check.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-remove-dmraid-dependency-check.patch
new file mode 100644
index 0000000..886e3ff
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-remove-dmraid-dependency-check.patch
@@ -0,0 +1,31 @@
+From 4476e846a1e64dde17df2e2370c803ce695514f9 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 6 Aug 2018 17:18:27 +0800
+Subject: [PATCH] remove dmraid dependency check
+
+OE does not support dmraid, remove it from dependency check
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/tasks/availability.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/blivet/tasks/availability.py b/blivet/tasks/availability.py
+index 9a87cfd..843cf6a 100644
+--- a/blivet/tasks/availability.py
++++ b/blivet/tasks/availability.py
+@@ -316,8 +316,7 @@ BLOCKDEV_DM_ALL_MODES = (blockdev.DMTechMode.CREATE_ACTIVATE |
+ blockdev.DMTechMode.QUERY)
+ BLOCKDEV_DM = BlockDevTechInfo(plugin_name="dm",
+ check_fn=blockdev.dm_is_tech_avail,
+- technologies={blockdev.DMTech.MAP: BLOCKDEV_DM_ALL_MODES,
+- blockdev.DMTech.RAID: BLOCKDEV_DM_ALL_MODES})
++ technologies={blockdev.DMTech.MAP: BLOCKDEV_DM_ALL_MODES})
+ BLOCKDEV_DM_TECH = BlockDevMethod(BLOCKDEV_DM)
+
+ # libblockdev loop plugin required technologies and modes
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch
deleted file mode 100644
index 6bdf4ce..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From bfdaf79a2109ac6aed408f0c94f69766991e60e2 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Jul 2017 14:34:30 +0800
-Subject: [PATCH 13/13] Revert "Adapt to logging module name change"
-
-Upstream-Status: Inappropriate [oe specific, sync with anaconda f26-release]
-
-This reverts commit c367d62a516e541ad28636c8259321f1c53417ce.
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/__init__.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/__init__.py b/blivet/__init__.py
-index 49277cb..a01e487 100644
---- a/blivet/__init__.py
-+++ b/blivet/__init__.py
-@@ -124,7 +124,7 @@ def enable_installer_mode():
- from pyanaconda.constants import ROOT_PATH # pylint: disable=redefined-outer-name,no-name-in-module
- _storage_root = _sysroot = ROOT_PATH
-
-- from pyanaconda.anaconda_logging import program_log_lock
-+ from pyanaconda.anaconda_log import program_log_lock
- util.program_log_lock = program_log_lock
-
- flags.installer_mode = True
---
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-add-Z-y-and-y-to-lvm.pvcreate.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-add-Z-y-and-y-to-lvm.pvcreate.patch
new file mode 100644
index 0000000..33b5f51
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-add-Z-y-and-y-to-lvm.pvcreate.patch
@@ -0,0 +1,41 @@
+From bddbfa499df16b108f2d892ee48d65617523c33d Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 9 Aug 2018 11:00:39 +0800
+Subject: [PATCH] add `-Z y' and `-y' to lvm.pvcreate
+
+While reinstall a crypt fs, it occasionally failed
+[snip]
+|gi.overrides.BlockDev.LVMError: Process reported exit code 5:
+WARNING: atari signature detected on /dev/mapper/luks-0e5f891c
+-7701-48bc-a41e-8d626b6ef953 at offset 466. Wipe it? [y/n]:
+[snip]
+
+Add `-Z y' and `-y' to lvm.pvcreate
+
+Upstream-Status: Submitted [https://github.com/storaged-project/blivet/pull/714]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/formats/lvmpv.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/blivet/formats/lvmpv.py b/blivet/formats/lvmpv.py
+index 260cc0b..4bbb46f 100644
+--- a/blivet/formats/lvmpv.py
++++ b/blivet/formats/lvmpv.py
+@@ -120,9 +120,9 @@ class LVMPhysicalVolume(DeviceFormat):
+ log_method_call(self, device=self.device,
+ type=self.type, status=self.status)
+
+- # Consider use of -Z|--zero
+- # -f|--force or -y|--yes may be required
+- blockdev.lvm.pvcreate(self.device, data_alignment=self.data_alignment)
++ ea_zero = blockdev.ExtraArg.new("-Z", "y")
++ ea_yes = blockdev.ExtraArg.new("-y", "")
++ blockdev.lvm.pvcreate(self.device, data_alignment=self.data_alignment, extra=[ea_zero, ea_yes])
+
+ def _destroy(self, **kwargs):
+ log_method_call(self, device=self.device,
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0014-invoking-dd-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0014-invoking-dd-with-infinite-timeout.patch
deleted file mode 100644
index 12a9e4f..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0014-invoking-dd-with-infinite-timeout.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 92fe7dfd01131c93a9b2013cabf77d5f46900fab Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 6 Mar 2018 17:28:56 +0800
-Subject: [PATCH] invoking dd with infinite timeout
-
-This large timeout is needed when running on machines with
-lots of disks, or with slow disks.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/devices/partition.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py
-index a7372fb..8947472 100644
---- a/blivet/devices/partition.py
-+++ b/blivet/devices/partition.py
-@@ -594,7 +594,7 @@ class PartitionDevice(StorageDevice):
- cmd = ["dd", "if=/dev/zero", "of=%s" % device, "bs=%d" % bs,
- "seek=%d" % start, "count=%d" % count]
- try:
-- util.run_program(cmd)
-+ util.run_program(cmd, timeout=-1)
- except OSError as e:
- log.error(str(e))
- finally:
---
-1.8.3.1
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb
deleted file mode 100644
index 46dc32d..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-DESCRIPTION = "A python module for system storage configuration"
-HOMEPAGE = "http://fedoraproject.org/wiki/blivet"
-LICENSE = "LGPLv2+"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "39db82f20d8d4904c0c4dc8912e595177c59e091"
-SRC_URI = "git://github.com/rhinstaller/blivet;branch=2.2-devel \
- file://0001-comment-out-selinux.patch \
- file://0002-run_program-support-timeout.patch\
- file://0003-support-infinit-timeout.patch \
- file://0004-Mount-var-volatile-during-install.patch \
- file://0005-update-fstab-by-appending.patch \
- file://0006-fix-new.roots-object-is-not-iterable.patch \
- file://0007-fix-incorrect-timeout-while-system-time-changed.patch \
- file://0008-tweak-btrfs-packages.patch \
- file://0009-invoking-mount-with-infinite-timeout.patch \
- file://0010-use-oe-variable-to-replace-hardcoded-dir.patch \
- file://0011-invoking-fsck-with-infinite-timeout.patch \
- file://0012-invoking-mkfs-with-infinite-timeout.patch \
- file://0013-Revert-Adapt-to-logging-module-name-change.patch \
- file://0014-invoking-dd-with-infinite-timeout.patch \
-"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-inherit setuptools3 python3native
-
-RDEPENDS_${PN} = "python3-pykickstart python3-pyudev \
- parted python3-pyparted multipath-tools \
- lsof cryptsetup libblockdev \
- libbytesize \
-"
-
-FILES_${PN} += " \
- ${datadir}/dbus-1/system-services \
-"
-
-inherit systemd
-
-SYSTEMD_AUTO_ENABLE = "disable"
-SYSTEMD_SERVICE_${PN} = "blivet.service"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.0.1.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.0.1.bb
new file mode 100644
index 0000000..75f02f1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.0.1.bb
@@ -0,0 +1,48 @@
+DESCRIPTION = "A python module for system storage configuration"
+HOMEPAGE = "http://fedoraproject.org/wiki/blivet"
+LICENSE = "LGPLv2+"
+SECTION = "devel/python"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+SRCREV = "ddc24c71bad10208b11ea0c45853898fadd7030b"
+SRC_URI = "git://github.com/rhinstaller/blivet;branch=3.1-release \
+ file://0001-comment-out-selinux.patch \
+ file://0002-run_program-support-timeout.patch \
+ file://0003-support-infinit-timeout.patch \
+ file://0004-fix-new.roots-object-is-not-iterable.patch \
+ file://0005-fix-incorrect-timeout-while-system-time-changed.patch \
+ file://0006-tweak-btrfs-packages.patch \
+ file://0007-invoking-mount-with-infinite-timeout.patch \
+ file://0008-use-oe-variable-to-replace-hardcoded-dir.patch \
+ file://0009-invoking-fsck-with-infinite-timeout.patch \
+ file://0010-invoking-mkfs-with-infinite-timeout.patch \
+ file://0011-invoking-dd-with-infinite-timeout.patch \
+ file://0012-remove-dmraid-dependency-check.patch \
+ file://0013-add-Z-y-and-y-to-lvm.pvcreate.patch \
+"
+
+UPSTREAM_CHECK_GITTAGREGEX = "blivet-(?P<pver>\d+(\.\d+)+)$"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+inherit setuptools3 python3native
+
+RDEPENDS_${PN} = "python3-pykickstart python3-pyudev \
+ parted python3-pyparted multipath-tools \
+ lsof cryptsetup libblockdev \
+ libbytesize \
+"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1/system-services \
+"
+
+inherit systemd
+
+SYSTEMD_AUTO_ENABLE = "disable"
+SYSTEMD_SERVICE_${PN} = "blivet.service"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.5.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.5.bb
deleted file mode 100644
index 28c2565..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.5.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "GUI tool for storage configuration using blivet library"
-HOMEPAGE = "https://github.com/rhinstaller/blivet-gui"
-LICENSE = "GPLv2+"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "52ae8c000843c05abd1d8749f44bbe2e5d891d3d"
-SRC_URI = "git://github.com/rhinstaller/blivet-gui;branch=master \
-"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "x11 systemd"
-
-inherit setuptools3 python3native
-
-RDEPENDS_${PN} = "python3-pygobject python3 \
- python3-blivet gtk+3 \
- python3-pid libreport \
-"
-
-FILES_${PN} += " \
- ${datadir}/* \
- "
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.8.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.8.bb
new file mode 100644
index 0000000..91f0dff
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.8.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "GUI tool for storage configuration using blivet library"
+HOMEPAGE = "https://github.com/rhinstaller/blivet-gui"
+LICENSE = "GPLv2+"
+SECTION = "devel/python"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+SRCREV = "a4fd427ee2acc5a8f5fb030bf7816917cee63bd8"
+SRC_URI = "git://github.com/rhinstaller/blivet-gui;branch=master \
+"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "x11 systemd"
+
+inherit setuptools3 python3native
+
+RDEPENDS_${PN} = "python3-pygobject python3 \
+ python3-blivet gtk+3 \
+ python3-pid libreport \
+"
+
+FILES_${PN} += " \
+ ${datadir}/* \
+ "
diff --git a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.46.bb b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.46.bb
deleted file mode 100644
index 40e2cbd..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.46.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A python library for handling exceptions"
-DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \
-exceptions."
-HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git"
-LICENSE = "GPLv2+"
-
-inherit setuptools3
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \
-"
-SRCREV = "bb1156728a4f76e5e3638ab20b9454a1568a99db"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-FILES_${PN} += "${datadir}/*"
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb
new file mode 100644
index 0000000..95d6d18
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.47.bb
@@ -0,0 +1,17 @@
+SUMMARY = "A python library for handling exceptions"
+DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \
+exceptions."
+HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git"
+LICENSE = "GPLv2+"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \
+"
+SRCREV = "78d868d99104317ce8820f39f61d207566e61a55"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+FILES_${PN} += "${datadir}/*"
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
index 617699d..e7533f4 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
@@ -1,6 +1,6 @@
-From d0d8890b5ef74c315381c9e1cff4b1d32892116b Mon Sep 17 00:00:00 2001
+From f05f5fc363e2510f6943532f3e14a6423f6a2cf1 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 1 Jun 2017 15:07:36 +0800
+Date: Tue, 31 Jul 2018 17:24:47 +0800
Subject: [PATCH 1/4] support authentication for kickstart
While download kickstart file from web server,
@@ -13,30 +13,29 @@
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- pykickstart/errors.py | 19 +++++++++++++++++++
- pykickstart/load.py | 32 +++++++++++++++++++++++++++-----
+ pykickstart/errors.py | 17 +++++++++++++++++
+ pykickstart/load.py | 34 ++++++++++++++++++++++++++++------
pykickstart/parser.py | 4 ++--
- 3 files changed, 48 insertions(+), 7 deletions(-)
+ 3 files changed, 47 insertions(+), 8 deletions(-)
diff --git a/pykickstart/errors.py b/pykickstart/errors.py
-index b76e84c..fd81bc8 100644
+index bf08ac5..aada7aa 100644
--- a/pykickstart/errors.py
+++ b/pykickstart/errors.py
-@@ -35,6 +35,10 @@ It also exports several exception classes:
-
+@@ -32,6 +32,9 @@ This module exports several exception classes:
KickstartVersionError - An exception for errors relating to unsupported
syntax versions.
-+
+
+ KickstartAuthError - An exception for errors relating to authentication
+ failed while downloading kickstart from web server
+
- """
- import warnings
+ And some warning classes:
-@@ -103,3 +107,18 @@ class KickstartVersionError(KickstartError):
-
- def __str__ (self):
- return self.value
+ KickstartWarning - A generic warning class.
+@@ -131,3 +134,17 @@ class KickstartDeprecationWarning(KickstartParseWarning, DeprecationWarning):
+ commands and options.
+ """
+ pass
+
+class KickstartAuthError(KickstartError):
+ """An exception for errors relating to authentication failed while
@@ -51,9 +50,8 @@
+
+ def __str__(self):
+ return self.value
-+
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index 1f69b9c..0f5741b 100644
+index fb935f2..41a2e9e 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
@@ -18,10 +18,13 @@
@@ -71,7 +69,7 @@
from pykickstart.i18n import _
from requests.exceptions import SSLError, RequestException
-@@ -29,7 +32,7 @@ _is_url = lambda location: '://' in location # RFC 3986
+@@ -29,7 +32,7 @@ _is_url = lambda location: '://' in location # RFC 3986
SSL_VERIFY = True
@@ -89,10 +87,12 @@
else:
return _load_file(location)
-@@ -71,13 +74,32 @@ def load_to_file(location, destination):
+@@ -70,11 +73,30 @@ def load_to_file(location, destination):
_copy_file(location, destination)
return destination
+-def _load_url(location):
+- '''Load a location (URL or filename) and return contents as string'''
+def _get_auth(location, user=None, passwd=None):
+
+ auth = None
@@ -109,15 +109,12 @@
+ auth = HTTPBasicAuth(user, passwd)
+ elif auth_type == "Digest":
+ auth=HTTPDigestAuth(user, passwd)
-
--def _load_url(location):
++
+ return auth
+
+def _load_url(location, user=None, passwd=None):
- '''Load a location (URL or filename) and return contents as string'''
-
++ '''Load a location (URL or filename) and return contents as string'''
+ auth = _get_auth(location, user=user, passwd=passwd)
-+
try:
- request = requests.get(location, verify=SSL_VERIFY)
+ request = requests.get(location, verify=SSL_VERIFY, auth=auth)
@@ -125,26 +122,26 @@
raise KickstartError(_('Error securely accessing URL "%s"') % location + ': {e}'.format(e=str(e)))
except RequestException as e:
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index d2b0fbe..26b5de9 100644
+index d8880eb..22d14cb 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -773,7 +773,7 @@ class KickstartParser(object):
+@@ -787,7 +787,7 @@ class KickstartParser(object):
i = PutBackIterator(s.splitlines(True) + [""])
- self._stateMachine (i)
+ self._stateMachine(i)
- def readKickstart(self, f, reset=True):
+ def readKickstart(self, f, reset=True, username=None, password=None):
"""Process a kickstart file, given by the filename f."""
if reset:
self._reset()
-@@ -794,7 +794,7 @@ class KickstartParser(object):
+@@ -808,7 +808,7 @@ class KickstartParser(object):
self.currentdir[self._includeDepth] = cd
try:
- s = load_to_str(f)
+ s = load_to_str(f, user=username, passwd=password)
except KickstartError as e:
- raise KickstartError(formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % str(e)))
+ raise KickstartError(_("Unable to open input kickstart file: %s") % str(e), lineno=0)
--
2.7.4
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch
index cb21235..4a001f3 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch
@@ -1,28 +1,26 @@
-From e6e747b883114bfad51ad93f823e65f5a4d6438a Mon Sep 17 00:00:00 2001
+From 62fdead139edb0f29b2f222efcb8f39be15b057e Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 1 Jun 2017 15:12:29 +0800
-Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and
+Date: Mon, 30 Jul 2018 15:47:13 +0800
+Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and
support https without certification
- Add lock for readKickstart to fix race issue
- Support to download kickstart file through https without certification
-Upstream-Status: Inappropriate[oe specific]
-
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
pykickstart/load.py | 2 +-
- pykickstart/parser.py | 24 ++++++++++++++++++++++++
- 2 files changed, 25 insertions(+), 1 deletion(-)
+ pykickstart/parser.py | 18 ++++++++++++++++++
+ 2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index 0f5741b..48c8276 100644
+index c6f013f..7adb751 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
@@ -30,7 +30,7 @@ from requests.exceptions import SSLError, RequestException
- _is_url = lambda location: '://' in location # RFC 3986
+ _is_url = lambda location: '://' in location # RFC 3986
-SSL_VERIFY = True
+SSL_VERIFY = False
@@ -30,38 +28,32 @@
def load_to_str(location, user=None, passwd=None):
'''Load a destination URL or file into a string.
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index 26b5de9..264ba05 100644
+index e44099b..e68174d 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -57,6 +57,26 @@ STATE_COMMANDS = "commands"
+@@ -55,6 +55,20 @@ from pykickstart.i18n import _
+ STATE_END = "end"
+ STATE_COMMANDS = "commands"
- ver = version.DEVEL
-
-+import logging
-+log = logging.getLogger("anaconda")
-+
-+import inspect
+import threading
+_private_ks_lock = threading.RLock()
+
+class KsLock(object):
+ def __enter__(self):
-+ log.info("%s %s" % (self.__class__.__name__, inspect.stack()[0][3]))
+ _private_ks_lock.acquire()
+ return _private_ks_lock
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
-+ log.info("%s %s" % (self.__class__.__name__, inspect.stack()[0][3]))
+ _private_ks_lock.release()
+
+
+_ks_lock = KsLock()
+
- def _preprocessStateMachine (lineIter):
+ def _preprocessStateMachine(lineIter):
l = None
lineno = 0
-@@ -774,6 +794,10 @@ class KickstartParser(object):
- self._stateMachine (i)
+@@ -788,6 +802,10 @@ class KickstartParser(object):
+ self._stateMachine(i)
def readKickstart(self, f, reset=True, username=None, password=None):
+ with _ks_lock:
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
index 9fb25fb..81e351b 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
@@ -1,4 +1,4 @@
-From be6012a5dd49ae5e8ac035654ab1c6f37f0dc8f4 Mon Sep 17 00:00:00 2001
+From 44226393812399c61de9ca9281efa002ad4f4c01 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 1 Jun 2017 15:15:15 +0800
Subject: [PATCH 3/4] comment out sections shutdown and environment in
@@ -17,10 +17,10 @@
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/pykickstart/commands/reboot.py b/pykickstart/commands/reboot.py
-index 88799ba..2d0cea9 100644
+index 2c1b1c0..b3ec717 100644
--- a/pykickstart/commands/reboot.py
+++ b/pykickstart/commands/reboot.py
-@@ -41,6 +41,9 @@ class FC3_Reboot(KickstartCommand):
+@@ -43,6 +43,9 @@ class FC3_Reboot(KickstartCommand):
elif self.action == KS_SHUTDOWN:
retval += "# Shutdown after installation\nshutdown"
retval += self._getArgsAsStr() + "\n"
@@ -31,10 +31,10 @@
return retval
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index 264ba05..b3f33d7 100644
+index e68174d..efd78a6 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -383,7 +383,7 @@ class Packages(KickstartObject):
+@@ -385,7 +385,7 @@ class Packages(KickstartObject):
if not self.default:
if self.environment:
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
index 70254f6..6ed15ab 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
@@ -1,6 +1,6 @@
-From c0e63f0d3c09bdabb0ad2c88b7cc73e7618dd86a Mon Sep 17 00:00:00 2001
+From ffe06c6dd812b604d6482e4353d5564fad78bc90 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 15 Jun 2017 17:35:33 +0800
+Date: Mon, 30 Jul 2018 15:52:21 +0800
Subject: [PATCH 4/4] load.py: retry to invoke request with timeout
While networkless, use request to fetch kickstart file from
@@ -12,11 +12,11 @@
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- pykickstart/load.py | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
+ pykickstart/load.py | 31 +++++++++++++++++++++++++++++++
+ 1 file changed, 31 insertions(+)
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index 48c8276..74b266b 100644
+index ad3bad1..a5cbbc5 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
@@ -21,6 +21,7 @@ import requests
@@ -32,12 +32,12 @@
from requests.exceptions import SSLError, RequestException
+import logging
-+log = logging.getLogger("anaconda")
++log = logging.getLogger("anaconda.main")
+
- _is_url = lambda location: '://' in location # RFC 3986
+ _is_url = lambda location: '://' in location # RFC 3986
SSL_VERIFY = False
-@@ -74,6 +78,29 @@ def load_to_file(location, destination):
+@@ -73,6 +77,29 @@ def load_to_file(location, destination):
_copy_file(location, destination)
return destination
@@ -67,16 +67,17 @@
def _get_auth(location, user=None, passwd=None):
auth = None
-@@ -96,6 +123,9 @@ def _get_auth(location, user=None, passwd=None):
+@@ -94,6 +121,10 @@ def _get_auth(location, user=None, passwd=None):
+
def _load_url(location, user=None, passwd=None):
'''Load a location (URL or filename) and return contents as string'''
-
++
+ if not _access_url(location):
+ raise KickstartError(_("Connection %s failed" % location))
+
auth = _get_auth(location, user=user, passwd=passwd)
-
try:
+ request = requests.get(location, verify=SSL_VERIFY, auth=auth)
--
2.7.4
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch
deleted file mode 100644
index 3d61495..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 8a1f598223bd4cbcc877eb2aba3f5586c75c9d14 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 21 Aug 2017 10:05:06 +0800
-Subject: [PATCH] tweak shebang to python3
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- tools/ksvalidator.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/ksvalidator.py b/tools/ksvalidator.py
-index d6051d5..c3682e8 100755
---- a/tools/ksvalidator.py
-+++ b/tools/ksvalidator.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/python3
- #
- # Chris Lumens <clumens@redhat.com>
- #
---
-1.8.3.1
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb
deleted file mode 100644
index 7fe603b..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "A python library for manipulating kickstart files"
-HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart"
-LICENSE = "GPLv2+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-DEPENDS = "python3"
-RDEPENDS_${PN} = "python3 \
- python3-requests \
- python3-six \
-"
-
-S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/rhinstaller/pykickstart.git;protocol=https;branch=pykickstart-2 \
- file://0001-support-authentication-for-kickstart.patch \
- file://0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch \
- file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \
- file://0004-load.py-retry-to-invoke-request-with-timeout.patch \
- file://0005-tweak-shebang-to-python3.patch \
- "
-SRCREV = "b2787a818540e678c2f9c5dca0c6bbd65b8b55e5"
-
-inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.15.bb b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.15.bb
new file mode 100644
index 0000000..07876a9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.15.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "A python library for manipulating kickstart files"
+HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart"
+LICENSE = "GPLv2+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+DEPENDS = "python3"
+RDEPENDS_${PN} = "python3 \
+ python3-requests \
+ python3-six \
+"
+
+S = "${WORKDIR}/git"
+SRC_URI = "git://github.com/rhinstaller/pykickstart.git;protocol=https;branch=master \
+ file://0001-support-authentication-for-kickstart.patch \
+ file://0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch \
+ file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \
+ file://0004-load.py-retry-to-invoke-request-with-timeout.patch \
+ "
+SRCREV = "07c4d89129fa6b460acc86daf58eb5ff64cdc832"
+
+UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"
+
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem.inc b/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem.inc
new file mode 100644
index 0000000..5151c33
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem.inc
@@ -0,0 +1,48 @@
+SUMMARY = "Python WBEM Client and Provider Interface"
+DESCRIPTION = "\
+A Python library for making CIM (Common Information Model) operations over \
+HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \
+WBEM client should be easy to use and not necessarily require a large amount \
+of programming knowledge. It is suitable for a large range of tasks from \
+simply poking around to writing web and GUI applications. \
+\
+WBEM, or Web Based Enterprise Management is a manageability protocol, like \
+SNMP, standardised by the Distributed Management Task Force (DMTF) available \
+at http://www.dmtf.org/standards/wbem. \
+\
+It also provides a Python provider interface, and is the fastest and easiest \
+way to write providers on the planet."
+HOMEPAGE = "http://pywbem.github.io"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://pywbem/LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
+SRC_URI[md5sum] = "1465dfa92e4cbe558c773838b9b00711"
+SRC_URI[sha256sum] = "2a05f2c1a6ab4b08560a6da55fdaabd0f52f4d1e6df6e288b9ed927bf5c289ed"
+
+inherit pypi
+
+DEPENDS += " \
+ ${PYTHON_PN}-ply-native \
+ ${PYTHON_PN}-pyyaml-native \
+ ${PYTHON_PN}-six-native \
+"
+
+do_install_append() {
+ mv ${D}${bindir}/wbemcli.py ${D}${bindir}/pywbemcli
+
+ rm -f ${D}${bindir}/*.bat
+}
+
+RDEPENDS_${PN}_class-target += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-ply \
+ ${PYTHON_PN}-pyyaml \
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-stringold \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-unixadmin \
+ ${PYTHON_PN}-xml \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem_0.11.0.bb b/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem_0.11.0.bb
new file mode 100644
index 0000000..7410749
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/pywbem/python-pywbem_0.11.0.bb
@@ -0,0 +1,13 @@
+require python-pywbem.inc
+inherit setuptools
+
+DEPENDS += " \
+ ${PYTHON_PN}-m2crypto-native \
+ ${PYTHON_PN}-typing-native \
+"
+
+RDEPENDS_${PN}_class-target += "\
+ ${PYTHON_PN}-argparse \
+ ${PYTHON_PN}-m2crypto \
+ ${PYTHON_PN}-subprocess \
+"
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.11.0.bb b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.11.0.bb
new file mode 100644
index 0000000..6a35a87
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.11.0.bb
@@ -0,0 +1,2 @@
+require python-pywbem.inc
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb b/meta-openembedded/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb
deleted file mode 100644
index 7f1986e..0000000
--- a/meta-openembedded/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Python WBEM Client and Provider Interface"
-DESCRIPTION = "\
-A Python library for making CIM (Common Information Model) operations over \
-HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \
-WBEM client should be easy to use and not necessarily require a large amount \
-of programming knowledge. It is suitable for a large range of tasks from \
-simply poking around to writing web and GUI applications. \
-\
-WBEM, or Web Based Enterprise Management is a manageability protocol, like \
-SNMP, standardised by the Distributed Management Task Force (DMTF) available \
-at http://www.dmtf.org/standards/wbem. \
-\
-It also provides a Python provider interface, and is the fastest and easiest \
-way to write providers on the planet."
-HOMEPAGE = "http://pywbem.sf.net/"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://pywbem/LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
-SECTION = "Development/Libraries"
-DEPENDS = "python-m2crypto-native python-typing-native"
-SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BPN}/${BP}/${BP}-dev.r704.zip"
-SRC_URI[md5sum] = "84072451dcdd1aa9ee82363848faf7ad"
-SRC_URI[sha256sum] = "898035866d3cc741bbcd62c4ac26e633ad07b7c11d89db2472b9f923f3fd3ed8"
-
-S = "${WORKDIR}/${BP}-dev"
-
-inherit setuptools python-dir
-
-do_install_append() {
- mv ${D}${bindir}/wbemcli.py ${D}${bindir}/pywbemcli
- mv ${D}${bindir}/mof_compiler.py ${D}${bindir}/mofcomp
-
- rm ${D}${libdir}/python2.7/site-packages/${BPN}/wbemcli.py*
- rm ${D}${libdir}/python2.7/site-packages/${BPN}/mof_compiler.py*
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-webserver/README b/meta-openembedded/meta-webserver/README
index 7b60630..4d2c710 100644
--- a/meta-openembedded/meta-webserver/README
+++ b/meta-openembedded/meta-webserver/README
@@ -13,14 +13,14 @@
URI: git://github.com/openembedded/oe-core.git
subdirectory: meta
-branch: master
+branch: thud
revision: HEAD
For some recipes, the meta-oe layer is required:
URI: git://github.com/openembedded/meta-oe.git
subdirectory: meta-oe
-branch: master
+branch: thud
revision: HEAD
@@ -52,9 +52,9 @@
-----------
Send patches / pull requests to openembedded-devel@lists.openembedded.org
-with '[meta-webserver]' in the subject.
+with '[meta-webserver][thud]' in the subject.
-Layer maintainer: Derek Straka <derek@asterius.io>
+Thud Maintainer: Armin Kuster <akuster808@gmail.com>
License
diff --git a/meta-openembedded/meta-webserver/conf/layer.conf b/meta-openembedded/meta-webserver/conf/layer.conf
index f205ef2..aaa3a95 100644
--- a/meta-openembedded/meta-webserver/conf/layer.conf
+++ b/meta-openembedded/meta-webserver/conf/layer.conf
@@ -17,7 +17,7 @@
LAYERDEPENDS_webserver = "core openembedded-layer"
-LAYERSERIES_COMPAT_webserver = "sumo"
+LAYERSERIES_COMPAT_webserver = "thud"
LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb
deleted file mode 100644
index 36f073c..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
-extensible web server."
-SUMMARY = "Apache HTTP Server"
-HOMEPAGE = "http://httpd.apache.org/"
-DEPENDS = "expat-native pcre-native apr-native apr-util-native"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-
-inherit autotools pkgconfig native
-
-SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
- file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
- "
-
-S = "${WORKDIR}/httpd-${PV}"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8"
-SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407"
-SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00"
-
-EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
- --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \
- --prefix=${prefix} --datadir=${datadir}/apache2 \
- "
-
-do_install () {
- install -d ${D}${bindir} ${D}${libdir}
- cp server/gen_test_char ${D}${bindir}
- install -m 755 support/apxs ${D}${bindir}/
- install -m 755 httpd ${D}${bindir}/
- install -d ${D}${datadir}/apache2/build
- cp ${S}/build/*.mk ${D}${datadir}/apache2/build
- cp build/*.mk ${D}${datadir}/apache2/build
- cp ${S}/build/instdso.sh ${D}${datadir}/apache2/build
-
- install -d ${D}${includedir}/apache2
- cp ${S}/include/* ${D}${includedir}/apache2
- cp include/* ${D}${includedir}/apache2
- cp ${S}/os/unix/os.h ${D}${includedir}/apache2
- cp ${S}/os/unix/unixd.h ${D}${includedir}/apache2
-
- cp support/envvars-std ${D}${bindir}/envvars
- chmod 755 ${D}${bindir}/envvars
-}
-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.34.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.34.bb
new file mode 100644
index 0000000..4cc3845
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.34.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
+extensible web server."
+SUMMARY = "Apache HTTP Server"
+HOMEPAGE = "http://httpd.apache.org/"
+DEPENDS = "expat-native pcre-native apr-native apr-util-native"
+SECTION = "net"
+LICENSE = "Apache-2.0"
+
+inherit autotools pkgconfig native
+
+SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
+ file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
+ file://CVE-2018-11763.patch \
+ "
+
+S = "${WORKDIR}/httpd-${PV}"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d52d0fd0bc788f068e647116c01ddfcd"
+SRC_URI[md5sum] = "818adca52f3be187fe45d6822755be95"
+SRC_URI[sha256sum] = "fa53c95631febb08a9de41fd2864cfff815cf62d9306723ab0d4b8d7aa1638f0"
+
+EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
+ --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \
+ --prefix=${prefix} --datadir=${datadir}/apache2 \
+ "
+
+do_install () {
+ install -d ${D}${bindir} ${D}${libdir}
+ cp server/gen_test_char ${D}${bindir}
+ install -m 755 support/apxs ${D}${bindir}/
+ install -m 755 httpd ${D}${bindir}/
+ install -d ${D}${datadir}/apache2/build
+ cp ${S}/build/*.mk ${D}${datadir}/apache2/build
+ cp build/*.mk ${D}${datadir}/apache2/build
+ cp ${S}/build/instdso.sh ${D}${datadir}/apache2/build
+
+ install -d ${D}${includedir}/apache2
+ cp ${S}/include/* ${D}${includedir}/apache2
+ cp include/* ${D}${includedir}/apache2
+ cp ${S}/os/unix/os.h ${D}${includedir}/apache2
+ cp ${S}/os/unix/unixd.h ${D}${includedir}/apache2
+
+ cp support/envvars-std ${D}${bindir}/envvars
+ chmod 755 ${D}${bindir}/envvars
+}
+
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch
new file mode 100644
index 0000000..da38a8c
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch
@@ -0,0 +1,51 @@
+From 419181e242892ded050f5a375a709b9588fb581d Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Tue, 17 Jun 2014 09:10:57 +0200
+Subject: [PATCH] configure: use pkg-config for PCRE detection
+
+Upstream-Status: Pending
+
+Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
+
+---
+ configure.in | 27 +++++----------------------
+ 1 file changed, 5 insertions(+), 22 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index be7bd25..54dfd0d 100644
+--- a/configure.in
++++ b/configure.in
+@@ -215,28 +215,11 @@ fi
+ AC_ARG_WITH(pcre,
+ APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library))
+
+-AC_PATH_PROG(PCRE_CONFIG, pcre-config, false)
+-if test -d "$with_pcre" && test -x "$with_pcre/bin/pcre-config"; then
+- PCRE_CONFIG=$with_pcre/bin/pcre-config
+-elif test -x "$with_pcre"; then
+- PCRE_CONFIG=$with_pcre
+-fi
+-
+-if test "$PCRE_CONFIG" != "false"; then
+- if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else
+- AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG])
+- fi
+- case `$PCRE_CONFIG --version` in
+- [[1-5].*])
+- AC_MSG_ERROR([Need at least pcre version 6.0])
+- ;;
+- esac
+- AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG])
+- APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`])
+- APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs`])
+-else
+- AC_MSG_ERROR([pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/])
+-fi
++PKG_CHECK_MODULES([PCRE], [libpcre], [
++ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library])
++], [
++ AC_MSG_ERROR([$PCRE_PKG_ERRORS])
++])
+ APACHE_SUBST(PCRE_LIBS)
+
+ AC_MSG_NOTICE([])
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/CVE-2018-11763.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/CVE-2018-11763.patch
new file mode 100644
index 0000000..a2c5b2e
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/CVE-2018-11763.patch
@@ -0,0 +1,512 @@
+From 484aba5048e3457dc1d15189f1910d007b1a4a76 Mon Sep 17 00:00:00 2001
+From: Jim Jagielski <jim@apache.org>
+Date: Wed, 12 Sep 2018 20:38:02 +0000
+Subject: [PATCH] Merge r1840010 from trunk:
+
+On the trunk:
+
+mod_http2: connection IO event handling reworked. Instead of reacting on
+ incoming bytes, the state machine now acts on incoming frames that are
+ affecting it. This reduces state transitions.
+
+
+Submitted by: icing
+Reviewed by: icing, ylavic, jim
+
+
+git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1840757 13f79535-47bb-0310-9956-ffa450edef68
+CVE: CVE-2018-11763
+Upstream-Status: Backport [https://github.com/apache/httpd/commit/484aba5048e3457dc1d15189f1910d007b1a4a76]
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ modules/http2/h2_session.c | 238 +++++++++++++++++++++++--------------
+ modules/http2/h2_session.h | 7 +-
+ modules/http2/h2_version.h | 4 +-
+ 3 files changed, 158 insertions(+), 97 deletions(-)
+
+diff --git a/modules/http2/h2_session.c b/modules/http2/h2_session.c
+index 805d6774dc..a1b31d2b30 100644
+--- a/modules/http2/h2_session.c
++++ b/modules/http2/h2_session.c
+@@ -235,6 +235,7 @@ static int on_data_chunk_recv_cb(nghttp2_session *ngh2, uint8_t flags,
+ stream = h2_session_stream_get(session, stream_id);
+ if (stream) {
+ status = h2_stream_recv_DATA(stream, flags, data, len);
++ dispatch_event(session, H2_SESSION_EV_STREAM_CHANGE, 0, "stream data rcvd");
+ }
+ else {
+ ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c, APLOGNO(03064)
+@@ -317,9 +318,9 @@ static int on_header_cb(nghttp2_session *ngh2, const nghttp2_frame *frame,
+ }
+
+ /**
+- * nghttp2 session has received a complete frame. Most, it uses
+- * for processing of internal state. HEADER and DATA frames however
+- * we need to handle ourself.
++ * nghttp2 session has received a complete frame. Most are used by nghttp2
++ * for processing of internal state. Some, like HEADER and DATA frames,
++ * we need to act on.
+ */
+ static int on_frame_recv_cb(nghttp2_session *ng2s,
+ const nghttp2_frame *frame,
+@@ -378,6 +379,9 @@ static int on_frame_recv_cb(nghttp2_session *ng2s,
+ "h2_stream(%ld-%d): WINDOW_UPDATE incr=%d",
+ session->id, (int)frame->hd.stream_id,
+ frame->window_update.window_size_increment);
++ if (nghttp2_session_want_write(session->ngh2)) {
++ dispatch_event(session, H2_SESSION_EV_FRAME_RCVD, 0, "window update");
++ }
+ break;
+ case NGHTTP2_RST_STREAM:
+ ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c, APLOGNO(03067)
+@@ -404,6 +408,12 @@ static int on_frame_recv_cb(nghttp2_session *ng2s,
+ frame->goaway.error_code, NULL);
+ }
+ break;
++ case NGHTTP2_SETTINGS:
++ if (APLOGctrace2(session->c)) {
++ ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, session->c,
++ H2_SSSN_MSG(session, "SETTINGS, len=%ld"), (long)frame->hd.length);
++ }
++ break;
+ default:
+ if (APLOGctrace2(session->c)) {
+ char buffer[256];
+@@ -415,7 +425,40 @@ static int on_frame_recv_cb(nghttp2_session *ng2s,
+ }
+ break;
+ }
+- return (APR_SUCCESS == rv)? 0 : NGHTTP2_ERR_PROTO;
++
++ if (session->state == H2_SESSION_ST_IDLE) {
++ /* We received a frame, but session is in state IDLE. That means the frame
++ * did not really progress any of the (possibly) open streams. It was a meta
++ * frame, e.g. SETTINGS/WINDOW_UPDATE/unknown/etc.
++ * Remember: IDLE means we cannot send because either there are no streams open or
++ * all open streams are blocked on exhausted WINDOWs for outgoing data.
++ * The more frames we receive that do not change this, the less interested we
++ * become in serving this connection. This is expressed in increasing "idle_delays".
++ * Eventually, the connection will timeout and we'll close it. */
++ session->idle_frames = H2MIN(session->idle_frames + 1, session->frames_received);
++ ap_log_cerror( APLOG_MARK, APLOG_TRACE2, 0, session->c,
++ H2_SSSN_MSG(session, "session has %ld idle frames"),
++ (long)session->idle_frames);
++ if (session->idle_frames > 10) {
++ apr_size_t busy_frames = H2MAX(session->frames_received - session->idle_frames, 1);
++ int idle_ratio = (int)(session->idle_frames / busy_frames);
++ if (idle_ratio > 100) {
++ session->idle_delay = apr_time_from_msec(H2MIN(1000, idle_ratio));
++ }
++ else if (idle_ratio > 10) {
++ session->idle_delay = apr_time_from_msec(10);
++ }
++ else if (idle_ratio > 1) {
++ session->idle_delay = apr_time_from_msec(1);
++ }
++ else {
++ session->idle_delay = 0;
++ }
++ }
++ }
++
++ if (APR_SUCCESS != rv) return NGHTTP2_ERR_PROTO;
++ return 0;
+ }
+
+ static int h2_session_continue_data(h2_session *session) {
+@@ -1603,23 +1646,57 @@ static void update_child_status(h2_session *session, int status, const char *msg
+
+ static void transit(h2_session *session, const char *action, h2_session_state nstate)
+ {
++ apr_time_t timeout;
++ int ostate, loglvl;
++ const char *s;
++
+ if (session->state != nstate) {
+- int loglvl = APLOG_DEBUG;
+- if ((session->state == H2_SESSION_ST_BUSY && nstate == H2_SESSION_ST_WAIT)
+- || (session->state == H2_SESSION_ST_WAIT && nstate == H2_SESSION_ST_BUSY)){
++ ostate = session->state;
++ session->state = nstate;
++
++ loglvl = APLOG_DEBUG;
++ if ((ostate == H2_SESSION_ST_BUSY && nstate == H2_SESSION_ST_WAIT)
++ || (ostate == H2_SESSION_ST_WAIT && nstate == H2_SESSION_ST_BUSY)){
+ loglvl = APLOG_TRACE1;
+ }
+ ap_log_cerror(APLOG_MARK, loglvl, 0, session->c,
+ H2_SSSN_LOG(APLOGNO(03078), session,
+ "transit [%s] -- %s --> [%s]"),
+- h2_session_state_str(session->state), action,
++ h2_session_state_str(ostate), action,
+ h2_session_state_str(nstate));
+- session->state = nstate;
++
+ switch (session->state) {
+ case H2_SESSION_ST_IDLE:
+- update_child_status(session, (session->open_streams == 0?
+- SERVER_BUSY_KEEPALIVE
+- : SERVER_BUSY_READ), "idle");
++ if (!session->remote.emitted_count) {
++ /* on fresh connections, with async mpm, do not return
++ * to mpm for a second. This gives the first request a better
++ * chance to arrive (und connection leaving IDLE state).
++ * If we return to mpm right away, this connection has the
++ * same chance of being cleaned up by the mpm as connections
++ * that already served requests - not fair. */
++ session->idle_sync_until = apr_time_now() + apr_time_from_sec(1);
++ s = "timeout";
++ timeout = H2MAX(session->s->timeout, session->s->keep_alive_timeout);
++ update_child_status(session, SERVER_BUSY_READ, "idle");
++ ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, session->c,
++ H2_SSSN_LOG("", session, "enter idle, timeout = %d sec"),
++ (int)apr_time_sec(H2MAX(session->s->timeout, session->s->keep_alive_timeout)));
++ }
++ else if (session->open_streams) {
++ s = "timeout";
++ timeout = session->s->keep_alive_timeout;
++ update_child_status(session, SERVER_BUSY_KEEPALIVE, "idle");
++ }
++ else {
++ /* normal keepalive setup */
++ s = "keepalive";
++ timeout = session->s->keep_alive_timeout;
++ update_child_status(session, SERVER_BUSY_KEEPALIVE, "idle");
++ }
++ session->idle_until = apr_time_now() + timeout;
++ ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, session->c,
++ H2_SSSN_LOG("", session, "enter idle, %s = %d sec"),
++ s, (int)apr_time_sec(timeout));
+ break;
+ case H2_SESSION_ST_DONE:
+ update_child_status(session, SERVER_CLOSING, "done");
+@@ -1726,8 +1803,6 @@ static void h2_session_ev_no_io(h2_session *session, int arg, const char *msg)
+ * This means we only wait for WINDOW_UPDATE from the
+ * client and can block on READ. */
+ transit(session, "no io (flow wait)", H2_SESSION_ST_IDLE);
+- session->idle_until = apr_time_now() + session->s->timeout;
+- session->keep_sync_until = session->idle_until;
+ /* Make sure we have flushed all previously written output
+ * so that the client will react. */
+ if (h2_conn_io_flush(&session->io) != APR_SUCCESS) {
+@@ -1738,12 +1813,7 @@ static void h2_session_ev_no_io(h2_session *session, int arg, const char *msg)
+ }
+ else if (session->local.accepting) {
+ /* When we have no streams, but accept new, switch to idle */
+- apr_time_t now = apr_time_now();
+ transit(session, "no io (keepalive)", H2_SESSION_ST_IDLE);
+- session->idle_until = (session->remote.emitted_count?
+- session->s->keep_alive_timeout :
+- session->s->timeout) + now;
+- session->keep_sync_until = now + apr_time_from_sec(1);
+ }
+ else {
+ /* We are no longer accepting new streams and there are
+@@ -1758,12 +1828,25 @@ static void h2_session_ev_no_io(h2_session *session, int arg, const char *msg)
+ }
+ }
+
+-static void h2_session_ev_data_read(h2_session *session, int arg, const char *msg)
++static void h2_session_ev_frame_rcvd(h2_session *session, int arg, const char *msg)
++{
++ switch (session->state) {
++ case H2_SESSION_ST_IDLE:
++ case H2_SESSION_ST_WAIT:
++ transit(session, "frame received", H2_SESSION_ST_BUSY);
++ break;
++ default:
++ /* nop */
++ break;
++ }
++}
++
++static void h2_session_ev_stream_change(h2_session *session, int arg, const char *msg)
+ {
+ switch (session->state) {
+ case H2_SESSION_ST_IDLE:
+ case H2_SESSION_ST_WAIT:
+- transit(session, "data read", H2_SESSION_ST_BUSY);
++ transit(session, "stream change", H2_SESSION_ST_BUSY);
+ break;
+ default:
+ /* nop */
+@@ -1803,16 +1886,6 @@ static void h2_session_ev_pre_close(h2_session *session, int arg, const char *ms
+ static void ev_stream_open(h2_session *session, h2_stream *stream)
+ {
+ h2_iq_append(session->in_process, stream->id);
+- switch (session->state) {
+- case H2_SESSION_ST_IDLE:
+- if (session->open_streams == 1) {
+- /* enter timeout, since we have a stream again */
+- session->idle_until = (session->s->timeout + apr_time_now());
+- }
+- break;
+- default:
+- break;
+- }
+ }
+
+ static void ev_stream_closed(h2_session *session, h2_stream *stream)
+@@ -1825,11 +1898,6 @@ static void ev_stream_closed(h2_session *session, h2_stream *stream)
+ }
+ switch (session->state) {
+ case H2_SESSION_ST_IDLE:
+- if (session->open_streams == 0) {
+- /* enter keepalive timeout, since we no longer have streams */
+- session->idle_until = (session->s->keep_alive_timeout
+- + apr_time_now());
+- }
+ break;
+ default:
+ break;
+@@ -1887,6 +1955,7 @@ static void on_stream_state_enter(void *ctx, h2_stream *stream)
+ default:
+ break;
+ }
++ dispatch_event(session, H2_SESSION_EV_STREAM_CHANGE, 0, "stream state change");
+ }
+
+ static void on_stream_event(void *ctx, h2_stream *stream,
+@@ -1945,8 +2014,8 @@ static void dispatch_event(h2_session *session, h2_session_event_t ev,
+ case H2_SESSION_EV_NO_IO:
+ h2_session_ev_no_io(session, arg, msg);
+ break;
+- case H2_SESSION_EV_DATA_READ:
+- h2_session_ev_data_read(session, arg, msg);
++ case H2_SESSION_EV_FRAME_RCVD:
++ h2_session_ev_frame_rcvd(session, arg, msg);
+ break;
+ case H2_SESSION_EV_NGH2_DONE:
+ h2_session_ev_ngh2_done(session, arg, msg);
+@@ -1957,6 +2026,9 @@ static void dispatch_event(h2_session *session, h2_session_event_t ev,
+ case H2_SESSION_EV_PRE_CLOSE:
+ h2_session_ev_pre_close(session, arg, msg);
+ break;
++ case H2_SESSION_EV_STREAM_CHANGE:
++ h2_session_ev_stream_change(session, arg, msg);
++ break;
+ default:
+ ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, session->c,
+ H2_SSSN_MSG(session, "unknown event %d"), ev);
+@@ -1990,13 +2062,15 @@ apr_status_t h2_session_process(h2_session *session, int async)
+ apr_status_t status = APR_SUCCESS;
+ conn_rec *c = session->c;
+ int rv, mpm_state, trace = APLOGctrace3(c);
+-
++ apr_time_t now;
++
+ if (trace) {
+ ap_log_cerror( APLOG_MARK, APLOG_TRACE3, status, c,
+ H2_SSSN_MSG(session, "process start, async=%d"), async);
+ }
+
+ while (session->state != H2_SESSION_ST_DONE) {
++ now = apr_time_now();
+ session->have_read = session->have_written = 0;
+
+ if (session->local.accepting
+@@ -2034,39 +2108,42 @@ apr_status_t h2_session_process(h2_session *session, int async)
+ break;
+
+ case H2_SESSION_ST_IDLE:
+- /* We trust our connection into the default timeout/keepalive
+- * handling of the core filters/mpm iff:
+- * - keep_sync_until is not set
+- * - we have an async mpm
+- * - we have no open streams to process
+- * - we are not sitting on a Upgrade: request
+- * - we already have seen at least one request
+- */
+- if (!session->keep_sync_until && async && !session->open_streams
+- && !session->r && session->remote.emitted_count) {
++ if (session->idle_until && (apr_time_now() + session->idle_delay) > session->idle_until) {
++ ap_log_cerror( APLOG_MARK, APLOG_TRACE1, status, c,
++ H2_SSSN_MSG(session, "idle, timeout reached, closing"));
++ if (session->idle_delay) {
++ apr_table_setn(session->c->notes, "short-lingering-close", "1");
++ }
++ dispatch_event(session, H2_SESSION_EV_CONN_TIMEOUT, 0, "timeout");
++ goto out;
++ }
++
++ if (session->idle_delay) {
++ /* we are less interested in spending time on this connection */
++ ap_log_cerror( APLOG_MARK, APLOG_TRACE2, status, c,
++ H2_SSSN_MSG(session, "session is idle (%ld ms), idle wait %ld sec left"),
++ (long)apr_time_as_msec(session->idle_delay),
++ (long)apr_time_sec(session->idle_until - now));
++ apr_sleep(session->idle_delay);
++ session->idle_delay = 0;
++ }
++
++ h2_conn_io_flush(&session->io);
++ if (async && !session->r && (now > session->idle_sync_until)) {
+ if (trace) {
+ ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, c,
+ H2_SSSN_MSG(session,
+ "nonblock read, %d streams open"),
+ session->open_streams);
+ }
+- h2_conn_io_flush(&session->io);
+ status = h2_session_read(session, 0);
+
+ if (status == APR_SUCCESS) {
+ session->have_read = 1;
+- dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
+ }
+- else if (APR_STATUS_IS_EAGAIN(status)
+- || APR_STATUS_IS_TIMEUP(status)) {
+- if (apr_time_now() > session->idle_until) {
+- dispatch_event(session,
+- H2_SESSION_EV_CONN_TIMEOUT, 0, NULL);
+- }
+- else {
+- status = APR_EAGAIN;
+- goto out;
+- }
++ else if (APR_STATUS_IS_EAGAIN(status) || APR_STATUS_IS_TIMEUP(status)) {
++ status = APR_EAGAIN;
++ goto out;
+ }
+ else {
+ ap_log_cerror(APLOG_MARK, APLOG_DEBUG, status, c,
+@@ -2078,7 +2155,6 @@ apr_status_t h2_session_process(h2_session *session, int async)
+ }
+ else {
+ /* make certain, we send everything before we idle */
+- h2_conn_io_flush(&session->io);
+ if (trace) {
+ ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, c,
+ H2_SSSN_MSG(session,
+@@ -2090,7 +2166,6 @@ apr_status_t h2_session_process(h2_session *session, int async)
+ */
+ status = h2_mplx_idle(session->mplx);
+ if (status == APR_EAGAIN) {
+- dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
+ break;
+ }
+ else if (status != APR_SUCCESS) {
+@@ -2101,33 +2176,11 @@ apr_status_t h2_session_process(h2_session *session, int async)
+ status = h2_session_read(session, 1);
+ if (status == APR_SUCCESS) {
+ session->have_read = 1;
+- dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
+ }
+ else if (status == APR_EAGAIN) {
+ /* nothing to read */
+ }
+ else if (APR_STATUS_IS_TIMEUP(status)) {
+- apr_time_t now = apr_time_now();
+- if (now > session->keep_sync_until) {
+- /* if we are on an async mpm, now is the time that
+- * we may dare to pass control to it. */
+- session->keep_sync_until = 0;
+- }
+- if (now > session->idle_until) {
+- if (trace) {
+- ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, c,
+- H2_SSSN_MSG(session,
+- "keepalive timeout"));
+- }
+- dispatch_event(session,
+- H2_SESSION_EV_CONN_TIMEOUT, 0, "timeout");
+- }
+- else if (trace) {
+- ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, c,
+- H2_SSSN_MSG(session,
+- "keepalive, %f sec left"),
+- (session->idle_until - now) / 1000000.0f);
+- }
+ /* continue reading handling */
+ }
+ else if (APR_STATUS_IS_ECONNABORTED(status)
+@@ -2145,6 +2198,18 @@ apr_status_t h2_session_process(h2_session *session, int async)
+ dispatch_event(session, H2_SESSION_EV_CONN_ERROR, 0, "error");
+ }
+ }
++ if (nghttp2_session_want_write(session->ngh2)) {
++ ap_update_child_status(session->c->sbh, SERVER_BUSY_WRITE, NULL);
++ status = h2_session_send(session);
++ if (status == APR_SUCCESS) {
++ status = h2_conn_io_flush(&session->io);
++ }
++ if (status != APR_SUCCESS) {
++ dispatch_event(session, H2_SESSION_EV_CONN_ERROR,
++ H2_ERR_INTERNAL_ERROR, "writing");
++ break;
++ }
++ }
+ break;
+
+ case H2_SESSION_ST_BUSY:
+@@ -2154,7 +2219,6 @@ apr_status_t h2_session_process(h2_session *session, int async)
+ status = h2_session_read(session, 0);
+ if (status == APR_SUCCESS) {
+ session->have_read = 1;
+- dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
+ }
+ else if (status == APR_EAGAIN) {
+ /* nothing to read */
+@@ -2218,7 +2282,7 @@ apr_status_t h2_session_process(h2_session *session, int async)
+ session->iowait);
+ if (status == APR_SUCCESS) {
+ session->wait_us = 0;
+- dispatch_event(session, H2_SESSION_EV_DATA_READ, 0, NULL);
++ dispatch_event(session, H2_SESSION_EV_STREAM_CHANGE, 0, NULL);
+ }
+ else if (APR_STATUS_IS_TIMEUP(status)) {
+ /* go back to checking all inputs again */
+diff --git a/modules/http2/h2_session.h b/modules/http2/h2_session.h
+index 486938b009..df2a862445 100644
+--- a/modules/http2/h2_session.h
++++ b/modules/http2/h2_session.h
+@@ -66,10 +66,11 @@ typedef enum {
+ H2_SESSION_EV_PROTO_ERROR, /* protocol error */
+ H2_SESSION_EV_CONN_TIMEOUT, /* connection timeout */
+ H2_SESSION_EV_NO_IO, /* nothing has been read or written */
+- H2_SESSION_EV_DATA_READ, /* connection data has been read */
++ H2_SESSION_EV_FRAME_RCVD, /* a frame has been received */
+ H2_SESSION_EV_NGH2_DONE, /* nghttp2 wants neither read nor write anything */
+ H2_SESSION_EV_MPM_STOPPING, /* the process is stopping */
+ H2_SESSION_EV_PRE_CLOSE, /* connection will close after this */
++ H2_SESSION_EV_STREAM_CHANGE, /* a stream (state/input/output) changed */
+ } h2_session_event_t;
+
+ typedef struct h2_session {
+@@ -118,7 +119,9 @@ typedef struct h2_session {
+ apr_size_t max_stream_mem; /* max buffer memory for a single stream */
+
+ apr_time_t idle_until; /* Time we shut down due to sheer boredom */
+- apr_time_t keep_sync_until; /* Time we sync wait until passing to async mpm */
++ apr_time_t idle_sync_until; /* Time we sync wait until keepalive handling kicks in */
++ apr_size_t idle_frames; /* number of rcvd frames that kept session in idle state */
++ apr_interval_time_t idle_delay; /* Time we delay processing rcvd frames in idle state */
+
+ apr_bucket_brigade *bbtmp; /* brigade for keeping temporary data */
+ struct apr_thread_cond_t *iowait; /* our cond when trywaiting for data */
+diff --git a/modules/http2/h2_version.h b/modules/http2/h2_version.h
+index 5c53abd575..2ac718fc0f 100644
+--- a/modules/http2/h2_version.h
++++ b/modules/http2/h2_version.h
+@@ -27,7 +27,7 @@
+ * @macro
+ * Version number of the http2 module as c string
+ */
+-#define MOD_HTTP2_VERSION "1.10.20"
++#define MOD_HTTP2_VERSION "1.11.0"
+
+ /**
+ * @macro
+@@ -35,7 +35,7 @@
+ * release. This is a 24 bit number with 8 bits for major number, 8 bits
+ * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
+ */
+-#define MOD_HTTP2_VERSION_NUM 0x010a14
++#define MOD_HTTP2_VERSION_NUM 0x010b00
+
+
+ #endif /* mod_h2_h2_version_h */
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch
index 92c53f3..a2bc6e0 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch
@@ -1,14 +1,19 @@
-# Author: echo <fei.geng@windriver.com>
-# Date: April 28 2009
-# Summary:Fix perl install directory to /usr/bin
-#
-# Upstream-Status: Inappropriate [configuration]
+From 5412077c398dec74321388fe6e593a44c4c80de6 Mon Sep 17 00:00:00 2001
+From: echo <fei.geng@windriver.com>
+Date: Tue, 28 Apr 2009 03:11:06 +0000
+Subject: [PATCH] Fix perl install directory to /usr/bin
-Index: httpd-2.4.29/configure.in
-===================================================================
---- httpd-2.4.29.orig/configure.in
-+++ httpd-2.4.29/configure.in
-@@ -855,10 +855,7 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "
+Upstream-Status: Inappropriate [configuration]
+
+---
+ configure.in | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index d828512..be7bd25 100644
+--- a/configure.in
++++ b/configure.in
+@@ -855,10 +855,7 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf",
AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types",
[Location of the MIME types config file, relative to the Apache root directory])
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch
deleted file mode 100644
index f13da91..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch
+++ /dev/null
@@ -1,81 +0,0 @@
- build/ltmain.sh | 32 +++++++++++++++++++++++++++-----
- 1 file changed, 27 insertions(+), 5 deletions(-)
-
-Index: httpd-2.4.29/build/ltmain.sh
-===================================================================
---- httpd-2.4.29.orig/build/ltmain.sh
-+++ httpd-2.4.29/build/ltmain.sh
-@@ -6969,7 +6969,7 @@ func_mode_link ()
- dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
-- [\\/]* | [A-Za-z]:[\\/]*) ;;
-+ =* | [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
-@@ -8167,7 +8167,7 @@ func_mode_link ()
- $ECHO "*** $linklib is not portable!"
- fi
- if test lib = "$linkmode" &&
-- test yes = "$hardcode_into_libs"; then
-+ test "x$wrs_use_rpaths" = "xyes" && test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
-@@ -8434,7 +8434,7 @@ func_mode_link ()
-
- if test lib = "$linkmode"; then
- if test -n "$dependency_libs" &&
-- { test yes != "$hardcode_into_libs" ||
-+ { test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" ||
- test yes = "$build_old_libs" ||
- test yes = "$link_static"; }; then
- # Extract -R from dependency_libs
-@@ -9086,7 +9086,8 @@ func_mode_link ()
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
-- if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
-+ if test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" ||
-+ test yes = "$build_old_libs"; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-@@ -9534,7 +9535,7 @@ EOF
- case $archive_cmds in
- *\$LD\ *) wl= ;;
- esac
-- if test yes = "$hardcode_into_libs"; then
-+ if test yes = "$hardcode_into_libs" && test "x$wrs_use_rpaths" = "xyes"; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
-@@ -10272,6 +10273,27 @@ EOF
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
-+
-+ # short circuit putting rpaths in executables
-+ #
-+ if test "x$wrs_use_rpaths" != "xyes" ; then
-+ flag=
-+ for libdir in $compile_rpath; do
-+ case $(echo $libdir | ${SED} 's,/[/]*,/,g') in
-+ /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;;
-+ esac
-+ done
-+ compile_rpath="$flag"
-+
-+ flag=
-+ for libdir in $finalize_rpath; do
-+ case $(echo $libdir | ${SED} 's,/[/]*,/,g') in
-+ /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;;
-+ esac
-+ done
-+ finalize_rpath="$flag"
-+ fi
-+
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/configure-allow-to-disable-selinux-support.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/configure-allow-to-disable-selinux-support.patch
new file mode 100644
index 0000000..a6ccfb6
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/configure-allow-to-disable-selinux-support.patch
@@ -0,0 +1,38 @@
+From 166cbc02f72d13d5e7bf08ac2351c0f07e1ff4b9 Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Mon, 1 Dec 2014 02:08:27 -0500
+Subject: [PATCH] apache2: allow to disable selinux support
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+
+---
+ configure.in | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 54dfd0d..377e062 100644
+--- a/configure.in
++++ b/configure.in
+@@ -466,10 +466,16 @@ getloadavg
+ dnl confirm that a void pointer is large enough to store a long integer
+ APACHE_CHECK_VOID_PTR_LEN
+
+-AC_CHECK_LIB(selinux, is_selinux_enabled, [
+- AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
+- APR_ADDTO(AP_LIBS, [-lselinux])
+-])
++# SELinux support
++AC_ARG_ENABLE(selinux,APACHE_HELP_STRING(--enable-selinux,Enable SELinux support [default=auto]),
++ [],[enable_selinux=auto])
++
++if test x$enable_selinux != xno; then
++ AC_CHECK_LIB(selinux, is_selinux_enabled, [
++ AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
++ APR_ADDTO(AP_LIBS, [-lselinux])
++ ])
++fi
+
+ AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
+ [AC_TRY_RUN(#define _GNU_SOURCE
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch
index 18e4107..ae4ff0c 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch
@@ -1,15 +1,25 @@
+From 55ebb07cc57854cbfb372c3a688365039b809bc8 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] apache2: add from OE-Classic, update to version 2.4.2 and fix
Bump up the core size limit if CoreDumpDirectory is
configured.
-Upstream-Status: Pending
+Upstream-Status: Pending
Note: upstreaming was discussed but there are competing desires;
there are portability oddities here too.
---- httpd-2.4.1/server/core.c.corelimit
-+++ httpd-2.4.1/server/core.c
-@@ -4433,6 +4433,25 @@ static int core_post_config(apr_pool_t *
+---
+ server/core.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/server/core.c b/server/core.c
+index 4af0816..4fd2b9f 100644
+--- a/server/core.c
++++ b/server/core.c
+@@ -4940,6 +4940,25 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte
}
apr_pool_cleanup_register(pconf, NULL, ap_mpm_end_gen_helper,
apr_pool_cleanup_null);
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch
index 873328d..015034c 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch
@@ -1,3 +1,7 @@
+From 33c0f2d88ccfe02777f183eb785bb2b891aff168 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] Log the SELinux context at startup.
Log the SELinux context at startup.
@@ -5,9 +9,16 @@
Note: unlikely to be any interest in this upstream
---- httpd-2.4.1/configure.in.selinux
-+++ httpd-2.4.1/configure.in
-@@ -458,6 +458,11 @@ fopen64
+---
+ configure.in | 5 +++++
+ server/core.c | 26 ++++++++++++++++++++++++++
+ 2 files changed, 31 insertions(+)
+
+diff --git a/configure.in b/configure.in
+index 761e836..d828512 100644
+--- a/configure.in
++++ b/configure.in
+@@ -483,6 +483,11 @@ getloadavg
dnl confirm that a void pointer is large enough to store a long integer
APACHE_CHECK_VOID_PTR_LEN
@@ -19,9 +30,11 @@
AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
[AC_TRY_RUN(#define _GNU_SOURCE
#include <unistd.h>
---- httpd-2.4.1/server/core.c.selinux
-+++ httpd-2.4.1/server/core.c
-@@ -58,6 +58,10 @@
+diff --git a/server/core.c b/server/core.c
+index 4fd2b9f..c61304a 100644
+--- a/server/core.c
++++ b/server/core.c
+@@ -59,6 +59,10 @@
#include <unistd.h>
#endif
@@ -32,7 +45,7 @@
/* LimitRequestBody handling */
#define AP_LIMIT_REQ_BODY_UNSET ((apr_off_t) -1)
#define AP_DEFAULT_LIMIT_REQ_BODY ((apr_off_t) 0)
-@@ -4452,6 +4456,28 @@ static int core_post_config(apr_pool_t *
+@@ -4959,6 +4963,28 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte
}
#endif
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.3-fix-race-issue-of-dir-install.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.3-fix-race-issue-of-dir-install.patch
new file mode 100644
index 0000000..2262e9f
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.3-fix-race-issue-of-dir-install.patch
@@ -0,0 +1,33 @@
+From 3b079a9df7582e305246fd805837d87a2c4ef534 Mon Sep 17 00:00:00 2001
+From: Zhenhua Luo <zhenhua.luo@freescale.com>
+Date: Fri, 25 Jan 2013 18:10:50 +0800
+Subject: [PATCH] apache2: fix the race issue of parallel installation
+
+Upstream-Status: Pending
+
+fix following race issue when do parallel install
+| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
+...
+| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
+| make[1]: *** [install-man] Error 1
+| make[1]: *** Waiting for unfinished jobs....
+
+Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
+
+---
+ build/mkdir.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/mkdir.sh b/build/mkdir.sh
+index e2d5bb6..dde5ae0 100755
+--- a/build/mkdir.sh
++++ b/build/mkdir.sh
+@@ -39,7 +39,7 @@ for file in ${1+"$@"} ; do
+ esac
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp" 1>&2
+- mkdir "$pathcomp" || errstatus=$?
++ mkdir -p "$pathcomp" || errstatus=$?
+ fi
+ pathcomp="$pathcomp/"
+ done
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch
index afbed8e..843226c 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch
@@ -1,19 +1,27 @@
+From a5627edbcc88cd50caaa42ca051ac7ed3d870172 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] apache2: add from OE-Classic, update to version 2.4.2 and fix
There is no need to "suck in" the apr/apr-util symbols when using
a shared libapr{,util}, it just bloats the symbol table; so don't.
-Upstream-HEAD: needed
-Upstream-2.0: omit
Upstream-Status: Pending
Note: EXPORT_DIRS change is conditional on using shared apr
---- httpd-2.4.4/server/Makefile.in.export
-+++ httpd-2.4.4/server/Makefile.in
-@@ -57,9 +57,6 @@ export_files:
- ( for dir in $(EXPORT_DIRS); do \
+---
+ server/Makefile.in | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/server/Makefile.in b/server/Makefile.in
+index cb11684..0d48924 100644
+--- a/server/Makefile.in
++++ b/server/Makefile.in
+@@ -60,9 +60,6 @@ export_files:
ls $$dir/*.h ; \
done; \
+ echo "$(top_srcdir)/server/mpm_fdqueue.h"; \
- for dir in $(EXPORT_DIRS_APR); do \
- ls $$dir/ap[ru].h $$dir/ap[ru]_*.h 2>/dev/null; \
- done; \
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch
index e4e01b2..020f1d7 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch
@@ -1,4 +1,4 @@
-From 760ccbb2fb046621a2aeaecabb2b1ef9aa280cf1 Mon Sep 17 00:00:00 2001
+From 94a9e2241ea27e75babbfdeb38043b13049e23b0 Mon Sep 17 00:00:00 2001
From: Yulong Pei <Yulong.pei@windriver.com>
Date: Thu, 1 Sep 2011 01:03:14 +0800
Subject: [PATCH] replace lynx to curl in apachectl script
@@ -6,14 +6,15 @@
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Yulong Pei <Yulong.pei@windriver.com>
----
- support/apachectl.in | 14 ++++++++++----
- 1 files changed, 10 insertions(+), 4 deletions(-)
-Index: httpd-2.4.29/support/apachectl.in
-===================================================================
---- httpd-2.4.29.orig/support/apachectl.in
-+++ httpd-2.4.29/support/apachectl.in
+---
+ support/apachectl.in | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/support/apachectl.in b/support/apachectl.in
+index 3281c2e..6ab4ba5 100644
+--- a/support/apachectl.in
++++ b/support/apachectl.in
@@ -52,11 +52,11 @@ fi
# a command that outputs a formatted text version of the HTML at the
# url given on the command line. Designed for lynx, however other
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch
index f1349cb..5476d4f 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch
@@ -1,6 +1,18 @@
---- http-2.0.54/server/Makefile.in-old 2005-12-20 13:26:56.000000000 -0500
-+++ http-2.0.54/server/Makefile.in 2005-12-20 13:27:22.000000000 -0500
-@@ -27,7 +27,7 @@
+From aa02bbfd8f16871db5563a95fa94dd170964949f Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ server/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/server/Makefile.in b/server/Makefile.in
+index 1fa3344..cb11684 100644
+--- a/server/Makefile.in
++++ b/server/Makefile.in
+@@ -29,7 +29,7 @@ gen_test_char: $(gen_test_char_OBJECTS)
$(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
test_char.h: gen_test_char
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb
deleted file mode 100644
index f0298b9..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb
+++ /dev/null
@@ -1,194 +0,0 @@
-DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
-extensible web server."
-SUMMARY = "Apache HTTP Server"
-HOMEPAGE = "http://httpd.apache.org/"
-DEPENDS = "libtool-native apache2-native openssl expat pcre apr apr-util"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-
-SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
- file://server-makefile.patch \
- file://httpd-2.4.1-corelimit.patch \
- file://httpd-2.4.4-export.patch \
- file://httpd-2.4.1-selinux.patch \
- file://apache-configure_perlbin.patch \
- file://replace-lynx-to-curl-in-apachectl-script.patch \
- file://apache-ssl-ltmain-rpath.patch \
- file://httpd-2.4.3-fix-race-issue-of-dir-install.patch \
- file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
- file://configure-allow-to-disable-selinux-support.patch \
- file://init \
- file://apache2-volatile.conf \
- file://apache2.service \
- file://volatiles.04_apache2 \
- "
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8"
-SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407"
-SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00"
-
-S = "${WORKDIR}/httpd-${PV}"
-
-inherit autotools update-rc.d pkgconfig systemd
-
-SYSTEMD_SERVICE_${PN} = "apache2.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
-
-SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice"
-
-CFLAGS_append = " -DPATH_MAX=4096"
-CFLAGS_prepend = "-I${STAGING_INCDIR}/openssl "
-EXTRA_OECONF = "--enable-ssl \
- --with-ssl=${STAGING_LIBDIR}/.. \
- --with-expat=${STAGING_LIBDIR}/.. \
- --with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
- --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \
- --enable-info \
- --enable-rewrite \
- --with-dbm=sdbm \
- --with-berkeley-db=no \
- --localstatedir=/var/${BPN} \
- --with-gdbm=no \
- --with-ndbm=no \
- --includedir=${includedir}/${BPN} \
- --datadir=${datadir}/${BPN} \
- --sysconfdir=${sysconfdir}/${BPN} \
- --libexecdir=${libdir}/${BPN}/modules \
- ap_cv_void_ptr_lt_long=no \
- --enable-mpms-shared \
- ac_cv_have_threadsafe_pollset=no"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
-PACKAGECONFIG[selinux] = "--enable-selinux --enable-layout=Debian --prefix=${base_prefix}/,--disable-selinux,libselinux,libselinux"
-PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap"
-
-do_configure_prepend() {
- sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libdir}/cgi-bin:g' ${S}/config.layout
-}
-
-do_install_append() {
- install -d ${D}/${sysconfdir}/init.d
- cat ${WORKDIR}/init | \
- sed -e 's,/usr/sbin/,${sbindir}/,g' \
- -e 's,/usr/bin/,${bindir}/,g' \
- -e 's,/usr/lib,${libdir}/,g' \
- -e 's,/etc/,${sysconfdir}/,g' \
- -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN}
- chmod 755 ${D}/${sysconfdir}/init.d/${BPN}
- # remove the goofy original files...
- rm -rf ${D}/${sysconfdir}/${BPN}/original
- # Expat should be found in the staging area via DEPENDS...
- rm -f ${D}/${libdir}/libexpat.*
-
- install -d ${D}${sysconfdir}/${BPN}/conf.d
- install -d ${D}${sysconfdir}/${BPN}/modules.d
-
- # Ensure configuration file pulls in conf.d and modules.d
- printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
- printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
- printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
- # match with that is in init script
- printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
- # Set 'ServerName' to fix error messages when restart apache service
- sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
- elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2
- fi
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service
-
- chown -R root:root ${D}
-}
-
-do_install_append_class-target() {
- sed -i -e 's,${STAGING_DIR_HOST},,g' \
- -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
- -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk
-
- sed -i -e 's,${STAGING_DIR_HOST},,g' \
- -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice
- rm -rf ${D}${localstatedir}/run
-}
-
-SYSROOT_PREPROCESS_FUNCS += "apache_sysroot_preprocess"
-
-apache_sysroot_preprocess () {
- install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- install -d ${SYSROOT_DESTDIR}${sbindir}/
- install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}/
- sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
- sed -i 's!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
-
- sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-}
-
-#
-# implications - used by update-rc.d scripts
-#
-INITSCRIPT_NAME = "apache2"
-INITSCRIPT_PARAMS = "defaults 91 20"
-LEAD_SONAME = "libapr-1.so.0"
-
-PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
-
-CONFFILES_${PN} = "${sysconfdir}/${BPN}/httpd.conf \
- ${sysconfdir}/${BPN}/magic \
- ${sysconfdir}/${BPN}/mime.types \
- ${sysconfdir}/init.d/${BPN} "
-
-# we override here rather than append so that .so links are
-# included in the runtime package rather than here (-dev)
-# and to get build, icons, error into the -dev package
-FILES_${PN}-dev = "${datadir}/${BPN}/build \
- ${datadir}/${BPN}/icons \
- ${datadir}/${BPN}/error \
- ${bindir}/apr-config ${bindir}/apu-config \
- ${libdir}/apr*.exp \
- ${includedir}/${BPN} \
- ${libdir}/*.la \
- ${libdir}/*.a \
- ${bindir}/apxs \
- "
-
-
-# manual to manual
-FILES_${PN}-doc += " ${datadir}/${BPN}/manual"
-
-FILES_${PN}-scripts += "${bindir}/dbmmanage"
-
-#
-# override this too - here is the default, less datadir
-#
-FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* ${sysconfdir} \
- ${sharedstatedir} ${localstatedir} /bin /sbin /lib/*.so* \
- ${libdir}/${BPN}"
-
-# we want htdocs and cgi-bin to go with the binary
-FILES_${PN} += "${datadir}/${BPN}/htdocs ${datadir}/${BPN}/cgi-bin"
-
-#make sure the lone .so links also get wrapped in the base package
-FILES_${PN} += "${libdir}/lib*.so ${libdir}/pkgconfig/*"
-
-FILES_${PN}-dbg += "${libdir}/${BPN}/modules/.debug"
-
-RDEPENDS_${PN} += "openssl libgcc"
-RDEPENDS_${PN}-scripts += "perl ${PN}"
-RDEPENDS_${PN}-dev = "perl"
-
-FILES_${PN} += "${libdir}/cgi-bin"
-FILES_${PN} += "${datadir}/${BPN}/"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.34.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.34.bb
new file mode 100644
index 0000000..a87e384
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.34.bb
@@ -0,0 +1,200 @@
+DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
+extensible web server."
+SUMMARY = "Apache HTTP Server"
+HOMEPAGE = "http://httpd.apache.org/"
+DEPENDS = "libtool-native apache2-native openssl expat pcre apr apr-util"
+SECTION = "net"
+LICENSE = "Apache-2.0"
+
+SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
+ file://server-makefile.patch \
+ file://httpd-2.4.1-corelimit.patch \
+ file://httpd-2.4.4-export.patch \
+ file://httpd-2.4.1-selinux.patch \
+ file://apache-configure_perlbin.patch \
+ file://replace-lynx-to-curl-in-apachectl-script.patch \
+ file://httpd-2.4.3-fix-race-issue-of-dir-install.patch \
+ file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
+ file://configure-allow-to-disable-selinux-support.patch \
+ file://CVE-2018-11763.patch \
+ file://init \
+ file://apache2-volatile.conf \
+ file://apache2.service \
+ file://volatiles.04_apache2 \
+ "
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d52d0fd0bc788f068e647116c01ddfcd"
+SRC_URI[md5sum] = "818adca52f3be187fe45d6822755be95"
+SRC_URI[sha256sum] = "fa53c95631febb08a9de41fd2864cfff815cf62d9306723ab0d4b8d7aa1638f0"
+
+S = "${WORKDIR}/httpd-${PV}"
+
+inherit autotools update-rc.d pkgconfig systemd update-alternatives
+
+ALTERNATIVE_${PN}-doc = "htpasswd.1"
+ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
+
+SYSTEMD_SERVICE_${PN} = "apache2.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice"
+
+CFLAGS_append = " -DPATH_MAX=4096"
+CFLAGS_prepend = "-I${STAGING_INCDIR}/openssl "
+EXTRA_OECONF = "--enable-ssl \
+ --with-ssl=${STAGING_LIBDIR}/.. \
+ --with-expat=${STAGING_LIBDIR}/.. \
+ --with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
+ --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \
+ --enable-info \
+ --enable-rewrite \
+ --with-dbm=sdbm \
+ --with-berkeley-db=no \
+ --localstatedir=/var/${BPN} \
+ --with-gdbm=no \
+ --with-ndbm=no \
+ --includedir=${includedir}/${BPN} \
+ --datadir=${datadir}/${BPN} \
+ --sysconfdir=${sysconfdir}/${BPN} \
+ --libexecdir=${libdir}/${BPN}/modules \
+ ap_cv_void_ptr_lt_long=no \
+ --enable-mpms-shared \
+ ac_cv_have_threadsafe_pollset=no \
+ --enable-layout=Debian \
+ --prefix=${base_prefix}/"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
+PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap"
+PACKAGECONFIG[zlib] = "--enable-deflate --with-z=${STAGING_LIBDIR},,zlib,zlib"
+
+do_configure_prepend() {
+ sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libdir}/cgi-bin:g' ${S}/config.layout
+}
+
+do_install_append() {
+ install -d ${D}/${sysconfdir}/init.d
+ cat ${WORKDIR}/init | \
+ sed -e 's,/usr/sbin/,${sbindir}/,g' \
+ -e 's,/usr/bin/,${bindir}/,g' \
+ -e 's,/usr/lib,${libdir}/,g' \
+ -e 's,/etc/,${sysconfdir}/,g' \
+ -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN}
+ chmod 755 ${D}/${sysconfdir}/init.d/${BPN}
+ # remove the goofy original files...
+ rm -rf ${D}/${sysconfdir}/${BPN}/original
+ # Expat should be found in the staging area via DEPENDS...
+ rm -f ${D}/${libdir}/libexpat.*
+
+ install -d ${D}${sysconfdir}/${BPN}/conf.d
+ install -d ${D}${sysconfdir}/${BPN}/modules.d
+
+ # Ensure configuration file pulls in conf.d and modules.d
+ printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+ printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+ printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+ # match with that is in init script
+ printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+ # Set 'ServerName' to fix error messages when restart apache service
+ sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d/
+ install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
+ elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2
+ fi
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service
+
+ chown -R root:root ${D}
+}
+
+do_install_append_class-target() {
+ sed -i -e 's,${STAGING_DIR_HOST},,g' \
+ -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
+ -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk
+
+ sed -i -e 's,${STAGING_DIR_HOST},,g' \
+ -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice
+ rm -rf ${D}${localstatedir}/run
+}
+
+SYSROOT_PREPROCESS_FUNCS += "apache_sysroot_preprocess"
+
+apache_sysroot_preprocess () {
+ install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -d ${SYSROOT_DESTDIR}${sbindir}/
+ install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}/
+ sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
+ sed -i 's!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
+
+ sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+}
+
+#
+# implications - used by update-rc.d scripts
+#
+INITSCRIPT_NAME = "apache2"
+INITSCRIPT_PARAMS = "defaults 91 20"
+LEAD_SONAME = "libapr-1.so.0"
+
+PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
+
+CONFFILES_${PN} = "${sysconfdir}/${BPN}/httpd.conf \
+ ${sysconfdir}/${BPN}/magic \
+ ${sysconfdir}/${BPN}/mime.types \
+ ${sysconfdir}/init.d/${BPN} "
+
+# we override here rather than append so that .so links are
+# included in the runtime package rather than here (-dev)
+# and to get build, icons, error into the -dev package
+FILES_${PN}-dev = "${datadir}/${BPN}/build \
+ ${datadir}/${BPN}/icons \
+ ${datadir}/${BPN}/error \
+ ${bindir}/apr-config ${bindir}/apu-config \
+ ${libdir}/apr*.exp \
+ ${includedir}/${BPN} \
+ ${libdir}/*.la \
+ ${libdir}/*.a \
+ ${bindir}/apxs \
+ "
+
+
+# manual to manual
+FILES_${PN}-doc += " ${datadir}/${BPN}/manual"
+
+FILES_${PN}-scripts += "${bindir}/dbmmanage"
+
+#
+# override this too - here is the default, less datadir
+#
+FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* ${sysconfdir} \
+ ${sharedstatedir} ${localstatedir} /bin /sbin /lib/*.so* \
+ ${libdir}/${BPN}"
+
+# we want htdocs and cgi-bin to go with the binary
+FILES_${PN} += "${datadir}/${BPN}/htdocs ${datadir}/${BPN}/cgi-bin"
+
+#make sure the lone .so links also get wrapped in the base package
+FILES_${PN} += "${libdir}/lib*.so ${libdir}/pkgconfig/*"
+
+FILES_${PN}-dbg += "${libdir}/${BPN}/modules/.debug"
+
+RDEPENDS_${PN} += "openssl libgcc"
+RDEPENDS_${PN}-scripts += "perl ${PN}"
+RDEPENDS_${PN}-dev = "perl"
+
+FILES_${PN} += "${libdir}/cgi-bin"
+FILES_${PN} += "${datadir}/${BPN}/"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch
deleted file mode 100644
index 63096db..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From d8837756f2a48adcfe5d645c39cf163d96eac76c Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Tue, 17 Jun 2014 09:10:57 +0200
-Subject: [PATCH] configure: use pkg-config for PCRE detection
-
-Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-Upstream-Status: pending
----
- configure.in | 27 +++++----------------------
- 1 file changed, 5 insertions(+), 22 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 864d7c7..da4138e 100644
---- a/configure.in
-+++ b/configure.in
-@@ -215,28 +215,11 @@ fi
- AC_ARG_WITH(pcre,
- APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library))
-
--AC_PATH_PROG(PCRE_CONFIG, pcre-config, false)
--if test -d "$with_pcre" && test -x "$with_pcre/bin/pcre-config"; then
-- PCRE_CONFIG=$with_pcre/bin/pcre-config
--elif test -x "$with_pcre"; then
-- PCRE_CONFIG=$with_pcre
--fi
--
--if test "$PCRE_CONFIG" != "false"; then
-- if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else
-- AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG])
-- fi
-- case `$PCRE_CONFIG --version` in
-- [[1-5].*])
-- AC_MSG_ERROR([Need at least pcre version 6.0])
-- ;;
-- esac
-- AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG])
-- APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`])
-- APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs`])
--else
-- AC_MSG_ERROR([pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/])
--fi
-+PKG_CHECK_MODULES([PCRE], [libpcre], [
-+ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library])
-+], [
-+ AC_MSG_ERROR([$PCRE_PKG_ERRORS])
-+])
- APACHE_SUBST(PCRE_LIBS)
-
- AC_MSG_NOTICE([])
---
-1.9.3
-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch
deleted file mode 100644
index 5b5c297..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From d23dd33e373340f6fddf11904839d1a118824401 Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Mon, 1 Dec 2014 02:08:27 -0500
-Subject: [PATCH] apache2: allow to disable selinux support
-
-Upstream-Status: Pending
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
----
- configure.in | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index df94ee5..8c3ab21 100644
---- a/configure.in
-+++ b/configure.in
-@@ -466,10 +466,16 @@ getloadavg
- dnl confirm that a void pointer is large enough to store a long integer
- APACHE_CHECK_VOID_PTR_LEN
-
--AC_CHECK_LIB(selinux, is_selinux_enabled, [
-- AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
-- APR_ADDTO(AP_LIBS, [-lselinux])
--])
-+# SELinux support
-+AC_ARG_ENABLE(selinux,APACHE_HELP_STRING(--enable-selinux,Enable SELinux support [default=auto]),
-+ [],[enable_selinux=auto])
-+
-+if test x$enable_selinux != xno; then
-+ AC_CHECK_LIB(selinux, is_selinux_enabled, [
-+ AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
-+ APR_ADDTO(AP_LIBS, [-lselinux])
-+ ])
-+fi
-
- AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
- [AC_TRY_RUN(#define _GNU_SOURCE
---
-1.7.9.5
-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch
deleted file mode 100644
index b948753..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Upstream-Status: Pending
-
-fix following race issue when do parallel install
-| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
-...
-| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
-| make[1]: *** [install-man] Error 1
-| make[1]: *** Waiting for unfinished jobs....
-
--Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
---- httpd-2.4.3/build/mkdir.sh.orig 2013-01-25 03:47:21.565255420 -0600
-+++ httpd-2.4.3/build/mkdir.sh 2013-01-25 03:46:17.833051230 -0600
-@@ -39,7 +39,7 @@
- esac
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
-- mkdir "$pathcomp" || errstatus=$?
-+ mkdir -p "$pathcomp" || errstatus=$?
- fi
- pathcomp="$pathcomp/"
- done
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb b/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb
index 4c3ca55..d6c449b 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb
@@ -2,7 +2,7 @@
HOMEPAGE = "http://www.hiawatha-webserver.org"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "libxml2 libxslt"
+DEPENDS = "libxml2 libxslt virtual/crypt"
SECTION = "net"
@@ -23,7 +23,7 @@
EXTRA_OECMAKE = " -DENABLE_IPV6=OFF \
-DENABLE_CACHE=OFF \
-DENABLE_DEBUG=OFF \
- -DENABLE_SSL=OFF \
+ -DENABLE_TLS=OFF \
-DENABLE_TOOLKIT=OFF \
-DENABLE_CHROOT=OFF \
-DENABLE_XSLT=ON \
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
index e6ae52a..24c2ced 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
@@ -9,7 +9,7 @@
SECTION = "net"
-DEPENDS = "libpcre zlib openssl"
+DEPENDS = "libpcre zlib"
SRC_URI = " \
http://nginx.org/download/nginx-${PV}.tar.gz \
@@ -34,7 +34,10 @@
EXTRA_OECONF = ""
DISABLE_STATIC = ""
+PACKAGECONFIG ??= "ssl"
+
PACKAGECONFIG[http2] = "--with-http_v2_module,,"
+PACKAGECONFIG[ssl] = "--with-http_ssl_module,,openssl"
do_configure () {
if [ "${SITEINFO_BITS}" = "64" ]; then
@@ -71,7 +74,7 @@
--http-scgi-temp-path=/run/nginx/scgi_temp \
--pid-path=/run/nginx/nginx.pid \
--prefix=${prefix} \
- --with-http_ssl_module \
+ --with-threads \
--with-http_gzip_static_module \
${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS}
}
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb
deleted file mode 100644
index 85ad29b..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require nginx.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=903753de5f86a1ee0341fd2f9491b282"
-
-SRC_URI[md5sum] = "4d2fc76211435f029271f1cf6d7eeae3"
-SRC_URI[sha256sum] = "305f379da1d5fb5aefa79e45c829852ca6983c7cd2a79328f8e084a324cf0416"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb
deleted file mode 100644
index 9234794..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require nginx.inc
-
-# 1.12.x branch is the current stable branch, the recommended default
-# 1.13.x is the current mainline branches containing all new features
-DEFAULT_PREFERENCE = "-1"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe"
-
-SRC_URI[md5sum] = "dcd482dd98d2022659212f183e8fe81b"
-SRC_URI[sha256sum] = "5faea18857516fe68d30be39c3032bd22ed9cf85e1a6fdf32e3721d96ff7fa42"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.1.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.1.bb
new file mode 100644
index 0000000..0f1ba8f
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.1.bb
@@ -0,0 +1,10 @@
+require nginx.inc
+
+# 1.14.x branch is the current stable branch, the recommended default
+# 1.15.x is the current mainline branches containing all new features
+DEFAULT_PREFERENCE = "-1"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe"
+
+SRC_URI[md5sum] = "2dd5a265c54a76b699443931d80a61b9"
+SRC_URI[sha256sum] = "c7206858d7f832b8ef73a45c9b8f8e436bcb1ee88db2bc85b8e438ecec9d5460"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.2.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.2.bb
new file mode 100644
index 0000000..3694f5b
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.15.2.bb
@@ -0,0 +1,6 @@
+require nginx.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe"
+
+SRC_URI[md5sum] = "d063f746d3dc4298aed9c518f1684166"
+SRC_URI[sha256sum] = "eeba09aecfbe8277ac33a5a2486ec2d6731739f3c1c701b42a0c3784af67ad90"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb b/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb
index 16f45ce..a6b1ff0 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb
@@ -16,7 +16,7 @@
TARGET_CC_ARCH += "${LDFLAGS}"
-DEPENDS = "openssl groff-native base-passwd"
+DEPENDS = "openssl groff-native base-passwd virtual/crypt"
inherit update-rc.d
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb b/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
index 37bd753..8632b97 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
@@ -4,7 +4,7 @@
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://src/thttpd.c;beginline=1;endline=26;md5=0c5762c2c34dcbe9eb18815516502872"
-DEPENDS += "base-passwd"
+DEPENDS += "base-passwd virtual/crypt"
SRC_URI = "https://github.com/blueness/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
file://thttpd.service \
@@ -19,7 +19,11 @@
S = "${WORKDIR}/sthttpd-${PV}"
-inherit autotools update-rc.d systemd
+inherit autotools update-rc.d systemd update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN}-doc = "htpasswd.1"
+ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
SRV_DIR ?= "${servicedir}/www"
diff --git a/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb b/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb
deleted file mode 100644
index 071572d..0000000
--- a/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Web-based MySQL administration interface"
-HOMEPAGE = "http://www.phpmyadmin.net"
-# Main code is GPLv2, vendor/tecnickcom/tcpdf is under LGPLv3, js/jquery is under MIT
-LICENSE = "GPLv2 & LGPLv3 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=5c87b66a5358ebcc495b03e0afcd342c \
- file://js/jquery/MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9 \
-"
-
-SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \
- file://apache.conf \
-"
-
-SRC_URI[md5sum] = "0a862e3fa52c8b9078e0441ee82be831"
-SRC_URI[sha256sum] = "f19b503f0afb0dd3389d4bb11dab3f438d36e85eef11a5c400c592fd5f539398"
-
-UPSTREAM_CHECK_URI = "https://www.phpmyadmin.net/downloads/"
-UPSTREAM_CHECK_REGEX = "phpMyAdmin-(?P<pver>\d+(\.\d+)+)-all-languages.tar.xz"
-
-S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages"
-
-inherit allarch
-
-do_install() {
- install -d ${D}${datadir}/${BPN}
- cp -R --no-dereference --preserve=mode,links -v * ${D}${datadir}/${BPN}
- chown -R root:root ${D}${datadir}/${BPN}
- # Don't install patches to target
- rm -rf ${D}${datadir}/${BPN}/patches
-
- install -d ${D}${sysconfdir}/apache2/conf.d
- install -m 0644 ${WORKDIR}/apache.conf ${D}${sysconfdir}/apache2/conf.d/phpmyadmin.conf
-
- # Remove a few scripts that explicitly require bash (!)
- rm -f ${D}${datadir}/phpmyadmin/libraries/transformations/*.sh
-}
-
-FILES_${PN} = "${datadir}/${BPN} \
- ${sysconfdir}/apache2/conf.d"
-
-RDEPENDS_${PN} += "bash"
diff --git a/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.8.3.bb b/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.8.3.bb
new file mode 100644
index 0000000..975f631
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.8.3.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Web-based MySQL administration interface"
+HOMEPAGE = "http://www.phpmyadmin.net"
+# Main code is GPLv2, vendor/tecnickcom/tcpdf is under LGPLv3, js/jquery is under MIT
+LICENSE = "GPLv2 & LGPLv3 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=5c87b66a5358ebcc495b03e0afcd342c \
+ file://js/vendor/jquery/MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9 \
+"
+
+SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \
+ file://apache.conf \
+"
+
+SRC_URI[md5sum] = "c8a603f4b78d1dbcefc191b8ae598c79"
+SRC_URI[sha256sum] = "95f2692094d31c2c323d4767023583ab112ad54fff9e3af372710fcb676151af"
+
+UPSTREAM_CHECK_URI = "https://www.phpmyadmin.net/downloads/"
+UPSTREAM_CHECK_REGEX = "phpMyAdmin-(?P<pver>\d+(\.\d+)+)-all-languages.tar.xz"
+
+S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages"
+
+inherit allarch
+
+do_install() {
+ install -d ${D}${datadir}/${BPN}
+ cp -R --no-dereference --preserve=mode,links -v * ${D}${datadir}/${BPN}
+ chown -R root:root ${D}${datadir}/${BPN}
+ # Don't install patches to target
+ rm -rf ${D}${datadir}/${BPN}/patches
+
+ install -d ${D}${sysconfdir}/apache2/conf.d
+ install -m 0644 ${WORKDIR}/apache.conf ${D}${sysconfdir}/apache2/conf.d/phpmyadmin.conf
+
+ # Remove a few scripts that explicitly require bash (!)
+ rm -f ${D}${datadir}/phpmyadmin/libraries/transformations/*.sh
+}
+
+FILES_${PN} = "${datadir}/${BPN} \
+ ${sysconfdir}/apache2/conf.d"
+
+RDEPENDS_${PN} += "bash php-cli"
diff --git a/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb b/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb
deleted file mode 100644
index 6516988..0000000
--- a/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Debugging and profiling extension for PHP"
-LICENSE = "Xdebug"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=34df3a274aa12b795417c65634c07f16"
-
-DEPENDS = "php re2c-native"
-
-SRC_URI = "http://xdebug.org/files/xdebug-${PV}.tgz"
-
-SRC_URI[md5sum] = "ed3545852e6f4a00fb8730362d0431ee"
-SRC_URI[sha256sum] = "b5264cc03bf68fcbb04b97229f96dca505d7b87ec2fb3bd4249896783d29cbdc"
-
-inherit autotools
-
-EXTRA_OECONF += "--enable-xdebug -with-php-config=${STAGING_BINDIR_CROSS}/php-config"
-
-do_configure() {
- cd ${S}
- ${STAGING_BINDIR_CROSS}/phpize
- cd ${B}
-
- # Running autoreconf as autotools_do_configure would do here
- # breaks the libtool configuration resulting in a failure later
- # in do_compile. It's possible this may be fixable, however the
- # easiest course of action for the moment is to avoid doing that.
- oe_runconf
-}
-
-do_install() {
- oe_runmake install INSTALL_ROOT=${D}
-}
-
-FILES_${PN} += "${libdir}/php*/extensions/*/*.so"
-FILES_${PN}-dbg += "${libdir}/php*/extensions/*/.debug"
diff --git a/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.1.bb b/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.1.bb
new file mode 100644
index 0000000..773dbf3
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.6.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Debugging and profiling extension for PHP"
+LICENSE = "Xdebug"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34df3a274aa12b795417c65634c07f16"
+
+DEPENDS = "php re2c-native"
+
+SRC_URI = "http://xdebug.org/files/xdebug-${PV}.tgz"
+
+SRC_URI[md5sum] = "35cc0f2e8b7d40556a9ad9afd9c49aee"
+SRC_URI[sha256sum] = "dae691d6c052073b886e0c6e1306a707bca9fd18a1e3485384ef6c4aacf1bd77"
+
+UPSTREAM_CHECK_REGEX = "xdebug-(?P<pver>\d+(\.\d+)+)\.tgz"
+
+inherit autotools
+
+EXTRA_OECONF += "--enable-xdebug -with-php-config=${STAGING_BINDIR_CROSS}/php-config"
+
+do_configure() {
+ cd ${S}
+ ${STAGING_BINDIR_CROSS}/phpize
+ cd ${B}
+
+ # Running autoreconf as autotools_do_configure would do here
+ # breaks the libtool configuration resulting in a failure later
+ # in do_compile. It's possible this may be fixable, however the
+ # easiest course of action for the moment is to avoid doing that.
+ oe_runconf
+}
+
+do_install() {
+ oe_runmake install INSTALL_ROOT=${D}
+}
+
+FILES_${PN} += "${libdir}/php*/extensions/*/*.so"
+FILES_${PN}-dbg += "${libdir}/php*/extensions/*/.debug"
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/Fix_EOF_not_declared_issue.patch b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/Fix_EOF_not_declared_issue.patch
deleted file mode 100644
index 51ddeaa..0000000
--- a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/Fix_EOF_not_declared_issue.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending
-
-Fix EOF not declared issue, following is the error log.
-fcgio.cpp:70:72: error: 'EOF' was not declared in this scope
- if (FCGX_PutStr(pbase(), plen, this->fcgx) != plen) return EOF;
-
-Signed-off-by: Yang Haibo <b40869@freescale.com>
---- fcgi-ori/libfcgi/fcgio.cpp 2014-07-28 18:01:00.000000000 +0800
-+++ fcgi-2.4.0/libfcgi/fcgio.cpp 2014-07-28 18:01:22.000000000 +0800
-@@ -22,6 +22,7 @@
- #define DLLAPI __declspec(dllexport)
- #endif
-
-+#include <stdio.h>
- #include <limits.h>
- #include "fcgio.h"
-
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch
index eca694a..eec9dd7 100644
--- a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch
+++ b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch
@@ -10,8 +10,8 @@
dnl to configure the system for the local environment.
-AC_INIT
--AM_INIT_AUTOMAKE(fcgi, 2.4.0)
-+AC_INIT([fcgi], [2.4.0])
+-AM_INIT_AUTOMAKE(fcgi, 2.4.1-SNAP-0910052249)
++AC_INIT([fcgi], [2.4.1-SNAP-0910052249])
+AM_INIT_AUTOMAKE([foreign])
AM_CONFIG_HEADER(fcgi_config.h)
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb
deleted file mode 100644
index 48c5944..0000000
--- a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "FastCGI is a protocol for interfacing interactive programs with a web server."
-HOMEPAGE = "http://www.fastcgi.com"
-LICENSE = "OML"
-LIC_FILES_CHKSUM = "file://LICENSE.TERMS;md5=e3aacac3a647af6e7e31f181cda0a06a"
-
-SRC_URI = "http://fossies.org/linux/www/old/${BP}.tar.gz \
- file://Fix_EOF_not_declared_issue.patch \
- file://add_foreign_to_AM_INIT_AUTOMAKE.patch \
-"
-SRC_URI[md5sum] = "d15060a813b91383a9f3c66faf84867e"
-SRC_URI[sha256sum] = "66fc45c6b36a21bf2fbbb68e90f780cc21a9da1fffbae75e76d2b4402d3f05b9"
-
-inherit autotools
-
-PARALLEL_MAKE = ""
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb
new file mode 100644
index 0000000..a17e70f
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_git.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "FastCGI is a protocol for interfacing interactive programs with a web server."
+HOMEPAGE = "http://www.fastcgi.com"
+LICENSE = "OML"
+LIC_FILES_CHKSUM = "file://LICENSE.TERMS;md5=e3aacac3a647af6e7e31f181cda0a06a"
+
+SRCREV = "68100b5b8cb26f04b784778ed19ccef4fe389f57"
+PV = "2.4.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/FastCGI-Archives/fcgi2.git;protocol=https \
+ file://add_foreign_to_AM_INIT_AUTOMAKE.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PARALLEL_MAKE = ""
diff --git a/meta-openembedded/meta-xfce/README b/meta-openembedded/meta-xfce/README
index 7431e8b..4d8dc45 100644
--- a/meta-openembedded/meta-xfce/README
+++ b/meta-openembedded/meta-xfce/README
@@ -1,11 +1,11 @@
This layer depends on:
URI: git://github.com/openembedded/oe-core.git
-branch: master
+branch: thud
revision: HEAD
URI: git://github.com/openembedded/meta-oe.git
-branch: master
+branch: thud
revision: HEAD
meta-xfce depends on meta-oe, meta-gnome and meta-multimedia in this repository.
@@ -14,9 +14,9 @@
BBMASK = "meta-xfce/recipes-multimedia"
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-xfce]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-xfce][thud]' in the subject'
When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-xfce][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-xfce][thud][PATCH'
-Layer maintainer: Andreas Müller <schnitzeltony@googlemail.com>
+Thud Maintainer: Armin Kuster <akuster808@gmail.com>
diff --git a/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass b/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass
index 95f7d00..76b0e72 100644
--- a/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass
+++ b/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass
@@ -6,7 +6,6 @@
SRC_URI = "http://archive.xfce.org/src/thunar-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2"
-FILES_${PN} += "${libdir}/thunarx-2/*.so"
-FILES_${PN}-dbg += "${libdir}/thunarx-2/.debug"
-FILES_${PN}-dev += "${libdir}/thunarx-2/*.la"
+FILES_${PN} += "${libdir}/thunarx-3/*.so"
+FILES_${PN}-dev += "${libdir}/thunarx-3/*.la"
diff --git a/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass b/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass
index 6515dc0..29c1245 100644
--- a/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass
+++ b/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass
@@ -10,4 +10,5 @@
FILES_${PN} += "${datadir}/xfce4/panel/plugins/"
FILES_${PN} += "${libdir}/xfce4/panel-plugins/*.so"
FILES_${PN} += "${libdir}/xfce4/panel/plugins/*.so"
-FILES_${PN}-dbg += "${libexecdir}/xfce4/panel-plugins/.debug"
+
+FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
\ No newline at end of file
diff --git a/meta-openembedded/meta-xfce/classes/xfce.bbclass b/meta-openembedded/meta-xfce/classes/xfce.bbclass
index b49bba1..7abe46f 100644
--- a/meta-openembedded/meta-xfce/classes/xfce.bbclass
+++ b/meta-openembedded/meta-xfce/classes/xfce.bbclass
@@ -12,11 +12,3 @@
FILES_${PN} += "${datadir}/icons/* ${datadir}/applications/* ${libdir}/xfce4/modules/*.so*"
FILES_${PN}-doc += "${datadir}/xfce4/doc"
-
-FILES_${PN}-dev += "${libdir}/xfce4/*/*.la"
-FILES_${PN}-dev += "${libdir}/xfce4/*/*/*.la"
-FILES_${PN}-staticdev += "${libdir}/xfce4/*/*.a"
-FILES_${PN}-staticdev += "${libdir}/xfce4/*/*/*.a"
-FILES_${PN}-dbg += "${libdir}/xfce4/*/.debug"
-FILES_${PN}-dbg += "${libdir}/xfce4/*/*/.debug"
-
diff --git a/meta-openembedded/meta-xfce/conf/layer.conf b/meta-openembedded/meta-xfce/conf/layer.conf
index bee8e70..f5f44d6 100644
--- a/meta-openembedded/meta-xfce/conf/layer.conf
+++ b/meta-openembedded/meta-xfce/conf/layer.conf
@@ -18,7 +18,7 @@
LAYERDEPENDS_xfce-layer += "multimedia-layer"
LAYERDEPENDS_xfce-layer += "meta-python"
-LAYERSERIES_COMPAT_xfce-layer = "sumo"
+LAYERSERIES_COMPAT_xfce-layer = "thud"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
xfce4-session->machine-host \
diff --git a/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.6.bb b/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.6.bb
new file mode 100644
index 0000000..229f882
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_1.4.6.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Catfish is a handy file searching tool for linux and unix"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
+
+inherit xfce-app distutils3 gtk-icon-cache
+
+DEPENDS += "python3-distutils-extra-native"
+
+B = "${S}"
+
+SRC_URI[md5sum] = "879197c9400be2a80d51abf494bfffb6"
+SRC_URI[sha256sum] = "e1caee14c5268ac781434701c0eb26eddfced2c0f1ae066549583ed05f99adbf"
+
+FILES_${PN} += "${datadir}/metainfo"
+
+RDEPENDS_${PN} += "python3-pygobject"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.1.5.bb b/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.1.5.bb
deleted file mode 100644
index d1f3471..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.1.5.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-DESCRIPTION = "An advanced menu editor"
-HOMEPAGE = "https://launchpad.net/menulibre"
-SECTION = "x11/graphics"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = " \
- python3-distutils-extra-native \
- intltool-native \
-"
-
-inherit distutils3 gtk-icon-cache distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "https://launchpad.net/menulibre/2.1/${PV}/+download/${PN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "efc7edb49bb0e5fea49e158b40573334"
-SRC_URI[sha256sum] = "ef05b2722bab2acb7070d6c8ed0e7bd58bd4a4540bf498af9e889944f9da08b5"
-
-do_compile() {
-}
-
-do_install_append() {
- sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop
- sed -i 's:share/share:share:g' ${D}${PYTHON_SITEPACKAGES_DIR}/menulibre_lib/menulibreconfig.py
-}
-
-FILES_${PN} += " \
- ${datadir}/applications \
- ${datadir}/menulibre \
- ${datadir}/icons \
-"
-
-RDEPENDS_${PN} += " \
- gtk+3 \
- gtksourceview3 \
- python3-pygobject \
- gnome-menus3 \
- python3-unixadmin \
- python3-psutil \
-"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb b/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb
new file mode 100644
index 0000000..b0e4784
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "An advanced menu editor"
+HOMEPAGE = "https://launchpad.net/menulibre"
+SECTION = "x11/graphics"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = " \
+ python3-distutils-extra-native \
+ intltool-native \
+"
+
+inherit distutils3 gtk-icon-cache distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://launchpad.net/menulibre/2.2/${PV}/+download/${PN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "9690848dbf9196c3f7baa574e90378d8"
+SRC_URI[sha256sum] = "546fec87f451c8f5c220d02b1f36dd850f4ce9ab607f8e9711ed8f2009e349fe"
+
+do_compile() {
+}
+
+do_install_append() {
+ sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop
+ sed -i 's:share/share:share:g' ${D}${PYTHON_SITEPACKAGES_DIR}/menulibre_lib/menulibreconfig.py
+}
+
+FILES_${PN} += " \
+ ${datadir}/applications \
+ ${datadir}/menulibre \
+ ${datadir}/icons \
+"
+
+RDEPENDS_${PN} += " \
+ gtk+3 \
+ gtksourceview3 \
+ python3-pygobject \
+ gnome-menus3 \
+ python3-unixadmin \
+ python3-psutil \
+"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.0.bb b/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.0.bb
deleted file mode 100644
index 4ca21a6..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A simple text editor for Xfce"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-# intltool to provide intltool.m4 with AC_PROG_INTLTOOL
-# xfce4-dev-tools-native for XDT_I18N macro and more importantly XDT_CHECK_OPTIONAL_PACKAGE
-# which fixes mousepad/Makefile.am:72: error: HAVE_DBUS does not appear in AM_CONDITIONAL
-DEPENDS = "gtk+ dbus dbus-glib gtksourceview2 intltool-native xfce4-dev-tools-native"
-
-inherit xfce-app gsettings
-
-SRC_URI[md5sum] = "f55314c5dda6323883241e6cf01550a7"
-SRC_URI[sha256sum] = "60114431eac8db6bb6ce18bd38f1630cccb684375b97a445a1b6fd619848d132"
-
-# we have no gtksourceview 3.x around
-EXTRA_OECONF = "--disable-gtk3"
-
-FILES_${PN} += "${datadir}/glib-2.0/schemas"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb b/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb
new file mode 100644
index 0000000..d122bfe
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A simple text editor for Xfce"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+# intltool to provide intltool.m4 with AC_PROG_INTLTOOL
+# xfce4-dev-tools-native for XDT_I18N macro and more importantly XDT_CHECK_OPTIONAL_PACKAGE
+# which fixes mousepad/Makefile.am:72: error: HAVE_DBUS does not appear in AM_CONDITIONAL
+DEPENDS = "gtk+ dbus dbus-glib gtksourceview2 intltool-native xfce4-dev-tools-native"
+
+inherit xfce-app gsettings
+
+SRC_URI[md5sum] = "fb85c23bcb096a46aee9ec22b4e4fdf5"
+SRC_URI[sha256sum] = "39a7379b929d964665299c385b2cf705e32e8760698ccc34f91c990bb733518b"
+
+# we have no gtksourceview 3.x around
+EXTRA_OECONF = "--disable-gtk3"
+
+FILES_${PN} += "${datadir}/glib-2.0/schemas"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb b/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb
index a2f2568..eb9da2d 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb
@@ -14,6 +14,5 @@
PACKAGES =+ "xfce4-orageclock-plugin"
FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dbg += "${libdir}/xfce4/panel/plugins/.debug"
FILES_xfce4-orageclock-plugin = "${libdir}/xfce4/panel/plugins/*.so ${datadir}/xfce4/panel/plugins"
-
+FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch b/meta-openembedded/meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch
new file mode 100644
index 0000000..5cdc8c7
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch
@@ -0,0 +1,40 @@
+From 2b6bdb860ef53975c7e866f393b61d253c00754d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 22 Jan 2018 15:52:09 +0100
+Subject: [PATCH] Fix build after update of xfconf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+xfconf stopped using dbus-glib so required flags must be included here
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 36a31dc..3dd56bc 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -30,6 +30,7 @@ ristretto_CFLAGS = \
+ $(GIO_UNIX_CFLAGS) \
+ $(LIBEXIF_CFLAGS) \
+ $(XFCONF_CFLAGS) \
++ $(DBUS_GLIB_CFLAGS) \
+ $(EXO_CFLAGS) \
+ $(CAIRO_CFLAGS) \
+ $(LIBXFCE4UTIL_CFLAGS) \
+@@ -48,6 +49,7 @@ ristretto_LDADD = \
+ $(GIO_UNIX_LIBS) \
+ $(LIBEXIF_LIBS) \
+ $(XFCONF_LIBS) \
++ $(DBUS_GLIB_LIBS) \
+ $(EXO_LIBS) \
+ $(CAIRO_LIBS) \
+ $(LIBXFCE4UTIL_LIBS) \
+--
+2.14.3
+
diff --git a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb
deleted file mode 100644
index c4baa72..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Tiny image-viewer"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/ristretto"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b"
-DEPENDS = "exo libexif gtk+ dbus-glib libxfce4ui libxfce4util xfconf cairo file"
-
-inherit xfce-app
-
-RRECOMMENDS_${PN} += "tumbler"
-
-SRC_URI[md5sum] = "a8d8bb6b8fa7f868cfa3ae778630946e"
-SRC_URI[sha256sum] = "f8f3b77ca6fc77ddf8cff1bb52e5c5802c462663f72f324393b3a0360f6901b8"
-
-FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.3.bb b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.3.bb
new file mode 100644
index 0000000..d9b9b2c
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.3.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Tiny image-viewer"
+HOMEPAGE = "http://goodies.xfce.org/projects/applications/ristretto"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b"
+DEPENDS = "exo libexif gtk+ dbus-glib libxfce4ui libxfce4util xfconf cairo file"
+
+inherit xfce-app
+
+RRECOMMENDS_${PN} += "tumbler"
+
+SRC_URI[md5sum] = "5866b4e11c32a38f72bc737239102544"
+SRC_URI[sha256sum] = "8c9c11760816dfd9ed57fb8b9df86c6a98a2604ab551be3133996a1c32ca2665"
+SRC_URI += "file://0001-Fix-build-after-update-of-xfconf.patch"
+
+FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch b/meta-openembedded/meta-xfce/recipes-apps/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch
new file mode 100644
index 0000000..31216c0
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch
@@ -0,0 +1,61 @@
+From 6ecaeced291f935a9d41e9bc33411358c95a5e91 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 22 Jan 2018 15:35:08 +0100
+Subject: [PATCH] Fix build after update of xfconf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+xfconf stopped using dbus-glib so required flags must be included here
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ panel-plugin/Makefile.am | 2 ++
+ xfce4-mixer/Makefile.am | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/panel-plugin/Makefile.am b/panel-plugin/Makefile.am
+index a494682..b094472 100644
+--- a/panel-plugin/Makefile.am
++++ b/panel-plugin/Makefile.am
+@@ -27,6 +27,7 @@ libmixer_la_CFLAGS = \
+ $(LIBXFCE4UI_CFLAGS) \
+ $(LIBXFCE4PANEL_CFLAGS) \
+ $(XFCONF_CFLAGS) \
++ $(DBUS_GLIB_CFLAGS) \
+ $(GST_PLUGINS_BASE_CFLAGS) \
+ $(KEYBINDER_CFLAGS)
+
+@@ -48,6 +49,7 @@ libmixer_la_LIBADD = \
+ $(LIBXFCE4UI_LIBS) \
+ $(LIBXFCE4PANEL_LIBS) \
+ $(XFCONF_LIBS) \
++ $(DBUS_GLIB_LIBS) \
+ $(GST_PLUGINS_BASE_LIBS) \
+ -lgstaudio-0.10 \
+ -lgstinterfaces-0.10 \
+diff --git a/xfce4-mixer/Makefile.am b/xfce4-mixer/Makefile.am
+index 4af69e9..e076fc8 100644
+--- a/xfce4-mixer/Makefile.am
++++ b/xfce4-mixer/Makefile.am
+@@ -32,6 +32,7 @@ xfce4_mixer_CFLAGS = \
+ $(UNIQUE_CFLAGS) \
+ $(LIBXFCE4UTIL_CFLAGS) \
+ $(LIBXFCE4UI_CFLAGS) \
++ $(DBUS_GLIB_CFLAGS) \
+ $(XFCONF_CFLAGS) \
+ $(GST_PLUGINS_BASE_CFLAGS)
+
+@@ -46,6 +47,7 @@ xfce4_mixer_LDFLAGS = \
+ $(UNIQUE_LIBS) \
+ $(LIBXFCE4UTIL_LIBS) \
+ $(LIBXFCE4UI_LIBS) \
++ $(DBUS_GLIB_LIBS) \
+ $(XFCONF_LIBS) \
+ $(GST_PLUGINS_BASE_LIBS) \
+ -lgstaudio-0.10 \
+--
+2.14.3
+
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb
index bdbec45..6c057d8 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb
@@ -6,7 +6,10 @@
DEPENDS += "glib-2.0 gst-plugins-base gtk+ xfconf libunique"
-SRC_URI = "http://archive.xfce.org/src/apps/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2"
+SRC_URI = " \
+ http://archive.xfce.org/src/apps/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2 \
+ file://0001-Fix-build-after-update-of-xfconf.patch \
+"
SRC_URI[md5sum] = "1b3753b91224867a3a2dfddda239c28d"
SRC_URI[sha256sum] = "fb0c1df201ed1130f54f15b914cbe5a59286e994a137acda5609570c57112de2"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.2.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.2.bb
deleted file mode 100644
index 15ec51b..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.2.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Easily themable notification daemon with transparency effects"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-notifyd"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = " \
- dbus \
- dbus-glib \
- dbus-glib-native \
- libnotify \
- libxfce4util \
- libxfce4ui \
- xfconf \
- xfce4-panel \
-"
-
-inherit xfce-app
-
-SRC_URI[md5sum] = "ecb930ef6ae6e1f310a5afe5f638eff8"
-SRC_URI[sha256sum] = "f6f28af47fdfb41db84bd003f0d76f5f4abf2137d1e27e9d378f063bb8f82356"
-
-# Avoid trouble with other desktops e.g KDE which also ships dbus service named
-# org.freedesktop.Notifications
-EXTRA_OECONF = "--disable-dbus-start-daemon"
-
-do_compile_prepend() {
- mkdir -p xfce4-notifyd xfce4-notifyd-config
-}
-
-FILES_${PN} += " \
- ${systemd_user_unitdir} \
- ${datadir}/xfce4 \
- ${datadir}/themes \
- ${datadir}/dbus-1 \
- ${libdir}/xfce4 \
-"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.3.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.3.bb
new file mode 100644
index 0000000..d771905
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.3.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Easily themable notification daemon with transparency effects"
+HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-notifyd"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = " \
+ dbus \
+ dbus-glib \
+ dbus-glib-native \
+ libnotify \
+ libxfce4util \
+ libxfce4ui \
+ xfconf \
+ xfce4-panel \
+"
+
+inherit xfce-app
+
+SRC_URI[md5sum] = "4887c62dfcb4c3e4f45c9acfb3def515"
+SRC_URI[sha256sum] = "293dda084cfca4887ae740e2725fdfc64412bc10eac7a55a924eb14482dceac0"
+
+# Avoid trouble with other desktops e.g KDE which also ships dbus service named
+# org.freedesktop.Notifications
+EXTRA_OECONF = "--disable-dbus-start-daemon"
+
+do_compile_prepend() {
+ mkdir -p xfce4-notifyd xfce4-notifyd-config
+}
+
+FILES_${PN} += " \
+ ${systemd_user_unitdir} \
+ ${datadir}/xfce4 \
+ ${datadir}/themes \
+ ${datadir}/dbus-1 \
+ ${libdir}/xfce4 \
+"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb
new file mode 100644
index 0000000..5fa2a7b
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.8.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Backup, restore, import, and export panel layouts"
+SECTION = "x11/application"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit python3native gettext distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS += "intltool-native"
+
+SRC_URI = "http://archive.xfce.org/src/apps/${BPN}/1.0/${BPN}-${PV}.tar.bz2"
+SRC_URI[md5sum] = "bc75a143423fba3a82f114f47e86580c"
+SRC_URI[sha256sum] = "a69e20f5e637319e14898b5c13ff7ba31d001a6e38e7516d70dbfd7600ad72db"
+
+do_configure() {
+ # special configure - no autotools...
+ ./configure --prefix=${prefix}
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+ sed -i 's:${PYTHON}:python3:g' ${D}${bindir}/xfce4-panel-profiles
+}
+
+FILES_${PN} += "${datadir}/metainfo"
+
+RDEPENDS_${PN} += "python3-pygobject python3-pexpect"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb
deleted file mode 100644
index e449dce..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Application to take screenshots"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
-DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11"
-
-inherit xfce-app
-
-SRC_URI[md5sum] = "75e1501418f904769e4fd25eff6a3946"
-SRC_URI[sha256sum] = "e62b31d9cf06a7414a26400c2ebe7a2ae7c2b22aa60f997f25145ea9ebe6e0db"
-
-do_compile_prepend() {
- mkdir -p lib
- mkdir -p src
-}
-
-FILES_${PN} += " \
- ${datadir}/appdata \
- ${datadir}/xfce4/panel/plugins \
- ${libdir}/xfce4/panel/plugins \
-"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.3.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.3.bb
new file mode 100644
index 0000000..c6a4cdb
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Application to take screenshots"
+HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
+DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11"
+
+inherit xfce-app
+
+SRC_URI[md5sum] = "f783eb575e2015f39e1c1aae499b113f"
+SRC_URI[sha256sum] = "364ebddc4c9971b4023aa8019d4e3bd08f091b65dc98b218beb55851f69ceda2"
+
+do_compile_prepend() {
+ mkdir -p lib
+ mkdir -p src panel-plugin
+}
+
+FILES_${PN} += " \
+ ${datadir}/appdata \
+ ${datadir}/xfce4/panel/plugins \
+ ${libdir}/xfce4/panel/plugins \
+"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.0.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.0.bb
deleted file mode 100644
index f955585..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Easy to use task manager"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-app
-
-DEPENDS += "gtk+ cairo libwnck libxmu xfce4-dev-tools-native exo-native"
-
-SRC_URI[md5sum] = "6f30ce3c688454812008281065a6e05c"
-SRC_URI[sha256sum] = "5746d473ad428b13db7c05cfcbc8099fbea13da6be26d3a9359bcb4de971ba69"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.1.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.1.bb
new file mode 100644
index 0000000..8afea1d
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Easy to use task manager"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit xfce-app
+
+DEPENDS += "gtk+ cairo libwnck libxmu xfce4-dev-tools-native exo-native"
+
+SRC_URI[md5sum] = "4a2d0b1e8001fb343139a97d57b56eaa"
+SRC_URI[sha256sum] = "22e523e2ee231713f40a48890d8cbae99320ac1173f7c68502f490318e1e0409"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.3.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.3.bb
deleted file mode 100644
index 7630abc..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.3.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Terminal emulator for the Xfce desktop environment"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "glib-2.0 gtk+3 vte libxfce4ui"
-
-inherit xfce-app
-
-FILES_${PN} += "${datadir}/xfce4 \
- ${datadir}/gnome-control-center"
-
-SRC_URI[md5sum] = "f014d613438848b452f1f9eecbf7027d"
-SRC_URI[sha256sum] = "dafa155177934fc7dce2d4efb33402f74b1a593a17ff17d2187a6429f599dfd6"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb
new file mode 100644
index 0000000..7fc638e
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Terminal emulator for the Xfce desktop environment"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "glib-2.0 gtk+3 vte libxfce4ui"
+
+inherit xfce-app
+
+FILES_${PN} += "${datadir}/xfce4 \
+ ${datadir}/gnome-control-center"
+
+SRC_URI[md5sum] = "c861540dd1dd05f56e62382b3851cf66"
+SRC_URI[sha256sum] = "a88f98af4da72394f2cfbd7f14b0f053ec0a3b58a4f6a577836357c60a6c42ab"
diff --git a/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb b/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
index 28f9cde..97007be 100644
--- a/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
+++ b/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
@@ -11,7 +11,7 @@
SRC_URI[md5sum] = "0bbb1d6e473e0fe9b335b7b1b49d8a71"
SRC_URI[sha256sum] = "07a8f2b7c09fcdd3d86e0c52adea3c58ca011d0142a93997a01b4af77260ae7b"
-EXTRA_OECONF = "-with-vala-api=0.38"
+EXTRA_OECONF = "-with-vala-api=0.42"
FILES_${PN} += "${datadir}/vala-*/vapi"
diff --git a/meta-openembedded/meta-xfce/recipes-connectivity/blueman/blueman_%.bbappend b/meta-openembedded/meta-xfce/recipes-connectivity/blueman/blueman_%.bbappend
new file mode 100644
index 0000000..c475223
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-connectivity/blueman/blueman_%.bbappend
@@ -0,0 +1 @@
+PACKAGECONFIG_append = " thunar"
diff --git a/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb b/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb
index 49ed07a..a6475ce 100644
--- a/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb
+++ b/meta-openembedded/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb
@@ -28,3 +28,7 @@
inherit autotools pkgconfig gobject-introspection distro_features_check gtk-doc
REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append () {
+ rmdir --ignore-fail-on-non-empty ${D}${datadir}
+}
diff --git a/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.0.bb b/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.0.bb
deleted file mode 100644
index 479f1a4..0000000
--- a/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.0.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-DESCRIPTION = "Parole is a modern simple media player based on the GStreamer framework"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/parole"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce-app gtk-doc mime
-
-DEPENDS += " \
- glib-2.0 \
- dbus-glib \
- gtk+3 \
- \
- xfce4-dev-tools-native \
- libxfce4util \
- libxfce4ui \
- xfconf \
- \
- gstreamer1.0-plugins-base \
- taglib \
-"
-
-SRC_URI[md5sum] = "d00d3ca571900826bf5e1f6986e42992"
-SRC_URI[sha256sum] = "6666b335aeb690fb527f77b62c322baf34834b593659fdcd21d21ed3f1e14010"
-
-RDEPENDS_${PN} += "gstreamer1.0-plugins-good"
-
-EXTRA_OECONF = "--disable-gtk-doc"
-
-PACKAGECONFIG ??= "notify"
-PACKAGECONFIG[clutter] = "--enable-clutter, --disable-clutter, clutter"
-PACKAGECONFIG[notify] = "--enable-notify-plugin, --disable-notify-plugin, libnotify"
-
-FILES_${PN} += " \
- ${datadir}/appdata \
- ${libdir}/parole-0/*.so \
-"
-FILES_${PN}-dbg += "${libdir}/parole-0/.debug"
-FILES_${PN}-dev += "${libdir}/parole-0/*.la"
diff --git a/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.1.bb b/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.1.bb
new file mode 100644
index 0000000..2b4e974
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_1.0.1.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Parole is a modern simple media player based on the GStreamer framework"
+HOMEPAGE = "http://goodies.xfce.org/projects/applications/parole"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit xfce-app gtk-doc mime
+
+DEPENDS += " \
+ glib-2.0 \
+ dbus-glib \
+ gtk+3 \
+ \
+ xfce4-dev-tools-native \
+ libxfce4util \
+ libxfce4ui \
+ xfconf \
+ \
+ gstreamer1.0-plugins-base \
+ taglib \
+"
+
+SRC_URI[md5sum] = "46fe86bbe0c4aa02c53244d66e62e90c"
+SRC_URI[sha256sum] = "8ad2931fdb35415cc3d7551b5f2207bfaa1aba15545accbacbb4984cdabd7099"
+
+RDEPENDS_${PN} += "gstreamer1.0-plugins-good"
+
+EXTRA_OECONF = "--disable-gtk-doc"
+
+PACKAGECONFIG ??= "notify"
+PACKAGECONFIG[clutter] = "--enable-clutter, --disable-clutter, clutter"
+PACKAGECONFIG[notify] = "--enable-notify-plugin, --disable-notify-plugin, libnotify"
+
+FILES_${PN} += " \
+ ${datadir}/appdata \
+ ${libdir}/parole-0/*.so \
+"
+
+FILES_${PN}-dev += "${libdir}/parole-0/*.la"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb
deleted file mode 100644
index 9d2d954..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "f78d8d0cc13d40753a207a836869b953"
-SRC_URI[sha256sum] = "8c9deec8d95da4cc39d6d9091433e5822b6bbe07d80117045dd4dd3480427ece"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.1.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.1.bb
new file mode 100644
index 0000000..af7c65a
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.1.bb
@@ -0,0 +1,9 @@
+SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit xfce-panel-plugin
+
+SRC_URI[md5sum] = "26941c579ebf4143b7e49aa08ee9b30a"
+SRC_URI[sha256sum] = "1e94969b93e0c1d6da87364b64c0cdfb40bae5e4a055039be8b67b9e5b3dd44b"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb
deleted file mode 100644
index 96bdf0e..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Clipman is a clipboard manager for Xfce"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "xfconf xproto libxtst"
-
-SRC_URI[md5sum] = "9169140af7c9d3fddd8a5c9e0efb5a61"
-SRC_URI[sha256sum] = "cf2b45e327e67cc187dcb99a6ef6d95570463045accd24540e17172f005189b3"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[qrencode] = "--enable-libqrencode,--disable-libqrencode,qrencode"
-
-FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.3.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.3.bb
new file mode 100644
index 0000000..a1ac057
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Clipman is a clipboard manager for Xfce"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+inherit xfce-panel-plugin
+
+DEPENDS += "xfconf xorgproto libxtst"
+
+SRC_URI[md5sum] = "fa0acd5f5e3298e56ebd47d2944cd02b"
+SRC_URI[sha256sum] = "29cdb85efb54bd5c9c04cc695b7c4914d6dff972b9fd969cbfb5504e9c632ad2"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[qrencode] = "--enable-libqrencode,--disable-libqrencode,qrencode"
+
+FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.3.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.3.bb
deleted file mode 100644
index d454787..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.3.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Panel plugin to display frequency of all cpus"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1f6f1c0be32491a0c8d2915607a28f36"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "859122da0a8cd991ee2fbeee434bc948"
-SRC_URI[sha256sum] = "74a162c7e101db0495d5da147aba1f404c33544f04e8c34d7d1d705668102d33"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.1.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.1.bb
new file mode 100644
index 0000000..3f5587d
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.1.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Panel plugin to display frequency of all cpus"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1f6f1c0be32491a0c8d2915607a28f36"
+
+inherit xfce-panel-plugin
+
+SRC_URI[md5sum] = "ccd8f0f7aef51bc4caf1049986d9614f"
+SRC_URI[sha256sum] = "c5e044c0dc401d2066f208a3df82a588b3e51ff01425f155d0a1d0f8fce8f5b5"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin/0001-panel-plugin-Include-sys-sysmacros.h-for-major-minor.patch b/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin/0001-panel-plugin-Include-sys-sysmacros.h-for-major-minor.patch
new file mode 100644
index 0000000..007d3e5
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin/0001-panel-plugin-Include-sys-sysmacros.h-for-major-minor.patch
@@ -0,0 +1,30 @@
+From c35a8cb24e8adafb11cbc261de37d97244e55927 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 10:08:27 -0700
+Subject: [PATCH] panel-plugin: Include sys/sysmacros.h for major/minor
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+glibc 2.28+ needs it
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Cc: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ panel-plugin/devperf.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/panel-plugin/devperf.c b/panel-plugin/devperf.c
+index 175fd44..cb2e88a 100644
+--- a/panel-plugin/devperf.c
++++ b/panel-plugin/devperf.c
+@@ -34,6 +34,7 @@
+ #include <errno.h>
+ #include <sys/time.h>
+ /* for major() and minor() */
++#include <sys/sysmacros.h>
+ #define _BSD_SOURCE
+ #include <sys/types.h>
+
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb
index 161b2bb..dc7f1fc 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb
@@ -5,5 +5,8 @@
inherit xfce-panel-plugin
+SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2 \
+ file://0001-panel-plugin-Include-sys-sysmacros.h-for-major-minor.patch \
+ "
SRC_URI[md5sum] = "63d5f03934c2dbddb3ad7bf7f535cc23"
SRC_URI[sha256sum] = "212ddc742be3eecb6ad5554e1b1df03d5685cb71f48a558d5f895de37c57e4fa"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.0.0.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.0.0.bb
deleted file mode 100644
index 32d6edf..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.0.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "A panel plugin that embeds arbitrary windows (or GtkPlug widgets) into the panel."
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-embed-plugin"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-# DEPENDS += "xfconf xproto libxtst"
-
-SRC_URI[md5sum] = "c5b86cbc1c54ee7c1d2e95a4502fed8e"
-SRC_URI[sha256sum] = "35d4c6c56dd6468c0e5afe66f657c1526f2d830a577105a51da43657651832e3"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.6.0.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.6.0.bb
new file mode 100644
index 0000000..387b183
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.6.0.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "A panel plugin that embeds arbitrary windows (or GtkPlug widgets) into the panel."
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-embed-plugin"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+# DEPENDS += "xfconf xorgproto libxtst"
+
+SRC_URI[md5sum] = "6870b116b85e4fa68d1b9ef76bd1d279"
+SRC_URI[sha256sum] = "c767df6360e8194b32bc24823dd000975edba0cafe525c23d7854029359ee228"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb
deleted file mode 100644
index 4e4c410..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-eyes-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "b2881924fdcc1230d9fa82c10f1a6afe"
-SRC_URI[sha256sum] = "648f7a1738d852af9482d11330b8ab33901f05256984de73d8cea4d7d7311937"
-
-FILES_${PN} += "${datadir}/xfce4/eyes"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.5.0.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.5.0.bb
new file mode 100644
index 0000000..e5c21a1
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.5.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-eyes-plugin"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+SRC_URI[md5sum] = "6e274ceda37c7a8ae0821d9d49e965e9"
+SRC_URI[sha256sum] = "fdae00036383105a15d12e9809abd5945a8f2152b17e16ccdfbfe5bd9733f29d"
+
+FILES_${PN} += "${datadir}/xfce4/eyes"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb
deleted file mode 100644
index 0624fe9..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-DESCRIPTION = "This plugin cyclically spawns the indicated script/program, captures its output (stdout) and displays the resulting string into the panel."
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "f28cfbf9c82e758a236c1f5fcbcb8a35"
-SRC_URI[sha256sum] = "a7db4f786166643076323dcde99ad12e92383cc29b4b806862d5483ec468c3e3"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb
new file mode 100644
index 0000000..002e93d
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.1.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "This plugin cyclically spawns the indicated script/program, captures its output (stdout) and displays the resulting string into the panel."
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe"
+
+inherit xfce-panel-plugin
+
+SRC_URI[md5sum] = "9dd0681c179302d56d92bbda5765bd09"
+SRC_URI[sha256sum] = "4c6ce37fbe71094548b44862587c2813da991aeaaecff8e572724dbbec83ab86"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin/0001-CMakeLists.txt-fix-library-install-path.patch b/meta-openembedded/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin/0001-CMakeLists.txt-fix-library-install-path.patch
new file mode 100644
index 0000000..df348dc
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin/0001-CMakeLists.txt-fix-library-install-path.patch
@@ -0,0 +1,39 @@
+Upstream-Status: Submitted [https://github.com/brianhsu/xfce4-hotcorner-plugin/pull/8]
+
+The library install path may be ${CMAKE_INSTALL_PREFIX}/lib64 rather
+than fixed ${CMAKE_INSTALL_PREFIX}/lib. Provide a variable to make it
+could override by cmake command line.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ CMakeLists.txt | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e193787..84cb52d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,8 +10,9 @@ include(GNUInstallDirs)
+
+ PKG_CHECK_MODULES(GTK REQUIRED libxfce4panel-1.0 libxfce4ui-1 libwnck-3.0)
+
+-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
++set(BASE_LIB_PATH "lib" CACHE STRING "base library install path")
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${BASE_LIB_PATH})
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${BASE_LIB_PATH})
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+
+ INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIRS})
+@@ -28,7 +29,7 @@ ADD_LIBRARY(hotcorner SHARED src/hotcorner.c src/util.c)
+
+ TARGET_LINK_LIBRARIES(hotcorner ${GTK_LIBRARIES})
+
+-INSTALL(TARGETS hotcorner LIBRARY DESTINATION lib/xfce4/panel/plugins/)
++INSTALL(TARGETS hotcorner LIBRARY DESTINATION ${BASE_LIB_PATH}/xfce4/panel/plugins/)
+ INSTALL(FILES hotcorner.desktop DESTINATION share/xfce4/panel/plugins/)
+ GETTEXT_CREATE_TRANSLATIONS(po/xfce4-hotcorner-plugin.pot ALL po/zh_TW.po)
+
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb
index f86c92e..57a815b 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb
@@ -6,6 +6,9 @@
DEPENDS += "libwnck3"
-SRC_URI = "https://github.com/brianhsu/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.gz"
+SRC_URI = "https://github.com/brianhsu/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.gz \
+ file://0001-CMakeLists.txt-fix-library-install-path.patch"
SRC_URI[md5sum] = "ac31b45cda1867cb6bd69bb285638263"
SRC_URI[sha256sum] = "942684c92f96a158e1417e597947f822769ac56aa1993a8c9f166ee633ef2b8d"
+
+EXTRA_OECMAKE = "-DBASE_LIB_PATH=${baselib}"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb
deleted file mode 100644
index 6700937..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Mount/umount utility for the xfce panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mount-plugin"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-SRC_URI += "file://0001-check-for-fstab.h-during-configure.patch"
-SRC_URI[md5sum] = "7eba9696d82433a5577741214d34b588"
-SRC_URI[sha256sum] = "54578447abaf9da630a750d64acdc37d4fd20dda6460208d6d1ffaa9e43ee1a6"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.3.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.3.bb
new file mode 100644
index 0000000..4600104
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.3.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Mount/umount utility for the xfce panel"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mount-plugin"
+SECTION = "x11/application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit xfce-panel-plugin
+
+SRC_URI += "file://0001-check-for-fstab.h-during-configure.patch"
+SRC_URI[md5sum] = "2f1f903d0bdf6ee6776afd8af73497ac"
+SRC_URI[sha256sum] = "aae5bd6b984bc78daf6b5fb9d15817a27253674a4264ad60f62ccb1aa194911e"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.0.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.0.bb
deleted file mode 100644
index f5417a1..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Pulseaudio mixer for the xfce panel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f"
-
-inherit xfce-panel-plugin distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "pulseaudio x11"
-
-DEPENDS += "pulseaudio"
-
-SRC_URI[md5sum] = "12f3dd97e02c604e2023b5baf30d4a6c"
-SRC_URI[sha256sum] = "aef9ad68a0b604a6aeca4c08146f3eb42bedb4fe1c8b65b82679cec0e2fc1cb3"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libnotify] = "--enable-libnotify,--disable-libnotify,libnotify"
-
-RRECOMMENDS_${PN} = "pavucontrol"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb
new file mode 100644
index 0000000..b423707
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Pulseaudio mixer for the xfce panel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f"
+
+inherit xfce-panel-plugin distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "pulseaudio x11"
+
+DEPENDS += "pulseaudio"
+
+SRC_URI[md5sum] = "7df7280c19c2c8b8c5bc4f4f2136d1dd"
+SRC_URI[sha256sum] = "6ca88314dbac3e24c0e1bfc593fad6edb66319766be62e8256c81b0314f049f0"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libnotify] = "--enable-libnotify,--disable-libnotify,libnotify"
+
+RRECOMMENDS_${PN} = "pavucontrol"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb
deleted file mode 100644
index 649eaaa..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Panel plugin to display current temperature and weather condition"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "libsoup-2.4 dbus-glib upower"
-
-SRC_URI[md5sum] = "bba7f750b97c8fc3656715268edad792"
-SRC_URI[sha256sum] = "ee6d43c444904631c240470e15e96215c2ce451158bfdbf234bce892bf60eab8"
-
-FILES_${PN} += "${datadir}/xfce4/weather"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.0.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.0.bb
new file mode 100644
index 0000000..1663bb9
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.9.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Panel plugin to display current temperature and weather condition"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+DEPENDS += "libsoup-2.4 dbus-glib upower"
+
+SRC_URI[md5sum] = "25d3d9fb2e688a619201655f6eea51c2"
+SRC_URI[sha256sum] = "34368cf2332774ad2a05226b2914ecb60e7550e9b2164be53ebe8f370198bb3d"
+
+FILES_${PN} += "${datadir}/xfce4/weather"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.1.6.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.1.6.bb
deleted file mode 100644
index 762cff0..0000000
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.1.6.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "An alternate menu for the Xfce desktop environment"
-HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin cmake
-
-SRC_URI[md5sum] = "b2b2bacc8d5f3c3119a0f317b6074276"
-SRC_URI[sha256sum] = "8b2a8ee1445df39a2cda139e353f2e9ec3720a780296dc41b7d4aebde57371fc"
-
-RRECOMMENDS_${PN} += "menulibre"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.0.bb b/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.0.bb
new file mode 100644
index 0000000..24a32fc
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "An alternate menu for the Xfce desktop environment"
+HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin cmake
+
+SRC_URI[md5sum] = "d2383c3eb1b54adf5a206973bd20f159"
+SRC_URI[sha256sum] = "7e569bb0dff7e3db3d964e23323f54c6de7249741c6a0e33a0fa501d83040b16"
+
+RRECOMMENDS_${PN} += "menulibre"
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.3.1.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.3.1.bb
deleted file mode 100644
index 90ab6af..0000000
--- a/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.3.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Thunar Archive Plugin allows you to create and extract archive files using file context menus in Thunar"
-HOMEPAGE = "http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-
-inherit thunar-plugin
-
-SRC_URI[md5sum] = "425f4faaace6dc7a4716a35b7795463a"
-SRC_URI[sha256sum] = "9ad559b0c11308f6897ad56604e5a06dc8f369f649eb20120b2d3018ef5da54c"
-
-# install tap files in ${libdir}/thunar-archive-plugin
-EXTRA_OECONF += "--libexecdir=${libdir}"
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.4.0.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.4.0.bb
new file mode 100644
index 0000000..144e260
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.4.0.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Thunar Archive Plugin allows you to create and extract archive files using file context menus in Thunar"
+HOMEPAGE = "http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
+
+inherit thunar-plugin
+
+SRC_URI[md5sum] = "0a7738a3a5f84bf218ece3ffb5241c63"
+SRC_URI[sha256sum] = "bf82fa86a388124eb3c4854249c30712b2922e61789607268ee14548549b3115"
+
+# install tap files in ${libdir}/thunar-archive-plugin
+EXTRA_OECONF += "--libexecdir=${libdir}"
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.2.1.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.2.1.bb
deleted file mode 100644
index 90f150b..0000000
--- a/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.2.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Adds ID3/OGG tag support to the Thunar bulk rename dialog"
-HOMEPAGE = "http://thunar.xfce.org"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit thunar-plugin
-
-DEPENDS += "taglib"
-
-SRC_URI[md5sum] = "0106e900714f86ccbafdc72238d3cf8d"
-SRC_URI[sha256sum] = "056d012a10403ee3e2e55b6ff2faecb796821de9ebee000315589b95d95ed253"
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb
new file mode 100644
index 0000000..a61e764
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Adds ID3/OGG tag support to the Thunar bulk rename dialog"
+HOMEPAGE = "http://thunar.xfce.org"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit thunar-plugin
+
+DEPENDS += "taglib"
+
+SRC_URI[md5sum] = "5e332113e4b0e548ee7abd87629667f7"
+SRC_URI[sha256sum] = "e265c4415abac40337cc5566c6f706efcf0be4e97723abe22ba8b874c93a591b"
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb
new file mode 100644
index 0000000..994c652
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Quickly share a folder using Samba from Thunar"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit thunar-plugin distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SRC_URI[md5sum] = "a1773168c0b3c7c0f253a339f02e5ae2"
+SRC_URI[sha256sum] = "d6adc01ca45a3d2567a2a969a3b16d1799a8975453ab1803a065fa82496b5b65"
+
+RDEPENDS_${PN} += "samba-server"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.0.bb
deleted file mode 100644
index d256b57..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-DESCRIPTION="Application library for the Xfce desktop environment"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gtk+ libxfce4util libxfce4ui virtual/libx11 liburi-perl-native cairo"
-DEPENDS_class-native = "glib-2.0-native xfce4-dev-tools-native intltool-native"
-
-inherit xfce pythonnative perlnative gtk-doc distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-
-# SRC_URI must follow inherited one
-SRC_URI += " \
- file://exo-no-tests-0.8.patch \
- file://configure.patch \
-"
-
-SRC_URI_append_class-native = " \
- file://reduce-build-to-exo-csource-only.patch \
-"
-
-SRC_URI[md5sum] = "724afcca224f5fb22b510926d2740e52"
-SRC_URI[sha256sum] = "64b88271a37d0ec7dca062c7bc61ca323116f7855092ac39698c421a2f30a18f"
-
-PACKAGES =+ "exo-csource"
-
-# Note: python bindings did not work in oe-dev and are about to be moved to
-# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560
-FILES_${PN} += "${datadir}/xfce4/ \
- ${libdir}/xfce4/exo-1 \
-"
-
-FILES_${PN}-dbg += "${libdir}/gio/modules/.debug \
-"
-
-FILES_exo-csource += "${bindir}/exo-csource"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.3.bb b/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.3.bb
new file mode 100644
index 0000000..9c4829b
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.12.3.bb
@@ -0,0 +1,36 @@
+DESCRIPTION="Application library for the Xfce desktop environment"
+SECTION = "x11"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "gtk+ libxfce4util libxfce4ui virtual/libx11 liburi-perl-native cairo"
+DEPENDS_class-native = "glib-2.0-native xfce4-dev-tools-native intltool-native"
+
+inherit xfce pythonnative perlnative gtk-doc distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+REQUIRED_DISTRO_FEATURES_class-native = ""
+
+# SRC_URI must follow inherited one
+SRC_URI += " \
+ file://exo-no-tests-0.8.patch \
+ file://configure.patch \
+"
+
+SRC_URI_append_class-native = " \
+ file://reduce-build-to-exo-csource-only.patch \
+"
+
+SRC_URI[md5sum] = "da934c5939f2ee4540f5d48991053f01"
+SRC_URI[sha256sum] = "b96fe86bb504aa9b3332b96105d755f5d9052c903fd6574b512a5ef76c0ad439"
+
+PACKAGES =+ "exo-csource"
+
+# Note: python bindings did not work in oe-dev and are about to be moved to
+# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560
+FILES_${PN} += "${datadir}/xfce4/ \
+ ${libdir}/xfce4/exo-1 \
+"
+
+FILES_exo-csource += "${bindir}/exo-csource"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb
index ef4f4bf..805e893 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb
@@ -21,10 +21,10 @@
FILES_gtk3-xfce-engine += "${libdir}/gtk-3.0/*/theming-engines/*.so"
FILES_${PN}-themes += "${datadir}/themes"
-FILES_${PN}-dbg += "${libdir}/gtk-3.0/*/theming-engines/.debug \
- ${libdir}/gtk-2.0/*/engines/.debug"
-FILES_${PN}-dev += "${libdir}/gtk-2.0/*/engines/*.la \
- ${libdir}/gtk-3.0/*/theming-engines/*.la"
+FILES_${PN}-dev += " \
+ ${libdir}/gtk-2.0/*/engines/*.la \
+ ${libdir}/gtk-3.0/*/theming-engines/*.la \
+"
RDEPENDS_${PN} += "${PN}-themes"
RDEPENDS_gtk3-xfce-engine += "${PN}-themes"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb
deleted file mode 100644
index 4843e0e..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Xfce4 Widget library and X Window System interaction"
-SECTION = "x11/libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "perl-native glib-2.0 gtk+ gtk+3 intltool-native libxfce4util xfconf xfce4-dev-tools virtual/libx11 libsm libice"
-
-inherit xfce autotools gettext gtk-doc distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += " \
- file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch \
-"
-SRC_URI[md5sum] = "ea9fad7d059fe8f531fe8db42dabb5a9"
-SRC_URI[sha256sum] = "3d619811bfbe7478bb984c16543d980cadd08586365a7bc25e59e3ca6384ff43"
-
-EXTRA_OECONF += "--with-vendor-info=${DISTRO}"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gladeui] = "--enable-gladeui,--disable-gladeui,glade3"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-
-PACKAGES =+ "${PN}-gtk2 ${PN}-gtk3"
-FILES_${PN}-gtk2 += "${libdir}/libxfce4ui-1.so.* ${libdir}/libxfce4kbd-private-2.so.*"
-FILES_${PN}-gtk3 += "${libdir}/libxfce4ui-2.so.* ${libdir}/libxfce4kbd-private-3.so.*"
-
-FILES_${PN}-dbg += "${libdir}/glade3/modules/.debug"
-FILES_${PN}-dev += "${libdir}/glade3/modules/*.la \
- ${datadir}/glade3/catalogs/*.in"
-PACKAGES += "${PN}-glade"
-FILES_${PN}-glade = "${libdir}/glade3 \
- ${datadir}/glade3"
-
-RDEPENDS_${PN}-gtk2 = "${PN}"
-RDEPENDS_${PN}-gtk3 = "${PN}"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.4.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.4.bb
new file mode 100644
index 0000000..8a385ba
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.4.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Xfce4 Widget library and X Window System interaction"
+SECTION = "x11/libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
+DEPENDS = "perl-native glib-2.0 gtk+ gtk+3 intltool-native libxfce4util xfconf xfce4-dev-tools virtual/libx11 libsm libice"
+
+inherit xfce autotools gettext gtk-doc gobject-introspection distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " \
+ file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch \
+"
+SRC_URI[md5sum] = "b407cdab73ebd5c33c90db6bdb3ec5ff"
+SRC_URI[sha256sum] = "d63fcdb8e5acb6f0d26075ea17d320dbfbec2058567cd67cb99824c7402a1f79"
+
+EXTRA_OECONF += "--with-vendor-info=${DISTRO}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gladeui] = "--enable-gladeui,--disable-gladeui,glade3"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+
+PACKAGES =+ "${PN}-gtk2 ${PN}-gtk3"
+FILES_${PN}-gtk2 += "${libdir}/libxfce4ui-1.so.* ${libdir}/libxfce4kbd-private-2.so.*"
+FILES_${PN}-gtk3 += "${libdir}/libxfce4ui-2.so.* ${libdir}/libxfce4kbd-private-3.so.*"
+
+PACKAGES += "${PN}-glade"
+FILES_${PN}-glade = "${libdir}/glade3 \
+ ${datadir}/glade3"
+
+RDEPENDS_${PN}-gtk2 = "${PN}"
+RDEPENDS_${PN}-gtk3 = "${PN}"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.12.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.12.1.bb
deleted file mode 100644
index d985a00..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.12.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Basic utility library for Xfce4"
-SECTION = "x11/libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "intltool-native xfce4-dev-tools-native glib-2.0"
-
-inherit xfce gtk-doc
-
-SRC_URI[md5sum] = "4eb012b6c1292ceedb3a83ebfc1ff08d"
-SRC_URI[sha256sum] = "876bdefa2e13cbf68b626b2158892fb93e824e1ef59cf951123a96cefbc8881d"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.2.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.2.bb
new file mode 100644
index 0000000..21cc1db
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.2.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Basic utility library for Xfce4"
+SECTION = "x11/libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
+DEPENDS = "intltool-native xfce4-dev-tools-native glib-2.0"
+
+inherit xfce gtk-doc gobject-introspection
+
+SRC_URI[md5sum] = "e3e8b9dd7e12028d3e642345b85d6ef1"
+SRC_URI[sha256sum] = "c58275ff650080369e742695862c811cb78402c85f243ea0b5aec186027be361"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb b/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
index b73c9ee..5f8c03c 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
@@ -56,6 +56,7 @@
xfce4-verve-plugin \
\
xfce-polkit \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "blueman", "", d)} \
\
thunar-media-tags-plugin \
thunar-archive-plugin \
@@ -67,4 +68,7 @@
ristretto \
xfce4-taskmanager \
gigolo \
+ mousepad \
+ catfish \
+ xfce4-panel-profiles \
"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman/0001-Fix-return-with-no-value-in-function-returning-non-v.patch b/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman/0001-Fix-return-with-no-value-in-function-returning-non-v.patch
deleted file mode 100644
index 7233ea7..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman/0001-Fix-return-with-no-value-in-function-returning-non-v.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2e295e9ce8f7f60a271adf004588b0d8db88db09 Mon Sep 17 00:00:00 2001
-From: Matt Thirtytwo <matt.59491@gmail.com>
-Date: Sat, 7 Mar 2015 22:50:32 +0100
-Subject: [PATCH] Fix return with no value in function returning non-void (bug
- #11656)
-
----
- thunar-volman/tvm-block-device.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/thunar-volman/tvm-block-device.c b/thunar-volman/tvm-block-device.c
-index da31efa..edb6cad 100644
---- a/thunar-volman/tvm-block-device.c
-+++ b/thunar-volman/tvm-block-device.c
-@@ -714,7 +714,7 @@ tvm_block_device_mount (TvmContext *context)
- GMountOperation *mount_operation;
- GVolume *volume;
-
-- g_return_if_fail (context != NULL);
-+ g_return_val_if_fail ((context != NULL), FALSE);
-
- /* determine the GVolume corresponding to the udev device */
- volume =
---
-1.9.0
-
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.8.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.8.1.bb
deleted file mode 100644
index c61d451..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.8.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Automatic management of removable drives and media for thunar"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "exo glib-2.0 gtk+ libxfce4ui libxfce4util xfconf libnotify libgudev"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += "file://0001-Fix-return-with-no-value-in-function-returning-non-v.patch"
-SRC_URI[md5sum] = "65ab6e05b2e808d1dcc8d36683a59b7e"
-SRC_URI[sha256sum] = "5a08bb5ce32c296a64dfbdb2406d4e45a208b2c91e4efa831dc28f1d6c2ac2bd"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
-
-RDEPENDS_${PN} = "eject"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.0.bb
new file mode 100644
index 0000000..5a37b69
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Automatic management of removable drives and media for thunar"
+SECTION = "x11"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "exo glib-2.0 libxfce4ui libxfce4util xfconf libnotify libgudev"
+
+inherit xfce distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "3b403a4f846927391ea4bee765a055df"
+SRC_URI[sha256sum] = "e4bffcfee15530e277fa80865eb1de31e63c7effaf8835c9fa7c71e5a0076b2e"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
+
+RDEPENDS_${PN} = "eject"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.6.15.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.6.15.bb
deleted file mode 100644
index 170e250..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.6.15.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "File manager for the Xfce Desktop Environment"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "exo glib-2.0 gtk+ gdk-pixbuf libxfce4util libxfce4ui xfconf libsm dbus-glib startup-notification libnotify xfce4-panel udev"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:3]}/Thunar-${PV}.tar.bz2"
-SRC_URI[md5sum] = "8fea2af69c3acbb273fd1a177d3d8e47"
-SRC_URI[sha256sum] = "e81291a8519f495e0a059ff1f2d29608bc6d37c0be83b1f38f3c9aa25f8d252d"
-
-S = "${WORKDIR}/Thunar-${PV}/"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre"
-
-FILES_${PN} += " \
- ${libdir}/thunarx-2/* \
- ${libdir}/xfce4/panel/plugins/* \
- ${libdir}/Thunar/[Tt]hunar* \
- ${datadir}/appdata \
- ${datadir}/dbus-1 \
- ${datadir}/polkit-1 \
- ${datadir}/Thunar \
- ${datadir}/xfce4/panel/plugins/* \
-"
-
-FILES_${PN}-dbg += "${libdir}/thunarx-2/.debug/ \
- ${libdir}/xfce4/panel/plugins/.debug/ \
- ${libdir}/Thunar/.debug/"
-
-RRECOMMENDS_${PN} = "gvfs gvfsd-trash"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.2.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.2.bb
new file mode 100644
index 0000000..d2a0e30
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.8.2.bb
@@ -0,0 +1,32 @@
+SUMMARY = "File manager for the Xfce Desktop Environment"
+SECTION = "x11"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "exo glib-2.0 gtk+3 gdk-pixbuf libxfce4util libxfce4ui xfconf libsm dbus-glib startup-notification libnotify xfce4-panel udev"
+
+inherit xfce gobject-introspection distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:3]}/Thunar-${PV}.tar.bz2"
+SRC_URI[md5sum] = "51a0988625a7e2c944377e75d3effc71"
+SRC_URI[sha256sum] = "75f91045541eb5983e772a564d97f23e5995256bfb9863e0f4a015393421d428"
+
+S = "${WORKDIR}/Thunar-${PV}/"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre"
+
+FILES_${PN} += " \
+ ${libdir}/thunarx-3/* \
+ ${libdir}/xfce4/panel/plugins/* \
+ ${libdir}/Thunar/[Tt]hunar* \
+ ${systemd_user_unitdir} \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/polkit-1 \
+ ${datadir}/Thunar \
+ ${datadir}/xfce4/panel/plugins/* \
+"
+
+RRECOMMENDS_${PN} = "gvfs gvfsd-trash"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb
index 7e0c555..9d26694 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb
@@ -28,8 +28,5 @@
"
FILES_${PN}-dev += "${libdir}/tumbler-1/plugins/*.la \
- ${libdir}/tumbler-1/plugins/cache/*.la"
-FILES_${PN}-dbg += "${libdir}/tumbler-1/.debug \
- ${libdir}/tumbler-1/plugins/.debug \
- ${libdir}/tumbler-1/plugins/cache/.debug \
+ ${libdir}/tumbler-1/plugins/cache/*.la \
"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.0.bb
deleted file mode 100644
index 7e73911..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION="Xfce4 Application Finder"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS="glib-2.0 gtk+3 libxfce4util libxfce4ui garcon dbus-glib xfconf"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "6b6cf080c891f7945953f8084a901552"
-SRC_URI[sha256sum] = "c0eb3b29eba3cfa9175ed35174e83a21faa2a2423ddb79501fe8846cc430e3ae"
-
-FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.1.bb
new file mode 100644
index 0000000..0336f54
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.1.bb
@@ -0,0 +1,14 @@
+DESCRIPTION="Xfce4 Application Finder"
+SECTION = "x11"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS="glib-2.0 gtk+3 libxfce4util libxfce4ui garcon dbus-glib xfconf"
+
+inherit xfce distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "9e2a1f9b4ae3183c461b79891224c33f"
+SRC_URI[sha256sum] = "5cabb27bbe0a0864b785e1a38535a91516763e38d6bff41a3915a61d28254b03"
+
+FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-clock-time-make-change-of-system-s-timezone-change-t.patch b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-clock-time-make-change-of-system-s-timezone-change-t.patch
deleted file mode 100644
index 9dca3ba..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-clock-time-make-change-of-system-s-timezone-change-t.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From c582338ef4f33b3dc07a2636340d55b9fb530650 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Wed, 17 Feb 2016 00:15:44 +0100
-Subject: [PATCH] clock-time: make change of system's timezone change time for
- DEFAULT_TIMEZONE
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-clock_time->timezone is set in clock_time_init so the condition
-
-'clock_time->timezone != NULL
-
-is matching always.
-
-Tested by selecting seconds displayed (-> quick update) and changing timezone.
-
-Upstream-Status: Submitted [1]
-
-[1] https://bugzilla.xfce.org/show_bug.cgi?id=12453
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- plugins/clock/clock-time.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/plugins/clock/clock-time.c b/plugins/clock/clock-time.c
-index b015b13..4459b85 100644
---- a/plugins/clock/clock-time.c
-+++ b/plugins/clock/clock-time.c
-@@ -198,7 +198,7 @@ clock_time_get_time (ClockTime *clock_time)
-
- panel_return_val_if_fail (XFCE_IS_CLOCK_TIME (clock_time), NULL);
-
-- if (clock_time->timezone != NULL)
-+ if (g_strcmp0 (clock_time->timezone_name, DEFAULT_TIMEZONE) != 0)
- date_time = g_date_time_new_now (clock_time->timezone);
- else
- date_time = g_date_time_new_now_local ();
---
-2.5.0
-
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
new file mode 100644
index 0000000..1adb145
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
@@ -0,0 +1,60 @@
+From 0651f228cef01a6c3e4758a991cace1cd7721031 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 24 Sep 2012 09:57:46 +0200
+Subject: [PATCH] windowmenu: do not display desktop icon when no window is
+ active
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* desktop icon is of no use
+* desktop icon confuses when using showdesktop plugin
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ plugins/windowmenu/windowmenu.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/plugins/windowmenu/windowmenu.c b/plugins/windowmenu/windowmenu.c
+index f47e993e..061d6544 100644
+--- a/plugins/windowmenu/windowmenu.c
++++ b/plugins/windowmenu/windowmenu.c
+@@ -251,7 +251,7 @@ window_menu_plugin_init (WindowMenuPlugin *plugin)
+ g_signal_connect (G_OBJECT (plugin->button), "toggled",
+ G_CALLBACK (window_menu_plugin_menu), plugin);
+
+- plugin->icon = gtk_image_new_from_icon_name ("user-desktop", GTK_ICON_SIZE_BUTTON);
++ plugin->icon = gtk_image_new_from_icon_name (NULL, GTK_ICON_SIZE_BUTTON);
+ gtk_container_add (GTK_CONTAINER (plugin->button), plugin->icon);
+ gtk_widget_show (plugin->icon);
+ }
+@@ -640,7 +640,7 @@ window_menu_plugin_active_window_changed (WnckScreen *screen,
+ /* skip 'fake' windows */
+ type = wnck_window_get_window_type (window);
+ if (type == WNCK_WINDOW_DESKTOP || type == WNCK_WINDOW_DOCK)
+- goto show_desktop_icon;
++ goto show_no_icon;
+
+ /* get the window icon and set the tooltip */
+ gtk_widget_set_tooltip_text (GTK_WIDGET (icon),
+@@ -660,12 +660,12 @@ window_menu_plugin_active_window_changed (WnckScreen *screen,
+ }
+ else
+ {
+- show_desktop_icon:
++ show_no_icon:
+
+ /* desktop is shown right now */
+- gtk_image_set_from_icon_name (GTK_IMAGE (icon), "user-desktop", icon_size);
++ gtk_image_set_from_icon_name (GTK_IMAGE (icon), NULL, icon_size);
+ gtk_image_set_pixel_size (GTK_IMAGE (icon), icon_size);
+- gtk_widget_set_tooltip_text (GTK_WIDGET (icon), _("Desktop"));
++ gtk_widget_set_tooltip_text (GTK_WIDGET (icon), _("No Windows"));
+ }
+ }
+ }
+--
+2.14.3
+
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-windowmenu-do-not-display-desktop-icon-when-no-windo.patch b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
deleted file mode 100644
index b2d960c..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 0651f228cef01a6c3e4758a991cace1cd7721031 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Mon, 24 Sep 2012 09:57:46 +0200
-Subject: [PATCH] windowmenu: do not display desktop icon when no window is
- active
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* desktop icon is of no use
-* desktop icon confuses when using showdesktop plugin
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- plugins/windowmenu/windowmenu.c | 12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/plugins/windowmenu/windowmenu.c b/plugins/windowmenu/windowmenu.c
-index c96123a..9404021 100644
---- a/plugins/windowmenu/windowmenu.c
-+++ b/plugins/windowmenu/windowmenu.c
-@@ -256,7 +256,7 @@ window_menu_plugin_init (WindowMenuPlugin *plugin)
- g_signal_connect (G_OBJECT (plugin->button), "toggled",
- G_CALLBACK (window_menu_plugin_menu), plugin);
-
-- plugin->icon = xfce_panel_image_new_from_source ("user-desktop");
-+ plugin->icon = xfce_panel_image_new_from_source (NULL);
- gtk_container_add (GTK_CONTAINER (plugin->button), plugin->icon);
- gtk_widget_show (plugin->icon);
- }
-@@ -634,7 +634,7 @@ window_menu_plugin_active_window_changed (WnckScreen *screen,
- /* skip 'fake' windows */
- type = wnck_window_get_window_type (window);
- if (type == WNCK_WINDOW_DESKTOP || type == WNCK_WINDOW_DOCK)
-- goto show_desktop_icon;
-+ goto show_no_icon;
-
- /* get the window icon and set the tooltip */
- gtk_widget_set_tooltip_text (GTK_WIDGET (icon),
-@@ -648,11 +648,11 @@ window_menu_plugin_active_window_changed (WnckScreen *screen,
- }
- else
- {
-- show_desktop_icon:
-+ show_no_icon:
-
-- /* desktop is shown right now */
-- xfce_panel_image_set_from_source (icon, "user-desktop");
-- gtk_widget_set_tooltip_text (GTK_WIDGET (icon), _("Desktop"));
-+ /* no icon is shown right now */
-+ xfce_panel_image_set_from_source (icon, NULL);
-+ gtk_widget_set_tooltip_text (GTK_WIDGET (icon), _("No Windows"));
- }
- }
- }
---
-1.7.6.5
-
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.2.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.2.bb
deleted file mode 100644
index 9cc9a4b..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.2.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Xfce4 Panel"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee"
-DEPENDS = "libxfce4util garcon libxfce4ui xfconf exo gtk+ gtk+3 dbus cairo virtual/libx11 libxml2 libwnck"
-
-inherit xfce gtk-doc distro_features_check gtk-icon-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "803c9aabc2925dc97f96de125c52ba2e"
-SRC_URI[sha256sum] = "42058abb81b8f87691d3999627447de71c3285bcf055f308aab5cefab2de0ce9"
-SRC_URI += " \
- file://0001-clock-time-make-change-of-system-s-timezone-change-t.patch \
- file://0002-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \
-"
-
-EXTRA_OECONF += "--enable-gtk3"
-
-python populate_packages_prepend() {
- plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/')
- plugin_name = d.expand('${PN}-plugin-%s')
- do_split_packages(d, plugin_dir, '^lib(.*).so$', plugin_name,
- '${PN} plugin for %s', extra_depends='', prepend=True,
- aux_files_pattern=['${datadir}/xfce4/panel/plugins/%s.desktop',
- '${sysconfdir}/xdg/xfce/panel/%s-*',
- '${datadir}/icons/hicolor/48x48/apps/*-%s.png',
- '${bindir}/*%s*'])
-}
-
-PACKAGES_DYNAMIC += "^${PN}-plugin-.*"
-
-PACKAGES =+ "${PN}-gtk3"
-
-FILES_${PN} += "${libdir}/xfce4/panel/migrate \
- ${libdir}/xfce4/panel/wrapper-1.0"
-
-FILES_${PN}-gtk3 = " \
- ${libdir}/libxfce4panel-2.0${SOLIBS} \
- ${libdir}/xfce4/panel/wrapper-2.0 \
-"
-FILES_${PN}-dbg += " \
- ${libdir}/xfce4/panel/plugins/.debug \
-"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.3.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.3.bb
new file mode 100644
index 0000000..f1abf66
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.3.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Xfce4 Panel"
+SECTION = "x11"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee"
+DEPENDS = "libxfce4util garcon libxfce4ui xfconf exo gtk+ gtk+3 dbus cairo virtual/libx11 libxml2 libwnck3 vala-native"
+
+inherit xfce gtk-doc gobject-introspection distro_features_check gtk-icon-cache remove-libtool
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "0ccb448e3792949eb0ae9db8dc22789b"
+SRC_URI[sha256sum] = "b467feb7ee9797ad12f56a152570e42a96b94ad63580d45536aabee282440ce8"
+SRC_URI += " \
+ file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \
+"
+
+python populate_packages_prepend() {
+ plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/')
+ plugin_name = d.expand('${PN}-plugin-%s')
+ do_split_packages(d, plugin_dir, '^lib(.*).so$', plugin_name,
+ '${PN} plugin for %s', extra_depends='', prepend=True,
+ aux_files_pattern=['${datadir}/xfce4/panel/plugins/%s.desktop',
+ '${sysconfdir}/xdg/xfce/panel/%s-*',
+ '${datadir}/icons/hicolor/48x48/apps/*-%s.png',
+ '${bindir}/*%s*'])
+}
+
+PACKAGES_DYNAMIC += "^${PN}-plugin-.*"
+
+PACKAGES =+ "${PN}-gtk3"
+
+FILES_${PN} += "${libdir}/xfce4/panel/migrate \
+ ${libdir}/xfce4/panel/wrapper-1.0"
+
+FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
+
+FILES_${PN}-gtk3 = " \
+ ${libdir}/libxfce4panel-2.0${SOLIBS} \
+ ${libdir}/xfce4/panel/wrapper-2.0 \
+"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb
deleted file mode 100644
index a247206..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-DEPENDS = "virtual/libx11 libsm libxfce4util libxfce4ui gtk+ libwnck dbus dbus-glib xfconf polkit"
-RDEPENDS_${PN} = "netbase xinit dbus-x11 iceauth upower"
-
-inherit xfce update-alternatives distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "f4921fb2e606e74643daf1212263076c"
-SRC_URI[sha256sum] = "97d7f2a2d0af7f3623b68d1f04091e02913b28f9555dab8b0d26c8a1299d08fd"
-SRC_URI += " \
- file://0001-configure.in-hard-code-path-to-iceauth.patch \
-"
-
-ALTERNATIVE_${PN} = "x-session-manager"
-ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session"
-ALTERNATIVE_PRIORITY_${PN} = "100"
-
-FILES_${PN} += " \
- ${libdir}/xfce4/*/*/*.so \
- ${libdir}/xfce4/session/*-*-* \
- ${datadir}/xsessions \
- ${datadir}/themes/Default/balou/* \
- ${datadir}/polkit-1 \
-"
-
-FILES_${PN}-dbg += "${libdir}/xfce4/*/*/.debug"
-
-RDEPENDS_${PN} += "machine-host"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.13.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.13.1.bb
new file mode 100644
index 0000000..b11aaa4
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.13.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment"
+SECTION = "x11"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
+DEPENDS = "virtual/libx11 libsm libxfce4util libxfce4ui gtk+ libwnck3 dbus dbus-glib xfconf polkit"
+RDEPENDS_${PN} = "netbase xinit dbus-x11 iceauth upower"
+
+inherit xfce update-alternatives distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " \
+ file://0001-configure.in-hard-code-path-to-iceauth.patch \
+"
+SRC_URI[md5sum] = "a47988a2c871a411c19e3af1eefe591e"
+SRC_URI[sha256sum] = "c789f0f8234e06f5266f0c6ccdbdcc3c085e8d9eea06a0eafe8f7cfc4fe23af4"
+
+ALTERNATIVE_${PN} = "x-session-manager"
+ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session"
+ALTERNATIVE_PRIORITY_${PN} = "100"
+
+FILES_${PN} += " \
+ ${libdir}/xfce4/*/*/*.so \
+ ${libdir}/xfce4/session/*-*-* \
+ ${datadir}/xsessions \
+ ${datadir}/themes/Default/balou/* \
+ ${datadir}/polkit-1 \
+"
+
+FILES_${PN} += " \
+ ${libdir}/xfce4/session/splash-engines/*.la \
+"
+
+RDEPENDS_${PN} += "machine-host"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch
new file mode 100644
index 0000000..109b7b1
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch
@@ -0,0 +1,41 @@
+From b6e46e6a84e45f7bd954687be703987825a54c1e Mon Sep 17 00:00:00 2001
+From: Eric Koegel <eric.koegel@gmail.com>
+Date: Sun, 11 Jun 2017 11:38:26 +0300
+Subject: [PATCH] Fix linking to dbus-glib (bug #13633)
+
+With xfconf moving to GDBus nothing provides the libs for dbus-glib
+that xfce4-settings requires. This patch adds the libs back in until
+settings can be ported to GDBus.
+
+Signed-off-by: Sean Davis <smd.seandavis@gmail.com>
+
+Upstream-Status: Backport
+---
+ xfce4-settings-editor/Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/xfce4-settings-editor/Makefile.am b/xfce4-settings-editor/Makefile.am
+index 5964366..c2c7c4b 100644
+--- a/xfce4-settings-editor/Makefile.am
++++ b/xfce4-settings-editor/Makefile.am
+@@ -28,6 +28,7 @@ xfce4_settings_editor_CFLAGS = \
+ $(LIBXFCE4UTIL_CFLAGS) \
+ $(LIBXFCE4UI_CFLAGS) \
+ $(XFCONF_CFLAGS) \
++ $(DBUS_GLIB_CFLAGS) \
+ $(PLATFORM_CFLAGS)
+
+ xfce4_settings_editor_LDFLAGS = \
+@@ -39,7 +40,8 @@ xfce4_settings_editor_LDADD = \
+ $(DBUS_GLIB_LIBS) \
+ $(LIBXFCE4UTIL_LIBS) \
+ $(LIBXFCE4UI_LIBS) \
+- $(XFCONF_LIBS)
++ $(XFCONF_LIBS) \
++ $(DBUS_GLIB_LIBS)
+
+ desktopdir = $(datadir)/applications
+ desktop_in_files = xfce4-settings-editor.desktop.in
+--
+2.14.3
+
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb
index bf9bd31..a4685ae 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb
@@ -13,12 +13,13 @@
# + minor bugfixes - sent mainline but no response
# + option to hide mousepointer for a specific (touch) input device - sent mainline but no response
SRC_URI = " \
- git://github.com/schnitzeltony/xfce4-settings.git;protocol=git;branch=for-oe-4.12.3 \
+ git://github.com/schnitzeltony/xfce4-settings.git;protocol=git;branch=for-oe-4.12.4 \
file://0001-xsettings.xml-Set-default-themes.patch \
+ file://0002-Fix-linking-to-dbus-glib-bug-13633.patch \
"
-SRCREV = "b701ac8b66b83c17469dd5009da51eeb59eba442"
+SRCREV = "75d7c9b15e5ccce12b0864d3659ae9b6de96e245"
S = "${WORKDIR}/git"
-PV = "4.12.3+git${SRCPV}"
+PV = "4.12.4+git${SRCPV}"
EXTRA_OECONF += "--enable-maintainer-mode --disable-debug"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.1.bb
deleted file mode 100644
index a42426f..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Xfce configuration daemon and utilities"
-SECTION = "x11/wm"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-DEPENDS = "dbus-glib libxfce4util perl intltool-native xfce4-dev-tools-native"
-
-inherit xfce gtk-doc
-
-EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl"
-
-SRC_URI[md5sum] = "20dc8d2bfd80ba136bf4964021b32757"
-SRC_URI[sha256sum] = "35f48564e5694faa54fdc180cd3268e16fc2352946a89a3c2fc12cbe400ada36"
-
-FILES_${PN} += "${libdir}/xfce4/xfconf/xfconfd \
- ${datadir}/dbus-1/services/org.xfce.Xfconf.service"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.6.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.6.bb
new file mode 100644
index 0000000..2667ff9
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.6.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Xfce configuration daemon and utilities"
+SECTION = "x11/wm"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+DEPENDS = "dbus-glib libxfce4util perl intltool-native xfce4-dev-tools-native"
+
+inherit xfce gtk-doc
+
+EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl"
+
+SRC_URI[md5sum] = "da19df12dbc494c8a4da3974e376d639"
+SRC_URI[sha256sum] = "d1a3d442dae188b5a7380b5815377e5488578cdafb03ae363e9426e3b01185df"
+
+FILES_${PN} += "${libdir}/xfce4/xfconf/xfconfd \
+ ${libdir}/gio/modules/libxfconfgsettingsbackend.so \
+ ${datadir}/dbus-1/services/org.xfce.Xfconf.service"
+
+FILES_${PN}-dev += "${libdir}/gio/modules/libxfconfgsettingsbackend.la"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb
deleted file mode 100644
index d9cbe71..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Xfce4 Desktop Manager"
-SECTION = "x11/base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "glib-2.0 gtk+ libxfce4util libxfce4ui libwnck xfconf dbus-glib dbus-glib-native thunar garcon exo"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "7571889368be72df185ce2d470f37198"
-SRC_URI[sha256sum] = "098a35510562907e1431d5adbfa8307484a235c1dec6a43e2d58d2ac4241f1cb"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
-
-FILES_${PN} += "${datadir}/backgrounds"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.13.2.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.13.2.bb
new file mode 100644
index 0000000..85696a1
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.13.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Xfce4 Desktop Manager"
+SECTION = "x11/base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "libxfce4util libxfce4ui libwnck xfconf dbus-glib dbus-glib-native thunar garcon exo"
+
+inherit xfce distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "c05569c1c39ccd314fb5da20d5086909"
+SRC_URI[sha256sum] = "387f43d8a4615f44060c019cad212ac12df62c58eea2605813743116f71ad3bd"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
+
+FILES_${PN} += "${datadir}/backgrounds"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb
deleted file mode 100644
index 2aa68e3..0000000
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION="Xfce4 Window Manager"
-SECTION = "x11/wm"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
-DEPENDS = "virtual/libx11 libxpm gtk+ libxfce4util libxfce4ui xfconf libwnck dbus-glib startup-notification exo-native"
-
-inherit xfce update-alternatives distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "3ec136efc5387fd3b53cd66b684f52d7"
-SRC_URI[sha256sum] = "fa74048a75649a6e92df763a3cfb706d3fed1e1a6adf567f6693325a5a6efb36"
-
-python populate_packages_prepend () {
- themedir = d.expand('${datadir}/themes')
- do_split_packages(d, themedir, '^(.*)', 'xfwm4-theme-%s', 'XFWM4 theme %s', allow_dirs=True)
-}
-
-PACKAGES_DYNAMIC += "^xfwm4-theme-.*"
-
-ALTERNATIVE_${PN} = "x-window-manager"
-ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/xfwm4"
-ALTERNATIVE_PRIORITY[x-window-manager] = "30"
-
-RDEPENDS_${PN} = "xfwm4-theme-default"
-FILES_${PN} += "${libdir}/xfce4/xfwm4/helper-dialog \
- ${datadir}/xfwm4/defaults \
-"
-FILES_${PN}-dbg += "${libexecdir}/xfce4/xfwm4/.debug/*"
-
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.1.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.1.bb
new file mode 100644
index 0000000..64ad9f6
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.1.bb
@@ -0,0 +1,38 @@
+DESCRIPTION="Xfce4 Window Manager"
+SECTION = "x11/wm"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
+DEPENDS = "virtual/libx11 libxfce4util libxfce4ui xfconf libwnck3 dbus-glib libxinerama exo-native"
+
+inherit xfce update-alternatives distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "1a78bcc2100c03f6fea0dbce0ca813cf"
+SRC_URI[sha256sum] = "75ebc20d313cff4905e76fc320254c30461dbfa985461b8e75dca04770cedf12"
+
+PACKAGECONFIG ?= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'epoxy', '', d)} \
+ xpresent \
+ startup-notification \
+"
+
+PACKAGECONFIG[epoxy] = "--enable-epoxy,--disable-epoxy,libepoxy"
+PACKAGECONFIG[xpresent] = "--enable-xpresent,--disable-xpresent,libxpresent"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+
+python populate_packages_prepend () {
+ themedir = d.expand('${datadir}/themes')
+ do_split_packages(d, themedir, '^(.*)', 'xfwm4-theme-%s', 'XFWM4 theme %s', allow_dirs=True)
+}
+
+PACKAGES_DYNAMIC += "^xfwm4-theme-.*"
+
+ALTERNATIVE_${PN} = "x-window-manager"
+ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/xfwm4"
+ALTERNATIVE_PRIORITY[x-window-manager] = "30"
+
+RDEPENDS_${PN} = "xfwm4-theme-default"
+FILES_${PN} += "${libdir}/xfce4/xfwm4/helper-dialog \
+ ${datadir}/xfwm4/defaults \
+"