summaryrefslogtreecommitdiffstats
path: root/meta-openembedded/meta-oe/recipes-connectivity
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-connectivity')
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd-CVE-2018-14526.patch44
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.1.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.24.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb)13
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.7.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb)3
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.2.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb)11
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch98
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb)14
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch975
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init89
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service15
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb83
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.1.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.5.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch6
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch8
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch14
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch49
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch143
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch23
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d112
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d.service10
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb42
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch557
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff13
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb5
48 files changed, 872 insertions, 1860 deletions
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 000000000..522fc394b
--- /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 250add875..42aae4279 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 @@ SRC_URI = " \
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.bb b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.1.bb
index f95240f54..11748cbd0 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.1.bb
@@ -14,8 +14,8 @@ DESCRIPTION = "Kerberos is a system for authenticating users and services on a n
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"
+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
@@ -31,8 +31,8 @@ SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
file://krb5-kdc.service \
file://krb5-admin-server.service \
"
-SRC_URI[md5sum] = "23c5e9f07642db4a67f7a5b6168b1319"
-SRC_URI[sha256sum] = "faeb125f83b0fb4cdb2f99f088140631bb47d975982de0956d18c85842969e08"
+SRC_URI[md5sum] = "848e9b80d6aaaa798e3f3df24b83c407"
+SRC_URI[sha256sum] = "214ffe394e3ad0c730564074ec44f1da119159d94281bbec541dc29168d21117"
CVE_PRODUCT = "kerberos"
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 5e0f3a5ed..a5838d368 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 = "http://dist.schmorp.de/libev/Attic/${BP}.tar.gz"
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 9a7895fd4..000000000
--- 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_git.bb
index 32aca96fd..908b98d8c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
@@ -7,17 +7,16 @@ LIC_FILES_CHKSUM = "\
HOMEPAGE ="http://www.libimobiledevice.org/"
-DEPENDS = "libplist usbmuxd libtasn1 gnutls libgcrypt"
+DEPENDS = "libplist usbmuxd libusbmuxd libtasn1 gnutls libgcrypt"
-SRC_URI = " \
- http://www.libimobiledevice.org/downloads/libimobiledevice-${PV}.tar.bz2 \
+SRCREV = "fb71aeef10488ed7b0e60a1c8a553193301428c0"
+PV = "1.2.0+git${SRCPV}"
+SRC_URI = "\
+ git://github.com/libimobiledevice/libimobiledevice;protocol=https \
file://configure-fix-largefile.patch \
- file://inline-without-definition.patch \
"
-SRC_URI[md5sum] = "3f28cbc6a2e30d34685049c0abde5183"
-SRC_URI[sha256sum] = "67499cfaa6172f566ee6b0783605acffe484fb7ddc3b09881ab7ac58667ee5b8"
-
+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.16.0.bb
index f89ef9d57..5260c0f14 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb
@@ -14,5 +14,5 @@ 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"
+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 15aa94e2c..000000000
--- 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.7.bb
index 5148798ab..07a7a1d23 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.7.bb
@@ -4,10 +4,9 @@ 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"
+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 dfc204960..c9913444d 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 = "${SOURCEFORGE_MIRROR}/libnet-dev/${BPN}-${PV}.tar.gz \
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 000000000..d230d6803
--- /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.2.bb
index 9301cbd5e..f0bc81cc9 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.2.bb
@@ -7,12 +7,17 @@ LIC_FILES_CHKSUM = " \
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
"
-DEPENDS = "glib-2.0 libgudev libmbim glib-2.0-native"
+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] = "797e365521df76b77b067e6317618b41"
-SRC_URI[sha256sum] = "21428cd3749c56246565123f707fee51238651a22c60bdc85ebce97388626eb4"
+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 79d4f29fa..8d8867aea 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 @@ cross-compiling. Don't run code while configuring package.
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 92e65289a..b2dffcdb9 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 @@ SRC_URI = "git://github.com/rakshasa/libtorrent \
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.20.3.bb
index ca4685ab3..a11ff9d2c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb
@@ -2,10 +2,10 @@ 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"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
S = "${WORKDIR}/git"
-SRCREV = "7452ef4e06a4f99ee26b694c65476401534f2725"
+SRCREV = "8cfd67e59195251dff793ee47c185c9d6a8f3818"
BRANCH = "v1.x"
SRC_URI = "git://github.com/libuv/libuv.git;protocol=https;branch=${BRANCH};"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb
index 100f3a354..f38414862 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb
@@ -1,12 +1,12 @@
SUMMARY = "Canonical libwebsockets.org websocket library"
HOMEPAGE = "https://libwebsockets.org/"
LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e3393a657830d4a118c5a6ed35ba53d0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4ce87f3facb6f911c142c8bef9bfb380"
DEPENDS = "zlib"
S = "${WORKDIR}/git"
-SRCREV = "73557509bd15f95a1ad081a6f4fab48ff7743215"
+SRCREV = "eaa935a80adb38b5cc4d09ce06ec987b87dcddfa"
SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;"
inherit cmake pkgconfig
@@ -23,5 +23,4 @@ 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/modemmanager/modemmanager/enum-conversion.patch b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch
deleted file mode 100644
index a3fb0f3eb..000000000
--- 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.8.2.bb
index e60cd4b74..dec4b6797 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb
@@ -12,10 +12,10 @@ 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"
+ "
+
+SRC_URI[md5sum] = "a49c9f73e46c7b89e5efedda250d22c0"
+SRC_URI[sha256sum] = "96f2a5f0ed15532b4c4c185b756fdc0326e7c2027cea26a1264f91e098260f80"
S = "${WORKDIR}/ModemManager-${PV}"
@@ -26,10 +26,14 @@ PACKAGECONFIG ??= "mbim qmi polkit \
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"
+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 \
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 a5aa277a0..000000000
--- 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/0002-uthash-remove-in-tree-version.patch b/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
deleted file mode 100644
index c89dfe6be..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
+++ /dev/null
@@ -1,975 +0,0 @@
-From d9aeef8d95a325942cc92f4d72415771d75d904c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
-Date: Tue, 12 Apr 2016 13:05:10 +0100
-Subject: [PATCH 2/2] uthash: remove in-tree version
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We don't need it as we want to use the version provided by
-meta-oe instead.
-
-Upstream-Status: Inappropriate [embedded-specific]
-Signed-off-by: André Draszik <andre.draszik@jci.com>
----
- src/uthash.h | 948 -----------------------------------------------------------
- 1 file changed, 948 deletions(-)
- delete mode 100644 src/uthash.h
-
-diff --git a/src/uthash.h b/src/uthash.h
-deleted file mode 100644
-index 915a825..0000000
---- a/src/uthash.h
-+++ /dev/null
-@@ -1,948 +0,0 @@
--/*
--Copyright (c) 2003-2013, Troy D. Hanson http://troydhanson.github.com/uthash/
--All rights reserved.
--
--Redistribution and use in source and binary forms, with or without
--modification, are permitted provided that the following conditions are met:
--
-- * Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
--
--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
--IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
--TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
--PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
--OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
--EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
--PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
--PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
--LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
--NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--*/
--
--#ifndef UTHASH_H
--#define UTHASH_H
--
--#include <string.h> /* memcmp,strlen */
--#include <stddef.h> /* ptrdiff_t */
--#include <stdlib.h> /* exit() */
--
--/* These macros use decltype or the earlier __typeof GNU extension.
-- As decltype is only available in newer compilers (VS2010 or gcc 4.3+
-- when compiling c++ source) this code uses whatever method is needed
-- or, for VS2008 where neither is available, uses casting workarounds. */
--#ifdef _MSC_VER /* MS compiler */
--#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */
--#define DECLTYPE(x) (decltype(x))
--#else /* VS2008 or older (or VS2010 in C mode) */
--#define NO_DECLTYPE
--#define DECLTYPE(x)
--#endif
--#else /* GNU, Sun and other compilers */
--#define DECLTYPE(x) (__typeof(x))
--#endif
--
--#ifdef NO_DECLTYPE
--#define DECLTYPE_ASSIGN(dst,src) \
--do { \
-- char **_da_dst = (char**)(&(dst)); \
-- *_da_dst = (char*)(src); \
--} while(0)
--#else
--#define DECLTYPE_ASSIGN(dst,src) \
--do { \
-- (dst) = DECLTYPE(dst)(src); \
--} while(0)
--#endif
--
--/* a number of the hash function use uint32_t which isn't defined on win32 */
--#ifdef _MSC_VER
--typedef unsigned int uint32_t;
--typedef unsigned char uint8_t;
--#else
--#include <inttypes.h> /* uint32_t */
--#endif
--
--#define UTHASH_VERSION 1.9.8
--
--#ifndef uthash_fatal
--#define uthash_fatal(msg) exit(-1) /* fatal error (out of memory,etc) */
--#endif
--#ifndef uthash_malloc
--#define uthash_malloc(sz) malloc(sz) /* malloc fcn */
--#endif
--#ifndef uthash_free
--#define uthash_free(ptr,sz) free(ptr) /* free fcn */
--#endif
--
--#ifndef uthash_noexpand_fyi
--#define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */
--#endif
--#ifndef uthash_expand_fyi
--#define uthash_expand_fyi(tbl) /* can be defined to log expands */
--#endif
--
--/* initial number of buckets */
--#define HASH_INITIAL_NUM_BUCKETS 32 /* initial number of buckets */
--#define HASH_INITIAL_NUM_BUCKETS_LOG2 5 /* lg2 of initial number of buckets */
--#define HASH_BKT_CAPACITY_THRESH 10 /* expand when bucket count reaches */
--
--/* calculate the element whose hash handle address is hhe */
--#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho)))
--
--#define HASH_FIND(hh,head,keyptr,keylen,out) \
--do { \
-- unsigned _hf_bkt,_hf_hashv; \
-- out=NULL; \
-- if (head) { \
-- HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \
-- if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) { \
-- HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \
-- keyptr,keylen,out); \
-- } \
-- } \
--} while (0)
--
--#ifdef HASH_BLOOM
--#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM)
--#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0)
--#define HASH_BLOOM_MAKE(tbl) \
--do { \
-- (tbl)->bloom_nbits = HASH_BLOOM; \
-- (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \
-- if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \
-- memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN); \
-- (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \
--} while (0)
--
--#define HASH_BLOOM_FREE(tbl) \
--do { \
-- uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \
--} while (0)
--
--#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8)))
--#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8)))
--
--#define HASH_BLOOM_ADD(tbl,hashv) \
-- HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
--
--#define HASH_BLOOM_TEST(tbl,hashv) \
-- HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
--
--#else
--#define HASH_BLOOM_MAKE(tbl)
--#define HASH_BLOOM_FREE(tbl)
--#define HASH_BLOOM_ADD(tbl,hashv)
--#define HASH_BLOOM_TEST(tbl,hashv) (1)
--#define HASH_BLOOM_BYTELEN 0
--#endif
--
--#define HASH_MAKE_TABLE(hh,head) \
--do { \
-- (head)->hh.tbl = (UT_hash_table*)uthash_malloc( \
-- sizeof(UT_hash_table)); \
-- if (!((head)->hh.tbl)) { uthash_fatal( "out of memory"); } \
-- memset((head)->hh.tbl, 0, sizeof(UT_hash_table)); \
-- (head)->hh.tbl->tail = &((head)->hh); \
-- (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \
-- (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \
-- (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \
-- (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \
-- HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \
-- if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); } \
-- memset((head)->hh.tbl->buckets, 0, \
-- HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \
-- HASH_BLOOM_MAKE((head)->hh.tbl); \
-- (head)->hh.tbl->signature = HASH_SIGNATURE; \
--} while(0)
--
--#define HASH_ADD(hh,head,fieldname,keylen_in,add) \
-- HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add)
--
--#define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced) \
--do { \
-- replaced=NULL; \
-- HASH_FIND(hh,head,&((add)->fieldname),keylen_in,replaced); \
-- if (replaced!=NULL) { \
-- HASH_DELETE(hh,head,replaced); \
-- }; \
-- HASH_ADD(hh,head,fieldname,keylen_in,add); \
--} while(0)
--
--#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \
--do { \
-- unsigned _ha_bkt; \
-- (add)->hh.next = NULL; \
-- (add)->hh.key = (char*)keyptr; \
-- (add)->hh.keylen = (unsigned)keylen_in; \
-- if (!(head)) { \
-- head = (add); \
-- (head)->hh.prev = NULL; \
-- HASH_MAKE_TABLE(hh,head); \
-- } else { \
-- (head)->hh.tbl->tail->next = (add); \
-- (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \
-- (head)->hh.tbl->tail = &((add)->hh); \
-- } \
-- (head)->hh.tbl->num_items++; \
-- (add)->hh.tbl = (head)->hh.tbl; \
-- HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \
-- (add)->hh.hashv, _ha_bkt); \
-- HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); \
-- HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv); \
-- HASH_EMIT_KEY(hh,head,keyptr,keylen_in); \
-- HASH_FSCK(hh,head); \
--} while(0)
--
--#define HASH_TO_BKT( hashv, num_bkts, bkt ) \
--do { \
-- bkt = ((hashv) & ((num_bkts) - 1)); \
--} while(0)
--
--/* delete "delptr" from the hash table.
-- * "the usual" patch-up process for the app-order doubly-linked-list.
-- * The use of _hd_hh_del below deserves special explanation.
-- * These used to be expressed using (delptr) but that led to a bug
-- * if someone used the same symbol for the head and deletee, like
-- * HASH_DELETE(hh,users,users);
-- * We want that to work, but by changing the head (users) below
-- * we were forfeiting our ability to further refer to the deletee (users)
-- * in the patch-up process. Solution: use scratch space to
-- * copy the deletee pointer, then the latter references are via that
-- * scratch pointer rather than through the repointed (users) symbol.
-- */
--#define HASH_DELETE(hh,head,delptr) \
--do { \
-- unsigned _hd_bkt; \
-- struct UT_hash_handle *_hd_hh_del; \
-- if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) ) { \
-- uthash_free((head)->hh.tbl->buckets, \
-- (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
-- HASH_BLOOM_FREE((head)->hh.tbl); \
-- uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \
-- head = NULL; \
-- } else { \
-- _hd_hh_del = &((delptr)->hh); \
-- if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) { \
-- (head)->hh.tbl->tail = \
-- (UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \
-- (head)->hh.tbl->hho); \
-- } \
-- if ((delptr)->hh.prev) { \
-- ((UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \
-- (head)->hh.tbl->hho))->next = (delptr)->hh.next; \
-- } else { \
-- DECLTYPE_ASSIGN(head,(delptr)->hh.next); \
-- } \
-- if (_hd_hh_del->next) { \
-- ((UT_hash_handle*)((ptrdiff_t)_hd_hh_del->next + \
-- (head)->hh.tbl->hho))->prev = \
-- _hd_hh_del->prev; \
-- } \
-- HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \
-- HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \
-- (head)->hh.tbl->num_items--; \
-- } \
-- HASH_FSCK(hh,head); \
--} while (0)
--
--
--/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */
--#define HASH_FIND_STR(head,findstr,out) \
-- HASH_FIND(hh,head,findstr,strlen(findstr),out)
--#define HASH_ADD_STR(head,strfield,add) \
-- HASH_ADD(hh,head,strfield,strlen(add->strfield),add)
--#define HASH_REPLACE_STR(head,strfield,add,replaced) \
-- HASH_REPLACE(hh,head,strfield,strlen(add->strfield),add,replaced)
--#define HASH_FIND_INT(head,findint,out) \
-- HASH_FIND(hh,head,findint,sizeof(int),out)
--#define HASH_ADD_INT(head,intfield,add) \
-- HASH_ADD(hh,head,intfield,sizeof(int),add)
--#define HASH_REPLACE_INT(head,intfield,add,replaced) \
-- HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced)
--#define HASH_FIND_PTR(head,findptr,out) \
-- HASH_FIND(hh,head,findptr,sizeof(void *),out)
--#define HASH_ADD_PTR(head,ptrfield,add) \
-- HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
--#define HASH_REPLACE_PTR(head,ptrfield,add) \
-- HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced)
--#define HASH_DEL(head,delptr) \
-- HASH_DELETE(hh,head,delptr)
--
--/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined.
-- * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined.
-- */
--#ifdef HASH_DEBUG
--#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0)
--#define HASH_FSCK(hh,head) \
--do { \
-- unsigned _bkt_i; \
-- unsigned _count, _bkt_count; \
-- char *_prev; \
-- struct UT_hash_handle *_thh; \
-- if (head) { \
-- _count = 0; \
-- for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) { \
-- _bkt_count = 0; \
-- _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \
-- _prev = NULL; \
-- while (_thh) { \
-- if (_prev != (char*)(_thh->hh_prev)) { \
-- HASH_OOPS("invalid hh_prev %p, actual %p\n", \
-- _thh->hh_prev, _prev ); \
-- } \
-- _bkt_count++; \
-- _prev = (char*)(_thh); \
-- _thh = _thh->hh_next; \
-- } \
-- _count += _bkt_count; \
-- if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \
-- HASH_OOPS("invalid bucket count %d, actual %d\n", \
-- (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \
-- } \
-- } \
-- if (_count != (head)->hh.tbl->num_items) { \
-- HASH_OOPS("invalid hh item count %d, actual %d\n", \
-- (head)->hh.tbl->num_items, _count ); \
-- } \
-- /* traverse hh in app order; check next/prev integrity, count */ \
-- _count = 0; \
-- _prev = NULL; \
-- _thh = &(head)->hh; \
-- while (_thh) { \
-- _count++; \
-- if (_prev !=(char*)(_thh->prev)) { \
-- HASH_OOPS("invalid prev %p, actual %p\n", \
-- _thh->prev, _prev ); \
-- } \
-- _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \
-- _thh = ( _thh->next ? (UT_hash_handle*)((char*)(_thh->next) + \
-- (head)->hh.tbl->hho) : NULL ); \
-- } \
-- if (_count != (head)->hh.tbl->num_items) { \
-- HASH_OOPS("invalid app item count %d, actual %d\n", \
-- (head)->hh.tbl->num_items, _count ); \
-- } \
-- } \
--} while (0)
--#else
--#define HASH_FSCK(hh,head)
--#endif
--
--/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to
-- * the descriptor to which this macro is defined for tuning the hash function.
-- * The app can #include <unistd.h> to get the prototype for write(2). */
--#ifdef HASH_EMIT_KEYS
--#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \
--do { \
-- unsigned _klen = fieldlen; \
-- write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \
-- write(HASH_EMIT_KEYS, keyptr, fieldlen); \
--} while (0)
--#else
--#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)
--#endif
--
--/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */
--#ifdef HASH_FUNCTION
--#define HASH_FCN HASH_FUNCTION
--#else
--#define HASH_FCN HASH_JEN
--#endif
--
--/* The Bernstein hash function, used in Perl prior to v5.6 */
--#define HASH_BER(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _hb_keylen=keylen; \
-- char *_hb_key=(char*)(key); \
-- (hashv) = 0; \
-- while (_hb_keylen--) { (hashv) = ((hashv) * 33) + *_hb_key++; } \
-- bkt = (hashv) & (num_bkts-1); \
--} while (0)
--
--
--/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at
-- * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */
--#define HASH_SAX(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _sx_i; \
-- char *_hs_key=(char*)(key); \
-- hashv = 0; \
-- for(_sx_i=0; _sx_i < keylen; _sx_i++) \
-- hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \
-- bkt = hashv & (num_bkts-1); \
--} while (0)
--
--#define HASH_FNV(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _fn_i; \
-- char *_hf_key=(char*)(key); \
-- hashv = 2166136261UL; \
-- for(_fn_i=0; _fn_i < keylen; _fn_i++) \
-- hashv = (hashv * 16777619) ^ _hf_key[_fn_i]; \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--
--#define HASH_OAT(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _ho_i; \
-- char *_ho_key=(char*)(key); \
-- hashv = 0; \
-- for(_ho_i=0; _ho_i < keylen; _ho_i++) { \
-- hashv += _ho_key[_ho_i]; \
-- hashv += (hashv << 10); \
-- hashv ^= (hashv >> 6); \
-- } \
-- hashv += (hashv << 3); \
-- hashv ^= (hashv >> 11); \
-- hashv += (hashv << 15); \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--
--#define HASH_JEN_MIX(a,b,c) \
--do { \
-- a -= b; a -= c; a ^= ( c >> 13 ); \
-- b -= c; b -= a; b ^= ( a << 8 ); \
-- c -= a; c -= b; c ^= ( b >> 13 ); \
-- a -= b; a -= c; a ^= ( c >> 12 ); \
-- b -= c; b -= a; b ^= ( a << 16 ); \
-- c -= a; c -= b; c ^= ( b >> 5 ); \
-- a -= b; a -= c; a ^= ( c >> 3 ); \
-- b -= c; b -= a; b ^= ( a << 10 ); \
-- c -= a; c -= b; c ^= ( b >> 15 ); \
--} while (0)
--
--#define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _hj_i,_hj_j,_hj_k; \
-- unsigned char *_hj_key=(unsigned char*)(key); \
-- hashv = 0xfeedbeef; \
-- _hj_i = _hj_j = 0x9e3779b9; \
-- _hj_k = (unsigned)keylen; \
-- while (_hj_k >= 12) { \
-- _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \
-- + ( (unsigned)_hj_key[2] << 16 ) \
-- + ( (unsigned)_hj_key[3] << 24 ) ); \
-- _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \
-- + ( (unsigned)_hj_key[6] << 16 ) \
-- + ( (unsigned)_hj_key[7] << 24 ) ); \
-- hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \
-- + ( (unsigned)_hj_key[10] << 16 ) \
-- + ( (unsigned)_hj_key[11] << 24 ) ); \
-- \
-- HASH_JEN_MIX(_hj_i, _hj_j, hashv); \
-- \
-- _hj_key += 12; \
-- _hj_k -= 12; \
-- } \
-- hashv += keylen; \
-- switch ( _hj_k ) { \
-- case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \
-- case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \
-- case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \
-- case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \
-- case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \
-- case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \
-- case 5: _hj_j += _hj_key[4]; \
-- case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \
-- case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \
-- case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \
-- case 1: _hj_i += _hj_key[0]; \
-- } \
-- HASH_JEN_MIX(_hj_i, _hj_j, hashv); \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--
--/* The Paul Hsieh hash function */
--#undef get16bits
--#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \
-- || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
--#define get16bits(d) (*((const uint16_t *) (d)))
--#endif
--
--#if !defined (get16bits)
--#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \
-- +(uint32_t)(((const uint8_t *)(d))[0]) )
--#endif
--#define HASH_SFH(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned char *_sfh_key=(unsigned char*)(key); \
-- uint32_t _sfh_tmp, _sfh_len = keylen; \
-- \
-- int _sfh_rem = _sfh_len & 3; \
-- _sfh_len >>= 2; \
-- hashv = 0xcafebabe; \
-- \
-- /* Main loop */ \
-- for (;_sfh_len > 0; _sfh_len--) { \
-- hashv += get16bits (_sfh_key); \
-- _sfh_tmp = (uint32_t)(get16bits (_sfh_key+2)) << 11 ^ hashv; \
-- hashv = (hashv << 16) ^ _sfh_tmp; \
-- _sfh_key += 2*sizeof (uint16_t); \
-- hashv += hashv >> 11; \
-- } \
-- \
-- /* Handle end cases */ \
-- switch (_sfh_rem) { \
-- case 3: hashv += get16bits (_sfh_key); \
-- hashv ^= hashv << 16; \
-- hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)] << 18); \
-- hashv += hashv >> 11; \
-- break; \
-- case 2: hashv += get16bits (_sfh_key); \
-- hashv ^= hashv << 11; \
-- hashv += hashv >> 17; \
-- break; \
-- case 1: hashv += *_sfh_key; \
-- hashv ^= hashv << 10; \
-- hashv += hashv >> 1; \
-- } \
-- \
-- /* Force "avalanching" of final 127 bits */ \
-- hashv ^= hashv << 3; \
-- hashv += hashv >> 5; \
-- hashv ^= hashv << 4; \
-- hashv += hashv >> 17; \
-- hashv ^= hashv << 25; \
-- hashv += hashv >> 6; \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--
--#ifdef HASH_USING_NO_STRICT_ALIASING
--/* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads.
-- * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error.
-- * MurmurHash uses the faster approach only on CPU's where we know it's safe.
-- *
-- * Note the preprocessor built-in defines can be emitted using:
-- *
-- * gcc -m64 -dM -E - < /dev/null (on gcc)
-- * cc -## a.c (where a.c is a simple test file) (Sun Studio)
-- */
--#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86))
--#define MUR_GETBLOCK(p,i) p[i]
--#else /* non intel */
--#define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0)
--#define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1)
--#define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2)
--#define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3)
--#define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL))
--#if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__))
--#define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24))
--#define MUR_TWO_TWO(p) ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16))
--#define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >> 8))
--#else /* assume little endian non-intel */
--#define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24))
--#define MUR_TWO_TWO(p) ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16))
--#define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) << 8))
--#endif
--#define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) : \
-- (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \
-- (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) : \
-- MUR_ONE_THREE(p))))
--#endif
--#define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r))))
--#define MUR_FMIX(_h) \
--do { \
-- _h ^= _h >> 16; \
-- _h *= 0x85ebca6b; \
-- _h ^= _h >> 13; \
-- _h *= 0xc2b2ae35l; \
-- _h ^= _h >> 16; \
--} while(0)
--
--#define HASH_MUR(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- const uint8_t *_mur_data = (const uint8_t*)(key); \
-- const int _mur_nblocks = (keylen) / 4; \
-- uint32_t _mur_h1 = 0xf88D5353; \
-- uint32_t _mur_c1 = 0xcc9e2d51; \
-- uint32_t _mur_c2 = 0x1b873593; \
-- uint32_t _mur_k1 = 0; \
-- const uint8_t *_mur_tail; \
-- const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \
-- int _mur_i; \
-- for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) { \
-- _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i); \
-- _mur_k1 *= _mur_c1; \
-- _mur_k1 = MUR_ROTL32(_mur_k1,15); \
-- _mur_k1 *= _mur_c2; \
-- \
-- _mur_h1 ^= _mur_k1; \
-- _mur_h1 = MUR_ROTL32(_mur_h1,13); \
-- _mur_h1 = _mur_h1*5+0xe6546b64; \
-- } \
-- _mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4); \
-- _mur_k1=0; \
-- switch((keylen) & 3) { \
-- case 3: _mur_k1 ^= _mur_tail[2] << 16; \
-- case 2: _mur_k1 ^= _mur_tail[1] << 8; \
-- case 1: _mur_k1 ^= _mur_tail[0]; \
-- _mur_k1 *= _mur_c1; \
-- _mur_k1 = MUR_ROTL32(_mur_k1,15); \
-- _mur_k1 *= _mur_c2; \
-- _mur_h1 ^= _mur_k1; \
-- } \
-- _mur_h1 ^= (keylen); \
-- MUR_FMIX(_mur_h1); \
-- hashv = _mur_h1; \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--#endif /* HASH_USING_NO_STRICT_ALIASING */
--
--/* key comparison function; return 0 if keys equal */
--#define HASH_KEYCMP(a,b,len) memcmp(a,b,len)
--
--/* iterate over items in a known bucket to find desired item */
--#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \
--do { \
-- if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head)); \
-- else out=NULL; \
-- while (out) { \
-- if ((out)->hh.keylen == keylen_in) { \
-- if ((HASH_KEYCMP((out)->hh.key,keyptr,keylen_in)) == 0) break; \
-- } \
-- if ((out)->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,(out)->hh.hh_next)); \
-- else out = NULL; \
-- } \
--} while(0)
--
--/* add an item to a bucket */
--#define HASH_ADD_TO_BKT(head,addhh) \
--do { \
-- head.count++; \
-- (addhh)->hh_next = head.hh_head; \
-- (addhh)->hh_prev = NULL; \
-- if (head.hh_head) { (head).hh_head->hh_prev = (addhh); } \
-- (head).hh_head=addhh; \
-- if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH) \
-- && (addhh)->tbl->noexpand != 1) { \
-- HASH_EXPAND_BUCKETS((addhh)->tbl); \
-- } \
--} while(0)
--
--/* remove an item from a given bucket */
--#define HASH_DEL_IN_BKT(hh,head,hh_del) \
-- (head).count--; \
-- if ((head).hh_head == hh_del) { \
-- (head).hh_head = hh_del->hh_next; \
-- } \
-- if (hh_del->hh_prev) { \
-- hh_del->hh_prev->hh_next = hh_del->hh_next; \
-- } \
-- if (hh_del->hh_next) { \
-- hh_del->hh_next->hh_prev = hh_del->hh_prev; \
-- }
--
--/* Bucket expansion has the effect of doubling the number of buckets
-- * and redistributing the items into the new buckets. Ideally the
-- * items will distribute more or less evenly into the new buckets
-- * (the extent to which this is true is a measure of the quality of
-- * the hash function as it applies to the key domain).
-- *
-- * With the items distributed into more buckets, the chain length
-- * (item count) in each bucket is reduced. Thus by expanding buckets
-- * the hash keeps a bound on the chain length. This bounded chain
-- * length is the essence of how a hash provides constant time lookup.
-- *
-- * The calculation of tbl->ideal_chain_maxlen below deserves some
-- * explanation. First, keep in mind that we're calculating the ideal
-- * maximum chain length based on the *new* (doubled) bucket count.
-- * In fractions this is just n/b (n=number of items,b=new num buckets).
-- * Since the ideal chain length is an integer, we want to calculate
-- * ceil(n/b). We don't depend on floating point arithmetic in this
-- * hash, so to calculate ceil(n/b) with integers we could write
-- *
-- * ceil(n/b) = (n/b) + ((n%b)?1:0)
-- *
-- * and in fact a previous version of this hash did just that.
-- * But now we have improved things a bit by recognizing that b is
-- * always a power of two. We keep its base 2 log handy (call it lb),
-- * so now we can write this with a bit shift and logical AND:
-- *
-- * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0)
-- *
-- */
--#define HASH_EXPAND_BUCKETS(tbl) \
--do { \
-- unsigned _he_bkt; \
-- unsigned _he_bkt_i; \
-- struct UT_hash_handle *_he_thh, *_he_hh_nxt; \
-- UT_hash_bucket *_he_new_buckets, *_he_newbkt; \
-- _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \
-- 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \
-- if (!_he_new_buckets) { uthash_fatal( "out of memory"); } \
-- memset(_he_new_buckets, 0, \
-- 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \
-- tbl->ideal_chain_maxlen = \
-- (tbl->num_items >> (tbl->log2_num_buckets+1)) + \
-- ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0); \
-- tbl->nonideal_items = 0; \
-- for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++) \
-- { \
-- _he_thh = tbl->buckets[ _he_bkt_i ].hh_head; \
-- while (_he_thh) { \
-- _he_hh_nxt = _he_thh->hh_next; \
-- HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt); \
-- _he_newbkt = &(_he_new_buckets[ _he_bkt ]); \
-- if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) { \
-- tbl->nonideal_items++; \
-- _he_newbkt->expand_mult = _he_newbkt->count / \
-- tbl->ideal_chain_maxlen; \
-- } \
-- _he_thh->hh_prev = NULL; \
-- _he_thh->hh_next = _he_newbkt->hh_head; \
-- if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev = \
-- _he_thh; \
-- _he_newbkt->hh_head = _he_thh; \
-- _he_thh = _he_hh_nxt; \
-- } \
-- } \
-- uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
-- tbl->num_buckets *= 2; \
-- tbl->log2_num_buckets++; \
-- tbl->buckets = _he_new_buckets; \
-- tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ? \
-- (tbl->ineff_expands+1) : 0; \
-- if (tbl->ineff_expands > 1) { \
-- tbl->noexpand=1; \
-- uthash_noexpand_fyi(tbl); \
-- } \
-- uthash_expand_fyi(tbl); \
--} while(0)
--
--
--/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */
--/* Note that HASH_SORT assumes the hash handle name to be hh.
-- * HASH_SRT was added to allow the hash handle name to be passed in. */
--#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn)
--#define HASH_SRT(hh,head,cmpfcn) \
--do { \
-- unsigned _hs_i; \
-- unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \
-- struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \
-- if (head) { \
-- _hs_insize = 1; \
-- _hs_looping = 1; \
-- _hs_list = &((head)->hh); \
-- while (_hs_looping) { \
-- _hs_p = _hs_list; \
-- _hs_list = NULL; \
-- _hs_tail = NULL; \
-- _hs_nmerges = 0; \
-- while (_hs_p) { \
-- _hs_nmerges++; \
-- _hs_q = _hs_p; \
-- _hs_psize = 0; \
-- for ( _hs_i = 0; _hs_i < _hs_insize; _hs_i++ ) { \
-- _hs_psize++; \
-- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
-- ((void*)((char*)(_hs_q->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- if (! (_hs_q) ) break; \
-- } \
-- _hs_qsize = _hs_insize; \
-- while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) { \
-- if (_hs_psize == 0) { \
-- _hs_e = _hs_q; \
-- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
-- ((void*)((char*)(_hs_q->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- _hs_qsize--; \
-- } else if ( (_hs_qsize == 0) || !(_hs_q) ) { \
-- _hs_e = _hs_p; \
-- if (_hs_p){ \
-- _hs_p = (UT_hash_handle*)((_hs_p->next) ? \
-- ((void*)((char*)(_hs_p->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- } \
-- _hs_psize--; \
-- } else if (( \
-- cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \
-- DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \
-- ) <= 0) { \
-- _hs_e = _hs_p; \
-- if (_hs_p){ \
-- _hs_p = (UT_hash_handle*)((_hs_p->next) ? \
-- ((void*)((char*)(_hs_p->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- } \
-- _hs_psize--; \
-- } else { \
-- _hs_e = _hs_q; \
-- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
-- ((void*)((char*)(_hs_q->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- _hs_qsize--; \
-- } \
-- if ( _hs_tail ) { \
-- _hs_tail->next = ((_hs_e) ? \
-- ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL); \
-- } else { \
-- _hs_list = _hs_e; \
-- } \
-- if (_hs_e) { \
-- _hs_e->prev = ((_hs_tail) ? \
-- ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL); \
-- } \
-- _hs_tail = _hs_e; \
-- } \
-- _hs_p = _hs_q; \
-- } \
-- if (_hs_tail){ \
-- _hs_tail->next = NULL; \
-- } \
-- if ( _hs_nmerges <= 1 ) { \
-- _hs_looping=0; \
-- (head)->hh.tbl->tail = _hs_tail; \
-- DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \
-- } \
-- _hs_insize *= 2; \
-- } \
-- HASH_FSCK(hh,head); \
-- } \
--} while (0)
--
--/* This function selects items from one hash into another hash.
-- * The end result is that the selected items have dual presence
-- * in both hashes. There is no copy of the items made; rather
-- * they are added into the new hash through a secondary hash
-- * hash handle that must be present in the structure. */
--#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \
--do { \
-- unsigned _src_bkt, _dst_bkt; \
-- void *_last_elt=NULL, *_elt; \
-- UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \
-- ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \
-- if (src) { \
-- for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \
-- for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \
-- _src_hh; \
-- _src_hh = _src_hh->hh_next) { \
-- _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \
-- if (cond(_elt)) { \
-- _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho); \
-- _dst_hh->key = _src_hh->key; \
-- _dst_hh->keylen = _src_hh->keylen; \
-- _dst_hh->hashv = _src_hh->hashv; \
-- _dst_hh->prev = _last_elt; \
-- _dst_hh->next = NULL; \
-- if (_last_elt_hh) { _last_elt_hh->next = _elt; } \
-- if (!dst) { \
-- DECLTYPE_ASSIGN(dst,_elt); \
-- HASH_MAKE_TABLE(hh_dst,dst); \
-- } else { \
-- _dst_hh->tbl = (dst)->hh_dst.tbl; \
-- } \
-- HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \
-- HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh); \
-- (dst)->hh_dst.tbl->num_items++; \
-- _last_elt = _elt; \
-- _last_elt_hh = _dst_hh; \
-- } \
-- } \
-- } \
-- } \
-- HASH_FSCK(hh_dst,dst); \
--} while (0)
--
--#define HASH_CLEAR(hh,head) \
--do { \
-- if (head) { \
-- uthash_free((head)->hh.tbl->buckets, \
-- (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \
-- HASH_BLOOM_FREE((head)->hh.tbl); \
-- uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \
-- (head)=NULL; \
-- } \
--} while(0)
--
--#define HASH_OVERHEAD(hh,head) \
-- (size_t)((((head)->hh.tbl->num_items * sizeof(UT_hash_handle)) + \
-- ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket)) + \
-- (sizeof(UT_hash_table)) + \
-- (HASH_BLOOM_BYTELEN)))
--
--#ifdef NO_DECLTYPE
--#define HASH_ITER(hh,head,el,tmp) \
--for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \
-- el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL))
--#else
--#define HASH_ITER(hh,head,el,tmp) \
--for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \
-- el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL))
--#endif
--
--/* obtain a count of items in the hash */
--#define HASH_COUNT(head) HASH_CNT(hh,head)
--#define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0)
--
--typedef struct UT_hash_bucket {
-- struct UT_hash_handle *hh_head;
-- unsigned count;
--
-- /* expand_mult is normally set to 0. In this situation, the max chain length
-- * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If
-- * the bucket's chain exceeds this length, bucket expansion is triggered).
-- * However, setting expand_mult to a non-zero value delays bucket expansion
-- * (that would be triggered by additions to this particular bucket)
-- * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH.
-- * (The multiplier is simply expand_mult+1). The whole idea of this
-- * multiplier is to reduce bucket expansions, since they are expensive, in
-- * situations where we know that a particular bucket tends to be overused.
-- * It is better to let its chain length grow to a longer yet-still-bounded
-- * value, than to do an O(n) bucket expansion too often.
-- */
-- unsigned expand_mult;
--
--} UT_hash_bucket;
--
--/* random signature used only to find hash tables in external analysis */
--#define HASH_SIGNATURE 0xa0111fe1
--#define HASH_BLOOM_SIGNATURE 0xb12220f2
--
--typedef struct UT_hash_table {
-- UT_hash_bucket *buckets;
-- unsigned num_buckets, log2_num_buckets;
-- unsigned num_items;
-- struct UT_hash_handle *tail; /* tail hh in app order, for fast append */
-- ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */
--
-- /* in an ideal situation (all buckets used equally), no bucket would have
-- * more than ceil(#items/#buckets) items. that's the ideal chain length. */
-- unsigned ideal_chain_maxlen;
--
-- /* nonideal_items is the number of items in the hash whose chain position
-- * exceeds the ideal chain maxlen. these items pay the penalty for an uneven
-- * hash distribution; reaching them in a chain traversal takes >ideal steps */
-- unsigned nonideal_items;
--
-- /* ineffective expands occur when a bucket doubling was performed, but
-- * afterward, more than half the items in the hash had nonideal chain
-- * positions. If this happens on two consecutive expansions we inhibit any
-- * further expansion, as it's not helping; this happens when the hash
-- * function isn't a good fit for the key domain. When expansion is inhibited
-- * the hash will still work, albeit no longer in constant time. */
-- unsigned ineff_expands, noexpand;
--
-- uint32_t signature; /* used only to find hash tables in external analysis */
--#ifdef HASH_BLOOM
-- uint32_t bloom_sig; /* used only to test bloom exists in external analysis */
-- uint8_t *bloom_bv;
-- char bloom_nbits;
--#endif
--
--} UT_hash_table;
--
--typedef struct UT_hash_handle {
-- struct UT_hash_table *tbl;
-- void *prev; /* prev element in app order */
-- void *next; /* next element in app order */
-- struct UT_hash_handle *hh_prev; /* previous hh in bucket order */
-- struct UT_hash_handle *hh_next; /* next hh in bucket order */
-- void *key; /* ptr to enclosing struct's key */
-- unsigned keylen; /* enclosing struct's key len */
-- unsigned hashv; /* result of hash-fcn(key) */
--} UT_hash_handle;
--
--#endif /* UTHASH_H */
---
-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 d2a27b273..000000000
--- 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 25f68fae0..000000000
--- 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 13ce3811d..000000000
--- 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 1b56685c5..3fb8cb190 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 @@ DESCRIPTION = "The Openobex project is an open source implementation of the \
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 @@ do_install_append () {
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.1.bb
index fec380ce6..a7a9b5a6c 100644
--- 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.1.bb
@@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = " \
SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http"
-SRCREV = "e8d34da24ad807f5e698b327d67591fd4b4bfa7e"
+SRCREV = "09fe0744e02f317b907e96dd5afcc02224ddbb85"
DEPENDS = "openssl"
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 c731cf707..9bb81c409 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 @@ DEPENDS = "libsigc++-2.0 curl cppunit libtorrent ncurses"
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.5.bb
index 708650fb9..f64776c56 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.5.bb
@@ -7,8 +7,8 @@ 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"
+SRC_URI[md5sum] = "e10e7c8c97e5bade5e85ce6e89bdf1f4"
+SRC_URI[sha256sum] = "ba9e1d60a89fd7ed075553b4a2074352902203f7fbd9b65b15048c05f0e3f3be"
inherit autotools pkgconfig
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 fcc2f0821..a77cd284b 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 @@ index 62e240f..f8b4493 100644
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 7cc8d1739..182eacc0e 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 @@ string).
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 @@ index 2b0c143..5ecae17 100644
#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 f13adbb6b..37715c281 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 @@ Subject: [PATCH 2/2] THRIFT-3831 in test/cpp explicitly use `signed char`
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 @@ index e709899..4a961f8 100644
= {-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 @@ index e709899..4a961f8 100644
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 000000000..500cfab62
--- /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 000000000..f4482b109
--- /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 000000000..dfaa2fbda
--- /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 aa9328371..7ab74026b 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 @@ SRC_URI = "http://mirror.switch.ch/mirror/apache/dist/thrift/${PV}/${BPN}-${PV}.
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-Add-format-string-to-fprintf-call.patch b/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch
deleted file mode 100644
index 8e5f4da36..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a0ad5128d14b022239445e251cf4a9826e86aa96 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 07:48:31 -0700
-Subject: [PATCH] Add format string to fprintf() call
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/vt.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/vt.c b/src/vt.c
-index 795d393..a533d3d 100644
---- a/src/vt.c
-+++ b/src/vt.c
-@@ -499,7 +499,7 @@ static int vt_cmd_dump_candidates(const struct vt_handle *vh,
- }
- llen += cmdlen;
-
-- ret = fprintf(vh->vh_stream, e->cmd);
-+ ret = fprintf(vh->vh_stream, "%s", e->cmd);
- if (ret < 0)
- return ret;
-
---
-2.13.2
-
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 8192056d1..000000000
--- 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/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch b/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
deleted file mode 100644
index 90d12da14..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 19b6cf8099e1974b5fc39086fc54103b0cbc2658 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Mar 2018 23:01:25 -0800
-Subject: [PATCH 2/2] replace PTHREAD_MUTEX_FAST_NP with PTHREAD_MUTEX_NORMAL
-
-PTHREAD_MUTEX_FAST_NP is not available on non-posix systems
-e.g. musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/ha.c | 2 +-
- src/icmp6.c | 2 +-
- src/mh.c | 2 +-
- src/mn.c | 2 +-
- src/movement.c | 2 +-
- src/mpdisc_ha.c | 2 +-
- src/mpdisc_mn.c | 2 +-
- src/tqueue.c | 2 +-
- src/tunnelctl.c | 2 +-
- 9 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/src/ha.c b/src/ha.c
-index fbdcff0..b2f811e 100644
---- a/src/ha.c
-+++ b/src/ha.c
-@@ -1246,7 +1246,7 @@ int ha_init(void)
- {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&bu_worker_mutex, &mattrs) ||
- pthread_cond_init(&cond, NULL))
- return -1;
-diff --git a/src/icmp6.c b/src/icmp6.c
-index 3695135..6460634 100644
---- a/src/icmp6.c
-+++ b/src/icmp6.c
-@@ -243,7 +243,7 @@ int icmp6_init(void)
- return -1;
- /* create ICMP listener thread */
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&icmp6_sock.send_mutex, &mattrs) ||
- pthread_rwlock_init(&handler_lock, NULL) ||
- pthread_create(&icmp6_listener, NULL, icmp6_listen, NULL))
-diff --git a/src/mh.c b/src/mh.c
-index 60e345e..7928f4c 100644
---- a/src/mh.c
-+++ b/src/mh.c
-@@ -204,7 +204,7 @@ int mh_init(void)
- return -1;
-
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&mh_sock.send_mutex, &mattrs) ||
- pthread_rwlock_init(&handler_lock, NULL) ||
- pthread_create(&mh_listener, NULL, mh_listen, NULL))
-diff --git a/src/mn.c b/src/mn.c
-index 092cfcb..8f7f448 100644
---- a/src/mn.c
-+++ b/src/mn.c
-@@ -1478,7 +1478,7 @@ static struct home_addr_info *hai_copy(struct home_addr_info *conf_hai)
- if (hai != NULL) {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
-
- memcpy(hai, conf_hai, sizeof(struct home_addr_info));
-
-diff --git a/src/movement.c b/src/movement.c
-index d985937..6400448 100644
---- a/src/movement.c
-+++ b/src/movement.c
-@@ -2013,7 +2013,7 @@ int md_init(void)
- int val;
-
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&iface_lock, &mattrs))
- return -1;
-
-diff --git a/src/mpdisc_ha.c b/src/mpdisc_ha.c
-index 40ba05f..fd7a90d 100644
---- a/src/mpdisc_ha.c
-+++ b/src/mpdisc_ha.c
-@@ -559,7 +559,7 @@ int mpd_ha_init(void)
- {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&mpa_lock, &mattrs) ||
- pthread_rwlock_init(&prefix_lock, NULL) ||
- hash_init(&mpa_hash, DOUBLE_ADDR, MPA_BUCKETS) < 0)
-diff --git a/src/mpdisc_mn.c b/src/mpdisc_mn.c
-index 4873bd6..ada02bd 100644
---- a/src/mpdisc_mn.c
-+++ b/src/mpdisc_mn.c
-@@ -267,7 +267,7 @@ int mpd_mn_init(void)
- {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&mps_lock, &mattrs))
- return -1;
- if (hash_init(&mps_hash, DOUBLE_ADDR, MPS_BUCKETS) < 0)
-diff --git a/src/tqueue.c b/src/tqueue.c
-index 2f7aa0b..9c185b8 100644
---- a/src/tqueue.c
-+++ b/src/tqueue.c
-@@ -65,7 +65,7 @@ int taskqueue_init(void)
- {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&mutex, &mattrs) ||
- pthread_cond_init(&cond, NULL) ||
- pthread_create(&tq_runner, NULL, runner, NULL))
-diff --git a/src/tunnelctl.c b/src/tunnelctl.c
-index 23fc20b..813b8ec 100644
---- a/src/tunnelctl.c
-+++ b/src/tunnelctl.c
-@@ -433,7 +433,7 @@ int tunnelctl_init(void)
- return -1;
-
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&tnl_lock, &mattrs))
- return -1;
-
---
-2.16.2
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch b/meta-openembedded/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch
deleted file mode 100644
index dbf008264..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-When "make -j10", the compilation will fail,
-because scan.c has included gram.h, but gram.h was produced
-after scan.c was compiled
-
-So add this dependency to ensure that gram.h is produced
-before scan.c is produced.
-
-Upstream-Status: Inappropriate [upstream is not active]
-
-Signed-off-by: Roy.Li <RongQing.Li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- src/Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -81,3 +81,5 @@ CLEANFILES = gram.c gram.h \
-
- DISTCLEANFILES = $(BUILT_SOURCES)
- MAINTAINERCLEANFILES = Makefile.in
-+
-+scan.c: gram.h
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d b/meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d
deleted file mode 100755
index ebd70a6cc..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/bin/sh
-#
-# mip6d Start script for the Mobile IPv6 daemon
-#
-# chkconfig: - 55 25
-# description: The mobile IPv6 daemon allows nodes to remain \
-# reachable while moving around in the IPv6 Internet.
-# processname: mip6d
-# config: /etc/mip6d.conf
-# config: /etc/sysconfig/mip6d
-#
-### BEGIN INIT INFO
-# Provides: mipv6-daemon
-# Required-Start: $local_fs $remote_fs $network $named
-# Required-Stop: $local_fs $remote_fs $network
-# Should-Start: $syslog
-# Should-Stop: $network $syslog
-# Default-Start:
-# Default-Stop: 0 1 6
-# Short-Description: Start and stop Mobile IPV6 daemon
-# Description: The mobile IPv6 daemon allows nodes to remain
-# reachable while moving around in the IPv6 Internet.
-### END INIT INFO
-
-# Source function library.
-. /etc/init.d/functions
-
-if [ -f /etc/sysconfig/mip6d ]; then
- . /etc/sysconfig/mip6d
-fi
-
-mip6d=/usr/sbin/mip6d
-prog="mip6d"
-lockfile=/var/lock/subsys/$prog
-
-start() {
- [ -x $mip6d ] || exit 5
- echo -n $"Starting $prog: "
- start-stop-daemon -S -x ${mip6d} && success || failure
- retval=$?
- echo
- [ $retval -eq 0 ] && touch ${lockfile}
- return $retval
-}
-
-stop() {
- echo -n $"Stopping $prog: "
- start-stop-daemon -K -x $mip6d
- retval=$?
- echo
- [ $retval -eq 0 ] && rm -f ${lockfile}
- return $retval
-}
-
-restart() {
- stop
- start
-}
-
-reload()
-{
- echo -n $"Reloading $prog configuration: "
- killproc $mip6d -HUP
- retval=$?
- echo
- return $retval
-}
-
-force_reload() {
- restart
-}
-
-rh_status() {
- status $prog
-}
-
-rh_status_q() {
- rh_status > /dev/null 2>&1
-}
-
-case "$1" in
- start)
- rh_status_q && exit 0
- $1
- ;;
- stop)
- rh_status_q || exit 0
- $1
- ;;
- restart)
- $1
- ;;
- reload)
- rh_status_q || exit 7
- $1
- ;;
- force-reload)
- force_reload
- ;;
- status)
- rh_status
- ;;
- condrestart|try-restart)
- rh_status_q || exit 0
- restart
- ;;
- *)
- echo $"Usage: $prog {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
- exit 2
-esac
-
-exit $?
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d.service b/meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d.service
deleted file mode 100644
index 2b5a5b9f1..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/umip/files/mip6d.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=MIPL Mobile IPv6
-After=network.target
-
-[Service]
-EnvironmentFile=-@SYSCONFDIR@/sysconfig/mip6d
-ExecStart=@SBINDIR@/mip6d $ARGS
-
-[Install]
-WantedBy=multi-user.target
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 0c120bfd8..000000000
--- 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 4365aa4bc..728423432 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"
-FILES_${PN} += "${base_libdir}/udev/rules.d/"
+EXTRA_OECONF += "--without-preflight"
-# fix usbmuxd installing files to /usr/lib64 on 64bit hosts:
-EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+FILES_${PN} += "${base_libdir}/udev/rules.d/"
-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 3a71fb979..515420817 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_configure() {
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 000000000..19a2e26f2
--- /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 8e4fd0329..616843d4a 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 000000000..1c7005c2f
--- /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 e3d5e7d20..b9f62da7b 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 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \
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 @@ LDFLAGS_append = " -Wl,-rpath-link,${CROSS_DIR}/${TARGET_SYS}/lib"
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 4920bce8c..9aff59c6c 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 @@ SRC_URI = "git://github.com/zeromq/cppzmq.git"
S = "${WORKDIR}/git"
-do_install () {
- install -d ${D}/usr/include
- install -m 0755 ${S}/zmq.hpp ${D}/usr/include/
-}
+inherit cmake
PACKAGES = "${PN}-dev"
OpenPOWER on IntegriCloud