diff options
Diffstat (limited to 'meta-openembedded/meta-networking')
312 files changed, 10954 insertions, 11858 deletions
diff --git a/meta-openembedded/meta-networking/MAINTAINERS b/meta-openembedded/meta-networking/MAINTAINERS index bbb2d1b5b..945ee86b2 100644 --- a/meta-openembedded/meta-networking/MAINTAINERS +++ b/meta-openembedded/meta-networking/MAINTAINERS @@ -2,34 +2,12 @@ This file contains a list of maintainers for the meta-networking layer. Please submit any patches against meta-networking to the OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org) with -'[meta-networking]' in the subject. +'[meta-networking][thud]' in the subject. When sending single patches, please use something like: git send-email -1 -M \ --to openembedded-devel@lists.openembedded.org \ - --subject-prefix=meta-networking][PATCH + --subject-prefix=meta-networking][thud][PATCH -You may also contact the maintainers directly. - -Descriptions of section entries: - - M: Mail patches to: FullName <address@domain> - F: Files and directories with wildcard patterns. - A trailing slash includes all files and subdirectory files. - F: recipes-devtools/ all files in and below recipes-devtools - F: recipes-selinux/* all files in recipes-selinux, but not below - One pattern per line. Multiple F: lines acceptable. - -Please keep this list in alphabetical order. - -Maintainers List (try to look for most precise areas first) - -COMMON -M: Joe MacDonald <joe_macdonald@mentor.com> -F: conf -F: recipes-* - -NETKIT -M: Armin Kuster <akuster808@gmail.com> -F: recipes-netkit +Thud Maintainer: Armin Kuster <akuster808@gmail.com> diff --git a/meta-openembedded/meta-networking/README b/meta-openembedded/meta-networking/README index e1ba27d83..7a4aca48c 100644 --- a/meta-openembedded/meta-networking/README +++ b/meta-openembedded/meta-networking/README @@ -18,19 +18,19 @@ Dependencies This layer depends on: URI: git://github.com/openembedded/openembedded-core.git -branch: master +branch: thud revision: HEAD For some recipes, the meta-oe layer is required: URI: git://github.com/openembedded/meta-openembedded.git subdirectory: meta-oe -branch: master +branch: thud revision: HEAD URI: git://github.com/openembedded/meta-openembedded.git subdirectory: meta-python -branch: master +branch: thud revision: HEAD Maintenance diff --git a/meta-openembedded/meta-networking/classes/kernel_wireless_regdb.bbclass b/meta-openembedded/meta-networking/classes/kernel_wireless_regdb.bbclass new file mode 100644 index 000000000..1238172bd --- /dev/null +++ b/meta-openembedded/meta-networking/classes/kernel_wireless_regdb.bbclass @@ -0,0 +1,20 @@ +# Linux kernels before v4.15, allowed to be compiled with static +# regulatory database if it was put under net/wireless/db.txt. +# +# This class copies the regulatory plaintext database to kernel sources before +# compiling. +# +# Usage: +# 1. The class should be inherited by kernel recipe (e.g. in +# linux-yocto_%.bbappend). +# 2. For Linux kernels up to v4.14, build kernel with CONFIG_EXPERT and +# CONFIG_CFG80211_INTERNAL_REGDB. + +DEPENDS += "wireless-regdb-native" + +SRCTREECOVEREDTASKS += "do_kernel_add_regdb" +do_kernel_add_regdb() { + cp ${STAGING_LIBDIR_NATIVE}/crda/db.txt ${S}/net/wireless/db.txt +} +do_kernel_add_regdb[dirs] = "${S}" +addtask kernel_add_regdb before do_build after do_configure diff --git a/meta-openembedded/meta-networking/conf/layer.conf b/meta-openembedded/meta-networking/conf/layer.conf index e594b7b95..d36ff5bf9 100644 --- a/meta-openembedded/meta-networking/conf/layer.conf +++ b/meta-openembedded/meta-networking/conf/layer.conf @@ -17,7 +17,7 @@ LAYERDEPENDS_networking-layer = "core" LAYERDEPENDS_networking-layer += "openembedded-layer" LAYERDEPENDS_networking-layer += "meta-python" -LAYERSERIES_COMPAT_networking-layer = "sumo" +LAYERSERIES_COMPAT_networking-layer = "thud" LICENSE_PATH += "${LAYERDIR}/licenses" diff --git a/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt new file mode 100644 index 000000000..a5cd9981a --- /dev/null +++ b/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt @@ -0,0 +1,40 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch new file mode 100644 index 000000000..269174b2f --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch @@ -0,0 +1,31 @@ +From 77db892cdee265e971270c06ca1ffbaeea6449a3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Tue, 26 Jun 2018 00:27:40 +0200 +Subject: [PATCH] Search for cython3 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 727089d1..6b565cdc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,7 +58,7 @@ AC_SUBST([PYGOBJECT_LIBS]) + + AC_ARG_VAR([CYTHONEXEC], [Cython compiler]) + if test "x$CYTHONEXEC" = "x"; then +- AC_PATH_PROG([CYTHONEXEC],[cython]) ++ AC_PATH_PROG([CYTHONEXEC],[cython3]) + fi + AC_SUBST([CYTHONEXEC]) + AC_MSG_CHECKING([for cython executable]) +-- +2.14.3 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb new file mode 100644 index 000000000..947db7836 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "bluez5 python3-pygobject python3-cython-native python3-setuptools-native intltool-native" + +inherit autotools systemd gsettings python3native gtk-icon-cache + +SRC_URI = " \ + git://github.com/blueman-project/blueman.git \ + file://0001-Search-for-cython3.patch \ +" +SRCREV = "c4a03417e81e21543d4568e8e7f7de307582eb50" +PV = "2.0.5+git${SRCPV}" +S = "${WORKDIR}/git" + +EXTRA_OECONF = " \ + --disable-runtime-deps-check \ + --disable-schemas-compile \ +" + +SYSTEMD_SERVICE_${PN} = "${BPN}-mechanism.service" +SYSTEMD_AUTO_ENABLE_${PN} = "disable" + +RRECOMENDS_${PN} += "adwaita-icon-theme" +RDEPENDS_${PN} += " \ + python3-dbus \ + packagegroup-tools-bluetooth \ +" + +PACKAGECONFIG[thunar] = "--enable-thunar-sendto,--disable-thunar-sendto,,thunar" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/Thunar \ + ${systemd_user_unitdir} \ + ${exec_prefix}${systemd_system_unitdir} \ + ${PYTHON_SITEPACKAGES_DIR} \ +" + +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/_blueman.a" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch new file mode 100644 index 000000000..eecbc1468 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch @@ -0,0 +1,40 @@ +From 21e9a4bb214648ffd43c66b535fbf096bfcc9f4f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 24 Jun 2018 00:04:37 -0700 +Subject: [PATCH] Unittest: Link librt and libm using -l option + +cmake'ry forces full path to .so files when found using +find_package and since we have proper sysrooted toolchain +-lm and -lrt is all we need + +Upstream-Status: Inappropriate [Cross compile specific] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + unittest/CMakeLists.txt | 10 ++-------- + 1 file changed, 2 insertions(+), 8 deletions(-) + +diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt +index c4cdf229..e1b63caf 100644 +--- a/unittest/CMakeLists.txt ++++ b/unittest/CMakeLists.txt +@@ -57,14 +57,8 @@ elseif (WIN32) + else() + set(CHECK_LIBRARIES "${CHECK_INSTALL_DIR}/lib/libcheck.a") + endif() +-find_package(LibM) +-if (LIBM_FOUND) +- set(CHECK_LIBRARIES "${CHECK_LIBRARIES};LIBM::LIBM") +-endif() +-find_package(LibRt) +-if (LIBRT_FOUND) +- set(CHECK_LIBRARIES "${CHECK_LIBRARIES};LIBRT::LIBRT") +-endif() ++set(CHECK_LIBRARIES "${CHECK_LIBRARIES};-lm") ++set(CHECK_LIBRARIES "${CHECK_LIBRARIES};-lrt") + + # Build the C unit tests + add_library(shared-c-unit-tests STATIC shared.c) +-- +2.18.0 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch new file mode 100644 index 000000000..865330213 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch @@ -0,0 +1,26 @@ +From 59f65235a7a690f50d1686e9977908c053697d8c Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Aug 2018 22:59:13 -0700 +Subject: [PATCH] undefine macro before redefining + +Fixes +src/main.c:89:9: error: 'printf' macro redefined [-Werror,-Wmacro-redefined] + +Upstream-Stats: Submitted [https://github.com/civetweb/civetweb/pull/649] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/main.c b/src/main.c +index bbcb0aec..01191a3c 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -86,6 +86,7 @@ + + #include "civetweb.h" + ++#undef printf + #define printf \ + DO_NOT_USE_THIS_FUNCTION__USE_fprintf /* Required for unit testing */ + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb new file mode 100644 index 000000000..d681f7f30 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb @@ -0,0 +1,43 @@ +SUMMARY = "Civetweb embedded web server" +HOMEPAGE = "https://github.com/civetweb/civetweb" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6f28fdcba0dda735eed62bac6a397562" + +SRCREV = "19f31ba8dd8443e86c7028a4b4c37f4b299aa68c" +PV = "1.10+git${SRCPV}" +SRC_URI = "git://github.com/civetweb/civetweb.git \ + file://0001-Unittest-Link-librt-and-libm-using-l-option.patch \ + file://0001-undefine-macro-before-redefining.patch \ + " + +S = "${WORKDIR}/git" + +# civetweb supports building with make or cmake (although cmake lacks few features) +inherit cmake + +# Disable Lua and Duktape because they do not compile from CMake (as of v1.8, v1.9 and v1.10). +# Disable ASAN as it is included only in Debug build. +EXTRA_OECMAKE = " \ + -DBUILD_SHARED_LIBS=ON \ + -DCIVETWEB_ENABLE_DUKTAPE=OFF \ + -DCIVETWEB_ENABLE_LUA=OFF \ + -DCIVETWEB_ENABLE_ASAN=OFF \ + -DCIVETWEB_BUILD_TESTING=OFF \ +" + +# Building with ninja fails on missing third_party/lib/libcheck.a (which +# should come from external CMake project) +OECMAKE_GENERATOR = "Unix Makefiles" + +PACKAGECONFIG ??= "caching ipv6 server ssl websockets" +PACKAGECONFIG[caching] = "-DCIVETWEB_DISABLE_CACHING=OFF,-DCIVETWEB_DISABLE_CACHING=ON," +PACKAGECONFIG[cgi] = "-DCIVETWEB_DISABLE_CGI=OFF,-DCIVETWEB_DISABLE_CGI=ON," +PACKAGECONFIG[cpp] = "-DCIVETWEB_ENABLE_CXX=ON,-DCIVETWEB_ENABLE_CXX=OFF," +PACKAGECONFIG[debug] = "-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=ON,-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=OFF," +PACKAGECONFIG[ipv6] = "-DCIVETWEB_ENABLE_IPV6=ON,-DCIVETWEB_ENABLE_IPV6=OFF," +PACKAGECONFIG[server] = "-DCIVETWEB_INSTALL_EXECUTABLE=ON,-DCIVETWEB_INSTALL_EXECUTABLE=OFF," +PACKAGECONFIG[ssl] = "-DCIVETWEB_ENABLE_SSL=ON -DCIVETWEB_SSL_OPENSSL_API_1_1=OFF -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF,-DCIVETWEB_ENABLE_SSL=OFF,openssl (=1.0.2%)," +PACKAGECONFIG[websockets] = "-DCIVETWEB_ENABLE_WEBSOCKETS=ON,-DCIVETWEB_ENABLE_WEBSOCKETS=OFF," + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb b/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb index 82a297b33..d5d2ab68c 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb @@ -4,7 +4,10 @@ SECTION = "net" LICENSE = "copyleft-next-0.3.0" LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe" -DEPENDS = "python-m2crypto-native python-typing-native python-native libgcrypt libnl openssl" +DEPENDS = "python-m2crypto-native python-typing-native python-native libnl \ + ${@oe.utils.conditional("DEFAULT_CRYPT", "gcrypt", "libgcrypt", "", d)} \ + ${@oe.utils.conditional("DEFAULT_CRYPT", "openssl", "openssl10", "", d)} \ + " SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \ file://do-not-run-ldconfig-if-destdir-is-set.patch \ @@ -18,10 +21,15 @@ SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \ SRC_URI[md5sum] = "0431fef3067bf503dfb464069f06163a" SRC_URI[sha256sum] = "43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf" -inherit python-dir pythonnative +inherit python-dir pythonnative siteinfo + +# "gcrypt" or "openssl" +DEFAULT_CRYPT ??= "gcrypt" + # Recursive make problem -EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg'" -EXTRA_OEMAKE_append = " USE_OPENSSL=1" +EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg' \ + UDEV_RULE_DIR=${nonarch_libdir}/udev/rules.d/" +EXTRA_OEMAKE_append = " ${@oe.utils.conditional("DEFAULT_CRYPT", "openssl", "USE_OPENSSL=1", "", d)}" TARGET_BITS = "${SITEINFO_BITS}" export TARGET_BITS diff --git a/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb index ec35175a0..42ffb17a1 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f9ce51a65dd738dc1ae631d8b21c40e0" PARALLEL_MAKE = "" -DEPENDS = "libpcap libpcre libdnet" +DEPENDS = "libpcap libpcre libdnet bison-native" SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \ file://disable-run-test-program-while-cross-compiling.patch \ diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-freeradius-correct-version-number-of-libssl-defect.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-freeradius-correct-version-number-of-libssl-defect.patch new file mode 100644 index 000000000..9e1f5b2ef --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-freeradius-correct-version-number-of-libssl-defect.patch @@ -0,0 +1,44 @@ +From fecf974b63f72eeb12d3b43522e948ca2bc704d4 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Thu, 11 Oct 2018 09:45:52 +0800 +Subject: [PATCH] freeradius: correct version number of libssl defect + +Upstream-Status: Backport [https://github.com/FreeRADIUS/freeradius-server + /commit/ad039347beca4ded297813a1da6eabb61fcf2ddd] + +upstream have refactored this part code into +src/lib/tls/base.c, and problem also have fixed +by commit ad039347beca + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + src/main/tls.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/main/tls.c b/src/main/tls.c +index acbfe79..d9c91f1 100644 +--- a/src/main/tls.c ++++ b/src/main/tls.c +@@ -72,15 +72,15 @@ typedef struct libssl_defect { + static libssl_defect_t libssl_defects[] = + { + { +- .low = 0x01010101f, /* 1.1.0a */ +- .high = 0x01010101f, /* 1.1.0a */ ++ .low = 0x01010001f, /* 1.1.0a */ ++ .high = 0x01010001f, /* 1.1.0a */ + .id = "CVE-2016-6309", + .name = "OCSP status request extension", + .comment = "For more information see https://www.openssl.org/news/secadv/20160926.txt" + }, + { +- .low = 0x01010100f, /* 1.1.0 */ +- .high = 0x01010100f, /* 1.1.0 */ ++ .low = 0x010100000f, /* 1.1.0 */ ++ .high = 0x01010000f, /* 1.1.0 */ + .id = "CVE-2016-6304", + .name = "OCSP status request extension", + .comment = "For more information see https://www.openssl.org/news/secadv/20160922.txt" +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch index 30497a602..38e7c3622 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch @@ -1,3 +1,6 @@ +From 0780b7053fb0d33d721aa70ab2ecd75299e5ba31 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 15:03:39 +0800 Subject: [PATCH] configure.ac: allow cross-compilation The checking OpenSSL library and header version consistency will @@ -8,17 +11,20 @@ Upstream-Status: Inappropriate[embedded specific] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Yi Zhao <yi.zhao@windriver.com> + +update to new version 3.0.17 to fix patch warning +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- src/modules/rlm_krb5/configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/rlm_krb5/configure.ac b/src/modules/rlm_krb5/configure.ac -index eb43534..113a079 100644 +index efc9f29..98a97e4 100644 --- a/src/modules/rlm_krb5/configure.ac +++ b/src/modules/rlm_krb5/configure.ac @@ -137,7 +137,8 @@ if test x$with_[]modname != xno; then FR_SMART_CHECK_LIB(krb5, krb5_is_thread_safe) - if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" == xyes; then + if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" = xyes; then AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]], [[return krb5_is_thread_safe() ? 0 : 1]])], - [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])]) + [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])], @@ -27,5 +33,5 @@ index eb43534..113a079 100644 else krb5threadsafe="" -- -2.10.2 +2.7.4 diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch index d29b2ac39..638d95076 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch @@ -1,32 +1,33 @@ -From d8e251ef97869ab2c1c82bd374016f402083997c Mon Sep 17 00:00:00 2001 -From: Jorge Pereira <jpereiran@gmail.com> -Date: Mon, 7 Dec 2015 16:51:07 -0200 -Subject: [PATCH] Fixing issues related to m4 include path +From 69cb6d4bb5dd56a48695c0581a7d853e427b0ea3 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 14:54:41 +0800 +Subject: [PATCH] freeradius: Fixing issues related to m4 include path Upstream-Status: Submitted [1] [1]: https://github.com/FreeRADIUS/freeradius-server/pull/1428 Submmited by: Jorge Pereira <jpereiran@gmail.com> + +Update to version 3.0.17 + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - src/modules/rlm_example/config.h.in | 39 ++-------------------- - src/modules/rlm_ldap/configure | 2 +- - src/modules/rlm_pam/config.h.in | 3 ++ - src/modules/rlm_perl/config.h.in | 3 ++ - src/modules/rlm_perl/configure.ac | 2 +- - src/modules/rlm_radutmp/config.h.in | 3 ++ - src/modules/rlm_ruby/configure | 1 + - src/modules/rlm_ruby/configure.ac | 9 ++--- - src/modules/rlm_smsotp/config.h.in | 3 ++ - .../rlm_sql/drivers/rlm_sql_mysql/config.h.in | 3 ++ - src/modules/rlm_unix/config.h.in | 6 ++++ - 11 files changed, 32 insertions(+), 42 deletions(-) + src/modules/rlm_example/config.h.in | 35 +++-------------------------------- + src/modules/rlm_pam/config.h.in | 3 +++ + src/modules/rlm_perl/config.h.in | 3 +++ + src/modules/rlm_perl/configure.ac | 2 +- + src/modules/rlm_radutmp/config.h.in | 3 +++ + src/modules/rlm_ruby/configure.ac | 8 ++++---- + src/modules/rlm_smsotp/config.h.in | 3 +++ + src/modules/rlm_unix/config.h.in | 3 +++ + 8 files changed, 23 insertions(+), 37 deletions(-) diff --git a/src/modules/rlm_example/config.h.in b/src/modules/rlm_example/config.h.in -index 2a81ef5..f80de9c 100644 +index 2a81ef5..4dbb8f4 100644 --- a/src/modules/rlm_example/config.h.in +++ b/src/modules/rlm_example/config.h.in -@@ -1,38 +1,5 @@ +@@ -1,37 +1,5 @@ /* config.h.in. Generated from configure.ac by autoheader. */ -/* Define to 1 if you have the <inttypes.h> header file. */ @@ -61,11 +62,10 @@ index 2a81ef5..f80de9c 100644 - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H -- + /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT - -@@ -45,8 +12,8 @@ +@@ -45,6 +13,9 @@ /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME @@ -74,22 +74,7 @@ index 2a81ef5..f80de9c 100644 + /* Define to the version of this package. */ #undef PACKAGE_VERSION -- --/* Define to 1 if you have the ANSI C header files. */ --#undef STDC_HEADERS -diff --git a/src/modules/rlm_ldap/configure b/src/modules/rlm_ldap/configure -index e0c15d9..cdf96d5 100755 ---- a/src/modules/rlm_ldap/configure -+++ b/src/modules/rlm_ldap/configure -@@ -3992,7 +3992,7 @@ smart_prefix= - $as_echo "#define WITH_SASL 1" >>confdefs.h - - SASL=sasl.c -- fi -+ fi - fi - - targetname=rlm_ldap + diff --git a/src/modules/rlm_pam/config.h.in b/src/modules/rlm_pam/config.h.in index 32ef6ff..1ad20c5 100644 --- a/src/modules/rlm_pam/config.h.in @@ -118,7 +103,7 @@ index 989ed53..f80de9c 100644 /* Define to the version of this package. */ #undef PACKAGE_VERSION diff --git a/src/modules/rlm_perl/configure.ac b/src/modules/rlm_perl/configure.ac -index 44c5fc9..6b2a043 100644 +index 4b3ff42..69c79cb 100644 --- a/src/modules/rlm_perl/configure.ac +++ b/src/modules/rlm_perl/configure.ac @@ -3,7 +3,7 @@ AC_INIT(rlm_perl.c) @@ -144,23 +129,11 @@ index 9a883cc..750b434 100644 /* Define to the version of this package. */ #undef PACKAGE_VERSION -diff --git a/src/modules/rlm_ruby/configure b/src/modules/rlm_ruby/configure -index 15868ab..c728af2 100755 ---- a/src/modules/rlm_ruby/configure -+++ b/src/modules/rlm_ruby/configure -@@ -1875,6 +1875,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -+ - # =========================================================================== - # http://www.gnu.org/software/autoconf-archive/ax_compare_version.html - # =========================================================================== diff --git a/src/modules/rlm_ruby/configure.ac b/src/modules/rlm_ruby/configure.ac -index 9306382..f1c8118 100644 +index 9306382..ae86a14 100644 --- a/src/modules/rlm_ruby/configure.ac +++ b/src/modules/rlm_ruby/configure.ac -@@ -3,15 +3,16 @@ AC_INIT(rlm_ruby.c) +@@ -3,15 +3,15 @@ AC_INIT(rlm_ruby.c) AC_REVISION($Revision: 1.9 $) AC_DEFUN(modname,[rlm_ruby]) @@ -174,7 +147,6 @@ index 9306382..f1c8118 100644 -m4_include([ax_compare_version.m4]) -m4_include([ax_prog_ruby_version.m4]) -m4_include([ax_ruby_devel.m4]) -+ +m4_include([m4/ax_compare_version.m4]) +m4_include([m4/ax_prog_ruby_version.m4]) +m4_include([m4/ax_ruby_devel.m4]) @@ -195,33 +167,11 @@ index 5feaf91..9e69f85 100644 /* Define to the version of this package. */ #undef PACKAGE_VERSION -diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in b/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in -index e03d1a9..6262c48 100644 ---- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in -+++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in -@@ -18,5 +18,8 @@ - /* Define to the one symbol short name of this package. */ - #undef PACKAGE_TARNAME - -+/* Define to the home page for this package. */ -+#undef PACKAGE_URL -+ - /* Define to the version of this package. */ - #undef PACKAGE_VERSION diff --git a/src/modules/rlm_unix/config.h.in b/src/modules/rlm_unix/config.h.in -index dcb9aa2..70b4680 100644 +index dcb9aa2..16107b8 100644 --- a/src/modules/rlm_unix/config.h.in +++ b/src/modules/rlm_unix/config.h.in -@@ -1,5 +1,8 @@ - /* config.h.in. Generated from configure.ac by autoheader. */ - -+/* Define to 1 if you have the `getpwnam' function. */ -+#undef HAVE_GETPWNAM -+ - /* Define to 1 if you have the `getspnam' function. */ - #undef HAVE_GETSPNAM - -@@ -54,6 +57,9 @@ +@@ -54,6 +54,9 @@ /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME @@ -232,5 +182,5 @@ index dcb9aa2..70b4680 100644 #undef PACKAGE_VERSION -- -2.3.5 +2.7.4 diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb index 4155a4059..c17d56dea 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb @@ -29,9 +29,10 @@ SRC_URI = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${PV}.tar.b file://0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \ file://radiusd.service \ file://radiusd-volatiles.conf \ + file://0001-freeradius-correct-version-number-of-libssl-defect.patch \ " -SRC_URI[md5sum] = "0c81a4464ccf1d04f7ef1218a029d37a" -SRC_URI[sha256sum] = "23267d8505e7b2909f5bdbf3938ca077c1fe122290dc969304d4f3b594f7e3ba" +SRC_URI[md5sum] = "1f4ad38f32101a7d50d818afa6f17339" +SRC_URI[sha256sum] = "3f03404b6e4a4f410e1f15ea2ababfec7f8a7ae8a49836d8a0c137436d913b96" PARALLEL_MAKE = "" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb index 190cd5f14..a27dbae2e 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb @@ -4,7 +4,7 @@ rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \ talkd, telnet, telnetd, tftp, tftpd, and uucpd." HOMEPAGE = "http://www.gnu.org/software/inetutils" SECTION = "net" -DEPENDS = "ncurses netbase readline" +DEPENDS = "ncurses netbase readline virtual/crypt" LICENSE = "GPLv3" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch new file mode 100644 index 000000000..fb16ecbf9 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch @@ -0,0 +1,89 @@ +From 8ea2ee451a1af7c5b5c8f4b36c1f77d44442064d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 7 Sep 2018 13:02:35 -0700 +Subject: [PATCH] Fix error: call of overloaded distance is ambiguous +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The boost::iterators::distance function template is an adapted version +of std::distance for the Boost iterator traversal in 2.68 it has started +to fail with argument dependent lookup and compiler is erroring out + +with + +error: call of overloaded ‘distance' + +boost implementation of distance is protected against being found by ADL + +The way function is called in libdhcp means it will be found via ADL and +all namespaces will be considered which is providing problematic since +its getting it from both std:: and boost:: namespaces + +so let it not rely on ADL by qualifying then calls with std:: namespace + +Upstream-Status: Submitted [https://github.com/isc-projects/kea/pull/103] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/lib/dhcp/libdhcp++.cc | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/lib/dhcp/libdhcp++.cc b/src/lib/dhcp/libdhcp++.cc +index 330c02b..ced705d 100644 +--- a/src/lib/dhcp/libdhcp++.cc ++++ b/src/lib/dhcp/libdhcp++.cc +@@ -419,14 +419,14 @@ size_t LibDHCP::unpackOptions6(const OptionBuffer& buf, + // We previously did the lookup only for dhcp6 option space, but with the + // addition of S46 options, we now do it for every space. + range = idx.equal_range(opt_type); +- num_defs = distance(range.first, range.second); ++ num_defs = std::distance(range.first, range.second); + + // Standard option definitions do not include the definition for + // our option or we're searching for non-standard option. Try to + // find the definition among runtime option definitions. + if (num_defs == 0) { + range = runtime_idx.equal_range(opt_type); +- num_defs = distance(range.first, range.second); ++ num_defs = std::distance(range.first, range.second); + } + + OptionPtr opt; +@@ -538,14 +538,14 @@ size_t LibDHCP::unpackOptions4(const OptionBuffer& buf, + // may be standard options in other spaces (e.g. radius). So we now do + // the lookup for every space. + range = idx.equal_range(opt_type); +- num_defs = distance(range.first, range.second); ++ num_defs = std::distance(range.first, range.second); + + // Standard option definitions do not include the definition for + // our option or we're searching for non-standard option. Try to + // find the definition among runtime option definitions. + if (num_defs == 0) { + range = runtime_idx.equal_range(opt_type); +- num_defs = distance(range.first, range.second); ++ num_defs = std::distance(range.first, range.second); + } + + // Check if option unpacking must be deferred +@@ -638,7 +638,7 @@ size_t LibDHCP::unpackVendorOptions6(const uint32_t vendor_id, + idx->equal_range(opt_type); + // Get the number of returned option definitions for the + // option code. +- size_t num_defs = distance(range.first, range.second); ++ size_t num_defs = std::distance(range.first, range.second); + + if (num_defs > 1) { + // Multiple options of the same code are not supported +@@ -746,7 +746,7 @@ size_t LibDHCP::unpackVendorOptions4(const uint32_t vendor_id, const OptionBuffe + idx->equal_range(opt_type); + // Get the number of returned option definitions for + // the option code. +- size_t num_defs = distance(range.first, range.second); ++ size_t num_defs = std::distance(range.first, range.second); + + if (num_defs > 1) { + // Multiple options of the same code are not +-- +2.18.0 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0003-Makefile.am-update-hooksdir-for-lease_cmds.patch b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0003-Makefile.am-update-hooksdir-for-lease_cmds.patch new file mode 100644 index 000000000..381a3a7eb --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0003-Makefile.am-update-hooksdir-for-lease_cmds.patch @@ -0,0 +1,31 @@ +From cd902b8b588681a27d5321f1ee078a1c8f6e6935 Mon Sep 17 00:00:00 2001 +From: Mingli Yu <Mingli.Yu@windriver.com> +Date: Wed, 21 Mar 2018 06:01:38 +0000 +Subject: [PATCH 3/3] Makefile.am: update hooksdir for lease_cmds + +update hooksdir for lease_cmds + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> + +--- + src/hooks/dhcp/lease_cmds/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/hooks/dhcp/lease_cmds/Makefile.am b/src/hooks/dhcp/lease_cmds/Makefile.am +index cfd6779..22cc4a9 100644 +--- a/src/hooks/dhcp/lease_cmds/Makefile.am ++++ b/src/hooks/dhcp/lease_cmds/Makefile.am +@@ -37,7 +37,7 @@ liblease_cmds_la_CXXFLAGS = $(AM_CXXFLAGS) + liblease_cmds_la_CPPFLAGS = $(AM_CPPFLAGS) + + # install the shared object into $(libdir)/hooks +-lib_hooksdir = $(libdir)/hooks ++lib_hooksdir = $(libdir)/kea/hooks + lib_hooks_LTLIBRARIES = libdhcp_lease_cmds.la + + libdhcp_lease_cmds_la_SOURCES = +-- +2.18.0 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service new file mode 100644 index 000000000..91aa2eb14 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service @@ -0,0 +1,13 @@ +[Unit] +Description=Kea DHCP-DDNS Server +Wants=network-online.target +After=network-online.target +After=time-sync.target + +[Service] +ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/ +ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea +ExecStart=@SBINDIR@/kea-dhcp-ddns -c @SYSCONFDIR@/kea/kea-dhcp-ddns.conf + +[Install] +WantedBy=multi-user.target diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service new file mode 100644 index 000000000..f32edcb90 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service @@ -0,0 +1,13 @@ +[Unit] +Description=Kea DHCPv4 Server +Wants=network-online.target +After=network-online.target +After=time-sync.target + +[Service] +ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/ +ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea +ExecStart=@SBINDIR@/kea-dhcp4 -c @SYSCONFDIR@/kea/kea-dhcp4.conf + +[Install] +WantedBy=multi-user.target diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service new file mode 100644 index 000000000..26d2205e6 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service @@ -0,0 +1,13 @@ +[Unit] +Description=Kea DHCPv6 Server +Wants=network-online.target +After=network-online.target +After=time-sync.target + +[Service] +ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/ +ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea +ExecStart=@SBINDIR@/kea-dhcp6 -c @SYSCONFDIR@/kea/kea-dhcp6.conf + +[Install] +WantedBy=multi-user.target diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.4.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.4.0.bb new file mode 100644 index 000000000..67de07b31 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.4.0.bb @@ -0,0 +1,52 @@ +SUMMARY = "ISC Kea DHCP Server" +DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It supports both DHCPv4 and DHCPv6 protocols along with their extensions, e.g. prefix delegation and dynamic updates to DNS." +HOMEPAGE = "http://kea.isc.org" +SECTION = "connectivity" +LICENSE = "MPL-2.0 & Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=1666a9c4bb55adbc8939d85643096bd3" + +DEPENDS += "kea-native" + +SRC_URI = "\ + http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \ + file://0003-Makefile.am-update-hooksdir-for-lease_cmds.patch \ + file://0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch \ + file://kea-dhcp4.service \ + file://kea-dhcp6.service \ + file://kea-dhcp-ddns.service \ +" +SRC_URI[md5sum] = "26eedd749101642757d788431605aaa5" +SRC_URI[sha256sum] = "c0f8ecb93657adfc5ab970c91706754e601084828493f053f159661d21b31128" + +inherit autotools systemd + +SYSTEMD_SERVICE_${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service" +SYSTEMD_AUTO_ENABLE = "disable" + +do_configure_prepend_class-target() { + mkdir -p ${B}/src/lib/log/compiler/ + ln -sf ${STAGING_BINDIR_NATIVE}/kea-msg-compiler ${B}/src/lib/log/compiler/kea-msg-compiler +} + +do_install_append_class-target() { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir} + sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \ + -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + ${D}${systemd_system_unitdir}/kea-dhcp*service +} + +do_install_append() { + rm -rf "${D}${localstatedir}" +} + +PACKAGECONFIG ??= "openssl log4cplus boost" + +PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_TARGET}${prefix},,openssl,openssl" +PACKAGECONFIG[log4cplus] = "--with-log4cplus=${STAGING_DIR_TARGET}${prefix},,log4cplus,log4cplus" +PACKAGECONFIG[boost] = "--with-boost-include=${STAGING_INCDIR} --with-boost-lib-dir=${STAGING_LIBDIR} --with-boost-libs=-lboost_system,,boost,boost" + +FILES_${PN}-staticdev += "${libdir}/kea/hooks/*.a ${libdir}/hooks/*.a" +FILES_${PN} += "${libdir}/hooks/*.so" + +BBCLASSEXTEND += "native" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb b/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.8.4.bb index b6b65da73..bf793d91d 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.8.4.bb @@ -9,17 +9,16 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2 \ file://fix-gcc-6-conflicts-signbit.patch \ " -SRC_URI[md5sum] = "3701e7675baa5619c92622eb141c8301" -SRC_URI[sha256sum] = "fe441f20a9a317cfb99a8b8e628ba0457df472b6d93964d17374d5b5ebdf9280" +SRC_URI[md5sum] = "a56b5047dbfda052df4c1dfd197aa092" +SRC_URI[sha256sum] = "a853edbd075b008c315679c7882b6dcc6821ed2365d2ed843a412acd3d40da0e" inherit autotools gettext pkgconfig acpaths = "-I ./m4" -EXTRA_OECONF += "--with-modules" +EXTRA_OECONF += "--with-modules --disable-rpath" -PACKAGECONFIG ??= "libidn openssl zlib gnutls readline expat" -PACKAGECONFIG[libidn] = "--with-libidn, --without-libidn, libidn" +PACKAGECONFIG ??= "openssl zlib gnutls readline expat" PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_INCDIR}/.., --without-zlib, zlib" PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls" @@ -29,6 +28,6 @@ PACKAGECONFIG[expat] = "--with-expat=${STAGING_INCDIR}/.. --with-expat-inc=${STA do_install_append() { rm -rf ${D}${libdir}/charset.alias } - +FILES_${PN} += "${datadir}/icons/hicolor" FILES_${PN}-dbg += "${libdir}/lftp/${PV}/.debug" RDEPENDS_${PN} = "perl bash readline" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb index e579de507..53ba25e23 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb @@ -7,6 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9" SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1" SRCREV = "12fca29a6d4e99d1b923d6820887fe7b24226904" +UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)" + S = "${WORKDIR}/git" inherit autotools diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.8.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb index 736cce1b0..ff3f7f0c1 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.8.0.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb @@ -20,12 +20,12 @@ HOMEPAGE = "https://tls.mbed.org/" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=302d50a6369f5f22efdb674db908167a" -SECTION = "libdevel" +SECTION = "libs" SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-apache.tgz" -SRC_URI[md5sum] = "2d4b0e2cb844efde1e73d3bcd9731fef" -SRC_URI[sha256sum] = "ab8b62b995781bcf22e87a265ed06267f87c3041198e996b44441223d19fa9c3" +SRC_URI[md5sum] = "659d96bb03012ca6db414a9137fcdbd6" +SRC_URI[sha256sum] = "593b4e4d2e1629fc407ab4750d69fa309a0ddb66565dc3deb5b60eddbdeb06da" inherit cmake diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/miniupnpd.service b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/miniupnpd.service new file mode 100644 index 000000000..e7bfad0a9 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/miniupnpd.service @@ -0,0 +1,14 @@ +[Unit] +Description=Lightweight UPnP IGD daemon +Documentation=man:miniupnpd(8) +After=network.target + +[Service] +Type=forking +ExecStartPre=/etc/miniupnpd/iptables_init.sh +ExecStart=/usr/sbin/miniupnpd -f /etc/miniupnpd/miniupnpd.conf +ExecStopPost=/etc/miniupnpd/iptables_removeall.sh +PIDFile=/run/miniupnpd.pid + +[Install] +WantedBy=network.target diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb index c6f36e137..04b5cd589 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb @@ -5,16 +5,17 @@ the network." SECTION = "networking" LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=aa71c78c373ccfe0ff207af0cd966d91" +LIC_FILES_CHKSUM = "file://LICENSE;md5=91ac00c6b9f5c106e89291e196fe0234" -inherit autotools gettext pkgconfig +inherit autotools gettext pkgconfig systemd DEPENDS += "iptables net-tools util-linux libmnl libnetfilter-conntrack" SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${P}.tar.gz;downloadfilename=${P}.tar.gz \ -" -SRC_URI[md5sum] = "1c07a215dd9b362e75a9efc05e2fb3b4" -SRC_URI[sha256sum] = "d96aa3a00e0f5490826bba3cb97e68cd27479e5839adac4b9bcb66eae786bfb7" + file://miniupnpd.service" + +SRC_URI[md5sum] = "b4c7c938915edeee6ca4c65dd021f212" +SRC_URI[sha256sum] = "860c15f2f8340fd69546b01cffe4c7fcff3e63a7bdfe5a2af6b2346f0e074bb6" IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}" @@ -34,4 +35,9 @@ do_install() { install -m 0644 -b ${S}/miniupnpd.conf ${D}/${sysconfdir}/${BPN} install -d ${D}/${sysconfdir}/init.d install ${S}/linux/miniupnpd.init.d.script ${D}/${sysconfdir}/init.d/miniupnpd + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/miniupnpd.service ${D}${systemd_unitdir}/system/ } + +SYSTEMD_SERVICE_${PN} = "miniupnpd.service" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch new file mode 100644 index 000000000..c89dfe6be --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch @@ -0,0 +1,975 @@ +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-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init new file mode 100644 index 000000000..6a0c12760 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init @@ -0,0 +1,89 @@ +#! /bin/sh + +# Based on the Debian initscript for mosquitto + +### BEGIN INIT INFO +# Provides: mosquitto +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: mosquitto MQTT message broker +# Description: +# This is a message broker that supports version 3.1/3.1.1 of the MQ Telemetry +# Transport (MQTT) protocol. +# +# MQTT provides a method of carrying out messaging using a publish/subscribe +# model. It is lightweight, both in terms of bandwidth usage and ease of +# implementation. This makes it particularly useful at the edge of the network +# where a sensor or other simple device may be implemented using an arduino for +# example. +### END INIT INFO + +set -e + +PIDFILE=@LOCALSTATEDIR@/run/mosquitto.pid +DAEMON=@SBINDIR@/mosquitto + +# start and stop the mosquitto MQTT message broker + +test -x ${DAEMON} || exit 0 + +umask 022 + +. @SYSCONFDIR@/init.d/functions + +export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@" + +case "$1" in + start) + echo "Starting Mosquitto message broker" "mosquitto" + if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then + exit 0 + else + exit 1 + fi + ;; + stop) + echo "Stopping Mosquitto message broker" "mosquitto" + if start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE}; then + rm -f ${PIDFILE} + exit 0 + else + exit 1 + fi + ;; + + + reload|force-reload) + if [ -f ${PIDFILE} ] ; then + echo "Reloading configuration for mosquitto" + pid=`cat ${PIDFILE}` + kill -HUP $pid + else + echo "mosquitto does not seem to be running" + fi + ;; + + restart) + echo "Restarting Mosquitto message broker" "mosquitto" + if start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${PIDFILE}; then + rm -f ${PIDFILE} + fi + if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then + exit 0 + else + exit 1 + fi + ;; + + status) + status ${DAEMON} && exit 0 || exit $? + ;; + + *) + echo "Usage: $0 {start|stop|reload|force-reload|restart|status}" + exit 1 +esac + +exit 0 diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb new file mode 100644 index 000000000..b4adfdada --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb @@ -0,0 +1,96 @@ +SUMMARY = "Open source MQTT v3.1/3.1.1 implemention" +DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker that implements the MQ Telemetry Transport protocol version 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. " +HOMEPAGE = "http://mosquitto.org/" +SECTION = "console/network" +LICENSE = "EPL-1.0 | EDL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62ddc846179e908dc0c8efec4a42ef20 \ + file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \ + file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \ + file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \ +" +DEPENDS = "uthash" + +SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \ + file://0002-uthash-remove-in-tree-version.patch \ + file://mosquitto.init \ +" + +SRC_URI[md5sum] = "f98c99998a36a234f3a9d9b402b991db" +SRC_URI[sha256sum] = "8557bc7ae34dfaf32a0fb56d2491b7a7f731269c88337227233013502df4d5b0" + +inherit systemd update-rc.d useradd + +PACKAGECONFIG ??= "ssl uuid \ + ${@bb.utils.filter('DISTRO_FEATURES','systemd', d)} \ + " + +PACKAGECONFIG[dns-srv] = ",,c-ares" +PACKAGECONFIG[ssl] = ",,openssl" +PACKAGECONFIG[uuid] = ",,util-linux" +PACKAGECONFIG[systemd] = "WITH_SYSTEMD=yes,WITH_SYSTEMD=no,systemd" +PACKAGECONFIG[websockets] = ",,libwebsockets" + +EXTRA_OEMAKE = " \ + prefix=${prefix} \ + mandir=${mandir} \ + localedir=${localedir} \ + ${@bb.utils.contains('PACKAGECONFIG', 'dns-srv', 'WITH_SRV=yes', 'WITH_SRV=no', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'ssl', 'WITH_TLS=yes WITH_TLS_PSK=yes', 'WITH_TLS=no WITH_TLS_PSK=no', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'uuid', 'WITH_UUID=yes', 'WITH_UUID=no', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'websockets', 'WITH_WEBSOCKETS=yes', 'WITH_WEBSOCKETS=no', d)} \ + STRIP=/bin/true \ + WITH_DOCS=no \ +" + +export LIB_SUFFIX = "${@d.getVar('baselib', True).replace('lib', '')}" + +do_install() { + oe_runmake 'DESTDIR=${D}' install + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${S}/service/systemd/mosquitto.service.notify ${D}${systemd_unitdir}/system/mosquitto.service + + install -d ${D}${sysconfdir}/mosquitto + install -m 0644 ${D}${sysconfdir}/mosquitto/mosquitto.conf.example \ + ${D}${sysconfdir}/mosquitto/mosquitto.conf + + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto + sed -i -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ + -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + ${D}${sysconfdir}/init.d/mosquitto +} + +PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients" + +PACKAGE_BEFORE_PN = "${PN}-examples" + +FILES_${PN} = "${sbindir}/mosquitto \ + ${bindir}/mosquitto_passwd \ + ${sysconfdir}/mosquitto \ + ${sysconfdir}/init.d \ + ${systemd_unitdir}/system/mosquitto.service \ +" + +CONFFILES_${PN} += "${sysconfdir}/mosquitto/mosquitto.conf" + +FILES_libmosquitto1 = "${libdir}/libmosquitto.so.1" + +FILES_libmosquittopp1 = "${libdir}/libmosquittopp.so.1" + +FILES_${PN}-clients = "${bindir}/mosquitto_pub \ + ${bindir}/mosquitto_sub \ +" + +FILES_${PN}-examples = "${sysconfdir}/mosquitto/*.example" + +SYSTEMD_SERVICE_${PN} = "mosquitto.service" + +INITSCRIPT_NAME = "mosquitto" +INITSCRIPT_PARAMS = "defaults 30" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false \ + --user-group mosquitto" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.4.bb new file mode 100644 index 000000000..fa6b43ace --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.4.bb @@ -0,0 +1,28 @@ +SUMMARY = "nanomsg socket library" +DESCRIPTION = "nanomsg is a socket library that provides several common \ +communication patterns. It aims to make the networking layer fast, scalable, \ +and easy to use. Implemented in C, it works on a wide range of operating \ +systems with no further dependencies." +HOMEPAGE = "https://nanomsg.org/" +LICENSE = "MIT-X" +LIC_FILES_CHKSUM = "file://COPYING;md5=587b3fd7fd291e418ff4d2b8f3904755" + +SECTION = "libs/networking" + +SRC_URI = "git://github.com/nanomsg/nanomsg.git;protocol=https" +SRCREV = "e7f8a751316b942d8962cd0232c2d606c1d9a9db" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +# nanomsg documentation generation requires asciidoctor, +# not asciidoc, and currently there's no asciidoctor-native +# recipe anywhere in openembedded-core or meta-openembedded +EXTRA_OECMAKE = " -DNN_ENABLE_DOC=OFF " + +# we don't want nanomsg-tools to be renamed to libnanomsg-tools +DEBIAN_NOAUTONAME_${PN}-tools = "1" + +PACKAGES =+ "${PN}-tools" +FILES_${PN}-tools = "${bindir}/*" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.10.bb index 1b604ad52..9159fcbf6 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.10.bb @@ -9,8 +9,9 @@ DEPENDS = "dbus dbus-glib networkmanager openvpn intltool-native glib-2.0-native inherit gnomebase useradd gettext systemd SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz" -SRC_URI[md5sum] = "9f325be386aa906ff9b0b7c0bdf2a59a" -SRC_URI[sha256sum] = "3e0b4007f248d96df4b8eb5d0f937536044af7053debbbf525e67c9bc5d30654" + +SRC_URI[md5sum] = "f118226ed2bfbacfd64ac4d1e0bd0383" +SRC_URI[sha256sum] = "ac86a7a539d78df90095676e9183f2d422fb93dbfe4b3afef22f81825d303d61" S = "${WORKDIR}/NetworkManager-openvpn-${PV}" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch new file mode 100644 index 000000000..0c415bce7 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch @@ -0,0 +1,53 @@ +From 3f4b6319701834182304c4079119780f4ae5b49b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 7 Nov 2018 11:30:44 -0800 +Subject: [PATCH] Do not include net/ethernet.h and linux/if_ether.h + +They conflict when used together especially with musl +removing them still keeps it working so it seems they are redundant + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + shared/n-acd/src/n-acd.c | 1 - + src/platform/wpan/nm-wpan-utils.h | 2 -- + src/settings/nm-settings-connection.h | 2 -- + 3 files changed, 5 deletions(-) + +diff --git a/shared/n-acd/src/n-acd.c b/shared/n-acd/src/n-acd.c +index 9164f95..9538e50 100644 +--- a/shared/n-acd/src/n-acd.c ++++ b/shared/n-acd/src/n-acd.c +@@ -23,7 +23,6 @@ + #include <errno.h> + #include <limits.h> + #include <linux/filter.h> +-#include <linux/if_ether.h> + #include <linux/if_packet.h> + #include <net/ethernet.h> + #include <netinet/if_ether.h> +diff --git a/src/platform/wpan/nm-wpan-utils.h b/src/platform/wpan/nm-wpan-utils.h +index f7d0c03..e1c81f5 100644 +--- a/src/platform/wpan/nm-wpan-utils.h ++++ b/src/platform/wpan/nm-wpan-utils.h +@@ -20,8 +20,6 @@ + #ifndef __WPAN_UTILS_H__ + #define __WPAN_UTILS_H__ + +-#include <net/ethernet.h> +- + #include "nm-dbus-interface.h" + #include "platform/nm-netlink.h" + +diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h +index e796b71..c01fef6 100644 +--- a/src/settings/nm-settings-connection.h ++++ b/src/settings/nm-settings-connection.h +@@ -22,8 +22,6 @@ + #ifndef __NETWORKMANAGER_SETTINGS_CONNECTION_H__ + #define __NETWORKMANAGER_SETTINGS_CONNECTION_H__ + +-#include <net/ethernet.h> +- + #include "nm-dbus-object.h" + #include "nm-connection.h" + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch index 719442319..49a07353d 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch @@ -1,8 +1,7 @@ From 18f71c1b48730b8602826517f2b5b088283ae948 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 31 Mar 2017 16:48:00 -0700 -Subject: [PATCH 5/7] sd-lldp.h: Remove net/ethernet.h seems to be over - specified +Subject: [PATCH] sd-lldp.h: Remove net/ethernet.h seems to be over specified Signed-off-by: Khem Raj <raj.khem@gmail.com> --- @@ -14,7 +13,7 @@ diff --git a/src/systemd/src/libsystemd-network/sd-lldp.c b/src/systemd/src/libs index 31e2448..7721cc2 100644 --- a/src/systemd/src/libsystemd-network/sd-lldp.c +++ b/src/systemd/src/libsystemd-network/sd-lldp.c -@@ -21,6 +21,7 @@ +@@ -3,6 +3,7 @@ #include "nm-sd-adapt.h" #include <arpa/inet.h> @@ -26,7 +25,7 @@ diff --git a/src/systemd/src/systemd/sd-lldp.h b/src/systemd/src/systemd/sd-lldp index 3f35eeb..61b0e45 100644 --- a/src/systemd/src/systemd/sd-lldp.h +++ b/src/systemd/src/systemd/sd-lldp.h -@@ -22,7 +22,7 @@ +@@ -18,7 +18,7 @@ ***/ #include <inttypes.h> diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch index 28848d354..351f264cb 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch @@ -1,7 +1,7 @@ From 583f0448fb7e9aba2b410c06eec6f420b41a6a0c Mon Sep 17 00:00:00 2001 From: Pablo Saavedra <psaavedra@igalia.com> Date: Tue, 13 Mar 2018 17:36:20 +0100 -Subject: [PATCH 7/7] Fixed configure.ac: Fix pkgconfig sysroot locations +Subject: [PATCH] Fixed configure.ac: Fix pkgconfig sysroot locations --- configure.ac | 2 +- @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index 51e5eb6..c9d3e56 100644 --- a/configure.ac +++ b/configure.ac -@@ -669,7 +669,7 @@ else +@@ -572,7 +572,7 @@ if test "$have_jansson" = "yes"; then AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled]) AC_CHECK_TOOLS(READELF, [eu-readelf readelf]) diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch index 92485f044..c50293c09 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch @@ -13,15 +13,15 @@ Upstream-Status: Inappropriate [OE specific] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> --- - Makefile.am | 18 ++---------------- - configure.ac | 4 ---- - 2 files changed, 2 insertions(+), 20 deletions(-) + Makefile.am | 20 -------------------- + configure.ac | 5 ----- + 2 files changed, 25 deletions(-) diff --git a/Makefile.am b/Makefile.am -index 639921d..314a61d 100644 +index 1e100f6..d31e3c1 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -961,9 +961,7 @@ endif +@@ -1115,9 +1115,7 @@ EXTRA_DIST += \ if HAVE_INTROSPECTION libnm_noinst_data = \ @@ -31,37 +31,39 @@ index 639921d..314a61d 100644 libnm/nm-settings-keyfile-docs.xml \ libnm/nm-settings-ifcfg-rh-docs.xml -@@ -3317,23 +3315,11 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) +@@ -3692,27 +3690,9 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums) $(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp - clients_common_settings_doc_c = clients/common/settings-docs.c + clients_common_settings_doc_h = clients/common/settings-docs.h -if HAVE_INTROSPECTION --$(clients_common_settings_doc_c): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp +-$(clients_common_settings_doc_h): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp - $(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^) --DISTCLEANFILES += $(clients_common_settings_doc_c) --check-local-settings-docs: $(clients_common_settings_doc_c) -- @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \ -- if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)" ; then \ -- echo "The generated file \"$(builddir)/$(clients_common_settings_doc_c)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_c).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes"; \ -- false; \ +-DISTCLEANFILES += $(clients_common_settings_doc_h) +-check-local-settings-docs: $(clients_common_settings_doc_h) +- @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \ +- if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)" ; then \ +- if test "$$NM_TEST_REGENERATE" == 1 ; then \ +- cp -f "$(builddir)/$(clients_common_settings_doc_h)" "$(srcdir)/$(clients_common_settings_doc_h).in"; \ +- else \ +- echo "The generated file \"$(builddir)/$(clients_common_settings_doc_h)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_h).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes". You can also automatically copy the file by rerunning the test with \$$NM_TEST_REGENERATE=1 ; \ +- false; \ +- fi; \ - fi;\ - fi -check_local += check-local-settings-docs -else -+ - $(clients_common_settings_doc_c): $(clients_common_settings_doc_c).in clients/common/.dirstamp - $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)" + $(clients_common_settings_doc_h): $(clients_common_settings_doc_h).in clients/common/.dirstamp + $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)" check-local-settings-docs: -endif -+ EXTRA_DIST += \ - $(clients_common_settings_doc_c) \ - $(clients_common_settings_doc_c).in + $(clients_common_settings_doc_h) \ + $(clients_common_settings_doc_h).in diff --git a/configure.ac b/configure.ac -index c9d3e56..407222e 100644 +index 79dc3b9..23d14a6 100644 --- a/configure.ac +++ b/configure.ac -@@ -1286,10 +1286,6 @@ GTK_DOC_CHECK(1.0) +@@ -1195,11 +1195,6 @@ GTK_DOC_CHECK(1.0) # check if we can build setting property documentation build_docs=no if test -n "$INTROSPECTION_MAKEFILE"; then @@ -69,9 +71,10 @@ index c9d3e56..407222e 100644 - if ! "$PYTHON" -c 'from gi.repository import GObject' >& /dev/null; then - AC_MSG_ERROR(["--enable-introspection aims to build the settings documentation. This requires GObject introspection for python (pygobject)]) - fi - +- AC_PATH_PROG(PERL, perl) if test -z "$PERL"; then + AC_MSG_ERROR([--enable-introspection requires perl]) -- -2.14.3 +2.14.5 diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch index 9d208e1fd..00dda5b18 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch @@ -1,7 +1,7 @@ From e92de7409a3e107f90d108a9c5d49bd0418296dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> Date: Thu, 22 Mar 2018 17:54:10 +0100 -Subject: [PATCH 1/4] Usual fix for musl libc +Subject: [PATCH] Usual fix for musl libc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -13,18 +13,19 @@ Stolen from [1] and prettyfied slightly [1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> + --- src/systemd/src/basic/stdio-util.h | 2 ++ src/systemd/src/basic/util.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/systemd/src/basic/stdio-util.h b/src/systemd/src/basic/stdio-util.h -index bd1144b..9eafacb 100644 +index 73c0327..e1ce64f 100644 --- a/src/systemd/src/basic/stdio-util.h +++ b/src/systemd/src/basic/stdio-util.h -@@ -19,7 +19,9 @@ - along with systemd; If not, see <http://www.gnu.org/licenses/>. - ***/ +@@ -1,7 +1,9 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + #pragma once +#if defined(__GLIBC__) #include <printf.h> @@ -36,7 +37,7 @@ diff --git a/src/systemd/src/basic/util.h b/src/systemd/src/basic/util.h index b31dfd1..9b7032c 100644 --- a/src/systemd/src/basic/util.h +++ b/src/systemd/src/basic/util.h -@@ -46,6 +46,11 @@ +@@ -28,6 +28,11 @@ #include "missing.h" #include "time-util.h" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch index 548cccb32..c162c1dfb 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch @@ -1,7 +1,7 @@ From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> Date: Thu, 22 Mar 2018 18:18:06 +0100 -Subject: [PATCH 2/4] musl: dlopen is included so LD_LIBS="" instead of +Subject: [PATCH] musl: dlopen is included so LD_LIBS="" instead of LD_LIBS="none required" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -22,7 +22,7 @@ diff --git a/configure.ac b/configure.ac index 487a266..96ae4f7 100644 --- a/configure.ac +++ b/configure.ac -@@ -305,6 +305,7 @@ dnl +@@ -235,6 +235,7 @@ dnl dnl Checks for libdl - on certain platforms its part of libc dnl AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=]) diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch index 5dd17b63b..9a58c0e34 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch @@ -1,7 +1,7 @@ From 714b4731a238653e9c7d885c0dee10677b0a4df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> Date: Thu, 22 Mar 2018 18:24:07 +0100 -Subject: [PATCH 3/4] musl: network support +Subject: [PATCH] musl: network support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -15,7 +15,7 @@ Stolen from [1] and prettyfied slightly Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> --- libnm-core/nm-utils.h | 4 ++++ - src/platform/wifi/wifi-utils.h | 4 ++++ + src/platform/wifi/nm-wifi-utils.h | 4 ++++ src/systemd/src/basic/socket-util.h | 5 +++++ 3 files changed, 13 insertions(+) @@ -35,10 +35,10 @@ index df9284b..2bcf4b8 100644 #include <linux/if_infiniband.h> #include "nm-core-enum-types.h" -diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h +diff --git a/src/platform/wifi/nm-wifi-utils.h b/src/platform/wifi/nm-wifi-utils.h index 705717b..da3edc4 100644 ---- a/src/platform/wifi/wifi-utils.h -+++ b/src/platform/wifi/wifi-utils.h +--- a/src/platform/wifi/nm-wifi-utils.h ++++ b/src/platform/wifi/nm-wifi-utils.h @@ -22,7 +22,11 @@ #ifndef __WIFI_UTILS_H__ #define __WIFI_UTILS_H__ @@ -50,12 +50,12 @@ index 705717b..da3edc4 100644 +#endif #include "nm-dbus-interface.h" - + #include "nm-setting-wireless.h" diff --git a/src/systemd/src/basic/socket-util.h b/src/systemd/src/basic/socket-util.h index d7e2d85..d109c84 100644 --- a/src/systemd/src/basic/socket-util.h +++ b/src/systemd/src/basic/socket-util.h -@@ -29,6 +29,11 @@ +@@ -11,6 +11,11 @@ #include <linux/netlink.h> #include <linux/if_infiniband.h> #include <linux/if_packet.h> diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch index fc55ce85f..9e5c94336 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch @@ -1,7 +1,7 @@ From d513c8bfc982dbd976617178b040c512c95710b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> -Date: Thu, 22 Mar 2018 18:29:00 +0100 -Subject: [PATCH 4/4] musl: process-util +Date: Thu, 25 Oct 2018 09:57:07 +0200 +Subject: [PATCH] musl: process-util MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -18,10 +18,10 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> 1 file changed, 9 insertions(+) diff --git a/src/systemd/src/basic/process-util.c b/src/systemd/src/basic/process-util.c -index 272030d..485f1db 100644 +index 1412f03..45f5049 100644 --- a/src/systemd/src/basic/process-util.c +++ b/src/systemd/src/basic/process-util.c -@@ -36,6 +36,9 @@ +@@ -21,6 +21,9 @@ #include <sys/wait.h> #include <syslog.h> #include <unistd.h> @@ -31,7 +31,7 @@ index 272030d..485f1db 100644 #if 0 /* NM_IGNORED */ #if HAVE_VALGRIND_VALGRIND_H #include <valgrind/valgrind.h> -@@ -1015,11 +1018,13 @@ static void reset_cached_pid(void) { +@@ -1153,11 +1156,13 @@ void reset_cached_pid(void) { cached_pid = CACHED_PID_UNSET; } @@ -39,24 +39,24 @@ index 272030d..485f1db 100644 /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against * libpthread, as it is part of glibc anyway. */ - extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle); + extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle); extern void* __dso_handle __attribute__ ((__weak__)); +#endif pid_t getpid_cached(void) { - pid_t current_value; -@@ -1042,7 +1047,11 @@ pid_t getpid_cached(void) { - - new_pid = getpid(); + static bool installed = false; +@@ -1186,7 +1191,11 @@ pid_t getpid_cached(void) { + * only half-documented (glibc doesn't document it but LSB does — though only superficially) + * we'll check for errors only in the most generic fashion possible. */ +#ifdef __GLIBC__ - if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) { + if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) { +#else -+ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) { ++ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) { +#endif - /* OOM? Let's try again later */ - cached_pid = CACHED_PID_UNSET; - return new_pid; + /* OOM? Let's try again later */ + cached_pid = CACHED_PID_UNSET; + return new_pid; -- -2.14.3 +2.14.5 diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch index 752fe4f58..6bca95e18 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch @@ -17,10 +17,10 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> 4 files changed, 8 insertions(+) diff --git a/src/systemd/src/systemd/sd-dhcp-client.h b/src/systemd/src/systemd/sd-dhcp-client.h -index 5e46d8d..18a613f 100644 +index e388552..9c4dde8 100644 --- a/src/systemd/src/systemd/sd-dhcp-client.h +++ b/src/systemd/src/systemd/sd-dhcp-client.h -@@ -21,7 +21,9 @@ +@@ -20,7 +20,9 @@ ***/ #include <inttypes.h> @@ -31,10 +31,10 @@ index 5e46d8d..18a613f 100644 #include <sys/types.h> diff --git a/src/systemd/src/systemd/sd-dhcp-lease.h b/src/systemd/src/systemd/sd-dhcp-lease.h -index 7ab99cc..85acdf2 100644 +index 2a60145..19d1814 100644 --- a/src/systemd/src/systemd/sd-dhcp-lease.h +++ b/src/systemd/src/systemd/sd-dhcp-lease.h -@@ -22,7 +22,9 @@ +@@ -19,7 +19,9 @@ ***/ #include <inttypes.h> @@ -45,24 +45,24 @@ index 7ab99cc..85acdf2 100644 #include <sys/types.h> diff --git a/src/systemd/src/systemd/sd-dhcp6-client.h b/src/systemd/src/systemd/sd-dhcp6-client.h -index 7819f0d..35f30ee 100644 +index fa36dca..2d25010 100644 --- a/src/systemd/src/systemd/sd-dhcp6-client.h +++ b/src/systemd/src/systemd/sd-dhcp6-client.h -@@ -21,7 +21,9 @@ +@@ -20,7 +20,9 @@ ***/ #include <inttypes.h> +#if defined(__GLIBC__) #include <net/ethernet.h> +#endif + #include <stdbool.h> #include <sys/types.h> - #include "sd-dhcp6-lease.h" diff --git a/src/systemd/src/systemd/sd-ipv4ll.h b/src/systemd/src/systemd/sd-ipv4ll.h -index 5ba9208..c90eca6 100644 +index 71bd4cf..1c667ba 100644 --- a/src/systemd/src/systemd/sd-ipv4ll.h +++ b/src/systemd/src/systemd/sd-ipv4ll.h -@@ -20,7 +20,9 @@ +@@ -19,7 +19,9 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ @@ -73,5 +73,5 @@ index 5ba9208..c90eca6 100644 #include "sd-event.h" -- -2.14.3 +2.14.5 diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch index 8ed7ee64f..023a4d9ad 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch @@ -18,7 +18,7 @@ diff --git a/src/systemd/src/basic/in-addr-util.c b/src/systemd/src/basic/in-add index 2a02d90..a57c360 100644 --- a/src/systemd/src/basic/in-addr-util.c +++ b/src/systemd/src/basic/in-addr-util.c -@@ -30,6 +30,7 @@ +@@ -13,6 +13,7 @@ #include "in-addr-util.h" #include "macro.h" #include "parse-util.h" @@ -30,7 +30,7 @@ diff --git a/src/systemd/src/basic/string-util.h b/src/systemd/src/basic/string- index 4c94b18..a6dc446 100644 --- a/src/systemd/src/basic/string-util.h +++ b/src/systemd/src/basic/string-util.h -@@ -44,6 +44,11 @@ +@@ -26,6 +26,11 @@ #define strcaseeq(a,b) (strcasecmp((a),(b)) == 0) #define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0) diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb index 09c5dbd18..4cc4dbab5 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb @@ -5,16 +5,13 @@ SECTION = "net/misc" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \ file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \ - file://docs/api/html/license.html;md5=77b9e362690c149da196aefe7712db30 \ + file://docs/api/html/license.html;md5=2d56a1b0c42e388aa86aef59b154e8c3 \ " DEPENDS = " \ intltool-native \ libxslt-native \ libnl \ - dbus \ - dbus-glib \ - dbus-glib-native \ libgudev \ util-linux \ libndp \ @@ -31,6 +28,7 @@ SRC_URI = " \ file://0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \ file://0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \ file://0003-Do-not-create-settings-settings-property-documentati.patch \ + file://0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch \ file://musl/0001-musl-basic.patch \ file://musl/0002-musl-dlopen-configure-ac.patch \ file://musl/0003-musl-network-support.patch \ @@ -38,15 +36,16 @@ SRC_URI = " \ file://musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch \ file://musl/0006-Add-a-strndupa-replacement-for-musl.patch \ " -SRC_URI[md5sum] = "de3c7147a693da6f80eb22f126086a14" -SRC_URI[sha256sum] = "6af0b1e856a3725f88791f55c4fbb04105dc0b20dbf182aaec8aad16481fac76" +SRC_URI[md5sum] = "54ce62f0aa18ef6c5e754eaac47494ac" +SRC_URI[sha256sum] = "35a3ede4c7d12d6212033c9e44cb82b7692f38063b53a067567f02f5937c8c18" + +UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.10/" +UPSTREAM_CHECK_REGEX = "NetworkManager\-(?P<pver>1\.10(\.\d+)+).tar.xz" S = "${WORKDIR}/NetworkManager-${PV}" EXTRA_OECONF = " \ --disable-ifcfg-rh \ - --disable-ifnet \ - --disable-ifcfg-suse \ --disable-more-warnings \ --with-iptables=${sbindir}/iptables \ --with-tests \ @@ -66,7 +65,7 @@ do_compile_prepend() { export GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs" } -PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \ +PACKAGECONFIG ??= "nss ifupdown dhclient dnsmasq \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ ${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \ @@ -85,10 +84,10 @@ PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp" PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client" PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq" PACKAGECONFIG[nss] = "--with-crypto=nss,,nss" +PACKAGECONFIG[glib] = "--with-libnm-glib,,dbus-glib-native dbus-glib" PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls" -PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,wireless-tools,wpa-supplicant wireless-tools" +PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,,wpa-supplicant" PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown" -PACKAGECONFIG[netconfig] = "--with-netconfig=yes,--with-netconfig=no" PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free" PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \ @@ -104,8 +103,7 @@ FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so" FILES_${PN} += " \ ${libexecdir} \ - ${libdir}/pppd/*/nm-pppd-plugin.so \ - ${libdir}/NetworkManager/*.so \ + ${libdir}/NetworkManager/${PV}/*.so \ ${nonarch_libdir}/NetworkManager/VPN \ ${nonarch_libdir}/NetworkManager/conf.d \ ${datadir}/polkit-1 \ @@ -123,6 +121,7 @@ FILES_${PN}-dev += " \ ${datadir}/NetworkManager/gdb-cmd \ ${libdir}/pppd/*/*.la \ ${libdir}/NetworkManager/*.la \ + ${libdir}/NetworkManager/${PV}/*.la \ " FILES_${PN}-nmtui = " \ diff --git a/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb index cea1f08f9..4fe6893fa 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb @@ -30,8 +30,14 @@ SRC_URI += "file://rdist-6.1.5-linux.patch \ file://rdist-6.1.5-makefile-add-ldflags.patch \ " +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/rdist/files/rdist/" +UPSTREAM_CHECK_REGEX = "/rdist/(?P<pver>\d+(\.\d+)+)" + DEPENDS = "bison-native" inherit autotools-brokensep EXTRA_OEMAKE = "BIN_GROUP=root MAN_GROUP=root RDIST_MODE=755 RDISTD_MODE=755 MAN_MODE=644" + +# http://errors.yoctoproject.org/Errors/Details/186972/ +EXCLUDE_FROM_WORLD_libc-musl = "1" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch new file mode 100644 index 000000000..4c94831d7 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch @@ -0,0 +1,86 @@ +From 0bc8bc4143a58f91f6d7ce228b6763f377fdf45a Mon Sep 17 00:00:00 2001 +From: Andrew Bartlett <abartlet@samba.org> +Date: Thu, 12 Jul 2018 12:34:56 +1200 +Subject: [PATCH] ldb: Refuse to build Samba against a newer minor version of + ldb + +Samba is not compatible with new versions of ldb (except release versions) + +Other users would not notice the breakages, but Samba makes many +more assuptions about the LDB internals than any other package. + +(Specifically, LDB 1.2 and 1.4 broke builds against released +Samba versions) + +BUG: https://bugzilla.samba.org/show_bug.cgi?id=13519 + +Signed-off-by: Andrew Bartlett <abartlet@samba.org> +Reviewed-by: Gary Lockyer <gary@catalyst.net.nz> +(cherry picked from commit 52efa796538ae004ca62ea32fc8c833472991be6) +--- + lib/ldb/wscript | 32 ++++++++++++++++++++++---------- + 1 file changed, 22 insertions(+), 10 deletions(-) + +diff --git a/lib/ldb/wscript b/lib/ldb/wscript +index d94086b..2bb0832 100644 +--- a/lib/ldb/wscript ++++ b/lib/ldb/wscript +@@ -62,23 +62,33 @@ def configure(conf): + conf.env.standalone_ldb = conf.IN_LAUNCH_DIR() + + if not conf.env.standalone_ldb: ++ max_ldb_version = [int(x) for x in VERSION.split(".")] ++ max_ldb_version[2] = 999 ++ max_ldb_version_dots = "%d.%d.%d" % tuple(max_ldb_version) ++ + if conf.env.disable_python: +- if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION, +- onlyif='talloc tdb tevent', +- implied_deps='replace talloc tdb tevent'): ++ if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', ++ minversion=VERSION, ++ maxversion=max_ldb_version_dots, ++ onlyif='talloc tdb tevent', ++ implied_deps='replace talloc tdb tevent'): + conf.define('USING_SYSTEM_LDB', 1) + else: + using_system_pyldb_util = True +- if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=VERSION, +- onlyif='talloc tdb tevent', +- implied_deps='replace talloc tdb tevent ldb'): ++ if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', ++ minversion=VERSION, ++ maxversion=max_ldb_version_dots, ++ onlyif='talloc tdb tevent', ++ implied_deps='replace talloc tdb tevent ldb'): + using_system_pyldb_util = False + + # We need to get a pyldb-util for all the python versions + # we are building for + if conf.env['EXTRA_PYTHON']: + name = 'pyldb-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG'] +- if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION, ++ if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, ++ minversion=VERSION, ++ maxversion=max_ldb_version_dots, + onlyif='talloc tdb tevent', + implied_deps='replace talloc tdb tevent ldb'): + using_system_pyldb_util = False +@@ -86,9 +96,11 @@ def configure(conf): + if using_system_pyldb_util: + conf.define('USING_SYSTEM_PYLDB_UTIL', 1) + +- if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION, +- onlyif='talloc tdb tevent pyldb-util', +- implied_deps='replace talloc tdb tevent'): ++ if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', ++ minversion=VERSION, ++ maxversion=max_ldb_version_dots, ++ onlyif='talloc tdb tevent pyldb-util', ++ implied_deps='replace talloc tdb tevent'): + conf.define('USING_SYSTEM_LDB', 1) + + if conf.CONFIG_SET('USING_SYSTEM_LDB'): +-- +2.18.0 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch deleted file mode 100644 index 0e89a9be0..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch +++ /dev/null @@ -1,32 +0,0 @@ -Upstream-Status: Submitted [https://github.com/samba-team/samba/pull/70] - -Signed-off-by: Andreas Oberritter <obi@opendreambox.org> - -From 50eac4fd30944e5e1d83060757633fe0ed572723 Mon Sep 17 00:00:00 2001 -From: Andreas Oberritter <obi@opendreambox.org> -Date: Wed, 30 Nov 2016 16:25:06 +0100 -Subject: [PATCH] packaging: Avoid timeout for nmbd if started offline with - systemd - -If no network connection appears within DefaultTimeoutStartSec -(~ 90s) after startup, nmbd fails to notify systemd and will -therefore get killed. - -Signed-off-by: Andreas Oberritter <obi@opendreambox.org> - ---- - packaging/systemd/nmb.service | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/packaging/systemd/nmb.service b/packaging/systemd/nmb.service -index 71c93d6..f3d2fc2 100644 ---- a/packaging/systemd/nmb.service -+++ b/packaging/systemd/nmb.service -@@ -10,6 +10,7 @@ EnvironmentFile=-/etc/sysconfig/samba - ExecStart=/usr/sbin/nmbd --foreground --no-process-group $NMBDOPTIONS - ExecReload=/usr/bin/kill -HUP $MAINPID - LimitCORE=infinity -+TimeoutStartSec=0 - - [Install] - WantedBy=multi-user.target diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch deleted file mode 100644 index cdf7a38c1..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 5413f97290d3126262eb309ecbcf7769509f2a11 Mon Sep 17 00:00:00 2001 -From: Jackie Huang <jackie.huang@windriver.com> -Date: Tue, 10 Nov 2015 00:48:35 -0500 -Subject: [PATCH 6/7] avoid using colon in the checking msg - -Upstream-Status: Pending - -colon is used as the separator when parse from -a answers file, the colon here makes it never -get the right answer. - -Signed-off-by: Jackie Huang <jackie.huang@windriver.com> ---- - wscript_configure_system_mitkrb5 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5 -index a62d00b..a2d89f0 100644 ---- a/wscript_configure_system_mitkrb5 -+++ b/wscript_configure_system_mitkrb5 -@@ -240,7 +240,7 @@ conf.CHECK_CODE(''' - ''', - 'HAVE_WRFILE_KEYTAB', - headers='krb5.h', lib='krb5', execute=True, -- msg="Checking whether the WRFILE:-keytab is supported"); -+ msg="Checking whether the WRFILE -keytab is supported"); - # Check for KRB5_DEPRECATED handling - conf.CHECK_CODE('''#define KRB5_DEPRECATED 1 - #include <krb5.h>''', --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch index 71db99c5d..a75ac2bba 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch @@ -1,15 +1,23 @@ -Musl does not have _r versions of getent() and getpwent() APIs +From 02e0b14d8fa025a5db410d60a7c0dfebd536aaeb Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 6 Nov 2016 23:40:54 -0800 +Subject: [PATCH] Musl does not have _r versions of getent() and getpwent() + APIs Taken from gentoo http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.3.9-remove-getpwent_r.patch Signed-off-by: Khem Raj <raj.khem@gmail.com> -Index: samba-4.4.5/source4/torture/local/nss_tests.c -=================================================================== ---- samba-4.4.5.orig/source4/torture/local/nss_tests.c -+++ samba-4.4.5/source4/torture/local/nss_tests.c -@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct tortu +--- + source4/torture/local/nss_tests.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c +index 2cd6122..04f13c6 100644 +--- a/source4/torture/local/nss_tests.c ++++ b/source4/torture/local/nss_tests.c +@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct torture_context *tctx, return true; } @@ -17,7 +25,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c static bool test_getgrgid(struct torture_context *tctx, gid_t gid, struct group *grp_p) -@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct tort +@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct torture_context *tctx, return true; } @@ -25,7 +33,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c static bool test_enum_r_passwd(struct torture_context *tctx, struct passwd **pwd_array_p, size_t *num_pwd_p) -@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct to +@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx, return true; } @@ -33,7 +41,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c static bool torture_assert_passwd_equal(struct torture_context *tctx, const struct passwd *p1, -@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture +@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture_context *tctx) struct passwd *pwd, pwd1, pwd2; size_t num_pwd; @@ -42,7 +50,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c "failed to enumerate passwd"); for (i=0; i < num_pwd; i++) { -@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct t +@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx) struct passwd *pwd, pwd1, pwd2, pwd3, pwd4; size_t num_pwd; @@ -51,7 +59,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c "failed to enumerate passwd"); for (i=0; i < num_pwd; i++) { -@@ -531,6 +532,7 @@ static bool test_enum_group(struct tortu +@@ -531,6 +532,7 @@ static bool test_enum_group(struct torture_context *tctx, return true; } @@ -59,7 +67,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c static bool test_enum_r_group(struct torture_context *tctx, struct group **grp_array_p, size_t *num_grp_p) -@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct tor +@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct torture_context *tctx, return true; } @@ -67,7 +75,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c static bool torture_assert_group_equal(struct torture_context *tctx, const struct group *g1, -@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_ +@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_context *tctx) struct group *grp, grp1, grp2; size_t num_grp; @@ -76,7 +84,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c "failed to enumerate group"); for (i=0; i < num_grp; i++) { -@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct to +@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct torture_context *tctx) struct group *grp, grp1, grp2, grp3, grp4; size_t num_grp; diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch index 0cbacb6c0..27b40f215 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch @@ -1,14 +1,21 @@ -Lifted from gentoo and ported to 4.4.5 +From 54a5279cb33abd23ef7c094d51f16078ece2da0c Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 6 Nov 2016 23:40:54 -0800 +Subject: [PATCH] Lifted from gentoo and ported to 4.4.5 http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.2.7-pam.patch Signed-off-by: Khem Raj <raj.khem@gmail.com> -Index: samba-4.7.0/source3/wscript -=================================================================== ---- samba-4.7.0.orig/source3/wscript -+++ samba-4.7.0/source3/wscript -@@ -875,7 +875,7 @@ msg.msg_accrightslen = sizeof(fd); +--- + source3/wscript | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/source3/wscript b/source3/wscript +index 5436db2..864f614 100644 +--- a/source3/wscript ++++ b/source3/wscript +@@ -879,7 +879,7 @@ msg.msg_accrightslen = sizeof(fd); if conf.env.with_iconv: conf.DEFINE('HAVE_ICONV', 1) @@ -17,7 +24,7 @@ Index: samba-4.7.0/source3/wscript use_pam=True conf.CHECK_HEADERS('security/pam_appl.h pam/pam_appl.h') if not conf.CONFIG_SET('HAVE_SECURITY_PAM_APPL_H') and not conf.CONFIG_SET('HAVE_PAM_PAM_APPL_H'): -@@ -952,6 +952,17 @@ int i; i = PAM_RADIO_TYPE; +@@ -956,6 +956,17 @@ int i; i = PAM_RADIO_TYPE; "or headers not found. Use --without-pam to disable " "PAM support."); diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf new file mode 100644 index 000000000..a0b87c373 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf @@ -0,0 +1,254 @@ +# +# Sample configuration file for the Samba suite for Debian GNU/Linux. +# +# +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options most of which +# are not shown in this example +# +# Some options that are often worth tuning have been included as +# commented-out examples in this file. +# - When such options are commented with ";", the proposed setting +# differs from the default Samba behaviour +# - When commented with "#", the proposed setting is the default +# behaviour of Samba but the option is considered important +# enough to be mentioned here +# +# NOTE: Whenever you modify this file you should run the command +# "testparm" to check that you have not made any basic syntactic +# errors. + +#======================= Global Settings ======================= + +[global] + +## Browsing/Identification ### + +# Change this to the workgroup/NT-domain name your Samba server will part of + workgroup = WORKGROUP + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable its WINS Server +# wins support = no + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# This will prevent nmbd to search for NetBIOS names through DNS. + dns proxy = no + +#### Networking #### + +# The specific set of interfaces / networks to bind to +# This can be either the interface name or an IP address/netmask; +# interface names are normally preferred +; interfaces = 127.0.0.0/8 eth0 + +# Only bind to the named interfaces and/or networks; you must use the +# 'interfaces' option above to use this. +# It is recommended that you enable this feature if your Samba machine is +# not protected by a firewall or is a firewall itself. However, this +# option cannot handle dynamic or non-broadcast interfaces correctly. +; bind interfaces only = yes + + + +#### Debugging/Accounting #### + +# This tells Samba to use a separate log file for each machine +# that connects + log file = /var/log/samba/log.%m + +# Cap the size of the individual log files (in KiB). + max log size = 1000 + +# If you want Samba to only log through syslog then set the following +# parameter to 'yes'. +# syslog only = no + +# We want Samba to log a minimum amount of information to syslog. Everything +# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log +# through syslog you should set the following parameter to something higher. + syslog = 0 + +# Do something sensible when Samba crashes: mail the admin a backtrace + panic action = /usr/share/samba/panic-action %d + + +####### Authentication ####### + +# Server role. Defines in which mode Samba will operate. Possible +# values are "standalone server", "member server", "classic primary +# domain controller", "classic backup domain controller", "active +# directory domain controller". +# +# Most people will want "standalone server" or "member server". +# Running as "active directory domain controller" will require first +# running "samba-tool domain provision" to wipe databases and create a +# new domain. + server role = standalone server + +# If you are using encrypted passwords, Samba will need to know what +# password database type you are using. + passdb backend = tdbsam + + obey pam restrictions = yes + +# This boolean parameter controls whether Samba attempts to sync the Unix +# password with the SMB password when the encrypted SMB password in the +# passdb is changed. + unix password sync = yes + +# For Unix password sync to work on a Debian GNU/Linux system, the following +# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for +# sending the correct chat script for the passwd program in Debian Sarge). + passwd program = /usr/bin/passwd %u + passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . + +# This boolean controls whether PAM will be used for password changes +# when requested by an SMB client instead of the program listed in +# 'passwd program'. The default is 'no'. + pam password change = yes + +# This option controls how unsuccessful authentication attempts are mapped +# to anonymous connections + map to guest = bad user + +########## Domains ########### + +# +# The following settings only takes effect if 'server role = primary +# classic domain controller', 'server role = backup domain controller' +# or 'domain logons' is set +# + +# It specifies the location of the user's +# profile directory from the client point of view) The following +# required a [profiles] share to be setup on the samba server (see +# below) +; logon path = \\%N\profiles\%U +# Another common choice is storing the profile in the user's home directory +# (this is Samba's default) +# logon path = \\%N\%U\profile + +# The following setting only takes effect if 'domain logons' is set +# It specifies the location of a user's home directory (from the client +# point of view) +; logon drive = H: +# logon home = \\%N\%U + +# The following setting only takes effect if 'domain logons' is set +# It specifies the script to run during logon. The script must be stored +# in the [netlogon] share +# NOTE: Must be store in 'DOS' file format convention +; logon script = logon.cmd + +# This allows Unix users to be created on the domain controller via the SAMR +# RPC pipe. The example command creates a user account with a disabled Unix +# password; please adapt to your needs +; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u + +# This allows machine accounts to be created on the domain controller via the +# SAMR RPC pipe. +# The following assumes a "machines" group exists on the system +; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u + +# This allows Unix groups to be created on the domain controller via the SAMR +# RPC pipe. +; add group script = /usr/sbin/addgroup --force-badname %g + +############ Misc ############ + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting +; include = /home/samba/etc/smb.conf.%m + +# Some defaults for winbind (make sure you're not using the ranges +# for something else.) +; idmap uid = 10000-20000 +; idmap gid = 10000-20000 +; template shell = /bin/bash + +# Setup usershare options to enable non-root users to share folders +# with the net usershare command. + +# Maximum number of usershare. 0 (default) means that usershare is disabled. +; usershare max shares = 100 + +# Allow users who've been granted usershare privileges to create +# public shares, not just authenticated ones + usershare allow guests = yes + +#======================= Share Definitions ======================= + +[homes] + comment = Home Directories + browseable = no + +# By default, the home directories are exported read-only. Change the +# next parameter to 'no' if you want to be able to write to them. + read only = yes + +# File creation mask is set to 0700 for security reasons. If you want to +# create files with group=rw permissions, set next parameter to 0775. + create mask = 0700 + +# Directory creation mask is set to 0700 for security reasons. If you want to +# create dirs. with group=rw permissions, set next parameter to 0775. + directory mask = 0700 + +# By default, \\server\username shares can be connected to by anyone +# with access to the samba server. +# The following parameter makes sure that only "username" can connect +# to \\server\username +# This might need tweaking when using external authentication schemes + valid users = %S + +# Un-comment the following and create the netlogon directory for Domain Logons +# (you need to configure Samba to act as a domain controller too.) +;[netlogon] +; comment = Network Logon Service +; path = /home/samba/netlogon +; guest ok = yes +; read only = yes + +# Un-comment the following and create the profiles directory to store +# users profiles (see the "logon path" option above) +# (you need to configure Samba to act as a domain controller too.) +# The path below should be writable by all users so that their +# profile directory may be created the first time they log on +;[profiles] +; comment = Users profiles +; path = /home/samba/profiles +; guest ok = no +; browseable = no +; create mask = 0600 +; directory mask = 0700 + +[printers] + comment = All Printers + browseable = no + path = /var/spool/samba + printable = yes + guest ok = no + read only = yes + create mask = 0700 + +# Windows clients look for this share name as a source of downloadable +# printer drivers +[print$] + comment = Printer Drivers + path = /var/lib/samba/printers + browseable = yes + read only = yes + guest ok = no +# Uncomment to allow remote administration of Windows print drivers. +# You may need to replace 'lpadmin' with the name of the group your +# admin users are members of. +# Please note that you also need to set appropriate Unix permissions +# to the drivers directory for these users to have write rights in it +; write list = root, @lpadmin + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch index 77c8b3626..6ae292835 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch @@ -1,4 +1,7 @@ -samba: correct log files location +From f99b6a8617df6a46f41fb68ffafb2608dbb6681e Mon Sep 17 00:00:00 2001 +From: Joe Slater <joe.slater@windriver.com> +Date: Wed, 8 Nov 2017 11:58:05 -0800 +Subject: [PATCH] samba: correct log files location We use /var/log/samba. @@ -6,9 +9,15 @@ Upstream-Status: Pending Signed-off-by: Joe Slater <joe.slater@windriver.com> ---- a/packaging/RHEL/setup/smb.conf -+++ b/packaging/RHEL/setup/smb.conf -@@ -63,7 +63,7 @@ +--- + examples/smb.conf.default | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/examples/smb.conf.default b/examples/smb.conf.default +index 2f20720..44c1aa8 100644 +--- a/examples/smb.conf.default ++++ b/examples/smb.conf.default +@@ -52,7 +52,7 @@ # this tells Samba to use a separate log file for each machine # that connects diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.7.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb index a8517c541..da0ac322a 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.7.6.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb @@ -13,31 +13,33 @@ ${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \ " SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ + file://smb.conf \ file://16-do-not-check-xsltproc-manpages.patch \ file://20-do-not-import-target-module-while-cross-compile.patch \ file://21-add-config-option-without-valgrind.patch \ - file://0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch \ - file://0006-avoid-using-colon-in-the-checking-msg.patch \ file://netdb_defines.patch \ file://glibc_only.patch \ file://iconv-4.7.0.patch \ file://dnsserver-4.7.0.patch \ file://smb_conf-4.7.0.patch \ file://volatiles.03_samba \ - " + file://0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch \ + " SRC_URI_append_libc-musl = " \ file://samba-pam.patch \ file://samba-4.3.9-remove-getpwent_r.patch \ " -SRC_URI[md5sum] = "0253021a45c479cec1e135b004a0177a" -SRC_URI[sha256sum] = "1eede30fc8ef6504e24602fb72b00baa0a7b73b59f16d25cb0771dc8c7c57d6e" +SRC_URI[md5sum] = "ca5bfbebd8d9eb95506e16594b2bbee2" +SRC_URI[sha256sum] = "f5044d149e01894a08b1d114b8b69aed78171a7bb19608bd1fd771453b9a5406" + +UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.8(\.\d+)+).tar.gz" inherit systemd waf-samba cpan-base perlnative update-rc.d # remove default added RDEPENDS on perl RDEPENDS_${PN}_remove = "perl" -DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libbsd libaio libpam" +DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libbsd libaio libpam" inherit distro_features_check REQUIRED_DISTRO_FEATURES = "pam" @@ -46,9 +48,6 @@ DEPENDS_append_libc-musl = " libtirpc" CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" LDFLAGS_append_libc-musl = " -ltirpc" -LSB = "" -LSB_linuxstdbase = "lsb" - INITSCRIPT_NAME = "samba" INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ." @@ -68,7 +67,6 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} acl ad-dc cups gnutls ldap mitkrb5 \ " -RDEPENDS_${PN}-base += "${LSB}" RDEPENDS_${PN}-ctdb-tests += "bash util-linux-getopt" PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl" @@ -106,7 +104,7 @@ SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODU # .so files so there will not be a conflict. This is not done consistantly, so be very careful # when adding to this list. # -SAMBA4_LIBS="heimdal,cmocka,NONE" +SAMBA4_LIBS="heimdal,cmocka,ldb,pyldb-util,NONE" EXTRA_OECONF += "--enable-fhs \ --with-piddir=/run \ @@ -137,7 +135,7 @@ do_install_append() { done install -d ${D}${systemd_system_unitdir} - install -m 0644 packaging/systemd/*.service ${D}${systemd_system_unitdir} + install -m 0644 ${S}/bin/default/packaging/systemd/*.service ${D}${systemd_system_unitdir}/ sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \ -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \ -i ${D}${systemd_system_unitdir}/*.service @@ -150,23 +148,18 @@ do_install_append() { install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf echo "d ${localstatedir}/log/samba 0755 root root -" \ >> ${D}${sysconfdir}/tmpfiles.d/samba.conf - if [ "${LSB}" = "lsb" ]; then - install -d ${D}${sysconfdir}/init.d - install -m 0755 packaging/LSB/samba.sh ${D}${sysconfdir}/init.d/samba - else - install -d ${D}${sysconfdir}/init.d - install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba - sed -e 's,/opt/samba/bin,${sbindir},g' \ - -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \ - -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \ - -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \ - -e 's,/usr/bin,${base_bindir},g' \ - -i ${D}${sysconfdir}/init.d/samba - fi + install -d ${D}${sysconfdir}/init.d + install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba + sed -e 's,/opt/samba/bin,${sbindir},g' \ + -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \ + -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \ + -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \ + -e 's,/usr/bin,${base_bindir},g' \ + -i ${D}${sysconfdir}/init.d/samba install -d ${D}${sysconfdir}/samba echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts - install -m644 packaging/RHEL/setup/smb.conf ${D}${sysconfdir}/samba/smb.conf + install -m644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba install -d ${D}${sysconfdir}/default @@ -218,6 +211,7 @@ python samba_populate_packages() { } PACKAGESPLITFUNCS_prepend = "samba_populate_packages " +PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*" RDEPENDS_${PN} += "${PN}-base ${PN}-python ${PN}-dsdb-modules" RDEPENDS_${PN}-python += "pytalloc python-tdb" @@ -274,6 +268,7 @@ FILES_winbind = "${sbindir}/winbindd \ ${libdir}/samba/idmap \ ${libdir}/samba/nss_info \ ${libdir}/winbind_krb5_locator.so \ + ${libdir}/winbind-krb5-localauth.so \ ${sysconfdir}/init.d/winbind \ ${systemd_system_unitdir}/winbind.service" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch deleted file mode 100644 index 047caec32..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 4335c4c61877c0b65ff4ec767e8ad3ad8c73c32d Mon Sep 17 00:00:00 2001 -From: Zhiquan Li <zhiquan.li@windriver.com> -Date: Fri, 13 Nov 2015 17:40:24 +0800 -Subject: [PATCH] fix do_package failed since snort 2.9.7.0 - -Remove redundant '/' as a workround for below error: -/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character - -It's a rpm debugedit bug: -* http://sourceforge.net/p/snort/mailman/message/34130268/ -* https://bugzilla.redhat.com/show_bug.cgi?id=304121 - -Upstream-Status:Inappropriate [embedded specific] - -Signed-off-by: Zhiquan Li <zhiquan.li@windriver.com> - ---- - src/snort.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/snort.h b/src/snort.h -index 8308e57..499d157 100644 ---- a/src/snort.h -+++ b/src/snort.h -@@ -39,7 +39,7 @@ - #include "sfdaq.h" - #include "sf_types.h" - #include "sfutil/sflsq.h" --#include "sfutil//sfActionQueue.h" -+#include "sfutil/sfActionQueue.h" - #include "profiler.h" - #include "rules.h" - #include "treenodes.h" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch deleted file mode 100644 index 6aa0b736f..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 5a53260a819e2873f58165e96852529719101c53 Mon Sep 17 00:00:00 2001 -From: Chunrong Guo <B40290@freescale.com> -Date: Mon, 4 Nov 2013 10:39:56 +0800 -Subject: [PATCH] snort: add recipe - -Upstream-Status:Inappropriate [embedded specific] - -fix the below error: -checking for dap address space id... configure: -configure: error: cannot run test program while cross compiling - -Signed-off-by: Chunrong Guo <B40290@freescale.com> - ---- - configure.in | 34 +++++++++++++++++----------------- - 1 file changed, 17 insertions(+), 17 deletions(-) - -diff --git a/configure.in b/configure.in -index 6fe5d68..e7636ce 100644 ---- a/configure.in -+++ b/configure.in -@@ -698,23 +698,23 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then - - fi - --AC_MSG_CHECKING([for daq address space ID]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include <daq.h> --]], --[[ -- DAQ_PktHdr_t hdr; -- hdr.address_space_id = 0; --]])], --[have_daq_address_space_id="yes"], --[have_daq_address_space_id="no"]) --AC_MSG_RESULT($have_daq_address_space_id) --if test "x$have_daq_address_space_id" = "xyes"; then -- AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1], -- [DAQ version supports address space ID in header.]) --fi -+#AC_MSG_CHECKING([for daq address space ID]) -+#AC_RUN_IFELSE( -+#[AC_LANG_PROGRAM( -+#[[ -+##include <daq.h> -+#]], -+#[[ -+# DAQ_PktHdr_t hdr; -+# hdr.address_space_id = 0; -+#]])], -+have_daq_address_space_id="yes" -+#[have_daq_address_space_id="no"]) -+#AC_MSG_RESULT($have_daq_address_space_id) -+#if test "x$have_daq_address_space_id" = "xyes"; then -+# AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1], -+# [DAQ version supports address space ID in header.]) -+#fi - - AC_MSG_CHECKING([for daq flow ID]) - AC_RUN_IFELSE( diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch deleted file mode 100644 index 04df37c94..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 5aa42a3137c657b5eddd4608343aa1854bd7cd27 Mon Sep 17 00:00:00 2001 -From: Zhiquan Li <zhiquan.li@windriver.com> -Date: Mon, 16 Nov 2015 10:23:00 +0800 -Subject: [PATCH] snort: 2.9.6.0 -> 2.9.7.5 - -Upstream-Status:Inappropriate [embedded specific] - -fix the below error: -checking for daq flow ID... configure: -configure: error: cannot run test program while cross compiling - ---- - configure.in | 34 +++++++++++++++++----------------- - 1 file changed, 17 insertions(+), 17 deletions(-) - -diff --git a/configure.in b/configure.in -index e7636ce..2fbd298 100644 ---- a/configure.in -+++ b/configure.in -@@ -716,23 +716,23 @@ have_daq_address_space_id="yes" - # [DAQ version supports address space ID in header.]) - #fi - --AC_MSG_CHECKING([for daq flow ID]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include <daq.h> --]], --[[ -- DAQ_PktHdr_t hdr; -- hdr.flow_id = 0; --]])], --[have_daq_flow_id="yes"], --[have_daq_flow_id="no"]) --AC_MSG_RESULT($have_daq_flow_id) --if test "x$have_daq_flow_id" = "xyes"; then -- AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], -- [DAQ version supports flow ID in header.]) --fi -+#AC_MSG_CHECKING([for daq flow ID]) -+#AC_RUN_IFELSE( -+#[AC_LANG_PROGRAM( -+#[[ -+##include <daq.h> -+#]], -+#[[ -+# DAQ_PktHdr_t hdr; -+# hdr.flow_id = 0; -+#]])], -+have_daq_flow_id="yes" -+#[have_daq_flow_id="no"]) -+#AC_MSG_RESULT($have_daq_flow_id) -+#if test "x$have_daq_flow_id" = "xyes"; then -+# AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], -+# [DAQ version supports flow ID in header.]) -+#fi - - AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) - AC_RUN_IFELSE( diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch deleted file mode 100644 index 15958a72d..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch +++ /dev/null @@ -1,60 +0,0 @@ -From b916443d43f2e1eeacfbed0033274a0270ef634d Mon Sep 17 00:00:00 2001 -From: Zhiquan Li <zhiquan.li@windriver.com> -Date: Mon, 16 Nov 2015 10:23:00 +0800 -Subject: [PATCH] snort: 2.9.6.0 -> 2.9.7.5 - -Upstream-Status:Inappropriate [embedded specific] - -fix the below error: -checking for DAQ_VERDICT_RETRY... configure: -configure: error: cannot run test program while cross compiling - ---- - configure.in | 34 +++++++++++++++++----------------- - 1 file changed, 17 insertions(+), 17 deletions(-) - -diff --git a/configure.in b/configure.in -index 2fbd298..62573a8 100644 ---- a/configure.in -+++ b/configure.in -@@ -734,23 +734,23 @@ have_daq_flow_id="yes" - # [DAQ version supports flow ID in header.]) - #fi - --AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include <daq.h> --]], --[[ -- DAQ_Verdict verdict; -- verdict = DAQ_VERDICT_RETRY; --]])], --[have_daq_verdict_retry="yes"], --[have_daq_verdict_retry="no"]) --AC_MSG_RESULT($have_daq_verdict_retry) --if test "x$have_daq_verdict_retry" = "xyes"; then -- AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1], -- [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.]) --fi -+#AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) -+#AC_RUN_IFELSE( -+#[AC_LANG_PROGRAM( -+#[[ -+##include <daq.h> -+#]], -+#[[ -+# DAQ_Verdict verdict; -+# verdict = DAQ_VERDICT_RETRY; -+#]])], -+have_daq_verdict_retry="yes" -+#[have_daq_verdict_retry="no"]) -+#AC_MSG_RESULT($have_daq_verdict_retry) -+#if test "x$have_daq_verdict_retry" = "xyes"; then -+# AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1], -+# [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.]) -+#fi - - # any sparc platform has to have this one defined. - AC_MSG_CHECKING(for sparc) diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch deleted file mode 100644 index 79e9f076b..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch +++ /dev/null @@ -1,85 +0,0 @@ -From a1fdbced4166cb0f35d23b63a59312d86860485a Mon Sep 17 00:00:00 2001 -From: Chunrong Guo <B40290@freescale.com> -Date: Mon, 4 Nov 2013 10:39:56 +0800 -Subject: [PATCH] snort: add recipe - -Upstream-Status: Inappropriate [embedded specific] - -fix the below error: -checking for INADDR_NONE... configure: -configure: error: cannot run test program while cross compiling - -Signed-off-by: Chunrong Guo <B40290@freescale.com> - ---- - configure.in | 50 ++++++++++++++++---------------------------------- - 1 file changed, 16 insertions(+), 34 deletions(-) - -diff --git a/configure.in b/configure.in -index 20d15eb..6fe5d68 100644 ---- a/configure.in -+++ b/configure.in -@@ -274,25 +274,7 @@ AC_CHECK_TYPES([int8_t,int16_t,int32_t,int64_t]) - AC_CHECK_TYPES([boolean]) - - # In case INADDR_NONE is not defined (like on Solaris) --have_inaddr_none="no" --AC_MSG_CHECKING([for INADDR_NONE]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include <sys/types.h> --#include <netinet/in.h> --#include <arpa/inet.h> --]], --[[ -- if (inet_addr("10,5,2") == INADDR_NONE); -- return 0; --]])], --[have_inaddr_none="yes"], --[have_inaddr_none="no"]) --AC_MSG_RESULT($have_inaddr_none) --if test "x$have_inaddr_none" = "xno"; then -- AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition]) --fi -+have_inaddr_none="yes" - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #include <stdio.h> -@@ -421,21 +403,21 @@ if test "x$LPCAP" = "xno"; then - fi - fi - --AC_MSG_CHECKING([for pcap_lex_destroy]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include <pcap.h> --]], --[[ -- pcap_lex_destroy(); --]])], --[have_pcap_lex_destroy="yes"], --[have_pcap_lex_destroy="no"]) --AC_MSG_RESULT($have_pcap_lex_destroy) --if test "x$have_pcap_lex_destroy" = "xyes"; then -- AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter]) --fi -+#AC_MSG_CHECKING([for pcap_lex_destroy]) -+#AC_RUN_IFELSE( -+#[AC_LANG_PROGRAM( -+#[[ -+##include <pcap.h> -+#]], -+#[[ -+# pcap_lex_destroy(); -+#]])], -+have_pcap_lex_destroy="yes" -+#[have_pcap_lex_destroy="no"]) -+#AC_MSG_RESULT($have_pcap_lex_destroy) -+#if test "x$have_pcap_lex_destroy" = "xyes"; then -+# AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter]) -+#fi - - AC_MSG_CHECKING([for pcap_lib_version]) - AC_LINK_IFELSE( diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch new file mode 100644 index 000000000..037962fb6 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch @@ -0,0 +1,254 @@ +From dc390837bc7adc205bb955d0922040a7e365d8dd Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Mon, 23 Jul 2018 13:54:07 +0800 +Subject: [PATCH] Disable run test program while cross compiling + +fix configure error: +configure: error: cannot run test program while cross compiling + +Upstream-Status:Inappropriate [embedded specific] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + configure.in | 148 +++++------------------------------------------------------ + 1 file changed, 12 insertions(+), 136 deletions(-) + +diff --git a/configure.in b/configure.in +index 4b3a5db..a6c5498 100644 +--- a/configure.in ++++ b/configure.in +@@ -284,19 +284,7 @@ AC_CHECK_TYPES([boolean]) + # In case INADDR_NONE is not defined (like on Solaris) + have_inaddr_none="no" + AC_MSG_CHECKING([for INADDR_NONE]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <sys/types.h> +-#include <netinet/in.h> +-#include <arpa/inet.h> +-]], +-[[ +- if (inet_addr("10,5,2") == INADDR_NONE); +- return 0; +-]])], +-[have_inaddr_none="yes"], +-[have_inaddr_none="no"]) ++have_inaddr_none="yes" + AC_MSG_RESULT($have_inaddr_none) + if test "x$have_inaddr_none" = "xno"; then + AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition]) +@@ -429,16 +417,7 @@ if test "x$LPCAP" = "xno"; then + fi + + AC_MSG_CHECKING([for pcap_lex_destroy]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <pcap.h> +-]], +-[[ +- pcap_lex_destroy(); +-]])], +-[have_pcap_lex_destroy="yes"], +-[have_pcap_lex_destroy="no"]) ++have_pcap_lex_destroy="yes" + AC_MSG_RESULT($have_pcap_lex_destroy) + if test "x$have_pcap_lex_destroy" = "xyes"; then + AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter]) +@@ -716,17 +695,7 @@ fi + AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta] [daq_dp_add_dc]) + + AC_MSG_CHECKING([for daq real addresses]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_PktHdr_t hdr; +- hdr.n_real_dPort = 0; +-]])], +-[have_daq_real_addresses="yes"], +-[have_daq_real_addresses="no"]) ++have_daq_real_addresses="no" + AC_MSG_RESULT($have_daq_real_addresses) + if test "x$have_daq_real_addresses" = "xyes"; then + AC_DEFINE([HAVE_DAQ_REAL_ADDRESSES],[1], +@@ -754,17 +723,7 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then + fi + + AC_MSG_CHECKING([for daq address space ID]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_PktHdr_t hdr; +- hdr.address_space_id = 0; +-]])], +-[have_daq_address_space_id="yes"], +-[have_daq_address_space_id="no"]) ++have_daq_address_space_id="yes" + AC_MSG_RESULT($have_daq_address_space_id) + if test "x$have_daq_address_space_id" = "xyes"; then + AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1], +@@ -772,17 +731,7 @@ if test "x$have_daq_address_space_id" = "xyes"; then + fi + + AC_MSG_CHECKING([for daq flow ID]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_PktHdr_t hdr; +- hdr.flow_id = 0; +-]])], +-[have_daq_flow_id="yes"], +-[have_daq_flow_id="no"]) ++have_daq_flow_id="yes" + AC_MSG_RESULT($have_daq_flow_id) + if test "x$have_daq_flow_id" = "xyes"; then + AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], +@@ -790,19 +739,7 @@ if test "x$have_daq_flow_id" = "xyes"; then + fi + + AC_MSG_CHECKING([for daq extended flow modifiers]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_ModFlow_t mod; +- mod.type = 0; +- mod.length = 0; +- mod.value = NULL; +-]])], +-[have_daq_ext_modflow="yes"], +-[have_daq_ext_modflow="no"]) ++have_daq_ext_modflow="no" + AC_MSG_RESULT($have_daq_ext_modflow) + if test "x$have_daq_ext_modflow" = "xyes"; then + CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_EXT_MODFLOW" +@@ -811,19 +748,7 @@ if test "x$have_daq_ext_modflow" = "xyes"; then + fi + + AC_MSG_CHECKING([for daq query flow]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_QueryFlow_t mod; +- mod.type = 0; +- mod.length = 0; +- mod.value = NULL; +-]])], +-[have_daq_queryflow="yes"], +-[have_daq_queryflow="no"]) ++have_daq_queryflow="no" + AC_MSG_RESULT($have_daq_queryflow) + if test "x$have_daq_queryflow" = "xyes"; then + CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_QUERYFLOW" +@@ -832,16 +757,7 @@ if test "x$have_daq_queryflow" = "xyes"; then + fi + + AC_MSG_CHECKING([for daq data channel flags]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_Data_Channel_Params_t params; +-]])], +-[have_daq_data_channel_flags="yes"], +-[have_daq_data_channel_flags="no"]) ++have_daq_data_channel_flags="no" + AC_MSG_RESULT($have_daq_data_channel_flags) + if test "x$have_daq_data_channel_flags" = "xyes"; then + CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_PARAMS" +@@ -850,17 +766,7 @@ if test "x$have_daq_data_channel_flags" = "xyes"; then + fi + + AC_MSG_CHECKING([for separate IP versions on pinhole endpoints]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_DP_key_t dpKey; +- dpKey.src_af = 0; +-]])], +-[have_daq_data_channel_separate_ip_versions="yes"], +-[have_daq_data_channel_separate_ip_versions="no"]) ++have_daq_data_channel_separate_ip_versions="no" + AC_MSG_RESULT($have_daq_data_channel_separate_ip_versions) + if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then + CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_SEPARATE_IP_VERSIONS" +@@ -869,17 +775,7 @@ if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then + fi + + AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_Verdict verdict; +- verdict = DAQ_VERDICT_RETRY; +-]])], +-[have_daq_verdict_retry="yes"], +-[have_daq_verdict_retry="no"]) ++have_daq_verdict_retry="yes" + AC_MSG_RESULT($have_daq_verdict_retry) + if test "x$have_daq_verdict_retry" = "xyes"; then + AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1], +@@ -887,17 +783,7 @@ if test "x$have_daq_verdict_retry" = "xyes"; then + fi + + AC_MSG_CHECKING([for daq packet trace]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_PktHdr_t hdr; +- hdr.flags = DAQ_PKT_FLAG_TRACE_ENABLED; +-]])], +-[have_daq_packet_trace="yes"], +-[have_daq_packet_trace="no"]) ++have_daq_packet_trace="yes" + AC_MSG_RESULT($have_daq_packet_trace) + if test "x$have_daq_packet_trace" = "xyes"; then + AC_DEFINE([HAVE_DAQ_PKT_TRACE],[1], +@@ -907,17 +793,7 @@ else + fi + + AC_MSG_CHECKING([for daq verdict reason]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include <daq.h> +-]], +-[[ +- DAQ_ModFlow_t fl; +- fl.type = DAQ_MODFLOW_TYPE_VER_REASON; +-]])], +-[have_daq_verdict_reason="yes"], +-[have_daq_verdict_reason="no"]) ++have_daq_verdict_reason="yes" + AC_MSG_RESULT($have_daq_verdict_reason) + if test "x$have_daq_verdict_reason" = "xyes"; then + AC_DEFINE([HAVE_DAQ_VERDICT_REASON],[1], +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb index 2034b85fb..a99138d3d 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb @@ -4,22 +4,20 @@ SECTION = "net" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5" -DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native" -DEPENDS_append_libc-musl = " libtirpc" +DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-native" -SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \ +SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \ file://snort.init \ - file://disable-inaddr-none.patch \ - file://disable-dap-address-space-id.patch \ - file://disable-daq-flow-id.patch \ - file://disable-daq-verdict-retry.patch \ file://0001-libpcap-search-sysroot-for-headers.patch \ - file://0001-fix-do_package-failed-since-snort-2.9.7.0.patch \ file://fix-host-contamination-when-enable-static-daq.patch \ + file://disable-run-test-program-while-cross-compiling.patch \ " -SRC_URI[tarball.md5sum] = "fd271788c0f8876be87a858a9142f202" -SRC_URI[tarball.sha256sum] = "ad03f11b5301b16642199a86aa90388eaa53f5003f83b0c5595745a490047be1" +SRC_URI[md5sum] = "378e3938b2b5c8e358f942d0ffce18cc" +SRC_URI[sha256sum] = "9f6b3aeac5a109f55504bd370564ac431cb1773507929dc461626898f33f46cd" + +UPSTREAM_CHECK_URI = "https://www.snort.org/downloads" +UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar" inherit autotools gettext update-rc.d pkgconfig @@ -48,8 +46,8 @@ PACKAGECONFIG ?= "openssl lzma" PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl," PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz," -CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" -LDFLAGS_append_libc-musl = " -ltirpc" +CFLAGS += "-I${STAGING_INCDIR}/tirpc" +LDFLAGS += " -ltirpc" do_install_append() { install -d ${D}${sysconfdir}/snort/rules diff --git a/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-Add-format-string-to-fprintf-call.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-Add-format-string-to-fprintf-call.patch new file mode 100644 index 000000000..8e5f4da36 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-Add-format-string-to-fprintf-call.patch @@ -0,0 +1,26 @@ +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-networking/recipes-connectivity/umip/umip/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch new file mode 100644 index 000000000..153bced39 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch @@ -0,0 +1,38 @@ +From f567740cf64978ac9db014c786b6d0267b244f33 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 4 Mar 2018 22:30:30 -0800 +Subject: [PATCH 1/2] replace SIGCLD with SIGCHLD and include sys/types.h + +Fixes +main.c:129:10: error: 'SIGCLD' undeclared (first use in this function); did you mean 'SIGCHLD'? + signal(SIGCLD, sig_child); + ^~~~~~ + SIGCHLD + +main.c:125:2: warning: implicit declaration of function 'umask' [-Wimplicit-function-declaration] + umask(0); + ^~~~~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + src/main.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +Index: git/src/main.c +=================================================================== +--- git.orig/src/main.c ++++ git/src/main.c +@@ -133,9 +133,9 @@ static void daemon_start(int ignsigcld) + + if (ignsigcld) { + #ifdef SIGTSTP +- signal(SIGCLD, sig_child); ++ signal(SIGCHLD, sig_child); + #else +- signal(SIGCLD, SIG_IGN); ++ signal(SIGCHLD, SIG_IGN); + #endif + } + } diff --git a/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-support-openssl-1.1.x.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-support-openssl-1.1.x.patch new file mode 100644 index 000000000..d8355e25f --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-support-openssl-1.1.x.patch @@ -0,0 +1,88 @@ +From 62784e8b6df8ff3a907c1f816154808bea9d7064 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 25 Sep 2018 14:38:14 +0800 +Subject: [PATCH] support openssl 1.1.x + +Long time no maintain from upstream since 2013 +(git://git.umip.org/umip/umip.git), backport a +fix from openSUSE + +Upstream-Status: Backport [openSUSE] +http://ftp.gwdg.de/pub/opensuse/source/distribution/leap/15.0/repo/oss/src/mipv6d-2.0.2.umip.0.4-lp150.1.2.src.rpm + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + src/keygen.c | 12 ++++++++++++ + src/mh.c | 17 ++++++++++++++++- + 2 files changed, 28 insertions(+), 1 deletion(-) + +diff --git a/src/keygen.c b/src/keygen.c +index e434a38..b902644 100644 +--- a/src/keygen.c ++++ b/src/keygen.c +@@ -172,6 +172,7 @@ static void build_kgen_token(struct in6_addr *addr, uint8_t *nonce, + uint8_t tmp[20]; + #ifdef HAVE_LIBCRYPTO + unsigned int len = 20; ++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL + HMAC_CTX ctx; + + HMAC_CTX_init(&ctx); +@@ -182,6 +183,17 @@ static void build_kgen_token(struct in6_addr *addr, uint8_t *nonce, + HMAC_Final(&ctx, tmp, &len); + HMAC_CTX_cleanup(&ctx); + #else ++ HMAC_CTX *ctx; ++ ctx = HMAC_CTX_new(); ++ HMAC_Init_ex(ctx, key_cn, sizeof(key_cn), EVP_sha1(), NULL); ++ HMAC_Update(ctx, (unsigned char *)addr, sizeof(*addr)); ++ HMAC_Update(ctx, nonce, NONCE_LENGTH); ++ HMAC_Update(ctx, &id, sizeof(id)); ++ HMAC_Final(ctx, tmp, &len); ++ HMAC_CTX_free(ctx); ++#endif // End of defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL ++ ++#else + HMAC_SHA1_CTX ctx; + + HMAC_SHA1_init(&ctx, key_cn, sizeof(key_cn)); +diff --git a/src/mh.c b/src/mh.c +index cba9a33..212eb5a 100644 +--- a/src/mh.c ++++ b/src/mh.c +@@ -518,9 +518,10 @@ static int calculate_auth_data(const struct iovec *iov, int iovlen, + + #ifdef HAVE_LIBCRYPTO + unsigned int len = HMAC_SHA1_HASH_LEN; +- HMAC_CTX ctx; + const EVP_MD *evp_md = EVP_sha1(); + ++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL ++ HMAC_CTX ctx; + HMAC_CTX_init(&ctx); + HMAC_Init_ex(&ctx, key, HMAC_SHA1_KEY_SIZE, evp_md, NULL); + +@@ -532,6 +533,20 @@ static int calculate_auth_data(const struct iovec *iov, int iovlen, + HMAC_Final(&ctx, buf, &len); + HMAC_CTX_cleanup(&ctx); + #else ++ HMAC_CTX *ctx; ++ ctx = HMAC_CTX_new(); ++ HMAC_Init_ex(ctx, key, HMAC_SHA1_KEY_SIZE, evp_md, NULL); ++ ++ HMAC_Update(ctx, (uint8_t *)coa, sizeof(*coa)); ++ HMAC_Update(ctx, (uint8_t *)cn, sizeof(*coa)); ++ for (i = 0; i < iovlen; i++) { ++ HMAC_Update(ctx, (uint8_t *)iov[i].iov_base, iov[i].iov_len); ++ } ++ HMAC_Final(ctx, buf, &len); ++ HMAC_CTX_free(ctx); ++#endif ++ ++#else + HMAC_SHA1_CTX ctx; + + HMAC_SHA1_init(&ctx, key, HMAC_SHA1_KEY_SIZE); +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch new file mode 100644 index 000000000..90d12da14 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch @@ -0,0 +1,143 @@ +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-networking/recipes-connectivity/umip/umip/add-dependency-to-support-parallel-compilation.patch b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/add-dependency-to-support-parallel-compilation.patch new file mode 100644 index 000000000..dbf008264 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/add-dependency-to-support-parallel-compilation.patch @@ -0,0 +1,23 @@ +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-networking/recipes-connectivity/umip/umip/mip6d b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d new file mode 100755 index 000000000..ebd70a6cc --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d @@ -0,0 +1,112 @@ +#!/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-networking/recipes-connectivity/umip/umip/mip6d.service b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d.service new file mode 100644 index 000000000..2b5a5b9f1 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d.service @@ -0,0 +1,10 @@ +[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-networking/recipes-connectivity/umip/umip_1.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip_1.0.bb new file mode 100644 index 000000000..e2abc02ce --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/umip/umip_1.0.bb @@ -0,0 +1,43 @@ +SUMMARY = "Mobile IPv6 and NEMO for Linux" +DESCRIPTION = "UMIP is an open source implementation of Mobile IPv6 and NEMO \ +Basic Support for Linux. It is released under the GPLv2 license. It supports \ +the following IETF RFC: RFC6275 (Mobile IPv6), RFC3963 (NEMO), RFC3776 and \ +RFC4877 (IPsec and IKEv2)." +HOMEPAGE = "http://umip.org/" +SECTION = "System Environment/Base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=073dc31ccb2ebed70db54f1e8aeb4c33" +DEPENDS = "openssl ipsec-tools radvd indent-native bison-native" + +SRC_URI = "git://git.umip.org/umip/umip.git \ + file://add-dependency-to-support-parallel-compilation.patch \ + file://mip6d \ + file://mip6d.service \ + file://0001-Add-format-string-to-fprintf-call.patch \ + file://0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch \ + file://0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch \ + file://0001-support-openssl-1.1.x.patch \ + " +SRCREV = "cbd441c5db719db554ff2b4fcb02fef88ae2f791" + +S = "${WORKDIR}/git" + +EXTRA_OECONF = "--enable-vt" + +inherit autotools-brokensep systemd update-rc.d + +INITSCRIPT_NAME = "mip6d" +INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ." + +SYSTEMD_SERVICE_${PN} = "mip6d.service" +SYSTEMD_AUTO_ENABLE = "disable" + +do_install_append() { + install -D -m 0755 ${WORKDIR}/mip6d ${D}${sysconfdir}/init.d/mip6d + install -D -m 0644 ${WORKDIR}/mip6d.service ${D}${systemd_system_unitdir}/mip6d.service + sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${systemd_system_unitdir}/mip6d.service +} + +RRECOMMENDS_${PN} = "kernel-module-mip6 kernel-module-ipv6" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb b/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb index 7eea5d135..4c3d95bd8 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb @@ -4,7 +4,7 @@ SECTION = "misc" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://vconfig.c;beginline=1;endline=19;md5=094ca47de36c20c598b15b32c270ce0a" -SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV}.orig.tar.gz \ +SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/vlan/1.9-3ubuntu10.6/${BPN}_${PV}.orig.tar.gz \ file://no-HOME-includes.patch \ file://0001-Add-printf-format-and-silence-format-security-warnin.patch \ " @@ -12,6 +12,9 @@ SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV} SRC_URI[md5sum] = "5f0c6060b33956fb16e11a15467dd394" SRC_URI[sha256sum] = "3b8f0a1bf0d3642764e5f646e1f3bbc8b1eeec474a77392d9aeb4868842b4cca" +UPSTREAM_CHECK_URI = "http://vlan.sourcearchive.com/" +UPSTREAM_CHECK_REGEX = "/(?P<pver>\d+(\.\d+)+)/" + S = "${WORKDIR}/${BPN}" inherit update-alternatives diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb b/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb deleted file mode 100644 index 64e9401e7..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Wireless Central Regulatory Domain Database" -HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" -SECTION = "net" -LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" - -SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz" -SRC_URI[md5sum] = "d282cce92b6e692e8673e2bd97adf33b" -SRC_URI[sha256sum] = "cfedf1c3521b3c8f32602f25ed796e96e687c3441a00e7c050fedf7fd4f1b8b7" - -inherit bin_package - -do_install() { - install -d -m0755 ${D}${libdir}/crda - install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys - install -m 0644 regulatory.bin ${D}${libdir}/crda/regulatory.bin - install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem -} - -RSUGGESTS_${PN} = "crda" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb b/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb new file mode 100644 index 000000000..2b990db3c --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb @@ -0,0 +1,42 @@ +SUMMARY = "Wireless Central Regulatory Domain Database" +HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" +SECTION = "net" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" + +SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz" +SRC_URI[md5sum] = "0cbbdc21186c76cf58aba01b03f3dc5b" +SRC_URI[sha256sum] = "e1dfbc3b97771373077f430c3c05082fae883145b37db5b2cfd12c56676fbe7b" + +inherit bin_package allarch + +do_install() { + install -d -m0755 ${D}${nonarch_libdir}/crda + install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys + install -m 0644 regulatory.bin ${D}${nonarch_libdir}/crda/regulatory.bin + install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem + + install -m 0644 -D regulatory.db ${D}${nonarch_base_libdir}/firmware/regulatory.db + install -m 0644 regulatory.db.p7s ${D}${nonarch_base_libdir}/firmware/regulatory.db.p7s +} + +# Install static regulatory DB in /lib/firmware for kernel to load. +# This requires Linux kernel >= v4.15. +# For kernel <= v4.14, inherit the kernel_wireless_regdb.bbclass in kernel's recipe. +PACKAGES =+ "${PN}-static" +RCONFLICTS_${PN} = "${PN}-static" + +FILES_${PN}-static = " \ + ${nonarch_base_libdir}/firmware/regulatory.db \ + ${nonarch_base_libdir}/firmware/regulatory.db.p7s \ +" + +# Native users might want to use the source of regulatory DB. +# This is for example used by Linux kernel <= v4.14 and kernel_wireless_regdb.bbclass. +do_install_append_class-native() { + install -m 0644 -D db.txt ${D}${libdir}/crda/db.txt +} + +RSUGGESTS_${PN} = "crda" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb index 9290651d0..dc9094d8b 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb @@ -13,7 +13,7 @@ PROVIDES += "cyassl" RPROVIDES_${PN} = "cyassl" S = "${WORKDIR}/git" -SRCREV = "d195009dcb62d8712195661bd1d50f8dd6831044" +SRCREV = "1196a3b64d9fabffc8273b87f6f69ac0e75d2eb7" SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https; \ file://0001-fix-no-rule-to-make-cyassl-options.h.patch \ " diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch new file mode 100644 index 000000000..f3f25f461 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch @@ -0,0 +1,28 @@ +From 6d24365f0828185fd1bb4d199209ca07eb95c41d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 24 Aug 2018 06:24:36 +0000 +Subject: [PATCH] Do not hardcode path for pkg.m4 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index 50aed15..f81767c 100644 +--- a/configure.in ++++ b/configure.in +@@ -12,7 +12,7 @@ define([AC_CACHE_SAVE], )dnl + AC_INIT(.autofs-5.1.4) + + # for pkg-config macros +-m4_include([/usr/share/aclocal/pkg.m4]) ++m4_include([pkg.m4]) + + # + # autofs installs by default in /usr +-- +1.9.1 + diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch deleted file mode 100644 index 18ce19385..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch +++ /dev/null @@ -1,39 +0,0 @@ -From b31decac4acb194b020c621d2d11019f636a45e0 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 24 Apr 2017 20:41:25 -0700 -Subject: [PATCH] autofs: Upgrade to 5.1.2 release - -Make configure compatible with -Wl,--as-needed following -https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Failure_in_..2Fconfigure - -2016-07-05 Martin von Gagern - ---- - aclocal.m4 | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/aclocal.m4 b/aclocal.m4 -index 0e4a624..2e620cd 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -415,9 +415,9 @@ AC_DEFUN([AF_CHECK_LIBTIRPC], - [ - # save current flags - af_check_libtirpc_save_cflags="$CFLAGS" --af_check_libtirpc_save_ldflags="$LDFLAGS" -+af_check_libtirpc_save_libs="$LIBS" - CFLAGS="$CFLAGS -I=/usr/include/tirpc" --LDFLAGS="$LDFLAGS -ltirpc" -+LIBS="$LIBS -ltirpc" - - AC_TRY_LINK( - [ #include <rpc/rpc.h> ], -@@ -440,7 +440,7 @@ AC_CHECK_FUNCS([getrpcbyname getservbyname]) - - # restore flags - CFLAGS="$af_check_libtirpc_save_cflags" --LDFLAGS="$af_check_libtirpc_save_ldflags" -+LIBS="$af_check_libtirpc_save_libs" - ]) - - AC_DEFUN([AF_WITH_LIBTIRPC], diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch deleted file mode 100644 index 0a2d502b8..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch +++ /dev/null @@ -1,35 +0,0 @@ -From cb6a4f61adb027f2366318f2c08c8264ebf39218 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 5 Jan 2013 19:53:10 -0800 - ---- - Makefile.rules | 2 +- - aclocal.m4 | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile.rules b/Makefile.rules -index 6fa3e02..709dd04 100644 ---- a/Makefile.rules -+++ b/Makefile.rules -@@ -46,7 +46,7 @@ CFLAGS += -D_REENTRANT -D_FILE_OFFSET_BITS=64 - LIBS += -lpthread - - ifdef TIRPCLIB --CFLAGS += -I/usr/include/tirpc -+CFLAGS += -I=/usr/include/tirpc - LIBS += $(TIRPCLIB) - endif - -diff --git a/aclocal.m4 b/aclocal.m4 -index 2a9a802..0e4a624 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -416,7 +416,7 @@ AC_DEFUN([AF_CHECK_LIBTIRPC], - # save current flags - af_check_libtirpc_save_cflags="$CFLAGS" - af_check_libtirpc_save_ldflags="$LDFLAGS" --CFLAGS="$CFLAGS -I/usr/include/tirpc" -+CFLAGS="$CFLAGS -I=/usr/include/tirpc" - LDFLAGS="$LDFLAGS -ltirpc" - - AC_TRY_LINK( diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb index 68c64fdb0..8a1bcad28 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb @@ -13,7 +13,6 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \ file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \ file://no-bash.patch \ file://cross.patch \ - file://libtirpc.patch \ file://autofs-5.0.7-do-not-check-for-modprobe.patch \ file://fix_disable_ldap.patch \ file://autofs-5.0.7-fix-lib-deps.patch \ @@ -24,12 +23,14 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \ file://fix-the-YACC-rule-to-fix-a-building-failure.patch \ file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \ file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \ - file://autofs-5.1.2-libtirpc-as-need.patch \ file://pkgconfig-libnsl.patch \ file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \ + file://0001-Do-not-hardcode-path-for-pkg.m4.patch \ " -SRC_URI[md5sum] = "28cf88f99eff553a8500659ba5d45a76" -SRC_URI[sha256sum] = "0d57e4138c2ec8058ca92164d035546f68ce4af93acb893369993d67c7056a10" +SRC_URI[md5sum] = "17bc9d371cf39d99f400ebadfc2289bb" +SRC_URI[sha256sum] = "8d1c9964c8286ccb08262ad47c60bb6343492902def5399fd36d79a0ccb0e718" + +UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/" INITSCRIPT_NAME = "autofs" INITSCRIPT_PARAMS = "defaults" @@ -46,16 +47,18 @@ EXTRA_OECONF += "--disable-mount-locking \ --enable-ignore-busy --with-openldap=no \ --with-sasl=no --with-libtirpc \ --with-path=${STAGING_BINDIR_NATIVE} \ + --with-fifodir=${localstatedir}/run \ + --with-flagdir=${localstatedir}/run \ " CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \ ac_cv_path_RPCGEN=rpcgen \ " do_configure_prepend () { - sed -e "s:filagdir:flagdir:" -i ${S}/configure.in if [ ! -e ${S}/acinclude.m4 ]; then cp ${S}/aclocal.m4 ${S}/acinclude.m4 fi + cp ${STAGING_DATADIR_NATIVE}/aclocal/pkg.m4 . } do_install_append () { diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch new file mode 100644 index 000000000..c89822c36 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch @@ -0,0 +1,41 @@ +From 6515f3e7656d97d40a6a1cf4eb3ada193a698309 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Wed, 12 Sep 2018 23:18:12 +0800 +Subject: [PATCH] Allow saslauthd to be built outside of source tree while + configuring with `--enable-ldapdb' + +[snip] +| powerpc-wrs-linux-gcc [snip] -I../common +|../../git/saslauthd/lak.c:58:10: fatal error: crypto-compat.h: +No such file or directory +[snip] + +The crypto-compat.h locates in git/common/, it should be | +`-I../../git/common' + +Remove useless `-I$(top_srcdir)/../include' which was incorrectly +added by commit `faae590 cleanup misc INCLUDES for different build paths' + +Upstream-Status: Submitted [https://github.com/cyrusimap/cyrus-sasl] + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + saslauthd/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/saslauthd/Makefile.am b/saslauthd/Makefile.am +index d7244be..864b29b 100644 +--- a/saslauthd/Makefile.am ++++ b/saslauthd/Makefile.am +@@ -34,7 +34,7 @@ saslcache_SOURCES = saslcache.c + + EXTRA_DIST = saslauthd.8 saslauthd.mdoc include \ + getnameinfo.c getaddrinfo.c LDAP_SASLAUTHD +-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/../include -I$(top_builddir)/common ++AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_builddir)/common -I$(top_srcdir)/common + DEFS = @DEFS@ -DSASLAUTHD_CONF_FILE_DEFAULT=\"@sysconfdir@/saslauthd.conf\" -I. -I$(srcdir) -I.. + + +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-makeinit.sh-fix-parallel-build-issue.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-makeinit.sh-fix-parallel-build-issue.patch new file mode 100644 index 000000000..bf232ac27 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-makeinit.sh-fix-parallel-build-issue.patch @@ -0,0 +1,95 @@ +From bb693db0e1d1d693e8ca31fcbc4f46d1674eeca1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Thu, 13 Sep 2018 14:20:57 +0800 +Subject: [PATCH] makeinit.sh: fix parallel build issue + +While building plugins, each <plugin>.c requires a <plugin>_init.c, +and the <plugin>_init.c is dynamically generated by makeinit.sh. + +But the makeinit.sh generates all *_init.c (13 mechanism plugins, +3 auxprop plugins) at one time, if there are multiple plugins, +there will be multiple makeinit.sh invoking. + +It caused a parallel issue, the *_init.c files will be generated +repeatedly. + +It occasionally generate dapdb_init.c incorrectly +[snip plugins/ldapdb_init.c] +SASL_CANONUSER_PLUG_INIT( ldapdb ) +SASL_CANONUSER_PLUG_INIT( ldapdb ) +SASL_CANONUSER_PLUG_INIT( ldapdb ) +[snip plugins/ldapdb_init.c] + +Let makeinit.sh generate the expected <plugin>_init.c which +is exactly required by <plugin>.c. + +Upstream-Status: Submitted [https://github.com/cyrusimap/cyrus-sasl/pull/532] + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + plugins/Makefile.am | 2 +- + plugins/makeinit.sh | 19 ++++++++++++++----- + 2 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/plugins/Makefile.am b/plugins/Makefile.am +index 929f6a4..81e7f0b 100644 +--- a/plugins/Makefile.am ++++ b/plugins/Makefile.am +@@ -149,4 +149,4 @@ passdss_init.c sasldb_init.c sql_init.c ldapdb_init.c + CLEANFILES=$(init_src) + + ${init_src}: $(srcdir)/makeinit.sh +- $(SHELL) $(srcdir)/makeinit.sh ++ $(SHELL) $(srcdir)/makeinit.sh $@ +diff --git a/plugins/makeinit.sh b/plugins/makeinit.sh +index cc65f7d..3131877 100644 +--- a/plugins/makeinit.sh ++++ b/plugins/makeinit.sh +@@ -1,7 +1,9 @@ ++plugin_init="$1" + # mechanism plugins + for mech in anonymous crammd5 digestmd5 scram gssapiv2 kerberos4 login ntlm otp passdss plain srp gs2; do ++ if [ ${plugin_init} = "${mech}_init.c" ];then + +-echo " ++ echo " + #include <config.h> + + #include <string.h> +@@ -43,13 +45,16 @@ BOOL APIENTRY DllMain( HANDLE hModule, + + SASL_CLIENT_PLUG_INIT( $mech ) + SASL_SERVER_PLUG_INIT( $mech ) +-" > ${mech}_init.c ++" > ${mech}_init.c ++ echo "generating $1" ++ fi # End of `if [ ${plugin_init} = "${mech}_init.c" ];then' + done + + # auxprop plugins + for auxprop in sasldb sql ldapdb; do ++ if [ ${plugin_init} = "${auxprop}_init.c" ];then + +-echo " ++ echo " + #include <config.h> + + #include <string.h> +@@ -86,8 +91,12 @@ BOOL APIENTRY DllMain( HANDLE hModule, + #endif + + SASL_AUXPROP_PLUG_INIT( $auxprop ) +-" > ${auxprop}_init.c ++" > ${auxprop}_init.c ++ echo "generating $1" ++ fi # End of `if [ ${plugin_init} = "${auxprop}_init.c" ];then' + done + + # ldapdb is also a canon_user plugin +-echo "SASL_CANONUSER_PLUG_INIT( ldapdb )" >> ldapdb_init.c ++if [ ${plugin_init} = "ldapdb_init.c" ];then ++ echo "SASL_CANONUSER_PLUG_INIT( ldapdb )" >> ldapdb_init.c ++fi +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch new file mode 100644 index 000000000..68d09c385 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch @@ -0,0 +1,28 @@ +From 98082f81da1b49876081ff1ab340e952755f985a Mon Sep 17 00:00:00 2001 +From: OBATA Akio <obache@users.noreply.github.com> +Date: Fri, 11 May 2018 18:36:26 +0900 +Subject: [PATCH] configure.ac: fix condition for suppliment snprintf + implementation + +$sasl_cv_snprintf means requremnt of suppliment snprintf +implementation, not existence of system snprintf implementation, + +Upstream-Status: Submitted [https://github.com/cyrusimap/cyrus-sasl/pull/512] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index ac59f14..9804e98 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1264,7 +1264,7 @@ SNPRINTFOBJS="" + LTSNPRINTFOBJS="" + AC_CHECK_FUNC(snprintf, [AC_DEFINE(HAVE_SNPRINTF,[],[Does the system have snprintf()?])], [sasl_cv_snprintf=yes]) + AC_CHECK_FUNC(vsnprintf, [AC_DEFINE(HAVE_VSNPRINTF,[],[Does the system have vsnprintf()?])], [sasl_cv_snprintf=yes]) +-if test $sasl_cv_snprintf = no; then ++if test $sasl_cv_snprintf = yes; then + AC_LIBOBJ(snprintf) + SNPRINTFOBJS="snprintf.o" + LTSNPRINTFOBJS="snprintf.lo" diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch index 3fa8431c3..f172362f4 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch @@ -1,25 +1,26 @@ -Fix hardcoded libdir. +From 188ad4497947259811ad32faeee95c20f9a44046 Mon Sep 17 00:00:00 2001 +From: "Roy.Li" <rongqing.li@windriver.com> +Date: Fri, 19 Jul 2013 14:29:31 +0800 +Subject: [PATCH] Fix hardcoded libdir. -Upstream-Status: Pending +Upstream-Status: Pending Signed-off-by: Roy.Li <rongqing.li@windriver.com> + --- - plugins/Makefile.am | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) + plugins/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Makefile.am b/plugins/Makefile.am -index b00915f..25262a1 100644 +index 2b02a52..929f6a4 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am -@@ -62,7 +62,7 @@ plugindir = @plugindir@ +@@ -65,7 +65,7 @@ LIB_MYSQL = @LIB_MYSQL@ - common_sources = plugin_common.c plugin_common.h + plugindir = @plugindir@ -sasldir = $(prefix)/lib/sasl2 +sasldir = $(libdir)/sasl2 sasl_LTLIBRARIES = @SASL_MECHS@ EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la libcrammd5.la \ libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la libotp.la \ --- -1.7.4.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch index 6407721ae..aa271b8fb 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch @@ -1,4 +1,7 @@ -Avoid to call AC_TRY_RUN +From 288430d3c2d3f36a4c9d40c4fffa85288f44549a Mon Sep 17 00:00:00 2001 +From: "Roy.Li" <rongqing.li@windriver.com> +Date: Tue, 25 Jun 2013 09:22:59 +0800 +Subject: [PATCH] Avoid to call AC_TRY_RUN Upstream-Status: Inappropriate [configuration] @@ -6,18 +9,20 @@ Avoid to call AC_TRY_RUN to check if GSSAPI libraries support SPNEGO on cross-compile environment by definition AC_ARG_ENABLE enable-spnego Signed-off-by: Roy.Li <rongqing.li@windriver.com> + --- - cmulocal/sasl2.m4 | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) + m4/sasl2.m4 | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) -diff --git a/cmulocal/sasl2.m4 b/cmulocal/sasl2.m4 -index 3c2841a..a5ecf81 100644 ---- a/cmulocal/sasl2.m4 -+++ b/cmulocal/sasl2.m4 -@@ -281,6 +281,17 @@ if test "$gssapi" != no; then - +diff --git a/m4/sasl2.m4 b/m4/sasl2.m4 +index 56e0504..cf62607 100644 +--- a/m4/sasl2.m4 ++++ b/m4/sasl2.m4 +@@ -314,7 +314,18 @@ if test "$gssapi" != no; then cmu_save_LIBS="$LIBS" LIBS="$LIBS $GSSAPIBASE_LIBS" + +- AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries]) + AC_ARG_ENABLE([spnego], + [AC_HELP_STRING([--enable-spnego=<DIR>], + [enable SPNEGO support in GSSAPI libraries [no]])], @@ -29,10 +34,11 @@ index 3c2841a..a5ecf81 100644 + elif test "$spnego" = yes; then + AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO]) + else - AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries]) ++ AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries]) AC_TRY_RUN([ #ifdef HAVE_GSSAPI_H -@@ -308,7 +319,7 @@ int main(void) + #include <gssapi.h> +@@ -341,7 +352,7 @@ int main(void) AC_MSG_RESULT(yes) ], AC_MSG_RESULT(no)) LIBS="$cmu_save_LIBS" @@ -41,6 +47,3 @@ index 3c2841a..a5ecf81 100644 else AC_MSG_RESULT([disabled]) fi --- -1.7.10.4 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff deleted file mode 100644 index 8eff5a8bd..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff +++ /dev/null @@ -1,14 +0,0 @@ -Author: Fabian Fagerholm <fabbe@debian.org> -Description: Fix linking with libsasldb.a when saslauthd is built with sasldb -support. ---- a/saslauthd/configure.in -+++ b/saslauthd/configure.in -@@ -77,7 +77,7 @@ if test "$authsasldb" != no; then - AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support]) - SASL_DB_PATH_CHECK() - SASL_DB_CHECK() -- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al" -+ SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.a" - fi - - AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ], diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff index 2e5b1750d..0479acfb0 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff +++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff @@ -1,27 +1,28 @@ -Author: Fabian Fagerholm <fabbe@debian.org> +From 1a5f3004e9081eab6263a29cd5be792f06441e36 Mon Sep 17 00:00:00 2001 +From: Fabian Fagerholm <fabbe@debian.org> +Date: Wed, 24 Jul 2013 11:38:25 -0400 +Subject: [PATCH] cyrus-sasl: Add patches from Debian to fix linking + Description: This patch makes sure the non-PIC version of libsasldb.a, which is created out of non-PIC objects, is not going to overwrite the PIC version, which is created out of PIC objects. The PIC version is placed in .libs, and the non-PIC version in the current directory. This ensures that both non-PIC and PIC versions are available in the correct locations. + +--- + lib/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/Makefile.am b/lib/Makefile.am +index a158ca3..3137e19 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am -@@ -78,7 +78,7 @@ endif +@@ -99,7 +99,7 @@ endif libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS) @echo adding static plugins and dependencies - $(AR) cru .libs/$@ $(SASL_STATIC_OBJS) + $(AR) cru $@ $(SASL_STATIC_OBJS) - @for i in ./libsasl2.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \ + @for i in ./libsasl2.la ../common/libplugin_common.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \ if test ! -f $$i; then continue; fi; . $$i; \ for j in $$dependency_libs foo; do \ ---- a/sasldb/Makefile.am -+++ b/sasldb/Makefile.am -@@ -63,6 +63,6 @@ libsasldb_a_SOURCES = - EXTRA_libsasldb_a_SOURCES = - - libsasldb.a: libsasldb.la $(SASL_DB_BACKEND_STATIC) -- $(AR) cru .libs/$@ $(SASL_DB_BACKEND_STATIC) -+ $(AR) cru $@ $(SASL_DB_BACKEND_STATIC) - - diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch deleted file mode 100644 index ecbab845d..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 92d72789c811b0d55f624a8bac5ccc4412f5996e Mon Sep 17 00:00:00 2001 -From: Ken Murchison <murch@andrew.cmu.edu> -Date: Thu, 20 Dec 2012 18:14:50 -0500 -Subject: [PATCH] sasl.h: #include <stddef.h> for size_t on NetBSD - -This patch was imported from git://git.cyrusimap.org/cyrus-sasl -commit 67a188693796a14e3a76ac603104807fbbfddfc4 - -Upstream-Status: Backport - -Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> ---- - include/sasl.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/include/sasl.h b/include/sasl.h -index fef4d51..8b8a63f 100755 ---- a/include/sasl.h -+++ b/include/sasl.h -@@ -121,6 +121,8 @@ - #ifndef SASL_H - #define SASL_H 1 - -+#include <stddef.h> /* For size_t */ -+ - /* Keep in sync with win32/common.mak */ - #define SASL_VERSION_MAJOR 2 - #define SASL_VERSION_MINOR 1 --- -1.8.3.2 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb index 6dbff87dd..594e55da1 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb @@ -1,55 +1,56 @@ SUMMARY = "Generic client/server library for SASL authentication" SECTION = "libs" HOMEPAGE = "http://asg.web.cmu.edu/sasl/" -DEPENDS = "openssl db" +DEPENDS = "openssl db groff-native" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396" -SRC_URI = "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-${PV}.tar.gz \ - file://avoid-to-call-AC_TRY_RUN.patch \ - file://Fix-hardcoded-libdir.patch \ - file://debian_patches_0009_sasldb_al.diff \ - file://debian_patches_0014_avoid_pic_overwrite.diff \ - file://sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch \ - file://saslauthd.service \ - file://saslauthd.conf \ -" +SRCREV = "e41cfb986c1b1935770de554872247453fdbb079" + +SRC_URI = "git://github.com/cyrusimap/cyrus-sasl;protocol=https \ + file://avoid-to-call-AC_TRY_RUN.patch \ + file://Fix-hardcoded-libdir.patch \ + file://debian_patches_0014_avoid_pic_overwrite.diff \ + file://saslauthd.service \ + file://saslauthd.conf \ + file://0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch \ + file://0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch \ + file://0001-makeinit.sh-fix-parallel-build-issue.patch \ + " + +UPSTREAM_CHECK_URI = "https://github.com/cyrusimap/cyrus-sasl/archives" -inherit autotools-brokensep pkgconfig useradd systemd +S = "${WORKDIR}/git" + +inherit autotools pkgconfig useradd systemd EXTRA_OECONF += "--with-dblib=berkeley \ - --with-bdb-libdir=${STAGING_LIBDIR} \ - --with-bdb-incdir=${STAGING_INCDIR} \ - --with-bdb=db-5.3 \ - --with-plugindir="${libdir}/sasl2" \ + --with-plugindir='${libdir}/sasl2' \ andrew_cv_runpath_switch=none" PACKAGECONFIG ??= "ntlm \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 ldap pam', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)} \ " PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5," PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie," PACKAGECONFIG[des] = "--with-des,--without-des,," PACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} --enable-ldapdb,--without-ldap --disable-ldapdb,openldap," -PACKAGECONFIG[ntlm] = "--with-ntlm,--without-ntlm,," -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[ntlm] = "--enable-ntlm=yes,--enable-ntlm=no,," CFLAGS += "-fPIC" do_configure_prepend () { - rm -f acinclude.m4 config/libtool.m4 - # make it be able to work with db 5.0 version local sed_files="sasldb/db_berkeley.c utils/dbconverter-2.c" for sed_file in $sed_files; do - sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' $sed_file + sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' ${S}/$sed_file done } do_compile_prepend () { cd include - ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} makemd5.c -o makemd5 + ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} ${S}/include/makemd5.c -o makemd5 touch makemd5.o makemd5.lo makemd5 cd .. } diff --git a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch index 3cd5259fa..952e4f0d0 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch @@ -12,10 +12,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> 4 files changed, 208 insertions(+), 6 deletions(-) create mode 100644 net/ppp_defs.h -diff --git a/cli/cli_readline.c b/cli/cli_readline.c -index 2812e6e..542935c 100644 ---- a/cli/cli_readline.c -+++ b/cli/cli_readline.c +Index: ippool-1.3/cli/cli_readline.c +=================================================================== +--- ippool-1.3.orig/cli/cli_readline.c ++++ ippool-1.3/cli/cli_readline.c @@ -17,13 +17,14 @@ * Boston, MA 02110-1301 USA * @@ -33,7 +33,7 @@ index 2812e6e..542935c 100644 #include <signal.h> #include <readline/readline.h> -@@ -630,7 +631,7 @@ static void cli_rl_uninstall_signal_handlers(void) +@@ -630,7 +631,7 @@ static void cli_rl_uninstall_signal_hand static int cli_rl_install_signal_handlers(void) { @@ -42,11 +42,11 @@ index 2812e6e..542935c 100644 rl_catch_signals = 0; rl_clear_signals(); -diff --git a/ippool_api.c b/ippool_api.c -index 2c10c47..d1127a9 100644 ---- a/ippool_api.c -+++ b/ippool_api.c -@@ -181,10 +181,13 @@ int ippool_api_rpc_check_request(SVCXPRT *xprt) +Index: ippool-1.3/ippool_api.c +=================================================================== +--- ippool-1.3.orig/ippool_api.c ++++ ippool-1.3/ippool_api.c +@@ -181,10 +181,13 @@ int ippool_api_rpc_check_request(SVCXPRT * non-loopback interface, reject the request. */ if ((!ippool_opt_remote_rpc) && @@ -63,210 +63,10 @@ index 2c10c47..d1127a9 100644 } svcerr_auth(xprt, AUTH_TOOWEAK); return -EPERM; -diff --git a/net/ppp_defs.h b/net/ppp_defs.h -new file mode 100644 -index 0000000..b06eda5 ---- /dev/null -+++ b/net/ppp_defs.h -@@ -0,0 +1,194 @@ -+/* $Id: ppp_defs.h,v 1.17 2002/12/06 09:49:15 paulus Exp $ */ -+ -+/* -+ * ppp_defs.h - PPP definitions. -+ * -+ * Copyright (c) 1984 Paul Mackerras. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in -+ * the documentation and/or other materials provided with the -+ * distribution. -+ * -+ * 3. The name(s) of the authors of this software must not be used to -+ * endorse or promote products derived from this software without -+ * prior written permission. -+ * -+ * 4. Redistributions of any form whatsoever must retain the following -+ * acknowledgment: -+ * "This product includes software developed by Paul Mackerras -+ * <paulus@samba.org>". -+ * -+ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO -+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -+ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN -+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING -+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#ifndef _PPP_DEFS_H_ -+#define _PPP_DEFS_H_ -+ -+/* -+ * The basic PPP frame. -+ */ -+#define PPP_HDRLEN 4 /* octets for standard ppp header */ -+#define PPP_FCSLEN 2 /* octets for FCS */ -+ -+/* -+ * Packet sizes -+ * -+ * Note - lcp shouldn't be allowed to negotiate stuff outside these -+ * limits. See lcp.h in the pppd directory. -+ * (XXX - these constants should simply be shared by lcp.c instead -+ * of living in lcp.h) -+ */ -+#define PPP_MTU 1500 /* Default MTU (size of Info field) */ -+#define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN) -+#define PPP_MINMTU 64 -+#define PPP_MRU 1500 /* default MRU = max length of info field */ -+#define PPP_MAXMRU 65000 /* Largest MRU we allow */ -+#define PPP_MINMRU 128 -+ -+#define PPP_ADDRESS(p) (((u_char *)(p))[0]) -+#define PPP_CONTROL(p) (((u_char *)(p))[1]) -+#define PPP_PROTOCOL(p) ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3]) -+ -+/* -+ * Significant octet values. -+ */ -+#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */ -+#define PPP_UI 0x03 /* Unnumbered Information */ -+#define PPP_FLAG 0x7e /* Flag Sequence */ -+#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */ -+#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */ -+ -+/* -+ * Protocol field values. -+ */ -+#define PPP_IP 0x21 /* Internet Protocol */ -+#define PPP_AT 0x29 /* AppleTalk Protocol */ -+#define PPP_IPX 0x2b /* IPX protocol */ -+#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */ -+#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */ -+#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */ -+#define PPP_COMP 0xfd /* compressed packet */ -+#define PPP_IPCP 0x8021 /* IP Control Protocol */ -+#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */ -+#define PPP_IPXCP 0x802b /* IPX Control Protocol */ -+#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */ -+#define PPP_CCP 0x80fd /* Compression Control Protocol */ -+#define PPP_ECP 0x8053 /* Encryption Control Protocol */ -+#define PPP_LCP 0xc021 /* Link Control Protocol */ -+#define PPP_PAP 0xc023 /* Password Authentication Protocol */ -+#define PPP_LQR 0xc025 /* Link Quality Report protocol */ -+#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */ -+#define PPP_CBCP 0xc029 /* Callback Control Protocol */ -+#define PPP_EAP 0xc227 /* Extensible Authentication Protocol */ -+ -+/* -+ * Values for FCS calculations. -+ */ -+#define PPP_INITFCS 0xffff /* Initial FCS value */ -+#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */ -+#define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff]) -+ -+/* -+ * A 32-bit unsigned integral type. -+ */ -+ -+#if !defined(__BIT_TYPES_DEFINED__) && !defined(_BITYPES) \ -+ && !defined(__FreeBSD__) && (NS_TARGET < 40) -+#ifdef UINT32_T -+typedef UINT32_T u_int32_t; -+#else -+typedef unsigned int u_int32_t; -+typedef unsigned short u_int16_t; -+#endif -+#endif -+ -+/* -+ * Extended asyncmap - allows any character to be escaped. -+ */ -+typedef u_int32_t ext_accm[8]; -+ -+/* -+ * What to do with network protocol (NP) packets. -+ */ -+enum NPmode { -+ NPMODE_PASS, /* pass the packet through */ -+ NPMODE_DROP, /* silently drop the packet */ -+ NPMODE_ERROR, /* return an error */ -+ NPMODE_QUEUE /* save it up for later. */ -+}; -+ -+/* -+ * Statistics. -+ */ -+struct pppstat { -+ unsigned int ppp_ibytes; /* bytes received */ -+ unsigned int ppp_ipackets; /* packets received */ -+ unsigned int ppp_ierrors; /* receive errors */ -+ unsigned int ppp_obytes; /* bytes sent */ -+ unsigned int ppp_opackets; /* packets sent */ -+ unsigned int ppp_oerrors; /* transmit errors */ -+}; -+ -+struct vjstat { -+ unsigned int vjs_packets; /* outbound packets */ -+ unsigned int vjs_compressed; /* outbound compressed packets */ -+ unsigned int vjs_searches; /* searches for connection state */ -+ unsigned int vjs_misses; /* times couldn't find conn. state */ -+ unsigned int vjs_uncompressedin; /* inbound uncompressed packets */ -+ unsigned int vjs_compressedin; /* inbound compressed packets */ -+ unsigned int vjs_errorin; /* inbound unknown type packets */ -+ unsigned int vjs_tossed; /* inbound packets tossed because of error */ -+}; -+ -+struct ppp_stats { -+ struct pppstat p; /* basic PPP statistics */ -+ struct vjstat vj; /* VJ header compression statistics */ -+}; -+ -+struct compstat { -+ unsigned int unc_bytes; /* total uncompressed bytes */ -+ unsigned int unc_packets; /* total uncompressed packets */ -+ unsigned int comp_bytes; /* compressed bytes */ -+ unsigned int comp_packets; /* compressed packets */ -+ unsigned int inc_bytes; /* incompressible bytes */ -+ unsigned int inc_packets; /* incompressible packets */ -+ unsigned int ratio; /* recent compression ratio << 8 */ -+}; -+ -+struct ppp_comp_stats { -+ struct compstat c; /* packet compression statistics */ -+ struct compstat d; /* packet decompression statistics */ -+}; -+ -+/* -+ * The following structure records the time in seconds since -+ * the last NP packet was sent or received. -+ */ -+struct ppp_idle { -+ time_t xmit_idle; /* time since last NP packet sent */ -+ time_t recv_idle; /* time since last NP packet received */ -+}; -+ -+#ifndef __P -+#ifdef __STDC__ -+#define __P(x) x -+#else -+#define __P(x) () -+#endif -+#endif -+ -+#endif /* _PPP_DEFS_H_ */ -diff --git a/usl/usl.h b/usl/usl.h -index cdc16db..88d2714 100644 ---- a/usl/usl.h -+++ b/usl/usl.h +Index: ippool-1.3/usl/usl.h +=================================================================== +--- ippool-1.3.orig/usl/usl.h ++++ ippool-1.3/usl/usl.h @@ -38,6 +38,10 @@ #include "usl_fsm.h" #include "usl_list.h" @@ -278,6 +78,3 @@ index cdc16db..88d2714 100644 #define USL_VERSION "0.6" #ifdef DEBUG --- -2.13.3 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb index 6e4748357..6fa46904b 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb @@ -24,8 +24,6 @@ SRC_URI = "https://sourceforge.net/projects/openl2tp/files/${BPN}/${PV}/${BPN}-$ file://0001-read-returns-ssize_t.patch \ file://0002-Mark-first-element-of-a-string-as-null.patch \ file://0003-cli-Mark-return-of-strtol-as-long-int.patch \ - " -SRC_URI_append_libc-musl = "\ file://0002-link-with-libtirpc.patch \ file://0003-musl-fixes.patch \ " @@ -36,8 +34,7 @@ SRC_URI[sha256sum] = "d3eab7d6cad5da8ccc9d1e31d5303e27a39622c07bdb8fa3618eea3144 inherit systemd -DEPENDS = "readline ppp ncurses gzip-native" -DEPENDS_append_libc-musl = " libtirpc" +DEPENDS = "readline ppp ncurses gzip-native rpcsvc-proto-native libtirpc" RDEPENDS_${PN} = "rpcbind" EXTRA_OEMAKE = "CC='${CC}' AS='${AS}' LD='${LD}' AR='${AR}' NM='${NM}' STRIP='${STRIP}'" @@ -45,8 +42,7 @@ EXTRA_OEMAKE += "PPPD_VERSION=${PPPD_VERSION} SYS_LIBDIR=${libdir}" # enable self tests EXTRA_OEMAKE += "IPPOOL_TEST=y" -CPPFLAGS += "${SELECTED_OPTIMIZATION}" -CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +CPPFLAGS += "${SELECTED_OPTIMIZATION} -I${STAGING_INCDIR}/tirpc" SYSTEMD_SERVICE_${PN} = "ippool.service" SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch deleted file mode 100644 index f5e1bec8a..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch +++ /dev/null @@ -1,25 +0,0 @@ -From cfee58d5863a535b61aa54690ae205b876f57944 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 2 Feb 2018 22:53:29 -0800 -Subject: [PATCH 1/2] libopeniscsiusr: Include limit.h for PATH_MAX - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - libopeniscsiusr/iface.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libopeniscsiusr/iface.c b/libopeniscsiusr/iface.c -index 79898df..a48ef36 100644 ---- a/libopeniscsiusr/iface.c -+++ b/libopeniscsiusr/iface.c -@@ -30,6 +30,7 @@ - #include <netdb.h> - #include <assert.h> - #include <inttypes.h> -+#include <limits.h> - - #include "libopeniscsiusr/libopeniscsiusr.h" - #include "misc.h" --- -2.16.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-qedi.c-Removed-unused-linux-ethtool.h.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-qedi.c-Removed-unused-linux-ethtool.h.patch deleted file mode 100644 index 174aa50d2..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-qedi.c-Removed-unused-linux-ethtool.h.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 197713ad7e3e944102bbd792e1ab9ec4a67100c0 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 2 Feb 2018 23:25:21 -0800 -Subject: [PATCH 1/4] qedi.c: Removed unused linux/ethtool.h - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - iscsiuio/src/unix/libs/qedi.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c -index b81fecd..24cb89a 100644 ---- a/iscsiuio/src/unix/libs/qedi.c -+++ b/iscsiuio/src/unix/libs/qedi.c -@@ -49,7 +49,6 @@ - #include <arpa/inet.h> - #include <linux/types.h> - #include <linux/sockios.h> --#include <linux/ethtool.h> - #include <linux/netlink.h> - #include <sys/mman.h> - #include <sys/ioctl.h> --- -2.16.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch deleted file mode 100644 index aecede6ee..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2b39f85dcf020647544002cb0b0e734748391dfb Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 2 Feb 2018 23:27:25 -0800 -Subject: [PATCH 2/4] idbm.c: Include fcnl.h for O_RDWR and O_CREAT definitions - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - usr/idbm.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/usr/idbm.c b/usr/idbm.c -index 5532202..0a51b85 100644 ---- a/usr/idbm.c -+++ b/usr/idbm.c -@@ -27,6 +27,7 @@ - #include <errno.h> - #include <dirent.h> - #include <limits.h> -+#include <fcntl.h> - #include <sys/stat.h> - #include <sys/file.h> - --- -2.16.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch deleted file mode 100644 index 836ed6048..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 29571f71692e28ce9a17d1450097a98492f3b465 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 2 Feb 2018 22:54:04 -0800 -Subject: [PATCH 2/2] libopeniscsiusr: Add CFLAGS to linker cmdline - -This will ensure that -fPIC is passed to linker as -well - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - libopeniscsiusr/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libopeniscsiusr/Makefile b/libopeniscsiusr/Makefile -index 8b9b523..4f1d0d6 100644 ---- a/libopeniscsiusr/Makefile -+++ b/libopeniscsiusr/Makefile -@@ -49,7 +49,7 @@ LIBADD = - all: $(LIBS) $(LIBS_MAJOR) $(TESTS) doc - - $(LIBS): $(OBJS) -- $(CC) $(LDFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LIBADD) -+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LIBADD) - ln -sf $@ $(DEVLIB) - - $(LIBS_MAJOR): $(LIBS) --- -2.16.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch deleted file mode 100644 index 0ce155f7a..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 9b7a32903b56ce4d41f264a345ca59a0b00d53b3 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 2 Feb 2018 23:28:33 -0800 -Subject: [PATCH 3/4] bnx2x.c: Reorder the includes to avoid duplicate defines - with musl - -including nic.h before linux/ethtool.h avoids redefinitions of -eth structs - -/mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-musleabi/iscsi-initiator-utils/2.0.876-r0/recipe-sysroot/ -usr/include/netinet/if_ether.h:104:8: error: redefinition of 'struct ethhdr' - struct ethhdr { - ^~~~~~ -In file included from /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-musleabi/iscsi-initiator-utils/2.0. -876-r0/recipe-sysroot/usr/include/linux/ethtool.h:19:0, - from qedi.c:52: -/mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-musleabi/iscsi-initiator-utils/2.0.876-r0/recipe-sysroot/ -usr/include/linux/if_ether.h:154:8: note: originally defined here - struct ethhdr { - ^~~~~~ - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - iscsiuio/src/unix/libs/bnx2x.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/iscsiuio/src/unix/libs/bnx2x.c b/iscsiuio/src/unix/libs/bnx2x.c -index 3df6d5f..62530d1 100644 ---- a/iscsiuio/src/unix/libs/bnx2x.c -+++ b/iscsiuio/src/unix/libs/bnx2x.c -@@ -36,6 +36,7 @@ - * bnx2x.c - bnx2x user space driver - * - */ -+#include "nic.h" - #include <errno.h> - #include <stdio.h> - #include <string.h> -@@ -58,7 +59,6 @@ - #include "bnx2x.h" - #include "cnic.h" - #include "logger.h" --#include "nic.h" - #include "nic_id.h" - #include "nic_utils.h" - #include "options.h" --- -2.16.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch deleted file mode 100644 index 57bdc8cb6..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 6f9c1a04d250388d1574cfaf20a1ff66a64beb48 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 2 Feb 2018 23:42:12 -0800 -Subject: [PATCH 4/4] fwparam_ppc.c: Do not use __compar_fn_t - -__compar_fn_t is not defined in musl - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - utils/fwparam_ibft/fwparam_ppc.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/utils/fwparam_ibft/fwparam_ppc.c b/utils/fwparam_ibft/fwparam_ppc.c -index c298b8c..391faa2 100644 ---- a/utils/fwparam_ibft/fwparam_ppc.c -+++ b/utils/fwparam_ibft/fwparam_ppc.c -@@ -356,7 +356,7 @@ static int loop_devs(const char *devtree) - * Sort the nics into "natural" order. The proc fs - * device-tree has them in somewhat random, or reversed order. - */ -- qsort(niclist, nic_count, sizeof(char *), (__compar_fn_t)nic_cmp); -+ qsort(niclist, nic_count, sizeof(char *), nic_cmp); - - snprintf(prefix, sizeof(prefix), "%s/%s", devtree, "aliases"); - dev_count = 0; --- -2.16.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb index 823227c46..e6a87a38a 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb @@ -11,25 +11,21 @@ DEPENDS = "openssl flex-native bison-native open-isns util-linux" LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" -SRCREV ?= "24580adc4c174bbc5dde3ae7594a46d57635e906" +SRCREV ?= "bd79e4ed1004a6035d2538a308c5930890421a22" SRC_URI = "git://github.com/open-iscsi/open-iscsi \ - file://initd.debian \ - file://99_iscsi-initiator-utils \ - file://iscsi-initiator \ - file://iscsi-initiator.service \ - file://iscsi-initiator-targets.service \ - file://set_initiatorname \ - file://0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch \ - file://0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch \ - file://0001-qedi.c-Removed-unused-linux-ethtool.h.patch \ - file://0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch \ - file://0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch \ - file://0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch \ -" + file://initd.debian \ + file://99_iscsi-initiator-utils \ + file://iscsi-initiator \ + file://iscsi-initiator.service \ + file://iscsi-initiator-targets.service \ + file://set_initiatorname \ + " S = "${WORKDIR}/git" B = "${WORKDIR}/build" +PV .= "+git${SRCPV}" + inherit update-rc.d systemd autotools EXTRA_OECONF = " \ diff --git a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb index 36417b72a..31c50ff6b 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb @@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "4e2d7cc01a6ee29a3955f5c622d47704ba7d9dd758189f15e9def016a2 DEPENDS = "libnfnetlink openssl" -inherit autotools pkgconfig systemd update-rc.d +inherit autotools pkgconfig systemd PACKAGECONFIG ??= "libnl snmp \ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ @@ -41,8 +41,5 @@ do_install_append() { FILES_${PN} += "${datadir}/snmp/mibs/KEEPALIVED-MIB.txt" -INITSCRIPT_NAME = "keepalived" -INITSCRIPT_PARAMS = "remove" - SYSTEMD_SERVICE_${PN} = "keepalived.service" SYSTEMD_AUTO_ENABLE ?= "disable" diff --git a/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher.bb b/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher.bb new file mode 100644 index 000000000..050a93824 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher.bb @@ -0,0 +1,34 @@ +python __anonymous() { + features = d.getVar('DISTRO_FEATURES') + if not features or 'systemd' not in features: + raise bb.parse.SkipPackage('networkd-dispatcher needs systemd in DISTRO_FEATURES') +} + +SUMMARY = "Dispatcher service for systemd-networkd connection status changes" +DESCRIPTION = "This daemon is similar to NetworkManager-dispatcher, but is much \ +more limited in the types of events it supports due to the limited nature of \ +systemd-networkd(8)." +AUTHOR = "Clayton Craft and others" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d" + +RDEPENDS_${PN} = "systemd python3 python3-pygobject python3-dbus" + +SRC_URI = "git://gitlab.com/craftyguy/networkd-dispatcher.git;protocol=https" +SRCREV = "c7e25623a161b64618ea778541c064d2a1df086b" +PV = "1.7+git${SRCPV}" + +S = "${WORKDIR}/git" + +# Nothing to build, just a python script to install +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install() { + install -D -m 0755 ${S}/networkd-dispatcher ${D}${sbindir}/networkd-dispatcher + install -D -m 0644 ${S}/networkd-dispatcher.service ${D}/${systemd_system_unitdir}/networkd-dispatcher.service + install -D -m 0644 ${S}/networkd-dispatcher.conf ${D}/${sysconfdir}/conf.d/networkd-dispatcher.conf +} + +FILES_${PN} += "${systemd_system_unitdir}/networkd-dispatcher.service" diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch new file mode 100644 index 000000000..ab9b25fed --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch @@ -0,0 +1,27 @@ +From 2bc5c6367a7f70ca5bff177ec95bcad3b1c2b66b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 6 Sep 2018 18:15:10 -0700 +Subject: [PATCH] Do not poke at build host's /etc/os-release + +During cross compile we are interested in target distro and not host +distro therefore do not check for it. + +Upstream-Status: Inappropriate [Cross compile specific] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: openhpi-3.8.0/configure.ac +=================================================================== +--- openhpi-3.8.0.orig/configure.ac ++++ openhpi-3.8.0/configure.ac +@@ -194,7 +194,6 @@ AC_SUBST(JSON_C_LIB) + AC_SUBST(JSON_C_INCLUDE) + AC_CHECK_LIB([rabbitmq],[amqp_new_connection],[RABBITMQ_LIB=-lrabbitmq],[RABBITMQ_LIB=]) + AC_SUBST(RABBITMQ_LIB) +-AC_CHECK_FILE([/etc/os-release],[DISTRO=`grep "^ID=" /etc/os-release | awk -F"\"" '{ print $2 }'`]) + + AC_CHECK_HEADERS([amqp.h],[have_rabbitmq=yes],[have_rabbitmq=no]) + diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch deleted file mode 100644 index 4f493f7b8..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 398c6db66c643ed6133cc2b028ab1e27a17c5295 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 1 May 2017 19:10:09 +0000 -Subject: [PATCH] Fix build failures with gcc7 - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - plugins/ipmidirect/ipmi_mc_vendor.cpp | 2 +- - plugins/ipmidirect/ipmi_resource.cpp | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/plugins/ipmidirect/ipmi_mc_vendor.cpp b/plugins/ipmidirect/ipmi_mc_vendor.cpp -index 2c6c090..557771c 100644 ---- a/plugins/ipmidirect/ipmi_mc_vendor.cpp -+++ b/plugins/ipmidirect/ipmi_mc_vendor.cpp -@@ -322,7 +322,7 @@ cIpmiMcVendor::CreateResources( cIpmiDomain *domain, cIpmiMc *source_mc, cIpmiSd - if ( addr.m_channel != source_mc->GetChannel() ) - stdlog << "WARNING : SDR channel " << addr.m_channel << " NOT equal to MC channel " << source_mc->GetChannel() << "\n"; - -- if ( FindOrCreateResource( domain, source_mc, fru_id, sdr, sdrs ) == false ) { -+ if ( !FindOrCreateResource( domain, source_mc, fru_id, sdr, sdrs ) ) { - return false; - } - } -diff --git a/plugins/ipmidirect/ipmi_resource.cpp b/plugins/ipmidirect/ipmi_resource.cpp -index c438e74..2552673 100644 ---- a/plugins/ipmidirect/ipmi_resource.cpp -+++ b/plugins/ipmidirect/ipmi_resource.cpp -@@ -73,7 +73,7 @@ cIpmiResource::SendCommandReadLock( const cIpmiMsg &msg, cIpmiMsg &rsp, - - domain->ReadLock(); - -- if ( domain->VerifyResource( resource ) == false ) -+ if ( !domain->VerifyResource( resource ) ) - return SA_ERR_HPI_NOT_PRESENT; - - return rv; -@@ -91,7 +91,7 @@ cIpmiResource::SendCommandReadLock( cIpmiRdr *rdr, const cIpmiMsg &msg, cIpmiMsg - - domain->ReadLock(); - -- if ( domain->VerifyRdr( rdr ) == false ) -+ if ( !domain->VerifyRdr( rdr ) ) - return SA_ERR_HPI_NOT_PRESENT; - - return rv; --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch new file mode 100644 index 000000000..c78ec28de --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch @@ -0,0 +1,41 @@ +From 8f47adc3b9085d589e62cb5eb560dd23a703036a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 8 Sep 2018 12:47:49 -0700 +Subject: [PATCH] include iostream for cout + +End cout with endl + +Fixes +plugins/dynamic_simulator/thread.cpp:241:3: error: 'cout' was not declared in this scope + cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined" + ^~~~ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + plugins/dynamic_simulator/thread.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/plugins/dynamic_simulator/thread.cpp b/plugins/dynamic_simulator/thread.cpp +index b971502..61eaf42 100644 +--- a/plugins/dynamic_simulator/thread.cpp ++++ b/plugins/dynamic_simulator/thread.cpp +@@ -26,7 +26,7 @@ + */ + + #include "thread.h" +-#include <stdio.h> ++#include <iostream> + #include <sys/time.h> + #include <errno.h> + +@@ -238,7 +238,7 @@ cThreadLock::cThreadLock() + pthread_mutexattr_settype( &attr, PTHREAD_MUTEX_RECURSIVE ); + pthread_mutex_init( &m_lock, &attr ); + pthread_mutexattr_destroy( &attr ); +- cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined" ++ std::cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined"<<std::endl; + } + #else + static pthread_mutex_t lock_tmpl = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch deleted file mode 100644 index 4d56f6535..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch +++ /dev/null @@ -1,31 +0,0 @@ -From be40b3f11460cf495bbbef45692e7763afda0c2b Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 14 Sep 2017 17:56:31 -0700 -Subject: [PATCH] ipmidirect: Replace __STRING - -__STRING is not universally available e.g. -musl does not define it - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - plugins/ipmidirect/t/test.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/plugins/ipmidirect/t/test.h b/plugins/ipmidirect/t/test.h -index 8d71381..978d5ff 100644 ---- a/plugins/ipmidirect/t/test.h -+++ b/plugins/ipmidirect/t/test.h -@@ -22,7 +22,7 @@ TestFunction( const char *str, const char *file, int line, bool expr ) - } - - --#define Test(expr) TestFunction( __STRING(expr), __FILE__, __LINE__, expr ) -+#define Test(expr) TestFunction( #expr, __FILE__, __LINE__, expr ) - - - static int --- -2.14.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch deleted file mode 100644 index 0f033ac85..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch +++ /dev/null @@ -1,47 +0,0 @@ -From be665d9513cca7e8b64c79ae424cf44ac166b052 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 14 Sep 2017 17:07:58 -0700 -Subject: [PATCH] plugins: Check for PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP - before use - -musl does not define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP -so we can not assume that all Linux systems support PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP -its a glibc specific define so check for it being defined before using it - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - plugins/dynamic_simulator/thread.cpp | 2 +- - plugins/ipmidirect/thread.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/plugins/dynamic_simulator/thread.cpp b/plugins/dynamic_simulator/thread.cpp -index d663be0..9210fd7 100644 ---- a/plugins/dynamic_simulator/thread.cpp -+++ b/plugins/dynamic_simulator/thread.cpp -@@ -229,7 +229,7 @@ cThread::Exit( void *rv ) - /** - * Constructor - **/ --#if ( defined(__sun) && defined(__SVR4) ) || defined(__FreeBSD__) -+#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP - cThreadLock::cThreadLock() - { - pthread_mutexattr_t attr; -diff --git a/plugins/ipmidirect/thread.cpp b/plugins/ipmidirect/thread.cpp -index 5c52557..48e83fa 100644 ---- a/plugins/ipmidirect/thread.cpp -+++ b/plugins/ipmidirect/thread.cpp -@@ -167,7 +167,7 @@ cThread::Exit( void *rv ) - // cThreadLock - ////////////////////////////////////////////////// - --#if ( defined(__sun) && defined(__SVR4) ) || defined(__FreeBSD__) -+#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP - cThreadLock::cThreadLock() - { - pthread_mutexattr_t attr; --- -2.14.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch new file mode 100644 index 000000000..2cefd55be --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch @@ -0,0 +1,37 @@ +From b8bc6bfdb5e7fb5b46d3a830e04632939bee6b98 Mon Sep 17 00:00:00 2001 +From: Catalin Enache <catalin.enache@windriver.com> +Date: Fri, 9 Feb 2018 16:35:11 +0200 +Subject: [PATCH] saHpiSessionClose: close socket + +saHpiSessionClose leaks file descriptors + +Upstream issue: https://github.com/open-hpi/openhpi/issues/1918 + +Upstream-Status: Pending + +Signed-off-by: Catalin Enache <catalin.enache@windriver.com> +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + baselib/session.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/baselib/session.cpp b/baselib/session.cpp +index c5edfc8..4ece1b7 100644 +--- a/baselib/session.cpp ++++ b/baselib/session.cpp +@@ -126,6 +126,12 @@ cSession::cSession() + + cSession::~cSession() + { ++ cClientStreamSock * sock; ++ gpointer ptr = wrap_g_static_private_get( &m_sockets ); ++ if ( ptr ) { ++ sock = reinterpret_cast<cClientStreamSock *>(ptr); ++ sock->Close(); ++ } + wrap_g_static_private_free( &m_sockets ); + } + +-- +2.10.2 + diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch index 0549d5977..5eff86b4d 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch @@ -1,11 +1,21 @@ -Index: openhpi-3.6.1/configure.ac -=================================================================== ---- openhpi-3.6.1.orig/configure.ac -+++ openhpi-3.6.1/configure.ac -@@ -44,6 +44,7 @@ AC_PROG_CPP - AC_PROG_INSTALL - AC_PROG_LN_S +From ed51168dfd6844deeaebf7d5f6c65898aafb6299 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 27 Aug 2017 12:12:04 -0700 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index c29a31f..f7fe0f7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -46,6 +46,7 @@ AC_PROG_LN_S AC_PROG_MAKE_SET + AC_PROG_AWK + AC_PROG_GREP +AX_CXX_COMPILE_STDCXX_11([noext],[mandatory]) enabled_non32bit="no" diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch index 9b35a0cce..7958a07c6 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch @@ -1,3 +1,7 @@ +Support build with Clang + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> Index: openhpi-3.6.1/plugins/dynamic_simulator/new_sim.cpp =================================================================== --- openhpi-3.6.1.orig/plugins/dynamic_simulator/new_sim.cpp @@ -1273,16 +1277,3 @@ Index: openhpi-3.6.1/plugins/ipmidirect/ipmi.cpp static SaErrorT IpmiResetWatchdog(void *hnd, -Index: openhpi-3.6.1/plugins/ipmidirect/ipmi_auth.h -=================================================================== ---- openhpi-3.6.1.orig/plugins/ipmidirect/ipmi_auth.h -+++ openhpi-3.6.1/plugins/ipmidirect/ipmi_auth.h -@@ -32,7 +32,7 @@ class cIpmiAuthSg - { - public: - void *data; /* NULL to terminate. */ -- int len; -+ unsigned int len; - }; - - diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch new file mode 100644 index 000000000..3161140df --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch @@ -0,0 +1,98 @@ +From: Helmut Grohne <helmut@subdivi.de> +Subject: fix cross compilation + +The OH_SET_SIZES macro relies on the usual autoconf sizeof cache variables +during cross compilation, but it never ensure that they are initialized. + +pkg-config must be called with $ac_tool_prefix and PKG_PROG_PKG_CONFIG takes +care of that. Setting PKG_CONFIG_PATH breaks the pkg-config-cross-wrapper. +Don't do that. + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Index: openhpi-3.8.0/acinclude.m4 +=================================================================== +--- openhpi-3.8.0.orig/acinclude.m4 ++++ openhpi-3.8.0/acinclude.m4 +@@ -22,30 +22,39 @@ AC_DEFUN([OH_SET_SIZES], + + if test "x$cross_compiling" != "xno"; then + if test "x$OH_SIZEOF_UCHAR" = x; then ++ AC_CHECK_SIZEOF([unsigned char]) + OH_SIZEOF_UCHAR=$ac_cv_sizeof_uchar + fi + if test "x$OH_SIZEOF_USHORT" = x; then ++ AC_CHECK_SIZEOF([unsigned short]) + OH_SIZEOF_USHORT=$ac_cv_sizeof_ushort + fi + if test "x$OH_SIZEOF_UINT" = x; then ++ AC_CHECK_SIZEOF([unsigned int]) + OH_SIZEOF_UINT=$ac_cv_sizeof_uint + fi + if test "x$OH_SIZEOF_CHAR" = x; then ++ AC_CHECK_SIZEOF([char]) + OH_SIZEOF_CHAR=$ac_cv_sizeof_char + fi + if test "x$OH_SIZEOF_SHORT" = x; then ++ AC_CHECK_SIZEOF([short]) + OH_SIZEOF_SHORT=$ac_cv_sizeof_short + fi + if test "x$OH_SIZEOF_INT" = x; then ++ AC_CHECK_SIZEOF([int]) + OH_SIZEOF_INT=$ac_cv_sizeof_int + fi + if test "x$OH_SIZEOF_LLONG" = x; then ++ AC_CHECK_SIZEOF([long long]) + OH_SIZEOF_LLONG=$ac_cv_sizeof_longlong + fi + if test "x$OH_SIZEOF_FLOAT" = x; then ++ AC_CHECK_SIZEOF([float]) + OH_SIZEOF_FLOAT=$ac_cv_sizeof_float + fi + if test "x$OH_SIZEOF_DOUBLE" = x; then ++ AC_CHECK_SIZEOF([double]) + OH_SIZEOF_DOUBLE=$ac_cv_sizeof_double + fi + else +Index: openhpi-3.8.0/configure.ac +=================================================================== +--- openhpi-3.8.0.orig/configure.ac ++++ openhpi-3.8.0/configure.ac +@@ -87,9 +87,9 @@ have_rtas_lib=no + + dnl Check for GLIB + +-AC_CHECK_PROG([found_pkg_config],[pkg-config],[yes]) ++PKG_PROG_PKG_CONFIG + +-if test "x$found_pkg_config" != "xyes"; then ++if test "x$PKG_CONFIG" = "x"; then + OH_CHECK_FAIL(pkg-config,pkg-config) + fi + PKG_CFG_SETPATH +@@ -105,7 +105,7 @@ GLIB=glib-2.0 + GTHREAD=gthread-2.0 + GMODULE=gmodule-2.0 + +-if pkg-config --atleast-version $GLIB_REQUIRED_VERSION $GLIB; then ++if $PKG_CONFIG --atleast-version $GLIB_REQUIRED_VERSION $GLIB; then + : + else + AC_MSG_ERROR([ +@@ -268,12 +268,12 @@ dnl + dnl We really need to make ipmi enablement be contigent on OpenIPMI + dnl + +-if PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --atleast-version 1.4.20 OpenIPMI; then ++if $PKG_CONFIG --atleast-version 1.4.20 OpenIPMI; then + have_openipmi=yes + AC_CHECK_LIB([OpenIPMI], [ipmi_smi_setup_con], [have_openipmi=yes]) +- OPENIPMI_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --cflags OpenIPMI` ++ OPENIPMI_CFLAGS=`$PKG_CONFIG --cflags OpenIPMI` + AC_SUBST(OPENIPMI_CFLAGS) +- OPENIPMI_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --libs OpenIPMI` ++ OPENIPMI_LIBS=`$PKG_CONFIG --libs OpenIPMI` + AC_SUBST(OPENIPMI_LIBS) + fi + diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/no-md2.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/no-md2.patch new file mode 100644 index 000000000..c4dd23e79 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/no-md2.patch @@ -0,0 +1,37 @@ +Description: Fix FTBFS with OpenSSL 1.1 by honouring OPENSSL_NO_MD2 +Author: Adrian Bunk <bunk@debian.org> +Bug-Debian: https://bugs.debian.org/859543 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Index: openhpi-3.8.0/plugins/ipmidirect/ipmi_auth.cpp +=================================================================== +--- openhpi-3.8.0.orig/plugins/ipmidirect/ipmi_auth.cpp ++++ openhpi-3.8.0/plugins/ipmidirect/ipmi_auth.cpp +@@ -21,6 +21,7 @@ + #include "ipmi_auth.h" + #include <string.h> + #include <errno.h> ++#include <openssl/opensslconf.h> + + + cIpmiAuth * +@@ -32,7 +33,7 @@ IpmiAuthFactory( tIpmiAuthType type ) + return new cIpmiAuthNone; + + case eIpmiAuthTypeMd2: +-#ifdef HAVE_OPENSSL_MD2_H ++#if defined(HAVE_OPENSSL_MD2_H) && !defined(OPENSSL_NO_MD2) + return new cIpmiAuthMd2; + #else + break; +@@ -78,7 +79,7 @@ cIpmiAuthNone::Check( cIpmiAuthSg /*d*/[ + } + + +-#ifdef HAVE_OPENSSL_MD2_H ++#if defined(HAVE_OPENSSL_MD2_H) && !defined(OPENSSL_NO_MD2) + #include <openssl/md2.h> + + diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch new file mode 100644 index 000000000..ca522bcc6 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch @@ -0,0 +1,20 @@ +Link with libssl + +fixed build with openssl-1.1.x + +Taken from Fedora +https://src.fedoraproject.org/rpms/openhpi/c/be77f5484b0206f8946a85b29424ea10bf863063 + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Unknown + +diff -up openhpi-3.6.1/ssl/Makefile.am.than openhpi-3.6.1/ssl/Makefile.am +--- openhpi-3.6.1/ssl/Makefile.am.than 2017-02-21 12:21:12.114814698 -0500 ++++ openhpi-3.6.1/ssl/Makefile.am 2017-02-21 12:22:44.576454262 -0500 +@@ -19,5 +19,5 @@ lib_LTLIBRARIES = libopenhpi_ssl.la + libopenhpi_ssl_la_SOURCES = oh_ssl.c oh_ssl.h + + libopenhpi_ssl_la_LDFLAGS = -version-info @HPI_LIB_VERSION@ +-libopenhpi_ssl_la_LIBADD = @CRYPTO_LIB@ ++libopenhpi_ssl_la_LIBADD = -lssl @CRYPTO_LIB@ + diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch deleted file mode 100644 index cc21ff8c7..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit e9f9a73c9dba8dd59f3d6c3acd9988ec8361d55a -Author: Aws Ismail <aws.ismail@windriver.com> -Date: Mon Dec 17 16:23:45 2012 -0500 - - Correct dangling g_thread_exit in session.c - - hpi_shell's session.c has its progress_bar - thread created using pthread_create but - exited using g_thread_exit. Use pthread_exit - instead to avoid unpredictable GLIB thread - errors. - - Upstream-Status: Pending - - Signed-off-by: Aws Ismail <aws.ismail@windriver.com> - -Index: openhpi-3.6.1/hpi_shell/session.c -=================================================================== ---- openhpi-3.6.1.orig/hpi_shell/session.c -+++ openhpi-3.6.1/hpi_shell/session.c -@@ -73,7 +73,7 @@ static void* progress_bar(void *unused) - if (i < (PROGRESS_BUF_SIZE - mes_len - 1)) i++; - t++; - }; -- g_thread_exit(0); -+ pthread_exit(0); - return (void *)1; - } - diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch index c848b3502..160eeede6 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch @@ -1,4 +1,7 @@ -Fix libxml2 for cross-compiling +From afe545e77f9d841b7777d859e7e8108492fece96 Mon Sep 17 00:00:00 2001 +From: Jackie Huang <jackie.huang@windriver.com> +Date: Wed, 26 Apr 2017 16:22:00 +0800 +Subject: [PATCH] Fix libxml2 for cross-compiling Use proper XML2_INCLUDE path when cross-compiling @@ -6,16 +9,20 @@ Upstream-Status: Pending Signed-of-by: Aws Ismail <aws.ismail@windriver.com> -Index: openhpi-3.6.1/configure.ac -=================================================================== ---- openhpi-3.6.1.orig/configure.ac -+++ openhpi-3.6.1/configure.ac -@@ -177,7 +177,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/ +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6242cbf..4fb6b69 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -179,7 +179,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/md5.h openssl/bio.h openssl/ssl.h openss dnl xml is used for XML-based communication in ilo2_ribcl and oa_soap AC_CHECK_LIB([xml2],[xmlParseMemory],[XML2_LIB=-lxml2],[XML2_LIB=]) --AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE]) -+AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE]) +-AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE=]) ++AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE=]) AC_SUBST(XML2_LIB) AC_SUBST(XML2_INCLUDE) diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch index 95b0abc91..293c8d91f 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch @@ -13,36 +13,33 @@ Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> configure | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) -diff --git a/acinclude.m4 b/acinclude.m4 -index 82c33f6..727e461 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 +Index: openhpi-3.8.0/acinclude.m4 +=================================================================== +--- openhpi-3.8.0.orig/acinclude.m4 ++++ openhpi-3.8.0/acinclude.m4 @@ -160,8 +160,8 @@ AC_DEFUN([OH_CHECK_NETSNMP], ], [ have_netsnmp=yes -- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'` +- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/ -O\S*//g'` - SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs` + SNMPFLAGS="" + SNMPLIBS="" AC_MSG_RESULT(yes) ], [AC_MSG_RESULT(no. No SNMP based plugins can be built!)]) -diff --git a/configure b/configure -index 00067bc..36b913c 100755 ---- a/configure -+++ b/configure -@@ -15949,8 +15949,8 @@ _ACEOF +Index: openhpi-3.8.0/configure +=================================================================== +--- openhpi-3.8.0.orig/configure ++++ openhpi-3.8.0/configure +@@ -16062,8 +16062,8 @@ _ACEOF if ac_fn_c_try_link "$LINENO"; then : have_netsnmp=yes -- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'` +- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/ -O\S*//g'` - SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs` + SNMPFLAGS="" + SNMPLIBS="" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch index 3e09180d4..472318b80 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch @@ -1,4 +1,4 @@ -From 36fbaa27e7299f63c1324b0ad22b970e9365d6a7 Mon Sep 17 00:00:00 2001 +From 5e0ae172586f5aeb270a8f9b012dd3e36536a2a9 Mon Sep 17 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> Date: Wed, 24 Dec 2014 10:54:59 +0800 Subject: [PATCH] openhpi: use serial-tests config needed by ptest @@ -9,17 +9,18 @@ serial-tests is required to generate those targets. Upstream-Status: Inappropriate [default automake behavior incompatible with ptest] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> + --- - configure.ac | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -Index: openhpi-3.6.1/configure.ac -=================================================================== ---- openhpi-3.6.1.orig/configure.ac -+++ openhpi-3.6.1/configure.ac -@@ -7,7 +7,7 @@ dnl various hacks by Sean Dague <http: +diff --git a/configure.ac b/configure.ac +index 89d8104..c29a31f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7,7 +7,7 @@ dnl various hacks by Sean Dague <http://dague.net/sean> 4/23/03 AC_PREREQ(2.57) - AC_INIT(openhpi, 3.6.1) + AC_INIT(openhpi, 3.8.0) AC_CONFIG_SRCDIR(openhpi.spec.in) -AM_INIT_AUTOMAKE([1.8]) +AM_INIT_AUTOMAKE([1.8 serial-tests]) diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb index ecf71d70f..c4b3309f7 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb @@ -20,7 +20,8 @@ SECTION = "net" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4" -DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs autoconf-archive-native" +DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs \ + autoconf-archive-native os-release" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ file://openhpi.init \ @@ -32,22 +33,23 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ file://openhpi-glib-cross-compile.patch \ file://openhpi-linkfix.patch \ file://openhpi-fix-host-gcc.patch \ - file://openhpi-hpi-shell-thread-fix.patch \ file://openhpi-fix-testfail-errors.patch \ file://openhpi-add-libnetsnmp-when-link.patch \ file://openhpi-invalide-session.patch \ file://openhpi-use-serial-tests-config-needed-by-ptest.patch \ file://openhpi-fix-alignment-issue.patch \ - file://0001-Fix-build-failures-with-gcc7.patch \ file://c++11.patch \ file://clang-c++11.patch \ file://fix-narrowing-warning.patch \ - file://0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch \ - file://0001-ipmidirect-Replace-__STRING.patch \ + file://0001-session-close-socket.patch \ + file://openhpi-3.6.1-ssl.patch \ + file://0001-Do-not-poke-at-build-host-s-etc-os-release.patch \ + file://cross_899198.patch \ + file://no-md2.patch \ + file://0001-include-iostream-for-cout.patch \ " - -SRC_URI[md5sum] = "4718b16e0f749b5ad214a9b04f45dd23" -SRC_URI[sha256sum] = "e0a810cb401c4bdcfc9551f2e6afd5a8ca4b411f5ee3bc60c19f82fd6e84a3dc" +SRC_URI[md5sum] = "fffda3deea8a0d3671a72eea9d13a4df" +SRC_URI[sha256sum] = "c94332a29160dd75cb799c027e614690c00263b0fabed87417707bec04c38723" inherit autotools pkgconfig ptest update-rc.d systemd @@ -63,6 +65,8 @@ PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils," PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt," PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,," +export DISTRO + do_install_append () { install -m 0755 -d ${D}${sysconfdir}/${BPN} install -m 0755 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch new file mode 100644 index 000000000..30fdb8bf1 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch @@ -0,0 +1,67 @@ +From 38c5343f84799fc5041575f3ec808f7476b6eea3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 16 Apr 2018 14:33:35 -0700 +Subject: [PATCH] Catch std::ifstream::failure by reference + +Fixes +error: catching polymorphic type 'class std::ios_base::failure' by value +[-Werror=catch-value=] + } catch (std::ofstream::failure) { + ^~~~~~~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + src/base/conf.cc | 4 ++-- + src/dtm/dtmnd/dtm_main.cc | 2 +- + src/dtm/dtmnd/multicast.cc | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/base/conf.cc b/src/base/conf.cc +index d5755a1..4820357 100644 +--- a/src/base/conf.cc ++++ b/src/base/conf.cc +@@ -189,7 +189,7 @@ std::string Conf::ReadFile(const std::string& path_name, + try { + str.open(path_name); + str >> contents; +- } catch (std::ifstream::failure) { ++ } catch (std::ifstream::failure& e) { + contents.clear(); + } + return (str.fail() || contents.empty()) ? default_contents : contents; +@@ -203,7 +203,7 @@ void Conf::WriteFileAtomically(const std::string& path_name, + try { + str.open(tmp_file, std::ofstream::out | std::ofstream::trunc); + str << contents << std::endl; +- } catch (std::ofstream::failure) { ++ } catch (std::ofstream::failure& e) { + success = false; + } + str.close(); +diff --git a/src/dtm/dtmnd/dtm_main.cc b/src/dtm/dtmnd/dtm_main.cc +index 585e11e..5cf6ad7 100644 +--- a/src/dtm/dtmnd/dtm_main.cc ++++ b/src/dtm/dtmnd/dtm_main.cc +@@ -367,7 +367,7 @@ void UpdateNodeIdFile(DTM_INTERNODE_CB *cb) { + try { + str.open(PKGLOCALSTATEDIR "/node_id", std::ofstream::out); + str << std::hex << node_id << std::endl; +- } catch (std::ofstream::failure) { ++ } catch (std::ofstream::failure& e) { + } + str.close(); + } +diff --git a/src/dtm/dtmnd/multicast.cc b/src/dtm/dtmnd/multicast.cc +index cadc002..7c25fea 100644 +--- a/src/dtm/dtmnd/multicast.cc ++++ b/src/dtm/dtmnd/multicast.cc +@@ -199,7 +199,7 @@ bool Multicast::GetPeersFromFile(const std::string &path_name) { + } + } + } +- } catch (std::ifstream::failure) { ++ } catch (std::ifstream::failure& e) { + LOG_ER("Caught std::ifstream::failure when reading file '%s', peers=%zu", + path_name.c_str(), static_cast<size_t>(peers_.size())); + peers_.clear(); diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch new file mode 100644 index 000000000..db6796d05 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch @@ -0,0 +1,76 @@ +From ae7178a78aba2e5766b70191617113487fd7ad0b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 16 Apr 2018 18:29:17 -0700 +Subject: [PATCH] Fix string overflow in snprintf + +Fixes errors like +error: '%s' dir +ective output may be truncated writing up to 255 bytes into a region of size 32 [-Werror=forma +t-truncation=] + snprintf(reinterpret_cast<char *>(Healthy.key), sizeof(Healthy.key), "%s", + ^~~~ + hlth_str); + ~~~~~~~~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + src/log/logd/lgs_util.cc | 4 ++-- + src/rde/rded/rde_amf.cc | 2 +- + src/smf/smfd/SmfUpgradeCampaign.cc | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/log/logd/lgs_util.cc b/src/log/logd/lgs_util.cc +index ac93d5a..cce80f3 100644 +--- a/src/log/logd/lgs_util.cc ++++ b/src/log/logd/lgs_util.cc +@@ -200,12 +200,12 @@ char *lgs_get_time(time_t *time_in) { + + stringSize = 5 * sizeof(char); + snprintf(srcString, (size_t)stringSize, "%d", +- (timeStampData->tm_year + START_YEAR)); ++ (timeStampData->tm_year + START_YEAR) & 0x4dU); + + strncpy(timeStampString, srcString, stringSize); + + stringSize = 3 * sizeof(char); +- snprintf(srcString, (size_t)stringSize, "%02d", (timeStampData->tm_mon + 1)); ++ snprintf(srcString, (size_t)stringSize, "%02d", (timeStampData->tm_mon + 1) & 0x2dU); + + strncat(timeStampString, srcString, stringSize); + +diff --git a/src/rde/rded/rde_amf.cc b/src/rde/rded/rde_amf.cc +index 81e521e..d53cc48 100644 +--- a/src/rde/rded/rde_amf.cc ++++ b/src/rde/rded/rde_amf.cc +@@ -102,7 +102,7 @@ static uint32_t rde_amf_healthcheck_start(RDE_AMF_CB *rde_amf_cb) { + SaAmfHealthcheckKeyT Healthy; + SaNameT SaCompName; + char *phlth_ptr; +- char hlth_str[256]; ++ char hlth_str[32]; + + TRACE_ENTER(); + +diff --git a/src/smf/smfd/SmfUpgradeCampaign.cc b/src/smf/smfd/SmfUpgradeCampaign.cc +index 45cdce8..6761bcf 100644 +--- a/src/smf/smfd/SmfUpgradeCampaign.cc ++++ b/src/smf/smfd/SmfUpgradeCampaign.cc +@@ -447,7 +447,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool *o_result) { + TRACE_ENTER(); + SaAisErrorT rc = SA_AIS_OK; + SaImmAttrValuesT_2 **attributes; +- int curCnt = 0; ++ short int curCnt = 0; + + /* Read the SmfCampRestartInfo object smfCampRestartCnt attr */ + std::string obj = "smfRestartInfo=info," + +@@ -473,7 +473,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool *o_result) { + attrsmfCampRestartCnt.setName("smfCampRestartCnt"); + attrsmfCampRestartCnt.setType("SA_IMM_ATTR_SAUINT32T"); + char buf[5]; +- snprintf(buf, 4, "%d", curCnt); ++ snprintf(buf, 4, "%hd", curCnt); + attrsmfCampRestartCnt.addValue(buf); + imoCampRestartInfo.addValue(attrsmfCampRestartCnt); + diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch index effe25c85..be0a58767 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch @@ -1,20 +1,21 @@ -From ab00d6f5793b2d850f975bcb6d5d0aa6d7a9eaa4 Mon Sep 17 00:00:00 2001 +From c2668f7f2ea82a61115b7cae56ed081b41ff5153 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 22 Apr 2017 12:34:37 -0700 Subject: [PATCH] configure: Disable format-overflow if supported by gcc Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- - Makefile.am | 6 ++-- - configure.ac | 2 ++ - m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++ + Makefile.am | 6 +-- + configure.ac | 2 + + m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 m4/ax_check_compile_flag.m4 -Index: opensaf-5.18.02/Makefile.am -=================================================================== ---- opensaf-5.18.02.orig/Makefile.am -+++ opensaf-5.18.02/Makefile.am +diff --git a/Makefile.am b/Makefile.am +index b3d6553..5607fc2 100644 +--- a/Makefile.am ++++ b/Makefile.am @@ -52,10 +52,10 @@ AM_CPPFLAGS = \ -pthread \ -D_GNU_SOURCE -DINTERNAL_VERSION_ID='"@INTERNAL_VERSION_ID@"' \ @@ -29,11 +30,11 @@ Index: opensaf-5.18.02/Makefile.am if ENABLE_GCOV AM_CFLAGS += --coverage -Index: opensaf-5.18.02/configure.ac -=================================================================== ---- opensaf-5.18.02.orig/configure.ac -+++ opensaf-5.18.02/configure.ac -@@ -593,6 +593,8 @@ if test -z "$OSAF_HARDEN_FLAGS"; then +diff --git a/configure.ac b/configure.ac +index 5b86730..47d1002 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -600,6 +600,8 @@ if test -z "$OSAF_HARDEN_FLAGS"; then fi AC_SUBST(OSAF_HARDEN_FLAGS) @@ -42,10 +43,11 @@ Index: opensaf-5.18.02/configure.ac ############################################# # List the output Makefiles ############################################# -Index: opensaf-5.18.02/m4/ax_check_compile_flag.m4 -=================================================================== +diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 +new file mode 100644 +index 0000000..dcabb92 --- /dev/null -+++ opensaf-5.18.02/m4/ax_check_compile_flag.m4 ++++ b/m4/ax_check_compile_flag.m4 @@ -0,0 +1,74 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch index 5756a027b..e4bbb4c3c 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch @@ -1,4 +1,4 @@ -From 6248b717b4861d16b80235fd8e57d64e4f636428 Mon Sep 17 00:00:00 2001 +From 979b2b6a1aa574a26e8b736049c4207d568f60f3 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Thu, 13 Apr 2017 17:39:07 -0700 Subject: [PATCH] configure: Pass linker specific options with -Wl @@ -7,15 +7,16 @@ This helps make it pass the options to linker correctly and we can use non-gcc compilers Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index df4fc58..02771c6 100644 +index 12a5d5c..5b86730 100644 --- a/configure.ac +++ b/configure.ac -@@ -553,7 +553,7 @@ if test -z "$OSAF_HARDEN_FLAGS"; then +@@ -596,7 +596,7 @@ if test -z "$OSAF_HARDEN_FLAGS"; then if echo "${CFLAGS} ${CXXFLAGS}" | grep -q -- -O0; then OSAF_HARDEN_FLAGS="" fi @@ -24,6 +25,3 @@ index df4fc58..02771c6 100644 fi AC_SUBST(OSAF_HARDEN_FLAGS) --- -2.12.2 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch index 76c47c658..e40d2b319 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch @@ -1,4 +1,4 @@ -From 508ea7c0d67243feb1684eaa83569cb687561d64 Mon Sep 17 00:00:00 2001 +From c21f77d592415f316138c05f581192a1f061e735 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 15 Sep 2017 10:09:03 -0700 Subject: [PATCH] immpbe_dump.cc: Use sys/wait.h instead of wait.h @@ -7,12 +7,13 @@ Fixes redirecting incorrect #include <wait.h> to <sys/wait.h> Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- src/imm/common/immpbe_dump.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/imm/common/immpbe_dump.cc b/src/imm/common/immpbe_dump.cc -index 100222f37..33e47ce3c 100644 +index e6b3cc5..3956028 100644 --- a/src/imm/common/immpbe_dump.cc +++ b/src/imm/common/immpbe_dump.cc @@ -26,12 +26,12 @@ @@ -27,8 +28,5 @@ index 100222f37..33e47ce3c 100644 #include <sys/stat.h> +#include <sys/wait.h> #include <libgen.h> - - #include <saAis.h> --- -2.14.1 - + #include <set> + #include <vector> diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch index 4a2a825f9..e4a3975da 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch @@ -1,4 +1,4 @@ -From 6442b57a855e273aa5a3d93e8596783cea128073 Mon Sep 17 00:00:00 2001 +From 7fb393c66df33110fef0cbabac7d304f12eb82e4 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 15 Sep 2017 09:39:40 -0700 Subject: [PATCH] src: Add missing header limits.h for _POSIX_HOST_NAME_MAX @@ -7,6 +7,7 @@ Use _GNU_SOURCE instead of libc internal __USE_GNU Do not use the deprecated headers under include/sys Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- src/base/os_defs.h | 5 +++-- src/mds/mds_dt_tcp.c | 1 - @@ -18,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> 7 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/base/os_defs.h b/src/base/os_defs.h -index 50a9bf5fc..af6842863 100644 +index a570c43..3559b19 100644 --- a/src/base/os_defs.h +++ b/src/base/os_defs.h @@ -47,17 +47,18 @@ @@ -43,7 +44,7 @@ index 50a9bf5fc..af6842863 100644 #include <pthread.h> diff --git a/src/mds/mds_dt_tcp.c b/src/mds/mds_dt_tcp.c -index 1407eb1ab..a87c22faa 100644 +index 1407eb1..a87c22f 100644 --- a/src/mds/mds_dt_tcp.c +++ b/src/mds/mds_dt_tcp.c @@ -27,7 +27,6 @@ @@ -55,7 +56,7 @@ index 1407eb1ab..a87c22faa 100644 #include <sys/types.h> #include <unistd.h> diff --git a/src/mds/mds_dt_tcp_disc.h b/src/mds/mds_dt_tcp_disc.h -index a6249d73e..574f52681 100644 +index a6249d7..574f526 100644 --- a/src/mds/mds_dt_tcp_disc.h +++ b/src/mds/mds_dt_tcp_disc.h @@ -24,7 +24,7 @@ @@ -68,7 +69,7 @@ index a6249d73e..574f52681 100644 /* mds_indentifire + mds_version + msg_type + scope_type + server_type + server_instance_lower + server_instance_upper + sub_ref_val + sub_ref_val + diff --git a/src/mds/mds_dt_tipc.c b/src/mds/mds_dt_tipc.c -index 37745e7f0..9b3255567 100644 +index 7714175..a0ed3b6 100644 --- a/src/mds/mds_dt_tipc.c +++ b/src/mds/mds_dt_tipc.c @@ -35,7 +35,6 @@ @@ -80,7 +81,7 @@ index 37745e7f0..9b3255567 100644 #include <sys/types.h> #include <unistd.h> diff --git a/src/mds/mds_dt_tipc.h b/src/mds/mds_dt_tipc.h -index e73a11b09..401d208c2 100644 +index e73a11b..401d208 100644 --- a/src/mds/mds_dt_tipc.h +++ b/src/mds/mds_dt_tipc.h @@ -32,7 +32,7 @@ @@ -93,7 +94,7 @@ index e73a11b09..401d208c2 100644 #include <errno.h> #include <fcntl.h> diff --git a/src/mds/mds_dt_trans.c b/src/mds/mds_dt_trans.c -index 6f621e04e..5aacbd33e 100644 +index 6f621e0..5aacbd3 100644 --- a/src/mds/mds_dt_trans.c +++ b/src/mds/mds_dt_trans.c @@ -26,7 +26,6 @@ @@ -105,7 +106,7 @@ index 6f621e04e..5aacbd33e 100644 #define MDS_PROT_TCP 0xA0 diff --git a/src/ntf/ntfd/NtfLogger.cc b/src/ntf/ntfd/NtfLogger.cc -index 84014b578..31b1ccc6c 100644 +index fd17c58..1120008 100644 --- a/src/ntf/ntfd/NtfLogger.cc +++ b/src/ntf/ntfd/NtfLogger.cc @@ -20,7 +20,7 @@ @@ -117,6 +118,3 @@ index 84014b578..31b1ccc6c 100644 #include "base/osaf_utility.h" #include <saAis.h> --- -2.14.1 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch new file mode 100644 index 000000000..f98e28da9 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch @@ -0,0 +1,100 @@ +From c5034fe42df8923bcefc10e163151997d70b6241 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 16 Apr 2018 14:56:47 -0700 +Subject: [PATCH] Fix format-truncation errors + +Fixes errors with gcc8 eg. +error: '%u' directive output may be truncated writing between 1 and 10 bytes into a region of size between 0 and 254 [-Werror=format-truncation=] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + src/base/daemon.c | 4 ++-- + src/mds/mds_c_db.c | 8 ++++---- + src/mds/mds_core.h | 4 ++-- + src/mds/mds_dt2c.h | 2 +- + 4 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/src/base/daemon.c b/src/base/daemon.c +index 361dd8d..4001b73 100644 +--- a/src/base/daemon.c ++++ b/src/base/daemon.c +@@ -95,11 +95,11 @@ static int __create_pidfile(const char *pidfile) + { + FILE *file = NULL; + int fd, rc = 0; +- char pidfiletmp[NAME_MAX] = {0}; ++ char pidfiletmp[NAME_MAX+12] = {0}; + pid_t pid; + + pid = getpid(); +- snprintf(pidfiletmp, NAME_MAX, "%s.%u.tmp", pidfile, pid); ++ snprintf(pidfiletmp, NAME_MAX+12, "%s.%u.tmp", pidfile, pid); + + /* open the file and associate a stream with it */ + if (((fd = open(pidfiletmp, O_RDWR | O_CREAT, 0644)) == -1) || +diff --git a/src/mds/mds_c_db.c b/src/mds/mds_c_db.c +index e6b95cd..3d4a222 100644 +--- a/src/mds/mds_c_db.c ++++ b/src/mds/mds_c_db.c +@@ -124,10 +124,10 @@ void get_adest_details(MDS_DEST adest, char *adest_details) + } + + if (remote == true) +- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN, ++ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24, + "<rem_nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, process_name); + else +- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN, ++ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24, + "<nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, process_name); + + m_MDS_LOG_DBG("MDS:DB: adest_details: %s ", adest_details); +@@ -207,10 +207,10 @@ void get_subtn_adest_details(MDS_PWE_HDL pwe_hdl, MDS_SVC_ID svc_id, + } + + if (remote == true) +- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN, ++ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24, + "<rem_node[0x%" PRIx32 "]:%s>", ncs_node_id, process_name); + else +- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN, ++ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24, + "<node[0x%" PRIx32 "]:%s>", ncs_node_id, process_name); + done: + m_MDS_LOG_DBG("MDS:DB: adest_details: %s ", adest_details); +diff --git a/src/mds/mds_core.h b/src/mds/mds_core.h +index 37696d4..7f5225d 100644 +--- a/src/mds/mds_core.h ++++ b/src/mds/mds_core.h +@@ -163,7 +163,7 @@ typedef struct mds_subscription_results_info { + uint32_t msg_snd_cnt; /* Message send count to this destination */ + uint32_t msg_rcv_cnt; /* Message rcv count from this destination */ + char sub_adest_details +- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[slotno]:processname[pid]> */ ++ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[slotno]:processname[pid]> */ + + } MDS_SUBSCRIPTION_RESULTS_INFO; + +@@ -194,7 +194,7 @@ typedef struct mds_subscription_info { + count is grater than ZERO bcast (multi-unicast) */ + uint32_t prev_ver_sub_count; + char sub_adest_details +- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[slotno]:processname[pid]> */ ++ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[slotno]:processname[pid]> */ + + } MDS_SUBSCRIPTION_INFO; + +diff --git a/src/mds/mds_dt2c.h b/src/mds/mds_dt2c.h +index 012999c..006b722 100644 +--- a/src/mds/mds_dt2c.h ++++ b/src/mds/mds_dt2c.h +@@ -143,7 +143,7 @@ typedef struct mdtm_send_req { + */ + MDS_DEST adest; /* MDTM to do local/remote routing, destination adest */ + char sub_adest_details +- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[nodeid]:processname[pid]> */ ++ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[nodeid]:processname[pid]> */ + MDS_SEND_PRIORITY_TYPE pri; + MDS_CLIENT_MSG_FORMAT_VER + msg_fmt_ver; /* message format version specification */ diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0008-check-for-size-before-using-strncpy.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0008-check-for-size-before-using-strncpy.patch new file mode 100644 index 000000000..497bb07d8 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0008-check-for-size-before-using-strncpy.patch @@ -0,0 +1,33 @@ +From 29510dd81e3a5e96151afdb0702863cbfd640766 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 22 Jun 2018 18:58:59 -0700 +Subject: [PATCH] check for size before using strncpy + +ensures that size is never execeding the string length +that execPath can hold + +Fixes +error: '__builtin___strncpy_chk' specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Werror=stringop-overflow=] + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/imm/immnd/immnd_proc.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/imm/immnd/immnd_proc.c b/src/imm/immnd/immnd_proc.c +index 015932a..c8f115e 100644 +--- a/src/imm/immnd/immnd_proc.c ++++ b/src/imm/immnd/immnd_proc.c +@@ -1902,6 +1902,10 @@ static int immnd_forkPbe(IMMND_CB *cb) + LOG_ER("Pathname too long: %u max is 1023", newLen); + return -1; + } ++ if (execDirLen > 1023 || execDirLen < 0) { ++ LOG_ER("Execdir name too long: %u max is 1023", execDirLen); ++ return -1; ++ } + + strncpy(execPath, cb->mProgName, execDirLen); + execPath[execDirLen] = 0; diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb index 4b556ce8c..c534c6206 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb @@ -24,9 +24,13 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \ file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \ file://0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch \ file://0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch \ -" -SRC_URI[md5sum] = "42064f5ddbc7f560bfc5ff93ea9eecc7" -SRC_URI[sha256sum] = "f9e24897f9cfd63bb3115f6275c706de1702d3d9bae2fc423227db72b23c37f0" + file://0001-Catch-std-ifstream-failure-by-reference.patch \ + file://0002-Fix-format-truncation-errors.patch \ + file://0001-Fix-string-overflow-in-snprintf.patch \ + file://0008-check-for-size-before-using-strncpy.patch \ + " +SRC_URI[md5sum] = "21836e43b13ad33bed9bd0ed391e5a6e" +SRC_URI[sha256sum] = "e55dc2645487fb22938e8386b99eef6eb7aff43a246ce3e92488daf6ee46247a" inherit autotools useradd systemd pkgconfig @@ -38,9 +42,10 @@ SYSTEMD_SERVICE_${PN} += "opensafd.service" SYSTEMD_AUTO_ENABLE = "disable" PACKAGECONFIG[systemd] = ",,systemd" -PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03 --enable-ais-plm,,openhpi" +PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03,,openhpi" +PACKAGECONFIG[plm] = "--enable-ais-plm,--disable-ais-plm,libvirt openhpi" -PACKAGECONFIG_append = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}" +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}" PKGLIBDIR="${libdir}" @@ -65,3 +70,5 @@ INSANE_SKIP_${PN} = "dev-so" RDEPENDS_${PN} += "bash python" +# http://errors.yoctoproject.org/Errors/Details/186970/ +EXCLUDE_FROM_WORLD_libc-musl = "1" diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch deleted file mode 100644 index 6b86e3925..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 63619acf25151d4dade6d65732722ec4a710a5ac Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 15 Jul 2017 09:54:25 -0700 -Subject: [PATCH] Check for glibc before setting CANT_USE_SEND_RECV_MSG - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/util/sys_defs.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/util/sys_defs.h b/src/util/sys_defs.h -index f720e2a..7314c63 100644 ---- a/src/util/sys_defs.h -+++ b/src/util/sys_defs.h -@@ -813,7 +813,7 @@ extern int initgroups(const char *, int); - #define KERNEL_VERSION(a,b,c) (LINUX_VERSION_CODE + 1) - #endif - #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,2,0)) \ -- || (__GLIBC__ < 2) -+ || (defined(__GLIBC__) && (__GLIBC__ < 2)) - #define CANT_USE_SEND_RECV_MSG - #define DEF_SMTP_CACHE_DEMAND 0 - #else --- -2.13.3 - diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch new file mode 100644 index 000000000..565098400 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch @@ -0,0 +1,58 @@ +From 4caa18feb70f8f3d133657c1250a53f4e292bb42 Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Fri, 12 Oct 2018 12:38:02 +0800 +Subject: [PATCH] makedefs: add -lnsl and -lresolv to SYSLIBS by default + +We don't need to check libnsl.so and libresolv.so since the libnsl2 is +specified in DEPENDS and libresolv.so is from c libarary. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + makedefs | 22 ++-------------------- + 1 file changed, 2 insertions(+), 20 deletions(-) + +diff --git a/makedefs b/makedefs +index 2683bce..8f1b3f4 100644 +--- a/makedefs ++++ b/makedefs +@@ -484,16 +484,7 @@ case "$SYSTEM.$RELEASE" in + SYSLIBS="$SYSLIBS -ldb" + ;; + esac +- for name in nsl resolv $GDBM_LIBS +- do +- for lib in $BUILD_SYSROOT_NSL_PATH +- do +- test -e $lib/lib$name.a -o -e $lib/lib$name.so && { +- SYSLIBS="$SYSLIBS -l$name" +- break +- } +- done +- done ++ SYSLIBS="$SYSLIBS -lnsl -lresolv" + # Kernel 2.4 added IPv6 + case "$RELEASE" in + 2.[0-3].*) CCARGS="$CCARGS -DNO_IPV6";; +@@ -561,16 +552,7 @@ EOF + SYSLIBS="$SYSLIBS -ldb" + ;; + esac +- for name in nsl resolv +- do +- for lib in $BUILD_SYSROOT_NSL_PATH +- do +- test -e $lib/lib$name.a -o -e $lib/lib$name.so && { +- SYSLIBS="$SYSLIBS -l$name" +- break +- } +- done +- done ++ SYSLIBS="$SYSLIBS -lnsl -lresolv" + SYSLIBS="$SYSLIBS -ldl" + : ${SHLIB_SUFFIX=.so} + : ${SHLIB_CFLAGS=-fPIC} +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc index 09447d50a..3d4f1df43 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc +++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc @@ -6,14 +6,13 @@ has a definite Sendmail-ish flavor, but the inside is completely different." HOMEPAGE= "http://www.postfix.org" SECTION = "mail" -DEPENDS = "db icu libpcre openssl postfix-native \ +DEPENDS = "db icu libpcre libnsl2 openssl postfix-native \ ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \ " -DEPENDS_class-native = "db-native icu-native openssl-native libpcre-native" -LICENSE = "IPL-1.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=64375f37431336ea1b1b3005fe3fa354" +LICENSE = "IPL-1.0 | EPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b181651ad99a7dc4cc8c4ce2f491ed1a" SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \ file://makedefs.patch \ @@ -77,7 +76,6 @@ export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS -I${STAGING_INCDIR}/openssl ${C export AUXLIBS = "-lpcre -lssl -lcrypto ${AUXLIBS-sasl} ${AUXLIBS-ldap}" export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf" -export CCARGS-nonis_libc-musl = "-DNO_NIS" # OPT,DEBUG is aready in CFLAGS # ignore the OPTS="CC=$CC" in Makefile it will not use the CC=$CC $CCARGS EXTRA_OEMAKE += "OPT= DEBUG= OPTS= " @@ -99,27 +97,9 @@ do_compile () { "s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \ ${S}/Makefile.in export BUILD_SYSROOT="${STAGING_DIR_HOST}" - export BUILD_SYSROOT_NSL_PATH="${STAGING_BASELIBDIR} \ - ${STAGING_LIBDIR}" else # native build export BUILD_SYSROOT="${STAGING_DIR_NATIVE}" - - # ubuntu x86 host: /lib/x86_64-linux-gnu(64) /lib/i386-linux-gnu (32) - # on 64 bits, 32 libs in i386-linux-gnu - # let makedefs finds nsl and resolv libs, host CC will link - # the correct libraries - BUILD_SYSROOT_NSL_PATH="$(${CC} -print-search-dirs 2>/dev/null | \ - sed -n '/^libraries: =/s/libraries: =//p' | \ - sed -e 's/:/\n/g' | xargs -n1 readlink -f | \ - grep -v 'gcc\|/[0-9.]\+$' | sort -u)" - if [ -z "$BUILD_SYSROOT_NSL_PATH" ]; then - BUILD_SYSROOT_NSL_PATH="/usr/lib64 /lib64 \ - /lib/x86_64-linux-gnu \ - /usr/lib /lib \ - /lib/i386-linux-gnu" - fi - export BUILD_SYSROOT_NSL_PATH fi oe_runmake makefiles @@ -207,6 +187,8 @@ do_install () { chown :postdrop ${D}${sbindir}/postdrop chmod g+s ${D}${sbindir}/postqueue chmod g+s ${D}${sbindir}/postdrop + + rm -rf ${D}/etc/postfix/makedefs.out } do_install_append_class-native() { @@ -214,14 +196,12 @@ do_install_append_class-native() { ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq } -do_install_append_class-target() { - # Remove references to buildmachine paths in target makedefs.out - sed -i 's:-fdebug-prefix-map[^ ]*::g; s:--sysroot=${STAGING_DIR_TARGET}::g' ${D}/etc/postfix/makedefs.out -} - -ALTERNATIVE_${PN} = "sendmail" +ALTERNATIVE_${PN} += "sendmail mailq newaliases" +ALTERNATIVE_TARGET[mailq] = "${bindir}/mailq" +ALTERNATIVE_TARGET[newaliases] = "${bindir}/newaliases" ALTERNATIVE_TARGET[sendmail] = "${sbindir}/sendmail.postfix" ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" + ALTERNATIVE_PRIORITY = "120" ALTERNATIVE_${PN}-doc += "mailq.1 newaliases.1 sendmail.1" @@ -248,10 +228,10 @@ pkg_postinst_${PN} () { # This can fail depending on host setup if ! newaliases -C $D/etc/postfix/main.cf -oA$D/etc/aliases; then $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX} - exit 0 + else + touch $D/etc/postfix/virtual_alias + postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias fi - touch $D/etc/postfix/virtual_alias - postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias fi } diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb deleted file mode 100644 index 89af406ac..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb +++ /dev/null @@ -1,9 +0,0 @@ -require postfix.inc - -SRC_URI += "file://0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch \ - file://0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch \ - file://postfix-install.patch \ - file://icu-config.patch \ - " -SRC_URI[md5sum] = "aea073a9b0bea5bdb590460a270a4aa0" -SRC_URI[sha256sum] = "d06849418d119d09366997b2b481bb23f737629769b4e4a52da42fb3ad8b0576" diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb new file mode 100644 index 000000000..6718b7ef9 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb @@ -0,0 +1,12 @@ +require postfix.inc + +SRC_URI += "file://0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch \ + file://postfix-install.patch \ + file://icu-config.patch \ + file://0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \ + " + +SRC_URI[md5sum] = "4381c6492f415e4a69cf5099d4acea76" +SRC_URI[sha256sum] = "54f514dae42b5275cb4bc9c69283f16c06200b71813d0bb696568c4ba7ae7e3b" + +UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.3(\.\d+)+).tar.gz" diff --git a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb index c1f150405..e5c561646 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb @@ -5,7 +5,7 @@ SECTION = "net" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=90352fb2bfe17f4261687a0d6e09f489" -DEPENDS = "libcap" +DEPENDS = "libcap virtual/crypt" SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \ diff --git a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc index 06d16a4ce..59a07d78d 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc +++ b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc @@ -20,7 +20,7 @@ SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz \ file://volatiles.03_radvd \ file://radvd.default" -inherit autotools update-rc.d useradd pkgconfig systemd +inherit autotools useradd pkgconfig systemd SYSTEMD_SERVICE_${PN} = "radvd.service" SYSTEMD_AUTO_ENABLE = "disable" @@ -36,7 +36,7 @@ do_install_append () { sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/radvd sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/radvd - install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/volatiles.03_radvd + install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/03_radvd # Install systemd service files install -d ${D}${systemd_unitdir}/system @@ -54,9 +54,6 @@ do_install_append () { done } -INITSCRIPT_NAME = "radvd" -INITSCRIPT_PARAMS = "defaults 20 80" - USERADD_PACKAGES = "${PN}" USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd" diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch new file mode 100644 index 000000000..001d9e906 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch @@ -0,0 +1,506 @@ +From 01a44c96dbd04936e9cb2501745a834a0b09d504 Mon Sep 17 00:00:00 2001 +From: Amos Jeffries <yadij@users.noreply.github.com> +Date: Sun, 13 May 2018 06:57:41 +0000 +Subject: [PATCH] Bug 4843 pt1: ext_edirectory_userip_acl refactoring for GCC-8 + (#204) + +Proposed changes to this helper to fix strcat / strncat buffer +overread / overflow issues. + +The approach takes three parts: + +* adds a makeHexString function to replace many for-loops + catenating bits of strings together with hex conversion into a + second buffer. Replacing with a snprintf() and buffer overflow + handling. + +* a copy of Ip::Address::lookupHostIp to convert the input + string into IP address binary format, then generate the hex + string using the above new hex function instead of looped + sub-string concatenations across several buffers. + This removes all the "00" and "0000" strncat() calls and + allows far simpler code even with added buffer overflow + handling. + +* replace multiple string part concatenations with a few simpler + calls to snprintf() for all the search_ip buffer constructions. + Adding buffer overflow handling as needed for the new calls. +--- +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Backport + + .../ext_edirectory_userip_acl.cc | 376 ++++++------------ + 1 file changed, 120 insertions(+), 256 deletions(-) + +diff --git a/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc b/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc +index 63609e4..ad16bfd 100644 +--- a/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc ++++ b/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc +@@ -67,6 +67,9 @@ + #ifdef HAVE_LDAP_H + #include <ldap.h> + #endif ++#ifdef HAVE_NETDB_H ++#include <netdb.h> ++#endif + + #ifdef HELPER_INPUT_BUFFER + #define EDUI_MAXLEN HELPER_INPUT_BUFFER +@@ -714,11 +717,14 @@ BindLDAP(edui_ldap_t *l, char *dn, char *pw, unsigned int t) + + /* Copy details - dn and pw CAN be NULL for anonymous and/or TLS */ + if (dn != NULL) { ++ if (strlen(dn) >= sizeof(l->dn)) ++ return LDAP_ERR_OOB; /* DN too large */ ++ + if ((l->basedn[0] != '\0') && (strstr(dn, l->basedn) == NULL)) { + /* We got a basedn, but it's not part of dn */ +- xstrncpy(l->dn, dn, sizeof(l->dn)); +- strncat(l->dn, ",", 1); +- strncat(l->dn, l->basedn, strlen(l->basedn)); ++ const int x = snprintf(l->dn, sizeof(l->dn)-1, "%s,%s", dn, l->basedn); ++ if (x < 0 || static_cast<size_t>(x) >= sizeof(l->dn)) ++ return LDAP_ERR_OOB; /* DN too large */ + } else + xstrncpy(l->dn, dn, sizeof(l->dn)); + } +@@ -778,24 +784,73 @@ BindLDAP(edui_ldap_t *l, char *dn, char *pw, unsigned int t) + } + } + ++// XXX: duplicate (partial) of Ip::Address::lookupHostIp ++/** ++ * Convert the IP address string representation in src to ++ * its binary representation. ++ * ++ * \return binary representation of the src IP address. ++ * Must be free'd using freeaddrinfo(). ++ */ ++static struct addrinfo * ++makeIpBinary(const char *src) ++{ ++ struct addrinfo want; ++ memset(&want, 0, sizeof(want)); ++ want.ai_flags = AI_NUMERICHOST; // prevent actual DNS lookups! ++ ++ struct addrinfo *dst = nullptr; ++ if (getaddrinfo(src, nullptr, &want, &dst) != 0) { ++ // not an IP address ++ /* free any memory getaddrinfo() dynamically allocated. */ ++ if (dst) ++ freeaddrinfo(dst); ++ return nullptr; ++ } ++ ++ return dst; ++} ++ ++/** ++ * Convert srcLen bytes from src into HEX and store into dst, which ++ * has a maximum content size of dstSize including c-string terminator. ++ * The dst value produced will be a 0-terminated c-string. ++ * ++ * \retval N length of dst written (excluding c-string terminator) ++ * \retval -11 (LDAP_ERR_OOB) buffer overflow detected ++ */ ++static int ++makeHexString(char *dst, const int dstSize, const char *src, const int srcLen) ++{ ++ // HEX encoding doubles the amount of bytes/octets copied ++ if ((srcLen*2) >= dstSize) ++ return LDAP_ERR_OOB; // cannot copy that many ++ ++ *dst = 0; ++ ++ for (int k = 0; k < srcLen; ++k) { ++ int c = static_cast<int>(src[k]); ++ if (c < 0) ++ c = c + 256; ++ char hexc[4]; ++ const int hlen = snprintf(hexc, sizeof(hexc), "%02X", c); ++ if (hlen < 0 || static_cast<size_t>(hlen) > sizeof(hexc)) // should be impossible ++ return LDAP_ERR_OOB; ++ strcat(dst, hexc); ++ } ++ return strlen(dst); ++} ++ + /* + * ConvertIP() - <edui_ldap_t> <ip> + * + * Take an IPv4 address in dot-decimal or IPv6 notation, and convert to 2-digit HEX stored in l->search_ip + * This is the networkAddress that we search LDAP for. +- * +- * PENDING -- CHANGE OVER TO inet*_pton, but inet6_pton does not provide the correct syntax +- * + */ + static int + ConvertIP(edui_ldap_t *l, char *ip) + { +- char bufa[EDUI_MAXLEN], bufb[EDUI_MAXLEN], obj[EDUI_MAXLEN]; +- char hexc[4], *p; + void *y, *z; +- size_t s; +- long x; +- int i, j, t, swi; /* IPv6 "::" cut over toggle */ + if (l == NULL) return LDAP_ERR_NULL; + if (ip == NULL) return LDAP_ERR_PARAM; + if (!(l->status & LDAP_INIT_S)) return LDAP_ERR_INIT; /* Not initalized */ +@@ -831,183 +886,22 @@ ConvertIP(edui_ldap_t *l, char *ip) + l->status |= (LDAP_IPV4_S); + z = NULL; + } +- s = strlen(ip); +- *(bufa) = '\0'; +- *(bufb) = '\0'; +- *(obj) = '\0'; +- /* StringSplit() will zero out bufa & obj at each call */ +- memset(l->search_ip, '\0', sizeof(l->search_ip)); +- xstrncpy(bufa, ip, sizeof(bufa)); /* To avoid segfaults, use bufa instead of ip */ +- swi = 0; +- if (l->status & LDAP_IPV6_S) { +- /* Search for :: in string */ +- if ((bufa[0] == ':') && (bufa[1] == ':')) { +- /* bufa starts with a ::, so just copy and clear */ +- xstrncpy(bufb, bufa, sizeof(bufb)); +- *(bufa) = '\0'; +- ++swi; /* Indicates that there is a bufb */ +- } else if ((bufa[0] == ':') && (bufa[1] != ':')) { +- /* bufa starts with a :, a typo so just fill in a ':', cat and clear */ +- bufb[0] = ':'; +- strncat(bufb, bufa, strlen(bufa)); +- *(bufa) = '\0'; +- ++swi; /* Indicates that there is a bufb */ +- } else { +- p = strstr(bufa, "::"); +- if (p != NULL) { +- /* Found it, break bufa down and split into bufb here */ +- *(bufb) = '\0'; +- i = strlen(p); +- memcpy(bufb, p, i); +- *p = '\0'; +- bufb[i] = '\0'; +- ++swi; /* Indicates that there is a bufb */ +- } +- } +- } +- s = strlen(bufa); +- if (s < 1) +- s = strlen(bufb); +- while (s > 0) { +- if ((l->status & LDAP_IPV4_S) && (swi == 0)) { +- /* Break down IPv4 address */ +- t = StringSplit(bufa, '.', obj, sizeof(obj)); +- if (t > 0) { +- errno = 0; +- x = strtol(obj, (char **)NULL, 10); +- if (((x < 0) || (x > 255)) || ((errno != 0) && (x == 0)) || ((obj[0] != '0') && (x == 0))) +- return LDAP_ERR_OOB; /* Out of bounds -- Invalid address */ +- memset(hexc, '\0', sizeof(hexc)); +- int hlen = snprintf(hexc, sizeof(hexc), "%02X", (int)x); +- strncat(l->search_ip, hexc, hlen); +- } else +- break; /* reached end of octet */ +- } else if (l->status & LDAP_IPV6_S) { +- /* Break down IPv6 address */ +- if (swi > 1) +- t = StringSplit(bufb, ':', obj, sizeof(obj)); /* After "::" */ +- else +- t = StringSplit(bufa, ':', obj, sizeof(obj)); /* Before "::" */ +- /* Convert octet by size (t) - and fill 0's */ +- switch (t) { /* IPv6 is already in HEX, copy contents */ +- case 4: +- hexc[0] = (char) toupper((int)obj[0]); +- i = (int)hexc[0]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[1] = (char) toupper((int)obj[1]); +- i = (int)hexc[1]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[2] = '\0'; +- strncat(l->search_ip, hexc, 2); +- hexc[0] = (char) toupper((int)obj[2]); +- i = (int)hexc[0]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[1] = (char) toupper((int)obj[3]); +- i = (int)hexc[1]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[2] = '\0'; +- strncat(l->search_ip, hexc, 2); +- break; +- case 3: +- hexc[0] = '0'; +- hexc[1] = (char) toupper((int)obj[0]); +- i = (int)hexc[1]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[2] = '\0'; +- strncat(l->search_ip, hexc, 2); +- hexc[0] = (char) toupper((int)obj[1]); +- i = (int)hexc[0]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[1] = (char) toupper((int)obj[2]); +- i = (int)hexc[1]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[2] = '\0'; +- strncat(l->search_ip, hexc, 2); +- break; +- case 2: +- strncat(l->search_ip, "00", 2); +- hexc[0] = (char) toupper((int)obj[0]); +- i = (int)hexc[0]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[1] = (char) toupper((int)obj[1]); +- i = (int)hexc[1]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[2] = '\0'; +- strncat(l->search_ip, hexc, 2); +- break; +- case 1: +- strncat(l->search_ip, "00", 2); +- hexc[0] = '0'; +- hexc[1] = (char) toupper((int)obj[0]); +- i = (int)hexc[1]; +- if (!isxdigit(i)) +- return LDAP_ERR_OOB; /* Out of bounds */ +- hexc[2] = '\0'; +- strncat(l->search_ip, hexc, 2); +- break; +- default: +- if (t > 4) +- return LDAP_ERR_OOB; +- break; +- } +- /* Code to pad the address with 0's between a '::' */ +- if ((strlen(bufa) == 0) && (swi == 1)) { +- /* We are *AT* the split, pad in some 0000 */ +- t = strlen(bufb); +- /* How many ':' exist in bufb ? */ +- j = 0; +- for (i = 0; i < t; ++i) { +- if (bufb[i] == ':') +- ++j; +- } +- --j; /* Preceding "::" doesn't count */ +- t = 8 - (strlen(l->search_ip) / 4) - j; /* Remainder */ +- if (t > 0) { +- for (i = 0; i < t; ++i) +- strncat(l->search_ip, "0000", 4); +- } +- } +- } +- if ((bufa[0] == '\0') && (swi > 0)) { +- s = strlen(bufb); +- ++swi; +- } else +- s = strlen(bufa); +- } +- s = strlen(l->search_ip); + +- /* CHECK sizes of address, truncate or pad */ +- /* if "::" is at end of ip, then pad another block or two */ +- while ((l->status & LDAP_IPV6_S) && (s < 32)) { +- strncat(l->search_ip, "0000", 4); +- s = strlen(l->search_ip); +- } +- if ((l->status & LDAP_IPV6_S) && (s > 32)) { +- /* Too long, truncate */ +- l->search_ip[32] = '\0'; +- s = strlen(l->search_ip); +- } +- /* If at end of ip, and its not long enough, then pad another block or two */ +- while ((l->status & LDAP_IPV4_S) && (s < 8)) { +- strncat(l->search_ip, "00", 2); +- s = strlen(l->search_ip); +- } +- if ((l->status & LDAP_IPV4_S) && (s > 8)) { +- /* Too long, truncate */ +- l->search_ip[8] = '\0'; +- s = strlen(l->search_ip); ++ size_t s = LDAP_ERR_INVALID; ++ if (struct addrinfo *dst = makeIpBinary(ip)) { ++ if (dst->ai_family == AF_INET6) { ++ struct sockaddr_in6 *sia = reinterpret_cast<struct sockaddr_in6 *>(dst->ai_addr); ++ const char *ia = reinterpret_cast<const char *>(sia->sin6_addr.s6_addr); ++ s = makeHexString(l->search_ip, sizeof(l->search_ip), ia, 16); // IPv6 = 16-byte address ++ ++ } else if (dst->ai_family == AF_INET) { ++ struct sockaddr_in *sia = reinterpret_cast<struct sockaddr_in *>(dst->ai_addr); ++ const char *ia = reinterpret_cast<const char *>(&(sia->sin_addr)); ++ s = makeHexString(l->search_ip, sizeof(l->search_ip), ia, 4); // IPv4 = 4-byte address ++ } // else leave s with LDAP_ERR_INVALID value ++ freeaddrinfo(dst); + } + +- /* Completed, s is length of address in HEX */ + return s; + } + +@@ -1099,48 +993,42 @@ SearchFilterLDAP(edui_ldap_t *l, char *group) + } + if (group == NULL) { + /* No groupMembership= to add, yay! */ +- xstrncpy(bufa, "(&", sizeof(bufa)); +- strncat(bufa, edui_conf.search_filter, strlen(edui_conf.search_filter)); + /* networkAddress */ +- snprintf(bufb, sizeof(bufb), "(|(networkAddress=1\\23%s)", bufc); + if (l->status & LDAP_IPV4_S) { +- int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=8\\23\\00\\00%s)(networkAddress=9\\23\\00\\00%s))", \ +- bufc, bufc); +- strncat(bufb, bufd, ln); ++ const int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=8\\23\\00\\00%s)(networkAddress=9\\23\\00\\00%s)", bufc, bufc); ++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd)) ++ return LDAP_ERR_OOB; ++ + } else if (l->status & LDAP_IPV6_S) { +- int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=10\\23\\00\\00%s)(networkAddress=11\\23\\00\\00%s))", \ +- bufc, bufc); +- strncat(bufb, bufd, ln); +- } else +- strncat(bufb, ")", 1); +- strncat(bufa, bufb, strlen(bufb)); +- strncat(bufa, ")", 1); ++ const int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=10\\23\\00\\00%s)(networkAddress=11\\23\\00\\00%s)", bufc, bufc); ++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd)) ++ return LDAP_ERR_OOB; ++ } ++ const int x = snprintf(bufa, sizeof(bufa), "(&%s(|(networkAddress=1\\23%s)%s))", edui_conf.search_filter, bufc, bufd); ++ if (x < 0 || static_cast<size_t>(x) >= sizeof(bufa)) ++ return LDAP_ERR_OOB; ++ + } else { + /* Needs groupMembership= to add... */ +- xstrncpy(bufa, "(&(&", sizeof(bufa)); +- strncat(bufa, edui_conf.search_filter, strlen(edui_conf.search_filter)); + /* groupMembership -- NOTE: Squid *MUST* provide "cn=" from squid.conf */ +- snprintf(bufg, sizeof(bufg), "(groupMembership=%s", group); + if ((l->basedn[0] != '\0') && (strstr(group, l->basedn) == NULL)) { +- strncat(bufg, ",", 1); +- strncat(bufg, l->basedn, strlen(l->basedn)); ++ const int ln = snprintf(bufg, sizeof(bufg), ",%s", l->basedn); ++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd)) ++ return LDAP_ERR_OOB; + } +- strncat(bufg, ")", 1); +- strncat(bufa, bufg, strlen(bufg)); + /* networkAddress */ +- snprintf(bufb, sizeof(bufb), "(|(networkAddress=1\\23%s)", bufc); + if (l->status & LDAP_IPV4_S) { +- int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=8\\23\\00\\00%s)(networkAddress=9\\23\\00\\00%s))", \ +- bufc, bufc); +- strncat(bufb, bufd, ln); ++ const int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=8\\23\\00\\00%s)(networkAddress=9\\23\\00\\00%s)", bufc, bufc); ++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd)) ++ return LDAP_ERR_OOB; + } else if (l->status & LDAP_IPV6_S) { +- int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=10\\23\\00\\00%s)(networkAddress=11\\23\\00\\00%s))", \ +- bufc, bufc); +- strncat(bufb, bufd, ln); +- } else +- strncat(bufb, ")", 1); +- strncat(bufa, bufb, strlen(bufb)); +- strncat(bufa, "))", 2); ++ const int ln = snprintf(bufd, sizeof(bufd), "(networkAddress=10\\23\\00\\00%s)(networkAddress=11\\23\\00\\00%s)", bufc, bufc); ++ if (ln < 0 || static_cast<size_t>(ln) >= sizeof(bufd)) ++ return LDAP_ERR_OOB; ++ } ++ const int x = snprintf(bufa, sizeof(bufa), "(&(&%s(groupMembership=%s%s)(|(networkAddress=1\\23%s)%s)))", edui_conf.search_filter, group, bufg, bufc, bufd); ++ if (x < 0 || static_cast<size_t>(x) >= sizeof(bufa)) ++ return LDAP_ERR_OOB; + } + s = strlen(bufa); + xstrncpy(l->search_filter, bufa, sizeof(l->search_filter)); +@@ -1212,10 +1100,10 @@ static int + SearchIPLDAP(edui_ldap_t *l) + { + ber_len_t i, x; +- ber_len_t j, k; +- ber_len_t y, z; +- int c; +- char bufa[EDUI_MAXLEN], bufb[EDUI_MAXLEN], hexc[4]; ++ ber_len_t j; ++ ber_len_t z; ++ char bufa[EDUI_MAXLEN]; ++ char bufb[EDUI_MAXLEN]; + LDAPMessage *ent; + if (l == NULL) return LDAP_ERR_NULL; + if (l->lp == NULL) return LDAP_ERR_POINTER; +@@ -1273,19 +1161,11 @@ SearchIPLDAP(edui_ldap_t *l) + /* bufa is the address, just compare it */ + if (!(l->status & LDAP_IPV4_S) || (l->status & LDAP_IPV6_S)) + break; /* Not looking for IPv4 */ +- for (k = 0; k < z; ++k) { +- c = (int) bufa[k]; +- if (c < 0) +- c = c + 256; +- int hlen = snprintf(hexc, sizeof(hexc), "%02X", c); +- if (k == 0) +- xstrncpy(bufb, hexc, sizeof(bufb)); +- else +- strncat(bufb, hexc, hlen); +- } +- y = strlen(bufb); ++ const int blen = makeHexString(bufb, sizeof(bufb), bufa, z); ++ if (blen < 0) ++ return blen; + /* Compare value with IP */ +- if (memcmp(l->search_ip, bufb, y) == 0) { ++ if (memcmp(l->search_ip, bufb, blen) == 0) { + /* We got a match! - Scan 'ber' for 'cn' values */ + z = ldap_count_values_len(ber); + for (j = 0; j < z; ++j) { +@@ -1308,19 +1188,11 @@ SearchIPLDAP(edui_ldap_t *l) + /* bufa + 2 is the address (skip 2 digit port) */ + if (!(l->status & LDAP_IPV4_S) || (l->status & LDAP_IPV6_S)) + break; /* Not looking for IPv4 */ +- for (k = 2; k < z; ++k) { +- c = (int) bufa[k]; +- if (c < 0) +- c = c + 256; +- int hlen = snprintf(hexc, sizeof(hexc), "%02X", c); +- if (k == 2) +- xstrncpy(bufb, hexc, sizeof(bufb)); +- else +- strncat(bufb, hexc, hlen); +- } +- y = strlen(bufb); ++ const int blen = makeHexString(bufb, sizeof(bufb), &bufa[2], z); ++ if (blen < 0) ++ return blen; + /* Compare value with IP */ +- if (memcmp(l->search_ip, bufb, y) == 0) { ++ if (memcmp(l->search_ip, bufb, blen) == 0) { + /* We got a match! - Scan 'ber' for 'cn' values */ + z = ldap_count_values_len(ber); + for (j = 0; j < z; ++j) { +@@ -1343,19 +1215,11 @@ SearchIPLDAP(edui_ldap_t *l) + /* bufa + 2 is the address (skip 2 digit port) */ + if (!(l->status & LDAP_IPV6_S)) + break; /* Not looking for IPv6 */ +- for (k = 2; k < z; ++k) { +- c = (int) bufa[k]; +- if (c < 0) +- c = c + 256; +- int hlen = snprintf(hexc, sizeof(hexc), "%02X", c); +- if (k == 2) +- xstrncpy(bufb, hexc, sizeof(bufb)); +- else +- strncat(bufb, hexc, hlen); +- } +- y = strlen(bufb); ++ const int blen = makeHexString(bufb, sizeof(bufb), &bufa[2], z); ++ if (blen < 0) ++ return blen; + /* Compare value with IP */ +- if (memcmp(l->search_ip, bufb, y) == 0) { ++ if (memcmp(l->search_ip, bufb, blen) == 0) { + /* We got a match! - Scan 'ber' for 'cn' values */ + z = ldap_count_values_len(ber); + for (j = 0; j < z; ++j) { diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch deleted file mode 100644 index f482f8088..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 27e10667bf27baf5f119a791e3473bb9435a786a Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 23 Apr 2017 10:28:28 -0700 -Subject: [PATCH] SquidNew: use noexcept instead of throw for C++11 compilers - -Fixes errors with gcc7 which is more pedantic about c++11 -conformance regarding deprecated features - -include/SquidNew.h:21:51: error: dynamic exception specifications are deprecated in C++11 -_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc) - ^~~~~ - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- - include/SquidNew.h | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/include/SquidNew.h b/include/SquidNew.h -index 39fcee0..c960347 100644 ---- a/include/SquidNew.h -+++ b/include/SquidNew.h -@@ -18,19 +18,19 @@ - */ - #include <new> - --_SQUID_EXTERNNEW_ void *operator new(size_t size) throw (std::bad_alloc) -+_SQUID_EXTERNNEW_ void *operator new(size_t size) noexcept(false) - { - return xmalloc(size); - } --_SQUID_EXTERNNEW_ void operator delete (void *address) throw() -+_SQUID_EXTERNNEW_ void operator delete (void *address) noexcept(true) - { - xfree(address); - } --_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc) -+_SQUID_EXTERNNEW_ void *operator new[] (size_t size) noexcept(false) - { - return xmalloc(size); - } --_SQUID_EXTERNNEW_ void operator delete[] (void *address) throw() -+_SQUID_EXTERNNEW_ void operator delete[] (void *address) noexcept(true) - { - xfree(address); - } diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/files/0002-smblib-fix-buffer-over-read.patch b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0002-smblib-fix-buffer-over-read.patch new file mode 100644 index 000000000..c8f0c47bd --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-daemons/squid/files/0002-smblib-fix-buffer-over-read.patch @@ -0,0 +1,39 @@ +From a6b1e0fd14311587186e40d09bff5c8c3aada2e4 Mon Sep 17 00:00:00 2001 +From: Amos Jeffries <squid3@treenet.co.nz> +Date: Sat, 25 Jul 2015 05:53:16 -0700 +Subject: [PATCH] smblib: fix buffer over-read + +When parsing SMB LanManager packets with invalid protocol ID and the +default set of Squid supported protocols. It may access memory outside +the buffer storing protocol names. + +smblib is only used by already deprecated helpers which are deprecated +due to far more significant NTLM protocol issues. It will also only +result in packets being rejected later with invalid protocol names. So +this is a minor bug rather than a vulnerability. + + Detected by Coverity Scan. Issue 1256165 +--- +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Backport + + lib/smblib/smblib-util.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/lib/smblib/smblib-util.c b/lib/smblib/smblib-util.c +index 6139ae2..e722cbb 100644 +--- a/lib/smblib/smblib-util.c ++++ b/lib/smblib/smblib-util.c +@@ -204,7 +204,11 @@ int SMB_Figure_Protocol(const char *dialects[], int prot_index) + { + int i; + +- if (dialects == SMB_Prots) { /* The jobs is easy, just index into table */ ++ // prot_index may be a value outside the table SMB_Types[] ++ // which holds data at offsets 0 to 11 ++ int ourType = (prot_index < 0 || prot_index > 11); ++ ++ if (ourType && dialects == SMB_Prots) { /* The jobs is easy, just index into table */ + + return(SMB_Types[prot_index]); + } else { /* Search through SMB_Prots looking for a match */ diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch b/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch deleted file mode 100644 index 2feca4986..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 660fce9cfa00a57e5b7cec46116a31e21595c306 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 19 Jun 2017 23:47:01 -0700 -Subject: [PATCH] squid: Upgrade to 3.5.26 - -../../squid-3.5.26/src/DiskIO/DiskThreads/aiops.cc: In function 'void squidaio_init()': ../../squid-3.5.26/src/DiskIO/DiskThreads/DiskThreads.h:30:50: error: '*' in boolean context, suggest '&&' instead [-Werror=int-in-bool-context] #define NUMTHREADS (Config.cacheSwap.n_configured*16) - -Upstream-Status: Backport - ---- - src/DiskIO/DiskThreads/aiops.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/DiskIO/DiskThreads/aiops.cc b/src/DiskIO/DiskThreads/aiops.cc -index b44adfa..e11f948 100644 ---- a/src/DiskIO/DiskThreads/aiops.cc -+++ b/src/DiskIO/DiskThreads/aiops.cc -@@ -290,7 +290,7 @@ squidaio_init(void) - /* Create threads and get them to sit in their wait loop */ - squidaio_thread_pool = memPoolCreate("aio_thread", sizeof(squidaio_thread_t)); - -- assert(NUMTHREADS); -+ assert(NUMTHREADS != 0); - - for (i = 0; i < NUMTHREADS; ++i) { - threadp = (squidaio_thread_t *)squidaio_thread_pool->alloc(); diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb index 3ee96abb7..1557c4b2d 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb @@ -21,16 +21,16 @@ SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${P file://volatiles.03_squid \ file://set_sysroot_patch.patch \ file://squid-don-t-do-squid-conf-tests-at-build-time.patch \ - file://0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch \ file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \ - file://gcc7-fixes.patch \ file://0001-tools.cc-fixed-unused-result-warning.patch \ + file://0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch \ + file://0002-smblib-fix-buffer-over-read.patch \ " SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch" -SRC_URI[md5sum] = "dc1830cd361e077814aa39bcc3691d8b" -SRC_URI[sha256sum] = "41d8845863dcd026c856508cd1599d417c8947ffd96e86e24085f9893cb8b8c2" +SRC_URI[md5sum] = "c17a3ed3a40cd59c23f48b8539dafcd8" +SRC_URI[sha256sum] = "467da134eaf0f7962ba5881793d106772fb05fefa4aea7d9569eec0412c52433" LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \ file://errors/COPYRIGHT;md5=8861130fae91400bcf99b66f133172b3 \ @@ -50,6 +50,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains('TARGET_ARCH', 'powerpc', 'noatomics', ' PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack" PACKAGECONFIG[noatomics] = "squid_cv_gnu_atomics=no,squid_cv_gnu_atomics=yes,," PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[werror] = "--enable-strict-error-checking,--disable-strict-error-checking," BASIC_AUTH = "DB SASL LDAP" diff --git a/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb b/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb index d7b1dfaad..a51a8c31c 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb @@ -16,6 +16,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/aoetools/${BP}.tar.gz \ SRC_URI[md5sum] = "510d98ba0f231284a5fbe2da11cb2d6e" SRC_URI[sha256sum] = "a990378f273f10eb431e42954a871aed52714035bbab28c54cef600c458356bb" +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/aoetools/files/vblade/" + inherit autotools-brokensep update-rc.d systemd do_install() { diff --git a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb index 7a2035601..2e3e0e884 100644 --- a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb +++ b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb @@ -24,6 +24,9 @@ SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \ file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \ " +UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/v/vsftpd/" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar" + LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \ file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \ file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb" @@ -44,7 +47,7 @@ inherit update-rc.d useradd systemd CONFFILES_${PN} = "${sysconfdir}/vsftpd.conf" LDFLAGS_append =" -lcrypt -lcap" - +CFLAGS_append_libc-musl = " -D_GNU_SOURCE -include fcntl.h" EXTRA_OEMAKE = "-e MAKEFLAGS=" do_configure() { diff --git a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch index 5774e62eb..54e0b99a4 100644 --- a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch +++ b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch @@ -1,34 +1,36 @@ -From cc6dbabea0e452ebc93682df860a79ed9a45722e Mon Sep 17 00:00:00 2001 +From 6d606f1101c1a172fb6d738d6f1865aa61849e68 Mon Sep 17 00:00:00 2001 From: Alexey Firago <alexey_firago@mentor.com> Date: Fri, 20 Oct 2017 00:04:19 +0300 Subject: [PATCH] CMakeLists.txt: Fix grpc_cpp_plugin path during - cross-compilation + cross-compiling or native build Signed-off-by: Alexey Firago <alexey_firago@mentor.com> +Signed-off-by: Hiram Lew <lew@avast.com> +Signed-off-by: Jan Kaisrlik <jan.kaisrlik@avast.com> --- CMakeLists.txt | 9 ++++++++- templates/CMakeLists.txt.template | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index f9cd630..9663934 100644 +index a59fd81..cd90424 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -328,6 +328,13 @@ function(protobuf_generate_grpc_cpp) +@@ -160,6 +160,13 @@ function(protobuf_generate_grpc_cpp) return() endif() - -+ #if cross-compiling, find host plugin + ++ #if cross-compiling or nativesdk, find host plugin + if(CMAKE_CROSSCOMPILING) + find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin) + else() + set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>) + endif() + - set(_protobuf_include_path -I . -I ${PROTOBUF_WELLKNOWN_IMPORT_DIR}) + set(_protobuf_include_path -I . -I ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}) foreach(FIL ${ARGN}) get_filename_component(ABS_FIL ${FIL} ABSOLUTE) -@@ -345,7 +352,7 @@ function(protobuf_generate_grpc_cpp) +@@ -177,7 +184,7 @@ function(protobuf_generate_grpc_cpp) COMMAND ${_gRPC_PROTOBUF_PROTOC_EXECUTABLE} ARGS --grpc_out=generate_mock_code=true:${_gRPC_PROTO_GENS_DIR} --cpp_out=${_gRPC_PROTO_GENS_DIR} @@ -38,24 +40,24 @@ index f9cd630..9663934 100644 ${REL_FIL} DEPENDS ${ABS_FIL} ${_gRPC_PROTOBUF_PROTOC} grpc_cpp_plugin diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template -index 64daf04..a7e8629 100644 +index de13d02..b22bd5c 100644 --- a/templates/CMakeLists.txt.template +++ b/templates/CMakeLists.txt.template -@@ -373,6 +373,13 @@ +@@ -209,6 +209,13 @@ return() endif() - -+ #if cross-compiling, find host plugin + ++ #if cross-compiling or nativesdk, find host plugin + if(CMAKE_CROSSCOMPILING) + find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin) + else() + set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>) + endif() + - set(_protobuf_include_path -I . -I <%text>${PROTOBUF_WELLKNOWN_IMPORT_DIR}</%text>) + set(_protobuf_include_path -I . -I <%text>${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}</%text>) foreach(FIL <%text>${ARGN}</%text>) get_filename_component(ABS_FIL <%text>${FIL}</%text> ABSOLUTE) -@@ -390,7 +397,7 @@ +@@ -226,7 +233,7 @@ COMMAND <%text>${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}</%text> ARGS --grpc_out=<%text>generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}</%text> --cpp_out=<%text>${_gRPC_PROTO_GENS_DIR}</%text> @@ -64,5 +66,6 @@ index 64daf04..a7e8629 100644 <%text>${_protobuf_include_path}</%text> <%text>${REL_FIL}</%text> DEPENDS <%text>${ABS_FIL}</%text> <%text>${_gRPC_PROTOBUF_PROTOC}</%text> grpc_cpp_plugin --- +-- 2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch index f8d965294..459dc45a4 100644 --- a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch +++ b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch @@ -1,7 +1,7 @@ -From 8e9bf962a45a82f1c2eb5858e29fa89a3a60b564 Mon Sep 17 00:00:00 2001 +From 2279e30be5796e9b185545543ea54fe68633cbdd Mon Sep 17 00:00:00 2001 From: Alexey Firago <alexey_firago@mentor.com> Date: Mon, 30 Oct 2017 23:24:49 +0300 -Subject: [PATCH 1/4] CMakeLists.txt: Fix libraries installation for Linux +Subject: [PATCH] CMakeLists.txt: Fix libraries installation for Linux * Set libs versions as in Makefile @@ -9,21 +9,19 @@ Signed-off-by: Alexey Firago <alexey_firago@mentor.com> %% original patch: 0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch --- - CMakeLists.txt | 55 +++++++++++++++++++++++++++++++++++ - CMakeLists.txt => CMakeLists.txt.orig | 0 - 2 files changed, 55 insertions(+) - copy CMakeLists.txt => CMakeLists.txt.orig (100%) + CMakeLists.txt | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 59 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index b1a49df..13e64ac 100644 +index a59fd818e3..5066f44a32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,15 @@ set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}") set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/") project(${PACKAGE_NAME} C CXX) -+set (CORE_VERSION_MAJOR "4") -+set (CORE_VERSION "4.0.0") ++set (CORE_VERSION_MAJOR "6") ++set (CORE_VERSION "6.0.0") + +set (CPP_VERSION_MAJOR "1") +set (CPP_VERSION "${PACKAGE_VERSION}") @@ -31,10 +29,21 @@ index b1a49df..13e64ac 100644 +set (CSHARP_VERSION_MAJOR "1") +set (CSHARP_VERSION "${PACKAGE_VERSION}") + - set(gRPC_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") - set(gRPC_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") - set(gRPC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") -@@ -841,6 +850,10 @@ if(WIN32 AND MSVC) + set(gRPC_INSTALL_BINDIR "bin" CACHE STRING "Installation directory for executables") + set(gRPC_INSTALL_LIBDIR "lib" CACHE STRING "Installation directory for libraries") + set(gRPC_INSTALL_INCLUDEDIR "include" CACHE STRING "Installation directory for headers") +@@ -702,6 +711,10 @@ if(WIN32 AND MSVC) + endif() + endif() + ++if(_gRPC_PLATFORM_LINUX) ++ set_property(TARGET address_sorting PROPERTY VERSION ${CORE_VERSION}) ++ set_property(TARGET address_sorting PROPERTY SOVERSION ${CORE_VERSION_MAJOR}) ++endif() + + target_include_directories(address_sorting + PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> +@@ -825,6 +838,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -45,7 +54,7 @@ index b1a49df..13e64ac 100644 target_include_directories(gpr PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -@@ -1221,6 +1234,10 @@ if(WIN32 AND MSVC) +@@ -1259,6 +1276,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -56,7 +65,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -@@ -1535,6 +1552,10 @@ if(WIN32 AND MSVC) +@@ -1633,6 +1654,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -67,7 +76,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc_cronet PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -@@ -2377,6 +2398,10 @@ if(WIN32 AND MSVC) +@@ -2575,6 +2600,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -78,7 +87,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc_unsecure PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -@@ -2592,6 +2617,10 @@ if(WIN32 AND MSVC) +@@ -2791,6 +2820,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -89,7 +98,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc++ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -@@ -3078,6 +3107,10 @@ if(WIN32 AND MSVC) +@@ -3357,6 +3390,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -100,7 +109,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc++_cronet PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -@@ -3282,6 +3315,11 @@ protobuf_generate_grpc_cpp( +@@ -3630,6 +3667,11 @@ protobuf_generate_grpc_cpp( src/proto/grpc/status/status.proto ) @@ -112,7 +121,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc++_error_details PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} -@@ -3408,6 +3446,11 @@ protobuf_generate_grpc_cpp( +@@ -3762,6 +3804,11 @@ protobuf_generate_grpc_cpp( src/proto/grpc/reflection/v1alpha/reflection.proto ) @@ -124,7 +133,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc++_reflection PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} -@@ -3827,6 +3870,10 @@ if(WIN32 AND MSVC) +@@ -4265,6 +4312,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -135,7 +144,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc++_unsecure PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -@@ -4140,6 +4187,10 @@ if(WIN32 AND MSVC) +@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -146,7 +155,7 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc_plugin_support PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC) +@@ -5184,6 +5239,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -157,10 +166,6 @@ index b1a49df..13e64ac 100644 target_include_directories(grpc_csharp_ext PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> -diff --git a/CMakeLists.txt b/CMakeLists.txt.orig -similarity index 100% -copy from CMakeLists.txt -copy to CMakeLists.txt.orig -- -2.16.1 +2.17.1 diff --git a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch deleted file mode 100644 index 8985022fa..000000000 --- a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch +++ /dev/null @@ -1,42 +0,0 @@ -From a498b56ba96948015f0f2784b2ab8296946716ee Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 1 Feb 2018 23:28:17 -0800 -Subject: [PATCH 4/4] CMakeLists.txt: Find c-ares in target sysroot alone - -Current code lets it look into native sysroot as well -which is then preferred during cross compile and it adds -absolute path to libcares into linker flags -on heterogenous architectures linker complains and build -fails - -| /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/grpc/1.8.5-r0/recipe-sysroot-native/usr/lib/lib -cares.so.2.2.0: file not recognized: File format not recognized -| collect2: error: ld returned 1 exit status - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - CMakeLists.txt | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1d7eef1..058423d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -153,10 +153,8 @@ if("${gRPC_CARES_PROVIDER}" STREQUAL "module") - set(gRPC_INSTALL FALSE) - endif() - elseif("${gRPC_CARES_PROVIDER}" STREQUAL "package") -- find_package(c-ares REQUIRED CONFIG) -- if(TARGET c-ares::cares) -- set(_gRPC_CARES_LIBRARIES c-ares::cares) -- endif() -+ find_package(c-ares REQUIRED) -+ set(_gRPC_CARES_LIBRARIES cares) - set(_gRPC_FIND_CARES "if(NOT c-ares_FOUND)\n find_package(c-ares CONFIG)\nendif()") - endif() - --- -2.16.1 - diff --git a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb index 0883ec176..d23671432 100644 --- a/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb +++ b/meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb @@ -4,20 +4,23 @@ Provides gRPC libraries for multiple languages written on top of shared C core l HOMEPAGE = "https://github.com/grpc/grpc" SECTION = "libs" LICENSE = "Apache-2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl" DEPENDS_append_class-target = " gtest grpc-native " +DEPENDS_append_class-nativesdk = " grpc-native " -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - -SRC_URI = "https://github.com/grpc/grpc/archive/v${PV}.tar.gz \ +S = "${WORKDIR}/git" +SRCREV = "d8020cb6daa87f1a3bb3b0c299bc081c4a3de1e8" +BRANCH = "v1.14.x" +SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;branch=${BRANCH} \ file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \ - file://0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch \ " -SRC_URI[md5sum] = "b565fa6787e42f4969395870c2ad436e" -SRC_URI[sha256sum] = "df9168da760fd2ee970c74c9d1b63377e0024be248deaa844e784d0df47599de" - SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch" +SRC_URI_append_class-nativesdk = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch" + +# Fixes build with older compilers 4.8 especially on ubuntu 14.04 +CXXFLAGS_append_class-native = " -Wl,--no-as-needed" inherit cmake @@ -27,10 +30,13 @@ EXTRA_OECMAKE = " \ -DgRPC_SSL_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_GFLAGS_PROVIDER=package \ - -DgRPC_INSTALL=1 \ + -DgRPC_INSTALL=ON \ + -DCMAKE_CROSSCOMPILING=ON \ -DBUILD_SHARED_LIBS=ON \ " -FILES_${PN}-dev += "${libdir}/cmake" +BBCLASSEXTEND = "native nativesdk" + +SYSROOT_DIRS_BLACKLIST_append_class-target = "${libdir}/cmake/grpc" -BBCLASSEXTEND = "native" +FILES_${PN}-dev += "${bindir}" diff --git a/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb b/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.45.bb index 3dbc8b13e..dde8a52dc 100644 --- a/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb +++ b/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.45.bb @@ -14,9 +14,9 @@ DEPENDS = "python openldap cyrus-sasl" PYPI_PACKAGE = "python-ldap" inherit pypi setuptools -LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555" -SRC_URI[md5sum] = "18db2d009150ec1864710fea3ed76173" -SRC_URI[sha256sum] = "6d430ecf040f2fc704ee316d3390cb1f5419c191371e1e131baef54a0e42cef0" +LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b" +SRC_URI[md5sum] = "6108e189a44eea8bc7d1cc281c222978" +SRC_URI[sha256sum] = "824fde180a53772e23edc031c4dd64ac1af4a3eade78f00d9d510937d562f64e" do_configure_prepend() { sed -i -e 's:^library_dirs =.*::' setup.cfg diff --git a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/corosync.conf b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/corosync.conf new file mode 100644 index 000000000..6aef9de95 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/corosync.conf @@ -0,0 +1,58 @@ +# Starting point for cluster with pacemaker/openais +compatibility: none + +corosync { + user: root + group: root +} + +aisexec { + with Pacemaker + user: root + group: root +} + +service { + name: pacemaker + ver: 1 +} + +totem { + version: 2 + secauth: off + threads: 0 + interface { + ringnumber: 0 + # Cluster network address + bindnetaddr: 192.168.10.0 + # Should be fine in most cases, don't forget to allow + # packets for this address/port in netfilter if there + # is restrictive policy set for cluster network + mcastaddr: 226.94.1.1 + mcastport: 5405 + } +} + +logging { + fileline: off + to_stderr: no + to_logfile: yes + to_syslog: yes + logfile: /var/log/cluster/corosync.log + debug: off + timestamp: on + logger_subsys { + subsys: AMF + debug: off + } +} + +amf { + mode: disabled +} + +quorum { + # Quorum for the Pacemaker Cluster Resource Manager + provider: corosync_votequorum + expected_votes: 1 +} diff --git a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb index 9673fa362..23a3d147f 100644 --- a/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb +++ b/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb @@ -7,10 +7,14 @@ SECTION = "base" inherit autotools pkgconfig systemd useradd -SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz" +SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz \ + file://corosync.conf \ + " -SRC_URI[md5sum] = "bf0ede13018aadc8a046183bc593b0e0" -SRC_URI[sha256sum] = "b1e7e422e8d2f7af8e5315fa329b1dbd1175fff32efaa55e8054584c80a2c597" +SRC_URI[md5sum] = "69db29ff4bc035936946be44fc8be5cd" +SRC_URI[sha256sum] = "9bd4707bb271df16f8d543ec782eb4c35ec0330b7be696b797da4bd8f058a25d" + +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.(?!99)\d+(\.\d+)+)" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d" @@ -45,6 +49,7 @@ do_configure_prepend() { } do_install_append() { + install -D -m 0644 ${WORKDIR}/corosync.conf ${D}/${sysconfdir}/corosync/corosync.conf.example install -d ${D}${sysconfdir}/sysconfig/ install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd @@ -62,10 +67,6 @@ do_install_append() { if [ ${@bb.utils.filter('DISTRO_FEATURES','systemd',d)} ]; then install -d ${D}${sysconfdir}/tmpfiles.d echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf - - if [ ${@bb.utils.filter('PACKAGECONFIG', 'qnetd', d)} ]; then - install -m 0644 ${S}/conf/tmpfiles.d/corosync-qnetd.conf ${D}${sysconfdir}/tmpfiles.d - fi fi } diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch new file mode 100644 index 000000000..6f9a0a45a --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch @@ -0,0 +1,41 @@ +From a55ab8a07770296bf6a622df14f2f0445be16327 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 19 Aug 2018 15:58:49 -0700 +Subject: [PATCH] Include sys/sysmacros.h for major/minor macros in glibc 2.25+ + +sys/sysmacros.h was included though sys/types.h until 2.28 +glibc release removed it therefore it must be included +explicitly now. + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + dlm_controld/action.c | 2 ++ + libdlm/libdlm.c | 1 + + 2 files changed, 3 insertions(+) + +diff --git a/dlm_controld/action.c b/dlm_controld/action.c +index 84637f1..2b8ad6c 100644 +--- a/dlm_controld/action.c ++++ b/dlm_controld/action.c +@@ -8,6 +8,8 @@ + + #include "dlm_daemon.h" + ++#include <sys/sysmacros.h> ++ + #include <corosync/corotypes.h> + #include <corosync/cmap.h> + +diff --git a/libdlm/libdlm.c b/libdlm/libdlm.c +index a9e6195..499eb6a 100644 +--- a/libdlm/libdlm.c ++++ b/libdlm/libdlm.c +@@ -14,6 +14,7 @@ + #include <sys/ioctl.h> + #include <sys/param.h> + #include <sys/stat.h> ++#include <sys/sysmacros.h> + #include <stdint.h> + #include <stdlib.h> + #include <inttypes.h> diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch new file mode 100644 index 000000000..0a2f31d55 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch @@ -0,0 +1,36 @@ +From 9107f3bd68aef6ae456a3cad664223b4f3d00131 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 17:04:39 +0800 +Subject: [PATCH] dlm: fix compile error since xml2-config should not be used + +xml2-config is disabled, so change Makefile to use pkgconfig +to find libxml2. + +Upstream-Status: Inappropriate + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + fence/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/fence/Makefile b/fence/Makefile +index 77bf0fd..cca0b2c 100644 +--- a/fence/Makefile ++++ b/fence/Makefile +@@ -30,11 +30,11 @@ BIN_CFLAGS += -D_GNU_SOURCE -O2 -ggdb \ + -fdiagnostics-show-option \ + + BIN_CFLAGS += -fPIE -DPIE +-BIN_CFLAGS += `xml2-config --cflags` ++BIN_CFLAGS += `pkg-config libxml-2.0 --cflags` + BIN_CFLAGS += -I../include + + BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie +-BIN_LDFLAGS += `xml2-config --libs` ++BIN_LDFLAGS += `pkg-config libxml-2.0 --libs` + BIN_LDFLAGS += -ldl + + all: $(BIN_TARGET) +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-package-qa-error.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-package-qa-error.patch new file mode 100644 index 000000000..3e384f7d9 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-package-qa-error.patch @@ -0,0 +1,32 @@ +From 1fb68433bde97d571fc781b52c9521b17fbb8df0 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 17:42:43 +0800 +Subject: [PATCH] dlm: fix package qa error + +pass LDFLAG to makefile to fix below error: +do_package_qa: QA Issue: No GNU_HASH in the elf binary: +/packages-split/dlm/usr/sbin/dlm_stonith' [ldflags] + +Upstream-Status: Inappropriate[oe-specific] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + fence/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fence/Makefile b/fence/Makefile +index cca0b2c..2b3963c 100644 +--- a/fence/Makefile ++++ b/fence/Makefile +@@ -33,7 +33,7 @@ BIN_CFLAGS += -fPIE -DPIE + BIN_CFLAGS += `pkg-config libxml-2.0 --cflags` + BIN_CFLAGS += -I../include + +-BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie ++BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie + BIN_LDFLAGS += `pkg-config libxml-2.0 --libs` + BIN_LDFLAGS += -ldl + +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch index 69b2f903c..6f01b2177 100644 --- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch +++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch @@ -1,7 +1,23 @@ -diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile ---- dlm-4.0.2.orig/dlm_controld/Makefile 2017-04-04 10:49:23.661320260 +0200 -+++ dlm-4.0.2/dlm_controld/Makefile 2017-04-04 10:50:36.121326429 +0200 -@@ -55,7 +55,7 @@ +From 34a9182814ae565d6f430f85cfe80c05fa9f2dda Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 17:55:32 +0800 +Subject: [PATCH] respect-ldflags-also-from-bin_ldflags + +Upstream-Status: Inappropriate[oe-specific] + +update original patch to version 4.0.7 + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + dlm_controld/Makefile | 4 ++-- + dlm_tool/Makefile | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/dlm_controld/Makefile b/dlm_controld/Makefile +index cf556c9..3381730 100644 +--- a/dlm_controld/Makefile ++++ b/dlm_controld/Makefile +@@ -55,11 +55,11 @@ BIN_CFLAGS += -D_GNU_SOURCE -O2 -ggdb \ BIN_CFLAGS += -fPIE -DPIE BIN_CFLAGS += -I../include -I../libdlm @@ -10,10 +26,16 @@ diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum LIB_CFLAGS += $(BIN_CFLAGS) -diff -uNr dlm-4.0.2.orig/dlm_tool/Makefile dlm-4.0.2/dlm_tool/Makefile ---- dlm-4.0.2.orig/dlm_tool/Makefile 2013-07-31 17:50:26.000000000 +0200 -+++ dlm-4.0.2/dlm_tool/Makefile 2017-04-04 10:50:44.617327153 +0200 -@@ -32,7 +32,7 @@ +-LIB_LDFLAGS += -Wl,-z,relro -pie ++LIB_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -pie + + ifeq ($(USE_SD_NOTIFY),yes) + BIN_CFLAGS += $(shell pkg-config --cflags libsystemd) \ +diff --git a/dlm_tool/Makefile b/dlm_tool/Makefile +index c16d8f5..a48a26f 100644 +--- a/dlm_tool/Makefile ++++ b/dlm_tool/Makefile +@@ -32,7 +32,7 @@ BIN_CFLAGS += -D_GNU_SOURCE -O2 -ggdb \ BIN_CFLAGS += -fPIE -DPIE BIN_CFLAGS += -I../include -I../libdlm -I../dlm_controld @@ -22,15 +44,6 @@ diff -uNr dlm-4.0.2.orig/dlm_tool/Makefile dlm-4.0.2/dlm_tool/Makefile BIN_LDFLAGS += -L../libdlm -L../dlm_controld BIN_LDFLAGS += -lpthread -ldlm -ldlmcontrol -diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile ---- dlm-4.0.2.orig/dlm_controld/Makefile 2017-04-04 11:02:58.578389641 +0200 -+++ dlm-4.0.2/dlm_controld/Makefile 2017-04-04 11:07:55.672414935 +0200 -@@ -59,7 +59,7 @@ - BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum - - LIB_CFLAGS += $(BIN_CFLAGS) --LIB_LDFLAGS += -Wl,-z,relro -pie -+LIB_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -pie - - ifeq ($(USE_SD_NOTIFY),yes) - BIN_CFLAGS += $(shell pkg-config --cflags libsystemd-daemon) \ +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.7.bb index 31e411e86..027864a1a 100644 --- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb +++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.7.bb @@ -5,12 +5,18 @@ HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage" REQUIRED_DISTRO_FEATURES = "systemd" -SRC_URI = "https://git.fedorahosted.org/cgit/dlm.git/snapshot/${BP}.tar.xz \ - file://respect-ldflags-also-from-bin_ldflags.patch \ -" +SRC_URI = "https://releases.pagure.org/dlm/${BP}.tar.gz \ + file://respect-ldflags-also-from-bin_ldflags.patch \ + file://0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch \ + file://0001-dlm-fix-package-qa-error.patch \ + file://0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch \ + " -SRC_URI[md5sum] = "efc2ee6093aa6aa0a88aaad83e998a3f" -SRC_URI[sha256sum] = "b89bc557aaffbab0ac005398025f247718a5589cff6574d902eaffe2b20e683e" +SRC_URI[md5sum] = "aa604a10d5ac2d3414eb89ec6984cd12" +SRC_URI[sha256sum] = "639ddfc82369272a68d56816689736c00b8f1b6b2869a6b66b7dbf6dad86469a" + +UPSTREAM_CHECK_URI = "https://pagure.io/dlm/releases" +UPSTREAM_CHECK_REGEX = "dlm-(?P<pver>\d+(\.\d+)+)" LICENSE = "LGPLv2+ & GPLv2 & GPLv2+" LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d" @@ -19,13 +25,20 @@ DEPENDS = "corosync systemd" inherit pkgconfig systemd distro_features_check +PACKAGECONFIG ??= "" + +PACKAGECONFIG[pacemaker] = ",,pacemaker" + SYSTEMD_SERVICE_${PN} = "dlm.service" SYSTEMD_AUTO_ENABLE = "enable" export EXTRA_OEMAKE = "" +DONTBUILD = "${@bb.utils.contains('PACKAGECONFIG', 'pacemaker', '', 'fence', d)}" + do_compile_prepend() { sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile + sed -i -e "s/ ${DONTBUILD}//g" ${S}/Makefile } do_compile () { diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch deleted file mode 100644 index 4426d3552..000000000 --- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch +++ /dev/null @@ -1,40 +0,0 @@ -From cbc5f8151017f45231b75a826f18354a81c287c4 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 26 Aug 2017 07:52:59 -0700 -Subject: [PATCH] kernel/event: netlink_ack() now requires 4 arguments - -see https://patchwork.kernel.org/patch/9670181/ - -event.c:32:4: error: too few arguments to function 'netlink_ack' -| netlink_ack(skb, nlh, 0); -| ^~~~~~~~~~~ - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - kernel/event.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: iscsitarget-1.4.20.3+svn502/kernel/event.c -=================================================================== ---- iscsitarget-1.4.20.3+svn502.orig/kernel/event.c -+++ iscsitarget-1.4.20.3+svn502/kernel/event.c -@@ -6,6 +6,7 @@ - * Some functions are based on audit code. - */ - -+#include <linux/version.h> - #include <linux/module.h> - #include <net/tcp.h> - #include "iet_u.h" -@@ -29,7 +30,11 @@ static void event_recv_skb(struct sk_buf - ietd_pid = NETLINK_CB(skb).portid; - WARN_ON(ietd_pid == 0); - if (nlh->nlmsg_flags & NLM_F_ACK) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ netlink_ack(skb, nlh, 0, NULL); -+#else - netlink_ack(skb, nlh, 0); -+#endif - skb_pull(skb, rlen); - } - } diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch deleted file mode 100644 index 4444234b2..000000000 --- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch +++ /dev/null @@ -1,28 +0,0 @@ -The element skc_v6_daddr (in struct sock_common) is defined in -kernel source only when CONFIG_IPV6 is enabled. Hence, access -sk_v6_daddr element (i.e __sk_common.skc_v6_daddr) only when CONFIG_IPV6 -is defined; to fix below error in world build: - --- snip -- -/home/jenkins/oe/world/shr-core/tmp-glibc/work-shared/qemux86/kernel-source/include/net/sock.h:330:33: error: 'struct sock_common' has no member named 'skc_v6_daddr' --- CUT -- - -Upstream-Status: Pending - -Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> - ---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2015-12-29 21:57:50.547932217 -0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2015-12-29 22:47:25.254657627 -0800 -@@ -46,10 +46,12 @@ void conn_info_show(struct seq_file *seq - snprintf(buf, sizeof(buf), - "%pI4", &inet_sk(sk)->inet_daddr); - break; -+#if defined(CONFIG_IPV6) - case AF_INET6: - snprintf(buf, sizeof(buf), "[%pI6]", - &(sk)->sk_v6_daddr); - break; -+#endif /* defined(CONFIG_IPV6) */ - default: - break; - } diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch deleted file mode 100644 index bce38baee..000000000 --- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch +++ /dev/null @@ -1,108 +0,0 @@ -Description: Fix source to compile with 4.3+ kernels - commit 4246a0b63bd8f56a1469b12eafeb875b1041a451 - block: add a bi_error field to struct bio - -> Removes BIO_UPTODATE and error argument to bio_endio. - commit b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c - block: remove bio_get_nr_vecs() - -> Removed that call (always use BIO_MAX_PAGES) - commit 676d23690fb62b5d51ba5d659935e9f7d9da9f8e - net: Fix use after free by removing length arg from sk_data_ready callbacks. - -> Removes len argument from sk_data_ready() callback. -Author: Stefan Bader <stefan.bader@canonical.com> - -The original patch is at http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz, -those changes were taken using #ifs to allow compilation of iscsitarget -package with kernel versions < 4.3. - -Upstream-Status: Submitted [http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz] - -Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> - -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2014-05-06 13:59:55.000000000 -0700 -+++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 00:46:28.263951115 -0800 -@@ -29,14 +29,23 @@ struct tio_work { - struct completion tio_complete; - }; - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+static void blockio_bio_endio(struct bio *bio) -+#else - static void blockio_bio_endio(struct bio *bio, int error) -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ - { - struct tio_work *tio_work = bio->bi_private; - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ if (bio->bi_error) -+ atomic_set(&tio_work->error, bio->bi_error); -+#else - error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO; - - if (error) - atomic_set(&tio_work->error, error); -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ - - /* If last bio signal completion */ - if (atomic_dec_and_test(&tio_work->bios_remaining)) -@@ -61,14 +70,20 @@ blockio_make_request(struct iet_volume * - u32 size = tio->size; - u32 tio_index = 0; - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ int max_pages = bdev_q ? BIO_MAX_PAGES : 1; -+#else - int max_pages = 1; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ - int err = 0; - - loff_t ppos = tio->offset; - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) - /* Calculate max_pages for bio_alloc (memory saver) */ - if (bdev_q) - max_pages = bio_get_nr_vecs(bio_data->bdev); -+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) */ - - tio_work = kzalloc(sizeof (*tio_work), GFP_KERNEL); - if (!tio_work) -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 00:39:09.737117778 -0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 00:52:30.037223901 -0800 -@@ -89,13 +89,21 @@ static void iet_state_change(struct sock - target->nthread_info.old_state_change(sk); - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+static void iet_data_ready(struct sock *sk) -+#else - static void iet_data_ready(struct sock *sk, int len) -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ - { - struct iscsi_conn *conn = sk->sk_user_data; - struct iscsi_target *target = conn->session->target; - - nthread_wakeup(target); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ target->nthread_info.old_data_ready(sk); -+#else - target->nthread_info.old_data_ready(sk, len); -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ - } - - /* -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h ---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2014-05-06 13:59:55.000000000 -0700 -+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 00:48:02.102837260 -0800 -@@ -81,7 +81,11 @@ struct network_thread_info { - spinlock_t nthread_lock; - - void (*old_state_change)(struct sock *); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ void (*old_data_ready)(struct sock *); -+#else - void (*old_data_ready)(struct sock *, int); -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ - void (*old_write_space)(struct sock *); - }; - diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch deleted file mode 100644 index e508a5e6c..000000000 --- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch +++ /dev/null @@ -1,475 +0,0 @@ -Resolve build error with linux kernel 4.8 - -The below changes in kernel source, triggered iscsitarget -build fail with linux kernel v4.8. - -1. An extra 'flags' argument has been passed to vfs_readv/vfs_writev - syscalls in v4.8. So, set this argument to "0" for now - (as there is no real need for that). - Ref: https://github.com/torvalds/linux/commit/793b80ef14af56d20c998265287648ad34239b6f - Solves: - -- snip -- -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c: In function 'write_data': -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:350:9: error: too few arguments to function 'vfs_writev' - res = vfs_writev(file, (struct iovec __user *) iop, count, &off); - ^~~~~~~~~~ - -- snip -- - -2. Redefine dropped PAGE_CACHE_* and page_cache_{get,release} definitions, - as they have been dropped with v4.8 - Ref: https://github.com/torvalds/linux/commit/1fa64f198b9f8d6ec0f7aec7c18dc94684391140 - Solves: - -- snip -- -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c: In function 'sess_param_check': -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c:48:41: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function) - (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE)); - ^ - -- snip -- - -3. Replace crypto_hash interfaces with crypto_ahash interfaces, - Ref: https://github.com/torvalds/linux/commit/896545098777564212b9e91af4c973f094649aa7 - Ref: https://www.redhat.com/archives/dm-devel/2016-January/msg00244.html - Solves: - -- snip -- -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_init': -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:42:23: error: implicit declaration of function 'crypto_alloc_hash' [-Werror=implicit-function-declaration] - conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, - ^~~~~~~~~~~~~~~~~ -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_cleanup': -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:77:3: error: implicit declaration of function 'crypto_free_hash' [-Werror=implicit-function-declaration] - crypto_free_hash(conn->tx_hash.tfm); - ^~~~~~~~~~~~~~~~ - -- snip -- - -4. The earlier "rw" parameter has been set in "bi_rw" within - bio structure, hence remove "rw" argument. - Ref: https://github.com/torvalds/linux/commit/4e49ea4a3d276365bf7396c9b77b4d1d5923835a - Solves: --- snip -- -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/block-io.c:140:14: warning: passing argument 1 of 'submit_bio' makes pointer from integer without a cast [-Wint-conversion] - submit_bio(rw, bio); - ^~ --- snip -- - -5. The 'len' argument from sk_data_ready() callback has been removed in - linux kernel v4.3 and above. - Ref: https://github.com/torvalds/linux/commit/676d23690fb62b5d51ba5d659935e9f7d9da9f8e - Solves: --- snip -- -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c: In function 'iet_socket_bind': -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:143:38: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] - target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready; - ^ -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:144:32: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] - conn->sock->sk->sk_data_ready = iet_data_ready; - ^ --- snip -- - -6. - A. The "size" argument has been dropped from sock_recvmsg syscall in v4.8, - as all callers have it equal to msg_data_left(msg). - B. 'struct user_msghdr' is being used for userland-side msghdr instead - of 'struct msghdr', which is used for kernel-side msghdr in linux v3.19 - and above, so typecase it while calling sock_recvmsg syscall. - Ref: https://github.com/torvalds/linux/commit/2da62906b1e298695e1bb725927041cd59942c98 - https://github.com/torvalds/linux/commit/666547ff591cebdedc4679bf6b1b3f3383a8dea3 - Solves: - -- snip -- -TOPDIR/tmp-glibc/work-shared/qemux86/kernel-source/include/linux/net.h:222:5: note: expected 'struct msghdr *' but argument is of type 'struct user_msghdr *' - int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags); - ^~~~~~~~~~~~ -TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:129:8: error: too many arguments to function 'sock_recvmsg' - res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL); - ^~~~~~~~~~~~ - -- snip -- - -Detailed error log is at: http://errors.yoctoproject.org/Errors/Details/83334/ - -Upstream-Status: Pending - -Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> - -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2017-01-19 20:19:27.400507354 -0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 20:32:22.977988593 -0800 -@@ -104,7 +104,11 @@ blockio_make_request(struct iet_volume * - /* bi_sector is ALWAYS in units of 512 bytes */ - bio->bi_iter.bi_sector = ppos >> 9; - bio->bi_bdev = bio_data->bdev; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ bio->bi_end_io = (bio_end_io_t *) blockio_bio_endio; -+#else - bio->bi_end_io = blockio_bio_endio; -+#endif - bio->bi_private = tio_work; - - if (tio_bio) -@@ -139,7 +143,12 @@ blockio_make_request(struct iet_volume * - tio_bio = tio_bio->bi_next; - bio->bi_next = NULL; - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ bio_set_op_attrs(bio, REQ_OP_WRITE, 0); -+ submit_bio(bio); -+#else - submit_bio(rw, bio); -+#endif - } - - blk_finish_plug(&plug); -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 20:19:27.400507354 -0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 20:32:22.978988614 -0800 -@@ -148,8 +148,14 @@ static void iet_socket_bind(struct iscsi - target->nthread_info.old_state_change = conn->sock->sk->sk_state_change; - conn->sock->sk->sk_state_change = iet_state_change; - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ target->nthread_info.old_data_ready = (void (*) (struct sock *)) \ -+ conn->sock->sk->sk_data_ready; -+ conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) iet_data_ready; -+#else - target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready; - conn->sock->sk->sk_data_ready = iet_data_ready; -+#endif - - target->nthread_info.old_write_space = conn->sock->sk->sk_write_space; - conn->sock->sk->sk_write_space = iet_write_space; -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/digest.c iscsitarget-1.4.20.3+svn502/kernel/digest.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/digest.c 2014-05-06 13:59:55.000000000 -0700 -+++ iscsitarget-1.4.20.3+svn502/kernel/digest.c 2017-01-19 20:32:22.978988614 -0800 -@@ -30,6 +30,9 @@ void digest_alg_available(unsigned int * - int digest_init(struct iscsi_conn *conn) - { - int err = 0; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct crypto_ahash *tfm; -+#endif - - if (!(conn->hdigest_type & DIGEST_ALL)) - conn->hdigest_type = DIGEST_NONE; -@@ -39,15 +42,40 @@ int digest_init(struct iscsi_conn *conn) - - if (conn->hdigest_type & DIGEST_CRC32C || - conn->ddigest_type & DIGEST_CRC32C) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ tfm = crypto_alloc_ahash("crc32c", 0, CRYPTO_ALG_ASYNC); -+ if (IS_ERR(tfm)) { -+ tfm = NULL; -+#else - conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, - CRYPTO_ALG_ASYNC); - conn->rx_hash.flags = 0; - if (IS_ERR(conn->rx_hash.tfm)) { - conn->rx_hash.tfm = NULL; -+#endif - err = -ENOMEM; - goto out; - } -- -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ conn->rx_hash = ahash_request_alloc(tfm, GFP_KERNEL); -+ if (!conn->rx_hash) { -+ pr_err("ahash_request_alloc() failed for conn->rx_hash\n"); -+ crypto_free_ahash(tfm); -+ err = -ENOMEM; -+ goto out; -+ } -+ ahash_request_set_callback(conn->rx_hash, 0, NULL, NULL); -+ conn->tx_hash = ahash_request_alloc(tfm, GFP_KERNEL); -+ if(!conn->tx_hash) { -+ pr_err("ahash_request_alloc() failed for conn->tx_hash\n"); -+ ahash_request_free(conn->rx_hash); -+ conn->rx_hash = NULL; -+ crypto_free_ahash(tfm); -+ err = -ENOMEM; -+ goto out; -+ } -+ ahash_request_set_callback(conn->tx_hash, 0, NULL, NULL); -+#else - conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0, - CRYPTO_ALG_ASYNC); - conn->tx_hash.flags = 0; -@@ -56,6 +84,7 @@ int digest_init(struct iscsi_conn *conn) - err = -ENOMEM; - goto out; - } -+#endif - } - - out: -@@ -73,10 +102,21 @@ out: - */ - void digest_cleanup(struct iscsi_conn *conn) - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ ahash_request_free(conn->tx_hash); -+ if (conn->rx_hash) { -+ struct crypto_ahash *tfm; -+ tfm = crypto_ahash_reqtfm(conn->rx_hash); -+ ahash_request_free(conn->rx_hash); -+ crypto_free_ahash(tfm); -+ } -+ -+#else - if (conn->tx_hash.tfm) - crypto_free_hash(conn->tx_hash.tfm); - if (conn->rx_hash.tfm) - crypto_free_hash(conn->rx_hash.tfm); -+#endif - } - - /** -@@ -160,8 +200,13 @@ static inline void __dbg_simulate_data_d - } - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+static void digest_header(struct ahash_request *hash, struct iscsi_pdu *pdu, -+ u8 *crc) -+#else - static void digest_header(struct hash_desc *hash, struct iscsi_pdu *pdu, - u8 *crc) -+#endif - { - struct scatterlist sg[2]; - unsigned int nbytes = sizeof(struct iscsi_hdr); -@@ -174,16 +219,27 @@ static void digest_header(struct hash_de - nbytes += pdu->ahssize; - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ crypto_ahash_init(hash); -+ ahash_request_set_crypt(hash, sg, crc, nbytes); -+ crypto_ahash_update(hash); -+ crypto_ahash_digest(hash); -+#else - crypto_hash_init(hash); - crypto_hash_update(hash, sg, nbytes); - crypto_hash_final(hash, crc); -+#endif - } - - int digest_rx_header(struct iscsi_cmnd *cmnd) - { - u32 crc; - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ digest_header(cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc); -+#else - digest_header(&cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc); -+#endif - if (crc != cmnd->hdigest) - return -EIO; - -@@ -192,11 +248,20 @@ int digest_rx_header(struct iscsi_cmnd * - - void digest_tx_header(struct iscsi_cmnd *cmnd) - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ digest_header(cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest); -+#else - digest_header(&cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest); -+#endif - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+static void digest_data(struct ahash_request *hash, struct iscsi_cmnd *cmnd, -+ struct tio *tio, u32 offset, u8 *crc) -+#else - static void digest_data(struct hash_desc *hash, struct iscsi_cmnd *cmnd, - struct tio *tio, u32 offset, u8 *crc) -+#endif - { - struct scatterlist *sg = cmnd->conn->hash_sg; - u32 size, length, npages; -@@ -214,7 +279,11 @@ static void digest_data(struct hash_desc - BUG_ON(npages > ISCSI_CONN_IOV_MAX); - - sg_init_table(sg, ARRAY_SIZE(cmnd->conn->hash_sg)); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ crypto_ahash_init(hash); -+#else - crypto_hash_init(hash); -+#endif - - for (i = 0; size > 0; i++) { - length = min_t(u32, PAGE_CACHE_SIZE - offset, size); -@@ -225,8 +294,14 @@ static void digest_data(struct hash_desc - - sg_mark_end(&sg[i - 1]); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ ahash_request_set_crypt(hash, sg, crc, nbytes); -+ crypto_ahash_update(hash); -+ crypto_ahash_digest(hash); -+#else - crypto_hash_update(hash, sg, nbytes); - crypto_hash_final(hash, crc); -+#endif - } - - int digest_rx_data(struct iscsi_cmnd *cmnd) -@@ -251,8 +326,11 @@ int digest_rx_data(struct iscsi_cmnd *cm - tio = cmnd->tio; - offset = 0; - } -- -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ digest_data(cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc); -+#else - digest_data(&cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc); -+#endif - - if (!cmnd->conn->read_overflow && - (cmnd_opcode(cmnd) != ISCSI_OP_PDU_REJECT)) { -@@ -269,6 +347,11 @@ void digest_tx_data(struct iscsi_cmnd *c - struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *)&cmnd->pdu.bhs; - - assert(tio); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ digest_data(cmnd->conn->tx_hash, cmnd, tio, -+ be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest); -+#else - digest_data(&cmnd->conn->tx_hash, cmnd, tio, - be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest); -+#endif - } -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h ---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2017-01-19 20:19:27.400507354 -0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 20:32:22.979988634 -0800 -@@ -14,6 +14,7 @@ - #include <linux/pagemap.h> - #include <linux/seq_file.h> - #include <linux/mm.h> -+#include <crypto/hash.h> - #include <linux/crypto.h> - #include <linux/scatterlist.h> - #include <net/sock.h> -@@ -275,8 +276,13 @@ struct iscsi_conn { - u32 write_offset; - int write_state; - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct ahash_request *rx_hash; -+ struct ahash_request *tx_hash; -+#else - struct hash_desc rx_hash; - struct hash_desc tx_hash; -+#endif - struct scatterlist hash_sg[ISCSI_CONN_IOV_MAX]; - }; - -@@ -552,4 +558,10 @@ enum cmnd_flags { - #define PRODUCT_ID "VIRTUAL-DISK" - #define PRODUCT_REV "0" - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+#define PAGE_CACHE_SHIFT PAGE_SHIFT -+#define PAGE_CACHE_SIZE PAGE_SIZE -+#define PAGE_CACHE_MASK PAGE_MASK -+#endif -+ - #endif /* __ISCSI_H__ */ -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2017-01-19 20:19:27.276504928 -0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-19 20:32:22.979988634 -0800 -@@ -155,7 +155,12 @@ static int do_recv(struct iscsi_conn *co - - oldfs = get_fs(); - set_fs(get_ds()); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ res = sock_recvmsg(conn->sock, (struct msghdr *) &msg, \ -+ MSG_DONTWAIT | MSG_NOSIGNAL); -+#else - res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL); -+#endif - set_fs(oldfs); - - if (res <= 0) { -@@ -376,7 +381,11 @@ static int write_data(struct iscsi_conn - ; - oldfs = get_fs(); - set_fs(KERNEL_DS); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ res = vfs_writev(file, (struct iovec __user *) iop, count, &off, 0); -+#else - res = vfs_writev(file, (struct iovec __user *) iop, count, &off); -+#endif - set_fs(oldfs); - dprintk(D_DATA, "%#Lx:%u: %d(%ld)\n", - (unsigned long long) conn->session->sid, conn->cid, -@@ -503,7 +512,11 @@ static int tx_ddigest(struct iscsi_cmnd - iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest); - iov.iov_len = rest; - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ res = kernel_sendmsg(cmnd->conn->sock, (struct msghdr *) &msg, &iov, 1, rest); -+#else - res = kernel_sendmsg(cmnd->conn->sock, &msg, &iov, 1, rest); -+#endif - - if (res > 0) { - cmnd->conn->write_size -= res; -@@ -702,7 +715,12 @@ static void close_conn(struct iscsi_conn - - write_lock_bh(&conn->sock->sk->sk_callback_lock); - conn->sock->sk->sk_state_change = target->nthread_info.old_state_change; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) \ -+ target->nthread_info.old_data_ready; -+#else - conn->sock->sk->sk_data_ready = target->nthread_info.old_data_ready; -+#endif - conn->sock->sk->sk_write_space = target->nthread_info.old_write_space; - write_unlock_bh(&conn->sock->sk->sk_callback_lock); - -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2017-01-19 20:19:27.276504928 -0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-19 20:32:22.979988634 -0800 -@@ -84,12 +84,25 @@ static int set_scsisn(struct iet_volume - /* Generate a MD5 hash of the target IQN and LUN number */ - static void gen_scsiid(struct iet_volume *volume) - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct ahash_request *hash; -+ struct crypto_ahash *tfm; -+#else - struct hash_desc hash; -+#endif - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC); -+#else - hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC); - hash.flags = 0; -+#endif - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ if (!IS_ERR(tfm)) { -+#else - if (!IS_ERR(hash.tfm)) { -+#endif - struct scatterlist sg[2]; - unsigned int nbytes = 0; - -@@ -102,11 +115,19 @@ static void gen_scsiid(struct iet_volume - sg_set_buf(&sg[1], &volume->lun, sizeof(volume->lun)); - nbytes += sizeof(volume->lun); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ crypto_ahash_init(hash); -+ ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes); -+ crypto_ahash_update(hash); -+ crypto_ahash_digest(hash); -+ crypto_free_ahash(tfm); -+#else - crypto_hash_init(&hash); - crypto_hash_update(&hash, sg, nbytes); - crypto_hash_final(&hash, volume->scsi_id); - - crypto_free_hash(hash.tfm); -+#endif - } else { - /* If no MD5 available set ID to TID and LUN */ - memcpy(volume->scsi_id, &volume->target->tid, diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch deleted file mode 100644 index c99683478..000000000 --- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch +++ /dev/null @@ -1,85 +0,0 @@ -The previous build_with_updated_interfaces_of_linux_v4.8_and_above.patch -does not alloc struct ahash_request before using it. This will cause the -kernel call trace below when calling gen_scsiid on kernel 4.8 or later -version. - -This patch normalizes the calling of ahash API according to the example -in kernel doc Documentation/crypto/api-intro.txt. - -BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 -IP: [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] -PGD dd77067 PUD dd7c067 PMD 0 -Oops: 0000 [#1] PREEMPT SMP -Modules linked in: iscsi_trgt(O) -CPU: 0 PID: 350 Comm: ietd Tainted: G O 4.8.12-yocto-standard #1 -Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 -task: ffff88000dfe2c00 task.stack: ffff88000de88000 -RIP: 0010:[<ffffffffa0008d45>] [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] -RSP: 0018:ffff88000de8bd90 EFLAGS: 00000206 -RAX: 000000000000ddfa RBX: ffff88000ddd1d78 RCX: ffffea0000000000 -RDX: 0000000000000600 RSI: 0000000000000000 RDI: ffff88000ddd1c14 -RBP: ffff88000de8be38 R08: ffff88000de44180 R09: ffff88000de8bdd0 -R10: 000000000000002c R11: 0000000000000000 R12: ffff88000ddfa600 -R13: 0000000000000000 R14: 0000000000000000 R15: ffff88000de92200 -FS: 00007f767548b700(0000) GS:ffff88000fc00000(0000) knlGS:0000000000000000 -CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -CR2: 0000000000000020 CR3: 000000000dd2d000 CR4: 00000000000006f0 -Stack: - ffff88000de8bdd0 ffff88000dc1b3d0 ffff88000ddfa650 ffff88000ddfa660 - ffff88000df8f000 ffff88000ddd1c00 ffff88000de44180 0000000000000000 - ffffea0000377440 0000000f00000c14 0000000000000000 0000000000000000 -Call Trace: - [<ffffffffa0006547>] ioctl+0x217/0x390 [iscsi_trgt] - [<ffffffff81192574>] do_vfs_ioctl+0x94/0x5c0 - [<ffffffff8117ff73>] ? vfs_read+0xf3/0x120 - [<ffffffff81192b19>] SyS_ioctl+0x79/0x90 - [<ffffffff8191a45b>] entry_SYSCALL_64_fastpath+0x13/0x8f -Code: 4c 01 e0 0f 82 a2 01 00 00 48 b9 00 00 00 80 ff 77 00 00 48 01 -c8 45 31 f6 48 b9 00 00 00 00 00 ea ff ff 89 54 24 68 48 c1 e8 0c <49> -8b 56 20 4c 89 44 24 20 4c 89 f7 48 c1 e0 06 c7 44 24 6c 04 -RIP [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] - RSP <ffff88000de8bd90> -CR2: 0000000000000020 -end trace cd2016297df21635 ] -ietd_response_recv 200 0 -5 -Input/output error. - -Upstream-Status: Pending [This patch is based on the previous one which -has not been merged upstream.] - -Signed-off-by: Zhe He <zhe.he@windriver.com> - ---- iscsitarget-1.4.20.3+svn502_orig/kernel/volume.c 2017-01-18 08:57:56.752187402 +0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 09:02:44.164195234 +0800 -@@ -93,13 +93,14 @@ static void gen_scsiid(struct iet_volume - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) - tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC); -+ hash = ahash_request_alloc(tfm, GFP_ATOMIC); - #else - hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC); - hash.flags = 0; - #endif - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -- if (!IS_ERR(tfm)) { -+ if (tfm && !IS_ERR(tfm)) { - #else - if (!IS_ERR(hash.tfm)) { - #endif -@@ -116,10 +117,13 @@ static void gen_scsiid(struct iet_volume - nbytes += sizeof(volume->lun); - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -- crypto_ahash_init(hash); -+ ahash_request_set_callback(hash, 0, NULL, NULL); - ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes); -- crypto_ahash_update(hash); - crypto_ahash_digest(hash); -+ crypto_ahash_init(hash); -+ crypto_ahash_update(hash); -+ crypto_ahash_final(hash); -+ ahash_request_free(hash); - crypto_free_ahash(tfm); - #else - crypto_hash_init(&hash); diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch deleted file mode 100644 index 1e6a1d6d3..000000000 --- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch +++ /dev/null @@ -1,327 +0,0 @@ -Description: Fix source to compile on 3.19 kernels -Author: Stefan Bader <stefan.bader@canonical.com> -Forward: no - -Fixes below inconsistent crash when trying to login to iSCSI target -server, observed with linux kernel v4.1. - --- snip -- -CPU: 1 PID: 29883 Comm: istd1 Tainted: G O 4.1.35-rt40-yocto-standard #1 -Hardware name: To be filled by O.E.M. To be filled by O.E.M./Larne CRB, BIOS 4.6.5.4 09/18/2014 -task: ffff88020f1f30c0 ti: ffff8800d7f3c000 task.ti: ffff8800d7f3c000 -RIP: 0010:[<ffffffff8140d1ae>] [<ffffffff8140d1ae>] copy_to_iter+0x3e/0x280 -RSP: 0018:ffff8800d7f3f728 EFLAGS: 00010246 -RAX: 00000000d7f3f928 RBX: 0000000000000030 RCX: 0000000000000030 -RDX: ffff8800d7f3f900 RSI: 0000000000000030 RDI: ffff8800d1501e82 -RBP: ffff8800d7f3f768 R08: 00000000c127d467 R09: 0000000000000000 -R10: ffff88020f29e118 R11: 0000000000000004 R12: ffff8800d7f3f900 -R13: 0000000000000030 R14: 0000000000000001 R15: 0000000000000246 -FS: 00007f86f9c4c700(0000) GS:ffff88021ec80000(0000) knlGS:00000000f7733700 -CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -CR2: 000000000000024e CR3: 00000000d38b0000 CR4: 00000000000406e0 -Stack: -ffff880214f14ec0 ffff8800d1501e82 ffff8800d7f3f748 0000000000000030 -ffff88020f122500 0000000000000030 0000000000000000 0000000000000030 -ffff8800d7f3f7c8 ffffffff81806981 ffff8800d7f3f798 ffffffff8105d72a -Call Trace: -[<ffffffff81806981>] skb_copy_datagram_iter+0x71/0x2b0 -[<ffffffff8105d72a>] ? __local_bh_enable_ip+0x4a/0xb0 -[<ffffffff8186c9c0>] tcp_recvmsg+0x5e0/0xbb0 -[<ffffffff81898ded>] inet_recvmsg+0x8d/0xb0 -[<ffffffff817f49f3>] sock_recvmsg+0x13/0x20 -[<ffffffffa01655c3>] do_recv+0xe3/0x1f0 [iscsi_trgt] -[<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0 -[<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20 -[<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0 -[<ffffffff8140fed5>] ? find_next_bit+0x15/0x30 -[<ffffffff813fa8e0>] ? cpumask_next_and+0x30/0x50 -[<ffffffff8113f785>] ? __alloc_pages_nodemask+0x165/0x980 -[<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0 -[<ffffffff8195da8b>] ? _raw_spin_lock+0x1b/0x60 -[<ffffffff8109cfa8>] ? cpuacct_charge+0x58/0x70 -[<ffffffff81089039>] ? update_curr+0xb9/0x190 -[<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20 -[<ffffffff8112b43f>] ? __perf_event_task_sched_in+0x4f/0x90 -[<ffffffff8195dbbd>] ? _raw_spin_unlock_irq+0x1d/0x40 -[<ffffffff8107e223>] ? finish_task_switch+0x63/0xe0 -[<ffffffff81959e3b>] ? __schedule+0x38b/0x980 -[<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0 -[<ffffffffa0165c65>] istd+0x4d5/0x1390 [iscsi_trgt] -[<ffffffff81959e3b>] ? __schedule+0x38b/0x980 -[<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt] -[<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt] -[<ffffffff8107748b>] kthread+0xbb/0xe0 -[<ffffffff81950000>] ? wireless_dev_seq_show+0x100/0x180 -[<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170 -[<ffffffff8195e7a2>] ret_from_fork+0x42/0x70 -[<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170 -Code: 5a 10 48 89 7d c8 48 39 f3 48 0f 47 de 48 85 db 0f 84 6f 01 00 00 8b 02 49 89 -d4 4c 8b 72 08 4c 8b 7a 18 a8 04 0f 85 a2 00 00 00 <4d> 8b 6f 08 4d 29 f5 49 39 dd 4c 0f 47 eb a8 02 0f 85 5c 01 00 -RSP <ffff8800d7f3f728> -CR2: 000000000000024e -------------[ cut here ]------------ --- snip -- - -The original patch is at -http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz, -those changes were taken using #ifs, inorder to allow compilation of -iscsitarget package with linux kernels < 3.19. - -Upstream-Status: Submitted [http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz] - -Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> - -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-18 22:27:02.713167436 -0800 -+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-18 23:13:11.909214379 -0800 -@@ -129,7 +129,11 @@ static void iet_socket_bind(struct iscsi - - dprintk(D_GENERIC, "%llu\n", (unsigned long long) session->sid); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ conn->sock = SOCKET_I(file_inode(conn->file)); -+#else - conn->sock = SOCKET_I(conn->file->f_dentry->d_inode); -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - conn->sock->sk->sk_user_data = conn; - - write_lock_bh(&conn->sock->sk->sk_callback_lock); -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c iscsitarget-1.4.20.3+svn502/kernel/file-io.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c 2014-05-06 13:59:55.000000000 -0700 -+++ iscsitarget-1.4.20.3+svn502/kernel/file-io.c 2017-01-18 23:54:38.505717079 -0800 -@@ -69,7 +69,11 @@ static int fileio_make_request(struct ie - static int fileio_sync(struct iet_volume *lu, struct tio *tio) - { - struct fileio_data *p = lu->private; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ struct inode *inode = file_inode(p->filp); -+#else - struct inode *inode = p->filp->f_dentry->d_inode; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - struct address_space *mapping = inode->i_mapping; - loff_t ppos, count; - int res; -@@ -213,7 +217,11 @@ static int fileio_attach(struct iet_volu - eprintk("%d\n", err); - goto out; - } -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ inode = file_inode(p->filp); -+#else - inode = p->filp->f_dentry->d_inode; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - - if (S_ISREG(inode->i_mode)) - ; -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c iscsitarget-1.4.20.3+svn502/kernel/iscsi.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c 2014-05-06 13:59:55.000000000 -0700 -+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.c 2017-01-18 23:37:36.462970326 -0800 -@@ -489,8 +489,12 @@ static void cmnd_skip_pdu(struct iscsi_c - } - conn->read_iov[i].iov_base = addr; - conn->read_iov[i].iov_len = size; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size); -+#else - conn->read_msg.msg_iov = conn->read_iov; - conn->read_msg.msg_iovlen = ++i; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - } - - static void iscsi_cmnd_reject(struct iscsi_cmnd *req, int reason) -@@ -718,7 +722,9 @@ static int cmnd_recv_pdu(struct iscsi_co - idx = offset >> PAGE_CACHE_SHIFT; - offset &= ~PAGE_CACHE_MASK; - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) - conn->read_msg.msg_iov = conn->read_iov; -+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ - conn->read_size = size = (size + 3) & -4; - conn->read_overflow = 0; - -@@ -730,16 +736,25 @@ static int cmnd_recv_pdu(struct iscsi_co - conn->read_iov[i].iov_base = addr + offset; - if (offset + size <= PAGE_CACHE_SIZE) { - conn->read_iov[i].iov_len = size; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size); -+#else - conn->read_msg.msg_iovlen = ++i; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - break; - } - conn->read_iov[i].iov_len = PAGE_CACHE_SIZE - offset; - size -= conn->read_iov[i].iov_len; - offset = 0; - if (++i >= ISCSI_CONN_IOV_MAX) { -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) - conn->read_msg.msg_iovlen = i; -+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ - conn->read_overflow = size; - conn->read_size -= size; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size); -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - break; - } - -@@ -918,7 +933,9 @@ static int nop_out_start(struct iscsi_co - - if ((size = cmnd->pdu.datasize)) { - size = (size + 3) & -4; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) - conn->read_msg.msg_iov = conn->read_iov; -+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ - if (cmnd->pdu.bhs.itt != cpu_to_be32(ISCSI_RESERVED_TAG)) { - struct tio *tio; - int pg_cnt = get_pgcnt(size); -@@ -946,7 +963,11 @@ static int nop_out_start(struct iscsi_co - } - assert(!size); - conn->read_overflow = size; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size); -+#else - conn->read_msg.msg_iovlen = i; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - } - - out: -@@ -986,7 +1007,11 @@ static void scsi_cmnd_start(struct iscsi - set_cmnd_lunit(req); - - switch (req_hdr->scb[0]) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ case SERVICE_ACTION_IN_16: -+#else - case SERVICE_ACTION_IN: -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - if ((req_hdr->scb[1] & 0x1f) != 0x10) - goto error; - case INQUIRY: -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2014-05-06 13:59:55.000000000 -0700 -+++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-18 23:45:03.291033881 -0800 -@@ -42,9 +42,14 @@ static inline void iscsi_conn_init_read( - len = (len + 3) & -4; // XXX ??? - conn->read_iov[0].iov_base = data; - conn->read_iov[0].iov_len = len; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) - conn->read_msg.msg_iov = conn->read_iov; - conn->read_msg.msg_iovlen = 1; -+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ - conn->read_size = (len + 3) & -4; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, 1, conn->read_size); -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - } - - static void iscsi_conn_read_ahs(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) -@@ -83,14 +88,31 @@ static int is_data_available(struct iscs - - static void forward_iov(struct msghdr *msg, int len) - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ struct iovec *iov; -+ -+ while (msg->msg_iter.iov->iov_len <= len) { -+ len -= msg->msg_iter.iov->iov_len; -+ msg->msg_iter.iov++; -+ msg->msg_iter.nr_segs--; -+ } -+#else - while (msg->msg_iov->iov_len <= len) { - len -= msg->msg_iov->iov_len; - msg->msg_iov++; - msg->msg_iovlen--; - } -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ /* XXX: discards const ... */ -+ iov = msg->msg_iter.iov; -+ iov->iov_base = (char *) msg->msg_iter.iov->iov_base + len; -+ iov->iov_len -= len; -+#else - msg->msg_iov->iov_base = (char *) msg->msg_iov->iov_base + len; - msg->msg_iov->iov_len -= len; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - } - - static int do_recv(struct iscsi_conn *conn, int state) -@@ -98,6 +120,9 @@ static int do_recv(struct iscsi_conn *co - mm_segment_t oldfs; - struct msghdr msg; - struct iovec iov[ISCSI_CONN_IOV_MAX]; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ size_t iovlen = ISCSI_CONN_IOV_MAX; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - int i, len, res; - - if (!test_bit(CONN_ACTIVE, &conn->state)) { -@@ -110,12 +135,23 @@ static int do_recv(struct iscsi_conn *co - goto out; - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ if (conn->read_msg.msg_iter.nr_segs < iovlen) -+ iovlen = conn->read_msg.msg_iter.nr_segs; -+ -+ for (i = 0, len = 0; i < iovlen; i++) { -+ iov[i] = conn->read_msg.msg_iter.iov[i]; -+ len += iov[i].iov_len; -+ } -+ iov_iter_init(&msg.msg_iter, READ, iov, iovlen, len); -+#else - msg.msg_iov = iov; - msg.msg_iovlen = min_t(size_t, conn->read_msg.msg_iovlen, ISCSI_CONN_IOV_MAX); - for (i = 0, len = 0; i < msg.msg_iovlen; i++) { - iov[i] = conn->read_msg.msg_iov[i]; - len += iov[i].iov_len; - } -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - - oldfs = get_fs(); - set_fs(get_ds()); -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c iscsitarget-1.4.20.3+svn502/kernel/target_disk.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c 2014-05-06 13:59:55.000000000 -0700 -+++ iscsitarget-1.4.20.3+svn502/kernel/target_disk.c 2017-01-18 23:45:51.451010417 -0800 -@@ -606,7 +606,11 @@ static int disk_execute_cmnd(struct iscs - case REQUEST_SENSE: - send_data_rsp(cmnd, build_request_sense_response); - break; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ case SERVICE_ACTION_IN_16: -+#else - case SERVICE_ACTION_IN: -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - send_data_rsp(cmnd, build_service_action_in_response); - break; - case READ_6: -diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2014-05-06 13:59:55.000000000 -0700 -+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 23:47:07.957561600 -0800 -@@ -398,7 +398,11 @@ int is_volume_reserved(struct iet_volume - case READ_CAPACITY: - /* allowed commands when reserved */ - break; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ case SERVICE_ACTION_IN_16: -+#else - case SERVICE_ACTION_IN: -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - if ((scb[1] & 0x1F) == 0x10) - break; - /* fall through */ -@@ -465,7 +469,11 @@ int is_volume_reserved(struct iet_volume - if (excl_access_ro && !registered) - err = -EBUSY; - break; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ case SERVICE_ACTION_IN_16: -+#else - case SERVICE_ACTION_IN: -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - if ((scb[1] & 0x1F) == 0x10) - break; - /* fall through */ diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch deleted file mode 100644 index 95bd047b9..000000000 --- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch +++ /dev/null @@ -1,67 +0,0 @@ -Get linux kernel version from Makefile of kernel source - -We get below messages while building iscsitarget, - --- snip -- -x86_64-poky-linux-gcc: error: -/CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work-shared/qemux86-64/kernel-source/include/linux/version.h: -No such file or directory -x86_64-poky-linux-gcc: fatal error: no input files -compilation terminated. -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments -/bin/sh: line 0: [: too many arguments --- CUT -- - -These messages are due to absence of include/linux/version.h file in -kernel source directory and failed to compute linux kernel version. -So, use kernel source Makefile ( i.e $(KSRC)/Makefile) to find out -actual kernel version. - -Upstream-Status: Pending - -Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> - ---- iscsitarget-1.4.20.3+svn499_org/Makefile 2014-01-27 00:00:45.000000000 +0530 -+++ iscsitarget-1.4.20.3+svn499/Makefile 2015-07-23 10:44:47.013600285 +0530 -@@ -18,27 +18,11 @@ ifeq ($(KSRC),) - endif - - --ifneq ($(wildcard $(KSRC)/include/generated/utsrelease.h),) -- VERSION_FILE := $(KSRC)/include/generated/utsrelease.h --else -- ifneq ($(wildcard $(KSRC)/include/linux/utsrelease.h),) -- VERSION_FILE := $(KSRC)/include/linux/utsrelease.h -- else -- VERSION_FILE := $(KSRC)/include/linux/version.h -- endif --endif -- --KVER := $(shell $(CC) $(CFLAGS) $(LDFLAGS) -E -dM $(VERSION_FILE) | \ -- grep UTS_RELEASE | awk '{ print $$3 }' | sed 's/\"//g') -- - KMOD := /lib/modules/$(KVER)/extra -- --KMAJ := $(shell echo $(KVER) | \ -- sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/') --KMIN := $(shell echo $(KVER) | \ -- sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/') --KREV := $(shell echo $(KVER) | \ -- sed -e 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/') -+KMAJ := $(shell cat $(KSRC)/Makefile | grep ^VERSION | gawk -F " " '{ print $$NF }') -+KMIN := $(shell cat $(KSRC)/Makefile | grep ^PATCHLEVEL | gawk -F " " '{ print $$NF }') -+KREV := $(shell cat $(KSRC)/Makefile | grep ^SUBLEVEL | gawk -F " " '{ print $$NF }') -+KVER := ${KMAJ}.${KMIN}.${KREV} - - kver_eq = $(shell [ $(KMAJ) -eq $(1) -a $(KMIN) -eq $(2) -a $(KREV) -eq $(3) ] && \ - echo 1 || echo 0) diff --git a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb b/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb deleted file mode 100644 index 5d1359165..000000000 --- a/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb +++ /dev/null @@ -1,64 +0,0 @@ -DESCRIPTION = "iSCSI Enterprise Target is aimed to develop an \ - open source iSCSI target with professional features, \ - that works well in enterprise environment under real \ - workload, and is scalable and versatile enough to meet the \ - challenge of future storage needs and developments." -HOMEPAGE = "http://iscsitarget.sourceforge.net/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=6e233eda45c807aa29aeaa6d94bc48a2" -DEPENDS = "openssl virtual/kernel" - -SRC_URI = "http://ftp.heanet.ie/mirrors/ubuntu/pool/universe/i/${BPN}/${BPN}_${PV}.orig.tar.gz \ - file://use-kernel-makefile-to-get-kernel-version.patch \ - file://fix-errors-observed-with-linux-3.19-and-greater.patch \ - file://access-sk_v6_daddr-iff-IPV6-defined.patch \ - file://build_with_updated_bio_struct_of_linux_v4.3_and_above.patch \ - file://build_with_updated_interfaces_of_linux_v4.8_and_above.patch \ - file://fix-call-trace-of-ahash-API-calling.patch \ - file://0001-kernel-event-netlink_ack-now-requires-4-arguments.patch \ - " - -SRC_URI[md5sum] = "ef9bc823bbabd3c772208c00d5f2d089" -SRC_URI[sha256sum] = "d3196ccb78a43266dce28587bfe30d8ab4db7566d7bce96057dfbb84100babb5" - -inherit module - -do_configure[noexec] = "1" - -# make_scripts requires kernel source directory to create -# kernel scripts -do_make_scripts[depends] += "virtual/kernel:do_shared_workdir" - -do_compile() { - oe_runmake KSRC=${STAGING_KERNEL_DIR} LDFLAGS='' V=1 kernel - oe_runmake KSRC=${STAGING_KERNEL_DIR} usr -} - -do_install() { - # Module - install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi - install -m 0644 kernel/iscsi_trgt.ko \ - ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi/iscsi_trgt.ko - - # Userspace utilities - install -d ${D}${sbindir} - install -m 0755 usr/ietd ${D}${sbindir}/ietd - install -m 0755 usr/ietadm ${D}${sbindir}/ietadm - - # Config files, init scripts - mkdir -p ${D}${sysconfdir}/iet - install -m 0644 etc/ietd.conf ${D}/${sysconfdir}/iet/ietd.conf - install -m 0644 etc/initiators.allow ${D}${sysconfdir}/iet/initiators.allow - install -m 0644 etc/targets.allow ${D}${sysconfdir}/iet/targets.allow - mkdir -p ${D}${sysconfdir}/init.d - install -m 0755 etc/initd/initd ${D}${sysconfdir}/init.d/iscsi-target - install -m 0644 etc/initiators.deny ${D}${sysconfdir}/iet/initiators.deny -} - -FILES_${PN} += "${sbindir} \ - ${sysconfdir}" - -RDEPENDS_${PN} = "kernel-module-iscsi-trgt" -RRECOMMENDS_${PN} = "kernel-module-crc32c kernel-module-libcrc32c" - -PNBLACKLIST[iscsitarget] = "error: implicit declaration of function 'init_timer'; did you mean 'init_timers'?; 4.15 kernel issues" diff --git a/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb b/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb index 8b3490d7c..46168b0ba 100644 --- a/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb +++ b/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb @@ -4,11 +4,9 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "libnfnetlink libnetfilter-conntrack libnetfilter-cttimeout \ - libnetfilter-cthelper libnetfilter-queue bison-native" + libnetfilter-cthelper libnetfilter-queue bison-native libtirpc" -DEPENDS_append_libc-musl = " libtirpc" -CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" -LDFLAGS_append_libc-musl = " -ltirpc" +EXTRA_OECONF += "LIBS=-ltirpc CPPFLAGS=-I${STAGING_INCDIR}/tirpc" SRC_URI = "http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2;name=tar \ file://conntrack-failover \ diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb index b9dce69ba..f05bd615d 100644 --- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb +++ b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb @@ -36,6 +36,15 @@ SRC_URI_append_libc-musl = " file://0010-Adjust-header-include-sequence.patch" SRC_URI[md5sum] = "506742a3d44b9925955425a659c1a8d0" SRC_URI[sha256sum] = "dc6f7b484f207dc712bfca81645f45120cb6aee3380e77a1771e9c34a9a4455d" +# It is using '-' but not '.' as delimiter for the version in the releases page, +# which causes the version comparison unmatched. +#UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ebtables/files/ebtables/" +#UPSTREAM_CHECK_REGEX = "ebtables-(?P<pver>\d+(\-\d+)+)" + +RECIPE_UPSTREAM_VERSION = "2.0.10-4" +RECIPE_UPSTREAM_DATE = "Dec 15, 2011" +CHECK_DATE = "May 25, 2018" + S = "${WORKDIR}/ebtables-v${PV}" inherit update-rc.d systemd diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch deleted file mode 100644 index e82b23813..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch +++ /dev/null @@ -1,2949 +0,0 @@ -From bd01f785da5222d0662be3182fe2650e1c12f43e Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 10 Apr 2017 14:07:07 -0700 -Subject: [PATCH] Declare the define visivility attribute together - -clang ignores the visibility attribute if its not -defined before the definition. As a result these -symbols become hidden and consumers of this library -fail to link due to these missing symbols - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - doxygen.cfg.in | 2 +- - include/utils.h | 5 +-- - src/batch.c | 21 ++++------- - src/chain.c | 102 +++++++++++++++++--------------------------------- - src/common.c | 21 ++++------- - src/expr.c | 51 +++++++++---------------- - src/gen.c | 39 +++++++------------ - src/object.c | 99 ++++++++++++++++-------------------------------- - src/rule.c | 114 +++++++++++++++++++------------------------------------- - src/ruleset.c | 48 ++++++++---------------- - src/set.c | 96 ++++++++++++++++------------------------------- - src/set_elem.c | 72 ++++++++++++----------------------- - src/table.c | 90 +++++++++++++++----------------------------- - src/trace.c | 27 +++++--------- - src/udata.c | 48 ++++++++---------------- - 15 files changed, 279 insertions(+), 556 deletions(-) - -diff --git a/doxygen.cfg.in b/doxygen.cfg.in -index 23fcad4..e49f28d 100644 ---- a/doxygen.cfg.in -+++ b/doxygen.cfg.in -@@ -72,7 +72,7 @@ RECURSIVE = YES - EXCLUDE = - EXCLUDE_SYMLINKS = NO - EXCLUDE_PATTERNS = */.git/* .*.d --EXCLUDE_SYMBOLS = EXPORT_SYMBOL -+EXCLUDE_SYMBOLS = - EXAMPLE_PATH = - EXAMPLE_PATTERNS = - EXAMPLE_RECURSIVE = NO -diff --git a/include/utils.h b/include/utils.h -index 2f5cf34..ff8207e 100644 ---- a/include/utils.h -+++ b/include/utils.h -@@ -9,10 +9,9 @@ - - #include "config.h" - #ifdef HAVE_VISIBILITY_HIDDEN --# define __visible __attribute__((visibility("default"))) --# define EXPORT_SYMBOL(x) typeof(x) (x) __visible; -+# define __EXPORTED __attribute__((visibility("default"))) - #else --# define EXPORT_SYMBOL -+# define __EXPORT - #endif - - #define __noreturn __attribute__((__noreturn__)) -diff --git a/src/batch.c b/src/batch.c -index 5ee3fd7..3bedd26 100644 ---- a/src/batch.c -+++ b/src/batch.c -@@ -57,7 +57,7 @@ static void nftnl_batch_add_page(struct nftnl_batch_page *page, - list_add_tail(&page->head, &batch->page_list); - } - --struct nftnl_batch *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size) -+struct nftnl_batch __EXPORTED *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size) - { - struct nftnl_batch *batch; - struct nftnl_batch_page *page; -@@ -80,9 +80,8 @@ err1: - free(batch); - return NULL; - } --EXPORT_SYMBOL(nftnl_batch_alloc); - --void nftnl_batch_free(struct nftnl_batch *batch) -+void __EXPORTED nftnl_batch_free(struct nftnl_batch *batch) - { - struct nftnl_batch_page *page, *next; - -@@ -94,9 +93,8 @@ void nftnl_batch_free(struct nftnl_batch *batch) - - free(batch); - } --EXPORT_SYMBOL(nftnl_batch_free); - --int nftnl_batch_update(struct nftnl_batch *batch) -+int __EXPORTED nftnl_batch_update(struct nftnl_batch *batch) - { - struct nftnl_batch_page *page; - struct nlmsghdr *last_nlh; -@@ -119,21 +117,18 @@ int nftnl_batch_update(struct nftnl_batch *batch) - err1: - return -1; - } --EXPORT_SYMBOL(nftnl_batch_update); - --void *nftnl_batch_buffer(struct nftnl_batch *batch) -+void __EXPORTED *nftnl_batch_buffer(struct nftnl_batch *batch) - { - return mnl_nlmsg_batch_current(batch->current_page->batch); - } --EXPORT_SYMBOL(nftnl_batch_buffer); - --uint32_t nftnl_batch_buffer_len(struct nftnl_batch *batch) -+uint32_t __EXPORTED nftnl_batch_buffer_len(struct nftnl_batch *batch) - { - return mnl_nlmsg_batch_size(batch->current_page->batch); - } --EXPORT_SYMBOL(nftnl_batch_buffer_len); - --int nftnl_batch_iovec_len(struct nftnl_batch *batch) -+int __EXPORTED nftnl_batch_iovec_len(struct nftnl_batch *batch) - { - int num_pages = batch->num_pages; - -@@ -143,9 +138,8 @@ int nftnl_batch_iovec_len(struct nftnl_batch *batch) - - return num_pages; - } --EXPORT_SYMBOL(nftnl_batch_iovec_len); - --void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, -+void __EXPORTED nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, - uint32_t iovlen) - { - struct nftnl_batch_page *page; -@@ -160,4 +154,3 @@ void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, - i++; - } - } --EXPORT_SYMBOL(nftnl_batch_iovec); -diff --git a/src/chain.c b/src/chain.c -index 29860c5..362fa0d 100644 ---- a/src/chain.c -+++ b/src/chain.c -@@ -87,13 +87,12 @@ static const char *nftnl_hooknum2str(int family, int hooknum) - return "unknown"; - } - --struct nftnl_chain *nftnl_chain_alloc(void) -+struct nftnl_chain __EXPORTED *nftnl_chain_alloc(void) - { - return calloc(1, sizeof(struct nftnl_chain)); - } --EXPORT_SYMBOL(nftnl_chain_alloc); - --void nftnl_chain_free(const struct nftnl_chain *c) -+void __EXPORTED nftnl_chain_free(const struct nftnl_chain *c) - { - if (c->flags & (1 << NFTNL_CHAIN_NAME)) - xfree(c->name); -@@ -105,15 +104,13 @@ void nftnl_chain_free(const struct nftnl_chain *c) - xfree(c->dev); - xfree(c); - } --EXPORT_SYMBOL(nftnl_chain_free); - --bool nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr) -+bool __EXPORTED nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr) - { - return c->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_chain_is_set); - --void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) -+void __EXPORTED nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) - { - if (!(c->flags & (1 << attr))) - return; -@@ -147,7 +144,6 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) - - c->flags &= ~(1 << attr); - } --EXPORT_SYMBOL(nftnl_chain_unset); - - static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = { - [NFTNL_CHAIN_HOOKNUM] = sizeof(uint32_t), -@@ -159,7 +155,7 @@ static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = { - [NFTNL_CHAIN_FAMILY] = sizeof(uint32_t), - }; - --int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, -+int __EXPORTED nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, - const void *data, uint32_t data_len) - { - nftnl_assert_attr_exists(attr, NFTNL_CHAIN_MAX); -@@ -226,45 +222,38 @@ int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, - c->flags |= (1 << attr); - return 0; - } --EXPORT_SYMBOL(nftnl_chain_set_data); - --void nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data) -+void __EXPORTED nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data) - { - nftnl_chain_set_data(c, attr, data, nftnl_chain_validate[attr]); - } --EXPORT_SYMBOL(nftnl_chain_set); - --void nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data) -+void __EXPORTED nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data) - { - nftnl_chain_set_data(c, attr, &data, sizeof(uint32_t)); - } --EXPORT_SYMBOL(nftnl_chain_set_u32); - --void nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data) -+void __EXPORTED nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data) - { - nftnl_chain_set_data(c, attr, &data, sizeof(int32_t)); - } --EXPORT_SYMBOL(nftnl_chain_set_s32); - --void nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data) -+void __EXPORTED nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data) - { - nftnl_chain_set_data(c, attr, &data, sizeof(uint64_t)); - } --EXPORT_SYMBOL(nftnl_chain_set_u64); - --void nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data) -+void __EXPORTED nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data) - { - nftnl_chain_set_data(c, attr, &data, sizeof(uint8_t)); - } --EXPORT_SYMBOL(nftnl_chain_set_u8); - --int nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str) -+int __EXPORTED nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str) - { - return nftnl_chain_set_data(c, attr, str, strlen(str) + 1); - } --EXPORT_SYMBOL(nftnl_chain_set_str); - --const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, -+const void __EXPORTED *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, - uint32_t *data_len) - { - if (!(c->flags & (1 << attr))) -@@ -310,22 +299,19 @@ const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, - } - return NULL; - } --EXPORT_SYMBOL(nftnl_chain_get_data); - --const void *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr) -+const void __EXPORTED *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr) - { - uint32_t data_len; - return nftnl_chain_get_data(c, attr, &data_len); - } --EXPORT_SYMBOL(nftnl_chain_get); - --const char *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr) -+const char __EXPORTED *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr) - { - return nftnl_chain_get(c, attr); - } --EXPORT_SYMBOL(nftnl_chain_get_str); - --uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) -+uint32_t __EXPORTED nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) - { - uint32_t data_len; - const uint32_t *val = nftnl_chain_get_data(c, attr, &data_len); -@@ -334,9 +320,8 @@ uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_chain_get_u32); - --int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) -+int32_t __EXPORTED nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) - { - uint32_t data_len; - const int32_t *val = nftnl_chain_get_data(c, attr, &data_len); -@@ -345,9 +330,8 @@ int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_chain_get_s32); - --uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) -+uint64_t __EXPORTED nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) - { - uint32_t data_len; - const uint64_t *val = nftnl_chain_get_data(c, attr, &data_len); -@@ -356,9 +340,8 @@ uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_chain_get_u64); - --uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) -+uint8_t __EXPORTED nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) - { - uint32_t data_len; - const uint8_t *val = nftnl_chain_get_data(c, attr, &data_len); -@@ -367,9 +350,8 @@ uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_chain_get_u8); - --void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c) -+void __EXPORTED nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c) - { - if (c->flags & (1 << NFTNL_CHAIN_TABLE)) - mnl_attr_put_strz(nlh, NFTA_CHAIN_TABLE, c->table); -@@ -404,7 +386,6 @@ void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_ch - if (c->flags & (1 << NFTNL_CHAIN_TYPE)) - mnl_attr_put_strz(nlh, NFTA_CHAIN_TYPE, c->type); - } --EXPORT_SYMBOL(nftnl_chain_nlmsg_build_payload); - - static int nftnl_chain_parse_attr_cb(const struct nlattr *attr, void *data) - { -@@ -529,7 +510,7 @@ static int nftnl_chain_parse_hook(struct nlattr *attr, struct nftnl_chain *c) - return 0; - } - --int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) -+int __EXPORTED nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) - { - struct nlattr *tb[NFTA_CHAIN_MAX+1] = {}; - struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); -@@ -590,7 +571,6 @@ int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) - - return ret; - } --EXPORT_SYMBOL(nftnl_chain_nlmsg_parse); - - static inline int nftnl_str2hooknum(int family, const char *hook) - { -@@ -732,19 +712,17 @@ static int nftnl_chain_do_parse(struct nftnl_chain *c, enum nftnl_parse_type typ - return ret; - } - --int nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type, -+int __EXPORTED nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type, - const char *data, struct nftnl_parse_err *err) - { - return nftnl_chain_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER); - } --EXPORT_SYMBOL(nftnl_chain_parse); - --int nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type, -+int __EXPORTED nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type, - FILE *fp, struct nftnl_parse_err *err) - { - return nftnl_chain_do_parse(c, type, fp, err, NFTNL_PARSE_FILE); - } --EXPORT_SYMBOL(nftnl_chain_parse_file); - - static int nftnl_chain_export(char *buf, size_t size, - const struct nftnl_chain *c, int type) -@@ -841,13 +819,12 @@ static int nftnl_chain_cmd_snprintf(char *buf, size_t size, - return offset; - } - --int nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c, -+int __EXPORTED nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c, - uint32_t type, uint32_t flags) - { - return nftnl_chain_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags), type, - flags); - } --EXPORT_SYMBOL(nftnl_chain_snprintf); - - static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c, - uint32_t cmd, uint32_t type, uint32_t flags) -@@ -855,19 +832,18 @@ static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c, - return nftnl_chain_snprintf(buf, size, c, type, flags); - } - --int nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type, -+int __EXPORTED nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type, - uint32_t flags) - { - return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags, - nftnl_chain_do_snprintf); - } --EXPORT_SYMBOL(nftnl_chain_fprintf); - - struct nftnl_chain_list { - struct list_head list; - }; - --struct nftnl_chain_list *nftnl_chain_list_alloc(void) -+struct nftnl_chain_list __EXPORTED *nftnl_chain_list_alloc(void) - { - struct nftnl_chain_list *list; - -@@ -879,9 +855,8 @@ struct nftnl_chain_list *nftnl_chain_list_alloc(void) - - return list; - } --EXPORT_SYMBOL(nftnl_chain_list_alloc); - --void nftnl_chain_list_free(struct nftnl_chain_list *list) -+void __EXPORTED nftnl_chain_list_free(struct nftnl_chain_list *list) - { - struct nftnl_chain *r, *tmp; - -@@ -891,33 +866,28 @@ void nftnl_chain_list_free(struct nftnl_chain_list *list) - } - xfree(list); - } --EXPORT_SYMBOL(nftnl_chain_list_free); - --int nftnl_chain_list_is_empty(const struct nftnl_chain_list *list) -+int __EXPORTED nftnl_chain_list_is_empty(const struct nftnl_chain_list *list) - { - return list_empty(&list->list); - } --EXPORT_SYMBOL(nftnl_chain_list_is_empty); - --void nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list) -+void __EXPORTED nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list) - { - list_add(&r->head, &list->list); - } --EXPORT_SYMBOL(nftnl_chain_list_add); - --void nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list) -+void __EXPORTED nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list) - { - list_add_tail(&r->head, &list->list); - } --EXPORT_SYMBOL(nftnl_chain_list_add_tail); - --void nftnl_chain_list_del(struct nftnl_chain *r) -+void __EXPORTED nftnl_chain_list_del(struct nftnl_chain *r) - { - list_del(&r->head); - } --EXPORT_SYMBOL(nftnl_chain_list_del); - --int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, -+int __EXPORTED nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, - int (*cb)(struct nftnl_chain *r, void *data), - void *data) - { -@@ -931,14 +901,13 @@ int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, - } - return 0; - } --EXPORT_SYMBOL(nftnl_chain_list_foreach); - - struct nftnl_chain_list_iter { - const struct nftnl_chain_list *list; - struct nftnl_chain *cur; - }; - --struct nftnl_chain_list_iter * -+struct nftnl_chain_list_iter __EXPORTED * - nftnl_chain_list_iter_create(const struct nftnl_chain_list *l) - { - struct nftnl_chain_list_iter *iter; -@@ -955,9 +924,8 @@ nftnl_chain_list_iter_create(const struct nftnl_chain_list *l) - - return iter; - } --EXPORT_SYMBOL(nftnl_chain_list_iter_create); - --struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter) -+struct nftnl_chain __EXPORTED *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter) - { - struct nftnl_chain *r = iter->cur; - -@@ -971,10 +939,8 @@ struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *ite - - return r; - } --EXPORT_SYMBOL(nftnl_chain_list_iter_next); - --void nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter) -+void __EXPORTED nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter) - { - xfree(iter); - } --EXPORT_SYMBOL(nftnl_chain_list_iter_destroy); -diff --git a/src/common.c b/src/common.c -index a95883c..68bce2e 100644 ---- a/src/common.c -+++ b/src/common.c -@@ -43,15 +43,14 @@ static struct nlmsghdr *__nftnl_nlmsg_build_hdr(char *buf, uint16_t type, - return nlh; - } - --struct nlmsghdr *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family, -+struct nlmsghdr __EXPORTED *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family, - uint16_t flags, uint32_t seq) - { - return __nftnl_nlmsg_build_hdr(buf, (NFNL_SUBSYS_NFTABLES << 8) | type, - family, flags, seq, 0); - } --EXPORT_SYMBOL(nftnl_nlmsg_build_hdr); - --struct nftnl_parse_err *nftnl_parse_err_alloc(void) -+struct nftnl_parse_err __EXPORTED *nftnl_parse_err_alloc(void) - { - struct nftnl_parse_err *err; - -@@ -63,15 +62,13 @@ struct nftnl_parse_err *nftnl_parse_err_alloc(void) - - return err; - } --EXPORT_SYMBOL(nftnl_parse_err_alloc); - --void nftnl_parse_err_free(struct nftnl_parse_err *err) -+void __EXPORTED nftnl_parse_err_free(struct nftnl_parse_err *err) - { - xfree(err); - } --EXPORT_SYMBOL(nftnl_parse_err_free); - --int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) -+int __EXPORTED nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) - { - switch (err->error) { - case NFTNL_PARSE_EBADINPUT: -@@ -89,7 +86,6 @@ int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) - return fprintf(stderr, "%s: Undefined error\n", msg); - } - } --EXPORT_SYMBOL(nftnl_parse_perror); - - int nftnl_cmd_header_snprintf(char *buf, size_t size, uint32_t cmd, uint32_t type, - uint32_t flags) -@@ -165,21 +161,19 @@ int nftnl_cmd_footer_fprintf(FILE *fp, uint32_t cmd, uint32_t type, - nftnl_cmd_footer_fprintf_cb); - } - --struct nlmsghdr *nftnl_batch_begin(char *buf, uint32_t seq) -+struct nlmsghdr __EXPORTED *nftnl_batch_begin(char *buf, uint32_t seq) - { - return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_BEGIN, AF_UNSPEC, - 0, seq, NFNL_SUBSYS_NFTABLES); - } --EXPORT_SYMBOL(nftnl_batch_begin); - --struct nlmsghdr *nftnl_batch_end(char *buf, uint32_t seq) -+struct nlmsghdr __EXPORTED *nftnl_batch_end(char *buf, uint32_t seq) - { - return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_END, AF_UNSPEC, - 0, seq, NFNL_SUBSYS_NFTABLES); - } --EXPORT_SYMBOL(nftnl_batch_end); - --int nftnl_batch_is_supported(void) -+int __EXPORTED nftnl_batch_is_supported(void) - { - struct mnl_socket *nl; - struct mnl_nlmsg_batch *b; -@@ -236,4 +230,3 @@ err: - mnl_nlmsg_batch_stop(b); - return -1; - } --EXPORT_SYMBOL(nftnl_batch_is_supported); -diff --git a/src/expr.c b/src/expr.c -index 10ba2c4..c7eb2b4 100644 ---- a/src/expr.c -+++ b/src/expr.c -@@ -24,7 +24,7 @@ - - #include <libnftnl/expr.h> - --struct nftnl_expr *nftnl_expr_alloc(const char *name) -+struct nftnl_expr __EXPORTED *nftnl_expr_alloc(const char *name) - { - struct nftnl_expr *expr; - struct expr_ops *ops; -@@ -43,24 +43,21 @@ struct nftnl_expr *nftnl_expr_alloc(const char *name) - - return expr; - } --EXPORT_SYMBOL(nftnl_expr_alloc); - --void nftnl_expr_free(const struct nftnl_expr *expr) -+void __EXPORTED nftnl_expr_free(const struct nftnl_expr *expr) - { - if (expr->ops->free) - expr->ops->free(expr); - - xfree(expr); - } --EXPORT_SYMBOL(nftnl_expr_free); - --bool nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type) -+bool __EXPORTED nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type) - { - return expr->flags & (1 << type); - } --EXPORT_SYMBOL(nftnl_expr_is_set); - --int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, -+int __EXPORTED nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, - const void *data, uint32_t data_len) - { - switch(type) { -@@ -73,43 +70,37 @@ int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, - expr->flags |= (1 << type); - return 0; - } --EXPORT_SYMBOL(nftnl_expr_set); - --void -+void __EXPORTED - nftnl_expr_set_u8(struct nftnl_expr *expr, uint16_t type, uint8_t data) - { - nftnl_expr_set(expr, type, &data, sizeof(uint8_t)); - } --EXPORT_SYMBOL(nftnl_expr_set_u8); - --void -+void __EXPORTED - nftnl_expr_set_u16(struct nftnl_expr *expr, uint16_t type, uint16_t data) - { - nftnl_expr_set(expr, type, &data, sizeof(uint16_t)); - } --EXPORT_SYMBOL(nftnl_expr_set_u16); - --void -+void __EXPORTED - nftnl_expr_set_u32(struct nftnl_expr *expr, uint16_t type, uint32_t data) - { - nftnl_expr_set(expr, type, &data, sizeof(uint32_t)); - } --EXPORT_SYMBOL(nftnl_expr_set_u32); - --void -+void __EXPORTED - nftnl_expr_set_u64(struct nftnl_expr *expr, uint16_t type, uint64_t data) - { - nftnl_expr_set(expr, type, &data, sizeof(uint64_t)); - } --EXPORT_SYMBOL(nftnl_expr_set_u64); - --int nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str) -+int __EXPORTED nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str) - { - return nftnl_expr_set(expr, type, str, strlen(str) + 1); - } --EXPORT_SYMBOL(nftnl_expr_set_str); - --const void *nftnl_expr_get(const struct nftnl_expr *expr, -+const void __EXPORTED *nftnl_expr_get(const struct nftnl_expr *expr, - uint16_t type, uint32_t *data_len) - { - const void *ret; -@@ -129,9 +120,8 @@ const void *nftnl_expr_get(const struct nftnl_expr *expr, - - return ret; - } --EXPORT_SYMBOL(nftnl_expr_get); - --uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) -+uint8_t __EXPORTED nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) - { - const void *data; - uint32_t data_len; -@@ -145,9 +135,8 @@ uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) - - return *((uint8_t *)data); - } --EXPORT_SYMBOL(nftnl_expr_get_u8); - --uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) -+uint16_t __EXPORTED nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) - { - const void *data; - uint32_t data_len; -@@ -161,9 +150,8 @@ uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) - - return *((uint16_t *)data); - } --EXPORT_SYMBOL(nftnl_expr_get_u16); - --uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) -+uint32_t __EXPORTED nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) - { - const void *data; - uint32_t data_len; -@@ -177,9 +165,8 @@ uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) - - return *((uint32_t *)data); - } --EXPORT_SYMBOL(nftnl_expr_get_u32); - --uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) -+uint64_t __EXPORTED nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) - { - const void *data; - uint32_t data_len; -@@ -193,17 +180,15 @@ uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) - - return *((uint64_t *)data); - } --EXPORT_SYMBOL(nftnl_expr_get_u64); - --const char *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type) -+const char __EXPORTED *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type) - { - uint32_t data_len; - - return (const char *)nftnl_expr_get(expr, type, &data_len); - } --EXPORT_SYMBOL(nftnl_expr_get_str); - --bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) -+bool __EXPORTED nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) - { - if (e1->flags != e2->flags || - strcmp(e1->ops->name, e2->ops->name) != 0) -@@ -211,7 +196,6 @@ bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) - - return e1->ops->cmp(e1, e2); - } --EXPORT_SYMBOL(nftnl_expr_cmp); - - void nftnl_expr_build_payload(struct nlmsghdr *nlh, struct nftnl_expr *expr) - { -@@ -275,7 +259,7 @@ err1: - return NULL; - } - --int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, -+int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, - uint32_t type, uint32_t flags) - { - int ret; -@@ -289,4 +273,3 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, - - return offset; - } --EXPORT_SYMBOL(nftnl_expr_snprintf); -diff --git a/src/gen.c b/src/gen.c -index 213562e..8b45caa 100644 ---- a/src/gen.c -+++ b/src/gen.c -@@ -29,25 +29,22 @@ struct nftnl_gen { - uint32_t flags; - }; - --struct nftnl_gen *nftnl_gen_alloc(void) -+struct nftnl_gen __EXPORTED *nftnl_gen_alloc(void) - { - return calloc(1, sizeof(struct nftnl_gen)); - } --EXPORT_SYMBOL(nftnl_gen_alloc); - --void nftnl_gen_free(const struct nftnl_gen *gen) -+void __EXPORTED nftnl_gen_free(const struct nftnl_gen *gen) - { - xfree(gen); - } --EXPORT_SYMBOL(nftnl_gen_free); - --bool nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr) -+bool __EXPORTED nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr) - { - return gen->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_gen_is_set); - --void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) -+void __EXPORTED nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) - { - if (!(gen->flags & (1 << attr))) - return; -@@ -58,13 +55,12 @@ void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) - } - gen->flags &= ~(1 << attr); - } --EXPORT_SYMBOL(nftnl_gen_unset); - - static uint32_t nftnl_gen_validate[NFTNL_GEN_MAX + 1] = { - [NFTNL_GEN_ID] = sizeof(uint32_t), - }; - --int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, -+int __EXPORTED nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, - const void *data, uint32_t data_len) - { - nftnl_assert_attr_exists(attr, NFTNL_GEN_MAX); -@@ -78,21 +74,18 @@ int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, - gen->flags |= (1 << attr); - return 0; - } --EXPORT_SYMBOL(nftnl_gen_set_data); - --int nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data) -+int __EXPORTED nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data) - { - return nftnl_gen_set_data(gen, attr, data, nftnl_gen_validate[attr]); - } --EXPORT_SYMBOL(nftnl_gen_set); - --void nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val) -+void __EXPORTED nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val) - { - nftnl_gen_set_data(gen, attr, &val, sizeof(uint32_t)); - } --EXPORT_SYMBOL(nftnl_gen_set_u32); - --const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, -+const void __EXPORTED *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, - uint32_t *data_len) - { - if (!(gen->flags & (1 << attr))) -@@ -105,21 +98,18 @@ const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, - } - return NULL; - } --EXPORT_SYMBOL(nftnl_gen_get_data); - --const void *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr) -+const void __EXPORTED *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr) - { - uint32_t data_len; - return nftnl_gen_get_data(gen, attr, &data_len); - } --EXPORT_SYMBOL(nftnl_gen_get); - --uint32_t nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr) -+uint32_t __EXPORTED nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr) - { - const void *ret = nftnl_gen_get(gen, attr); - return ret == NULL ? 0 : *((uint32_t *)ret); - } --EXPORT_SYMBOL(nftnl_gen_get_u32); - - static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data) - { -@@ -140,7 +130,7 @@ static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data) - return MNL_CB_OK; - } - --int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) -+int __EXPORTED nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) - { - struct nlattr *tb[NFTA_GEN_MAX + 1] = {}; - struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); -@@ -154,7 +144,6 @@ int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) - } - return 0; - } --EXPORT_SYMBOL(nftnl_gen_nlmsg_parse); - - static int nftnl_gen_snprintf_default(char *buf, size_t size, - const struct nftnl_gen *gen) -@@ -186,13 +175,12 @@ static int nftnl_gen_cmd_snprintf(char *buf, size_t size, - return offset; - } - --int nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen, -+int __EXPORTED nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen, - uint32_t type, uint32_t flags) - {; - return nftnl_gen_cmd_snprintf(buf, size, gen, nftnl_flag2cmd(flags), type, - flags); - } --EXPORT_SYMBOL(nftnl_gen_snprintf); - - static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen, - uint32_t cmd, uint32_t type, uint32_t flags) -@@ -200,10 +188,9 @@ static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen, - return nftnl_gen_snprintf(buf, size, gen, type, flags); - } - --int nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type, -+int __EXPORTED nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type, - uint32_t flags) - { - return nftnl_fprintf(fp, gen, NFTNL_CMD_UNSPEC, type, flags, - nftnl_gen_do_snprintf); - } --EXPORT_SYMBOL(nftnl_gen_fprintf); -diff --git a/src/object.c b/src/object.c -index e1a5ac4..d409c6d 100644 ---- a/src/object.c -+++ b/src/object.c -@@ -39,13 +39,12 @@ static struct obj_ops *nftnl_obj_ops_lookup(uint32_t type) - return obj_ops[type]; - } - --struct nftnl_obj *nftnl_obj_alloc(void) -+struct nftnl_obj __EXPORTED *nftnl_obj_alloc(void) - { - return calloc(1, sizeof(struct nftnl_obj)); - } --EXPORT_SYMBOL(nftnl_obj_alloc); - --void nftnl_obj_free(const struct nftnl_obj *obj) -+void __EXPORTED nftnl_obj_free(const struct nftnl_obj *obj) - { - if (obj->flags & (1 << NFTNL_OBJ_TABLE)) - xfree(obj->table); -@@ -54,20 +53,18 @@ void nftnl_obj_free(const struct nftnl_obj *obj) - - xfree(obj); - } --EXPORT_SYMBOL(nftnl_obj_free); - --bool nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr) -+bool __EXPORTED nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr) - { - return obj->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_obj_is_set); - - static uint32_t nftnl_obj_validate[NFTNL_OBJ_MAX + 1] = { - [NFTNL_OBJ_FAMILY] = sizeof(uint32_t), - [NFTNL_OBJ_USE] = sizeof(uint32_t), - }; - --void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, -+void __EXPORTED nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, - const void *data, uint32_t data_len) - { - if (attr < NFTNL_OBJ_MAX) -@@ -100,45 +97,38 @@ void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, - } - obj->flags |= (1 << attr); - } --EXPORT_SYMBOL(nftnl_obj_set_data); - --void nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data) -+void __EXPORTED nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data) - { - nftnl_obj_set_data(obj, attr, data, nftnl_obj_validate[attr]); - } --EXPORT_SYMBOL(nftnl_obj_set); - --void nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val) -+void __EXPORTED nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val) - { - nftnl_obj_set_data(obj, attr, &val, sizeof(uint8_t)); - } --EXPORT_SYMBOL(nftnl_obj_set_u8); - --void nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val) -+void __EXPORTED nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val) - { - nftnl_obj_set_data(obj, attr, &val, sizeof(uint16_t)); - } --EXPORT_SYMBOL(nftnl_obj_set_u16); - --void nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val) -+void __EXPORTED nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val) - { - nftnl_obj_set_data(obj, attr, &val, sizeof(uint32_t)); - } --EXPORT_SYMBOL(nftnl_obj_set_u32); - --void nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val) -+void __EXPORTED nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val) - { - nftnl_obj_set_data(obj, attr, &val, sizeof(uint64_t)); - } --EXPORT_SYMBOL(nftnl_obj_set_u64); - --void nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str) -+void __EXPORTED nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str) - { - nftnl_obj_set_data(obj, attr, str, 0); - } --EXPORT_SYMBOL(nftnl_obj_set_str); - --const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, -+const void __EXPORTED *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, - uint32_t *data_len) - { - if (!(obj->flags & (1 << attr))) -@@ -168,50 +158,43 @@ const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, - } - return NULL; - } --EXPORT_SYMBOL(nftnl_obj_get_data); - --const void *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr) -+const void __EXPORTED *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr) - { - uint32_t data_len; - return nftnl_obj_get_data(obj, attr, &data_len); - } --EXPORT_SYMBOL(nftnl_obj_get); - --uint8_t nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr) -+uint8_t __EXPORTED nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr) - { - const void *ret = nftnl_obj_get(obj, attr); - return ret == NULL ? 0 : *((uint8_t *)ret); - } --EXPORT_SYMBOL(nftnl_obj_get_u8); - --uint16_t nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr) -+uint16_t __EXPORTED nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr) - { - const void *ret = nftnl_obj_get(obj, attr); - return ret == NULL ? 0 : *((uint16_t *)ret); - } --EXPORT_SYMBOL(nftnl_obj_get_u16); - --uint32_t nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr) -+uint32_t __EXPORTED nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr) - { - const void *ret = nftnl_obj_get(obj, attr); - return ret == NULL ? 0 : *((uint32_t *)ret); - } --EXPORT_SYMBOL(nftnl_obj_get_u32); - --uint64_t nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr) -+uint64_t __EXPORTED nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr) - { - const void *ret = nftnl_obj_get(obj, attr); - return ret == NULL ? 0 : *((uint64_t *)ret); - } --EXPORT_SYMBOL(nftnl_obj_get_u64); - --const char *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr) -+const char __EXPORTED *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr) - { - return nftnl_obj_get(obj, attr); - } --EXPORT_SYMBOL(nftnl_obj_get_str); - --void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, -+void __EXPORTED nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, - const struct nftnl_obj *obj) - { - if (obj->flags & (1 << NFTNL_OBJ_TABLE)) -@@ -228,7 +211,6 @@ void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, - mnl_attr_nest_end(nlh, nest); - } - } --EXPORT_SYMBOL(nftnl_obj_nlmsg_build_payload); - - static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data) - { -@@ -258,7 +240,7 @@ static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data) - return MNL_CB_OK; - } - --int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) -+int __EXPORTED nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) - { - struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); - struct nlattr *tb[NFTA_OBJ_MAX + 1] = {}; -@@ -299,7 +281,6 @@ int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) - - return 0; - } --EXPORT_SYMBOL(nftnl_obj_nlmsg_parse); - - #ifdef JSON_PARSING - static int nftnl_jansson_parse_obj(struct nftnl_obj *t, json_t *tree, -@@ -377,19 +358,17 @@ static int nftnl_obj_do_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, - return ret; - } - --int nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, -+int __EXPORTED nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, - const char *data, struct nftnl_parse_err *err) - { - return nftnl_obj_do_parse(obj, type, data, err, NFTNL_PARSE_BUFFER); - } --EXPORT_SYMBOL(nftnl_obj_parse); - --int nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type, -+int __EXPORTED nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type, - FILE *fp, struct nftnl_parse_err *err) - { - return nftnl_obj_do_parse(obj, type, fp, err, NFTNL_PARSE_FILE); - } --EXPORT_SYMBOL(nftnl_obj_parse_file); - - static int nftnl_obj_export(char *buf, size_t size, - const struct nftnl_obj *obj, -@@ -469,13 +448,12 @@ static int nftnl_obj_cmd_snprintf(char *buf, size_t size, - return offset; - } - --int nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj, -+int __EXPORTED nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj, - uint32_t type, uint32_t flags) - { - return nftnl_obj_cmd_snprintf(buf, size, obj, nftnl_flag2cmd(flags), - type, flags); - } --EXPORT_SYMBOL(nftnl_obj_snprintf); - - static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj, - uint32_t cmd, uint32_t type, uint32_t flags) -@@ -483,19 +461,18 @@ static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj, - return nftnl_obj_snprintf(buf, size, obj, type, flags); - } - --int nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type, -+int __EXPORTED nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type, - uint32_t flags) - { - return nftnl_fprintf(fp, obj, NFTNL_CMD_UNSPEC, type, flags, - nftnl_obj_do_snprintf); - } --EXPORT_SYMBOL(nftnl_obj_fprintf); - - struct nftnl_obj_list { - struct list_head list; - }; - --struct nftnl_obj_list *nftnl_obj_list_alloc(void) -+struct nftnl_obj_list __EXPORTED *nftnl_obj_list_alloc(void) - { - struct nftnl_obj_list *list; - -@@ -507,9 +484,8 @@ struct nftnl_obj_list *nftnl_obj_list_alloc(void) - - return list; - } --EXPORT_SYMBOL(nftnl_obj_list_alloc); - --void nftnl_obj_list_free(struct nftnl_obj_list *list) -+void __EXPORTED nftnl_obj_list_free(struct nftnl_obj_list *list) - { - struct nftnl_obj *r, *tmp; - -@@ -519,34 +495,29 @@ void nftnl_obj_list_free(struct nftnl_obj_list *list) - } - xfree(list); - } --EXPORT_SYMBOL(nftnl_obj_list_free); - --int nftnl_obj_list_is_empty(struct nftnl_obj_list *list) -+int __EXPORTED nftnl_obj_list_is_empty(struct nftnl_obj_list *list) - { - return list_empty(&list->list); - } --EXPORT_SYMBOL(nftnl_obj_list_is_empty); - --void nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list) -+void __EXPORTED nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list) - { - list_add(&r->head, &list->list); - } --EXPORT_SYMBOL(nftnl_obj_list_add); - --void nftnl_obj_list_add_tail(struct nftnl_obj *r, -+void __EXPORTED nftnl_obj_list_add_tail(struct nftnl_obj *r, - struct nftnl_obj_list *list) - { - list_add_tail(&r->head, &list->list); - } --EXPORT_SYMBOL(nftnl_obj_list_add_tail); - --void nftnl_obj_list_del(struct nftnl_obj *t) -+void __EXPORTED nftnl_obj_list_del(struct nftnl_obj *t) - { - list_del(&t->head); - } --EXPORT_SYMBOL(nftnl_obj_list_del); - --int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, -+int __EXPORTED nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, - int (*cb)(struct nftnl_obj *t, void *data), - void *data) - { -@@ -560,14 +531,13 @@ int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, - } - return 0; - } --EXPORT_SYMBOL(nftnl_obj_list_foreach); - - struct nftnl_obj_list_iter { - struct nftnl_obj_list *list; - struct nftnl_obj *cur; - }; - --struct nftnl_obj_list_iter * -+struct nftnl_obj_list_iter __EXPORTED * - nftnl_obj_list_iter_create(struct nftnl_obj_list *l) - { - struct nftnl_obj_list_iter *iter; -@@ -584,9 +554,8 @@ nftnl_obj_list_iter_create(struct nftnl_obj_list *l) - - return iter; - } --EXPORT_SYMBOL(nftnl_obj_list_iter_create); - --struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) -+struct nftnl_obj __EXPORTED *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) - { - struct nftnl_obj *r = iter->cur; - -@@ -600,10 +569,8 @@ struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) - - return r; - } --EXPORT_SYMBOL(nftnl_obj_list_iter_next); - --void nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter) -+void __EXPORTED nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter) - { - xfree(iter); - } --EXPORT_SYMBOL(nftnl_obj_list_iter_destroy); -diff --git a/src/rule.c b/src/rule.c -index 6c22141..ad8609f 100644 ---- a/src/rule.c -+++ b/src/rule.c -@@ -52,7 +52,7 @@ struct nftnl_rule { - struct list_head expr_list; - }; - --struct nftnl_rule *nftnl_rule_alloc(void) -+struct nftnl_rule __EXPORTED *nftnl_rule_alloc(void) - { - struct nftnl_rule *r; - -@@ -64,9 +64,8 @@ struct nftnl_rule *nftnl_rule_alloc(void) - - return r; - } --EXPORT_SYMBOL(nftnl_rule_alloc); - --void nftnl_rule_free(const struct nftnl_rule *r) -+void __EXPORTED nftnl_rule_free(const struct nftnl_rule *r) - { - struct nftnl_expr *e, *tmp; - -@@ -82,15 +81,13 @@ void nftnl_rule_free(const struct nftnl_rule *r) - - xfree(r); - } --EXPORT_SYMBOL(nftnl_rule_free); - --bool nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr) -+bool __EXPORTED nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr) - { - return r->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_rule_is_set); - --void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) -+void __EXPORTED nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) - { - if (!(r->flags & (1 << attr))) - return; -@@ -116,7 +113,6 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) - - r->flags &= ~(1 << attr); - } --EXPORT_SYMBOL(nftnl_rule_unset); - - static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = { - [NFTNL_RULE_HANDLE] = sizeof(uint64_t), -@@ -127,7 +123,7 @@ static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = { - [NFTNL_RULE_ID] = sizeof(uint32_t), - }; - --int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, -+int __EXPORTED nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, - const void *data, uint32_t data_len) - { - nftnl_assert_attr_exists(attr, NFTNL_RULE_MAX); -@@ -183,33 +179,28 @@ int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, - r->flags |= (1 << attr); - return 0; - } --EXPORT_SYMBOL(nftnl_rule_set_data); - --int nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data) -+int __EXPORTED nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data) - { - return nftnl_rule_set_data(r, attr, data, nftnl_rule_validate[attr]); - } --EXPORT_SYMBOL(nftnl_rule_set); - --void nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val) -+void __EXPORTED nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val) - { - nftnl_rule_set_data(r, attr, &val, sizeof(uint32_t)); - } --EXPORT_SYMBOL(nftnl_rule_set_u32); - --void nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val) -+void __EXPORTED nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val) - { - nftnl_rule_set_data(r, attr, &val, sizeof(uint64_t)); - } --EXPORT_SYMBOL(nftnl_rule_set_u64); - --int nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str) -+int __EXPORTED nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str) - { - return nftnl_rule_set_data(r, attr, str, strlen(str) + 1); - } --EXPORT_SYMBOL(nftnl_rule_set_str); - --const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, -+const void __EXPORTED *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, - uint32_t *data_len) - { - if (!(r->flags & (1 << attr))) -@@ -246,22 +237,19 @@ const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, - } - return NULL; - } --EXPORT_SYMBOL(nftnl_rule_get_data); - --const void *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr) -+const void __EXPORTED *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr) - { - uint32_t data_len; - return nftnl_rule_get_data(r, attr, &data_len); - } --EXPORT_SYMBOL(nftnl_rule_get); - --const char *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr) -+const char __EXPORTED *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr) - { - return nftnl_rule_get(r, attr); - } --EXPORT_SYMBOL(nftnl_rule_get_str); - --uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) -+uint32_t __EXPORTED nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) - { - uint32_t data_len; - const uint32_t *val = nftnl_rule_get_data(r, attr, &data_len); -@@ -270,9 +258,8 @@ uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_rule_get_u32); - --uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) -+uint64_t __EXPORTED nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) - { - uint32_t data_len; - const uint64_t *val = nftnl_rule_get_data(r, attr, &data_len); -@@ -281,9 +268,8 @@ uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_rule_get_u64); - --uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) -+uint8_t __EXPORTED nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) - { - uint32_t data_len; - const uint8_t *val = nftnl_rule_get_data(r, attr, &data_len); -@@ -292,9 +278,8 @@ uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_rule_get_u8); - --void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) -+void __EXPORTED nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) - { - struct nftnl_expr *expr; - struct nlattr *nest, *nest2; -@@ -335,13 +320,11 @@ void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) - if (r->flags & (1 << NFTNL_RULE_ID)) - mnl_attr_put_u32(nlh, NFTA_RULE_ID, htonl(r->id)); - } --EXPORT_SYMBOL(nftnl_rule_nlmsg_build_payload); - --void nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr) -+void __EXPORTED nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr) - { - list_add_tail(&expr->head, &r->expr_list); - } --EXPORT_SYMBOL(nftnl_rule_add_expr); - - static int nftnl_rule_parse_attr_cb(const struct nlattr *attr, void *data) - { -@@ -441,7 +424,7 @@ static int nftnl_rule_parse_compat(struct nlattr *nest, struct nftnl_rule *r) - return 0; - } - --int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) -+int __EXPORTED nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) - { - struct nlattr *tb[NFTA_RULE_MAX+1] = {}; - struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); -@@ -510,7 +493,6 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) - - return 0; - } --EXPORT_SYMBOL(nftnl_rule_nlmsg_parse); - - #ifdef JSON_PARSING - int nftnl_jansson_parse_rule(struct nftnl_rule *r, json_t *tree, -@@ -658,19 +640,17 @@ static int nftnl_rule_do_parse(struct nftnl_rule *r, enum nftnl_parse_type type, - - return ret; - } --int nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type, -+int __EXPORTED nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type, - const char *data, struct nftnl_parse_err *err) - { - return nftnl_rule_do_parse(r, type, data, err, NFTNL_PARSE_BUFFER); - } --EXPORT_SYMBOL(nftnl_rule_parse); - --int nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type, -+int __EXPORTED nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type, - FILE *fp, struct nftnl_parse_err *err) - { - return nftnl_rule_do_parse(r, type, fp, err, NFTNL_PARSE_FILE); - } --EXPORT_SYMBOL(nftnl_rule_parse_file); - - static int nftnl_rule_export(char *buf, size_t size, - const struct nftnl_rule *r, -@@ -819,13 +799,12 @@ static int nftnl_rule_cmd_snprintf(char *buf, size_t size, - return offset; - } - --int nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r, -+int __EXPORTED nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r, - uint32_t type, uint32_t flags) - { - return nftnl_rule_cmd_snprintf(buf, size, r, nftnl_flag2cmd(flags), type, - flags); - } --EXPORT_SYMBOL(nftnl_rule_snprintf); - - static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r, - uint32_t cmd, uint32_t type, uint32_t flags) -@@ -833,15 +812,14 @@ static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r, - return nftnl_rule_snprintf(buf, size, r, type, flags); - } - --int nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type, -+int __EXPORTED nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type, - uint32_t flags) - { - return nftnl_fprintf(fp, r, NFTNL_CMD_UNSPEC, type, flags, - nftnl_rule_do_snprintf); - } --EXPORT_SYMBOL(nftnl_rule_fprintf); - --int nftnl_expr_foreach(struct nftnl_rule *r, -+int __EXPORTED nftnl_expr_foreach(struct nftnl_rule *r, - int (*cb)(struct nftnl_expr *e, void *data), - void *data) - { -@@ -855,7 +833,6 @@ int nftnl_expr_foreach(struct nftnl_rule *r, - } - return 0; - } --EXPORT_SYMBOL(nftnl_expr_foreach); - - struct nftnl_expr_iter { - const struct nftnl_rule *r; -@@ -873,7 +850,7 @@ static void nftnl_expr_iter_init(const struct nftnl_rule *r, - head); - } - --struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r) -+struct nftnl_expr_iter __EXPORTED *nftnl_expr_iter_create(const struct nftnl_rule *r) - { - struct nftnl_expr_iter *iter; - -@@ -885,9 +862,8 @@ struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r) - - return iter; - } --EXPORT_SYMBOL(nftnl_expr_iter_create); - --struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) -+struct nftnl_expr __EXPORTED *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) - { - struct nftnl_expr *expr = iter->cur; - -@@ -901,15 +877,13 @@ struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) - - return expr; - } --EXPORT_SYMBOL(nftnl_expr_iter_next); - --void nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter) -+void __EXPORTED nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter) - { - xfree(iter); - } --EXPORT_SYMBOL(nftnl_expr_iter_destroy); - --bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) -+bool __EXPORTED nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) - { - struct nftnl_expr_iter it1, it2; - struct nftnl_expr *e1, *e2; -@@ -938,13 +912,12 @@ bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) - - return eq; - } --EXPORT_SYMBOL(nftnl_rule_cmp); - - struct nftnl_rule_list { - struct list_head list; - }; - --struct nftnl_rule_list *nftnl_rule_list_alloc(void) -+struct nftnl_rule_list __EXPORTED *nftnl_rule_list_alloc(void) - { - struct nftnl_rule_list *list; - -@@ -956,9 +929,8 @@ struct nftnl_rule_list *nftnl_rule_list_alloc(void) - - return list; - } --EXPORT_SYMBOL(nftnl_rule_list_alloc); - --void nftnl_rule_list_free(struct nftnl_rule_list *list) -+void __EXPORTED nftnl_rule_list_free(struct nftnl_rule_list *list) - { - struct nftnl_rule *r, *tmp; - -@@ -968,33 +940,28 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list) - } - xfree(list); - } --EXPORT_SYMBOL(nftnl_rule_list_free); - --int nftnl_rule_list_is_empty(const struct nftnl_rule_list *list) -+int __EXPORTED nftnl_rule_list_is_empty(const struct nftnl_rule_list *list) - { - return list_empty(&list->list); - } --EXPORT_SYMBOL(nftnl_rule_list_is_empty); - --void nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list) -+void __EXPORTED nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list) - { - list_add(&r->head, &list->list); - } --EXPORT_SYMBOL(nftnl_rule_list_add); - --void nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list) -+void __EXPORTED nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list) - { - list_add_tail(&r->head, &list->list); - } --EXPORT_SYMBOL(nftnl_rule_list_add_tail); - --void nftnl_rule_list_del(struct nftnl_rule *r) -+void __EXPORTED nftnl_rule_list_del(struct nftnl_rule *r) - { - list_del(&r->head); - } --EXPORT_SYMBOL(nftnl_rule_list_del); - --int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, -+int __EXPORTED nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, - int (*cb)(struct nftnl_rule *r, void *data), - void *data) - { -@@ -1008,14 +975,13 @@ int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, - } - return 0; - } --EXPORT_SYMBOL(nftnl_rule_list_foreach); - - struct nftnl_rule_list_iter { - const struct nftnl_rule_list *list; - struct nftnl_rule *cur; - }; - --struct nftnl_rule_list_iter * -+struct nftnl_rule_list_iter __EXPORTED * - nftnl_rule_list_iter_create(const struct nftnl_rule_list *l) - { - struct nftnl_rule_list_iter *iter; -@@ -1032,15 +998,13 @@ nftnl_rule_list_iter_create(const struct nftnl_rule_list *l) - - return iter; - } --EXPORT_SYMBOL(nftnl_rule_list_iter_create); - --struct nftnl_rule *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter) -+struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter) - { - return iter->cur; - } --EXPORT_SYMBOL(nftnl_rule_list_iter_cur); - --struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) -+struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) - { - struct nftnl_rule *r = iter->cur; - -@@ -1054,10 +1018,8 @@ struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) - - return r; - } --EXPORT_SYMBOL(nftnl_rule_list_iter_next); - --void nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter) -+void __EXPORTED nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter) - { - xfree(iter); - } --EXPORT_SYMBOL(nftnl_rule_list_iter_destroy); -diff --git a/src/ruleset.c b/src/ruleset.c -index 6ef2956..10d48f6 100644 ---- a/src/ruleset.c -+++ b/src/ruleset.c -@@ -55,13 +55,12 @@ struct nftnl_parse_ctx { - uint16_t flags; - }; - --struct nftnl_ruleset *nftnl_ruleset_alloc(void) -+struct nftnl_ruleset __EXPORTED *nftnl_ruleset_alloc(void) - { - return calloc(1, sizeof(struct nftnl_ruleset)); - } --EXPORT_SYMBOL(nftnl_ruleset_alloc); - --void nftnl_ruleset_free(const struct nftnl_ruleset *r) -+void __EXPORTED nftnl_ruleset_free(const struct nftnl_ruleset *r) - { - if (r->flags & (1 << NFTNL_RULESET_TABLELIST)) - nftnl_table_list_free(r->table_list); -@@ -73,15 +72,13 @@ void nftnl_ruleset_free(const struct nftnl_ruleset *r) - nftnl_rule_list_free(r->rule_list); - xfree(r); - } --EXPORT_SYMBOL(nftnl_ruleset_free); - --bool nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr) -+bool __EXPORTED nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr) - { - return r->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_ruleset_is_set); - --void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) -+void __EXPORTED nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) - { - if (!(r->flags & (1 << attr))) - return; -@@ -102,9 +99,8 @@ void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) - } - r->flags &= ~(1 << attr); - } --EXPORT_SYMBOL(nftnl_ruleset_unset); - --void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) -+void __EXPORTED nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) - { - switch (attr) { - case NFTNL_RULESET_TABLELIST: -@@ -128,9 +124,8 @@ void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) - } - r->flags |= (1 << attr); - } --EXPORT_SYMBOL(nftnl_ruleset_set); - --void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) -+void __EXPORTED *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) - { - if (!(r->flags & (1 << attr))) - return NULL; -@@ -148,9 +143,8 @@ void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) - return NULL; - } - } --EXPORT_SYMBOL(nftnl_ruleset_get); - --void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) -+void __EXPORTED nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) - { - switch (ctx->type) { - case NFTNL_RULESET_TABLE: -@@ -171,15 +165,13 @@ void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) - break; - } - } --EXPORT_SYMBOL(nftnl_ruleset_ctx_free); - --bool nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr) -+bool __EXPORTED nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr) - { - return ctx->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_ruleset_ctx_is_set); - --void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) -+void __EXPORTED *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) - { - if (!(ctx->flags & (1 << attr))) - return NULL; -@@ -203,14 +195,12 @@ void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) - return NULL; - } - } --EXPORT_SYMBOL(nftnl_ruleset_ctx_get); - --uint32_t nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr) -+uint32_t __EXPORTED nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr) - { - const void *ret = nftnl_ruleset_ctx_get(ctx, attr); - return ret == NULL ? 0 : *((uint32_t *)ret); - } --EXPORT_SYMBOL(nftnl_ruleset_ctx_get_u32); - - #if defined(JSON_PARSING) - static void nftnl_ruleset_ctx_set(struct nftnl_parse_ctx *ctx, uint16_t attr, -@@ -593,22 +583,20 @@ nftnl_ruleset_do_parse(enum nftnl_parse_type type, const void *data, - return ret; - } - --int nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp, -+int __EXPORTED nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp, - struct nftnl_parse_err *err, void *data, - int (*cb)(const struct nftnl_parse_ctx *ctx)) - { - return nftnl_ruleset_do_parse(type, fp, err, NFTNL_PARSE_FILE, data, cb); - } --EXPORT_SYMBOL(nftnl_ruleset_parse_file_cb); - --int nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer, -+int __EXPORTED nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer, - struct nftnl_parse_err *err, void *data, - int (*cb)(const struct nftnl_parse_ctx *ctx)) - { - return nftnl_ruleset_do_parse(type, buffer, err, NFTNL_PARSE_BUFFER, data, - cb); - } --EXPORT_SYMBOL(nftnl_ruleset_parse_buffer_cb); - - static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx) - { -@@ -671,19 +659,17 @@ static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx) - return 0; - } - --int nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type, -+int __EXPORTED nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type, - const char *data, struct nftnl_parse_err *err) - { - return nftnl_ruleset_parse_buffer_cb(type, data, err, r, nftnl_ruleset_cb); - } --EXPORT_SYMBOL(nftnl_ruleset_parse); - --int nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type, -+int __EXPORTED nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type, - FILE *fp, struct nftnl_parse_err *err) - { - return nftnl_ruleset_parse_file_cb(type, fp, err, rs, nftnl_ruleset_cb); - } --EXPORT_SYMBOL(nftnl_ruleset_parse_file); - - static const char *nftnl_ruleset_o_opentag(uint32_t type) - { -@@ -928,7 +914,7 @@ static int nftnl_ruleset_cmd_snprintf(char *buf, size_t size, - } - } - --int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r, -+int __EXPORTED nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r, - uint32_t type, uint32_t flags) - { - switch (type) { -@@ -943,7 +929,6 @@ int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r - return -1; - } - } --EXPORT_SYMBOL(nftnl_ruleset_snprintf); - - static int nftnl_ruleset_fprintf_tables(FILE *fp, const struct nftnl_ruleset *rs, - uint32_t type, uint32_t flags) -@@ -1157,10 +1142,9 @@ static int nftnl_ruleset_cmd_fprintf(FILE *fp, const struct nftnl_ruleset *rs, - return len; - } - --int nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type, -+int __EXPORTED nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type, - uint32_t flags) - { - return nftnl_ruleset_cmd_fprintf(fp, rs, nftnl_flag2cmd(flags), type, - flags); - } --EXPORT_SYMBOL(nftnl_ruleset_fprintf); -diff --git a/src/set.c b/src/set.c -index cce5e63..33a6794 100644 ---- a/src/set.c -+++ b/src/set.c -@@ -27,7 +27,7 @@ - #include <libnftnl/set.h> - #include <libnftnl/expr.h> - --struct nftnl_set *nftnl_set_alloc(void) -+struct nftnl_set __EXPORTED *nftnl_set_alloc(void) - { - struct nftnl_set *s; - -@@ -38,9 +38,8 @@ struct nftnl_set *nftnl_set_alloc(void) - INIT_LIST_HEAD(&s->element_list); - return s; - } --EXPORT_SYMBOL(nftnl_set_alloc); - --void nftnl_set_free(const struct nftnl_set *s) -+void __EXPORTED nftnl_set_free(const struct nftnl_set *s) - { - struct nftnl_set_elem *elem, *tmp; - -@@ -55,15 +54,13 @@ void nftnl_set_free(const struct nftnl_set *s) - } - xfree(s); - } --EXPORT_SYMBOL(nftnl_set_free); - --bool nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr) -+bool __EXPORTED nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr) - { - return s->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_set_is_set); - --void nftnl_set_unset(struct nftnl_set *s, uint16_t attr) -+void __EXPORTED nftnl_set_unset(struct nftnl_set *s, uint16_t attr) - { - if (!(s->flags & (1 << attr))) - return; -@@ -97,7 +94,6 @@ void nftnl_set_unset(struct nftnl_set *s, uint16_t attr) - - s->flags &= ~(1 << attr); - } --EXPORT_SYMBOL(nftnl_set_unset); - - static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = { - [NFTNL_SET_FLAGS] = sizeof(uint32_t), -@@ -113,7 +109,7 @@ static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = { - [NFTNL_SET_GC_INTERVAL] = sizeof(uint32_t), - }; - --int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, -+int __EXPORTED nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, - uint32_t data_len) - { - nftnl_assert_attr_exists(attr, NFTNL_SET_MAX); -@@ -186,33 +182,28 @@ int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, - s->flags |= (1 << attr); - return 0; - } --EXPORT_SYMBOL(nftnl_set_set_data); - --int nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data) -+int __EXPORTED nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data) - { - return nftnl_set_set_data(s, attr, data, nftnl_set_validate[attr]); - } --EXPORT_SYMBOL(nftnl_set_set); - --void nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val) -+void __EXPORTED nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val) - { - nftnl_set_set(s, attr, &val); - } --EXPORT_SYMBOL(nftnl_set_set_u32); - --void nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val) -+void __EXPORTED nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val) - { - nftnl_set_set(s, attr, &val); - } --EXPORT_SYMBOL(nftnl_set_set_u64); - --int nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str) -+int __EXPORTED nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str) - { - return nftnl_set_set_data(s, attr, str, strlen(str) + 1); - } --EXPORT_SYMBOL(nftnl_set_set_str); - --const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, -+const void __EXPORTED *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, - uint32_t *data_len) - { - if (!(s->flags & (1 << attr))) -@@ -267,22 +258,19 @@ const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, - } - return NULL; - } --EXPORT_SYMBOL(nftnl_set_get_data); - --const void *nftnl_set_get(const struct nftnl_set *s, uint16_t attr) -+const void __EXPORTED *nftnl_set_get(const struct nftnl_set *s, uint16_t attr) - { - uint32_t data_len; - return nftnl_set_get_data(s, attr, &data_len); - } --EXPORT_SYMBOL(nftnl_set_get); - --const char *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr) -+const char __EXPORTED *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr) - { - return nftnl_set_get(s, attr); - } --EXPORT_SYMBOL(nftnl_set_get_str); - --uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) -+uint32_t __EXPORTED nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) - { - uint32_t data_len; - const uint32_t *val = nftnl_set_get_data(s, attr, &data_len); -@@ -291,9 +279,8 @@ uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_set_get_u32); - --uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) -+uint64_t __EXPORTED nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) - { - uint32_t data_len; - const uint64_t *val = nftnl_set_get_data(s, attr, &data_len); -@@ -302,7 +289,6 @@ uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) - - return val ? *val : 0; - } --EXPORT_SYMBOL(nftnl_set_get_u64); - - struct nftnl_set *nftnl_set_clone(const struct nftnl_set *set) - { -@@ -351,7 +337,7 @@ nftnl_set_nlmsg_build_desc_payload(struct nlmsghdr *nlh, struct nftnl_set *s) - mnl_attr_nest_end(nlh, nest); - } - --void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) -+void __EXPORTED nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) - { - if (s->flags & (1 << NFTNL_SET_TABLE)) - mnl_attr_put_strz(nlh, NFTA_SET_TABLE, s->table); -@@ -383,7 +369,6 @@ void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) - if (s->flags & (1 << NFTNL_SET_USERDATA)) - mnl_attr_put(nlh, NFTA_SET_USERDATA, s->user.len, s->user.data); - } --EXPORT_SYMBOL(nftnl_set_nlmsg_build_payload); - - static int nftnl_set_parse_attr_cb(const struct nlattr *attr, void *data) - { -@@ -463,7 +448,7 @@ static int nftnl_set_desc_parse(struct nftnl_set *s, - return 0; - } - --int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) -+int __EXPORTED nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) - { - struct nlattr *tb[NFTA_SET_MAX+1] = {}; - struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); -@@ -546,7 +531,6 @@ int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) - - return 0; - } --EXPORT_SYMBOL(nftnl_set_nlmsg_parse); - - #ifdef JSON_PARSING - static int nftnl_jansson_parse_set_info(struct nftnl_set *s, json_t *tree, -@@ -718,19 +702,17 @@ static int nftnl_set_do_parse(struct nftnl_set *s, enum nftnl_parse_type type, - - return ret; - } --int nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type, -+int __EXPORTED nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type, - const char *data, struct nftnl_parse_err *err) - { - return nftnl_set_do_parse(s, type, data, err, NFTNL_PARSE_BUFFER); - } --EXPORT_SYMBOL(nftnl_set_parse); - --int nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type, -+int __EXPORTED nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type, - FILE *fp, struct nftnl_parse_err *err) - { - return nftnl_set_do_parse(s, type, fp, err, NFTNL_PARSE_FILE); - } --EXPORT_SYMBOL(nftnl_set_parse_file); - - static int nftnl_set_snprintf_json(char *buf, size_t size, - const struct nftnl_set *s, -@@ -918,13 +900,12 @@ static int nftnl_set_cmd_snprintf(char *buf, size_t size, - return offset; - } - --int nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s, -+int __EXPORTED nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s, - uint32_t type, uint32_t flags) - { - return nftnl_set_cmd_snprintf(buf, size, s, nftnl_flag2cmd(flags), type, - flags); - } --EXPORT_SYMBOL(nftnl_set_snprintf); - - static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s, - uint32_t cmd, uint32_t type, uint32_t flags) -@@ -932,25 +913,23 @@ static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s, - return nftnl_set_snprintf(buf, size, s, type, flags); - } - --int nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type, -+int __EXPORTED nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type, - uint32_t flags) - { - return nftnl_fprintf(fp, s, NFTNL_CMD_UNSPEC, type, flags, - nftnl_set_do_snprintf); - } --EXPORT_SYMBOL(nftnl_set_fprintf); - --void nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem) -+void __EXPORTED nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem) - { - list_add_tail(&elem->head, &s->element_list); - } --EXPORT_SYMBOL(nftnl_set_elem_add); - - struct nftnl_set_list { - struct list_head list; - }; - --struct nftnl_set_list *nftnl_set_list_alloc(void) -+struct nftnl_set_list __EXPORTED *nftnl_set_list_alloc(void) - { - struct nftnl_set_list *list; - -@@ -962,9 +941,8 @@ struct nftnl_set_list *nftnl_set_list_alloc(void) - - return list; - } --EXPORT_SYMBOL(nftnl_set_list_alloc); - --void nftnl_set_list_free(struct nftnl_set_list *list) -+void __EXPORTED nftnl_set_list_free(struct nftnl_set_list *list) - { - struct nftnl_set *s, *tmp; - -@@ -974,33 +952,28 @@ void nftnl_set_list_free(struct nftnl_set_list *list) - } - xfree(list); - } --EXPORT_SYMBOL(nftnl_set_list_free); - --int nftnl_set_list_is_empty(const struct nftnl_set_list *list) -+int __EXPORTED nftnl_set_list_is_empty(const struct nftnl_set_list *list) - { - return list_empty(&list->list); - } --EXPORT_SYMBOL(nftnl_set_list_is_empty); - --void nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list) -+void __EXPORTED nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list) - { - list_add(&s->head, &list->list); - } --EXPORT_SYMBOL(nftnl_set_list_add); - --void nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list) -+void __EXPORTED nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list) - { - list_add_tail(&s->head, &list->list); - } --EXPORT_SYMBOL(nftnl_set_list_add_tail); - --void nftnl_set_list_del(struct nftnl_set *s) -+void __EXPORTED nftnl_set_list_del(struct nftnl_set *s) - { - list_del(&s->head); - } --EXPORT_SYMBOL(nftnl_set_list_del); - --int nftnl_set_list_foreach(struct nftnl_set_list *set_list, -+int __EXPORTED nftnl_set_list_foreach(struct nftnl_set_list *set_list, - int (*cb)(struct nftnl_set *t, void *data), void *data) - { - struct nftnl_set *cur, *tmp; -@@ -1013,14 +986,13 @@ int nftnl_set_list_foreach(struct nftnl_set_list *set_list, - } - return 0; - } --EXPORT_SYMBOL(nftnl_set_list_foreach); - - struct nftnl_set_list_iter { - const struct nftnl_set_list *list; - struct nftnl_set *cur; - }; - --struct nftnl_set_list_iter * -+struct nftnl_set_list_iter __EXPORTED * - nftnl_set_list_iter_create(const struct nftnl_set_list *l) - { - struct nftnl_set_list_iter *iter; -@@ -1037,16 +1009,14 @@ nftnl_set_list_iter_create(const struct nftnl_set_list *l) - - return iter; - } --EXPORT_SYMBOL(nftnl_set_list_iter_create); - --struct nftnl_set * -+struct nftnl_set __EXPORTED * - nftnl_set_list_iter_cur(const struct nftnl_set_list_iter *iter) - { - return iter->cur; - } --EXPORT_SYMBOL(nftnl_set_list_iter_cur); - --struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) -+struct nftnl_set __EXPORTED *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) - { - struct nftnl_set *s = iter->cur; - -@@ -1060,13 +1030,11 @@ struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) - - return s; - } --EXPORT_SYMBOL(nftnl_set_list_iter_next); - --void nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter) -+void __EXPORTED nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter) - { - xfree(iter); - } --EXPORT_SYMBOL(nftnl_set_list_iter_destroy); - - static struct nftnl_set *nftnl_set_lookup(const char *this_set_name, - struct nftnl_set_list *set_list) -diff --git a/src/set_elem.c b/src/set_elem.c -index 433b896..bd1e895 100644 ---- a/src/set_elem.c -+++ b/src/set_elem.c -@@ -27,7 +27,7 @@ - #include <libnftnl/rule.h> - #include <libnftnl/expr.h> - --struct nftnl_set_elem *nftnl_set_elem_alloc(void) -+struct nftnl_set_elem __EXPORTED *nftnl_set_elem_alloc(void) - { - struct nftnl_set_elem *s; - -@@ -37,9 +37,8 @@ struct nftnl_set_elem *nftnl_set_elem_alloc(void) - - return s; - } --EXPORT_SYMBOL(nftnl_set_elem_alloc); - --void nftnl_set_elem_free(struct nftnl_set_elem *s) -+void __EXPORTED nftnl_set_elem_free(struct nftnl_set_elem *s) - { - if (s->flags & (1 << NFTNL_SET_ELEM_CHAIN)) - xfree(s->data.chain); -@@ -55,15 +54,13 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s) - - xfree(s); - } --EXPORT_SYMBOL(nftnl_set_elem_free); - --bool nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr) -+bool __EXPORTED nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr) - { - return s->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_set_elem_is_set); - --void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) -+void __EXPORTED nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) - { - if (!(s->flags & (1 << attr))) - return; -@@ -94,9 +91,8 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) - - s->flags &= ~(1 << attr); - } --EXPORT_SYMBOL(nftnl_set_elem_unset); - --int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, -+int __EXPORTED nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, - const void *data, uint32_t data_len) - { - switch(attr) { -@@ -147,27 +143,23 @@ int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, - s->flags |= (1 << attr); - return -1; - } --EXPORT_SYMBOL(nftnl_set_elem_set); - --void nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val) -+void __EXPORTED nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val) - { - nftnl_set_elem_set(s, attr, &val, sizeof(uint32_t)); - } --EXPORT_SYMBOL(nftnl_set_elem_set_u32); - --void nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val) -+void __EXPORTED nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val) - { - nftnl_set_elem_set(s, attr, &val, sizeof(uint64_t)); - } --EXPORT_SYMBOL(nftnl_set_elem_set_u64); - --int nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str) -+int __EXPORTED nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str) - { - return nftnl_set_elem_set(s, attr, str, strlen(str) + 1); - } --EXPORT_SYMBOL(nftnl_set_elem_set_str); - --const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len) -+const void __EXPORTED *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len) - { - if (!(s->flags & (1 << attr))) - return NULL; -@@ -205,31 +197,27 @@ const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t - } - return NULL; - } --EXPORT_SYMBOL(nftnl_set_elem_get); - --const char *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr) -+const char __EXPORTED *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr) - { - uint32_t size; - - return nftnl_set_elem_get(s, attr, &size); - } --EXPORT_SYMBOL(nftnl_set_elem_get_str); - --uint32_t nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr) -+uint32_t __EXPORTED nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr) - { - uint32_t size; - uint32_t val = *((uint32_t *)nftnl_set_elem_get(s, attr, &size)); - return val; - } --EXPORT_SYMBOL(nftnl_set_elem_get_u32); - --uint64_t nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr) -+uint64_t __EXPORTED nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr) - { - uint32_t size; - uint64_t val = *((uint64_t *)nftnl_set_elem_get(s, attr, &size)); - return val; - } --EXPORT_SYMBOL(nftnl_set_elem_get_u64); - - struct nftnl_set_elem *nftnl_set_elem_clone(struct nftnl_set_elem *elem) - { -@@ -315,7 +303,7 @@ static struct nlattr *nftnl_set_elem_build(struct nlmsghdr *nlh, - return nest2; - } - --void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) -+void __EXPORTED nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) - { - struct nftnl_set_elem *elem; - struct nlattr *nest1; -@@ -332,7 +320,6 @@ void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set - - mnl_attr_nest_end(nlh, nest1); - } --EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload); - - static int nftnl_set_elem_parse_attr_cb(const struct nlattr *attr, void *data) - { -@@ -503,7 +490,7 @@ static int nftnl_set_elems_parse(struct nftnl_set *s, const struct nlattr *nest) - return ret; - } - --int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) -+int __EXPORTED nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) - { - struct nlattr *tb[NFTA_SET_ELEM_LIST_MAX+1] = {}; - struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); -@@ -546,7 +533,6 @@ int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) - - return 0; - } --EXPORT_SYMBOL(nftnl_set_elems_nlmsg_parse); - - static int nftnl_set_elem_json_parse(struct nftnl_set_elem *e, const void *json, - struct nftnl_parse_err *err, -@@ -587,19 +573,17 @@ nftnl_set_elem_do_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, - - return ret; - } --int nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, -+int __EXPORTED nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, - const char *data, struct nftnl_parse_err *err) - { - return nftnl_set_elem_do_parse(e, type, data, err, NFTNL_PARSE_BUFFER); - } --EXPORT_SYMBOL(nftnl_set_elem_parse); - --int nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type, -+int __EXPORTED nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type, - FILE *fp, struct nftnl_parse_err *err) - { - return nftnl_set_elem_do_parse(e, type, fp, err, NFTNL_PARSE_FILE); - } --EXPORT_SYMBOL(nftnl_set_elem_parse_file); - - static int nftnl_set_elem_snprintf_json(char *buf, size_t size, - const struct nftnl_set_elem *e, -@@ -719,14 +703,13 @@ static int nftnl_set_elem_cmd_snprintf(char *buf, size_t size, - return offset; - } - --int nftnl_set_elem_snprintf(char *buf, size_t size, -+int __EXPORTED nftnl_set_elem_snprintf(char *buf, size_t size, - const struct nftnl_set_elem *e, - uint32_t type, uint32_t flags) - { - return nftnl_set_elem_cmd_snprintf(buf, size, e, nftnl_flag2cmd(flags), - type, flags); - } --EXPORT_SYMBOL(nftnl_set_elem_snprintf); - - static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e, - uint32_t cmd, uint32_t type, -@@ -735,15 +718,14 @@ static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e, - return nftnl_set_elem_snprintf(buf, size, e, type, flags); - } - --int nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type, -+int __EXPORTED nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type, - uint32_t flags) - { - return nftnl_fprintf(fp, se, NFTNL_CMD_UNSPEC, type, flags, - nftnl_set_elem_do_snprintf); - } --EXPORT_SYMBOL(nftnl_set_elem_fprintf); - --int nftnl_set_elem_foreach(struct nftnl_set *s, -+int __EXPORTED nftnl_set_elem_foreach(struct nftnl_set *s, - int (*cb)(struct nftnl_set_elem *e, void *data), - void *data) - { -@@ -757,7 +739,6 @@ int nftnl_set_elem_foreach(struct nftnl_set *s, - } - return 0; - } --EXPORT_SYMBOL(nftnl_set_elem_foreach); - - struct nftnl_set_elems_iter { - const struct nftnl_set *set; -@@ -765,7 +746,7 @@ struct nftnl_set_elems_iter { - struct nftnl_set_elem *cur; - }; - --struct nftnl_set_elems_iter * -+struct nftnl_set_elems_iter __EXPORTED * - nftnl_set_elems_iter_create(const struct nftnl_set *s) - { - struct nftnl_set_elems_iter *iter; -@@ -784,16 +765,14 @@ nftnl_set_elems_iter_create(const struct nftnl_set *s) - - return iter; - } --EXPORT_SYMBOL(nftnl_set_elems_iter_create); - --struct nftnl_set_elem * -+struct nftnl_set_elem __EXPORTED * - nftnl_set_elems_iter_cur(const struct nftnl_set_elems_iter *iter) - { - return iter->cur; - } --EXPORT_SYMBOL(nftnl_set_elems_iter_cur); - --struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter) -+struct nftnl_set_elem __EXPORTED *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter) - { - struct nftnl_set_elem *s = iter->cur; - -@@ -806,13 +785,11 @@ struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *it - - return s; - } --EXPORT_SYMBOL(nftnl_set_elems_iter_next); - --void nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter) -+void __EXPORTED nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter) - { - xfree(iter); - } --EXPORT_SYMBOL(nftnl_set_elems_iter_destroy); - - static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh, - const struct nlattr *from, -@@ -831,7 +808,7 @@ static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh, - return false; - } - --int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, -+int __EXPORTED nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, - struct nftnl_set_elems_iter *iter) - { - struct nftnl_set_elem *elem; -@@ -861,4 +838,3 @@ int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, - - return ret; - } --EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload_iter); -diff --git a/src/table.c b/src/table.c -index a7d5a8f..0e99f3c 100644 ---- a/src/table.c -+++ b/src/table.c -@@ -36,28 +36,25 @@ struct nftnl_table { - uint32_t flags; - }; - --struct nftnl_table *nftnl_table_alloc(void) -+struct nftnl_table __EXPORTED *nftnl_table_alloc(void) - { - return calloc(1, sizeof(struct nftnl_table)); - } --EXPORT_SYMBOL(nftnl_table_alloc); - --void nftnl_table_free(const struct nftnl_table *t) -+void __EXPORTED nftnl_table_free(const struct nftnl_table *t) - { - if (t->flags & (1 << NFTNL_TABLE_NAME)) - xfree(t->name); - - xfree(t); - } --EXPORT_SYMBOL(nftnl_table_free); - --bool nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr) -+bool __EXPORTED nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr) - { - return t->flags & (1 << attr); - } --EXPORT_SYMBOL(nftnl_table_is_set); - --void nftnl_table_unset(struct nftnl_table *t, uint16_t attr) -+void __EXPORTED nftnl_table_unset(struct nftnl_table *t, uint16_t attr) - { - if (!(t->flags & (1 << attr))) - return; -@@ -74,14 +71,13 @@ void nftnl_table_unset(struct nftnl_table *t, uint16_t attr) - } - t->flags &= ~(1 << attr); - } --EXPORT_SYMBOL(nftnl_table_unset); - - static uint32_t nftnl_table_validate[NFTNL_TABLE_MAX + 1] = { - [NFTNL_TABLE_FLAGS] = sizeof(uint32_t), - [NFTNL_TABLE_FAMILY] = sizeof(uint32_t), - }; - --int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, -+int __EXPORTED nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, - const void *data, uint32_t data_len) - { - nftnl_assert_attr_exists(attr, NFTNL_TABLE_MAX); -@@ -109,33 +105,28 @@ int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, - t->flags |= (1 << attr); - return 0; - } --EXPORT_SYMBOL(nftnl_table_set_data); - --void nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data) -+void __EXPORTED nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data) - { - nftnl_table_set_data(t, attr, data, nftnl_table_validate[attr]); - } --EXPORT_SYMBOL(nftnl_table_set); - --void nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val) -+void __EXPORTED nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val) - { - nftnl_table_set_data(t, attr, &val, sizeof(uint32_t)); - } --EXPORT_SYMBOL(nftnl_table_set_u32); - --void nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val) -+void __EXPORTED nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val) - { - nftnl_table_set_data(t, attr, &val, sizeof(uint8_t)); - } --EXPORT_SYMBOL(nftnl_table_set_u8); - --int nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str) -+int __EXPORTED nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str) - { - return nftnl_table_set_data(t, attr, str, strlen(str) + 1); - } --EXPORT_SYMBOL(nftnl_table_set_str); - --const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, -+const void __EXPORTED *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, - uint32_t *data_len) - { - if (!(t->flags & (1 << attr))) -@@ -157,43 +148,37 @@ const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, - } - return NULL; - } --EXPORT_SYMBOL(nftnl_table_get_data); - --const void *nftnl_table_get(const struct nftnl_table *t, uint16_t attr) -+const void __EXPORTED *nftnl_table_get(const struct nftnl_table *t, uint16_t attr) - { - uint32_t data_len; - return nftnl_table_get_data(t, attr, &data_len); - } --EXPORT_SYMBOL(nftnl_table_get); - --uint32_t nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr) -+uint32_t __EXPORTED nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr) - { - const void *ret = nftnl_table_get(t, attr); - return ret == NULL ? 0 : *((uint32_t *)ret); - } --EXPORT_SYMBOL(nftnl_table_get_u32); - --uint8_t nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr) -+uint8_t __EXPORTED nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr) - { - const void *ret = nftnl_table_get(t, attr); - return ret == NULL ? 0 : *((uint8_t *)ret); - } --EXPORT_SYMBOL(nftnl_table_get_u8); - --const char *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr) -+const char __EXPORTED *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr) - { - return nftnl_table_get(t, attr); - } --EXPORT_SYMBOL(nftnl_table_get_str); - --void nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t) -+void __EXPORTED nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t) - { - if (t->flags & (1 << NFTNL_TABLE_NAME)) - mnl_attr_put_strz(nlh, NFTA_TABLE_NAME, t->name); - if (t->flags & (1 << NFTNL_TABLE_FLAGS)) - mnl_attr_put_u32(nlh, NFTA_TABLE_FLAGS, htonl(t->table_flags)); - } --EXPORT_SYMBOL(nftnl_table_nlmsg_build_payload); - - static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data) - { -@@ -219,7 +204,7 @@ static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data) - return MNL_CB_OK; - } - --int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) -+int __EXPORTED nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) - { - struct nlattr *tb[NFTA_TABLE_MAX+1] = {}; - struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); -@@ -249,7 +234,6 @@ int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) - - return 0; - } --EXPORT_SYMBOL(nftnl_table_nlmsg_parse); - - #ifdef JSON_PARSING - int nftnl_jansson_parse_table(struct nftnl_table *t, json_t *tree, -@@ -330,19 +314,17 @@ static int nftnl_table_do_parse(struct nftnl_table *t, enum nftnl_parse_type typ - return ret; - } - --int nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type, -+int __EXPORTED nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type, - const char *data, struct nftnl_parse_err *err) - { - return nftnl_table_do_parse(t, type, data, err, NFTNL_PARSE_BUFFER); - } --EXPORT_SYMBOL(nftnl_table_parse); - --int nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type, -+int __EXPORTED nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type, - FILE *fp, struct nftnl_parse_err *err) - { - return nftnl_table_do_parse(t, type, fp, err, NFTNL_PARSE_FILE); - } --EXPORT_SYMBOL(nftnl_table_parse_file); - - static int nftnl_table_export(char *buf, size_t size, - const struct nftnl_table *t, int type) -@@ -400,13 +382,12 @@ static int nftnl_table_cmd_snprintf(char *buf, size_t size, - return offset; - } - --int nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t, -+int __EXPORTED nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t, - uint32_t type, uint32_t flags) - { - return nftnl_table_cmd_snprintf(buf, size, t, nftnl_flag2cmd(flags), type, - flags); - } --EXPORT_SYMBOL(nftnl_table_snprintf); - - static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t, - uint32_t cmd, uint32_t type, uint32_t flags) -@@ -414,19 +395,18 @@ static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t, - return nftnl_table_snprintf(buf, size, t, type, flags); - } - --int nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type, -+int __EXPORTED nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type, - uint32_t flags) - { - return nftnl_fprintf(fp, t, NFTNL_CMD_UNSPEC, type, flags, - nftnl_table_do_snprintf); - } --EXPORT_SYMBOL(nftnl_table_fprintf); - - struct nftnl_table_list { - struct list_head list; - }; - --struct nftnl_table_list *nftnl_table_list_alloc(void) -+struct nftnl_table_list __EXPORTED *nftnl_table_list_alloc(void) - { - struct nftnl_table_list *list; - -@@ -438,9 +418,8 @@ struct nftnl_table_list *nftnl_table_list_alloc(void) - - return list; - } --EXPORT_SYMBOL(nftnl_table_list_alloc); - --void nftnl_table_list_free(struct nftnl_table_list *list) -+void __EXPORTED nftnl_table_list_free(struct nftnl_table_list *list) - { - struct nftnl_table *r, *tmp; - -@@ -450,33 +429,28 @@ void nftnl_table_list_free(struct nftnl_table_list *list) - } - xfree(list); - } --EXPORT_SYMBOL(nftnl_table_list_free); - --int nftnl_table_list_is_empty(const struct nftnl_table_list *list) -+int __EXPORTED nftnl_table_list_is_empty(const struct nftnl_table_list *list) - { - return list_empty(&list->list); - } --EXPORT_SYMBOL(nftnl_table_list_is_empty); - --void nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list) -+void __EXPORTED nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list) - { - list_add(&r->head, &list->list); - } --EXPORT_SYMBOL(nftnl_table_list_add); - --void nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list) -+void __EXPORTED nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list) - { - list_add_tail(&r->head, &list->list); - } --EXPORT_SYMBOL(nftnl_table_list_add_tail); - --void nftnl_table_list_del(struct nftnl_table *t) -+void __EXPORTED nftnl_table_list_del(struct nftnl_table *t) - { - list_del(&t->head); - } --EXPORT_SYMBOL(nftnl_table_list_del); - --int nftnl_table_list_foreach(struct nftnl_table_list *table_list, -+int __EXPORTED nftnl_table_list_foreach(struct nftnl_table_list *table_list, - int (*cb)(struct nftnl_table *t, void *data), - void *data) - { -@@ -490,14 +464,13 @@ int nftnl_table_list_foreach(struct nftnl_table_list *table_list, - } - return 0; - } --EXPORT_SYMBOL(nftnl_table_list_foreach); - - struct nftnl_table_list_iter { - const struct nftnl_table_list *list; - struct nftnl_table *cur; - }; - --struct nftnl_table_list_iter * -+struct nftnl_table_list_iter __EXPORTED * - nftnl_table_list_iter_create(const struct nftnl_table_list *l) - { - struct nftnl_table_list_iter *iter; -@@ -514,9 +487,8 @@ nftnl_table_list_iter_create(const struct nftnl_table_list *l) - - return iter; - } --EXPORT_SYMBOL(nftnl_table_list_iter_create); - --struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter) -+struct nftnl_table __EXPORTED *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter) - { - struct nftnl_table *r = iter->cur; - -@@ -530,10 +502,8 @@ struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *ite - - return r; - } --EXPORT_SYMBOL(nftnl_table_list_iter_next); - --void nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter) -+void __EXPORTED nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter) - { - xfree(iter); - } --EXPORT_SYMBOL(nftnl_table_list_iter_destroy); -diff --git a/src/trace.c b/src/trace.c -index bd05d3c..4739ef9 100644 ---- a/src/trace.c -+++ b/src/trace.c -@@ -52,14 +52,12 @@ struct nftnl_trace { - uint32_t flags; - }; - --EXPORT_SYMBOL(nftnl_trace_alloc); --struct nftnl_trace *nftnl_trace_alloc(void) -+struct nftnl_trace __EXPORTED *nftnl_trace_alloc(void) - { - return calloc(1, sizeof(struct nftnl_trace)); - } - --EXPORT_SYMBOL(nftnl_trace_free); --void nftnl_trace_free(const struct nftnl_trace *t) -+void __EXPORTED nftnl_trace_free(const struct nftnl_trace *t) - { - xfree(t->chain); - xfree(t->table); -@@ -70,8 +68,7 @@ void nftnl_trace_free(const struct nftnl_trace *t) - xfree(t); - } - --EXPORT_SYMBOL(nftnl_trace_is_set); --bool nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr) -+bool __EXPORTED nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr) - { - return t->flags & (1 << attr); - } -@@ -130,8 +127,7 @@ static int nftnl_trace_parse_attr_cb(const struct nlattr *attr, void *data) - return MNL_CB_OK; - } - --EXPORT_SYMBOL(nftnl_trace_get_data); --const void *nftnl_trace_get_data(const struct nftnl_trace *trace, -+const void __EXPORTED *nftnl_trace_get_data(const struct nftnl_trace *trace, - uint16_t type, uint32_t *data_len) - { - enum nftnl_trace_attr attr = type; -@@ -201,8 +197,7 @@ const void *nftnl_trace_get_data(const struct nftnl_trace *trace, - return NULL; - } - --EXPORT_SYMBOL(nftnl_trace_get_str); --const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) -+const char __EXPORTED *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) - { - if (!nftnl_trace_is_set(trace, type)) - return NULL; -@@ -216,8 +211,7 @@ const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) - return NULL; - } - --EXPORT_SYMBOL(nftnl_trace_get_u16); --uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) -+uint16_t __EXPORTED nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) - { - const uint16_t *d; - uint32_t dlen; -@@ -229,8 +223,7 @@ uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) - return 0; - } - --EXPORT_SYMBOL(nftnl_trace_get_u32); --uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) -+uint32_t __EXPORTED nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) - { - const uint32_t *d; - uint32_t dlen; -@@ -242,8 +235,7 @@ uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) - return 0; - } - --EXPORT_SYMBOL(nftnl_trace_get_u64); --uint64_t nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type) -+uint64_t __EXPORTED nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type) - { - const uint64_t *d; - uint32_t dlen; -@@ -323,9 +315,8 @@ static int nftnl_trace_parse_verdict(const struct nlattr *attr, - } - return 0; - } --EXPORT_SYMBOL(nftnl_trace_nlmsg_parse); - --int nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t) -+int __EXPORTED nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t) - { - struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); - struct nlattr *tb[NFTA_TRACE_MAX+1] = {}; -diff --git a/src/udata.c b/src/udata.c -index d679dd0..7e2de0f 100644 ---- a/src/udata.c -+++ b/src/udata.c -@@ -16,7 +16,7 @@ - #include <stdint.h> - #include <string.h> - --struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size) -+struct nftnl_udata_buf __EXPORTED *nftnl_udata_buf_alloc(uint32_t data_size) - { - struct nftnl_udata_buf *buf; - -@@ -28,47 +28,40 @@ struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size) - - return buf; - } --EXPORT_SYMBOL(nftnl_udata_buf_alloc); - --void nftnl_udata_buf_free(const struct nftnl_udata_buf *buf) -+void __EXPORTED nftnl_udata_buf_free(const struct nftnl_udata_buf *buf) - { - xfree(buf); - } --EXPORT_SYMBOL(nftnl_udata_buf_free); - --uint32_t nftnl_udata_buf_len(const struct nftnl_udata_buf *buf) -+uint32_t __EXPORTED nftnl_udata_buf_len(const struct nftnl_udata_buf *buf) - { - return (uint32_t)(buf->end - buf->data); - } --EXPORT_SYMBOL(nftnl_udata_buf_len); - --void *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf) -+void __EXPORTED *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf) - { - return (void *)buf->data; - } --EXPORT_SYMBOL(nftnl_udata_buf_data); - --void nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data, -+void __EXPORTED nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data, - uint32_t len) - { - memcpy(buf->data, data, len <= buf->size ? len : buf->size); - buf->end = buf->data + len; - } --EXPORT_SYMBOL(nftnl_udata_buf_put); - --struct nftnl_udata *nftnl_udata_start(const struct nftnl_udata_buf *buf) -+struct nftnl_udata __EXPORTED *nftnl_udata_start(const struct nftnl_udata_buf *buf) - { - return (struct nftnl_udata *)buf->data; - } --EXPORT_SYMBOL(nftnl_udata_start); - --struct nftnl_udata *nftnl_udata_end(const struct nftnl_udata_buf *buf) -+struct nftnl_udata __EXPORTED *nftnl_udata_end(const struct nftnl_udata_buf *buf) - { - return (struct nftnl_udata *)buf->end; - } --EXPORT_SYMBOL(nftnl_udata_end); - --bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, -+bool __EXPORTED nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, - const void *value) - { - struct nftnl_udata *attr; -@@ -85,55 +78,47 @@ bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, - - return true; - } --EXPORT_SYMBOL(nftnl_udata_put); - --bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, -+bool __EXPORTED nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, - const char *strz) - { - return nftnl_udata_put(buf, type, strlen(strz) + 1, strz); - } --EXPORT_SYMBOL(nftnl_udata_put_strz); - --bool nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type, -+bool __EXPORTED nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type, - uint32_t data) - { - return nftnl_udata_put(buf, type, sizeof(data), &data); - } --EXPORT_SYMBOL(nftnl_udata_put_u32); - --uint8_t nftnl_udata_type(const struct nftnl_udata *attr) -+uint8_t __EXPORTED nftnl_udata_type(const struct nftnl_udata *attr) - { - return attr->type; - } --EXPORT_SYMBOL(nftnl_udata_type); - --uint8_t nftnl_udata_len(const struct nftnl_udata *attr) -+uint8_t __EXPORTED nftnl_udata_len(const struct nftnl_udata *attr) - { - return attr->len; - } --EXPORT_SYMBOL(nftnl_udata_len); - --void *nftnl_udata_get(const struct nftnl_udata *attr) -+void __EXPORTED *nftnl_udata_get(const struct nftnl_udata *attr) - { - return (void *)attr->value; - } --EXPORT_SYMBOL(nftnl_udata_get); - --uint32_t nftnl_udata_get_u32(const struct nftnl_udata *attr) -+uint32_t __EXPORTED nftnl_udata_get_u32(const struct nftnl_udata *attr) - { - uint32_t *data = (uint32_t *)attr->value; - - return *data; - } --EXPORT_SYMBOL(nftnl_udata_get_u32); - --struct nftnl_udata *nftnl_udata_next(const struct nftnl_udata *attr) -+struct nftnl_udata __EXPORTED *nftnl_udata_next(const struct nftnl_udata *attr) - { - return (struct nftnl_udata *)&attr->value[attr->len]; - } --EXPORT_SYMBOL(nftnl_udata_next); - --int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, -+int __EXPORTED nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, - void *cb_data) - { - int ret = 0; -@@ -147,4 +132,3 @@ int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, - - return ret; - } --EXPORT_SYMBOL(nftnl_udata_parse); --- -2.11.0 (Apple Git-81) - diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch new file mode 100644 index 000000000..995fd59a5 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch @@ -0,0 +1,289 @@ +From 21eb59fbd071ebffb8495232766824944fb521a0 Mon Sep 17 00:00:00 2001 +From: Alex Kiernan <alex.kiernan@gmail.com> +Date: Wed, 7 Nov 2018 21:19:53 +0000 +Subject: [PATCH] Move exports before symbol definition + +Based on 7966020 ("src: Fix exporting symbols with clang"), when +EXPORT_SYMBOL is located after function definition, clang won't properly +export the function, resulting in a library with no symbols when built with +clang. + +Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> +--- + src/flowtable.c | 54 +++++++++++++++++++++++++++--------------------------- + 1 file changed, 27 insertions(+), 27 deletions(-) + +diff --git a/src/flowtable.c b/src/flowtable.c +index c1ddae4..d7434e3 100644 +--- a/src/flowtable.c ++++ b/src/flowtable.c +@@ -34,12 +34,13 @@ struct nftnl_flowtable { + uint32_t flags; + }; + ++EXPORT_SYMBOL(nftnl_flowtable_alloc); + struct nftnl_flowtable *nftnl_flowtable_alloc(void) + { + return calloc(1, sizeof(struct nftnl_flowtable)); + } +-EXPORT_SYMBOL(nftnl_flowtable_alloc); + ++EXPORT_SYMBOL(nftnl_flowtable_free); + void nftnl_flowtable_free(const struct nftnl_flowtable *c) + { + int i; +@@ -56,14 +57,14 @@ void nftnl_flowtable_free(const struct nftnl_flowtable *c) + } + xfree(c); + } +-EXPORT_SYMBOL(nftnl_flowtable_free); + ++EXPORT_SYMBOL(nftnl_flowtable_is_set); + bool nftnl_flowtable_is_set(const struct nftnl_flowtable *c, uint16_t attr) + { + return c->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_flowtable_is_set); + ++EXPORT_SYMBOL(nftnl_flowtable_unset); + void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr) + { + int i; +@@ -96,7 +97,6 @@ void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr) + + c->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_flowtable_unset); + + static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = { + [NFTNL_FLOWTABLE_HOOKNUM] = sizeof(uint32_t), +@@ -105,6 +105,7 @@ static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = { + [NFTNL_FLOWTABLE_FLAGS] = sizeof(uint32_t), + }; + ++EXPORT_SYMBOL(nftnl_flowtable_set_data); + int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr, + const void *data, uint32_t data_len) + { +@@ -170,32 +171,32 @@ int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr, + c->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_flowtable_set_data); + ++EXPORT_SYMBOL(nftnl_flowtable_set); + void nftnl_flowtable_set(struct nftnl_flowtable *c, uint16_t attr, const void *data) + { + nftnl_flowtable_set_data(c, attr, data, nftnl_flowtable_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_flowtable_set); + ++EXPORT_SYMBOL(nftnl_flowtable_set_u32); + void nftnl_flowtable_set_u32(struct nftnl_flowtable *c, uint16_t attr, uint32_t data) + { + nftnl_flowtable_set_data(c, attr, &data, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_flowtable_set_u32); + ++EXPORT_SYMBOL(nftnl_flowtable_set_s32); + void nftnl_flowtable_set_s32(struct nftnl_flowtable *c, uint16_t attr, int32_t data) + { + nftnl_flowtable_set_data(c, attr, &data, sizeof(int32_t)); + } +-EXPORT_SYMBOL(nftnl_flowtable_set_s32); + ++EXPORT_SYMBOL(nftnl_flowtable_set_str); + int nftnl_flowtable_set_str(struct nftnl_flowtable *c, uint16_t attr, const char *str) + { + return nftnl_flowtable_set_data(c, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_flowtable_set_str); + ++EXPORT_SYMBOL(nftnl_flowtable_get_data); + const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c, + uint16_t attr, uint32_t *data_len) + { +@@ -229,21 +230,21 @@ const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_flowtable_get_data); + ++EXPORT_SYMBOL(nftnl_flowtable_get); + const void *nftnl_flowtable_get(const struct nftnl_flowtable *c, uint16_t attr) + { + uint32_t data_len; + return nftnl_flowtable_get_data(c, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_flowtable_get); + ++EXPORT_SYMBOL(nftnl_flowtable_get_str); + const char *nftnl_flowtable_get_str(const struct nftnl_flowtable *c, uint16_t attr) + { + return nftnl_flowtable_get(c, attr); + } +-EXPORT_SYMBOL(nftnl_flowtable_get_str); + ++EXPORT_SYMBOL(nftnl_flowtable_get_u32); + uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr) + { + uint32_t data_len; +@@ -253,8 +254,8 @@ uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_flowtable_get_u32); + ++EXPORT_SYMBOL(nftnl_flowtable_get_s32); + int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr) + { + uint32_t data_len; +@@ -264,8 +265,8 @@ int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_flowtable_get_s32); + ++EXPORT_SYMBOL(nftnl_flowtable_nlmsg_build_payload); + void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh, + const struct nftnl_flowtable *c) + { +@@ -301,7 +302,6 @@ void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh, + if (c->flags & (1 << NFTNL_FLOWTABLE_SIZE)) + mnl_attr_put_u32(nlh, NFTA_FLOWTABLE_SIZE, htonl(c->size)); + } +-EXPORT_SYMBOL(nftnl_flowtable_nlmsg_build_payload); + + static int nftnl_flowtable_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -412,6 +412,7 @@ static int nftnl_flowtable_parse_hook(struct nlattr *attr, struct nftnl_flowtabl + return 0; + } + ++EXPORT_SYMBOL(nftnl_flowtable_nlmsg_parse); + int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtable *c) + { + struct nlattr *tb[NFTA_FLOWTABLE_MAX + 1] = {}; +@@ -460,7 +461,6 @@ int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtab + + return ret; + } +-EXPORT_SYMBOL(nftnl_flowtable_nlmsg_parse); + + static const char *nftnl_hooknum2str(int family, int hooknum) + { +@@ -612,20 +612,20 @@ static int nftnl_flowtable_do_parse(struct nftnl_flowtable *c, + return ret; + } + ++EXPORT_SYMBOL(nftnl_flowtable_parse); + int nftnl_flowtable_parse(struct nftnl_flowtable *c, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_flowtable_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_flowtable_parse); + ++EXPORT_SYMBOL(nftnl_flowtable_parse_file); + int nftnl_flowtable_parse_file(struct nftnl_flowtable *c, + enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_flowtable_do_parse(c, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_flowtable_parse_file); + + static int nftnl_flowtable_export(char *buf, size_t size, + const struct nftnl_flowtable *c, int type) +@@ -720,6 +720,7 @@ static int nftnl_flowtable_cmd_snprintf(char *buf, size_t size, + return offset; + } + ++EXPORT_SYMBOL(nftnl_flowtable_snprintf); + int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtable *c, + uint32_t type, uint32_t flags) + { +@@ -729,7 +730,6 @@ int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtabl + return nftnl_flowtable_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags), + type, flags); + } +-EXPORT_SYMBOL(nftnl_flowtable_snprintf); + + static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -737,18 +737,19 @@ static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c, + return nftnl_flowtable_snprintf(buf, size, c, type, flags); + } + ++EXPORT_SYMBOL(nftnl_flowtable_fprintf); + int nftnl_flowtable_fprintf(FILE *fp, const struct nftnl_flowtable *c, + uint32_t type, uint32_t flags) + { + return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags, + nftnl_flowtable_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_flowtable_fprintf); + + struct nftnl_flowtable_list { + struct list_head list; + }; + ++EXPORT_SYMBOL(nftnl_flowtable_list_alloc); + struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void) + { + struct nftnl_flowtable_list *list; +@@ -761,8 +762,8 @@ struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_flowtable_list_alloc); + ++EXPORT_SYMBOL(nftnl_flowtable_list_free); + void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list) + { + struct nftnl_flowtable *s, *tmp; +@@ -773,34 +774,34 @@ void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_flowtable_list_free); + ++EXPORT_SYMBOL(nftnl_flowtable_list_is_empty); + int nftnl_flowtable_list_is_empty(const struct nftnl_flowtable_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_flowtable_list_is_empty); + ++EXPORT_SYMBOL(nftnl_flowtable_list_add); + void nftnl_flowtable_list_add(struct nftnl_flowtable *s, + struct nftnl_flowtable_list *list) + { + list_add(&s->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_flowtable_list_add); + ++EXPORT_SYMBOL(nftnl_flowtable_list_add_tail); + void nftnl_flowtable_list_add_tail(struct nftnl_flowtable *s, + struct nftnl_flowtable_list *list) + { + list_add_tail(&s->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_flowtable_list_add_tail); + ++EXPORT_SYMBOL(nftnl_flowtable_list_del); + void nftnl_flowtable_list_del(struct nftnl_flowtable *s) + { + list_del(&s->head); + } +-EXPORT_SYMBOL(nftnl_flowtable_list_del); + ++EXPORT_SYMBOL(nftnl_flowtable_list_foreach); + int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list, + int (*cb)(struct nftnl_flowtable *t, void *data), void *data) + { +@@ -814,4 +815,3 @@ int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_flowtable_list_foreach); diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch index 06e68177c..e7e8f6fe9 100644 --- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch +++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch @@ -1,51 +1,55 @@ -From f840cc0da571d98beb17855c177e9986bd096b72 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 13 Apr 2017 11:46:09 -0700 +From 5ea9fa9d345005f2f53b1b598edb85f5f24ca9da Mon Sep 17 00:00:00 2001 +From: Alex Kiernan <alex.kiernan@gmail.com> +Date: Wed, 7 Nov 2018 19:41:54 +0000 Subject: [PATCH] avoid naming local function as one of printf family Fixes build issues with clang error: no member named '__builtin___snprintf_chk' in 'struct expr_ops' Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> --- - include/expr_ops.h | 2 +- - include/obj.h | 2 +- - src/buffer.c | 2 +- - src/expr.c | 4 ++-- - src/expr/bitwise.c | 2 +- - src/expr/byteorder.c | 2 +- - src/expr/cmp.c | 2 +- - src/expr/counter.c | 2 +- - src/expr/ct.c | 2 +- - src/expr/dup.c | 2 +- - src/expr/dynset.c | 2 +- - src/expr/exthdr.c | 2 +- - src/expr/fib.c | 2 +- - src/expr/fwd.c | 2 +- - src/expr/hash.c | 2 +- - src/expr/immediate.c | 2 +- - src/expr/limit.c | 2 +- - src/expr/log.c | 2 +- - src/expr/lookup.c | 2 +- - src/expr/masq.c | 2 +- - src/expr/match.c | 2 +- - src/expr/meta.c | 2 +- - src/expr/nat.c | 2 +- - src/expr/numgen.c | 2 +- - src/expr/objref.c | 2 +- - src/expr/payload.c | 2 +- - src/expr/queue.c | 2 +- - src/expr/quota.c | 2 +- - src/expr/range.c | 2 +- - src/expr/redir.c | 2 +- - src/expr/reject.c | 2 +- - src/expr/rt.c | 2 +- - src/expr/target.c | 2 +- - src/obj/counter.c | 2 +- - src/obj/ct_helper.c | 2 +- - src/obj/quota.c | 2 +- - src/object.c | 4 ++-- - 37 files changed, 39 insertions(+), 39 deletions(-) + include/expr_ops.h | 2 +- + include/obj.h | 2 +- + src/expr.c | 4 ++-- + src/expr/bitwise.c | 2 +- + src/expr/byteorder.c | 2 +- + src/expr/cmp.c | 2 +- + src/expr/connlimit.c | 2 +- + src/expr/counter.c | 2 +- + src/expr/ct.c | 2 +- + src/expr/dup.c | 2 +- + src/expr/dynset.c | 2 +- + src/expr/exthdr.c | 2 +- + src/expr/fib.c | 2 +- + src/expr/flow_offload.c | 2 +- + src/expr/fwd.c | 2 +- + src/expr/hash.c | 2 +- + src/expr/immediate.c | 2 +- + src/expr/limit.c | 2 +- + src/expr/log.c | 2 +- + src/expr/lookup.c | 2 +- + src/expr/masq.c | 2 +- + src/expr/match.c | 2 +- + src/expr/meta.c | 2 +- + src/expr/nat.c | 2 +- + src/expr/numgen.c | 2 +- + src/expr/objref.c | 2 +- + src/expr/payload.c | 2 +- + src/expr/queue.c | 2 +- + src/expr/quota.c | 2 +- + src/expr/range.c | 2 +- + src/expr/redir.c | 2 +- + src/expr/reject.c | 2 +- + src/expr/rt.c | 2 +- + src/expr/socket.c | 2 +- + src/expr/target.c | 2 +- + src/obj/counter.c | 2 +- + src/obj/ct_helper.c | 2 +- + src/obj/limit.c | 2 +- + src/obj/quota.c | 2 +- + src/object.c | 4 ++-- + 40 files changed, 42 insertions(+), 42 deletions(-) diff --git a/include/expr_ops.h b/include/expr_ops.h index e639390..c4fe050 100644 @@ -61,10 +65,10 @@ index e639390..c4fe050 100644 struct nftnl_parse_err *err); }; diff --git a/include/obj.h b/include/obj.h -index d90919f..772caff 100644 +index 4a728c8..4c20bd1 100644 --- a/include/obj.h +++ b/include/obj.h -@@ -47,7 +47,7 @@ struct obj_ops { +@@ -55,7 +55,7 @@ struct obj_ops { const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len); int (*parse)(struct nftnl_obj *e, struct nlattr *attr); void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e); @@ -73,38 +77,25 @@ index d90919f..772caff 100644 int (*json_parse)(struct nftnl_obj *e, json_t *data, struct nftnl_parse_err *err); }; -diff --git a/src/buffer.c b/src/buffer.c -index f9d5a83..db656e2 100644 ---- a/src/buffer.c -+++ b/src/buffer.c -@@ -206,7 +206,7 @@ int nftnl_buf_expr(struct nftnl_buf *b, int type, uint32_t flags, - case NFTNL_OUTPUT_JSON: - nftnl_buf_put(b, "{"); - nftnl_buf_str(b, type, expr->ops->name, TYPE); -- ret = expr->ops->snprintf(b->buf + b->off, b->len, type, flags, -+ ret = expr->ops->snprintf_(b->buf + b->off, b->len, type, flags, - expr); - if (ret > 0) - nftnl_buf_update(b, ret); diff --git a/src/expr.c b/src/expr.c -index c7eb2b4..24f8f8c 100644 +index 62565e0..2489c30 100644 --- a/src/expr.c +++ b/src/expr.c -@@ -265,10 +265,10 @@ int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_ex - int ret; - unsigned int offset = 0, len = size; +@@ -285,10 +285,10 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, + if (size) + buf[0] = '\0'; - if (!expr->ops->snprintf) + if (!expr->ops->snprintf_) return 0; -- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr); -+ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); +- ret = expr->ops->snprintf(buf + offset, remain, type, flags, expr); ++ ret = expr->ops->snprintf_(buf + offset, remain, type, flags, expr); + SNPRINTF_BUFFER_SIZE(ret, remain, offset); return offset; diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c -index 0febc9d..9b48e79 100644 +index a89734b..f8360b1 100644 --- a/src/expr/bitwise.c +++ b/src/expr/bitwise.c @@ -299,6 +299,6 @@ struct expr_ops expr_ops_bitwise = { @@ -116,7 +107,7 @@ index 0febc9d..9b48e79 100644 .json_parse = nftnl_expr_bitwise_json_parse, }; diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c -index 3805307..079582f 100644 +index 47c04cf..61f733f 100644 --- a/src/expr/byteorder.c +++ b/src/expr/byteorder.c @@ -314,6 +314,6 @@ struct expr_ops expr_ops_byteorder = { @@ -128,7 +119,7 @@ index 3805307..079582f 100644 .json_parse = nftnl_expr_byteorder_json_parse, }; diff --git a/src/expr/cmp.c b/src/expr/cmp.c -index 353e907..99b497c 100644 +index b26d0eb..522c7be 100644 --- a/src/expr/cmp.c +++ b/src/expr/cmp.c @@ -284,6 +284,6 @@ struct expr_ops expr_ops_cmp = { @@ -139,6 +130,18 @@ index 353e907..99b497c 100644 + .snprintf_ = nftnl_expr_cmp_snprintf, .json_parse = nftnl_expr_cmp_json_parse, }; +diff --git a/src/expr/connlimit.c b/src/expr/connlimit.c +index 60965b5..4e41866 100644 +--- a/src/expr/connlimit.c ++++ b/src/expr/connlimit.c +@@ -202,6 +202,6 @@ struct expr_ops expr_ops_connlimit = { + .get = nftnl_expr_connlimit_get, + .parse = nftnl_expr_connlimit_parse, + .build = nftnl_expr_connlimit_build, +- .snprintf = nftnl_expr_connlimit_snprintf, ++ .snprintf_ = nftnl_expr_connlimit_snprintf, + .json_parse = nftnl_expr_connlimit_json_parse, + }; diff --git a/src/expr/counter.c b/src/expr/counter.c index 21901e8..9fd7655 100644 --- a/src/expr/counter.c @@ -152,10 +155,10 @@ index 21901e8..9fd7655 100644 .json_parse = nftnl_expr_counter_json_parse, }; diff --git a/src/expr/ct.c b/src/expr/ct.c -index cdd08e9..6ce5478 100644 +index 39e9be6..b363f7c 100644 --- a/src/expr/ct.c +++ b/src/expr/ct.c -@@ -356,6 +356,6 @@ struct expr_ops expr_ops_ct = { +@@ -357,6 +357,6 @@ struct expr_ops expr_ops_ct = { .get = nftnl_expr_ct_get, .parse = nftnl_expr_ct_parse, .build = nftnl_expr_ct_build, @@ -164,7 +167,7 @@ index cdd08e9..6ce5478 100644 .json_parse = nftnl_expr_ct_json_parse, }; diff --git a/src/expr/dup.c b/src/expr/dup.c -index 9aa332b..2f491d8 100644 +index ed8e620..8d603e3 100644 --- a/src/expr/dup.c +++ b/src/expr/dup.c @@ -206,6 +206,6 @@ struct expr_ops expr_ops_dup = { @@ -176,7 +179,7 @@ index 9aa332b..2f491d8 100644 .json_parse = nftnl_expr_dup_json_parse, }; diff --git a/src/expr/dynset.c b/src/expr/dynset.c -index f7b99ea..758f07c 100644 +index 160d0e1..a43f4da 100644 --- a/src/expr/dynset.c +++ b/src/expr/dynset.c @@ -368,6 +368,6 @@ struct expr_ops expr_ops_dynset = { @@ -188,10 +191,10 @@ index f7b99ea..758f07c 100644 .json_parse = nftnl_expr_dynset_json_parse, }; diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c -index d4f1665..a834782 100644 +index 75cafbc..89ea7f5 100644 --- a/src/expr/exthdr.c +++ b/src/expr/exthdr.c -@@ -356,6 +356,6 @@ struct expr_ops expr_ops_exthdr = { +@@ -385,6 +385,6 @@ struct expr_ops expr_ops_exthdr = { .get = nftnl_expr_exthdr_get, .parse = nftnl_expr_exthdr_parse, .build = nftnl_expr_exthdr_build, @@ -200,10 +203,10 @@ index d4f1665..a834782 100644 .json_parse = nftnl_expr_exthdr_json_parse, }; diff --git a/src/expr/fib.c b/src/expr/fib.c -index f3be081..3c353b2 100644 +index b922b26..ece4645 100644 --- a/src/expr/fib.c +++ b/src/expr/fib.c -@@ -272,6 +272,6 @@ struct expr_ops expr_ops_fib = { +@@ -274,6 +274,6 @@ struct expr_ops expr_ops_fib = { .get = nftnl_expr_fib_get, .parse = nftnl_expr_fib_parse, .build = nftnl_expr_fib_build, @@ -211,11 +214,23 @@ index f3be081..3c353b2 100644 + .snprintf_ = nftnl_expr_fib_snprintf, .json_parse = nftnl_expr_fib_json_parse, }; +diff --git a/src/expr/flow_offload.c b/src/expr/flow_offload.c +index a2001c9..9cdbc21 100644 +--- a/src/expr/flow_offload.c ++++ b/src/expr/flow_offload.c +@@ -179,6 +179,6 @@ struct expr_ops expr_ops_flow = { + .get = nftnl_expr_flow_get, + .parse = nftnl_expr_flow_parse, + .build = nftnl_expr_flow_build, +- .snprintf = nftnl_expr_flow_snprintf, ++ .snprintf_ = nftnl_expr_flow_snprintf, + .json_parse = nftnl_expr_flow_json_parse, + }; diff --git a/src/expr/fwd.c b/src/expr/fwd.c -index c30d494..f6e41f1 100644 +index 9021606..7178f43 100644 --- a/src/expr/fwd.c +++ b/src/expr/fwd.c -@@ -180,6 +180,6 @@ struct expr_ops expr_ops_fwd = { +@@ -233,6 +233,6 @@ struct expr_ops expr_ops_fwd = { .get = nftnl_expr_fwd_get, .parse = nftnl_expr_fwd_parse, .build = nftnl_expr_fwd_build, @@ -224,10 +239,10 @@ index c30d494..f6e41f1 100644 .json_parse = nftnl_expr_fwd_json_parse, }; diff --git a/src/expr/hash.c b/src/expr/hash.c -index d870510..5acb66a 100644 +index 415537e..186c5b0 100644 --- a/src/expr/hash.c +++ b/src/expr/hash.c -@@ -332,6 +332,6 @@ struct expr_ops expr_ops_hash = { +@@ -383,6 +383,6 @@ struct expr_ops expr_ops_hash = { .get = nftnl_expr_hash_get, .parse = nftnl_expr_hash_parse, .build = nftnl_expr_hash_build, @@ -236,7 +251,7 @@ index d870510..5acb66a 100644 .json_parse = nftnl_expr_hash_json_parse, }; diff --git a/src/expr/immediate.c b/src/expr/immediate.c -index 0b188cc..94bd6da 100644 +index b0570bd..91ccbdc 100644 --- a/src/expr/immediate.c +++ b/src/expr/immediate.c @@ -316,6 +316,6 @@ struct expr_ops expr_ops_immediate = { @@ -260,10 +275,10 @@ index 856ab18..e71fc2f 100644 .json_parse = nftnl_expr_limit_json_parse, }; diff --git a/src/expr/log.c b/src/expr/log.c -index b642255..71dd83a 100644 +index 86d9651..5769c1c 100644 --- a/src/expr/log.c +++ b/src/expr/log.c -@@ -352,6 +352,6 @@ struct expr_ops expr_ops_log = { +@@ -353,6 +353,6 @@ struct expr_ops expr_ops_log = { .get = nftnl_expr_log_get, .parse = nftnl_expr_log_parse, .build = nftnl_expr_log_build, @@ -272,10 +287,10 @@ index b642255..71dd83a 100644 .json_parse = nftnl_expr_log_json_parse, }; diff --git a/src/expr/lookup.c b/src/expr/lookup.c -index 861815f..6049913 100644 +index 5fcb81f..b2f0dd6 100644 --- a/src/expr/lookup.c +++ b/src/expr/lookup.c -@@ -293,6 +293,6 @@ struct expr_ops expr_ops_lookup = { +@@ -292,6 +292,6 @@ struct expr_ops expr_ops_lookup = { .get = nftnl_expr_lookup_get, .parse = nftnl_expr_lookup_parse, .build = nftnl_expr_lookup_build, @@ -308,10 +323,10 @@ index dd09e1e..f0d8868 100644 .json_parse = nftnl_expr_match_json_parse, }; diff --git a/src/expr/meta.c b/src/expr/meta.c -index 2c75841..907a677 100644 +index de82105..91f1ebb 100644 --- a/src/expr/meta.c +++ b/src/expr/meta.c -@@ -290,6 +290,6 @@ struct expr_ops expr_ops_meta = { +@@ -291,6 +291,6 @@ struct expr_ops expr_ops_meta = { .get = nftnl_expr_meta_get, .parse = nftnl_expr_meta_parse, .build = nftnl_expr_meta_build, @@ -320,10 +335,10 @@ index 2c75841..907a677 100644 .json_parse = nftnl_expr_meta_json_parse, }; diff --git a/src/expr/nat.c b/src/expr/nat.c -index 29bc3a2..d476283 100644 +index 9271303..427c282 100644 --- a/src/expr/nat.c +++ b/src/expr/nat.c -@@ -383,6 +383,6 @@ struct expr_ops expr_ops_nat = { +@@ -384,6 +384,6 @@ struct expr_ops expr_ops_nat = { .get = nftnl_expr_nat_get, .parse = nftnl_expr_nat_parse, .build = nftnl_expr_nat_build, @@ -332,10 +347,10 @@ index 29bc3a2..d476283 100644 .json_parse = nftnl_expr_nat_json_parse, }; diff --git a/src/expr/numgen.c b/src/expr/numgen.c -index a15f03a..28ef741 100644 +index 5336fde..8e0479a 100644 --- a/src/expr/numgen.c +++ b/src/expr/numgen.c -@@ -264,6 +264,6 @@ struct expr_ops expr_ops_ng = { +@@ -313,6 +313,6 @@ struct expr_ops expr_ops_ng = { .get = nftnl_expr_ng_get, .parse = nftnl_expr_ng_parse, .build = nftnl_expr_ng_build, @@ -344,7 +359,7 @@ index a15f03a..28ef741 100644 .json_parse = nftnl_expr_ng_json_parse, }; diff --git a/src/expr/objref.c b/src/expr/objref.c -index 4cfa3cb..c394290 100644 +index 64ee863..4504488 100644 --- a/src/expr/objref.c +++ b/src/expr/objref.c @@ -278,6 +278,6 @@ struct expr_ops expr_ops_objref = { @@ -368,10 +383,10 @@ index 91e1587..894ac08 100644 .json_parse = nftnl_expr_payload_json_parse, }; diff --git a/src/expr/queue.c b/src/expr/queue.c -index 8a9deda..389af83 100644 +index a392a27..ee26c10 100644 --- a/src/expr/queue.c +++ b/src/expr/queue.c -@@ -276,6 +276,6 @@ struct expr_ops expr_ops_queue = { +@@ -275,6 +275,6 @@ struct expr_ops expr_ops_queue = { .get = nftnl_expr_queue_get, .parse = nftnl_expr_queue_parse, .build = nftnl_expr_queue_build, @@ -392,7 +407,7 @@ index 667e6e1..ff5d182 100644 .json_parse = nftnl_expr_quota_json_parse, }; diff --git a/src/expr/range.c b/src/expr/range.c -index 8c8ce12..34d422b 100644 +index b2789ff..8910f8a 100644 --- a/src/expr/range.c +++ b/src/expr/range.c @@ -283,6 +283,6 @@ struct expr_ops expr_ops_range = { @@ -404,7 +419,7 @@ index 8c8ce12..34d422b 100644 .json_parse = nftnl_expr_range_json_parse, }; diff --git a/src/expr/redir.c b/src/expr/redir.c -index 43538d5..8a21f93 100644 +index b2aa345..41b77ab 100644 --- a/src/expr/redir.c +++ b/src/expr/redir.c @@ -242,6 +242,6 @@ struct expr_ops expr_ops_redir = { @@ -428,10 +443,10 @@ index 11d8b20..b10e729 100644 .json_parse = nftnl_expr_reject_json_parse, }; diff --git a/src/expr/rt.c b/src/expr/rt.c -index 5088e66..9f44b29 100644 +index c3c92c7..688a042 100644 --- a/src/expr/rt.c +++ b/src/expr/rt.c -@@ -238,6 +238,6 @@ struct expr_ops expr_ops_rt = { +@@ -235,6 +235,6 @@ struct expr_ops expr_ops_rt = { .get = nftnl_expr_rt_get, .parse = nftnl_expr_rt_parse, .build = nftnl_expr_rt_build, @@ -439,6 +454,17 @@ index 5088e66..9f44b29 100644 + .snprintf_ = nftnl_expr_rt_snprintf, .json_parse = nftnl_expr_rt_json_parse, }; +diff --git a/src/expr/socket.c b/src/expr/socket.c +index db160a1..4c50011 100644 +--- a/src/expr/socket.c ++++ b/src/expr/socket.c +@@ -204,5 +204,5 @@ struct expr_ops expr_ops_socket = { + .get = nftnl_expr_socket_get, + .parse = nftnl_expr_socket_parse, + .build = nftnl_expr_socket_build, +- .snprintf = nftnl_expr_socket_snprintf, ++ .snprintf_ = nftnl_expr_socket_snprintf, + }; diff --git a/src/expr/target.c b/src/expr/target.c index ed4bf7d..2ef4078 100644 --- a/src/expr/target.c @@ -452,10 +478,10 @@ index ed4bf7d..2ef4078 100644 .json_parse = nftnl_expr_target_json_parse, }; diff --git a/src/obj/counter.c b/src/obj/counter.c -index beadc93..8c4cc25 100644 +index 332bb2b..edeb7be 100644 --- a/src/obj/counter.c +++ b/src/obj/counter.c -@@ -179,6 +179,6 @@ struct obj_ops obj_ops_counter = { +@@ -182,6 +182,6 @@ struct obj_ops obj_ops_counter = { .get = nftnl_obj_counter_get, .parse = nftnl_obj_counter_parse, .build = nftnl_obj_counter_build, @@ -464,10 +490,10 @@ index beadc93..8c4cc25 100644 .json_parse = nftnl_obj_counter_json_parse, }; diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c -index d6d3111..4c7c88b 100644 +index 62569fe..69757ff 100644 --- a/src/obj/ct_helper.c +++ b/src/obj/ct_helper.c -@@ -205,6 +205,6 @@ struct obj_ops obj_ops_ct_helper = { +@@ -208,6 +208,6 @@ struct obj_ops obj_ops_ct_helper = { .get = nftnl_obj_ct_helper_get, .parse = nftnl_obj_ct_helper_parse, .build = nftnl_obj_ct_helper_build, @@ -475,11 +501,23 @@ index d6d3111..4c7c88b 100644 + .snprintf_ = nftnl_obj_ct_helper_snprintf, .json_parse = nftnl_obj_quota_json_parse, }; +diff --git a/src/obj/limit.c b/src/obj/limit.c +index 7f8bcf7..25018b6 100644 +--- a/src/obj/limit.c ++++ b/src/obj/limit.c +@@ -236,6 +236,6 @@ struct obj_ops obj_ops_limit = { + .get = nftnl_obj_limit_get, + .parse = nftnl_obj_limit_parse, + .build = nftnl_obj_limit_build, +- .snprintf = nftnl_obj_limit_snprintf, ++ .snprintf_ = nftnl_obj_limit_snprintf, + .json_parse = nftnl_obj_limit_json_parse, + }; diff --git a/src/obj/quota.c b/src/obj/quota.c -index d5757b2..e959ff8 100644 +index 6d36784..ecaa8b1 100644 --- a/src/obj/quota.c +++ b/src/obj/quota.c -@@ -200,6 +200,6 @@ struct obj_ops obj_ops_quota = { +@@ -203,6 +203,6 @@ struct obj_ops obj_ops_quota = { .get = nftnl_obj_quota_get, .parse = nftnl_obj_quota_parse, .build = nftnl_obj_quota_build, @@ -488,11 +526,11 @@ index d5757b2..e959ff8 100644 .json_parse = nftnl_obj_quota_json_parse, }; diff --git a/src/object.c b/src/object.c -index d409c6d..b938c97 100644 +index d8278f3..9654b7b 100644 --- a/src/object.c +++ b/src/object.c -@@ -389,7 +389,7 @@ static int nftnl_obj_export(char *buf, size_t size, - nftnl_buf_u32(&b, type, obj->use, USE); +@@ -429,7 +429,7 @@ static int nftnl_obj_export(char *buf, size_t size, + nftnl_buf_u64(&b, type, obj->handle, HANDLE); if (obj->ops) - ret = obj->ops->snprintf(buf + b.len, size - b.len, type, @@ -500,15 +538,12 @@ index d409c6d..b938c97 100644 flags, obj); b.len += ret; -@@ -410,7 +410,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size, - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); +@@ -450,7 +450,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size, + SNPRINTF_BUFFER_SIZE(ret, remain, offset); if (obj->ops) { -- ret = obj->ops->snprintf(buf + offset, offset, type, flags, obj); -+ ret = obj->ops->snprintf_(buf + offset, offset, type, flags, obj); - SNPRINTF_BUFFER_SIZE(ret, size, len, offset); +- ret = obj->ops->snprintf(buf + offset, offset, type, flags, ++ ret = obj->ops->snprintf_(buf + offset, offset, type, flags, + obj); + SNPRINTF_BUFFER_SIZE(ret, remain, offset); } - ret = snprintf(buf + offset, offset, "]"); --- -2.12.2 - diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb index ca01c0a61..77959a730 100644 --- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb +++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb @@ -4,13 +4,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26" SECTION = "libs" DEPENDS = "libmnl" PV .= "+git${SRCPV}" -SRCREV = "4b89c0cb0883f638ff1abbc2ff47c43cdc26aac5" +SRCREV = "d379dfcb6c94dcb93a8f16896572d6e162138e0f" SRC_URI = "git://git.netfilter.org/libnftnl \ - file://0001-Declare-the-define-visivility-attribute-together.patch \ - file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \ + file://0001-Move-exports-before-symbol-definition.patch \ + file://0002-avoid-naming-local-function-as-one-of-printf-family.patch \ " -SRC_URI[md5sum] = "82183867168eb6644926c48b991b8aac" -SRC_URI[sha256sum] = "9bb66ecbc64b8508249402f0093829f44177770ad99f6042b86b3a467d963982" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch deleted file mode 100644 index 86a3d53df..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch +++ /dev/null @@ -1,323 +0,0 @@ -From 0011985554e269e1cc8f8e5b41eb9dcd795ebe8c Mon Sep 17 00:00:00 2001 -From: Arturo Borrero Gonzalez <arturo@debian.org> -Date: Wed, 25 Jan 2017 12:51:08 +0100 -Subject: [PATCH] payload: explicit network ctx assignment for icmp/icmp6 in - special families - -In the inet, bridge and netdev families, we can add rules like these: - -% nft add rule inet t c ip protocol icmp icmp type echo-request -% nft add rule inet t c ip6 nexthdr icmpv6 icmpv6 type echo-request - -However, when we print the ruleset: - -% nft list ruleset -table inet t { - chain c { - icmpv6 type echo-request - icmp type echo-request - } -} - -These rules we obtain can't be added again: - -% nft add rule inet t c icmp type echo-request -<cmdline>:1:19-27: Error: conflicting protocols specified: inet-service vs. icmp -add rule inet t c icmp type echo-request - ^^^^^^^^^ - -% nft add rule inet t c icmpv6 type echo-request -<cmdline>:1:19-29: Error: conflicting protocols specified: inet-service vs. icmpv6 -add rule inet t c icmpv6 type echo-request - ^^^^^^^^^^^ - -Since I wouldn't expect an IP packet carrying ICMPv6, or IPv6 packet -carrying ICMP, if the link layer is inet, the network layer protocol context -can be safely update to 'ip' or 'ip6'. - -Moreover, nft currently generates a 'meta nfproto ipvX' depedency when -using icmp or icmp6 in the inet family, and similar in netdev and bridge -families. - -While at it, a bit of code factorization is introduced. - -Fixes: https://bugzilla.netfilter.org/show_bug.cgi?id=1073 -Signed-off-by: Arturo Borrero Gonzalez <arturo@debian.org> -Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> ---- -Upstream-Status: Backport -Signed-off-by: André Draszik <adraszik@tycoint.com> - src/payload.c | 70 ++++++++++++++++--------------------- - tests/py/any/icmpX.t.netdev | 8 +++++ - tests/py/any/icmpX.t.netdev.payload | 36 +++++++++++++++++++ - tests/py/bridge/icmpX.t | 8 +++++ - tests/py/bridge/icmpX.t.payload | 36 +++++++++++++++++++ - tests/py/inet/icmpX.t | 8 +++++ - tests/py/inet/icmpX.t.payload | 36 +++++++++++++++++++ - 7 files changed, 162 insertions(+), 40 deletions(-) - create mode 100644 tests/py/any/icmpX.t.netdev - create mode 100644 tests/py/any/icmpX.t.netdev.payload - create mode 100644 tests/py/bridge/icmpX.t - create mode 100644 tests/py/bridge/icmpX.t.payload - create mode 100644 tests/py/inet/icmpX.t - create mode 100644 tests/py/inet/icmpX.t.payload - -diff --git a/src/payload.c b/src/payload.c -index af533b2..74f8254 100644 ---- a/src/payload.c -+++ b/src/payload.c -@@ -223,6 +223,34 @@ static int payload_add_dependency(struct eval_ctx *ctx, - return 0; - } - -+static const struct proto_desc * -+payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) -+{ -+ switch (expr->payload.base) { -+ case PROTO_BASE_LL_HDR: -+ switch (ctx->pctx.family) { -+ case NFPROTO_INET: -+ return &proto_inet; -+ case NFPROTO_BRIDGE: -+ return &proto_eth; -+ case NFPROTO_NETDEV: -+ return &proto_netdev; -+ default: -+ break; -+ } -+ break; -+ case PROTO_BASE_TRANSPORT_HDR: -+ if (expr->payload.desc == &proto_icmp) -+ return &proto_ip; -+ if (expr->payload.desc == &proto_icmp6) -+ return &proto_ip6; -+ return &proto_inet_service; -+ default: -+ break; -+ } -+ return NULL; -+} -+ - /** - * payload_gen_dependency - generate match expression on payload dependency - * -@@ -276,46 +304,8 @@ int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr, - - desc = ctx->pctx.protocol[expr->payload.base - 1].desc; - /* Special case for mixed IPv4/IPv6 and bridge tables */ -- if (desc == NULL) { -- switch (ctx->pctx.family) { -- case NFPROTO_INET: -- switch (expr->payload.base) { -- case PROTO_BASE_LL_HDR: -- desc = &proto_inet; -- break; -- case PROTO_BASE_TRANSPORT_HDR: -- desc = &proto_inet_service; -- break; -- default: -- break; -- } -- break; -- case NFPROTO_BRIDGE: -- switch (expr->payload.base) { -- case PROTO_BASE_LL_HDR: -- desc = &proto_eth; -- break; -- case PROTO_BASE_TRANSPORT_HDR: -- desc = &proto_inet_service; -- break; -- default: -- break; -- } -- break; -- case NFPROTO_NETDEV: -- switch (expr->payload.base) { -- case PROTO_BASE_LL_HDR: -- desc = &proto_netdev; -- break; -- case PROTO_BASE_TRANSPORT_HDR: -- desc = &proto_inet_service; -- break; -- default: -- break; -- } -- break; -- } -- } -+ if (desc == NULL) -+ desc = payload_gen_special_dependency(ctx, expr); - - if (desc == NULL) - return expr_error(ctx->msgs, expr, -diff --git a/tests/py/any/icmpX.t.netdev b/tests/py/any/icmpX.t.netdev -new file mode 100644 -index 0000000..a327ce6 ---- /dev/null -+++ b/tests/py/any/icmpX.t.netdev -@@ -0,0 +1,8 @@ -+:ingress;type filter hook ingress device lo priority 0 -+ -+*netdev;test-netdev;ingress -+ -+ip protocol icmp icmp type echo-request;ok;icmp type echo-request -+icmp type echo-request;ok -+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request -+icmpv6 type echo-request;ok -diff --git a/tests/py/any/icmpX.t.netdev.payload b/tests/py/any/icmpX.t.netdev.payload -new file mode 100644 -index 0000000..8b8107c ---- /dev/null -+++ b/tests/py/any/icmpX.t.netdev.payload -@@ -0,0 +1,36 @@ -+# ip protocol icmp icmp type echo-request -+netdev test-netdev ingress -+ [ meta load protocol => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ [ payload load 1b @ network header + 9 => reg 1 ] -+ [ cmp eq reg 1 0x00000001 ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ -+# icmp type echo-request -+netdev test-netdev ingress -+ [ meta load protocol => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ [ payload load 1b @ network header + 9 => reg 1 ] -+ [ cmp eq reg 1 0x00000001 ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ -+# ip6 nexthdr icmpv6 icmpv6 type echo-request -+netdev test-netdev ingress -+ [ meta load protocol => reg 1 ] -+ [ cmp eq reg 1 0x0000dd86 ] -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000080 ] -+ -+# icmpv6 type echo-request -+netdev test-netdev ingress -+ [ meta load protocol => reg 1 ] -+ [ cmp eq reg 1 0x0000dd86 ] -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000080 ] -+ -diff --git a/tests/py/bridge/icmpX.t b/tests/py/bridge/icmpX.t -new file mode 100644 -index 0000000..8c0a597 ---- /dev/null -+++ b/tests/py/bridge/icmpX.t -@@ -0,0 +1,8 @@ -+:input;type filter hook input priority 0 -+ -+*bridge;test-bridge;input -+ -+ip protocol icmp icmp type echo-request;ok;icmp type echo-request -+icmp type echo-request;ok -+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request -+icmpv6 type echo-request;ok -diff --git a/tests/py/bridge/icmpX.t.payload b/tests/py/bridge/icmpX.t.payload -new file mode 100644 -index 0000000..19efdd8 ---- /dev/null -+++ b/tests/py/bridge/icmpX.t.payload -@@ -0,0 +1,36 @@ -+# ip protocol icmp icmp type echo-request -+bridge test-bridge input -+ [ payload load 2b @ link header + 12 => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ [ payload load 1b @ network header + 9 => reg 1 ] -+ [ cmp eq reg 1 0x00000001 ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ -+# icmp type echo-request -+bridge test-bridge input -+ [ payload load 2b @ link header + 12 => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ [ payload load 1b @ network header + 9 => reg 1 ] -+ [ cmp eq reg 1 0x00000001 ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ -+# ip6 nexthdr icmpv6 icmpv6 type echo-request -+bridge test-bridge input -+ [ payload load 2b @ link header + 12 => reg 1 ] -+ [ cmp eq reg 1 0x0000dd86 ] -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000080 ] -+ -+# icmpv6 type echo-request -+bridge test-bridge input -+ [ payload load 2b @ link header + 12 => reg 1 ] -+ [ cmp eq reg 1 0x0000dd86 ] -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000080 ] -+ -diff --git a/tests/py/inet/icmpX.t b/tests/py/inet/icmpX.t -new file mode 100644 -index 0000000..1b467a1 ---- /dev/null -+++ b/tests/py/inet/icmpX.t -@@ -0,0 +1,8 @@ -+:input;type filter hook input priority 0 -+ -+*inet;test-inet;input -+ -+ip protocol icmp icmp type echo-request;ok;icmp type echo-request -+icmp type echo-request;ok -+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request -+icmpv6 type echo-request;ok -diff --git a/tests/py/inet/icmpX.t.payload b/tests/py/inet/icmpX.t.payload -new file mode 100644 -index 0000000..81ca774 ---- /dev/null -+++ b/tests/py/inet/icmpX.t.payload -@@ -0,0 +1,36 @@ -+# ip protocol icmp icmp type echo-request -+inet test-inet input -+ [ meta load nfproto => reg 1 ] -+ [ cmp eq reg 1 0x00000002 ] -+ [ payload load 1b @ network header + 9 => reg 1 ] -+ [ cmp eq reg 1 0x00000001 ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ -+# icmp type echo-request -+inet test-inet input -+ [ meta load nfproto => reg 1 ] -+ [ cmp eq reg 1 0x00000002 ] -+ [ payload load 1b @ network header + 9 => reg 1 ] -+ [ cmp eq reg 1 0x00000001 ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000008 ] -+ -+# ip6 nexthdr icmpv6 icmpv6 type echo-request -+inet test-inet input -+ [ meta load nfproto => reg 1 ] -+ [ cmp eq reg 1 0x0000000a ] -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000080 ] -+ -+# icmpv6 type echo-request -+inet test-inet input -+ [ meta load nfproto => reg 1 ] -+ [ cmp eq reg 1 0x0000000a ] -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000080 ] -+ --- -2.11.0 - diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch deleted file mode 100644 index 4d9e9d11a..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 9ade8fb75f8963375b45b3f2973b8bb7aa66ad76 Mon Sep 17 00:00:00 2001 -From: Phil Sutter <phil@nwl.cc> -Date: Thu, 16 Mar 2017 13:43:20 +0100 -Subject: [PATCH] proto: Add some exotic ICMPv6 types - -This adds support for matching on inverse ND messages as defined by -RFC3122 (not implemented in Linux) and MLDv2 as defined by RFC3810. - -Note that ICMPV6_MLD2_REPORT macro is defined in linux/icmpv6.h but -including that header leads to conflicts with symbols defined in -netinet/icmp6.h. - -In addition to the above, "mld-listener-done" is introduced as an alias -for "mld-listener-reduction". - -Signed-off-by: Phil Sutter <phil@nwl.cc> -Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> ---- -Upstream-Status: Backport -Signed-off-by: André Draszik <adraszik@tycoint.com> - src/proto.c | 8 ++++++++ - tests/py/ip6/icmpv6.t | 8 ++++++-- - tests/py/ip6/icmpv6.t.payload.ip6 | 34 +++++++++++++++++++++++++++++++++- - 3 files changed, 47 insertions(+), 3 deletions(-) - -diff --git a/src/proto.c b/src/proto.c -index fb96530..79e9dbf 100644 ---- a/src/proto.c -+++ b/src/proto.c -@@ -632,6 +632,10 @@ const struct proto_desc proto_ip = { - - #include <netinet/icmp6.h> - -+#define IND_NEIGHBOR_SOLICIT 141 -+#define IND_NEIGHBOR_ADVERT 142 -+#define ICMPV6_MLD2_REPORT 143 -+ - static const struct symbol_table icmp6_type_tbl = { - .base = BASE_DECIMAL, - .symbols = { -@@ -643,6 +647,7 @@ static const struct symbol_table icmp6_type_tbl = { - SYMBOL("echo-reply", ICMP6_ECHO_REPLY), - SYMBOL("mld-listener-query", MLD_LISTENER_QUERY), - SYMBOL("mld-listener-report", MLD_LISTENER_REPORT), -+ SYMBOL("mld-listener-done", MLD_LISTENER_REDUCTION), - SYMBOL("mld-listener-reduction", MLD_LISTENER_REDUCTION), - SYMBOL("nd-router-solicit", ND_ROUTER_SOLICIT), - SYMBOL("nd-router-advert", ND_ROUTER_ADVERT), -@@ -650,6 +655,9 @@ static const struct symbol_table icmp6_type_tbl = { - SYMBOL("nd-neighbor-advert", ND_NEIGHBOR_ADVERT), - SYMBOL("nd-redirect", ND_REDIRECT), - SYMBOL("router-renumbering", ICMP6_ROUTER_RENUMBERING), -+ SYMBOL("ind-neighbor-solicit", IND_NEIGHBOR_SOLICIT), -+ SYMBOL("ind-neighbor-advert", IND_NEIGHBOR_ADVERT), -+ SYMBOL("mld2-listener-report", ICMPV6_MLD2_REPORT), - SYMBOL_LIST_END - }, - }; -diff --git a/tests/py/ip6/icmpv6.t b/tests/py/ip6/icmpv6.t -index afbd451..a898fe3 100644 ---- a/tests/py/ip6/icmpv6.t -+++ b/tests/py/ip6/icmpv6.t -@@ -11,7 +11,8 @@ icmpv6 type echo-request accept;ok - icmpv6 type echo-reply accept;ok - icmpv6 type mld-listener-query accept;ok - icmpv6 type mld-listener-report accept;ok --icmpv6 type mld-listener-reduction accept;ok -+icmpv6 type mld-listener-done accept;ok -+icmpv6 type mld-listener-reduction accept;ok;icmpv6 type mld-listener-done accept - icmpv6 type nd-router-solicit accept;ok - icmpv6 type nd-router-advert accept;ok - icmpv6 type nd-neighbor-solicit accept;ok -@@ -19,8 +20,11 @@ icmpv6 type nd-neighbor-advert accept;ok - icmpv6 type nd-redirect accept;ok - icmpv6 type parameter-problem accept;ok - icmpv6 type router-renumbering accept;ok -+icmpv6 type ind-neighbor-solicit accept;ok -+icmpv6 type ind-neighbor-advert accept;ok -+icmpv6 type mld2-listener-report accept;ok - icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept;ok --icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept;ok -+icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept;ok - icmpv6 type {mld-listener-query, time-exceeded, nd-router-advert} accept;ok - icmpv6 type != {mld-listener-query, time-exceeded, nd-router-advert} accept;ok - -diff --git a/tests/py/ip6/icmpv6.t.payload.ip6 b/tests/py/ip6/icmpv6.t.payload.ip6 -index 9fe2496..30f58ca 100644 ---- a/tests/py/ip6/icmpv6.t.payload.ip6 -+++ b/tests/py/ip6/icmpv6.t.payload.ip6 -@@ -54,6 +54,14 @@ ip6 test-ip6 input - [ cmp eq reg 1 0x00000083 ] - [ immediate reg 0 accept ] - -+# icmpv6 type mld-listener-done accept -+ip6 test-ip6 input -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000084 ] -+ [ immediate reg 0 accept ] -+ - # icmpv6 type mld-listener-reduction accept - ip6 test-ip6 input - [ payload load 1b @ network header + 6 => reg 1 ] -@@ -118,6 +126,30 @@ ip6 test-ip6 input - [ cmp eq reg 1 0x0000008a ] - [ immediate reg 0 accept ] - -+# icmpv6 type ind-neighbor-solicit accept -+ip6 test-ip6 input -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x0000008d ] -+ [ immediate reg 0 accept ] -+ -+# icmpv6 type ind-neighbor-advert accept -+ip6 test-ip6 input -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x0000008e ] -+ [ immediate reg 0 accept ] -+ -+# icmpv6 type mld2-listener-report accept -+ip6 test-ip6 input -+ [ payload load 1b @ network header + 6 => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x0000008f ] -+ [ immediate reg 0 accept ] -+ - # icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept - __set%d test-ip6 3 - __set%d test-ip6 0 -@@ -129,7 +161,7 @@ ip6 test-ip6 input - [ lookup reg 1 set __set%d ] - [ immediate reg 0 accept ] - --# icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept -+# icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept - __set%d test-ip6 3 - __set%d test-ip6 0 - element 0000008a : 0 [end] element 00000084 : 0 [end] element 00000003 : 0 [end] element 00000085 : 0 [end] --- -2.11.0 - diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch deleted file mode 100644 index 50cac300e..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 8d8cfe5ad6ca460a5262fb15fdbef3601058c784 Mon Sep 17 00:00:00 2001 -From: Florian Westphal <fw@strlen.de> -Date: Thu, 18 May 2017 13:30:54 +0200 -Subject: [PATCH 1/4] payload: split ll proto dependency into helper - -will be re-used in folloup patch for icmp/icmpv6 depenency -handling. - -Signed-off-by: Florian Westphal <fw@strlen.de> ---- -Upstream-Status: Backport -Signed-off-by: André Draszik <adraszik@tycoint.com> - src/payload.c | 29 ++++++++++++++++++----------- - 1 file changed, 18 insertions(+), 11 deletions(-) - -diff --git a/src/payload.c b/src/payload.c -index 55128fe..31e5a02 100644 ---- a/src/payload.c -+++ b/src/payload.c -@@ -224,21 +224,28 @@ static int payload_add_dependency(struct eval_ctx *ctx, - } - - static const struct proto_desc * -+payload_get_get_ll_hdr(const struct eval_ctx *ctx) -+{ -+ switch (ctx->pctx.family) { -+ case NFPROTO_INET: -+ return &proto_inet; -+ case NFPROTO_BRIDGE: -+ return &proto_eth; -+ case NFPROTO_NETDEV: -+ return &proto_netdev; -+ default: -+ break; -+ } -+ -+ return NULL; -+} -+ -+static const struct proto_desc * - payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) - { - switch (expr->payload.base) { - case PROTO_BASE_LL_HDR: -- switch (ctx->pctx.family) { -- case NFPROTO_INET: -- return &proto_inet; -- case NFPROTO_BRIDGE: -- return &proto_eth; -- case NFPROTO_NETDEV: -- return &proto_netdev; -- default: -- break; -- } -- break; -+ return payload_get_get_ll_hdr(ctx); - case PROTO_BASE_TRANSPORT_HDR: - if (expr->payload.desc == &proto_icmp) - return &proto_ip; --- -2.11.0 - diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch deleted file mode 100644 index 180edb350..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 9a1f2bbf3cd2417e0c10d18578e224abe2071d68 Mon Sep 17 00:00:00 2001 -From: Florian Westphal <fw@strlen.de> -Date: Tue, 21 Mar 2017 19:47:22 +0100 -Subject: [PATCH 2/4] src: allow update of net base w. meta l4proto icmpv6 - -nft add rule ip6 f i meta l4proto ipv6-icmp icmpv6 type nd-router-advert -<cmdline>:1:50-60: Error: conflicting protocols specified: unknown vs. icmpv6 - -add icmpv6 to nexthdr list so base gets updated correctly. - -Reported-by: Thomas Woerner <twoerner@redhat.com> -Signed-off-by: Florian Westphal <fw@strlen.de> ---- -Upstream-Status: Backport -Signed-off-by: André Draszik <adraszik@tycoint.com> - src/proto.c | 1 + - tests/py/any/meta.t | 1 + - tests/py/any/meta.t.payload | 7 +++++++ - 3 files changed, 9 insertions(+) - -diff --git a/src/proto.c b/src/proto.c -index 79e9dbf..fcdfbe7 100644 ---- a/src/proto.c -+++ b/src/proto.c -@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = { - PROTO_LINK(IPPROTO_TCP, &proto_tcp), - PROTO_LINK(IPPROTO_DCCP, &proto_dccp), - PROTO_LINK(IPPROTO_SCTP, &proto_sctp), -+ PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), - }, - .templates = { - [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), -diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t -index c3ac0a4..2ff942f 100644 ---- a/tests/py/any/meta.t -+++ b/tests/py/any/meta.t -@@ -38,6 +38,7 @@ meta l4proto { 33, 55, 67, 88};ok;meta l4proto { 33, 55, 67, 88} - meta l4proto != { 33, 55, 67, 88};ok - meta l4proto { 33-55};ok - meta l4proto != { 33-55};ok -+meta l4proto ipv6-icmp icmpv6 type nd-router-advert;ok;icmpv6 type nd-router-advert - - meta priority root;ok - meta priority none;ok -diff --git a/tests/py/any/meta.t.payload b/tests/py/any/meta.t.payload -index e432656..871f1ad 100644 ---- a/tests/py/any/meta.t.payload -+++ b/tests/py/any/meta.t.payload -@@ -187,6 +187,13 @@ ip test-ip4 input - [ byteorder reg 1 = hton(reg 1, 2, 1) ] - [ lookup reg 1 set __set%d 0x1 ] - -+# meta l4proto ipv6-icmp icmpv6 type nd-router-advert -+ip test-ip4 input -+ [ meta load l4proto => reg 1 ] -+ [ cmp eq reg 1 0x0000003a ] -+ [ payload load 1b @ transport header + 0 => reg 1 ] -+ [ cmp eq reg 1 0x00000086 ] -+ - # meta mark 0x4 - ip test-ip4 input - [ meta load mark => reg 1 ] --- -2.11.0 - diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch deleted file mode 100644 index f600ae05c..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 2366ed9ffcb4f5f5341f10f0a1d1a4688d37ad87 Mon Sep 17 00:00:00 2001 -From: Florian Westphal <fw@strlen.de> -Date: Wed, 22 Mar 2017 15:08:48 +0100 -Subject: [PATCH 3/4] src: ipv6: switch implicit dependencies to meta l4proto - -when using rule like - -ip6 filter input tcp dport 22 -nft generates: - [ payload load 1b @ network header + 6 => reg 1 ] - [ cmp eq reg 1 0x00000006 ] - [ payload load 2b @ transport header + 2 => reg 1 ] - [ cmp eq reg 1 0x00001600 ] - -which is: ip6 filter input ip6 nexthdr tcp dport 22 -IOW, such a rule won't match if e.g. a fragment header is in place. - -This changes ip6_proto to use 'meta l4proto' which is the protocol header -found by exthdr walk. - -A side effect is that for bridge we get a shorter dependency chain as it -no longer needs to prepend 'ether proto ipv6' for old 'ip6 nexthdr' dep. - -Only problem: - -ip6 nexthdr tcp tcp dport 22 -will now inject a (useless) meta l4 dependency as ip6 nexthdr is no -longer flagged as EXPR_F_PROTOCOL, to avoid this add a small helper -that skips the unneded meta dependency in that case. - -Signed-off-by: Florian Westphal <fw@strlen.de> ---- -Upstream-Status: Backport -Signed-off-by: André Draszik <adraszik@tycoint.com> - src/payload.c | 19 ++++++++++++++++++- - src/proto.c | 2 +- - 2 files changed, 19 insertions(+), 2 deletions(-) - -diff --git a/src/payload.c b/src/payload.c -index 31e5a02..38db15e 100644 ---- a/src/payload.c -+++ b/src/payload.c -@@ -117,6 +117,23 @@ static const struct expr_ops payload_expr_ops = { - .pctx_update = payload_expr_pctx_update, - }; - -+/* -+ * ipv6 is special case, we normally use 'meta l4proto' to fetch the last -+ * l4 header of the ipv6 extension header chain so we will also match -+ * tcp after a fragmentation header, for instance. -+ * -+ * If user specifically asks for nexthdr x, treat is as a full -+ * dependency rather than injecting another (useless) meta l4 one. -+ */ -+static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type) -+{ -+ if (type == desc->protocol_key || -+ (desc == &proto_ip6 && type == IP6HDR_NEXTHDR)) -+ return true; -+ -+ return false; -+} -+ - struct expr *payload_expr_alloc(const struct location *loc, - const struct proto_desc *desc, - unsigned int type) -@@ -129,7 +146,7 @@ struct expr *payload_expr_alloc(const struct location *loc, - if (desc != NULL) { - tmpl = &desc->templates[type]; - base = desc->base; -- if (type == desc->protocol_key) -+ if (proto_key_is_protocol(desc, type)) - flags = EXPR_F_PROTOCOL; - } else { - tmpl = &proto_unknown_template; -diff --git a/src/proto.c b/src/proto.c -index fcdfbe7..3b20a5f 100644 ---- a/src/proto.c -+++ b/src/proto.c -@@ -707,7 +707,6 @@ const struct proto_desc proto_icmp6 = { - const struct proto_desc proto_ip6 = { - .name = "ip6", - .base = PROTO_BASE_NETWORK_HDR, -- .protocol_key = IP6HDR_NEXTHDR, - .protocols = { - PROTO_LINK(IPPROTO_ESP, &proto_esp), - PROTO_LINK(IPPROTO_AH, &proto_ah), -@@ -720,6 +719,7 @@ const struct proto_desc proto_ip6 = { - PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), - }, - .templates = { -+ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), - [IP6HDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4), - [IP6HDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 4, 6), - [IP6HDR_ECN] = HDR_BITFIELD("ecn", &ecn_type, 10, 2), --- -2.11.0 - diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch deleted file mode 100644 index 00076d7ce..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch +++ /dev/null @@ -1,84 +0,0 @@ -From f21a7a4849b50c30341ec571813bd7fe37040ad3 Mon Sep 17 00:00:00 2001 -From: Florian Westphal <fw@strlen.de> -Date: Thu, 18 May 2017 13:30:54 +0200 -Subject: [PATCH 4/4] payload: enforce ip/ip6 protocol depending on icmp or - icmpv6 - -After some discussion with Pablo we agreed to treat icmp/icmpv6 specially. - -in the case of a rule like 'tcp dport 22' the inet, bridge and netdev -families only care about the lower layer protocol. - -In the icmpv6 case however we'd like to also enforce an ipv6 protocol check -(and ipv4 check in icmp case). - -This extends payload_gen_special_dependency() to consider this. -With this patch: - -add rule $pf filter input meta l4proto icmpv6 -add rule $pf filter input meta l4proto icmpv6 icmpv6 type echo-request -add rule $pf filter input icmpv6 type echo-request - -will work in all tables and all families. -For inet/bridge/netdev, an ipv6 protocol dependency is added; this will -not match ipv4 packets with ip->protocol == icmpv6, EXCEPT in the case -of the ip family. - -Its still possible to match icmpv6-in-ipv4 in inet/bridge/netdev with an -explicit dependency: - -add rule inet f i ip protocol ipv6-icmp meta l4proto ipv6-icmp icmpv6 type ... - -Implicit dependencies won't get removed at the moment, so - bridge ... icmp type echo-request -will be shown as - ether type ip meta l4proto 1 icmp type echo-request - -Signed-off-by: Florian Westphal <fw@strlen.de> ---- -Upstream-Status: Backport -Signed-off-by: André Draszik <adraszik@tycoint.com> - src/payload.c | 27 +++++++++++++++++++++++---- - 1 file changed, 23 insertions(+), 4 deletions(-) - -diff --git a/src/payload.c b/src/payload.c -index 38db15e..8796ee5 100644 ---- a/src/payload.c -+++ b/src/payload.c -@@ -264,10 +264,29 @@ payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) - case PROTO_BASE_LL_HDR: - return payload_get_get_ll_hdr(ctx); - case PROTO_BASE_TRANSPORT_HDR: -- if (expr->payload.desc == &proto_icmp) -- return &proto_ip; -- if (expr->payload.desc == &proto_icmp6) -- return &proto_ip6; -+ if (expr->payload.desc == &proto_icmp || -+ expr->payload.desc == &proto_icmp6) { -+ const struct proto_desc *desc, *desc_upper; -+ struct stmt *nstmt; -+ -+ desc = ctx->pctx.protocol[PROTO_BASE_LL_HDR].desc; -+ if (!desc) { -+ desc = payload_get_get_ll_hdr(ctx); -+ if (!desc) -+ break; -+ } -+ -+ desc_upper = &proto_ip6; -+ if (expr->payload.desc == &proto_icmp) -+ desc_upper = &proto_ip; -+ -+ if (payload_add_dependency(ctx, desc, desc_upper, -+ expr, &nstmt) < 0) -+ return NULL; -+ -+ list_add_tail(&nstmt->list, &ctx->stmt->list); -+ return desc_upper; -+ } - return &proto_inet_service; - default: - break; --- -2.11.0 - diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch deleted file mode 100644 index 5b72437d2..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 0825c57d571bb7121e7048e198b9b023f7e7f358 Mon Sep 17 00:00:00 2001 -From: Florian Westphal <fw@strlen.de> -Date: Sun, 7 May 2017 03:53:30 +0200 -Subject: [PATCH] src: ip: switch implicit dependencies to meta l4proto too - -after ip6 nexthdr also switch ip to meta l4proto instead of ip protocol. - -While its needed for ipv6 (due to extension headers) this isn't needed -for ip but it has the advantage that - -tcp dport 22 - -produces same expressions for ip/ip6/inet families. - -Signed-off-by: Florian Westphal <fw@strlen.de> ---- -Upstream-Status: Backport -Signed-off-by: André Draszik <adraszik@tycoint.com> - src/payload.c | 17 +++++++++++------ - src/proto.c | 3 ++- - 2 files changed, 13 insertions(+), 7 deletions(-) - -diff --git a/src/payload.c b/src/payload.c -index 8796ee5..11b6df3 100644 ---- a/src/payload.c -+++ b/src/payload.c -@@ -118,17 +118,22 @@ static const struct expr_ops payload_expr_ops = { - }; - - /* -- * ipv6 is special case, we normally use 'meta l4proto' to fetch the last -- * l4 header of the ipv6 extension header chain so we will also match -+ * We normally use 'meta l4proto' to fetch the last l4 header of the -+ * ipv6 extension header chain so we will also match - * tcp after a fragmentation header, for instance. -+ * For consistency we also use meta l4proto for ipv4. - * -- * If user specifically asks for nexthdr x, treat is as a full -- * dependency rather than injecting another (useless) meta l4 one. -+ * If user specifically asks for nexthdr x, don't add another (useless) -+ * meta dependency. - */ - static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type) - { -- if (type == desc->protocol_key || -- (desc == &proto_ip6 && type == IP6HDR_NEXTHDR)) -+ if (type == desc->protocol_key) -+ return true; -+ -+ if (desc == &proto_ip6 && type == IP6HDR_NEXTHDR) -+ return true; -+ if (desc == &proto_ip && type == IPHDR_PROTOCOL) - return true; - - return false; -diff --git a/src/proto.c b/src/proto.c -index 3b20a5f..2afedf7 100644 ---- a/src/proto.c -+++ b/src/proto.c -@@ -587,7 +587,6 @@ const struct proto_desc proto_ip = { - .name = "ip", - .base = PROTO_BASE_NETWORK_HDR, - .checksum_key = IPHDR_CHECKSUM, -- .protocol_key = IPHDR_PROTOCOL, - .protocols = { - PROTO_LINK(IPPROTO_ICMP, &proto_icmp), - PROTO_LINK(IPPROTO_ESP, &proto_esp), -@@ -600,6 +599,7 @@ const struct proto_desc proto_ip = { - PROTO_LINK(IPPROTO_SCTP, &proto_sctp), - }, - .templates = { -+ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), - [IPHDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4), - [IPHDR_HDRLENGTH] = HDR_BITFIELD("hdrlength", &integer_type, 4, 4), - [IPHDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 8, 6), -@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = { - PROTO_LINK(IPPROTO_TCP, &proto_tcp), - PROTO_LINK(IPPROTO_DCCP, &proto_dccp), - PROTO_LINK(IPPROTO_SCTP, &proto_sctp), -+ PROTO_LINK(IPPROTO_ICMP, &proto_icmp), - PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), - }, - .templates = { --- -2.11.0 - diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch deleted file mode 100644 index 8dce90a75..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch +++ /dev/null @@ -1,26 +0,0 @@ -[PATCH] disable to make ntf.8 man - -Upstream-Status: Pending - -$DB2MAN do not support the xinclude parameter whether it is -docbook2x-man or other, so disable to make ntf.8 man - -Signed-off-by: Roy Li <rongqing.li@windriver.com> ---- - doc/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/doc/Makefile.am b/doc/Makefile.am -index a92de7f..537c36b 100644 ---- a/doc/Makefile.am -+++ b/doc/Makefile.am -@@ -1,5 +1,5 @@ - if BUILD_MAN --man_MANS = nft.8 -+#man_MANS = nft.8 - endif - - if BUILD_PDF --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb deleted file mode 100644 index 0ea79953b..000000000 --- a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Netfilter Tables userspace utillites" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79" -SECTION = "net" - -DEPENDS = "libmnl libnftnl readline gmp" -RRECOMMENDS_${PN} += "kernel-module-nf-tables \ - " - -SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \ - file://fix-to-generate-ntf.8.patch \ - \ - file://0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch \ - file://0002-proto-Add-some-exotic-ICMPv6-types.patch \ - \ - file://0003-payload-split-ll-proto-dependency-into-helper.patch \ - file://0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch \ - file://0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch \ - file://0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch \ - file://0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch \ - " -SRC_URI[md5sum] = "4c005e76a15a029afaba71d7db21d065" -SRC_URI[sha256sum] = "fe639239d801ce5890397f6f4391c58a934bfc27d8b7d5ef922692de5ec4ed43" - -ASNEEDED = "" - -inherit autotools pkgconfig diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb new file mode 100644 index 000000000..aadf4f7f5 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Netfilter Tables userspace utillites" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79" + +DEPENDS = "libmnl libnftnl readline gmp bison-native" + +SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \ + " +SRC_URI[md5sum] = "d4dcb61df80aa544b2e142e91d937635" +SRC_URI[sha256sum] = "ad8181b5fcb9ca572f444bed54018749588522ee97e4c21922648bb78d7e7e91" + +inherit autotools manpages pkgconfig + +PACKAGECONFIG ?= "" +PACKAGECONFIG[man] = "--enable--man-doc, --disable-man-doc" + +ASNEEDED = "" + +RRECOMMENDS_${PN} += "kernel-module-nf-tables" diff --git a/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb b/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb index c2d71563a..8c6979c2e 100644 --- a/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb +++ b/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb @@ -5,13 +5,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" DEPENDS = "openssl zlib icu" -PV = "1.6.0" +PV = "1.7.1" SRC_URI = "git://github.com/znc/znc.git;name=znc \ git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket \ " -SRCREV_znc = "f47e8465efa4e1cd948b9caae93ac401b4355df8" -SRCREV_Csocket = "07b4437396122650e5b8fb3d014e820a5decf4ee" +SRCREV_znc = "c426898b3a1b899dfe8a8b2a3eeb4b18d8be1bf2" +SRCREV_Csocket = "e8d9e0bb248c521c2c7fa01e1c6a116d929c41b4" # This constructs a composite revision based on multiple SRCREV's. # diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb index 9487fdc2c..ebe867d77 100644 --- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb +++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb @@ -4,15 +4,15 @@ SECTION = "net" LICENSE = "SPL-1.0" LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89" -DEPENDS_append_libc-musl = " libtirpc" +DEPENDS += "libtirpc" SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \ file://gcc4.patch \ file://0001-rpcgen-Fix-printf-formats.patch \ " SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642" SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b" -CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" -LIBS_append_libc-musl = " -ltirpc" +CFLAGS += "-I${STAGING_INCDIR}/tirpc" +LIBS += "-ltirpc" do_configure () { ./configure --prefix=${prefix} diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb index 3990f7b52..03dd96338 100644 --- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb +++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb @@ -2,7 +2,7 @@ DESCRIPTION = "netkit-rsh includes the rsh daemon and client." SECTION = "net" HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" LICENSE = "BSD-4-Clause" -DEPENDS = "xinetd libgcrypt" +DEPENDS = "xinetd libgcrypt virtual/crypt" LIC_FILES_CHKSUM = "file://rsh/rsh.c;endline=32;md5=487b3c637bdc181d32b2a8543d41b606" @@ -100,3 +100,6 @@ RPROVIDES_${PN}-server = "rshd" RDEPENDS_${PN}-server = "xinetd" RDEPENDS_${PN}-server += "tcp-wrappers" + +# http://errors.yoctoproject.org/Errors/Details/186963/ +EXCLUDE_FROM_WORLD_libc-musl = "1" diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch new file mode 100644 index 000000000..55926468d --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch @@ -0,0 +1,79 @@ +From 5746b68ba9dda87586b3ac88fe84031cbc0015f7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 11 May 2018 12:20:03 -0700 +Subject: [PATCH] Link with libtirpc + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + configure | 2 +- + rpc.rusersd/rusers_proc.c | 7 +------ + rpc.rusersd/rusersd.c | 6 +----- + rup/rup.c | 2 +- + 4 files changed, 4 insertions(+), 13 deletions(-) + +diff --git a/configure b/configure +index 85f6ca6..2d2d4b7 100755 +--- a/configure ++++ b/configure +@@ -147,7 +147,7 @@ else + fi + + LDFLAGS= +-LIBS= ++LIBS="-ltirpc" + + rm -f __conftest* + +diff --git a/rpc.rusersd/rusers_proc.c b/rpc.rusersd/rusers_proc.c +index 9ae6306..f9e237c 100644 +--- a/rpc.rusersd/rusers_proc.c ++++ b/rpc.rusersd/rusers_proc.c +@@ -57,12 +57,7 @@ char rp_rcsid[] = + #define RUT_TIME ut_time + #endif + +-/* Glibc strikes again */ +-#ifdef __GLIBC__ +- #include <rpcsvc/rusers.h> +-#else +- #include "rusers.h" +-#endif ++#include "rusers.h" + + void rusers_service(struct svc_req *rqstp, SVCXPRT *transp); + +diff --git a/rpc.rusersd/rusersd.c b/rpc.rusersd/rusersd.c +index 762be9b..dd355ac 100644 +--- a/rpc.rusersd/rusersd.c ++++ b/rpc.rusersd/rusersd.c +@@ -38,11 +38,7 @@ char rusersd_rcsid[] = + #include <rpc/pmap_clnt.h> + #include <unistd.h> + #include <grp.h> +-#ifdef __GLIBC__ +- #include <rpcsvc/rusers.h> +-#else +- #include "rusers.h" +-#endif ++#include "rusers.h" + + #include "../version.h" + +diff --git a/rup/rup.c b/rup/rup.c +index e5669ff..887f89d 100644 +--- a/rup/rup.c ++++ b/rup/rup.c +@@ -48,7 +48,7 @@ char rcsid[] = "$Id: rup.c,v 1.8 2000/07/22 19:51:40 dholland Exp $"; + + #undef FSHIFT /* Use protocol's shift and scale values */ + #undef FSCALE +-#include <rpcsvc/rstat.h> ++#include "rstat.h" + + #include "../version.h" + +-- +2.17.0 + diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb index 459e39e59..9b8af27f8 100644 --- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb +++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb @@ -9,6 +9,7 @@ DEPENDS = " tcp-wrappers libtirpc rpcbind" SRC_URI = "http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \ http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}-8.diff.gz;name=patch8 \ file://rpc.rusersd-Makefile-fix-parallel-build-issue.patch \ + file://0001-Link-with-libtirpc.patch \ " SRC_URI[archive.md5sum] = "dc99a80b9fde2ab427c874f88f1c1602" @@ -18,10 +19,14 @@ SRC_URI[patch8.sha256sum] = "14882dbdda4e37baa84d55b54b46c7e063a20fc9e04d1be1a28 inherit autotools-brokensep +CFLAGS += "-I${STAGING_INCDIR}/tirpc" +LIBS += "-ltirpc" + do_configure () { ./configure --prefix=${prefix} echo "LDFLAGS=${LDFLAGS}" >> MCONFIG echo "USE_GLIBC=1" >> MCONFIG + echo "LIBS=${LIBS}" >> MCONFIG } do_install () { @@ -68,3 +73,6 @@ FILES_${PN}-dbg = "${prefix}/src/debug \ ${bindir}/.debug ${sbindir}/.debug" RDEPENDS_${PN}-server = "tcp-wrappers xinetd rpcbind" + +# http://errors.yoctoproject.org/Errors/Details/186962/ +EXCLUDE_FROM_WORLD_libc-musl = "1" diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch new file mode 100644 index 000000000..945785d3c --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch @@ -0,0 +1,114 @@ +From 06ed6a6bf25a22902846097d6b6c97e070c2c326 Mon Sep 17 00:00:00 2001 +From: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp> +Date: Fri, 1 Jun 2018 14:27:35 +0900 +Subject: [PATCH] telnetd: Fix deadlock on cleanup + +The cleanup function in telnetd is called both directly and on SIGCHLD +signals. This, unfortunately, triggered a deadlock in eglibc 2.9 while +running on a 2.6.31.11 kernel. + +What we were seeing is hangs like these: + + (gdb) bt + #0 0xb7702424 in __kernel_vsyscall () + #1 0xb7658e61 in __lll_lock_wait_private () from ./lib/libc.so.6 + #2 0xb767e7b5 in _L_lock_15 () from ./lib/libc.so.6 + #3 0xb767e6e0 in utmpname () from ./lib/libc.so.6 + #4 0xb76bcde7 in logout () from ./lib/libutil.so.1 + #5 0x0804c827 in cleanup () + #6 <signal handler called> + #7 0xb7702424 in __kernel_vsyscall () + #8 0xb7641003 in __fcntl_nocancel () from ./lib/libc.so.6 + #9 0xb767e0c3 in getutline_r_file () from ./lib/libc.so.6 + #10 0xb767d675 in getutline_r () from ./lib/libc.so.6 + #11 0xb76bce42 in logout () from ./lib/libutil.so.1 + #12 0x0804c827 in cleanup () + #13 0x0804a0b5 in telnet () + #14 0x0804a9c3 in main () + +and what has happened here is that the user closes the telnet session +via the escape character. This causes telnetd to call cleanup in frame +the SIGCHLD signal is delivered while telnetd is executing cleanup. + +Telnetd then calls the signal handler for SIGCHLD, which is cleanup(). +Ouch. The actual deadlock is in libc. getutline_r in frame #10 gets the +__libc_utmp_lock lock, and utmpname above does the same thing in frame + +The fix registers the SIGCHLD handler as cleanup_sighandler, and makes +cleanup disable the SIGCHLD signal before calling cleanup_sighandler. + +Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net> + +The patch was imported from the Ubuntu netkit-telnet package. +(https://bugs.launchpad.net/ubuntu/+source/netkit-telnet/+bug/507455) + +A previous patch declaring attributes of functions, but it is not used +in upstream. + +Signed-off-by: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp> +--- + telnetd/ext.h | 1 + + telnetd/sys_term.c | 17 ++++++++++++++++- + telnetd/telnetd.c | 2 +- + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/telnetd/ext.h b/telnetd/ext.h +index b98d6ec..08f9d07 100644 +--- a/telnetd/ext.h ++++ b/telnetd/ext.h +@@ -97,6 +97,7 @@ void add_slc(int, int, int); + void check_slc(void); + void change_slc(int, int, int); + void cleanup(int); ++void cleanup_sighandler(int); + void clientstat(int, int, int); + void copy_termbuf(char *, int); + void deferslc(void); +diff --git a/telnetd/sys_term.c b/telnetd/sys_term.c +index 5b4aa84..c4fb0f7 100644 +--- a/telnetd/sys_term.c ++++ b/telnetd/sys_term.c +@@ -719,7 +719,7 @@ static void addarg(struct argv_stuff *avs, const char *val) { + * This is the routine to call when we are all through, to + * clean up anything that needs to be cleaned up. + */ +-void cleanup(int sig) { ++void cleanup_sighandler(int sig) { + char *p; + (void)sig; + +@@ -742,3 +742,18 @@ void cleanup(int sig) { + shutdown(net, 2); + exit(0); + } ++ ++void cleanup(int sig) { ++ sigset_t mask, oldmask; ++ ++ /* Set up the mask of signals to temporarily block. */ ++ sigemptyset (&mask); ++ sigaddset (&mask, SIGCHLD); ++ ++ /* Block SIGCHLD while running cleanup */ ++ sigprocmask (SIG_BLOCK, &mask, &oldmask); ++ ++ cleanup_sighandler(sig); ++ /* Technically not needed since cleanup_sighandler exits */ ++ sigprocmask (SIG_UNBLOCK, &mask, NULL); ++} +diff --git a/telnetd/telnetd.c b/telnetd/telnetd.c +index 9ace838..788919c 100644 +--- a/telnetd/telnetd.c ++++ b/telnetd/telnetd.c +@@ -833,7 +833,7 @@ void telnet(int f, int p) + signal(SIGTTOU, SIG_IGN); + #endif + +- signal(SIGCHLD, cleanup); ++ signal(SIGCHLD, cleanup_sighandler); + + #ifdef TIOCNOTTY + { +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb index 807b56644..db4b1c98c 100644 --- a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb +++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb @@ -5,14 +5,18 @@ DEPENDS = "ncurses" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef" -SRC_URI = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${BP}.tar.gz \ +SRC_URI = "http://ftp.linux.org.uk/pub/linux/Networking/netkit/${BP}.tar.gz \ file://To-aviod-buffer-overflow-in-telnet.patch \ file://Warning-fix-in-the-step-of-install.patch \ file://telnet-xinetd \ file://cross-compile.patch \ file://0001-telnet-telnetd-Fix-print-format-strings.patch \ + file://0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch \ " +UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar" + EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \ MANMODE=644 MANDIR=${mandir}" @@ -46,16 +50,16 @@ do_install () { install -p -m644 ${WORKDIR}/telnet-xinetd ${D}/etc/xinetd.d/telnet } -pkg_postinst_${PN} () { -#!/bin/sh - update-alternatives --install ${bindir}/telnet telnet telnet.${PN} 100 -} +inherit update-alternatives -pkg_prerm_${PN} () { -#!/bin/sh - update-alternatives --remove telnet telnet.${PN} 100 -} +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE_${PN} = "telnet" +ALTERNATIVE_LINK_NAME[telnet] = "${bindir}/telnet" +ALTERNATIVE_TARGET[telnet] = "${bindir}/telnet.${PN}" SRC_URI[md5sum] = "d6beabaaf53fe6e382c42ce3faa05a36" SRC_URI[sha256sum] = "9c80d5c7838361a328fb6b60016d503def9ce53ad3c589f3b08ff71a2bb88e00" FILES_${PN} += "${sbindir}/in.* ${libdir}/* ${sysconfdir}/xinetd.d/*" + +# http://errors.yoctoproject.org/Errors/Details/186954/ +EXCLUDE_FROM_WORLD_libc-musl = "1" diff --git a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.3.bb b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.3.bb new file mode 100644 index 000000000..8f028474f --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.3.bb @@ -0,0 +1,27 @@ +SUMMARY = "Babel is a loop-avoiding distance-vector routing protocol" +DESCRIPTION = "\ +Babel is a loop-avoiding distance-vector routing protocol for IPv6 and \ +IPv4 with fast convergence properties. It is based on the ideas in DSDV, AODV \ +and Cisco's EIGRP, but is designed to work well not only in wired networks \ +but also in wireless mesh networks, and has been extended with support \ +for overlay networks. Babel is in the process of becoming an IETF Standard. \ +" +HOMEPAGE = "https://www.irif.fr/~jch/software/babel/" +SECTION = "net" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE;md5=411a48ac3c2e9e0911b8dd9aed26f754" + +SRC_URI = "git://github.com/jech/babeld.git;protocol=git" +SRCREV = "535184173fcde5ddc43020cd197d01d1ea0e9a8b" + +S = "${WORKDIR}/git" + +do_compile () { + oe_runmake babeld +} + +do_install () { + oe_runmake install.minimal PREFIX=${D} +} + diff --git a/meta-openembedded/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch b/meta-openembedded/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch new file mode 100644 index 000000000..d5e242ac2 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch @@ -0,0 +1,97 @@ +From d527a0b7b63e43263384540b5525714484bb089f Mon Sep 17 00:00:00 2001 +From: Mingli Yu <Mingli.Yu@windriver.com> +Date: Mon, 3 Sep 2018 14:40:56 +0800 +Subject: [PATCH] libfdcore/sctp.c: update the old sctp api check + +The initial sctp api check for freediameter as below: + === + commit d3c5e991cb532ea09684d69fb4d0d58e9bc39a0c + Author: Sebastien Decugis <sdecugis@freediameter.net> + Date: Mon Jun 3 12:05:37 2013 +0800 + + Add some compliancy to RFC6458. Not tested however as Ubuntu does not support this yet + + [snip] + +/* Use old draft-ietf-tsvwg-sctpsocket-17 API ? If not defined, RFC6458 API will be used */ + +/* #define OLD_SCTP_SOCKET_API */ + + + +/* Automatically fallback to old API if some of the new symbols are not defined */ + +#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO))) + +# define OLD_SCTP_SOCKET_API + +#endif + === + +SCTP_RECVRCVINFO is defined in <linux/sctp.h>, +but <linux/sctp.h> is't included in the source code +previouly. So defined(SCTP_RECVRCVINFO) can be 0 +and it make old sctp socket api definiton in effect +as below: + # define OLD_SCTP_SOCKET_API + +After lksctp-tools upgrade to 1.0.18, there is below +commit introduced: +=== +commit 3c8bd0d26b64611c690f33f5802c734b0642c1d8 +Author: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +Date: Tue Apr 17 20:17:14 2018 -0300 + + sctp.h: make use kernel UAPI header + + and with that, remove tons of duplicated declarations. These were + lagging behind the kernel header, which is always the most updated one, + and as the library is intended to be run only on Linux, there is no + reason that we cannot re-use what is in there. + + That said, this patch drops all duplicated declarations and includes + linux/sctp.h to bring them into lksctp-tools. + + Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> + + [snip] + #include <stdint.h> + #include <linux/types.h> + #include <sys/socket.h> ++#include <linux/sctp.h> + [snip] +=== + +And above logic make defined(SCTP_RECVRCVINFO) to +be 1 and the old sctp socket api macro as below +won't be defined. + # define OLD_SCTP_SOCKET_API + +And it encouters below build error: +| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1262:9: error: 'SCTP_SEND_FAILED_EVENT' undeclared (first use in this function); did you mean 'SCTP_SEND_FAILED'? + case SCTP_SEND_FAILED_EVENT: + ^~~~~~~~~~~~~~~~~~~~~~ + SCTP_SEND_FAILED +| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1262:9: note: each undeclared identifier is reported only once for each function it appears in +| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1274:9: error: 'SCTP_NOTIFICATIONS_STOPPED_EVENT' undeclared (first use in this function); did you mean 'SCTP_AUTHENTICATION_EVENT'? + case SCTP_NOTIFICATIONS_STOPPED_EVENT: + +Update the old sctp socket api check to fix +the above build error. + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> +--- + libfdcore/sctp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libfdcore/sctp.c b/libfdcore/sctp.c +index c80a497..83440c7 100644 +--- a/libfdcore/sctp.c ++++ b/libfdcore/sctp.c +@@ -48,7 +48,7 @@ + /* #define OLD_SCTP_SOCKET_API */ + + /* Automatically fallback to old API if some of the new symbols are not defined */ +-#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO))) ++#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_NOTIFICATIONS_STOPPED_EVENT)) || (!defined(SCTP_SNDINFO))) + # define OLD_SCTP_SOCKET_API + #endif + +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb b/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb index c556eb48e..b8818fa6c 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb +++ b/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb @@ -7,7 +7,7 @@ Accounting needs." HOMEPAGE = "http://www.freediameter.net" -DEPENDS = "flex bison cmake-native libgcrypt gnutls libidn lksctp-tools virtual/kernel" +DEPENDS = "flex bison cmake-native libgcrypt gnutls libidn lksctp-tools virtual/kernel bison-native" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -20,6 +20,7 @@ SRC_URI = "\ file://freediameter.init \ ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://install_test.patch file://run-ptest file://pass-ptest-env.patch', '', d)} \ file://freeDiameter.conf \ + file://0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch \ " SRC_URI[md5sum] = "61b1062aa144b5f12eed514611e6d697" diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch deleted file mode 100644 index b14b76128..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a92628a163ebf1ea62220684736300461c003875 Mon Sep 17 00:00:00 2001 -From: Niels Baggesen <nba@users.sourceforge.net> -Date: Mon, 26 Jan 2015 20:26:06 +0100 -Subject: [PATCH] BUG#a2584: Fix snmptrap to use clientaddr from snmp.conf. - Thanks to rizwan - -Upstream-Status: backport - -Signed-off-by: Li Zhou <li.zhou@windriver.com> ---- - snmplib/transports/snmpUDPIPv6Domain.c | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -Index: net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c -=================================================================== ---- net-snmp-5.7.3.orig/snmplib/transports/snmpUDPIPv6Domain.c -+++ net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c -@@ -286,6 +286,27 @@ netsnmp_udp6_transport(struct sockaddr_i - return NULL; - #endif /* NETSNMP_NO_LISTEN_SUPPORT */ - } else { -+ char *client_socket = NULL; -+ /* -+ * This is a client session. If we've been given a -+ * client address to send from, then bind to that. -+ * Otherwise the send will use "something sensible". -+ */ -+ -+ client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, -+ NETSNMP_DS_LIB_CLIENT_ADDR); -+ if (client_socket) { -+ struct sockaddr_in6 client_addr; -+ netsnmp_sockaddr_in6_2(&client_addr, client_socket, NULL); -+ rc = bind(t->sock, (struct sockaddr *)&client_addr, -+ sizeof(struct sockaddr_in6)); -+ if ( rc != 0 ) { -+ DEBUGMSGTL(("netsnmp_udp6", "failed to bind for clientaddr: %d %s\n", -+ errno, strerror(errno))); -+ netsnmp_socketbase_close(t); -+ netsnmp_transport_free(t); -+ } -+ } - /* - * This is a client session. Save the address in the - * transport-specific data pointer for later use by netsnmp_udp6_send. diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch deleted file mode 100644 index 7314ab16a..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch +++ /dev/null @@ -1,2524 +0,0 @@ -net-snmp: remove U64 typedef - -From git://git.code.sf.net/p/net-snmp/code - -Upstream-Status: Backport (unmodified) - -Signed-off-by: Joe Slater <joe.slater@windriver.com> - -From 477b4307ef12ddce3b6a9205e0bdddbfb2e0e9b6 Mon Sep 17 00:00:00 2001 -From: Bart Van Assche <bvanassche@acm.org> -Date: Sat, 20 Feb 2016 18:58:18 -0800 -Subject: [PATCH 1/1] Remove U64 typedef - -The U64 typedef conflicts with a typedef in a Perl header file. Hence -remove the U64 typedef from the Net-SNMP header files. This patch does -not modify the Net-SNMP ABI. ---- - agent/mibgroup/if-mib/ifXTable/ifXTable.c | 16 +- - agent/mibgroup/if-mib/ifXTable/ifXTable.h | 48 +- - .../mibgroup/if-mib/ifXTable/ifXTable_interface.c | 32 +- - .../ip-mib/data_access/systemstats_common.c | 2 +- - .../ipIfStatsTable/ipIfStatsTable_data_get.c | 28 +- - .../ipIfStatsTable/ipIfStatsTable_data_get.h | 28 +- - .../ipIfStatsTable/ipIfStatsTable_interface.c | 56 +- - .../ip-mib/ipSystemStatsTable/ipSystemStatsTable.c | 28 +- - .../ip-mib/ipSystemStatsTable/ipSystemStatsTable.h | 921 ++------------------- - .../ipSystemStatsTable_interface.c | 56 +- - include/net-snmp/data_access/ipstats.h | 42 +- - include/net-snmp/library/int64.h | 34 +- - snmplib/int64.c | 38 +- - snmplib/read_config.c | 6 +- - testing/fulltests/unit-tests/T015int64_clib.c | 10 +- - 15 files changed, 274 insertions(+), 1071 deletions(-) - -Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.c -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable.c -+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.c -@@ -722,7 +722,7 @@ The total number of octets received on t - */ - int - ifHCInOctets_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCInOctets_val_ptr) -+ struct counter64 *ifHCInOctets_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ifHCInOctets_val_ptr); -@@ -779,7 +779,7 @@ The number of packets, delivered by this - */ - int - ifHCInUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCInUcastPkts_val_ptr) -+ struct counter64 *ifHCInUcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ifHCInUcastPkts_val_ptr); -@@ -838,7 +838,7 @@ The number of packets, delivered by this - */ - int - ifHCInMulticastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCInMulticastPkts_val_ptr) -+ struct counter64 *ifHCInMulticastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ifHCInMulticastPkts_val_ptr); -@@ -897,7 +897,7 @@ The number of packets, delivered by this - */ - int - ifHCInBroadcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCInBroadcastPkts_val_ptr) -+ struct counter64 *ifHCInBroadcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ifHCInBroadcastPkts_val_ptr); -@@ -955,7 +955,7 @@ The total number of octets transmitted o - */ - int - ifHCOutOctets_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCOutOctets_val_ptr) -+ struct counter64 *ifHCOutOctets_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ifHCOutOctets_val_ptr); -@@ -1013,7 +1013,7 @@ The total number of packets that higher- - */ - int - ifHCOutUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCOutUcastPkts_val_ptr) -+ struct counter64 *ifHCOutUcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ifHCOutUcastPkts_val_ptr); -@@ -1074,7 +1074,7 @@ The total number of packets that higher- - */ - int - ifHCOutMulticastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCOutMulticastPkts_val_ptr) -+ struct counter64 *ifHCOutMulticastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ifHCOutMulticastPkts_val_ptr); -@@ -1134,7 +1134,7 @@ The total number of packets that higher- - */ - int - ifHCOutBroadcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCOutBroadcastPkts_val_ptr) -+ struct counter64 *ifHCOutBroadcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ifHCOutBroadcastPkts_val_ptr); -Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.h -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable.h -+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.h -@@ -143,28 +143,28 @@ config_require(if-mib/ifXTable/ifXTable_ - u_long * - ifOutBroadcastPkts_val_ptr); - int ifHCInOctets_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCInOctets_val_ptr); -+ struct counter64 *ifHCInOctets_val_ptr); - int ifHCInUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCInUcastPkts_val_ptr); -+ struct counter64 *ifHCInUcastPkts_val_ptr); - int ifHCInMulticastPkts_get(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ifHCInMulticastPkts_val_ptr); - int ifHCInBroadcastPkts_get(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ifHCInBroadcastPkts_val_ptr); - int ifHCOutOctets_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCOutOctets_val_ptr); -+ struct counter64 *ifHCOutOctets_val_ptr); - int ifHCOutUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 * ifHCOutUcastPkts_val_ptr); -+ struct counter64 *ifHCOutUcastPkts_val_ptr); - int ifHCOutMulticastPkts_get(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ifHCOutMulticastPkts_val_ptr); - int ifHCOutBroadcastPkts_get(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ifHCOutBroadcastPkts_val_ptr); - int ifLinkUpDownTrapEnable_get(ifXTable_rowreq_ctx * - rowreq_ctx, -@@ -284,86 +284,86 @@ config_require(if-mib/ifXTable/ifXTable_ - - int ifHCInOctets_check_value(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 ifHCInOctets_val); -+ struct counter64 ifHCInOctets_val); - int ifHCInOctets_undo_setup(ifXTable_rowreq_ctx * - rowreq_ctx); - int ifHCInOctets_set(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 ifHCInOctets_val); -+ struct counter64 ifHCInOctets_val); - int ifHCInOctets_undo(ifXTable_rowreq_ctx * rowreq_ctx); - - int ifHCInUcastPkts_check_value(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 ifHCInUcastPkts_val); -+ struct counter64 ifHCInUcastPkts_val); - int ifHCInUcastPkts_undo_setup(ifXTable_rowreq_ctx * - rowreq_ctx); - int ifHCInUcastPkts_set(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 ifHCInUcastPkts_val); -+ struct counter64 ifHCInUcastPkts_val); - int ifHCInUcastPkts_undo(ifXTable_rowreq_ctx * rowreq_ctx); - - int ifHCInMulticastPkts_check_value(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 -+ struct counter64 - ifHCInMulticastPkts_val); - int ifHCInMulticastPkts_undo_setup(ifXTable_rowreq_ctx * - rowreq_ctx); - int ifHCInMulticastPkts_set(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 ifHCInMulticastPkts_val); -+ struct counter64 ifHCInMulticastPkts_val); - int ifHCInMulticastPkts_undo(ifXTable_rowreq_ctx * - rowreq_ctx); - - int ifHCInBroadcastPkts_check_value(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 -+ struct counter64 - ifHCInBroadcastPkts_val); - int ifHCInBroadcastPkts_undo_setup(ifXTable_rowreq_ctx * - rowreq_ctx); - int ifHCInBroadcastPkts_set(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 ifHCInBroadcastPkts_val); -+ struct counter64 ifHCInBroadcastPkts_val); - int ifHCInBroadcastPkts_undo(ifXTable_rowreq_ctx * - rowreq_ctx); - - int ifHCOutOctets_check_value(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 ifHCOutOctets_val); -+ struct counter64 ifHCOutOctets_val); - int ifHCOutOctets_undo_setup(ifXTable_rowreq_ctx * - rowreq_ctx); - int ifHCOutOctets_set(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 ifHCOutOctets_val); -+ struct counter64 ifHCOutOctets_val); - int ifHCOutOctets_undo(ifXTable_rowreq_ctx * rowreq_ctx); - - int ifHCOutUcastPkts_check_value(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 ifHCOutUcastPkts_val); -+ struct counter64 ifHCOutUcastPkts_val); - int ifHCOutUcastPkts_undo_setup(ifXTable_rowreq_ctx * - rowreq_ctx); - int ifHCOutUcastPkts_set(ifXTable_rowreq_ctx * rowreq_ctx, -- U64 ifHCOutUcastPkts_val); -+ struct counter64 ifHCOutUcastPkts_val); - int ifHCOutUcastPkts_undo(ifXTable_rowreq_ctx * - rowreq_ctx); - - int ifHCOutMulticastPkts_check_value(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 -+ struct counter64 - ifHCOutMulticastPkts_val); - int ifHCOutMulticastPkts_undo_setup(ifXTable_rowreq_ctx * - rowreq_ctx); - int ifHCOutMulticastPkts_set(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 ifHCOutMulticastPkts_val); -+ struct counter64 ifHCOutMulticastPkts_val); - int ifHCOutMulticastPkts_undo(ifXTable_rowreq_ctx * - rowreq_ctx); - - int ifHCOutBroadcastPkts_check_value(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 -+ struct counter64 - ifHCOutBroadcastPkts_val); - int ifHCOutBroadcastPkts_undo_setup(ifXTable_rowreq_ctx * - rowreq_ctx); - int ifHCOutBroadcastPkts_set(ifXTable_rowreq_ctx * - rowreq_ctx, -- U64 ifHCOutBroadcastPkts_val); -+ struct counter64 ifHCOutBroadcastPkts_val); - int ifHCOutBroadcastPkts_undo(ifXTable_rowreq_ctx * - rowreq_ctx); - -Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c -+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c -@@ -729,72 +729,72 @@ _ifXTable_get_column(ifXTable_rowreq_ctx - * ifHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IFHCINOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ifHCInOctets_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ifHCInOctets_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* - * ifHCInUcastPkts(7)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IFHCINUCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ifHCInUcastPkts_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ifHCInUcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* - * ifHCInMulticastPkts(8)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IFHCINMULTICASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ifHCInMulticastPkts_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ifHCInMulticastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* - * ifHCInBroadcastPkts(9)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IFHCINBROADCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ifHCInBroadcastPkts_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ifHCInBroadcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* - * ifHCOutOctets(10)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IFHCOUTOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ifHCOutOctets_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ifHCOutOctets_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* - * ifHCOutUcastPkts(11)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IFHCOUTUCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ifHCOutUcastPkts_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ifHCOutUcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* - * ifHCOutMulticastPkts(12)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IFHCOUTMULTICASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ifHCOutMulticastPkts_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ifHCOutMulticastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* - * ifHCOutBroadcastPkts(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IFHCOUTBROADCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ifHCOutBroadcastPkts_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ifHCOutBroadcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* -Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/data_access/systemstats_common.c -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/data_access/systemstats_common.c -+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/data_access/systemstats_common.c -@@ -264,7 +264,7 @@ _calculate_entries(netsnmp_systemstats_e - && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES] - && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS]) { - -- U64 tmp, tmp2, tmp3; -+ struct counter64 tmp, tmp2, tmp3; - tmp = entry->stats.HCOutRequests; - u64Incr(&tmp, &entry->stats.HCOutForwDatagrams); - u64Incr(&tmp, &entry->stats.HCOutFragCreates); -Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c -+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c -@@ -270,7 +270,7 @@ The total number of input IP datagrams r - */ - int - ipIfStatsHCInReceives_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCInReceives_val_ptr) -+ struct counter64 *ipIfStatsHCInReceives_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCInReceives_val_ptr); -@@ -395,7 +395,7 @@ The total number of octets received in i - */ - int - ipIfStatsHCInOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCInOctets_val_ptr) -+ struct counter64 *ipIfStatsHCInOctets_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCInOctets_val_ptr); -@@ -862,7 +862,7 @@ The number of input datagrams for which - */ - int - ipIfStatsHCInForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCInForwDatagrams_val_ptr) -+ struct counter64 *ipIfStatsHCInForwDatagrams_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCInForwDatagrams_val_ptr); -@@ -1267,7 +1267,7 @@ The total number of datagrams successful - */ - int - ipIfStatsHCInDelivers_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCInDelivers_val_ptr) -+ struct counter64 *ipIfStatsHCInDelivers_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCInDelivers_val_ptr); -@@ -1396,7 +1396,7 @@ The total number of IP datagrams that lo - */ - int - ipIfStatsHCOutRequests_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCOutRequests_val_ptr) -+ struct counter64 *ipIfStatsHCOutRequests_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCOutRequests_val_ptr); -@@ -1532,7 +1532,7 @@ The number of datagrams for which this e - */ - int - ipIfStatsHCOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCOutForwDatagrams_val_ptr) -+ struct counter64 *ipIfStatsHCOutForwDatagrams_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCOutForwDatagrams_val_ptr); -@@ -1999,7 +1999,7 @@ The total number of IP datagrams that th - */ - int - ipIfStatsHCOutTransmits_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCOutTransmits_val_ptr) -+ struct counter64 *ipIfStatsHCOutTransmits_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCOutTransmits_val_ptr); -@@ -2123,7 +2123,7 @@ The total number of octets in IP datagra - */ - int - ipIfStatsHCOutOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCOutOctets_val_ptr) -+ struct counter64 *ipIfStatsHCOutOctets_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCOutOctets_val_ptr); -@@ -2245,7 +2245,7 @@ The number of IP multicast datagrams rec - */ - int - ipIfStatsHCInMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCInMcastPkts_val_ptr) -+ struct counter64 *ipIfStatsHCInMcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCInMcastPkts_val_ptr); -@@ -2372,7 +2372,7 @@ The total number of octets received in I - */ - int - ipIfStatsHCInMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCInMcastOctets_val_ptr) -+ struct counter64 *ipIfStatsHCInMcastOctets_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCInMcastOctets_val_ptr); -@@ -2497,7 +2497,7 @@ The number of IP multicast datagrams tra - */ - int - ipIfStatsHCOutMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCOutMcastPkts_val_ptr) -+ struct counter64 *ipIfStatsHCOutMcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCOutMcastPkts_val_ptr); -@@ -2621,7 +2621,7 @@ The total number of octets transmitted i - */ - int - ipIfStatsHCOutMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCOutMcastOctets_val_ptr) -+ struct counter64 *ipIfStatsHCOutMcastOctets_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCOutMcastOctets_val_ptr); -@@ -2743,7 +2743,7 @@ The number of IP broadcast datagrams rec - */ - int - ipIfStatsHCInBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCInBcastPkts_val_ptr) -+ struct counter64 *ipIfStatsHCInBcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCInBcastPkts_val_ptr); -@@ -2865,7 +2865,7 @@ The number of IP broadcast datagrams tra - */ - int - ipIfStatsHCOutBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipIfStatsHCOutBcastPkts_val_ptr) -+ struct counter64 *ipIfStatsHCOutBcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipIfStatsHCOutBcastPkts_val_ptr); -Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h -+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h -@@ -50,7 +50,7 @@ extern "C" { - ipIfStatsInReceives_val_ptr); - int ipIfStatsHCInReceives_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCInReceives_val_ptr); - int ipIfStatsInOctets_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -58,7 +58,7 @@ extern "C" { - ipIfStatsInOctets_val_ptr); - int ipIfStatsHCInOctets_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCInOctets_val_ptr); - int ipIfStatsInHdrErrors_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -87,7 +87,7 @@ extern "C" { - int - ipIfStatsHCInForwDatagrams_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCInForwDatagrams_val_ptr); - int ipIfStatsReasmReqds_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -111,7 +111,7 @@ extern "C" { - ipIfStatsInDelivers_val_ptr); - int ipIfStatsHCInDelivers_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCInDelivers_val_ptr); - int ipIfStatsOutRequests_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -119,7 +119,7 @@ extern "C" { - ipIfStatsOutRequests_val_ptr); - int ipIfStatsHCOutRequests_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCOutRequests_val_ptr); - int ipIfStatsOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx - * rowreq_ctx, -@@ -128,7 +128,7 @@ extern "C" { - int - ipIfStatsHCOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCOutForwDatagrams_val_ptr); - int ipIfStatsOutDiscards_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -156,7 +156,7 @@ extern "C" { - ipIfStatsOutTransmits_val_ptr); - int ipIfStatsHCOutTransmits_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCOutTransmits_val_ptr); - int ipIfStatsOutOctets_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -164,7 +164,7 @@ extern "C" { - ipIfStatsOutOctets_val_ptr); - int ipIfStatsHCOutOctets_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCOutOctets_val_ptr); - int ipIfStatsInMcastPkts_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -172,7 +172,7 @@ extern "C" { - ipIfStatsInMcastPkts_val_ptr); - int ipIfStatsHCInMcastPkts_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCInMcastPkts_val_ptr); - int ipIfStatsInMcastOctets_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -180,7 +180,7 @@ extern "C" { - ipIfStatsInMcastOctets_val_ptr); - int ipIfStatsHCInMcastOctets_get(ipIfStatsTable_rowreq_ctx - * rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCInMcastOctets_val_ptr); - int ipIfStatsOutMcastPkts_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -188,7 +188,7 @@ extern "C" { - ipIfStatsOutMcastPkts_val_ptr); - int ipIfStatsHCOutMcastPkts_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCOutMcastPkts_val_ptr); - int ipIfStatsOutMcastOctets_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -196,7 +196,7 @@ extern "C" { - ipIfStatsOutMcastOctets_val_ptr); - int ipIfStatsHCOutMcastOctets_get(ipIfStatsTable_rowreq_ctx - * rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCOutMcastOctets_val_ptr); - int ipIfStatsInBcastPkts_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -204,7 +204,7 @@ extern "C" { - ipIfStatsInBcastPkts_val_ptr); - int ipIfStatsHCInBcastPkts_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCInBcastPkts_val_ptr); - int ipIfStatsOutBcastPkts_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -@@ -212,7 +212,7 @@ extern "C" { - ipIfStatsOutBcastPkts_val_ptr); - int ipIfStatsHCOutBcastPkts_get(ipIfStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipIfStatsHCOutBcastPkts_val_ptr); - int - ipIfStatsDiscontinuityTime_get(ipIfStatsTable_rowreq_ctx * -Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c -+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c -@@ -722,10 +722,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCInReceives(4)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCINRECEIVES: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCInReceives_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -741,9 +741,9 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCINOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ipIfStatsHCInOctets_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ipIfStatsHCInOctets_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* -@@ -810,10 +810,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCInForwDatagrams(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCINFORWDATAGRAMS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCInForwDatagrams_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -869,10 +869,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCInDelivers(19)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCINDELIVERS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCInDelivers_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -889,10 +889,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCOutRequests(21)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCOUTREQUESTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCOutRequests_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -909,10 +909,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCOutForwDatagrams(24)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCOUTFORWDATAGRAMS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCOutForwDatagrams_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -979,10 +979,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCOutTransmits(31)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCOUTTRANSMITS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCOutTransmits_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -999,9 +999,9 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCOutOctets(33)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCOUTOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; -- rc = ipIfStatsHCOutOctets_get(rowreq_ctx, (U64 *) var->val.string); -+ rc = ipIfStatsHCOutOctets_get(rowreq_ctx, (struct counter64 *) var->val.string); - break; - - /* -@@ -1018,10 +1018,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCInMcastPkts(35)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCINMCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCInMcastPkts_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1038,10 +1038,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCInMcastOctets(37)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCINMCASTOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCInMcastOctets_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1058,10 +1058,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCOutMcastPkts(39)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCOUTMCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCOutMcastPkts_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1078,10 +1078,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCOutMcastOctets(41)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCOUTMCASTOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCOutMcastOctets_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1098,10 +1098,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCInBcastPkts(43)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCINBCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCInBcastPkts_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1118,10 +1118,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl - * ipIfStatsHCOutBcastPkts(45)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPIFSTATSHCOUTBCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipIfStatsHCOutBcastPkts_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c -+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c -@@ -452,7 +452,7 @@ The total number of input IP datagrams r - */ - int - ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCInReceives_val_ptr) -+ struct counter64 *ipSystemStatsHCInReceives_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCInReceives_val_ptr); -@@ -579,7 +579,7 @@ The total number of octets received in i - */ - int - ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCInOctets_val_ptr) -+ struct counter64 *ipSystemStatsHCInOctets_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCInOctets_val_ptr); -@@ -1058,7 +1058,7 @@ The number of input datagrams for which - int - ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCInForwDatagrams_val_ptr) - { - /** we should have a non-NULL pointer */ -@@ -1474,7 +1474,7 @@ The total number of datagrams successful - */ - int - ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCInDelivers_val_ptr) -+ struct counter64 *ipSystemStatsHCInDelivers_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCInDelivers_val_ptr); -@@ -1602,7 +1602,7 @@ The total number of IP datagrams which l - */ - int - ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCOutRequests_val_ptr) -+ struct counter64 *ipSystemStatsHCOutRequests_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCOutRequests_val_ptr); -@@ -1809,7 +1809,7 @@ The number of datagrams for which this e - int - ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutForwDatagrams_val_ptr) - { - /** we should have a non-NULL pointer */ -@@ -2288,7 +2288,7 @@ The total number of IP datagrams that th - */ - int - ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCOutTransmits_val_ptr) -+ struct counter64 *ipSystemStatsHCOutTransmits_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCOutTransmits_val_ptr); -@@ -2415,7 +2415,7 @@ The total number of octets in IP datagra - */ - int - ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCOutOctets_val_ptr) -+ struct counter64 *ipSystemStatsHCOutOctets_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCOutOctets_val_ptr); -@@ -2539,7 +2539,7 @@ The number of IP multicast datagrams rec - */ - int - ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCInMcastPkts_val_ptr) -+ struct counter64 *ipSystemStatsHCInMcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCInMcastPkts_val_ptr); -@@ -2665,7 +2665,7 @@ The total number of octets received in I - int - ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCInMcastOctets_val_ptr) - { - /** we should have a non-NULL pointer */ -@@ -2790,7 +2790,7 @@ The number of IP multicast datagrams tra - */ - int - ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCOutMcastPkts_val_ptr) -+ struct counter64 *ipSystemStatsHCOutMcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCOutMcastPkts_val_ptr); -@@ -2921,7 +2921,7 @@ The total number of octets transmitted i - int - ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutMcastOctets_val_ptr) - { - /** we should have a non-NULL pointer */ -@@ -3046,7 +3046,7 @@ The number of IP broadcast datagrams rec - */ - int - ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCInBcastPkts_val_ptr) -+ struct counter64 *ipSystemStatsHCInBcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCInBcastPkts_val_ptr); -@@ -3170,7 +3170,7 @@ The number of IP broadcast datagrams tra - */ - int - ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx, -- U64 * ipSystemStatsHCOutBcastPkts_val_ptr) -+ struct counter64 *ipSystemStatsHCOutBcastPkts_val_ptr) - { - /** we should have a non-NULL pointer */ - netsnmp_assert(NULL != ipSystemStatsHCOutBcastPkts_val_ptr); -Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h -+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h -@@ -144,93 +144,22 @@ config_require(ip-mib/ipSystemStatsTable - ********************************************************************* - * function prototypes - */ -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsTable_pre_request(ipSystemStatsTable_registration * -+ int ipSystemStatsTable_pre_request(ipSystemStatsTable_registration * - user_context); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsTable_post_request(ipSystemStatsTable_registration * -+ int ipSystemStatsTable_post_request(ipSystemStatsTable_registration * - user_context, int rc); - -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsTable_rowreq_ctx_init(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsTable_rowreq_ctx_init(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - void *user_init_ctx); - void -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - ipSystemStatsTable_rowreq_ctx_cleanup(ipSystemStatsTable_rowreq_ctx - * rowreq_ctx); - - ipSystemStatsTable_data *ipSystemStatsTable_allocate_data(void); - void ipSystemStatsTable_release_data(ipSystemStatsTable_data - * data); -- -- -- -- -- -- -- -- -- ipSystemStatsTable_rowreq_ctx -+ ipSystemStatsTable_rowreq_ctx - * ipSystemStatsTable_row_find_by_mib_index - (ipSystemStatsTable_mib_index * mib_idx); - -@@ -265,226 +194,50 @@ config_require(ip-mib/ipSystemStatsTable - * indexes - */ - -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInReceives_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInReceives_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInReceives_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCInReceives_val_ptr); - int ipSystemStatsInOctets_get(ipSystemStatsTable_rowreq_ctx - * rowreq_ctx, - u_long * - ipSystemStatsInOctets_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * ipSystemStatsHCInOctets_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInHdrErrors_get(ipSystemStatsTable_rowreq_ctx * -+ struct counter64 *ipSystemStatsHCInOctets_val_ptr); -+ int ipSystemStatsInHdrErrors_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInHdrErrors_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInNoRoutes_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInNoRoutes_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInNoRoutes_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInAddrErrors_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInAddrErrors_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInAddrErrors_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInUnknownProtos_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInUnknownProtos_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInUnknownProtos_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInTruncatedPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInTruncatedPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInTruncatedPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInForwDatagrams_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCInForwDatagrams_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsReasmReqds_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsReasmReqds_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsReasmReqds_val_ptr); -@@ -492,690 +245,142 @@ config_require(ip-mib/ipSystemStatsTable - * rowreq_ctx, - u_long * - ipSystemStatsReasmOKs_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsReasmFails_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsReasmFails_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsReasmFails_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInDiscards_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInDiscards_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInDiscards_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInDelivers_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInDelivers_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInDelivers_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCInDelivers_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutRequests_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutRequests_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutRequests_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutRequests_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutNoRoutes_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutNoRoutes_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutNoRoutes_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutForwDatagrams_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutForwDatagrams_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutDiscards_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutDiscards_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutDiscards_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutFragReqds_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutFragReqds_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutFragReqds_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutFragOKs_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutFragOKs_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutFragOKs_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutFragFails_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutFragFails_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutFragFails_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutFragCreates_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutFragCreates_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutFragCreates_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutTransmits_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutTransmits_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutTransmits_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutTransmits_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutOctets_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutOctets_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutOctets_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInMcastPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCInMcastPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInMcastOctets_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInMcastOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInMcastOctets_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCInMcastOctets_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutMcastPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutMcastPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutMcastOctets_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutMcastOctets_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsInBcastPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCInBcastPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsOutBcastPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, -- U64 * -+ struct counter64 * - ipSystemStatsHCOutBcastPkts_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsDiscontinuityTime_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsDiscontinuityTime_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsDiscontinuityTime_val_ptr); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsRefreshRate_get(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsRefreshRate_get(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long * - ipSystemStatsRefreshRate_val_ptr); -- -- -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsTable_indexes_set_tbl_idx(ipSystemStatsTable_mib_index -+ int ipSystemStatsTable_indexes_set_tbl_idx(ipSystemStatsTable_mib_index - * tbl_idx, - u_long - ipSystemStatsIPVersion_val); -- int -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ipSystemStatsTable_indexes_set(ipSystemStatsTable_rowreq_ctx * -+ int ipSystemStatsTable_indexes_set(ipSystemStatsTable_rowreq_ctx * - rowreq_ctx, - u_long ipSystemStatsIPVersion_val); - -- -- - /* - ********************************************************************* - * SET function declarations -Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c -=================================================================== ---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c -+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c -@@ -674,10 +674,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCInReceives(4)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCINRECEIVES: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCInReceives_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -694,10 +694,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCINOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCInOctets_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -764,10 +764,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCInForwDatagrams(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCINFORWDATAGRAMS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCInForwDatagrams_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -824,10 +824,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCInDelivers(19)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCINDELIVERS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCInDelivers_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -844,10 +844,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCOutRequests(21)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCOUTREQUESTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCOutRequests_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -874,10 +874,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCOutForwDatagrams(24)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCOUTFORWDATAGRAMS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCOutForwDatagrams_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -944,10 +944,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCOutTransmits(31)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCOUTTRANSMITS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCOutTransmits_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -964,10 +964,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCOutOctets(33)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCOUTOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCOutOctets_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -984,10 +984,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCInMcastPkts(35)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCINMCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCInMcastPkts_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1004,10 +1004,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCInMcastOctets(37)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCINMCASTOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCInMcastOctets_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1024,10 +1024,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCOutMcastPkts(39)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCOUTMCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCOutMcastPkts_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1044,10 +1044,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCOutMcastOctets(41)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCOUTMCASTOCTETS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCOutMcastOctets_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1064,10 +1064,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCInBcastPkts(43)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCINBCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCInBcastPkts_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -@@ -1084,10 +1084,10 @@ _ipSystemStatsTable_get_column(ipSystemS - * ipSystemStatsHCOutBcastPkts(45)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h - */ - case COLUMN_IPSYSTEMSTATSHCOUTBCASTPKTS: -- var->val_len = sizeof(U64); -+ var->val_len = sizeof(struct counter64); - var->type = ASN_COUNTER64; - rc = ipSystemStatsHCOutBcastPkts_get(rowreq_ctx, -- (U64 *) var->val.string); -+ (struct counter64 *) var->val.string); - break; - - /* -Index: net-snmp-5.7.3/include/net-snmp/data_access/ipstats.h -=================================================================== ---- net-snmp-5.7.3.orig/include/net-snmp/data_access/ipstats.h -+++ net-snmp-5.7.3/include/net-snmp/data_access/ipstats.h -@@ -58,45 +58,45 @@ typedef struct netsnmp_ipstats_s { - * other columns, when underlying OS does not provide them. - * Always fill at least 32 bits, the table is periodically polled -> 32 bit - * overflow shall be detected and 64 bit value should be computed automatically. */ -- U64 HCInReceives; -- U64 HCInOctets; -+ struct counter64 HCInReceives; -+ struct counter64 HCInOctets; - u_long InHdrErrors; -- U64 HCInNoRoutes; -+ struct counter64 HCInNoRoutes; - u_long InAddrErrors; - u_long InUnknownProtos; - u_long InTruncatedPkts; - - /* optional, can be computed from HCInNoRoutes and HCOutForwDatagrams */ -- U64 HCInForwDatagrams; -+ struct counter64 HCInForwDatagrams; - - u_long ReasmReqds; - u_long ReasmOKs; - u_long ReasmFails; - u_long InDiscards; -- U64 HCInDelivers; -- U64 HCOutRequests; -- U64 HCOutNoRoutes; -- U64 HCOutForwDatagrams; -- U64 HCOutDiscards; -+ struct counter64 HCInDelivers; -+ struct counter64 HCOutRequests; -+ struct counter64 HCOutNoRoutes; -+ struct counter64 HCOutForwDatagrams; -+ struct counter64 HCOutDiscards; - - /* optional, can be computed from HCOutFragOKs + HCOutFragFails*/ -- U64 HCOutFragReqds; -- U64 HCOutFragOKs; -- U64 HCOutFragFails; -- U64 HCOutFragCreates; -+ struct counter64 HCOutFragReqds; -+ struct counter64 HCOutFragOKs; -+ struct counter64 HCOutFragFails; -+ struct counter64 HCOutFragCreates; - - /* optional, can be computed from - * HCOutRequests +HCOutForwDatagrams + HCOutFragCreates - * - HCOutFragReqds - HCOutNoRoutes - HCOutDiscards */ -- U64 HCOutTransmits; -+ struct counter64 HCOutTransmits; - -- U64 HCOutOctets; -- U64 HCInMcastPkts; -- U64 HCInMcastOctets; -- U64 HCOutMcastPkts; -- U64 HCOutMcastOctets; -- U64 HCInBcastPkts; -- U64 HCOutBcastPkts; -+ struct counter64 HCOutOctets; -+ struct counter64 HCInMcastPkts; -+ struct counter64 HCInMcastOctets; -+ struct counter64 HCOutMcastPkts; -+ struct counter64 HCOutMcastOctets; -+ struct counter64 HCInBcastPkts; -+ struct counter64 HCOutBcastPkts; - - /* Array of available columns.*/ - int columnAvail[IPSYSTEMSTATSTABLE_LAST+1]; -Index: net-snmp-5.7.3/include/net-snmp/library/int64.h -=================================================================== ---- net-snmp-5.7.3.orig/include/net-snmp/library/int64.h -+++ net-snmp-5.7.3/include/net-snmp/library/int64.h -@@ -5,31 +5,29 @@ - extern "C" { - #endif - -- typedef struct counter64 U64; -- - #define I64CHARSZ 21 - -- void divBy10(U64, U64 *, unsigned int *); -- void multBy10(U64, U64 *); -- void incrByU16(U64 *, unsigned int); -- void incrByU32(U64 *, unsigned int); -+ void divBy10(struct counter64, struct counter64 *, unsigned int *); -+ void multBy10(struct counter64, struct counter64 *); -+ void incrByU16(struct counter64 *, unsigned int); -+ void incrByU32(struct counter64 *, unsigned int); - NETSNMP_IMPORT -- void zeroU64(U64 *); -- int isZeroU64(const U64 *); -+ void zeroU64(struct counter64 *); -+ int isZeroU64(const struct counter64 *); - NETSNMP_IMPORT -- void printU64(char *, const U64 *); -+ void printU64(char *, const struct counter64 *); - NETSNMP_IMPORT -- void printI64(char *, const U64 *); -- int read64(U64 *, const char *); -+ void printI64(char *, const struct counter64 *); -+ int read64(struct counter64 *, const char *); - NETSNMP_IMPORT -- void u64Subtract(const U64 * pu64one, const U64 * pu64two, -- U64 * pu64out); -- void u64Incr(U64 * pu64out, const U64 * pu64one); -- void u64UpdateCounter(U64 * pu64out, const U64 * pu64one, -- const U64 * pu64two); -- void u64Copy(U64 * pu64one, const U64 * pu64two); -+ void u64Subtract(const struct counter64 *pu64one, const struct counter64 *pu64two, -+ struct counter64 *pu64out); -+ void u64Incr(struct counter64 *pu64out, const struct counter64 *pu64one); -+ void u64UpdateCounter(struct counter64 *pu64out, const struct counter64 *pu64one, -+ const struct counter64 *pu64two); -+ void u64Copy(struct counter64 *pu64one, const struct counter64 *pu64two); - -- int netsnmp_c64_check_for_32bit_wrap(U64 *old_val, U64 *new_val, -+ int netsnmp_c64_check_for_32bit_wrap(struct counter64 *old_val, struct counter64 *new_val, - int adjust); - NETSNMP_IMPORT - int netsnmp_c64_check32_and_update(struct counter64 *prev_val, -Index: net-snmp-5.7.3/snmplib/int64.c -=================================================================== ---- net-snmp-5.7.3.orig/snmplib/int64.c -+++ net-snmp-5.7.3/snmplib/int64.c -@@ -33,7 +33,7 @@ - * @param[out] puR Remainder. - */ - void --divBy10(U64 u64, U64 * pu64Q, unsigned int *puR) -+divBy10(struct counter64 u64, struct counter64 *pu64Q, unsigned int *puR) - { - unsigned long ulT; - unsigned long ulQ; -@@ -83,7 +83,7 @@ divBy10(U64 u64, U64 * pu64Q, unsigned i - * @param[out] pu64P Product. - */ - void --multBy10(U64 u64, U64 * pu64P) -+multBy10(struct counter64 u64, struct counter64 *pu64P) - { - unsigned long ulT; - unsigned long ulP; -@@ -130,7 +130,7 @@ multBy10(U64 u64, U64 * pu64P) - * - */ - void --incrByU16(U64 * pu64, unsigned int u16) -+incrByU16(struct counter64 *pu64, unsigned int u16) - { - incrByU32(pu64, u16); - } -@@ -143,7 +143,7 @@ incrByU16(U64 * pu64, unsigned int u16) - * - */ - void --incrByU32(U64 * pu64, unsigned int u32) -+incrByU32(struct counter64 *pu64, unsigned int u32) - { - uint32_t tmp; - -@@ -161,7 +161,7 @@ incrByU32(U64 * pu64, unsigned int u32) - * @param[out] pu64out pu64one - pu64two. - */ - void --u64Subtract(const U64 * pu64one, const U64 * pu64two, U64 * pu64out) -+u64Subtract(const struct counter64 *pu64one, const struct counter64 *pu64two, struct counter64 *pu64out) - { - int carry; - -@@ -177,7 +177,7 @@ u64Subtract(const U64 * pu64one, const U - * @param[in,out] pu64out pu64out += pu64one. - */ - void --u64Incr(U64 * pu64out, const U64 * pu64one) -+u64Incr(struct counter64 *pu64out, const struct counter64 *pu64one) - { - pu64out->high = (uint32_t)(pu64out->high + pu64one->high); - incrByU32(pu64out, pu64one->low); -@@ -191,9 +191,9 @@ u64Incr(U64 * pu64out, const U64 * pu64o - * @param[out] pu64out pu64out += (pu64one - pu64two) - */ - void --u64UpdateCounter(U64 * pu64out, const U64 * pu64one, const U64 * pu64two) -+u64UpdateCounter(struct counter64 *pu64out, const struct counter64 *pu64one, const struct counter64 *pu64two) - { -- U64 tmp; -+ struct counter64 tmp; - - u64Subtract(pu64one, pu64two, &tmp); - u64Incr(pu64out, &tmp); -@@ -208,7 +208,7 @@ netsnmp_feature_child_of(u64copy, netsnm - * @param[out] pu64one Where to store the copy - *pu64one = *pu64two. - */ - void --u64Copy(U64 * pu64one, const U64 * pu64two) -+u64Copy(struct counter64 *pu64one, const struct counter64 *pu64two) - { - *pu64one = *pu64two; - } -@@ -220,7 +220,7 @@ u64Copy(U64 * pu64one, const U64 * pu64t - * @param[in] pu64 Number to be zeroed. - */ - void --zeroU64(U64 * pu64) -+zeroU64(struct counter64 *pu64) - { - pu64->low = 0; - pu64->high = 0; -@@ -232,7 +232,7 @@ zeroU64(U64 * pu64) - * @param[in] pu64 Number to be checked. - */ - int --isZeroU64(const U64 * pu64) -+isZeroU64(const struct counter64 *pu64) - { - return pu64->low == 0 && pu64->high == 0; - } -@@ -390,10 +390,10 @@ netsnmp_c64_check32_and_update(struct co - /** Convert an unsigned 64-bit number to ASCII. */ - void - printU64(char *buf, /* char [I64CHARSZ+1]; */ -- const U64 * pu64) -+ const struct counter64 *pu64) - { -- U64 u64a; -- U64 u64b; -+ struct counter64 u64a; -+ struct counter64 u64b; - - char aRes[I64CHARSZ + 1]; - unsigned int u; -@@ -414,9 +414,9 @@ printU64(char *buf, /* char [I64CHARSZ+1 - /** Convert a signed 64-bit number to ASCII. */ - void - printI64(char *buf, /* char [I64CHARSZ+1]; */ -- const U64 * pu64) -+ const struct counter64 *pu64) - { -- U64 u64a; -+ struct counter64 u64a; - - if (pu64->high & 0x80000000) { - u64a.high = (uint32_t) ~pu64->high; -@@ -429,11 +429,11 @@ printI64(char *buf, /* char [I64CHARSZ+1 - } - } - --/** Convert a signed 64-bit integer from ASCII to U64. */ -+/** Convert a signed 64-bit integer from ASCII to struct counter64. */ - int --read64(U64 * i64, const char *str) -+read64(struct counter64 *i64, const char *str) - { -- U64 i64p; -+ struct counter64 i64p; - unsigned int u; - int sign = 0; - int ok = 0; -Index: net-snmp-5.7.3/snmplib/read_config.c -=================================================================== ---- net-snmp-5.7.3.orig/snmplib/read_config.c -+++ net-snmp-5.7.3/snmplib/read_config.c -@@ -2270,10 +2270,10 @@ read_config_read_memory(int type, char * - return readfrom; - - case ASN_COUNTER64: -- if (*len < sizeof(U64)) -+ if (*len < sizeof(struct counter64)) - return NULL; -- *len = sizeof(U64); -- read64((U64 *) dataptr, readfrom); -+ *len = sizeof(struct counter64); -+ read64((struct counter64 *) dataptr, readfrom); - readfrom = skip_token(readfrom); - return readfrom; - } -Index: net-snmp-5.7.3/testing/fulltests/unit-tests/T015int64_clib.c -=================================================================== ---- net-snmp-5.7.3.orig/testing/fulltests/unit-tests/T015int64_clib.c -+++ net-snmp-5.7.3/testing/fulltests/unit-tests/T015int64_clib.c -@@ -1,4 +1,4 @@ --/* HEADER Testing 64-bit integer operations (U64). */ -+/* HEADER Testing 64-bit integer operations (struct counter64). */ - - int i, j; - char buf[22]; -@@ -15,7 +15,7 @@ static const int64_t intval[] = { - }; - - for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) { -- U64 a, b; -+ struct counter64 a, b; - a.low = (uint32_t)intval[i]; - a.high = (uint32_t)(intval[i] >> 32); - printI64(buf, &a); -@@ -27,7 +27,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in - - for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) { - for (j = i; j < sizeof(intval)/sizeof(intval[0]); ++j) { -- U64 a, b; -+ struct counter64 a, b; - uint64_t d; - a.low = (uint32_t)intval[i]; - a.high = (uint32_t)(intval[i] >> 32); -@@ -43,7 +43,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in - - for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) { - for (j = i; j < sizeof(intval)/sizeof(intval[0]); ++j) { -- U64 a, b, c; -+ struct counter64 a, b, c; - uint64_t d; - a.low = (uint32_t)intval[i]; - a.high = (uint32_t)(intval[i] >> 32); -@@ -58,7 +58,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in - } - - { -- U64 old_val, new_val; -+ struct counter64 old_val, new_val; - old_val.low = 7; - old_val.high = 0; - new_val = old_val; diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch index 44359bebe..bfc55a08a 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch @@ -1,4 +1,4 @@ -From 261a22096c79f8e6ef7b387514a74d208e4e5945 Mon Sep 17 00:00:00 2001 +From 7ae2ce8dbf1c54d4e2db4a5f49397a239baadc49 Mon Sep 17 00:00:00 2001 From: Li xin <lixin.fnst@cn.fujitsu.com> Date: Fri, 21 Aug 2015 18:23:13 +0900 Subject: [PATCH] config_os_headers: Error Fix @@ -13,15 +13,16 @@ conftest.c:168:17: fatal error: pkg.h: No such file or directory Upstream-Status: pending Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> + --- configure.d/config_os_headers | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -Index: net-snmp-5.7.3/configure.d/config_os_headers -=================================================================== ---- net-snmp-5.7.3.orig/configure.d/config_os_headers -+++ net-snmp-5.7.3/configure.d/config_os_headers -@@ -484,8 +484,8 @@ then +diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers +index af99746..83b2e31 100644 +--- a/configure.d/config_os_headers ++++ b/configure.d/config_os_headers +@@ -489,8 +489,8 @@ then unset ac_cv_header_pkg_h netsnmp_save_CPPFLAGS="$CPPFLAGS" netsnmp_save_LDFLAGS="$LDFLAGS" diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch deleted file mode 100644 index 5866a95ed..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch +++ /dev/null @@ -1,31 +0,0 @@ -From e24fcd140f3f6dd18fd836b197c6d4bb773e50e7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= <funman@videolan.org> -Date: Wed, 4 Nov 2015 16:49:30 +0100 -Subject: [PATCH] config_os_libs2: Error Fix - -ERROR: This autoconf log indicates errors, it looked at host include -and/or library paths while determining system capabilities. ---- - configure.d/config_os_libs2 | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2 -index 47491e2..e3647f9 100644 ---- a/configure.d/config_os_libs2 -+++ b/configure.d/config_os_libs2 -@@ -226,10 +226,10 @@ if test "x$with_nl" != "xno"; then - case $target_os in - linux*) # Check for libnl (linux) - netsnmp_save_CPPFLAGS="$CPPFLAGS" -- CPPFLAGS="-I/usr/include/libnl3 $CPPFLAGS" -+ CPPFLAGS="$CPPFLAGS" - NETSNMP_SEARCH_LIBS(nl_connect, nl-3, - [AC_CHECK_HEADERS(netlink/netlink.h) -- EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES -I/usr/include/libnl3"], -+ EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES"], - [CPPFLAGS="$netsnmp_save_CPPFLAGS"], [], [], [LMIBLIBS]) - if test "x$ac_cv_header_netlink_netlink_h" != xyes; then - NETSNMP_SEARCH_LIBS(nl_connect, nl, [ --- -2.5.0 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch deleted file mode 100644 index b87e9eec2..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch +++ /dev/null @@ -1,31 +0,0 @@ -From c6304a3e4b8441ff0a6464c0f1f6c5229092fa32 Mon Sep 17 00:00:00 2001 -From: Niels Baggesen <nba@users.sourceforge.net> -Date: Wed, 24 May 2017 16:40:03 +0800 -Subject: [PATCH 1/4] configure: fix check for --enable-perl-cc-checks - -This patch comes from git://git.code.sf.net/p/net-snmp/code, -the commit is 8f431d410b803603dc809d82e0893509615d9a11. - -Upstream-Status: Backport - -Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> ---- - configure.d/config_project_perl_python | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python -index 23f8c7e..475c843 100644 ---- a/configure.d/config_project_perl_python -+++ b/configure.d/config_project_perl_python -@@ -84,7 +84,7 @@ if test "x$install_perl" != "xno" ; then - - # What compiler was used to build the perl binary? - # -- if test "xenable_perl_cc_checks" != "xno" ; then -+ if test "x$enable_perl_cc_checks" != "xno" ; then - AC_MSG_CHECKING([for Perl cc]) - changequote(, ) - PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'` --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch index 60ce80996..bf133b3e3 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch @@ -1,22 +1,23 @@ -From 7136d593ba96b64537069637c328bc65e1b66b2d Mon Sep 17 00:00:00 2001 +From 98c6edba4835b515d933542411d80879327eee16 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 22 Jul 2016 18:34:39 +0000 Subject: [PATCH] get_pid_from_inode: Include limit.h PATH_MAX and NAME_MAX are required by this file -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- agent/mibgroup/util_funcs/get_pid_from_inode.c | 1 + 1 file changed, 1 insertion(+) diff --git a/agent/mibgroup/util_funcs/get_pid_from_inode.c b/agent/mibgroup/util_funcs/get_pid_from_inode.c -index 8e157ae..a494ec7 100644 +index aee907d..7abaec2 100644 --- a/agent/mibgroup/util_funcs/get_pid_from_inode.c +++ b/agent/mibgroup/util_funcs/get_pid_from_inode.c -@@ -5,6 +5,7 @@ +@@ -6,6 +6,7 @@ #include <net-snmp/output_api.h> #include <ctype.h> @@ -24,6 +25,3 @@ index 8e157ae..a494ec7 100644 #include <stdio.h> #if HAVE_STDLIB_H #include <stdlib.h> --- -1.8.3.1 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch new file mode 100644 index 000000000..2d540967e --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch @@ -0,0 +1,42 @@ +From f592398b1c659f84168f5c84f63af3b71454b8f5 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Fri, 28 Sep 2018 22:59:23 +0800 +Subject: [PATCH] remove configure options from versioninfo + +Configure options contains host build paths which breaks +binary reproducibility. + +It is no harm to remove it from version info. + +Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + agent/mibgroup/ucd-snmp/versioninfo.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/agent/mibgroup/ucd-snmp/versioninfo.c b/agent/mibgroup/ucd-snmp/versioninfo.c +index a5151c1..1160382 100644 +--- a/agent/mibgroup/ucd-snmp/versioninfo.c ++++ b/agent/mibgroup/ucd-snmp/versioninfo.c +@@ -92,7 +92,7 @@ var_extensible_version(struct variable *vp, + static char errmsg[300]; + char *cptr; + time_t curtime; +-#ifdef NETSNMP_CONFIGURE_OPTIONS ++#if 0 + static char config_opts[] = NETSNMP_CONFIGURE_OPTIONS; + #endif + +@@ -126,7 +126,7 @@ var_extensible_version(struct variable *vp, + *var_len = strlen(errmsg); + return ((u_char *) errmsg); + case VERCONFIG: +-#ifdef NETSNMP_CONFIGURE_OPTIONS ++#if 0 + *var_len = strlen(config_opts); + if (*var_len > 1024) + *var_len = 1024; /* mib imposed restriction */ +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch deleted file mode 100644 index 527aa39f2..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 1ee72102fbe722d232d74abc4660a8b134cec8d6 Mon Sep 17 00:00:00 2001 -From: Bart Van Assche <bvanassche@acm.org> -Date: Sat, 23 May 2015 07:32:53 +0200 -Subject: [PATCH] snmplib, UDPIPv6 transport: Add a missing return statement - -Detected by Coverity. - -Upstream-Status: backport - -Signed-off-by: Li Zhou <li.zhou@windriver.com> ---- - snmplib/transports/snmpUDPIPv6Domain.c | 1 + - 1 file changed, 1 insertion(+) - -Index: net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c -=================================================================== ---- net-snmp-5.7.3.orig/snmplib/transports/snmpUDPIPv6Domain.c -+++ net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c -@@ -305,6 +305,7 @@ netsnmp_udp6_transport(struct sockaddr_i - errno, strerror(errno))); - netsnmp_socketbase_close(t); - netsnmp_transport_free(t); -+ return NULL; - } - } - /* diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch index af242fafb..778b40188 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch @@ -1,7 +1,8 @@ -From d3027a227bc0f603a5b650d01f97ee1dec515be5 Mon Sep 17 00:00:00 2001 +From 89538a973119f1bf976b3a6df157ea940cf32eb5 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 18 Sep 2015 00:28:45 -0400 Subject: [PATCH] snmplib/keytools.c: Don't check for return from + EVP_MD_CTX_init() EVP_MD_CTX_init() API returns void, it fixes errors with new compilers @@ -9,16 +10,16 @@ EVP_MD_CTX_init() API returns void, it fixes errors with new compilers snmplib/keytools.c: In function 'generate_Ku': error: invalid use of void expression Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- -Upstream-Status: Submitted [https://sourceforge.net/p/net-snmp/patches/1317/] snmplib/keytools.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/snmplib/keytools.c b/snmplib/keytools.c -index 0ccb3a6..880fc14 100644 +index 2cf0240..50fd3ea 100644 --- a/snmplib/keytools.c +++ b/snmplib/keytools.c -@@ -153,8 +153,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len, +@@ -186,8 +186,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len, ctx = EVP_MD_CTX_create(); #else ctx = malloc(sizeof(*ctx)); @@ -26,8 +27,5 @@ index 0ccb3a6..880fc14 100644 - return SNMPERR_GENERR; + EVP_MD_CTX_init(ctx); #endif - #ifndef NETSNMP_DISABLE_MD5 - if (ISTRANSFORM(hashtype, HMACMD5Auth)) { --- -2.5.2 - + if (!EVP_DigestInit(ctx, hashfn)) + return SNMPERR_GENERR; diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch index 999976d27..4782714d5 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch @@ -1,4 +1,4 @@ -From 94e7e4969bc84c945dfea12d67a1e10f61973948 Mon Sep 17 00:00:00 2001 +From a3631df3d6743113e1cd63579925e15bcce85868 Mon Sep 17 00:00:00 2001 From: Wenlin Kang <wenlin.kang@windriver.com> Date: Wed, 24 May 2017 16:45:34 +0800 Subject: [PATCH 2/4] configure: fix a cc check issue. @@ -8,6 +8,7 @@ $myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);' can't get corretly the cc's value. Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> + --- configure.d/config_project_perl_python | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -25,6 +26,3 @@ index 475c843..22d2ad3 100644 changequote([, ]) if test "x$PERLCC" != "x" ; then AC_MSG_RESULT([$PERLCC]) --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch deleted file mode 100644 index 7951234a4..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch +++ /dev/null @@ -1,186 +0,0 @@ -From e57fc809ad6ae522670f3dc157aadde20d968ca7 Mon Sep 17 00:00:00 2001 -From: Bart Van Assche <bvanassche@acm.org> -Date: Wed, 24 May 2017 17:05:03 +0800 -Subject: [PATCH 3/4] CHANGES: BUG: 2712: Fix Perl module compilation - -Avoid that building the Net-SNMP Perl modules fails as follows: - -ERROR from evaluation of /sources/net-snmp-5.7.3/perl/ASN/Makefile.PL: Bizarre \ copy of HASH in list assignment at /usr/lib/perl5/site_perl/5.24.0/Carp.pm line\ 229. - -See also https://sourceforge.net/p/net-snmp/bugs/2712/. - -This patch comes from git://git.code.sf.net/p/net-snmp/code, -the commit is 4e793461e96a2b4fd81142ab312d074d5c8841fa. - -Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> ---- - perl/ASN/Makefile.PL | 4 +--- - perl/Makefile.PL | 4 +--- - perl/OID/Makefile.PL | 5 +---- - perl/SNMP/Makefile.PL | 5 +---- - perl/TrapReceiver/Makefile.PL | 5 +---- - perl/agent/Makefile.PL | 5 +---- - perl/agent/Support/Makefile.PL | 5 +---- - perl/agent/default_store/Makefile.PL | 5 +---- - perl/default_store/Makefile.PL | 5 +---- - 9 files changed, 9 insertions(+), 34 deletions(-) - -diff --git a/perl/ASN/Makefile.PL b/perl/ASN/Makefile.PL -index 4576781..c33d8ba 100644 ---- a/perl/ASN/Makefile.PL -+++ b/perl/ASN/Makefile.PL -@@ -7,9 +7,7 @@ my $lib_version; - # See lib/ExtUtils/MakeMaker.pm for details of how to influence - # the contents of the Makefile that is written. - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - Check_Version(); - -diff --git a/perl/Makefile.PL b/perl/Makefile.PL -index 31fdc40..48aba2a 100644 ---- a/perl/Makefile.PL -+++ b/perl/Makefile.PL -@@ -3,9 +3,7 @@ use Config; - use Getopt::Long; - require 5; - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - sub InitMakeParams { - $nsconfig="net-snmp-config"; # in path by default -diff --git a/perl/OID/Makefile.PL b/perl/OID/Makefile.PL -index 6bb1616..2589985 100644 ---- a/perl/OID/Makefile.PL -+++ b/perl/OID/Makefile.PL -@@ -6,11 +6,8 @@ require 5; - use Config; - use Getopt::Long; - my $lib_version; --my %MakeParams = (); - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - Check_Version(); - -diff --git a/perl/SNMP/Makefile.PL b/perl/SNMP/Makefile.PL -index e617cb7..8aab9a9 100644 ---- a/perl/SNMP/Makefile.PL -+++ b/perl/SNMP/Makefile.PL -@@ -3,15 +3,12 @@ require 5; - use Config; - use Getopt::Long; - my $lib_version; --my %MakeParams = (); - my $opts; - - # See lib/ExtUtils/MakeMaker.pm for details of how to influence - # the contents of the Makefile that is written. - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - Check_Version(); - -diff --git a/perl/TrapReceiver/Makefile.PL b/perl/TrapReceiver/Makefile.PL -index 874ee21..7e9e58e 100644 ---- a/perl/TrapReceiver/Makefile.PL -+++ b/perl/TrapReceiver/Makefile.PL -@@ -3,11 +3,8 @@ require 5; - use Config; - use Getopt::Long; - my $lib_version; --my %MakeParams = (); - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - Check_Version(); - -diff --git a/perl/agent/Makefile.PL b/perl/agent/Makefile.PL -index 4f7bee3..003c0d1 100644 ---- a/perl/agent/Makefile.PL -+++ b/perl/agent/Makefile.PL -@@ -3,11 +3,8 @@ require 5; - use Config; - use Getopt::Long; - my $lib_version; --my %MakeParams = (); - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - Check_Version(); - -diff --git a/perl/agent/Support/Makefile.PL b/perl/agent/Support/Makefile.PL -index 48815b6..2325e10 100644 ---- a/perl/agent/Support/Makefile.PL -+++ b/perl/agent/Support/Makefile.PL -@@ -3,14 +3,11 @@ require 5; - use Config; - use Getopt::Long; - my $lib_version; --my %MakeParams = (); - - # See lib/ExtUtils/MakeMaker.pm for details of how to influence - # the contents of the Makefile that is written. - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - Check_Version(); - -diff --git a/perl/agent/default_store/Makefile.PL b/perl/agent/default_store/Makefile.PL -index ed6483a..31cfbee 100644 ---- a/perl/agent/default_store/Makefile.PL -+++ b/perl/agent/default_store/Makefile.PL -@@ -3,11 +3,8 @@ require 5; - use Config; - use Getopt::Long; - my $lib_version; --my %MakeParams = (); - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - Check_Version(); - -diff --git a/perl/default_store/Makefile.PL b/perl/default_store/Makefile.PL -index 7c671b8..01c8dd0 100644 ---- a/perl/default_store/Makefile.PL -+++ b/perl/default_store/Makefile.PL -@@ -3,11 +3,8 @@ require 5; - use Config; - use Getopt::Long; - my $lib_version; --my %MakeParams = (); - --%MakeParams = InitMakeParams(); -- --WriteMakefile(%MakeParams); -+WriteMakefile(InitMakeParams()); - - - sub InitMakeParams { --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch index 2b03f9e9a..a3d84b291 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch @@ -1,4 +1,4 @@ -From 4ad98ef125eb4e7d7a1a93146042002f78254d36 Mon Sep 17 00:00:00 2001 +From f3c5cd4df7ce8e5639c99b7b918e41fb89e969e3 Mon Sep 17 00:00:00 2001 From: Wenlin Kang <wenlin.kang@windriver.com> Date: Wed, 24 May 2017 17:10:20 +0800 Subject: [PATCH 4/4] configure: fix incorrect variable @@ -8,15 +8,16 @@ For cross compile platform, this variable will not be correct, so fix it. Upstream-Status: Inappropriate [cross compile specific] Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> + --- Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in -index cfcdf73..164df05 100644 +index 9dbdde1..5fdc760 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -171,7 +171,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt +@@ -173,7 +173,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt # # override LD_RUN_PATH to avoid dependencies on the build directory perlmodules: perlmakefiles subdirs @@ -25,6 +26,3 @@ index cfcdf73..164df05 100644 if test $$? != 0 ; then \ exit 1 ; \ fi --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch deleted file mode 100644 index 6bd0f93c4..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 6b93e686bdb6a908d00595608646a05527a5326b Mon Sep 17 00:00:00 2001 -From: Li xin <lixin.fnst@cn.fujitsu.com> -Date: Fri, 21 Aug 2015 12:39:12 +0900 -Subject: [PATCH] the snmp_pdu_parse() function could leave incompletely parsed - varBind variables in the list of variables in case the parsing of the SNMP - PDU failed. If later processing tries to operate on the stale and - incompletely processed varBind (e.g. when printing the variables), this can - lead to e.g. crashes or, possibly, execution of arbitrary code - -Upstream-Status: Backport [net-snmp] - -Written-by: Robert Story ---- - snmplib/snmp_api.c | 53 ++++++++++++++++++++++++++++------------------------- - 1 file changed, 28 insertions(+), 25 deletions(-) - -diff --git a/snmplib/snmp_api.c b/snmplib/snmp_api.c -index 191debf..15a2d39 100644 ---- a/snmplib/snmp_api.c -+++ b/snmplib/snmp_api.c -@@ -4350,10 +4350,9 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) - u_char type; - u_char msg_type; - u_char *var_val; -- int badtype = 0; - size_t len; - size_t four; -- netsnmp_variable_list *vp = NULL; -+ netsnmp_variable_list *vp = NULL, *vplast = NULL; - oid objid[MAX_OID_LEN]; - u_char *p; - -@@ -4493,31 +4492,17 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) - (ASN_SEQUENCE | ASN_CONSTRUCTOR), - "varbinds"); - if (data == NULL) -- return -1; -+ goto fail; - - /* - * get each varBind sequence - */ - while ((int) *length > 0) { -- netsnmp_variable_list *vptemp; -- vptemp = (netsnmp_variable_list *) malloc(sizeof(*vptemp)); -- if (NULL == vptemp) { -- return -1; -- } -- if (NULL == vp) { -- pdu->variables = vptemp; -- } else { -- vp->next_variable = vptemp; -- } -- vp = vptemp; -+ vp = SNMP_MALLOC_TYPEDEF(netsnmp_variable_list); -+ if (NULL == vp) -+ goto fail; - -- vp->next_variable = NULL; -- vp->val.string = NULL; - vp->name_length = MAX_OID_LEN; -- vp->name = NULL; -- vp->index = 0; -- vp->data = NULL; -- vp->dataFreeHook = NULL; - DEBUGDUMPSECTION("recv", "VarBind"); - data = snmp_parse_var_op(data, objid, &vp->name_length, &vp->type, - &vp->val_len, &var_val, length); -@@ -4604,7 +4589,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) - vp->val.string = (u_char *) malloc(vp->val_len); - } - if (vp->val.string == NULL) { -- return -1; -+ goto fail; - } - p = asn_parse_string(var_val, &len, &vp->type, vp->val.string, - &vp->val_len); -@@ -4619,7 +4604,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) - vp->val_len *= sizeof(oid); - vp->val.objid = (oid *) malloc(vp->val_len); - if (vp->val.objid == NULL) { -- return -1; -+ goto fail; - } - memmove(vp->val.objid, objid, vp->val_len); - break; -@@ -4631,7 +4616,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) - case ASN_BIT_STR: - vp->val.bitstring = (u_char *) malloc(vp->val_len); - if (vp->val.bitstring == NULL) { -- return -1; -+ goto fail; - } - p = asn_parse_bitstring(var_val, &len, &vp->type, - vp->val.bitstring, &vp->val_len); -@@ -4640,12 +4625,30 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) - break; - default: - snmp_log(LOG_ERR, "bad type returned (%x)\n", vp->type); -- badtype = -1; -+ goto fail; - break; - } - DEBUGINDENTADD(-4); -+ -+ if (NULL == vplast) { -+ pdu->variables = vp; -+ } else { -+ vplast->next_variable = vp; -+ } -+ vplast = vp; -+ vp = NULL; -+ - } -- return badtype; -+ return 0; -+ -+ fail: -+ DEBUGMSGTL(("recv", "error while parsing VarBindList\n")); -+ /** if we were parsing a var, remove it from the pdu and free it */ -+ if (vp) -+ snmp_free_var(vp); -+ -+ return -1; -+ - } - - /* --- -1.8.4.2 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch index d29be3395..fc3ac2a4b 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch @@ -1,3 +1,8 @@ +From 0becb4843a40910d5ec9aa11969d4905a22037cf Mon Sep 17 00:00:00 2001 +From: "Roy.Li" <rongqing.li@windriver.com> +Date: Fri, 16 Jan 2015 14:14:01 +0800 +Subject: [PATCH] net-snmp: fix "libtool --finish" + LIB_LDCONFIG_CMD failed since it is using a host dir $(libdir) which is /usr/lib64 does not exist on host when compile 64bit image. @@ -9,12 +14,16 @@ rpm-postinst for each recipe while do_package, in package.bbclass. Upstream-Status: Inappropriate [cross compile specific] Signed-off-by: Roy.Li <rongqing.li@windriver.com> + --- -Index: net-snmp-5.7.3/Makefile.top -=================================================================== ---- net-snmp-5.7.3.orig/Makefile.top -+++ net-snmp-5.7.3/Makefile.top -@@ -87,7 +87,7 @@ LIBREVISION = 3 + Makefile.top | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.top b/Makefile.top +index 5d4f9bc..d0ed31c 100644 +--- a/Makefile.top ++++ b/Makefile.top +@@ -89,7 +89,7 @@ LIBREVISION = 0 LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) -o LIB_EXTENSION = la LIB_VERSION = diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch index fbd274bba..5cbb60d8e 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch @@ -1,4 +1,4 @@ -From e47c60dc7f649959f63e56bc62355de4bdfd73f4 Mon Sep 17 00:00:00 2001 +From d619cd9fc01f336ff0ff55b18f9112789eb4d84c Mon Sep 17 00:00:00 2001 From: Marian Florea <marian.florea@windriver.com> Date: Thu, 20 Jul 2017 16:55:24 +0800 Subject: [PATCH] net snmp: fix engineBoots value on SIGHUP @@ -7,16 +7,17 @@ Upstream-Status: Pending Signed-off-by: Marian Florea <marian.florea@windriver.com> Signed-off-by: Li Zhou <li.zhou@windriver.com> + --- agent/snmpd.c | 1 + snmplib/snmpv3.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) -Index: net-snmp-5.7.3/agent/snmpd.c -=================================================================== ---- net-snmp-5.7.3.orig/agent/snmpd.c -+++ net-snmp-5.7.3/agent/snmpd.c -@@ -1253,6 +1253,7 @@ receive(void) +diff --git a/agent/snmpd.c b/agent/snmpd.c +index 6566354..eb0d4b4 100644 +--- a/agent/snmpd.c ++++ b/agent/snmpd.c +@@ -1239,6 +1239,7 @@ receive(void) snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n", netsnmp_get_version()); update_config(); @@ -24,11 +25,11 @@ Index: net-snmp-5.7.3/agent/snmpd.c send_easy_trap(SNMP_TRAP_ENTERPRISESPECIFIC, 3); #if HAVE_SIGHOLD sigrelse(SIGHUP); -Index: net-snmp-5.7.3/snmplib/snmpv3.c -=================================================================== ---- net-snmp-5.7.3.orig/snmplib/snmpv3.c -+++ net-snmp-5.7.3/snmplib/snmpv3.c -@@ -984,9 +984,9 @@ init_snmpv3_post_config(int majorid, int +diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c +index 771ba3b..5de05e7 100644 +--- a/snmplib/snmpv3.c ++++ b/snmplib/snmpv3.c +@@ -1060,9 +1060,9 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg, /* * if our engineID has changed at all, the boots record must be set to 1 */ diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch deleted file mode 100644 index 5eed893e1..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch +++ /dev/null @@ -1,75 +0,0 @@ -Description: fix snmpd crash via AgentX connection - - taken from Fedora, net-snmp-5.7-agentx-crash.patch - -bz729738 - net-snmp dumps core in netsnmp_oid_find_prefix -bz1038011 - net-snmp: snmpd crashes/hangs when AgentX subagent times-out - -commit f9304c83f76202db0e684269ca1af32e43cd9db4 -Author: Jan Safranek <jsafranek@users.sourceforge.net> -Date: Tue Feb 7 14:53:44 2012 +0100 - - CHANGES: PATCH 1633670: fixed snmpd crashing when an AgentX subagent - disconnect in the middle of processing of a request. - - I fixed also the memory leak reported in the tracker comments. - -Upstream-Status: Backport - -Signed-off-by: Zhu Yanjun <yanjun.zhu@windriver.com> -Signed-off-by: Jackie Huang <jackie.huang@windriver.com> - ---- - agent/mibgroup/agentx/master.c | 5 +++++ - agent/mibgroup/agentx/master_admin.c | 9 +++++++-- - 2 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/agent/mibgroup/agentx/master.c b/agent/mibgroup/agentx/master.c -index c42a42a..baeebaf 100644 ---- a/agent/mibgroup/agentx/master.c -+++ b/agent/mibgroup/agentx/master.c -@@ -219,6 +219,9 @@ agentx_got_response(int operation, - if (!cache) { - DEBUGMSGTL(("agentx/master", "response too late on session %8p\n", - session)); -+ /* response is too late, free the cache */ -+ if (magic) -+ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) magic); - return 0; - } - requests = cache->requests; -@@ -606,6 +609,8 @@ agentx_master_handler(netsnmp_mib_handler *handler, - result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data); - if (result == 0) { - snmp_free_pdu(pdu); -+ if (cb_data) -+ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) cb_data); - } - - return SNMP_ERR_NOERROR; -diff --git a/agent/mibgroup/agentx/master_admin.c b/agent/mibgroup/agentx/master_admin.c -index f16f392..b84b85e 100644 ---- a/agent/mibgroup/agentx/master_admin.c -+++ b/agent/mibgroup/agentx/master_admin.c -@@ -133,11 +133,16 @@ close_agentx_session(netsnmp_session * session, int sessid) - * requests, so that the delegated request will be completed and - * further requests can be processed - */ -- netsnmp_remove_delegated_requests_for_session(session); -+ while (netsnmp_remove_delegated_requests_for_session(session)) { -+ DEBUGMSGTL(("agentx/master", "Continue removing delegated reqests\n")); -+ } -+ - if (session->subsession != NULL) { - netsnmp_session *subsession = session->subsession; - for(; subsession; subsession = subsession->next) { -- netsnmp_remove_delegated_requests_for_session(subsession); -+ while (netsnmp_remove_delegated_requests_for_session(subsession)) { -+ DEBUGMSGTL(("agentx/master", "Continue removing delegated subsession reqests\n")); -+ } - } - } - --- -2.7.4 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch index 25eb9c96f..4cd8fd1e4 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch @@ -1,4 +1,4 @@ -From 270e952f58a7e5ddeabe5a15e3ddaaadf40017d0 Mon Sep 17 00:00:00 2001 +From 068952c0e0cdda5a91250b91c5fcc9b85b43daab Mon Sep 17 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> Date: Thu, 22 Jun 2017 10:25:08 +0800 Subject: [PATCH] net-snmp: fix for --disable-des @@ -9,15 +9,16 @@ the --disable-des works correctly. Upstream-Status: Submitted [net-snmp-coders@lists.sourceforge.net] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> + --- snmplib/scapi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snmplib/scapi.c b/snmplib/scapi.c -index 16ac829..271684b 100644 +index 8ad1d70..43caddf 100644 --- a/snmplib/scapi.c +++ b/snmplib/scapi.c -@@ -79,7 +79,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support) +@@ -84,7 +84,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support) #include <openssl/hmac.h> #include <openssl/evp.h> #include <openssl/rand.h> @@ -27,6 +28,3 @@ index 16ac829..271684b 100644 #ifdef HAVE_AES #include <openssl/aes.h> #endif --- -2.11.0 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch index 8f8336a49..7cbaf0bc5 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch @@ -1,4 +1,4 @@ -From 4bb4024b395f19d36ab3569e2773ea80d8cc5261 Mon Sep 17 00:00:00 2001 +From 827fe3b0253aab33472828f40ad05934cc0261b8 Mon Sep 17 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> Date: Wed, 14 Jan 2015 15:10:06 +0800 Subject: [PATCH] testing: add the output format for ptest @@ -6,15 +6,16 @@ Subject: [PATCH] testing: add the output format for ptest Upstream-Status: Inappropriate [OE specific] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> + --- - testing/RUNTESTS | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) + testing/RUNTESTS | 4 ++++ + 1 file changed, 4 insertions(+) -Index: net-snmp-5.7.3/testing/RUNTESTS -=================================================================== ---- net-snmp-5.7.3.orig/testing/RUNTESTS -+++ net-snmp-5.7.3/testing/RUNTESTS -@@ -29,13 +29,17 @@ failed_count=0 +diff --git a/testing/RUNTESTS b/testing/RUNTESTS +index 6715831..a2b6fb8 100755 +--- a/testing/RUNTESTS ++++ b/testing/RUNTESTS +@@ -17,13 +17,17 @@ failed_count=0 rm -f failed_tests for i in "${srcdir}"/testing/fulltests/default/T*$1*; do echo "RUNNING $i" diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb index 4ea0a5915..d47f9e4a3 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb +++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb @@ -11,31 +11,26 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \ file://init \ file://snmpd.conf \ file://snmptrapd.conf \ - file://systemd-support.patch \ file://snmpd.service \ file://snmptrapd.service \ file://net-snmp-add-knob-whether-nlist.h-are-checked.patch \ file://fix-libtool-finish.patch \ file://net-snmp-testing-add-the-output-format-for-ptest.patch \ file://run-ptest \ - file://dont-return-incompletely-parsed-varbinds.patch \ file://0001-config_os_headers-Error-Fix.patch \ - file://0001-config_os_libs2-Error-Fix.patch \ file://0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch \ - file://net-snmp-agentx-crash.patch \ file://0001-get_pid_from_inode-Include-limit.h.patch \ - file://0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch \ - file://0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch \ - file://0001-configure-fix-check-for-enable-perl-cc-checks.patch \ file://0002-configure-fix-a-cc-check-issue.patch \ - file://0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch \ file://0004-configure-fix-incorrect-variable.patch \ file://net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch \ file://net-snmp-fix-for-disable-des.patch \ - file://0001-Remove-U64-typedef.patch \ + file://0001-remove-configure-options-from-versioninfo.patch \ " -SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee" -SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e" +SRC_URI[md5sum] = "6aae5948df7efde626613d6a4b3cd9d4" +SRC_URI[sha256sum] = "c6291385b8ed84f05890fe4197005daf7e7ee7b082c2e390fa114a9477a56042" + +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/net-snmp/files/net-snmp/" +UPSTREAM_CHECK_REGEX = "/net-snmp/(?P<pver>\d+(\.\d+)+)/" inherit autotools-brokensep update-rc.d siteinfo systemd pkgconfig perlnative @@ -62,6 +57,7 @@ EXTRA_OECONF = "--enable-shared \ --with-install-prefix=${D} \ --with-persistent-directory=${localstatedir}/lib/net-snmp \ ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)} \ + --with-openssl=${STAGING_EXECPREFIXDIR} \ " # net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp @@ -173,6 +169,12 @@ net_snmp_sysroot_preprocess () { fi } +PACKAGE_PREPROCESS_FUNCS += "net_snmp_package_preprocess" +net_snmp_package_preprocess () { + sed -e 's@${RECIPE_SYSROOT}@@g' \ + -i ${PKGD}${bindir}/net-snmp-config +} + PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client \ ${PN}-server-snmpd ${PN}-server-snmptrapd \ ${PN}-lib-netsnmp ${PN}-lib-agent ${PN}-lib-helpers \ diff --git a/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb b/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb index 1d77891d4..8c57d2949 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb +++ b/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb @@ -13,8 +13,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f0504124678c1b3158146e0630229298 \ DEPENDS = "openssl" SRC_URI = "http://www.aspl.es/nopoll/downloads/nopoll-${PV}.tar.gz \ " -SRC_URI[md5sum] = "8c411cd0f3c0479aed28c4cf7b114fbb" -SRC_URI[sha256sum] = "f5fbf8aaa16a77b0f265d8c847eb06cb3e68f2b1a50737466dae81181618654c" +SRC_URI[md5sum] = "8d333f158b5d5a8975a6149e6ef8db63" +SRC_URI[sha256sum] = "7f1b20f1d0525f30cdd2a4fc386d328b4cf98c6d11cef51fe62cd9491ba19ad9" inherit autotools pkgconfig diff --git a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch new file mode 100644 index 000000000..4acae80fa --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch @@ -0,0 +1,33 @@ +From 0fe6770b617af7e400abc6f8652c1417d4c3575e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 8 Sep 2018 22:49:15 -0700 +Subject: [PATCH] generate not static get_dh* functions + +Fixes build with OpenSSL 1.1.x + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/automake.mk | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/lib/automake.mk b/lib/automake.mk +index bfbeb94..b53909a 100644 +--- a/lib/automake.mk ++++ b/lib/automake.mk +@@ -113,8 +113,9 @@ lib/dhparams.c: lib/dh1024.pem lib/dh2048.pem lib/dh4096.pem + (echo '#include "lib/dhparams.h"' && \ + openssl dhparam -C -in $(srcdir)/lib/dh1024.pem -noout && \ + openssl dhparam -C -in $(srcdir)/lib/dh2048.pem -noout && \ +- openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) \ +- | sed 's/\(get_dh[0-9]*\)()/\1(void)/' > lib/dhparams.c.tmp ++ openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) | \ ++ sed -e 's/\(get_dh[0-9]*\)()/\1(void)/' \ ++ -e 's/static DH \*get_dh/DH \*get_dh/' > lib/dhparams.c.tmp + mv lib/dhparams.c.tmp lib/dhparams.c + endif + +-- +2.18.0 + diff --git a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb index eceb45e94..b6cef0730 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb +++ b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb @@ -6,4 +6,5 @@ PV = "1.0+git${SRCPV}" SRC_URI += "\ file://0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch \ file://0002-lib-netdev-Adjust-header-include-sequence.patch \ + file://0001-generate-not-static-get_dh-functions.patch \ " diff --git a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch deleted file mode 100644 index a11a97ebd..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 8f299df4dd1ca857e34859c377a29b183c630961 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 21 Sep 2017 13:05:03 -0700 -Subject: [PATCH] l2tp_api.c: include rpc/clnt.h for 'resultproc_t' - -Fixes - -| /mnt/a/oe/build/tmp/work/mips32r2-bec-linux-musl/openl2tp/1.8-r0/recipe-sysroot/usr/include/tirpc/rpc/pmap_clnt.h:81:12: error: unknown type name 'resultproc_t'; did you mean 'rpcproc_t'? | resultproc_t); | ^~~~~~~~~~~~ - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - l2tp_api.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/l2tp_api.c b/l2tp_api.c -index f0946fd..f77881c 100644 ---- a/l2tp_api.c -+++ b/l2tp_api.c -@@ -26,6 +26,7 @@ - #include <sys/types.h> - #include <rpc/types.h> - #include <rpc/xdr.h> -+#include <rpc/clnt.h> - #include <rpc/pmap_clnt.h> - //#include <netinet/in.h> - --- -2.14.1 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch index 3f8bcaa48..bd9bcb8f2 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch +++ b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch @@ -4,6 +4,9 @@ Date: Tue, 28 Mar 2017 18:09:58 -0700 Subject: [PATCH 2/2] user ipv6 structures Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Update for ipv6 address compare +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- l2tp_api.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) @@ -18,8 +21,8 @@ index 9d6f60a..f0946fd 100644 if ((!l2tp_opt_remote_rpc) && - ((xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) && - (xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_ANY)))) { -+ ((xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_LOOPBACK)) && -+ (xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_ANY)))) { ++ ((memcmp(&xprt->xp_raddr.sin6_addr, &in6addr_loopback, sizeof(struct in6_addr)) != 0) && ++ (memcmp(&xprt->xp_raddr.sin6_addr, &in6addr_any, sizeof(struct in6_addr)) != 0))) { + char straddr[INET6_ADDRSTRLEN]; + inet_ntop(AF_INET6, &xprt->xp_raddr.sin6_addr, straddr, sizeof(straddr)); if (l2tp_opt_trace_flags & L2TP_DEBUG_API) { diff --git a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch deleted file mode 100644 index 0fcba6546..000000000 --- a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch +++ /dev/null @@ -1,36 +0,0 @@ -From ede4ae8e25f9fb746a6f4e076d0ef029938d2880 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 28 Mar 2017 11:46:56 -0700 -Subject: [PATCH 4/4] Adjust for linux-kernel headers assumptions on glibc - -Fixes build issues e.g. - -In file included from /mnt/a/build/tmp-musl/work/cortexa7hf-neon-vfpv4-oe-linux-musleabi/openl2tp/1.8-r0/recipe-sysroot/usr/include/linux/if_pppox.h:24: -/mnt/a/build/tmp-musl/work/cortexa7hf-neon-vfpv4-oe-linux-musleabi/openl2tp/1.8-r0/recipe-sysroot/usr/include/linux/if.h:97:2: error: expected identifier - IFF_LOWER_UP = 1<<16, /* __volatile__ */ - ^ - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - plugins/ppp_unix.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/plugins/ppp_unix.c b/plugins/ppp_unix.c -index 869066f..5c1e44f 100644 ---- a/plugins/ppp_unix.c -+++ b/plugins/ppp_unix.c -@@ -21,6 +21,11 @@ - * Plugin to use the standard UNIX pppd - */ - -+/* hack to make sure kernel headers understand that libc (musl) -+ * does define IFF_LOWER_UP et al. -+ */ -+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0 -+ - #include <unistd.h> - #include <fcntl.h> - #include <sys/types.h> --- -2.12.1 - diff --git a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb index 1f6b4ded3..90e8b111d 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb +++ b/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb @@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e9d9259cbbf00945adc25a470c1d3585 \ file://usl/LICENSE;md5=9c1387a3c5213aa40671438af3e00793 \ " -DEPENDS = "popt flex readline" +DEPENDS = "popt flex readline rpcsvc-proto-native bison-native" SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \ file://Makefile-modify-CFLAGS-to-aviod-build-error.patch \ @@ -34,12 +34,7 @@ SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \ file://openl2tpd-enable-tests.patch \ file://run-ptest \ file://fix_linux_4.15_compile.patch \ - " - -SRC_URI_append_libc-musl = "\ - file://0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch \ file://0002-user-ipv6-structures.patch \ - file://0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch \ " SRC_URI[md5sum] = "e3d08dedfb9e6a9a1e24f6766f6dadd0" SRC_URI[sha256sum] = "1c97704d4b963a87fbc0e741668d4530933991515ae9ab0dffd11b5444f4860f" @@ -49,10 +44,10 @@ inherit autotools-brokensep pkgconfig systemd ptest SYSTEMD_SERVICE_${PN} = "openl2tpd.service" SYSTEMD_AUTO_ENABLE = "disable" -DEPENDS_append_libc-musl = " libtirpc" -CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" -CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" -LDFLAGS_append_libc-musl = " -ltirpc" +DEPENDS += "libtirpc" +CPPFLAGS += "-I${STAGING_INCDIR}/tirpc" +CFLAGS += "-I${STAGING_INCDIR}/tirpc" +LDFLAGS += "-ltirpc" PARALLEL_MAKE = "" EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-unused-but-set-variable" CPPFLAGS="${CPPFLAGS}" OPT_CFLAGS="${CFLAGS}"' diff --git a/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb b/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb index 95faa65b1..780423f0f 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb +++ b/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb @@ -17,6 +17,8 @@ LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3e47566c9271b786693d8a08792dbf41" inherit autotools-brokensep +DEPENDS += "virtual/crypt" + EXTRA_OECONF += "--disable-static" do_configure_prepend () { diff --git a/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb b/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb index b2757f6dd..725ba189c 100644 --- a/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb +++ b/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb @@ -18,11 +18,14 @@ SRC_URI[sha256sum] = "849d7ef5af80d03e76cc05ed9fb8fa2bcc2b724b51ebfd1b6be11c7863 inherit autotools-brokensep +LIBS_append_libc-musl = " -lssp_nonshared" +LIBS_append_libc-glibc = " -lc_nonshared" + S = "${WORKDIR}/tsocks-1.8" FILES_${PN} = "${libdir}/* ${bindir}/tsocks" FILES_${PN}-dev = "" INSANE_SKIP_${PN} = "dev-so" -EXTRA_OEMAKE = "SHCC='${CC} -fPIC ${LDFLAGS}'" +EXTRA_OEMAKE = "SHCC='${CC} -fPIC ${LDFLAGS}' LIBS='${LIBS}'" diff --git a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch index 5dd4c7d77..8cadb2bba 100644 --- a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch +++ b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch @@ -1,23 +1,27 @@ -From 7e1ae687916fd5878ee755afbdea6b10494e0b92 Mon Sep 17 00:00:00 2001 -From: Alexey Firago <alexey_firago@mentor.com> -Date: Wed, 26 Jul 2017 23:21:25 +0300 +From 12414304245cce6ef0e8b9547949be5109845353 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 13:33:33 +0800 Subject: [PATCH] cmake: Install libcares.pc Prepare and install libcares.pc file during cmake build, so libraries using pkg-config to find libcares will not fail. Signed-off-by: Alexey Firago <alexey_firago@mentor.com> + +update to 1.14.0, fix patch warning + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - CMakeLists.txt | 21 +++++++++++++++++++++ + CMakeLists.txt | 23 +++++++++++++++++++++++ libcares.pc.cmakein | 20 ++++++++++++++++++++ - 2 files changed, 41 insertions(+) + 2 files changed, 43 insertions(+) create mode 100644 libcares.pc.cmakein diff --git a/CMakeLists.txt b/CMakeLists.txt -index 364b6c7..0016b67 100644 +index 60a880c..71eaa53 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -173,21 +173,29 @@ ADD_DEFINITIONS(${SYSFLAGS}) +@@ -193,22 +193,30 @@ ADD_DEFINITIONS(${SYSFLAGS}) # Tell C-Ares about libraries to depend on @@ -43,32 +47,35 @@ index 364b6c7..0016b67 100644 LIST (APPEND CARES_DEPENDENT_LIBS ws2_32) + LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lws2_32") ENDIF () -+string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}") ++string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}") # When checking for symbols, we need to make sure we set the proper -@@ -489,6 +497,13 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h) + # headers, libraries, and definitions for the detection to work properly +@@ -514,6 +522,15 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h) # Write ares_config.h configuration file. This is used only for the build. CONFIGURE_FILE (ares_config.h.cmake ${PROJECT_BINARY_DIR}/ares_config.h) +# Pass required CFLAGS to pkg-config in case of static library +IF (CARES_STATIC) -+ SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB") ++ SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB") +ENDIF() + +# Write ares_config.h configuration file. This is used only for the build. +CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY) ++ ++ # TRANSFORM_MAKEFILE_INC # -@@ -625,6 +640,12 @@ IF (CARES_INSTALL) - INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" DESTINATION ${CMAKECONFIG_INSTALL_DIR}) +@@ -664,6 +681,12 @@ IF (CARES_INSTALL) + INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ENDIF () +# pkg-config file +IF (CARES_INSTALL) -+ SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig") -+ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR}) ++ SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ++ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR}) +ENDIF () + # Legacy chain-building variables (provided for compatibility with old code). @@ -76,7 +83,7 @@ index 364b6c7..0016b67 100644 SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND") diff --git a/libcares.pc.cmakein b/libcares.pc.cmakein new file mode 100644 -index 0000000..f29fede +index 0000000..3579256 --- /dev/null +++ b/libcares.pc.cmakein @@ -0,0 +1,20 @@ diff --git a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb index 70e497f5f..b31543d9c 100644 --- a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb +++ b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb @@ -3,14 +3,17 @@ SUMMARY = "c-ares is a C library that resolves names asynchronously." HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/" SECTION = "libs" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f4b026880834eb01c035c5e5cb47ccac" -SRCREV = "3be1924221e1326df520f8498d704a5c4c8d0cce" -PV = "1.13.0+gitr${SRCPV}" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006" + +PV = "1.14.0+gitr${SRCPV}" SRC_URI = "\ git://github.com/c-ares/c-ares.git \ file://cmake-install-libcares.pc.patch \ " +SRCREV = "17dc1b3102e0dfc3e7e31369989013154ee17893" + +UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)" S = "${WORKDIR}/git" @@ -18,7 +21,6 @@ inherit cmake pkgconfig PACKAGES =+ "${PN}-utils" -FILES_${PN}-dev += "${libdir}/cmake" FILES_${PN}-utils = "${bindir}" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-configure.ac-make-tools-support-optional.patch b/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-configure.ac-make-tools-support-optional.patch new file mode 100644 index 000000000..b0809ee94 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-configure.ac-make-tools-support-optional.patch @@ -0,0 +1,39 @@ +From 86df4200c9c33d999df0e8cc3c9771f17a297ec4 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Wed, 13 Sep 2017 15:01:54 +0200 +Subject: [PATCH] configure.ac: make tools support optional + +* add --enable-tools option +* XIPH_PATH_OGG macro is provided by libogg so we cannot call + it without the libogg dependency + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + configure.ac | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index d4b1a3f..7d6b2dc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -68,8 +68,14 @@ AC_MSG_RESULT($has_alloca) + + AC_CHECK_HEADERS(sys/soundcard.h sys/audioio.h) + +-XIPH_PATH_OGG([tools="tools"], [tools=""]) ++AC_ARG_ENABLE(tools, [ --enable-tools Compile ogg tools], ++[if test "$enableval" = yes; then ++ [tools="tools"] ++else ++ [tools=""] ++fi], + AC_SUBST(tools) ++) + + AC_CHECK_LIB(m, sin) + +-- +2.14.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-tests-Include-entcode.c-into-test-sources-to-provide.patch b/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-tests-Include-entcode.c-into-test-sources-to-provide.patch new file mode 100644 index 000000000..cc893f099 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-tests-Include-entcode.c-into-test-sources-to-provide.patch @@ -0,0 +1,55 @@ +From 61fbdddb660c5944ac23b820754a7c4cf4eee097 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jun 2018 19:29:03 -0700 +Subject: [PATCH] tests: Include entcode.c into test sources to provide + definitions of functions e.g. ec_ilog() + +Fixes link errors in tests +| /usr/src/debug/celt051/0.5.1.3+gitAUTOINC+5555aae843-r0/git/tests/../libcelt/rangedec.c:202: undefined reference to `ec_ilog' + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tests/cwrs32-test.c | 1 + + tests/ectest.c | 2 +- + tests/laplace-test.c | 1 + + 3 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tests/cwrs32-test.c b/tests/cwrs32-test.c +index 3a95df2..a159ab3 100644 +--- a/tests/cwrs32-test.c ++++ b/tests/cwrs32-test.c +@@ -8,6 +8,7 @@ + #include "rangeenc.c" + #include "rangedec.c" + #include "cwrs.c" ++#include "entcode.c" + #include <string.h> + #define NMAX (10) + #define MMAX (9) +diff --git a/tests/ectest.c b/tests/ectest.c +index aa35453..94eb9a3 100644 +--- a/tests/ectest.c ++++ b/tests/ectest.c +@@ -5,7 +5,7 @@ + #include <stdlib.h> + #include <stdio.h> + #include <math.h> +-#include "entcode.h" ++#include "entcode.c" + #include "entenc.c" + #include "entdec.c" + #include "rangeenc.c" +diff --git a/tests/laplace-test.c b/tests/laplace-test.c +index 3f98ab3..8e1fb4e 100644 +--- a/tests/laplace-test.c ++++ b/tests/laplace-test.c +@@ -6,6 +6,7 @@ + #include <stdlib.h> + #include "laplace.c" + #include "stack_alloc.h" ++#include "entcode.c" + #include "entenc.c" + #include "entdec.c" + #include "rangeenc.c" diff --git a/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb b/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb new file mode 100644 index 000000000..116800522 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb @@ -0,0 +1,33 @@ +# +# Copyright (C) 2013 Wind River Systems, Inc. +# + +SUMMARY = "The CELT codec is a compression algorithm for audio" +DESCRIPTION = "The CELT codec is a compression algorithm for \ +audio. Like MP3, Vorbis, and AAC it is suitable for transmitting music \ +with high quality. Unlike these formats CELT imposes very little delay \ +on the signal, even less than is typical for speech centric formats \ +like Speex, GSM, or G.729." + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=375f60ab360d17f0172737036ff155b2" + +PV = "0.5.1.3+git${SRCPV}" + +SRCREV = "5555aae843f57241d005e330b9cb65602d56db0f" + +SRC_URI = "git://git.xiph.org/celt.git;branch=compat-v0.5.1;protocol=https \ + file://0001-configure.ac-make-tools-support-optional.patch \ + file://0001-tests-Include-entcode.c-into-test-sources-to-provide.patch \ + " + +S = "${WORKDIR}/git" + +inherit pkgconfig autotools-brokensep + +PACKAGECONFIG_class-native = "" +PACKAGECONFIG ??= "" + +PACKAGECONFIG[ogg] = "--enable-tools,--disable-tools,libogg," + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch b/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch index 92a2dbd93..9f943cdce 100644 --- a/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch +++ b/meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch @@ -1,4 +1,7 @@ - chrony: fix build failure for arma9 +From 9ca48a6fef1da1bb0dd67ab94256c7e240da1834 Mon Sep 17 00:00:00 2001 +From: Joe Slater <jslater@windriver.com> +Date: Thu, 9 Mar 2017 10:58:06 -0800 +Subject: [PATCH] chrony: fix build failure for arma9 Eliminate references to syscalls not available for ARM_EABI. Also add a dependency on libseccomp @@ -16,9 +19,15 @@ Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org> +--- + sys_linux.c | 19 +++++++++++++------ + 1 file changed, 13 insertions(+), 6 deletions(-) + +diff --git a/sys_linux.c b/sys_linux.c +index f4b532d..d05fa24 100644 --- a/sys_linux.c +++ b/sys_linux.c -@@ -465,14 +465,14 @@ SYS_Linux_EnableSystemCallFilter(int lev +@@ -482,14 +482,14 @@ SYS_Linux_EnableSystemCallFilter(int level) const int syscalls[] = { /* Clock */ SCMP_SYS(adjtimex), SCMP_SYS(clock_gettime), SCMP_SYS(gettimeofday), @@ -36,8 +45,8 @@ SCMP_SYS(mprotect), SCMP_SYS(mremap), SCMP_SYS(munmap), SCMP_SYS(shmdt), /* Filesystem */ SCMP_SYS(access), SCMP_SYS(chmod), SCMP_SYS(chown), SCMP_SYS(chown32), -@@ -483,14 +483,21 @@ - SCMP_SYS(bind), SCMP_SYS(connect), SCMP_SYS(getsockname), +@@ -500,14 +500,21 @@ SYS_Linux_EnableSystemCallFilter(int level) + SCMP_SYS(bind), SCMP_SYS(connect), SCMP_SYS(getsockname), SCMP_SYS(getsockopt), SCMP_SYS(recvfrom), SCMP_SYS(recvmmsg), SCMP_SYS(recvmsg), SCMP_SYS(sendmmsg), SCMP_SYS(sendmsg), SCMP_SYS(sendto), - /* TODO: check socketcall arguments */ diff --git a/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.2.bb b/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.3.bb index 8b90a354e..2586370fa 100644 --- a/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.2.bb +++ b/meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.3.bb @@ -35,8 +35,8 @@ SRC_URI = "https://download.tuxfamily.org/chrony/chrony-${PV}.tar.gz \ file://chronyd \ file://arm_eabi.patch \ " -SRC_URI[md5sum] = "f4c4eb0dc92f35ee4bb7d3dcd8029ecb" -SRC_URI[sha256sum] = "329f6718dd8c3ece3eee78be1f4821cbbeb62608e7d23f25da293cfa433c4116" +SRC_URI[md5sum] = "81ab62cf5d60b4b3fa8cd2c1b267ffd9" +SRC_URI[sha256sum] = "0d1fb2d5875032f2d5a86f3770374c87ee4c941916f64171e81f7684f2a73128" DEPENDS = "pps-tools" diff --git a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch b/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch deleted file mode 100644 index c9195b4f4..000000000 --- a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch +++ /dev/null @@ -1,24 +0,0 @@ -support cross-compile for linux-os. - -Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> - -diff -Nurp ctdb-2.5.1.orig/configure ctdb-2.5.1/configure ---- ctdb-2.5.1.orig/configure 2015-05-07 16:24:28.545000238 +0900 -+++ ctdb-2.5.1/configure 2015-05-07 16:28:20.894000244 +0900 -@@ -10692,10 +10692,16 @@ if test x"$libreplace_cv_HAVE_GETADDRINF - # see bug 5910, use our replacements if we detect - # a broken system. - if test "$cross_compiling" = yes; then : -+ case "$target_os" in -+ *linux*) -+ ;; -+ *) - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - as_fn_error $? "cannot run test program while cross compiling - See \`config.log' for more details" "$LINENO" 5; } -+ ;; -+ esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ diff --git a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch b/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch deleted file mode 100644 index 1294fe41b..000000000 --- a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch +++ /dev/null @@ -1,17 +0,0 @@ -link rep_snprintf from lib/replace/snprintf.o for ltdbtool - -Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> - -Index: ctdb-2.5.6/Makefile.in -=================================================================== ---- ctdb-2.5.6.orig/Makefile.in -+++ ctdb-2.5.6/Makefile.in -@@ -176,7 +176,7 @@ bin/ctdb: $(CTDB_CLIENT_OBJ) tools/ctdb. - @echo Linking $@ - $(WRAPPER) $(CC) $(CFLAGS) -o $@ tools/ctdb.o tools/ctdb_vacuum.o $(CTDB_CLIENT_OBJ) $(LIB_FLAGS) - --bin/ltdbtool: tools/ltdbtool.o $(TDB_OBJ) -+bin/ltdbtool: tools/ltdbtool.o $(TDB_OBJ) lib/replace/snprintf.o - @echo Linking $@ - $(WRAPPER) $(CC) $(CFLAGS) -o $@ $+ $(LIB_FLAGS) - diff --git a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch b/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch deleted file mode 100644 index a7e987b85..000000000 --- a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f02ff7383f1cc0c118732352ccbae476c7b3b3ba Mon Sep 17 00:00:00 2001 -From: Mark Asselstine <mark.asselstine@windriver.com> -Date: Tue, 17 Nov 2015 16:17:00 -0500 -Subject: [PATCH] service: ensure the PID directory is created - -Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> ---- - config/ctdb.service | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/config/ctdb.service b/config/ctdb.service -index ea37c30..8537105 100644 ---- a/config/ctdb.service -+++ b/config/ctdb.service -@@ -5,6 +5,7 @@ After=network.target - [Service] - Type=forking - LimitCORE=infinity -+RuntimeDirectory=/run/ctdb - PIDFile=/run/ctdb/ctdbd.pid - ExecStart=/usr/sbin/ctdbd_wrapper /run/ctdb/ctdbd.pid start - ExecStop=/usr/sbin/ctdbd_wrapper /run/ctdb/ctdbd.pid stop --- -2.1.4 - diff --git a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb b/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb deleted file mode 100644 index b5a60645c..000000000 --- a/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb +++ /dev/null @@ -1,57 +0,0 @@ -DESCRIPTION = "CTDB is a cluster implementation of the TDB database \ -used by Samba and other projects to store temporary data. If an \ -application is already using TDB for temporary data it is very easy \ -to convert that application to be cluster aware and use CTDB instead." -HOMEPAGE = "https://ctdb.samba.org/" -LICENSE = "GPL-2.0+ & LGPL-3.0+ & GPL-3.0+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ - file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ - " - -SRC_URI = "https://ftp.samba.org/pub/${BPN}/${BP}.tar.gz \ - file://01-support-cross-compile-for-linux-os.patch \ - file://02-link-rep_snprintf-for-ltdbtool.patch \ - file://service-ensure-the-PID-directory-is-created.patch \ - " - -SRC_URI[md5sum] = "efc50109f90a4c790124c35e4ba234ad" -SRC_URI[sha256sum] = "fc1cdd7efcc91afc629f21408281bba5da107b9c17e74bdee2f28a532d14f874" - -inherit autotools-brokensep pkgconfig systemd - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libtdb] = "--without-included-tdb,--with-included-tdb,libtdb" - -PARALLEL_MAKE = "" - -DEPENDS += "popt libtevent libtalloc libldb" -DEPENDS_append_libc-musl = " libtirpc" -CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" -LDFLAGS_append_libc-musl = " -ltirpc" - -# ctdbd_wrapper requires pgrep, hence procps -RDEPENDS_${PN} += "procps" - -do_configure() { - oe_runconf -} - -do_install_append() { - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${S}/config/ctdb.service ${D}${systemd_unitdir}/system - sed -i -e 's,/usr/sbin/,${sbindir}/,' ${D}${systemd_unitdir}/system/ctdb.service - sed -i -e 's,\([=\ ]\)/run/,\1${localstatedir}/run/,' ${D}${systemd_unitdir}/system/ctdb.service - - rm -r ${D}/${localstatedir}/run -} - -# The systemd service is disabled by default, as the service will fail to -# start without /etc/ctdb/nodes. If the user supplies this, they can re-enable -# the service. -SYSTEMD_AUTO_ENABLE = "disable" -SYSTEMD_SERVICE_${PN} = "ctdb.service" - -# onnode is a shell script with bashisms and bash #! -RDEPENDS_${PN} += "bash" diff --git a/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb b/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb index 340f57dc7..799cf8611 100644 --- a/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb +++ b/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb @@ -2,7 +2,7 @@ SUMMARY = "C++ library for client-side URL transfers" HOMEPAGE = "http://www.curlpp.org/" SECTION = "libdevel" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=fd0c9adf285a69aa3b4faf34384e1029" DEPENDS = "curl" DEPENDS_class-native = "curl-native" @@ -15,19 +15,4 @@ S = "${WORKDIR}/git" inherit cmake pkgconfig binconfig -do_install_append () { - sed -i 's,${STAGING_DIR_TARGET},,g' ${D}${libdir}/pkgconfig/curlpp.pc -} - -PACKAGES =+ "libcurlpp libcurlpp-dev libcurlpp-staticdev" - -FILES_lib${BPN} = "${libdir}/lib*.so.*" - -FILES_lib${BPN}-dev = "${includedir} \ - ${libdir}/pkgconfig \ - ${bindir}/*-config \ -" - -FILES_lib${BPN}-staticdev = "${libdir}/lib*.a" - BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch index 0991dd8b9..1bf0f75c1 100644 --- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch +++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch @@ -1,7 +1,7 @@ From be1b3d2d0f1608cba5efee73d6aac5ad0709041b Mon Sep 17 00:00:00 2001 From: Joe MacDonald <joe_macdonald@mentor.com> Date: Tue, 9 Sep 2014 10:24:58 -0400 -Subject: [PATCH] Upstream-status: Inappropriate [OE specific] +Subject: [PATCH] Upstream-Status: Inappropriate [OE specific] Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb deleted file mode 100644 index d2465f82d..000000000 --- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb +++ /dev/null @@ -1,9 +0,0 @@ -require dnsmasq.inc - -SRC_URI += "\ - file://lua.patch \ - file://CVE-2017-15107.patch \ -" - -SRC_URI[dnsmasq-2.78.md5sum] = "3bb97f264c73853f802bf70610150788" -SRC_URI[dnsmasq-2.78.sha256sum] = "c92e5d78aa6353354d02aabf74590d08980bb1385d8a00b80ef9bc80430aa1dc" diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb new file mode 100644 index 000000000..a66b9a9ad --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb @@ -0,0 +1,8 @@ +require dnsmasq.inc + +SRC_URI[dnsmasq-2.79.md5sum] = "5d7120a46d0c16a334f46757d7e2ba55" +SRC_URI[dnsmasq-2.79.sha256sum] = "77512dd6f31ffd96718e8dcbbf54f02c083f051d4cca709bd32540aea269f789" +SRC_URI += "\ + file://lua.patch \ +" + diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/CVE-2017-15107.patch b/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/CVE-2017-15107.patch deleted file mode 100644 index 701101bcb..000000000 --- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/CVE-2017-15107.patch +++ /dev/null @@ -1,263 +0,0 @@ -From 5a56e1b78a753d3295564daddc9ce389cc69fd68 Mon Sep 17 00:00:00 2001 -From: Simon Kelley <simon@thekelleys.org.uk> -Date: Fri, 19 Jan 2018 12:26:08 +0000 -Subject: [PATCH] DNSSEC fix for wildcard NSEC records. CVE-2017-15107 applies. - -It's OK for NSEC records to be expanded from wildcards, -but in that case, the proof of non-existence is only valid -starting at the wildcard name, *.<domain> NOT the name expanded -from the wildcard. Without this check it's possible for an -attacker to craft an NSEC which wrongly proves non-existence -in a domain which includes a wildcard for NSEC. - -Upstream-Status: Backport [http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=4fe6744a220eddd3f1749b40cac3dfc510787de6] -CVE: CVE-2017-15107 -Signed-off-by: Sinan Kaya <okaya@kernel.org> ---- - CHANGELOG | 44 +++++++++++++++++++ - src/dnssec.c | 117 +++++++++++++++++++++++++++++++++++++++++++++------ - 2 files changed, 147 insertions(+), 14 deletions(-) - -diff --git a/CHANGELOG b/CHANGELOG -index 075fe1a6..5226dce8 100644 ---- a/CHANGELOG -+++ b/CHANGELOG -@@ -1,3 +1,47 @@ -+version 2.79 -+ Fix parsing of CNAME arguments, which are confused by extra spaces. -+ Thanks to Diego Aguirre for spotting the bug. -+ -+ Where available, use IP_UNICAST_IF or IPV6_UNICAST_IF to bind -+ upstream servers to an interface, rather than SO_BINDTODEVICE. -+ Thanks to Beniamino Galvani for the patch. -+ -+ Always return a SERVFAIL answer to DNS queries without the -+ recursion desired bit set, UNLESS acting as an authoritative -+ DNS server. This avoids a potential route to cache snooping. -+ -+ Add support for Ed25519 signatures in DNSSEC validation. -+ -+ No longer support RSA/MD5 signatures in DNSSEC validation, -+ since these are not secure. This behaviour is mandated in -+ RFC-6944. -+ -+ Fix incorrect error exit code from dhcp_release6 utility. -+ Thanks Gaudenz Steinlin for the bug report. -+ -+ Use SIGINT (instead of overloading SIGHUP) to turn on DNSSEC -+ time validation when --dnssec-no-timecheck is in use. -+ Note that this is an incompatible change from earlier releases. -+ -+ Allow more than one --bridge-interface option to refer to an -+ interface, so that we can use -+ --bridge-interface=int1,alias1 -+ --bridge-interface=int1,alias2 -+ as an alternative to -+ --bridge-interface=int1,alias1,alias2 -+ Thanks to Neil Jerram for work on this. -+ -+ Fix for DNSSEC with wildcard-derived NSEC records. -+ It's OK for NSEC records to be expanded from wildcards, -+ but in that case, the proof of non-existence is only valid -+ starting at the wildcard name, *.<domain> NOT the name expanded -+ from the wildcard. Without this check it's possible for an -+ attacker to craft an NSEC which wrongly proves non-existence. -+ Thanks to Ralph Dolmans for finding this, and co-ordinating -+ the vulnerability tracking and fix release. -+ CVE-2017-15107 applies. -+ -+ - version 2.78 - Fix logic of appending ".<layer>" to PXE basename. Thanks to Chris - Novakovic for the patch. -diff --git a/src/dnssec.c b/src/dnssec.c -index a74d01ab..1417be56 100644 ---- a/src/dnssec.c -+++ b/src/dnssec.c -@@ -424,15 +424,17 @@ static void from_wire(char *name) - static int count_labels(char *name) - { - int i; -- -+ char *p; -+ - if (*name == 0) - return 0; - -- for (i = 0; *name; name++) -- if (*name == '.') -+ for (p = name, i = 0; *p; p++) -+ if (*p == '.') - i++; - -- return i+1; -+ /* Don't count empty first label. */ -+ return *name == '.' ? i : i+1; - } - - /* Implement RFC1982 wrapped compare for 32-bit numbers */ -@@ -1405,8 +1407,8 @@ static int hostname_cmp(const char *a, const char *b) - } - } - --static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsigned char **nsecs, int nsec_count, -- char *workspace1, char *workspace2, char *name, int type, int *nons) -+static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsigned char **nsecs, unsigned char **labels, int nsec_count, -+ char *workspace1_in, char *workspace2, char *name, int type, int *nons) - { - int i, rc, rdlen; - unsigned char *p, *psave; -@@ -1419,6 +1421,9 @@ static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsi - /* Find NSEC record that proves name doesn't exist */ - for (i = 0; i < nsec_count; i++) - { -+ char *workspace1 = workspace1_in; -+ int sig_labels, name_labels; -+ - p = nsecs[i]; - if (!extract_name(header, plen, &p, workspace1, 1, 10)) - return 0; -@@ -1427,7 +1432,27 @@ static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsi - psave = p; - if (!extract_name(header, plen, &p, workspace2, 1, 10)) - return 0; -- -+ -+ /* If NSEC comes from wildcard expansion, use original wildcard -+ as name for computation. */ -+ sig_labels = *labels[i]; -+ name_labels = count_labels(workspace1); -+ -+ if (sig_labels < name_labels) -+ { -+ int k; -+ for (k = name_labels - sig_labels; k != 0; k--) -+ { -+ while (*workspace1 != '.' && *workspace1 != 0) -+ workspace1++; -+ if (k != 1 && *workspace1 == '.') -+ workspace1++; -+ } -+ -+ workspace1--; -+ *workspace1 = '*'; -+ } -+ - rc = hostname_cmp(workspace1, name); - - if (rc == 0) -@@ -1825,24 +1850,26 @@ static int prove_non_existence_nsec3(struct dns_header *header, size_t plen, uns - - static int prove_non_existence(struct dns_header *header, size_t plen, char *keyname, char *name, int qtype, int qclass, char *wildname, int *nons) - { -- static unsigned char **nsecset = NULL; -- static int nsecset_sz = 0; -+ static unsigned char **nsecset = NULL, **rrsig_labels = NULL; -+ static int nsecset_sz = 0, rrsig_labels_sz = 0; - - int type_found = 0; -- unsigned char *p = skip_questions(header, plen); -+ unsigned char *auth_start, *p = skip_questions(header, plen); - int type, class, rdlen, i, nsecs_found; - - /* Move to NS section */ - if (!p || !(p = skip_section(p, ntohs(header->ancount), header, plen))) - return 0; -+ -+ auth_start = p; - - for (nsecs_found = 0, i = ntohs(header->nscount); i != 0; i--) - { - unsigned char *pstart = p; - -- if (!(p = skip_name(p, header, plen, 10))) -+ if (!extract_name(header, plen, &p, daemon->workspacename, 1, 10)) - return 0; -- -+ - GETSHORT(type, p); - GETSHORT(class, p); - p += 4; /* TTL */ -@@ -1859,7 +1886,69 @@ static int prove_non_existence(struct dns_header *header, size_t plen, char *key - if (!expand_workspace(&nsecset, &nsecset_sz, nsecs_found)) - return 0; - -- nsecset[nsecs_found++] = pstart; -+ if (type == T_NSEC) -+ { -+ /* If we're looking for NSECs, find the corresponding SIGs, to -+ extract the labels value, which we need in case the NSECs -+ are the result of wildcard expansion. -+ Note that the NSEC may not have been validated yet -+ so if there are multiple SIGs, make sure the label value -+ is the same in all, to avoid be duped by a rogue one. -+ If there are no SIGs, that's an error */ -+ unsigned char *p1 = auth_start; -+ int res, j, rdlen1, type1, class1; -+ -+ if (!expand_workspace(&rrsig_labels, &rrsig_labels_sz, nsecs_found)) -+ return 0; -+ -+ rrsig_labels[nsecs_found] = NULL; -+ -+ for (j = ntohs(header->nscount); j != 0; j--) -+ { -+ if (!(res = extract_name(header, plen, &p1, daemon->workspacename, 0, 10))) -+ return 0; -+ -+ GETSHORT(type1, p1); -+ GETSHORT(class1, p1); -+ p1 += 4; /* TTL */ -+ GETSHORT(rdlen1, p1); -+ -+ if (!CHECK_LEN(header, p1, plen, rdlen1)) -+ return 0; -+ -+ if (res == 1 && class1 == qclass && type1 == T_RRSIG) -+ { -+ int type_covered; -+ unsigned char *psav = p1; -+ -+ if (rdlen < 18) -+ return 0; /* bad packet */ -+ -+ GETSHORT(type_covered, p1); -+ -+ if (type_covered == T_NSEC) -+ { -+ p1++; /* algo */ -+ -+ /* labels field must be the same in every SIG we find. */ -+ if (!rrsig_labels[nsecs_found]) -+ rrsig_labels[nsecs_found] = p1; -+ else if (*rrsig_labels[nsecs_found] != *p1) /* algo */ -+ return 0; -+ } -+ p1 = psav; -+ } -+ -+ if (!ADD_RDLEN(header, p1, plen, rdlen1)) -+ return 0; -+ } -+ -+ /* Must have found at least one sig. */ -+ if (!rrsig_labels[nsecs_found]) -+ return 0; -+ } -+ -+ nsecset[nsecs_found++] = pstart; - } - - if (!ADD_RDLEN(header, p, plen, rdlen)) -@@ -1867,7 +1956,7 @@ static int prove_non_existence(struct dns_header *header, size_t plen, char *key - } - - if (type_found == T_NSEC) -- return prove_non_existence_nsec(header, plen, nsecset, nsecs_found, daemon->workspacename, keyname, name, qtype, nons); -+ return prove_non_existence_nsec(header, plen, nsecset, rrsig_labels, nsecs_found, daemon->workspacename, keyname, name, qtype, nons); - else if (type_found == T_NSEC3) - return prove_non_existence_nsec3(header, plen, nsecset, nsecs_found, daemon->workspacename, keyname, name, qtype, wildname, nons); - else --- -2.19.0 - diff --git a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb index 5ebda19eb..882d5d554 100644 --- a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb +++ b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb @@ -15,11 +15,9 @@ SRC_URI = "http://dovecot.org/releases/2.2/dovecot-${PV}.tar.gz \ SRC_URI[md5sum] = "d61d1e923a22f9062cc9f47696882666" SRC_URI[sha256sum] = "e9483d68a7698d701bc06124fcf6e1b1f16380c2986c7ec0cf4e1475b9d0c218" -DEPENDS = "openssl xz zlib bzip2 libcap icu" - -DEPENDS_append_libc-musl = " libtirpc" -CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" -LDFLAGS_append_libc-musl = " -ltirpc" +DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc" +CFLAGS += "-I${STAGING_INCDIR}/tirpc" +LDFLAGS += "-ltirpc" inherit autotools pkgconfig systemd useradd diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch deleted file mode 100644 index 90dd1f861..000000000 --- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch +++ /dev/null @@ -1,25 +0,0 @@ -Upstream-Status: Pending - -Subject: Makefile.in: fix permission bits for drbd.service - -Signed-off-by: Chen Qi <Qi.Chen@windriver.com> ---- - scripts/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/scripts/Makefile.in b/scripts/Makefile.in -index 402b93b..4a45407 100644 ---- a/scripts/Makefile.in -+++ b/scripts/Makefile.in -@@ -65,7 +65,7 @@ endif - # yes, debian apparently allows installing both types from the same package - ifneq ($(initscripttype),sysv) # "systemd" or "both" - install -d $(DESTDIR)$(systemdunitdir) -- install -m 755 drbd.service $(DESTDIR)$(systemdunitdir)/ -+ install -m 644 drbd.service $(DESTDIR)$(systemdunitdir)/ - install -d $(DESTDIR)/lib/drbd/ - install -m 755 drbd $(DESTDIR)/lib/drbd/ - install -d $(DESTDIR)$(tmpfilesdir)/ --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch new file mode 100644 index 000000000..c0f3adf24 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch @@ -0,0 +1,43 @@ +Subject: drbd-tools: only rmmod if DRBD is a module + +Account for the case if the DRBD drive is built into +the kernel. Otherwise, errors, like the following, +will occur: + +root@localhost:~# /etc/init.d/drbd stop + Stopping all DRBD resources: ERROR: Module drbd + does not exist in /proc/modules + +Upstream-Status: Submitted [https://github.com/LINBIT/drbd-utils/pull/2] + +Signed-off-by: Aws Ismail <aws.ismail@windriver.com> +Signed-off-by: Jason Wessel <jason.wessel@windriver.com> + +[ refresh to 8.4.4: squash Aws' and Jason's patches ] +Signed-off-by: Michel Thebeau <michel.thebeau@windriver.com> + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +Signed-off-by: Changqing Li <changqing.li@windriver.com> + +--- + scripts/drbd | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/scripts/drbd b/scripts/drbd +index 20bf628..de589dc 100755 +--- a/scripts/drbd ++++ b/scripts/drbd +@@ -241,7 +241,9 @@ case "$1" in + if [ -d /sys/module/drbd/holders ]; then + (cd /sys/module/drbd/holders; for tr in *; do [ -d ${tr} ] && ${RMMOD} ${tr}; done) + fi +- $RMMOD drbd && break ++ if [ ! -z "$(cat /proc/modules | grep -w drbd)" ]; then ++ $RMMOD drbd && break ++ fi + fi + done + run_hook stop +-- +1.9.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.5.0.bb index 81f1cfec5..bd1e8576f 100644 --- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb +++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.5.0.bb @@ -8,11 +8,17 @@ SECTION = "admin" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018" -SRC_URI = "http://www.linbit.com/downloads/drbd/utils/archive/${BP}.tar.gz \ - file://0001-Makefile.in-fix-permission-bits-for-drbd.service.patch \ +SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils \ + git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers \ + file://0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch \ " -SRC_URI[md5sum] = "76ed6d3190cd77b00890f3365353124b" -SRC_URI[sha256sum] = "297b77c9b3f88de2e7dae459234f2753ea4fc2805282b2d276e35cf51e292913" +# v9.5.0 +SRCREV_drbd-utils = "ee126652638328b55dc6bff47d07d6161ab768db" +SRCREV_drbd-headers = "b47cc11bcabe1a65c40ad23f71dcaf2da6419630" + +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_URI = "https://github.com/LINBIT/drbd-utils/releases" SYSTEMD_SERVICE_${PN} = "drbd.service" SYSTEMD_AUTO_ENABLE = "disable" @@ -27,9 +33,20 @@ EXTRA_OECONF = " \ --with-distro debian \ --with-initscripttype=both \ --with-systemdunitdir=${systemd_unitdir}/system \ - --without-manual\ + --without-manual \ " +do_configure_prepend() { + # move the the file under folder /lib/drbd/ to /usr/lib/drbd when usrmerge enabled + if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then + for m_file in `find ${S} -name 'Makefile.in'`; do + sed -i -e "s;\$(DESTDIR)\/lib\/drbd;\$(DESTDIR)\${nonarch_libdir}\/drbd;g" $m_file + done + # move the the file under folder /lib/udev/ to /usr/lib/udev when usrmerge enabled + sed -i -e "s;default_udevdir=/lib/udev;default_udevdir=\${prefix}/lib/udev;g" ${S}/configure.ac + fi + +} do_install_append() { # don't install empty /var/lock to avoid conflict with base-files rm -rf ${D}${localstatedir}/lock diff --git a/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb b/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb index 2da73e775..663161a9b 100644 --- a/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb +++ b/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb @@ -18,10 +18,12 @@ EXTRA_OECONF = "--with-libesmtp=${STAGING_EXECPREFIXDIR}" inherit autotools update-alternatives -ALTERNATIVE_${PN} = "sendmail" - +ALTERNATIVE_${PN} += "sendmail mailq newaliases" +ALTERNATIVE_TARGET[mailq] = "${bindir}/mailq" +ALTERNATIVE_TARGET[newaliases] = "${bindir}/newaliases" ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" ALTERNATIVE_TARGET[sendmail] = "${bindir}/esmtp" + ALTERNATIVE_PRIORITY = "10" ALTERNATIVE_${PN}-doc += "mailq.1 newaliases.1 sendmail.1" diff --git a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail/02_remove_SSLv3.patch b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail/02_remove_SSLv3.patch new file mode 100644 index 000000000..95cfa2f4a --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail/02_remove_SSLv3.patch @@ -0,0 +1,1576 @@ +Description: <short summary of the patch> + TODO: Put a short summary on the line above and replace this paragraph + with a longer explanation of this change. Complete the meta-information + with other relevant fields (see below for details). To make it easier, the + information below has been extracted from the changelog. Adjust it or drop + it. + . + fetchmail (6.3.26-2) unstable; urgency=low + . + * New maintainer (closes: #800750). + * Backport upstream fix for SSLv3 removal (closes: #804604) and do not + recommend SSLv3 (closes: #801178). + * Remove quilt and its usage. + * Add dh-python to build depends. + * Update upstream URLs. + * Update watch file. + * Update Standards-Version to 3.9.6 . +Author: Laszlo Boszormenyi (GCS) <gcs@debian.org> +Bug-Debian: https://bugs.debian.org/800750 +Bug-Debian: https://bugs.debian.org/801178 +Bug-Debian: https://bugs.debian.org/804604 + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: <vendor|upstream|other>, <url of original patch> +Bug: <url in upstream bugtracker> +Bug-Debian: https://bugs.debian.org/<bugnumber> +Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber> +Forwarded: <no|not-needed|url proving that it has been forwarded> +Reviewed-By: <name and email of someone who approved the patch> +Last-Update: <YYYY-MM-DD> + +--- fetchmail-6.3.26.orig/Makefile.am ++++ fetchmail-6.3.26/Makefile.am +@@ -31,7 +31,7 @@ libfm_a_SOURCES= xmalloc.c base64.c rfc8 + servport.c ntlm.h smbbyteorder.h smbdes.h smbmd4.h \ + smbencrypt.h smbdes.c smbencrypt.c smbmd4.c smbutil.c \ + libesmtp/gethostbyname.h libesmtp/gethostbyname.c \ +- smbtypes.h fm_getaddrinfo.c tls.c rfc822valid.c \ ++ smbtypes.h fm_getaddrinfo.c starttls.c rfc822valid.c \ + xmalloc.h sdump.h sdump.c x509_name_match.c \ + fm_strl.h md5c.c + if NTLM_ENABLE +--- fetchmail-6.3.26.orig/Makefile.in ++++ fetchmail-6.3.26/Makefile.in +@@ -97,14 +97,14 @@ am__libfm_a_SOURCES_DIST = xmalloc.c bas + rfc2047e.c servport.c ntlm.h smbbyteorder.h smbdes.h smbmd4.h \ + smbencrypt.h smbdes.c smbencrypt.c smbmd4.c smbutil.c \ + libesmtp/gethostbyname.h libesmtp/gethostbyname.c smbtypes.h \ +- fm_getaddrinfo.c tls.c rfc822valid.c xmalloc.h sdump.h sdump.c \ ++ fm_getaddrinfo.c starttls.c rfc822valid.c xmalloc.h sdump.h sdump.c \ + x509_name_match.c fm_strl.h md5c.c ntlmsubr.c + @NTLM_ENABLE_TRUE@am__objects_1 = ntlmsubr.$(OBJEXT) + am_libfm_a_OBJECTS = xmalloc.$(OBJEXT) base64.$(OBJEXT) \ + rfc822.$(OBJEXT) report.$(OBJEXT) rfc2047e.$(OBJEXT) \ + servport.$(OBJEXT) smbdes.$(OBJEXT) smbencrypt.$(OBJEXT) \ + smbmd4.$(OBJEXT) smbutil.$(OBJEXT) gethostbyname.$(OBJEXT) \ +- fm_getaddrinfo.$(OBJEXT) tls.$(OBJEXT) rfc822valid.$(OBJEXT) \ ++ fm_getaddrinfo.$(OBJEXT) starttls.$(OBJEXT) rfc822valid.$(OBJEXT) \ + sdump.$(OBJEXT) x509_name_match.$(OBJEXT) md5c.$(OBJEXT) \ + $(am__objects_1) + libfm_a_OBJECTS = $(am_libfm_a_OBJECTS) +@@ -483,7 +483,7 @@ libfm_a_SOURCES = xmalloc.c base64.c rfc + servport.c ntlm.h smbbyteorder.h smbdes.h smbmd4.h \ + smbencrypt.h smbdes.c smbencrypt.c smbmd4.c smbutil.c \ + libesmtp/gethostbyname.h libesmtp/gethostbyname.c smbtypes.h \ +- fm_getaddrinfo.c tls.c rfc822valid.c xmalloc.h sdump.h sdump.c \ ++ fm_getaddrinfo.c starttls.c rfc822valid.c xmalloc.h sdump.h sdump.c \ + x509_name_match.c fm_strl.h md5c.c $(am__append_1) + libfm_a_LIBADD = $(EXTRAOBJ) + libfm_a_DEPENDENCIES = $(EXTRAOBJ) +--- fetchmail-6.3.26.orig/NEWS ++++ fetchmail-6.3.26/NEWS +@@ -51,8 +51,6 @@ removed from a 6.4.0 or newer release.) + * The --bsmtp - mode of operation may be removed in a future release. + * Given that OpenSSL is severely underdocumented, and needs license exceptions, + fetchmail may switch to a different SSL library. +-* SSLv2 support will be removed from a future fetchmail release. It has been +- obsolete for more than a decade. + + -------------------------------------------------------------------------------- + +--- fetchmail-6.3.26.orig/README.SSL ++++ fetchmail-6.3.26/README.SSL +@@ -11,36 +11,45 @@ specific to fetchmail. + In case of troubles, mail the README.SSL-SERVER file to your ISP and + have them check their server configuration against it. + +-Unfortunately, fetchmail confuses SSL/TLS protocol levels with whether +-a service needs to use in-band negotiation (STLS/STARTTLS for POP3/IMAP4) or is +-totally SSL-wrapped on a separate port. For compatibility reasons, this cannot +-be fixed in a bugfix release. ++Unfortunately, fetchmail confuses SSL/TLS protocol levels with whether a ++service needs to use in-band negotiation (STLS/STARTTLS for POP3/IMAP4) ++or is totally SSL-wrapped on a separate port. For compatibility ++reasons, this cannot be fixed in a bugfix or minor release. ++ ++Also, fetchmail 6.4.0 and newer releases changed some of the semantics ++as the result of a bug-fix, and will auto-negotiate TLSv1 or newer only. ++If your server does not support this, you may have to specify --sslproto ++ssl3. This is in order to prefer the newer TLS protocols, because SSLv2 ++and v3 are broken. + +- -- Matthias Andree, 2009-05-09 ++ -- Matthias Andree, 2015-01-16 + + + Quickstart + ---------- + ++Use an up-to-date release of OpenSSL 1.0.1 or newer, so as to get ++TLSv1.2 support. ++ + For use of SSL or TLS with in-band negotiation on the regular service's port, + i. e. with STLS or STARTTLS, use these command line options + +- --sslproto tls1 --sslcertck ++ --sslproto auto --sslcertck + + or these options in the rcfile (after the respective "user"... options) + +- sslproto tls1 sslcertck ++ sslproto auto sslcertck + + + For use of SSL or TLS on a separate port, if the whole TCP connection is +-SSL-encrypted from the very beginning, use these command line options (in the +-rcfile, omit all leading "--"): ++SSL-encrypted from the very beginning (SSL- or TLS-wrapped), use these ++command line options (in the rcfile, omit all leading "--"): + +- --ssl --sslproto ssl3 --sslcertck ++ --ssl --sslproto auto --sslcertck + + or these options in the rcfile (after the respective "user"... options) + +- ssl sslproto ssl3 sslcertck ++ ssl sslproto auto sslcertck + + + Background and use (long version :-)) +--- fetchmail-6.3.26.orig/config.h.in ++++ fetchmail-6.3.26/config.h.in +@@ -49,9 +49,9 @@ + don't. */ + #undef HAVE_DECL_H_ERRNO + +-/* Define to 1 if you have the declaration of `SSLv2_client_method', and to 0 ++/* Define to 1 if you have the declaration of `SSLv3_client_method', and to 0 + if you don't. */ +-#undef HAVE_DECL_SSLV2_CLIENT_METHOD ++#undef HAVE_DECL_SSLV3_CLIENT_METHOD + + /* Define to 1 if you have the declaration of `strerror', and to 0 if you + don't. */ +--- fetchmail-6.3.26.orig/configure ++++ fetchmail-6.3.26/configure +@@ -1,13 +1,11 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.68 for fetchmail 6.3.26. ++# Generated by GNU Autoconf 2.69 for fetchmail 6.3.26. + # + # Report bugs to <fetchmail-users@lists.berlios.de>. + # + # +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +-# Foundation, Inc. ++# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. + # + # + # This configure script is free software; the Free Software Foundation +@@ -136,6 +134,31 @@ export LANGUAGE + # CDPATH. + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH + ++# Use a proper internal environment variable to ensure we don't fall ++ # into an infinite loop, continuously re-executing ourselves. ++ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then ++ _as_can_reexec=no; export _as_can_reexec; ++ # We cannot yet assume a decent shell, so we have to provide a ++# neutralization value for shells without unset; and this also ++# works around shells that cannot unset nonexistent variables. ++# Preserve -v and -x to the replacement shell. ++BASH_ENV=/dev/null ++ENV=/dev/null ++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV ++case $- in # (((( ++ *v*x* | *x*v* ) as_opts=-vx ;; ++ *v* ) as_opts=-v ;; ++ *x* ) as_opts=-x ;; ++ * ) as_opts= ;; ++esac ++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} ++# Admittedly, this is quite paranoid, since all the known shells bail ++# out after a failed `exec'. ++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 ++as_fn_exit 255 ++ fi ++ # We don't want this to propagate to other subprocesses. ++ { _as_can_reexec=; unset _as_can_reexec;} + if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh +@@ -169,7 +192,8 @@ if ( set x; as_fn_ret_success y && test + else + exitcode=1; echo positional parameters were not saved. + fi +-test x\$exitcode = x0 || exit 1" ++test x\$exitcode = x0 || exit 1 ++test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && +@@ -214,21 +238,25 @@ IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : +- # We cannot yet assume a decent shell, so we have to provide a +- # neutralization value for shells without unset; and this also +- # works around shells that cannot unset nonexistent variables. +- # Preserve -v and -x to the replacement shell. +- BASH_ENV=/dev/null +- ENV=/dev/null +- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +- export CONFIG_SHELL +- case $- in # (((( +- *v*x* | *x*v* ) as_opts=-vx ;; +- *v* ) as_opts=-v ;; +- *x* ) as_opts=-x ;; +- * ) as_opts= ;; +- esac +- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} ++ export CONFIG_SHELL ++ # We cannot yet assume a decent shell, so we have to provide a ++# neutralization value for shells without unset; and this also ++# works around shells that cannot unset nonexistent variables. ++# Preserve -v and -x to the replacement shell. ++BASH_ENV=/dev/null ++ENV=/dev/null ++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV ++case $- in # (((( ++ *v*x* | *x*v* ) as_opts=-vx ;; ++ *v* ) as_opts=-v ;; ++ *x* ) as_opts=-x ;; ++ * ) as_opts= ;; ++esac ++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} ++# Admittedly, this is quite paranoid, since all the known shells bail ++# out after a failed `exec'. ++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 ++exit 255 + fi + + if test x$as_have_required = xno; then : +@@ -331,6 +359,14 @@ $as_echo X"$as_dir" | + + + } # as_fn_mkdir_p ++ ++# as_fn_executable_p FILE ++# ----------------------- ++# Test if FILE is an executable regular file. ++as_fn_executable_p () ++{ ++ test -f "$1" && test -x "$1" ++} # as_fn_executable_p + # as_fn_append VAR VALUE + # ---------------------- + # Append the text in VALUE to the end of the definition contained in VAR. Take +@@ -452,6 +488,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + ++ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have ++ # already done that, so ensure we don't try to do so again and fall ++ # in an infinite loop. This has already happened in practice. ++ _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). +@@ -486,16 +526,16 @@ if (echo >conf$$.file) 2>/dev/null; then + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. +- # In both cases, we have to default to `cp -p'. ++ # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + fi + else +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + fi + rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file + rmdir conf$$.dir 2>/dev/null +@@ -507,28 +547,8 @@ else + as_mkdir_p=false + fi + +-if test -x / >/dev/null 2>&1; then +- as_test_x='test -x' +-else +- if ls -dL / >/dev/null 2>&1; then +- as_ls_L_option=L +- else +- as_ls_L_option= +- fi +- as_test_x=' +- eval sh -c '\'' +- if test -d "$1"; then +- test -d "$1/."; +- else +- case $1 in #( +- -*)set "./$1";; +- esac; +- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( +- ???[sx]*):;;*)false;;esac;fi +- '\'' sh +- ' +-fi +-as_executable_p=$as_test_x ++as_test_x='test -x' ++as_executable_p=as_fn_executable_p + + # Sed expression to map a string onto a valid CPP name. + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +@@ -742,6 +762,7 @@ infodir + docdir + oldincludedir + includedir ++runstatedir + localstatedir + sharedstatedir + sysconfdir +@@ -841,6 +862,7 @@ datadir='${datarootdir}' + sysconfdir='${prefix}/etc' + sharedstatedir='${prefix}/com' + localstatedir='${prefix}/var' ++runstatedir='${localstatedir}/run' + includedir='${prefix}/include' + oldincludedir='/usr/include' + docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +@@ -1093,6 +1115,15 @@ do + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + ++ -runstatedir | --runstatedir | --runstatedi | --runstated \ ++ | --runstate | --runstat | --runsta | --runst | --runs \ ++ | --run | --ru | --r) ++ ac_prev=runstatedir ;; ++ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ ++ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ ++ | --run=* | --ru=* | --r=*) ++ runstatedir=$ac_optarg ;; ++ + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ +@@ -1230,7 +1261,7 @@ fi + for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ +- libdir localedir mandir ++ libdir localedir mandir runstatedir + do + eval ac_val=\$$ac_var + # Remove trailing slashes. +@@ -1258,8 +1289,6 @@ target=$target_alias + if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe +- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. +- If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +@@ -1385,6 +1414,7 @@ Fine tuning of the installation director + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] ++ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] +@@ -1548,9 +1578,9 @@ test -n "$ac_init_help" && exit $ac_stat + if $ac_init_version; then + cat <<\_ACEOF + fetchmail configure 6.3.26 +-generated by GNU Autoconf 2.68 ++generated by GNU Autoconf 2.69 + +-Copyright (C) 2010 Free Software Foundation, Inc. ++Copyright (C) 2012 Free Software Foundation, Inc. + This configure script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it. + _ACEOF +@@ -1827,7 +1857,7 @@ $as_echo "$ac_try_echo"; } >&5 + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || +- $as_test_x conftest$ac_exeext ++ test -x conftest$ac_exeext + }; then : + ac_retval=0 + else +@@ -2030,7 +2060,8 @@ int + main () + { + static int test_array [1 - 2 * !(($2) >= 0)]; +-test_array [0] = 0 ++test_array [0] = 0; ++return test_array [0]; + + ; + return 0; +@@ -2046,7 +2077,8 @@ int + main () + { + static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +-test_array [0] = 0 ++test_array [0] = 0; ++return test_array [0]; + + ; + return 0; +@@ -2072,7 +2104,8 @@ int + main () + { + static int test_array [1 - 2 * !(($2) < 0)]; +-test_array [0] = 0 ++test_array [0] = 0; ++return test_array [0]; + + ; + return 0; +@@ -2088,7 +2121,8 @@ int + main () + { + static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +-test_array [0] = 0 ++test_array [0] = 0; ++return test_array [0]; + + ; + return 0; +@@ -2122,7 +2156,8 @@ int + main () + { + static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +-test_array [0] = 0 ++test_array [0] = 0; ++return test_array [0]; + + ; + return 0; +@@ -2195,7 +2230,7 @@ This file contains any messages produced + running configure, to aid debugging if configure makes a mistake. + + It was created by fetchmail $as_me 6.3.26, which was +-generated by GNU Autoconf 2.68. Invocation command line was ++generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +@@ -2689,7 +2724,7 @@ case $as_dir/ in #(( + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. +@@ -2858,7 +2893,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2898,7 +2933,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2949,7 +2984,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do +- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue ++ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ +@@ -3002,7 +3037,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3295,7 +3330,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3466,7 +3501,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3512,7 +3547,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3552,7 +3587,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3605,7 +3640,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3646,7 +3681,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue +@@ -3704,7 +3739,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3748,7 +3783,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -4194,8 +4229,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ + /* end confdefs.h. */ + #include <stdarg.h> + #include <stdio.h> +-#include <sys/types.h> +-#include <sys/stat.h> ++struct stat; + /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ + struct buf { int x; }; + FILE * (*rcsopen) (struct buf *, struct stat *, int); +@@ -4751,7 +4785,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -4791,7 +4825,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -4859,7 +4893,7 @@ do + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue ++ as_fn_executable_p "$ac_path_GREP" || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP + case `"$ac_path_GREP" --version 2>&1` in +@@ -4925,7 +4959,7 @@ do + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue ++ as_fn_executable_p "$ac_path_EGREP" || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP + case `"$ac_path_EGREP" --version 2>&1` in +@@ -5132,8 +5166,8 @@ else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +-# define __EXTENSIONS__ 1 +- $ac_includes_default ++# define __EXTENSIONS__ 1 ++ $ac_includes_default + int + main () + { +@@ -5513,11 +5547,11 @@ else + int + main () + { +-/* FIXME: Include the comments suggested by Paul. */ ++ + #ifndef __cplusplus +- /* Ultrix mips cc rejects this. */ ++ /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; +- const charset cs; ++ const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; +@@ -5534,8 +5568,9 @@ main () + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; +- { /* SCO 3.2v4 cc rejects this. */ +- char *t; ++ { /* SCO 3.2v4 cc rejects this sort of thing. */ ++ char tx; ++ char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; +@@ -5551,10 +5586,10 @@ main () + iptr p = 0; + ++p; + } +- { /* AIX XL C 1.02.0.0 rejects this saying ++ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ +- struct s { int j; const int *ap[3]; }; +- struct s *b; b->j = 5; ++ struct s { int j; const int *ap[3]; } bx; ++ struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; +@@ -5600,7 +5635,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LEX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -5632,7 +5667,8 @@ a { ECHO; } + b { REJECT; } + c { yymore (); } + d { yyless (1); } +-e { yyless (input () != 0); } ++e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */ ++ yyless ((input () != 0)); } + f { unput (yytext[0]); } + . { BEGIN INITIAL; } + %% +@@ -5792,7 +5828,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_YACC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6044,7 +6080,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -8548,7 +8584,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_procmail="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -8590,7 +8626,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_sendmail="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -8632,7 +8668,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_maildrop="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10121,16 +10157,16 @@ $as_echo "$as_me: WARNING: Consider re-r + fi + + case "$LIBS" in *-lssl*) +- ac_fn_c_check_decl "$LINENO" "SSLv2_client_method" "ac_cv_have_decl_SSLv2_client_method" "#include <openssl/ssl.h> ++ ac_fn_c_check_decl "$LINENO" "SSLv3_client_method" "ac_cv_have_decl_SSLv3_client_method" "#include <openssl/ssl.h> + " +-if test "x$ac_cv_have_decl_SSLv2_client_method" = xyes; then : ++if test "x$ac_cv_have_decl_SSLv3_client_method" = xyes; then : + ac_have_decl=1 + else + ac_have_decl=0 + fi + + cat >>confdefs.h <<_ACEOF +-#define HAVE_DECL_SSLV2_CLIENT_METHOD $ac_have_decl ++#define HAVE_DECL_SSLV3_CLIENT_METHOD $ac_have_decl + _ACEOF + + ;; +@@ -11334,16 +11370,16 @@ if (echo >conf$$.file) 2>/dev/null; then + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. +- # In both cases, we have to default to `cp -p'. ++ # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + fi + else +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + fi + rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file + rmdir conf$$.dir 2>/dev/null +@@ -11403,28 +11439,16 @@ else + as_mkdir_p=false + fi + +-if test -x / >/dev/null 2>&1; then +- as_test_x='test -x' +-else +- if ls -dL / >/dev/null 2>&1; then +- as_ls_L_option=L +- else +- as_ls_L_option= +- fi +- as_test_x=' +- eval sh -c '\'' +- if test -d "$1"; then +- test -d "$1/."; +- else +- case $1 in #( +- -*)set "./$1";; +- esac; +- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( +- ???[sx]*):;;*)false;;esac;fi +- '\'' sh +- ' +-fi +-as_executable_p=$as_test_x ++ ++# as_fn_executable_p FILE ++# ----------------------- ++# Test if FILE is an executable regular file. ++as_fn_executable_p () ++{ ++ test -f "$1" && test -x "$1" ++} # as_fn_executable_p ++as_test_x='test -x' ++as_executable_p=as_fn_executable_p + + # Sed expression to map a string onto a valid CPP name. + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +@@ -11446,7 +11470,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri + # values after options handling. + ac_log=" + This file was extended by fetchmail $as_me 6.3.26, which was +-generated by GNU Autoconf 2.68. Invocation command line was ++generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -11512,10 +11536,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ + ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ + fetchmail config.status 6.3.26 +-configured by $0, generated by GNU Autoconf 2.68, ++configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +-Copyright (C) 2010 Free Software Foundation, Inc. ++Copyright (C) 2012 Free Software Foundation, Inc. + This config.status script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it." + +@@ -11606,7 +11630,7 @@ fi + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + if \$ac_cs_recheck; then +- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion ++ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' +--- fetchmail-6.3.26.orig/configure.ac ++++ fetchmail-6.3.26/configure.ac +@@ -802,7 +802,7 @@ else + fi + + case "$LIBS" in *-lssl*) +- AC_CHECK_DECLS([SSLv2_client_method],,,[#include <openssl/ssl.h>]) ++ AC_CHECK_DECLS([SSLv3_client_method],,,[#include <openssl/ssl.h>]) + ;; + esac + +--- fetchmail-6.3.26.orig/fetchmail-FAQ.html ++++ fetchmail-6.3.26/fetchmail-FAQ.html +@@ -667,8 +667,8 @@ because there is not currently a standar + also uses this method, so the two will interoperate happily. They + better, because this is how Craig gets his mail ;-)</p> + +-<p>Finally, you can use <a href="#K5">SSL</a> for complete +-end-to-end encryption if you have an SSL-enabled mailserver.</p> ++<p>Finally, you can use <a href="#K5">SSL or TLS</a> for complete ++end-to-end encryption if you have a TLS-enabled mailserver.</p> + + <h2><a id="G11" name="G11">G11. Is any special configuration needed + to use a dynamic IP address?</a></h2> +@@ -2120,7 +2120,7 @@ SSL?</a></h2> + + <p>You'll need to have the <a + href="http://www.openssl.org/">OpenSSL</a> libraries installed, and they +-should at least be version 0.9.7. ++should at least be version 0.9.8, with 1.0.1 preferred. + Configure with --with-ssl. If you have the OpenSSL libraries + installed in commonly-used default locations, this will + suffice. If you have them installed in a non-default location, +@@ -2130,7 +2130,7 @@ to --with-ssl after an equal sign.</p> + <p>Fetchmail binaries built this way support <code>ssl</code>, + <code>sslkey</code>, and <code>sslcert</code> options that control + SSL encryption, and will automatically use <code>tls</code> if the +-server offers it. You will need to have an SSL-enabled mailserver to ++server offers it. You will need to have an SSL/TLS-enabled mailserver to + use these options. See the manual page for details and some words + of care on the limited security provided.</p> + +@@ -2155,13 +2155,14 @@ poll MYSERVER port 993 plugin "openssl s + protocol imap username MYUSERNAME password MYPASSWORD + </pre> + +-<p>You should note that SSL is only secure against a "man-in-the-middle" +-attack if the client is able to verify that the peer's public key is the +-correct one, and has not been substituted by an attacker. fetchmail can do +-this in one of two ways: by verifying the SSL certificate, or by checking +-the fingerprint of the peer's public key.</p> ++<p>You should note that SSL or TLS are only secure against a ++"man-in-the-middle" attack if the client is able to verify that the ++peer's public key is the correct one, and has not been substituted by an ++attacker. fetchmail can do this in one of two ways: by verifying the SSL ++certificate, or by checking the fingerprint of the peer's public ++key.</p> + +-<p>There are three parts to SSL certificate verification: checking that the ++<p>There are three parts to TLS certificate verification: checking that the + domain name in the certificate matches the hostname you asked to connect to; + checking that the certificate expiry date has not passed; and checking that + the certificate has been signed by a known Certificate Authority (CA). This +@@ -2227,8 +2228,12 @@ will automatically attempt TLS negotiati + time. This can however cause problems if the upstream didn't configure + his certificates properly.</p> + +-<p>In order to prevent fetchmail from trying TLS (STLS, STARTTLS) +-negotiation, add this option:</p> ++<p>In order to prevent fetchmail 6.4.0 and newer versions from trying ++STLS or STARTTLS negotiation, add this option:</p> ++<pre>sslproto ''</pre> ++ ++<p>In order to prevent older fetchmail versions from trying TLS (STLS, STARTTLS) ++negotiation where the above does not work, try this option:</p> + + <pre>sslproto ssl23</pre> + +@@ -2876,15 +2881,22 @@ need to say something like '<code>envelo + + <pre> + Received: from send103.yahoomail.com (send103.yahoomail.com [205.180.60.92]) +- by iserv.ttns.net (8.8.5/8.8.5) with SMTP id RAA10088 +- for <ksturgeon@fbceg.org>; Wed, 9 Sep 1998 17:01:59 -0700 ++ by iserv.example.net (8.8.5/8.8.5) with SMTP id RAA10088 ++ for <ksturgeon@fbceg.example.org>; Wed, 9 Sep 1998 17:01:59 -0700 + </pre> + +-<p>it checks to see if 'iserv.ttns.net' is a DNS alias of your +-mailserver before accepting 'ksturgeon@fbceg.org' as an envelope ++<p>it checks to see if 'iserv.example.net' is a DNS alias of your ++mailserver before accepting 'ksturgeon@fbceg.example.org' as an envelope + address. This check might fail if your DNS were misconfigured, or +-if you were using 'no dns' and had failed to declare iserv.ttns.net +-as an alias of your server.</p> ++if you were using 'no dns' and had failed to declare iserv.example.net ++as an alias of your server. The typical hint is logging similar to: ++<code>line rejected, iserv.example.net is not an alias of the mailserver</code>, ++if you use fetchmail in verbose mode.</p> ++ ++<p><strong>Workaround:</strong> You can specify the alias explicitly, with <code>aka ++ <em>iserv.example.net</em></code> statements in the rcfile. Replace ++<em>iserv.example.net</em> by the name you find in <strong>your</strong> ++'by' part of the 'Received:' line.</p> + + <h2><a id="M8" name="M8">M8. Users are getting multiple copies of + messages.</a></h2> +@@ -3237,6 +3249,8 @@ Hayes mode escape "+++".</p> + <h2><a id="X8" name="X8">X8. A spurious ) is being appended to my + messages.</a></h2> + ++<p><em>Fetchmail 6.3.5 and newer releases are supposed to fix this.</em></p> ++ + <p>Due to the problem described in <a href="#S2">S2</a>, the + IMAP support in fetchmail cannot follow the IMAP protocol 100 %. + Most of the time it doesn't matter, but if you combine it with an +@@ -3279,8 +3293,6 @@ it at the end of the message it forwards + on, you'll get a message about actual != expected.</li> + </ol> + +-<p>There is no fix for this.</p> +- + <h2><a id="X9" name="X9">X9. Missing "Content-Transfer-Encoding" header + with Domino IMAP</a></h2> + +--- fetchmail-6.3.26.orig/fetchmail.c ++++ fetchmail-6.3.26/fetchmail.c +@@ -54,6 +54,10 @@ + #define ENETUNREACH 128 /* Interactive doesn't know this */ + #endif /* ENETUNREACH */ + ++#ifdef SSL_ENABLE ++#include <openssl/ssl.h> /* for OPENSSL_NO_SSL2 and ..._SSL3 checks */ ++#endif ++ + /* prototypes for internal functions */ + static int load_params(int, char **, int); + static void dump_params (struct runctl *runp, struct query *, flag implicit); +@@ -138,7 +142,7 @@ static void printcopyright(FILE *fp) { + "Copyright (C) 2004 Matthias Andree, Eric S. Raymond,\n" + " Robert M. Funk, Graham Wilson\n" + "Copyright (C) 2005 - 2012 Sunil Shetye\n" +- "Copyright (C) 2005 - 2013 Matthias Andree\n" ++ "Copyright (C) 2005 - 2015 Matthias Andree\n" + )); + fprintf(fp, GT_("Fetchmail comes with ABSOLUTELY NO WARRANTY. This is free software, and you\n" + "are welcome to redistribute it under certain conditions. For details,\n" +@@ -262,6 +266,9 @@ int main(int argc, char **argv) + #endif /* ODMR_ENABLE */ + #ifdef SSL_ENABLE + "+SSL" ++#if (HAVE_DECL_SSLV3_CLIENT_METHOD + 0 == 0) || defined(OPENSSL_NO_SSL3) ++ "-SSLv3" ++#endif + #endif + #ifdef OPIE_ENABLE + "+OPIE" +--- fetchmail-6.3.26.orig/fetchmail.h ++++ fetchmail-6.3.26/fetchmail.h +@@ -771,9 +771,9 @@ int servport(const char *service); + int fm_getaddrinfo(const char *node, const char *serv, const struct addrinfo *hints, struct addrinfo **res); + void fm_freeaddrinfo(struct addrinfo *ai); + +-/* prototypes from tls.c */ +-int maybe_tls(struct query *ctl); +-int must_tls(struct query *ctl); ++/* prototypes from starttls.c */ ++int maybe_starttls(struct query *ctl); ++int must_starttls(struct query *ctl); + + /* prototype from rfc822valid.c */ + int rfc822_valid_msgid(const unsigned char *); +--- fetchmail-6.3.26.orig/fetchmail.man ++++ fetchmail-6.3.26/fetchmail.man +@@ -412,23 +412,22 @@ from. The folder information is written + .B \-\-ssl + (Keyword: ssl) + .br +-Causes the connection to the mail server to be encrypted +-via SSL. Connect to the server using the specified base protocol over a +-connection secured by SSL. This option defeats opportunistic starttls +-negotiation. It is highly recommended to use \-\-sslproto 'SSL3' +-\-\-sslcertck to validate the certificates presented by the server and +-defeat the obsolete SSLv2 negotiation. More information is available in +-the \fIREADME.SSL\fP file that ships with fetchmail. +-.IP +-Note that fetchmail may still try to negotiate SSL through starttls even +-if this option is omitted. You can use the \-\-sslproto option to defeat +-this behavior or tell fetchmail to negotiate a particular SSL protocol. ++Causes the connection to the mail server to be encrypted via SSL, by ++negotiating SSL directly after connecting (SSL-wrapped mode). It is ++highly recommended to use \-\-sslcertck to validate the certificates ++presented by the server. Please see the description of \-\-sslproto ++below! More information is available in the \fIREADME.SSL\fP file that ++ships with fetchmail. ++.IP ++Note that even if this option is omitted, fetchmail may still negotiate ++SSL in-band for POP3 or IMAP, through the STLS or STARTTLS feature. You ++can use the \-\-sslproto option to modify that behavior. + .IP + If no port is specified, the connection is attempted to the well known + port of the SSL version of the base protocol. This is generally a + different port than the port used by the base protocol. For IMAP, this + is port 143 for the clear protocol and port 993 for the SSL secured +-protocol, for POP3, it is port 110 for the clear text and port 995 for ++protocol; for POP3, it is port 110 for the clear text and port 995 for + the encrypted variant. + .IP + If your system lacks the corresponding entries from /etc/services, see +@@ -470,39 +469,73 @@ cause some complications in daemon mode. + .IP + Also see \-\-sslcert above. + .TP +-.B \-\-sslproto <name> +-(Keyword: sslproto) ++.B \-\-sslproto <value> ++(Keyword: sslproto, NOTE: semantic changes since v6.4.0) + .br +-Forces an SSL/TLS protocol. Possible values are \fB''\fP, +-\&'\fBSSL2\fP' (not supported on all systems), +-\&'\fBSSL23\fP', (use of these two values is discouraged +-and should only be used as a last resort) \&'\fBSSL3\fP', and +-\&'\fBTLS1\fP'. The default behaviour if this option is unset is: for +-connections without \-\-ssl, use \&'\fBTLS1\fP' so that fetchmail will +-opportunistically try STARTTLS negotiation with TLS1. You can configure +-this option explicitly if the default handshake (TLS1 if \-\-ssl is not +-used) does not work for your server. +-.IP +-Use this option with '\fBTLS1\fP' value to enforce a STARTTLS +-connection. In this mode, it is highly recommended to also use +-\-\-sslcertck (see below). Note that this will then cause fetchmail +-v6.3.19 to force STARTTLS negotiation even if it is not advertised by +-the server. +-.IP +-To defeat opportunistic TLSv1 negotiation when the server advertises +-STARTTLS or STLS, and use a cleartext connection use \fB''\fP. This +-option, even if the argument is the empty string, will also suppress the +-diagnostic 'SERVER: opportunistic upgrade to TLS.' message in verbose +-mode. The default is to try appropriate protocols depending on context. ++This option has a dual use, out of historic fetchmail behaviour. It ++controls both the SSL/TLS protocol version and, if \-\-ssl is not ++specified, the STARTTLS behaviour (upgrading the protocol to an SSL or ++TLS connection in-band). Some other options may however make TLS ++mandatory. ++.PP ++Only if this option and \-\-ssl are both missing for a poll, there will ++be opportunistic TLS for POP3 and IMAP, where fetchmail will attempt to ++upgrade to TLSv1 or newer. ++.PP ++Recognized values for \-\-sslproto are given below. You should normally ++chose one of the auto-negotiating options, i. e. '\fBauto\fP' or one of ++the options ending in a plus (\fB+\fP) character. Note that depending ++on OpenSSL library version and configuration, some options cause ++run-time errors because the requested SSL or TLS versions are not ++supported by the particular installed OpenSSL library. ++.RS ++.IP "\fB''\fP, the empty string" ++Disable STARTTLS. If \-\-ssl is given for the same server, log an error ++and pretend that '\fBauto\fP' had been used instead. ++.IP '\fBauto\fP' ++(default). Since v6.4.0. Require TLS. Auto-negotiate TLSv1 or newer, disable SSLv3 downgrade. ++(fetchmail 6.3.26 and older have auto-negotiated all protocols that ++their OpenSSL library supported, including the broken SSLv3). ++.IP "\&'\fBSSL23\fP' ++see '\fBauto\fP'. ++.IP \&'\fBSSL3\fP' ++Require SSLv3 exactly. SSLv3 is broken, not supported on all systems, avoid it ++if possible. This will make fetchmail negotiate SSLv3 only, and is the ++only way besides '\fBSSL3+\fP' to have fetchmail 6.4.0 or newer permit SSLv3. ++.IP \&'\fBSSL3+\fP' ++same as '\fBauto\fP', but permit SSLv3 as well. This is the only way ++besides '\fBSSL3\fP' to have fetchmail 6.4.0 or newer permit SSLv3. ++.IP \&'\fBTLS1\fP' ++Require TLSv1. This does not negotiate TLSv1.1 or newer, and is ++discouraged. Replace by TLS1+ unless the latter chokes your server. ++.IP \&'\fBTLS1+\fP' ++Since v6.4.0. See 'fBauto\fP'. ++.IP \&'\fBTLS1.1\fP' ++Since v6.4.0. Require TLS v1.1 exactly. ++.IP \&'\fBTLS1.1+\fP' ++Since v6.4.0. Require TLS. Auto-negotiate TLSv1.1 or newer. ++.IP \&'\fBTLS1.2\fP' ++Since v6.4.0. Require TLS v1.2 exactly. ++.IP '\fBTLS1.2+\fP' ++Since v6.4.0. Require TLS. Auto-negotiate TLSv1.2 or newer. ++.IP "Unrecognized parameters" ++are treated the same as '\fBauto\fP'. ++.RE ++.IP ++NOTE: you should hardly ever need to use anything other than '' (to ++force an unencrypted connection) or 'auto' (to enforce TLS). + .TP + .B \-\-sslcertck + (Keyword: sslcertck) + .br +-Causes fetchmail to strictly check the server certificate against a set of +-local trusted certificates (see the \fBsslcertfile\fP and \fBsslcertpath\fP +-options). If the server certificate cannot be obtained or is not signed by one +-of the trusted ones (directly or indirectly), the SSL connection will fail, +-regardless of the \fBsslfingerprint\fP option. ++Causes fetchmail to require that SSL/TLS be used and disconnect if it ++can not successfully negotiate SSL or TLS, or if it cannot successfully ++verify and validate the certificate and follow it to a trust anchor (or ++trusted root certificate). The trust anchors are given as a set of local ++trusted certificates (see the \fBsslcertfile\fP and \fBsslcertpath\fP ++options). If the server certificate cannot be obtained or is not signed ++by one of the trusted ones (directly or indirectly), fetchmail will ++disconnect, regardless of the \fBsslfingerprint\fP option. + .IP + Note that CRL (certificate revocation lists) are only supported in + OpenSSL 0.9.7 and newer! Your system clock should also be reasonably +@@ -1202,31 +1235,33 @@ capability response. Specify a user opti + username and the part to the right as the NTLM domain. + + .SS Secure Socket Layers (SSL) and Transport Layer Security (TLS) ++.PP All retrieval protocols can use SSL or TLS wrapping for the ++transport. Additionally, POP3 and IMAP retrival can also negotiate ++SSL/TLS by means of STARTTLS (or STLS). + .PP + Note that fetchmail currently uses the OpenSSL library, which is + severely underdocumented, so failures may occur just because the + programmers are not aware of OpenSSL's requirement of the day. + For instance, since v6.3.16, fetchmail calls + OpenSSL_add_all_algorithms(), which is necessary to support certificates +-using SHA256 on OpenSSL 0.9.8 -- this information is deeply hidden in the +-documentation and not at all obvious. Please do not hesitate to report +-subtle SSL failures. +-.PP +-You can access SSL encrypted services by specifying the \-\-ssl option. +-You can also do this using the "ssl" user option in the .fetchmailrc +-file. With SSL encryption enabled, queries are initiated over a +-connection after negotiating an SSL session, and the connection fails if +-SSL cannot be negotiated. Some services, such as POP3 and IMAP, have ++using SHA256 on OpenSSL 0.9.8 -- this information is deeply hidden in ++the documentation and not at all obvious. Please do not hesitate to ++report subtle SSL failures. ++.PP ++You can access SSL encrypted services by specifying the options starting ++with \-\-ssl, such as \-\-ssl, \-\-sslproto, \-\-sslcertck, and others. ++You can also do this using the corresponding user options in the .fetchmailrc ++file. Some services, such as POP3 and IMAP, have + different well known ports defined for the SSL encrypted services. The + encrypted ports will be selected automatically when SSL is enabled and +-no explicit port is specified. The \-\-sslproto 'SSL3' option should be +-used to select the SSLv3 protocol (default if unset: v2 or v3). Also, +-the \-\-sslcertck command line or sslcertck run control file option +-should be used to force strict certificate checking - see below. ++no explicit port is specified. Also, the \-\-sslcertck command line or ++sslcertck run control file option should be used to force strict ++certificate checking - see below. + .PP + If SSL is not configured, fetchmail will usually opportunistically try to use +-STARTTLS. STARTTLS can be enforced by using \-\-sslproto "TLS1". TLS +-connections use the same port as the unencrypted version of the ++STARTTLS. STARTTLS can be enforced by using \-\-sslproto\~auto and ++defeated by using \-\-sslproto\~''. ++TLS connections use the same port as the unencrypted version of the + protocol and negotiate TLS via special command. The \-\-sslcertck + command line or sslcertck run control file option should be used to + force strict certificate checking - see below. +--- fetchmail-6.3.26.orig/imap.c ++++ fetchmail-6.3.26/imap.c +@@ -405,6 +405,8 @@ static int imap_getauth(int sock, struct + /* apply for connection authorization */ + { + int ok = 0; ++ char *commonname; ++ + (void)greeting; + + /* +@@ -429,25 +431,21 @@ static int imap_getauth(int sock, struct + return(PS_SUCCESS); + } + +-#ifdef SSL_ENABLE +- if (maybe_tls(ctl)) { +- char *commonname; +- +- commonname = ctl->server.pollname; +- if (ctl->server.via) +- commonname = ctl->server.via; +- if (ctl->sslcommonname) +- commonname = ctl->sslcommonname; ++ commonname = ctl->server.pollname; ++ if (ctl->server.via) ++ commonname = ctl->server.via; ++ if (ctl->sslcommonname) ++ commonname = ctl->sslcommonname; + +- if (strstr(capabilities, "STARTTLS") +- || must_tls(ctl)) /* if TLS is mandatory, ignore capabilities */ ++#ifdef SSL_ENABLE ++ if (maybe_starttls(ctl)) { ++ if ((strstr(capabilities, "STARTTLS") && maybe_starttls(ctl)) ++ || must_starttls(ctl)) /* if TLS is mandatory, ignore capabilities */ + { +- /* Use "tls1" rather than ctl->sslproto because tls1 is the only +- * protocol that will work with STARTTLS. Don't need to worry +- * whether TLS is mandatory or opportunistic unless SSLOpen() fails +- * (see below). */ ++ /* Don't need to worry whether TLS is mandatory or ++ * opportunistic unless SSLOpen() fails (see below). */ + if (gen_transact(sock, "STARTTLS") == PS_SUCCESS +- && (set_timeout(mytimeout), SSLOpen(sock, ctl->sslcert, ctl->sslkey, "tls1", ctl->sslcertck, ++ && (set_timeout(mytimeout), SSLOpen(sock, ctl->sslcert, ctl->sslkey, ctl->sslproto, ctl->sslcertck, + ctl->sslcertfile, ctl->sslcertpath, ctl->sslfingerprint, commonname, + ctl->server.pollname, &ctl->remotename)) != -1) + { +@@ -470,7 +468,7 @@ static int imap_getauth(int sock, struct + { + report(stdout, GT_("%s: upgrade to TLS succeeded.\n"), commonname); + } +- } else if (must_tls(ctl)) { ++ } else if (must_starttls(ctl)) { + /* Config required TLS but we couldn't guarantee it, so we must + * stop. */ + set_timeout(0); +@@ -492,6 +490,10 @@ static int imap_getauth(int sock, struct + /* Usable. Proceed with authenticating insecurely. */ + } + } ++ } else { ++ if (strstr(capabilities, "STARTTLS") && outlevel >= O_VERBOSE) { ++ report(stdout, GT_("%s: WARNING: server offered STARTTLS but sslproto '' given.\n"), commonname); ++ } + } + #endif /* SSL_ENABLE */ + +--- fetchmail-6.3.26.orig/po/Makevars ++++ fetchmail-6.3.26/po/Makevars +@@ -46,3 +46,15 @@ MSGID_BUGS_ADDRESS = fetchmail-devel@lis + # This is the list of locale categories, beyond LC_MESSAGES, for which the + # message catalogs shall be used. It is usually empty. + EXTRA_LOCALE_CATEGORIES = ++ ++# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' ++# context. Possible values are "yes" and "no". Set this to yes if the ++# package uses functions taking also a message context, like pgettext(), or ++# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. ++USE_MSGCTXT = no ++ ++# These options get passed to msgmerge. ++# Useful options are in particular: ++# --previous to keep previous msgids of translated messages, ++# --quiet to reduce the verbosity. ++MSGMERGE_OPTIONS = +--- fetchmail-6.3.26.orig/pop3.c ++++ fetchmail-6.3.26/pop3.c +@@ -281,6 +281,7 @@ static int pop3_getauth(int sock, struct + #endif /* OPIE_ENABLE */ + #ifdef SSL_ENABLE + flag connection_may_have_tls_errors = FALSE; ++ char *commonname; + #endif /* SSL_ENABLE */ + + done_capa = FALSE; +@@ -393,7 +394,7 @@ static int pop3_getauth(int sock, struct + (ctl->server.authenticate == A_KERBEROS_V5) || + (ctl->server.authenticate == A_OTP) || + (ctl->server.authenticate == A_CRAM_MD5) || +- maybe_tls(ctl)) ++ maybe_starttls(ctl)) + { + if ((ok = capa_probe(sock)) != PS_SUCCESS) + /* we are in STAGE_GETAUTH => failure is PS_AUTHFAIL! */ +@@ -406,12 +407,12 @@ static int pop3_getauth(int sock, struct + (ok == PS_SOCKET && !ctl->wehaveauthed)) + { + #ifdef SSL_ENABLE +- if (must_tls(ctl)) { ++ if (must_starttls(ctl)) { + /* fail with mandatory STLS without repoll */ + report(stderr, GT_("TLS is mandatory for this session, but server refused CAPA command.\n")); + report(stderr, GT_("The CAPA command is however necessary for TLS.\n")); + return ok; +- } else if (maybe_tls(ctl)) { ++ } else if (maybe_starttls(ctl)) { + /* defeat opportunistic STLS */ + xfree(ctl->sslproto); + ctl->sslproto = xstrdup(""); +@@ -431,24 +432,19 @@ static int pop3_getauth(int sock, struct + } + + #ifdef SSL_ENABLE +- if (maybe_tls(ctl)) { +- char *commonname; ++ commonname = ctl->server.pollname; ++ if (ctl->server.via) ++ commonname = ctl->server.via; ++ if (ctl->sslcommonname) ++ commonname = ctl->sslcommonname; + +- commonname = ctl->server.pollname; +- if (ctl->server.via) +- commonname = ctl->server.via; +- if (ctl->sslcommonname) +- commonname = ctl->sslcommonname; +- +- if (has_stls +- || must_tls(ctl)) /* if TLS is mandatory, ignore capabilities */ ++ if (maybe_starttls(ctl)) { ++ if (has_stls || must_starttls(ctl)) /* if TLS is mandatory, ignore capabilities */ + { +- /* Use "tls1" rather than ctl->sslproto because tls1 is the only +- * protocol that will work with STARTTLS. Don't need to worry +- * whether TLS is mandatory or opportunistic unless SSLOpen() fails +- * (see below). */ ++ /* Don't need to worry whether TLS is mandatory or ++ * opportunistic unless SSLOpen() fails (see below). */ + if (gen_transact(sock, "STLS") == PS_SUCCESS +- && (set_timeout(mytimeout), SSLOpen(sock, ctl->sslcert, ctl->sslkey, "tls1", ctl->sslcertck, ++ && (set_timeout(mytimeout), SSLOpen(sock, ctl->sslcert, ctl->sslkey, ctl->sslproto, ctl->sslcertck, + ctl->sslcertfile, ctl->sslcertpath, ctl->sslfingerprint, commonname, + ctl->server.pollname, &ctl->remotename)) != -1) + { +@@ -475,7 +471,7 @@ static int pop3_getauth(int sock, struct + { + report(stdout, GT_("%s: upgrade to TLS succeeded.\n"), commonname); + } +- } else if (must_tls(ctl)) { ++ } else if (must_starttls(ctl)) { + /* Config required TLS but we couldn't guarantee it, so we must + * stop. */ + set_timeout(0); +@@ -495,7 +491,11 @@ static int pop3_getauth(int sock, struct + } + } + } +- } /* maybe_tls() */ ++ } else { /* maybe_starttls() */ ++ if (has_stls && outlevel >= O_VERBOSE) { ++ report(stdout, GT_("%s: WARNING: server offered STLS, but sslproto '' given.\n"), commonname); ++ } ++ } /* maybe_starttls() */ + #endif /* SSL_ENABLE */ + + /* +--- fetchmail-6.3.26.orig/socket.c ++++ fetchmail-6.3.26/socket.c +@@ -876,7 +876,9 @@ int SSLOpen(int sock, char *mycert, char + { + struct stat randstat; + int i; ++ int avoid_ssl_versions = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; + long sslopts = SSL_OP_ALL; ++ int ssle_connect = 0; + + SSL_load_error_strings(); + SSL_library_init(); +@@ -906,25 +908,57 @@ int SSLOpen(int sock, char *mycert, char + /* Make sure a connection referring to an older context is not left */ + _ssl_context[sock] = NULL; + if(myproto) { +- if(!strcasecmp("ssl2",myproto)) { +-#if HAVE_DECL_SSLV2_CLIENT_METHOD + 0 > 0 +- _ctx[sock] = SSL_CTX_new(SSLv2_client_method()); ++ if(!strcasecmp("ssl3",myproto)) { ++#if (HAVE_DECL_SSLV3_CLIENT_METHOD > 0) && (0 == OPENSSL_NO_SSL3 + 0) ++ _ctx[sock] = SSL_CTX_new(SSLv3_client_method()); ++ avoid_ssl_versions &= ~SSL_OP_NO_SSLv3; + #else +- report(stderr, GT_("Your operating system does not support SSLv2.\n")); ++ report(stderr, GT_("Your OpenSSL version does not support SSLv3.\n")); + return -1; + #endif +- } else if(!strcasecmp("ssl3",myproto)) { +- _ctx[sock] = SSL_CTX_new(SSLv3_client_method()); ++ } else if(!strcasecmp("ssl3+",myproto)) { ++ avoid_ssl_versions &= ~SSL_OP_NO_SSLv3; ++ myproto = NULL; + } else if(!strcasecmp("tls1",myproto)) { + _ctx[sock] = SSL_CTX_new(TLSv1_client_method()); +- } else if (!strcasecmp("ssl23",myproto)) { ++ } else if(!strcasecmp("tls1+",myproto)) { ++ myproto = NULL; ++#if defined(TLS1_1_VERSION) && TLS_MAX_VERSION >= TLS1_1_VERSION ++ } else if(!strcasecmp("tls1.1",myproto)) { ++ _ctx[sock] = SSL_CTX_new(TLSv1_1_client_method()); ++ } else if(!strcasecmp("tls1.1+",myproto)) { ++ myproto = NULL; ++ avoid_ssl_versions |= SSL_OP_NO_TLSv1; ++#else ++ } else if(!strcasecmp("tls1.1",myproto) || !strcasecmp("tls1.1+", myproto)) { ++ report(stderr, GT_("Your OpenSSL version does not support TLS v1.1.\n")); ++ return -1; ++#endif ++#if defined(TLS1_2_VERSION) && TLS_MAX_VERSION >= TLS1_2_VERSION ++ } else if(!strcasecmp("tls1.2",myproto)) { ++ _ctx[sock] = SSL_CTX_new(TLSv1_2_client_method()); ++ } else if(!strcasecmp("tls1.2+",myproto)) { ++ myproto = NULL; ++ avoid_ssl_versions |= SSL_OP_NO_TLSv1; ++ avoid_ssl_versions |= SSL_OP_NO_TLSv1_1; ++#else ++ } else if(!strcasecmp("tls1.2",myproto) || !strcasecmp("tls1.2+", myproto)) { ++ report(stderr, GT_("Your OpenSSL version does not support TLS v1.2.\n")); ++ return -1; ++#endif ++ } else if (!strcasecmp("ssl23",myproto) || 0 == strcasecmp("auto",myproto)) { + myproto = NULL; + } else { +- report(stderr,GT_("Invalid SSL protocol '%s' specified, using default (SSLv23).\n"), myproto); ++ report(stderr,GT_("Invalid SSL protocol '%s' specified, using default autoselect (SSL23).\n"), myproto); + myproto = NULL; + } + } +- if(!myproto) { ++ // do not combine into an else { } as myproto may be nulled ++ // above! ++ if (!myproto) { ++ // SSLv23 is a misnomer and will in fact use the best ++ // available protocol, subject to SSL_OP_NO* ++ // constraints. + _ctx[sock] = SSL_CTX_new(SSLv23_client_method()); + } + if(_ctx[sock] == NULL) { +@@ -938,7 +972,7 @@ int SSLOpen(int sock, char *mycert, char + sslopts &= ~ SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS; + } + +- SSL_CTX_set_options(_ctx[sock], sslopts); ++ SSL_CTX_set_options(_ctx[sock], sslopts | avoid_ssl_versions); + + if (certck) { + SSL_CTX_set_verify(_ctx[sock], SSL_VERIFY_PEER, SSL_ck_verify_callback); +@@ -1008,8 +1042,18 @@ int SSLOpen(int sock, char *mycert, char + } + + if (SSL_set_fd(_ssl_context[sock], sock) == 0 +- || SSL_connect(_ssl_context[sock]) < 1) { ++ || (ssle_connect = SSL_connect(_ssl_context[sock])) < 1) { ++ int e = errno; ++ unsigned long ssle_err_from_queue = ERR_peek_error(); ++ unsigned long ssle_err_from_get_error = SSL_get_error(_ssl_context[sock], ssle_connect); + ERR_print_errors_fp(stderr); ++ if (SSL_ERROR_SYSCALL == ssle_err_from_get_error && 0 == ssle_err_from_queue) { ++ if (0 == ssle_connect) { ++ report(stderr, GT_("Server shut down connection prematurely during SSL_connect().\n")); ++ } else if (ssle_connect < 0) { ++ report(stderr, GT_("System error during SSL_connect(): %s\n"), strerror(e)); ++ } ++ } + SSL_free( _ssl_context[sock] ); + _ssl_context[sock] = NULL; + SSL_CTX_free(_ctx[sock]); +@@ -1017,6 +1061,24 @@ int SSLOpen(int sock, char *mycert, char + return(-1); + } + ++ if (outlevel >= O_VERBOSE) { ++ SSL_CIPHER const *sc; ++ int bitsmax, bitsused; ++ ++ const char *ver; ++ ++ ver = SSL_get_version(_ssl_context[sock]); ++ ++ sc = SSL_get_current_cipher(_ssl_context[sock]); ++ if (!sc) { ++ report (stderr, GT_("Cannot obtain current SSL/TLS cipher - no session established?\n")); ++ } else { ++ bitsused = SSL_CIPHER_get_bits(sc, &bitsmax); ++ report(stdout, GT_("SSL/TLS: using protocol %s, cipher %s, %d/%d secret/processed bits\n"), ++ ver, SSL_CIPHER_get_name(sc), bitsused, bitsmax); ++ } ++ } ++ + /* Paranoia: was the callback not called as we expected? */ + if (!_depth0ck) { + report(stderr, GT_("Certificate/fingerprint verification was somehow skipped!\n")); +--- /dev/null ++++ fetchmail-6.3.26/starttls.c +@@ -0,0 +1,37 @@ ++/** \file tls.c - collect common TLS functionality ++ * \author Matthias Andree ++ * \date 2006 ++ */ ++ ++#include "fetchmail.h" ++ ++#include <string.h> ++ ++#ifdef HAVE_STRINGS_H ++#include <strings.h> ++#endif ++ ++/** return true if user allowed opportunistic STARTTLS/STLS */ ++int maybe_starttls(struct query *ctl) { ++#ifdef SSL_ENABLE ++ /* opportunistic or forced TLS */ ++ return (!ctl->sslproto || strlen(ctl->sslproto)) ++ && !ctl->use_ssl; ++#else ++ (void)ctl; ++ return 0; ++#endif ++} ++ ++/** return true if user requires STARTTLS/STLS, note though that this ++ * code must always use a logical AND with maybe_tls(). */ ++int must_starttls(struct query *ctl) { ++#ifdef SSL_ENABLE ++ return maybe_starttls(ctl) ++ && (ctl->sslfingerprint || ctl->sslcertck ++ || (ctl->sslproto && !strcasecmp(ctl->sslproto, "tls1"))); ++#else ++ (void)ctl; ++ return 0; ++#endif ++} diff --git a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb index 1d78288c8..5af5d0df6 100644 --- a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb +++ b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb @@ -7,7 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fbb509e0303f5ded1cbfc0cc8705f28c" DEPENDS = "openssl" -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz \ + file://02_remove_SSLv3.patch \ + " SRC_URI[md5sum] = "61b66faad044afa26e142bb1791aa2b3" SRC_URI[sha256sum] = "79b4c54cdbaf02c1a9a691d9948fcb1a77a1591a813e904283a8b614b757e850" diff --git a/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb b/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb index 95147bdad..ed5c3a979 100644 --- a/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb +++ b/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb @@ -7,10 +7,10 @@ DESCRIPTION = "perl library for country/city/organization to IP address or hostn HOMEPAGE = "http://www.maxmind.com/app/ip-location" SECTION = "libdevel" LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b7a36f55e8ba62aadd74e4f0886a405e" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e4f3ea6e9b28af88dc0321190a1f8250" S = "${WORKDIR}/git" -SRCREV = "47f7d49bd15cfc2e5f8c0f5c4068dc8bb0e10e96" +SRCREV = "4cdfdc38eca237c19c22a8b90490446ce6d970fa" SRC_URI = "git://github.com/maxmind/geoip-api-perl.git;protocol=https; \ file://run-ptest \ " diff --git a/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.11.bb b/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb index 3527d0cba..4271c2e15 100644 --- a/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.11.bb +++ b/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb @@ -8,26 +8,28 @@ using reverse DNS lookups." HOMEPAGE = "http://dev.maxmind.com/geoip/" SECTION = "libdevel" +GEOIP_DATABASE_VERSION = "20181205" + SRC_URI = "git://github.com/maxmind/geoip-api-c.git \ - http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz;apply=no;name=GeoIP-dat \ - http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz;apply=no;name=GeoIPv6-dat \ - http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz;apply=no;name=GeoLiteCity-dat \ - http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz;apply=no;name=GeoLiteCityv6-dat \ + http://sources.openembedded.org/GeoIP.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoIP-dat; \ + http://sources.openembedded.org/GeoIPv6.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoIPv6-dat; \ + http://sources.openembedded.org/GeoLiteCity.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoLiteCity-dat; \ + http://sources.openembedded.org/GeoLiteCityv6.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoLiteCityv6-dat; \ file://run-ptest \ " -SRCREV = "3169a8a88808c8df862e0b0355f99c738cce9f7e" +SRCREV = "4b526e7331ca1d692b74a0509ddcc725622ed31a" -SRC_URI[GeoIP-dat.md5sum] = "37c84ead332dda0362a5ac7b049b72d4" -SRC_URI[GeoIP-dat.sha256sum] = "79ff1099e96c2dc1c2539c9a18aaa13a9afd085cae477df60d95f1644d42bc07" +SRC_URI[GeoIP-dat.md5sum] = "d538e57ad9268fdc7955c6cf9a37c4a9" +SRC_URI[GeoIP-dat.sha256sum] = "b9c05eb8bfcf90a6ddfdc6815caf40a8db2710f0ce3dd48fbd6c24d485ae0449" -SRC_URI[GeoIPv6-dat.md5sum] = "e75b84a4044e81d6d4484e33816bc762" -SRC_URI[GeoIPv6-dat.sha256sum] = "a009b0f21968d2868e6dd19d14f3c3b8cd60ae84a4bfc2970df34d771a04811e" +SRC_URI[GeoIPv6-dat.md5sum] = "52d6aa0aac1adbfa5eb7fa4742197c11" +SRC_URI[GeoIPv6.sha256sum] = "416ac92fcc35a21d5efbb32e5c88e609c37aec1aa1af6247d088b8da1af6e9bf" -SRC_URI[GeoLiteCity-dat.md5sum] = "4b6588d0bfe1af22e267ac90aa97f769" -SRC_URI[GeoLiteCity-dat.sha256sum] = "8a6467033a528f68b1a97de24d9d0ce86c8e8e83683820e16e433ddbd3f712f7" +SRC_URI[GeoLiteCity-dat.md5sum] = "d700c137232f8e077ac8db8577f699d9" +SRC_URI[GeoLiteCity-dat.sha256sum] = "90db2e52195e3d1bcdb2c2789209006d09de5c742812dbd9a1b36c12675ec4cd" -SRC_URI[GeoLiteCityv6-dat.md5sum] = "ad0cb42518af7f752499425dca0952bb" -SRC_URI[GeoLiteCityv6-dat.sha256sum] = "eda67f4204ba9fa5204a53cdb629167cca9394c712f5378bc723a8c29c0b440f" +SRC_URI[GeoLiteCityv6-dat.md5sum] = "6734ccdc644fc0ba76eb276dce73d005" +SRC_URI[GeoLiteCityv6-dat.sha256sum] = "c95a9d2643b7f53d7abeed2114388870e13fbbad4653f450a49efa7e4b86aca4" LICENSE = "LGPL-2.1" @@ -44,10 +46,10 @@ EXTRA_OECONF = "--disable-static \ do_install() { make DESTDIR=${D} install install -d ${D}/${datadir}/GeoIP - install ${WORKDIR}/GeoIP.dat ${D}/${datadir}/GeoIP/ - install ${WORKDIR}/GeoIPv6.dat ${D}/${datadir}/GeoIP/ - install ${WORKDIR}/GeoLiteCity.dat ${D}/${datadir}/GeoIP/ - install ${WORKDIR}/GeoLiteCityv6.dat ${D}/${datadir}/GeoIP/ + install ${WORKDIR}/GeoIP.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoIP.dat + install ${WORKDIR}/GeoIPv6.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoIPv6.dat + install ${WORKDIR}/GeoLiteCity.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoLiteCity.dat + install ${WORKDIR}/GeoLiteCityv6.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoLiteCityv6.dat ln -s GeoLiteCity.dat ${D}${datadir}/GeoIP/GeoIPCity.dat } diff --git a/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch new file mode 100644 index 000000000..0ee44c162 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch @@ -0,0 +1,31 @@ +From 04603f52d793f964653e6a985944400fe4fa87ee Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 13 Jun 2018 17:50:20 -0700 +Subject: [PATCH] Make environment variables assignments to be weak + +So that OE can override them for cross builds + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index 1c80c09..884126c 100644 +--- a/Makefile ++++ b/Makefile +@@ -2,11 +2,11 @@ prefix = $(DESTDIR)/usr + bindir = ${prefix}/bin + mandir = ${prefix}/share/man + +-CC = gcc ++CC ?= gcc + CFLAGS += -Wall -std=c99 -pedantic -O2 + +-INSTALL = /usr/bin/install -c +-STRIP = /usr/bin/strip -s ++INSTALL ?= /usr/bin/install -c ++STRIP ?= /usr/bin/strip -s + + all: htpdate + diff --git a/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch new file mode 100644 index 000000000..cca8c6c36 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch @@ -0,0 +1,40 @@ +From 75646a2d2df14fdbc4a01e222a779afac94861d1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 14 Jun 2018 20:11:08 -0700 +Subject: [PATCH] Replace ntp_adjtime with adjtimex. + +ntp_adjtime in glibc is an alias to adjtimex and +musl does not provide ntp_adjtime at all + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + htpdate.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/htpdate.c b/htpdate.c +index 4171efe..ff0bf8d 100644 +--- a/htpdate.c ++++ b/htpdate.c +@@ -391,7 +391,7 @@ static int htpdate_adjtimex( double drift ) { + + /* Read current kernel frequency */ + tmx.modes = 0; +- ntp_adjtime(&tmx); ++ adjtimex(&tmx); + + /* Calculate new frequency */ + freq = (long)(65536e6 * drift); +@@ -406,7 +406,7 @@ static int htpdate_adjtimex( double drift ) { + + /* Become root */ + swuid(0); +- return( ntp_adjtime(&tmx) ); ++ return( adjtimex(&tmx) ); + + } + +-- +2.17.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb new file mode 100644 index 000000000..eb6787846 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb @@ -0,0 +1,39 @@ +# Copyright (C) 2018 Khem Raj <raj.khem@gmail.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "HTTP based time synchronization tool" + +DESCRIPTION = "The HTTP Time Protocol (HTP) is used to synchronize a computer's time with\ + web servers as reference time source. This program can be used instead\ + ntpdate or similar, in networks that has a firewall blocking the NTP port.\ + Htpdate will synchronize the computer time to Greenwich Mean Time (GMT),\ + using the timestamps from HTTP headers found in web servers response (the\ + HEAD method will be used to get the information).\ + Htpdate works through proxy servers. Accuracy of htpdate will be usually\ + within 0.5 seconds (better with multiple servers).\ +" + +HOMEPAGE = "http://www.vervest.org/htp/" + +LICENSE = "GPL-2.0+" +LIC_FILES_CHKSUM = "file://htpdate.c;beginline=26;endline=30;md5=d7018a4d2c5a6eab392709a05e5e168a" + +SRC_URI = "http://www.vervest.org/htp/archive/c/htpdate-${PV}.tar.xz \ + file://0001-Make-environment-variables-assignments-to-be-weak.patch \ + file://0001-Replace-ntp_adjtime-with-adjtimex.patch \ + " +SRC_URI[md5sum] = "9d5ca69be06edf5d535b52b5f790da4e" +SRC_URI[sha256sum] = "22b2cf3ec45b0eedecddd3ad2a3d754ac57942ae7dcbac410d254935f0bdbc03" + +do_configure () { + : +} + +do_compile () { + oe_runmake +} + +do_install () { + oe_runmake install 'INSTALL=install' 'STRIP=echo' 'DESTDIR=${D}' +} + diff --git a/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb b/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb index ea28b34aa..125b59e76 100644 --- a/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb +++ b/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb @@ -5,9 +5,11 @@ SECTION = "net" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://debian/copyright;md5=acc89812938cf9ad6b1debc37cea0253" +inherit manpages +MAN_PKG = "${PN}" SRCREV = "42bfbb9beb924672ca86b86e9679ac3d6b87d992" -SRC_URI = "git://anonscm.debian.org/collab-maint/ifenslave.git" +SRC_URI = "git://salsa.debian.org/debian/ifenslave.git;protocol=https" S = "${WORKDIR}/git" @@ -23,5 +25,3 @@ do_install() { FILES_${PN}-doc_remove = "${mandir}" FILES_${PN} += "${mandir}/man8/ifenslave.8" - -RDEPENDS_${PN} = "man" diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch new file mode 100644 index 000000000..11a910393 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch @@ -0,0 +1,86 @@ +From 282d492e4cab7b4d9c7321f4c0c55b615948e280 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 11 May 2018 14:09:17 -0700 +Subject: [PATCH] Disable gcc8 specific warnings + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libipsec/ipsec_dump_policy.c | 5 +++++ + src/libipsec/pfkey_dump.c | 5 +++++ + src/racoon/isakmp.c | 11 ++++++++++- + 3 files changed, 20 insertions(+), 1 deletion(-) + +diff --git a/src/libipsec/ipsec_dump_policy.c b/src/libipsec/ipsec_dump_policy.c +index 4d0eb77..c3fc842 100644 +--- a/src/libipsec/ipsec_dump_policy.c ++++ b/src/libipsec/ipsec_dump_policy.c +@@ -275,6 +275,10 @@ ipsec_dump_policy1(policy, delimiter, withports) + return buf; + } + ++#pragma GCC diagnostic push ++#if defined(__GNUC__) && (__GNUC__ >= 8) ++#pragma GCC diagnostic ignored "-Wformat-truncation" ++#endif + static char * + ipsec_dump_ipsecrequest(buf, len, xisr, bound, withports) + char *buf; +@@ -419,3 +423,4 @@ set_address(buf, len, sa, withports) + + return buf; + } ++#pragma GCC diagnostic pop +diff --git a/src/libipsec/pfkey_dump.c b/src/libipsec/pfkey_dump.c +index 4627ebc..451e535 100644 +--- a/src/libipsec/pfkey_dump.c ++++ b/src/libipsec/pfkey_dump.c +@@ -691,6 +691,10 @@ str_ipport(sa) + /* + * set "/prefix[port number]" to buffer. + */ ++#pragma GCC diagnostic push ++#if defined(__GNUC__) && (__GNUC__ >= 8) ++#pragma GCC diagnostic ignored "-Wformat-truncation" ++#endif + static char * + str_prefport(family, pref, port, ulp) + u_int family, pref, port, ulp; +@@ -735,6 +739,7 @@ str_prefport(family, pref, port, ulp) + + return buf; + } ++#pragma GCC diagnostic pop + + static void + str_upperspec(ulp, p1, p2) +diff --git a/src/racoon/isakmp.c b/src/racoon/isakmp.c +index 7ff53a3..4addf24 100644 +--- a/src/racoon/isakmp.c ++++ b/src/racoon/isakmp.c +@@ -3124,7 +3124,12 @@ script_hook(iph1, script) + #endif + + /* local address */ ++#pragma GCC diagnostic push ++#if defined(__GNUC__) && (__GNUC__ >= 8) ++#pragma GCC diagnostic ignored "-Wstringop-truncation" ++#endif + GETNAMEINFO(iph1->local, addrstr, portstr); ++#pragma GCC diagnostic pop + + if (script_env_append(&envp, &envc, "LOCAL_ADDR", addrstr) != 0) { + plog(LLV_ERROR, LOCATION, NULL, "Cannot set LOCAL_ADDR\n"); +@@ -3138,8 +3143,12 @@ script_hook(iph1, script) + + /* Peer address */ + if (iph1->remote != NULL) { ++#pragma GCC diagnostic push ++#if defined(__GNUC__) && (__GNUC__ >= 8) ++#pragma GCC diagnostic ignored "-Wstringop-truncation" ++#endif + GETNAMEINFO(iph1->remote, addrstr, portstr); +- ++#pragma GCC diagnostic pop + if (script_env_append(&envp, &envc, + "REMOTE_ADDR", addrstr) != 0) { + plog(LLV_ERROR, LOCATION, NULL, diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch new file mode 100644 index 000000000..228274436 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch @@ -0,0 +1,1086 @@ +From b572350a922187d43dd4629c3b43e19979fae3ef Mon Sep 17 00:00:00 2001 +From: Eneas U de Queiroz <cote2004-github@yahoo.com> +Date: Tue, 25 Sep 2018 15:30:04 +0800 +Subject: [PATCH] ipsec-tools: add openssl 1.1 support + +To: equeiroz@troianet.com.br + +This patch updates the calls to openssl 1.1 API, and adds a +compatibility layer so it compiles with (at least) openssl 1.0.2, I +haven't tested it with lower versions, but all that's needed is to edit +the openssl_compat.* files and add the missing functions there--they're +usually trivial. + +Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> + +Upstream-Status: Submitted [https://sourceforge.net/p/ipsec-tools/mailman/message/36327963/] +https://github.com/openwrt/packages/blob/master/net/ipsec-tools/patches/015-openssl-1.1.patch + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + src/racoon/Makefile.am | 10 +-- + src/racoon/algorithm.c | 6 +- + src/racoon/crypto_openssl.c | 197 +++++++++++++++++++++------------------- + src/racoon/crypto_openssl.h | 2 +- + src/racoon/eaytest.c | 7 +- + src/racoon/ipsec_doi.c | 2 +- + src/racoon/openssl_compat.c | 213 ++++++++++++++++++++++++++++++++++++++++++++ + src/racoon/openssl_compat.h | 45 ++++++++++ + src/racoon/plainrsa-gen.c | 41 +++++---- + src/racoon/prsa_par.y | 28 ++++-- + src/racoon/rsalist.c | 5 +- + 11 files changed, 430 insertions(+), 126 deletions(-) + create mode 100644 src/racoon/openssl_compat.c + create mode 100644 src/racoon/openssl_compat.h + +diff --git a/src/racoon/Makefile.am b/src/racoon/Makefile.am +index 0662957..272b009 100644 +--- a/src/racoon/Makefile.am ++++ b/src/racoon/Makefile.am +@@ -4,7 +4,7 @@ sbin_PROGRAMS = racoon racoonctl plainrsa-gen + noinst_PROGRAMS = eaytest + include_racoon_HEADERS = racoonctl.h var.h vmbuf.h misc.h gcmalloc.h admin.h \ + schedule.h sockmisc.h isakmp_var.h isakmp.h isakmp_xauth.h \ +- isakmp_cfg.h isakmp_unity.h ipsec_doi.h evt.h ++ isakmp_cfg.h isakmp_unity.h ipsec_doi.h evt.h openssl_compat.h + lib_LTLIBRARIES = libracoon.la + + adminsockdir=${localstatedir}/racoon +@@ -32,7 +32,7 @@ racoon_SOURCES = \ + gssapi.c dnssec.c getcertsbyname.c privsep.c \ + pfkey.c admin.c evt.c ipsec_doi.c oakley.c grabmyaddr.c vendorid.c \ + policy.c localconf.c remoteconf.c crypto_openssl.c algorithm.c \ +- proposal.c sainfo.c strnames.c \ ++ openssl_compat.c proposal.c sainfo.c strnames.c \ + plog.c logger.c schedule.c str2val.c \ + safefile.c backupsa.c genlist.c rsalist.c \ + cftoken.l cfparse.y prsa_tok.l prsa_par.y +@@ -51,12 +51,12 @@ libracoon_la_SOURCES = kmpstat.c vmbuf.c sockmisc.c misc.c + libracoon_la_CFLAGS = -DNOUSE_PRIVSEP $(AM_CFLAGS) + + plainrsa_gen_SOURCES = plainrsa-gen.c plog.c \ +- crypto_openssl.c logger.c ++ crypto_openssl.c logger.c openssl_compat.c + EXTRA_plainrsa_gen_SOURCES = $(MISSING_ALGOS) + plainrsa_gen_LDADD = $(CRYPTOBJS) vmbuf.o misc.o + plainrsa_gen_DEPENDENCIES = $(CRYPTOBJS) vmbuf.o misc.o + +-eaytest_SOURCES = eaytest.c plog.c logger.c ++eaytest_SOURCES = eaytest.c plog.c logger.c openssl_compat.c + EXTRA_eaytest_SOURCES = missing/crypto/sha2/sha2.c + eaytest_LDADD = crypto_openssl_test.o vmbuf.o str2val.o misc_noplog.o \ + $(CRYPTOBJS) +@@ -75,7 +75,7 @@ noinst_HEADERS = \ + debugrm.h isakmp.h misc.h sainfo.h \ + dhgroup.h isakmp_agg.h netdb_dnssec.h schedule.h \ + isakmp_cfg.h isakmp_xauth.h isakmp_unity.h isakmp_frag.h \ +- throttle.h privsep.h \ ++ throttle.h privsep.h openssl_compat.h \ + cfparse_proto.h cftoken_proto.h genlist.h rsalist.h \ + missing/crypto/sha2/sha2.h missing/crypto/rijndael/rijndael_local.h \ + missing/crypto/rijndael/rijndael-api-fst.h \ +diff --git a/src/racoon/algorithm.c b/src/racoon/algorithm.c +index 3fd50f6..66c874b 100644 +--- a/src/racoon/algorithm.c ++++ b/src/racoon/algorithm.c +@@ -128,7 +128,7 @@ static struct enc_algorithm oakley_encdef[] = { + { "aes", algtype_aes, OAKLEY_ATTR_ENC_ALG_AES, 16, + eay_aes_encrypt, eay_aes_decrypt, + eay_aes_weakkey, eay_aes_keylen, }, +-#ifdef HAVE_OPENSSL_CAMELLIA_H ++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) + { "camellia", algtype_camellia, OAKLEY_ATTR_ENC_ALG_CAMELLIA, 16, + eay_camellia_encrypt, eay_camellia_decrypt, + eay_camellia_weakkey, eay_camellia_keylen, }, +@@ -168,7 +168,7 @@ static struct enc_algorithm ipsec_encdef[] = { + { "twofish", algtype_twofish, IPSECDOI_ESP_TWOFISH, 16, + NULL, NULL, + NULL, eay_twofish_keylen, }, +-#ifdef HAVE_OPENSSL_IDEA_H ++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA) + { "3idea", algtype_3idea, IPSECDOI_ESP_3IDEA, 8, + NULL, NULL, + NULL, NULL, }, +@@ -179,7 +179,7 @@ static struct enc_algorithm ipsec_encdef[] = { + { "rc4", algtype_rc4, IPSECDOI_ESP_RC4, 8, + NULL, NULL, + NULL, NULL, }, +-#ifdef HAVE_OPENSSL_CAMELLIA_H ++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) + { "camellia", algtype_camellia, IPSECDOI_ESP_CAMELLIA, 16, + NULL, NULL, + NULL, eay_camellia_keylen, }, +diff --git a/src/racoon/crypto_openssl.c b/src/racoon/crypto_openssl.c +index 55b076a..8fb358f 100644 +--- a/src/racoon/crypto_openssl.c ++++ b/src/racoon/crypto_openssl.c +@@ -90,6 +90,7 @@ + #endif + #endif + #include "plog.h" ++#include "openssl_compat.h" + + #define USE_NEW_DES_API + +@@ -316,9 +317,12 @@ eay_cmp_asn1dn(n1, n2) + i = idx+1; + goto end; + } +- if ((ea->value->length == 1 && ea->value->data[0] == '*') || +- (eb->value->length == 1 && eb->value->data[0] == '*')) { +- if (OBJ_cmp(ea->object,eb->object)) { ++ ASN1_STRING *sa = X509_NAME_ENTRY_get_data(ea); ++ ASN1_STRING *sb = X509_NAME_ENTRY_get_data(eb); ++ if ((ASN1_STRING_length(sa) == 1 && ASN1_STRING_get0_data(sa)[0] == '*') || ++ (ASN1_STRING_length(sb) == 1 && ASN1_STRING_get0_data(sb)[0] == '*')) { ++ if (OBJ_cmp(X509_NAME_ENTRY_get_object(ea), ++ X509_NAME_ENTRY_get_object(eb))) { + i = idx+1; + goto end; + } +@@ -430,7 +434,7 @@ cb_check_cert_local(ok, ctx) + + if (!ok) { + X509_NAME_oneline( +- X509_get_subject_name(ctx->current_cert), ++ X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)), + buf, + 256); + /* +@@ -438,7 +442,8 @@ cb_check_cert_local(ok, ctx) + * ok if they are self signed. But we should still warn + * the user. + */ +- switch (ctx->error) { ++ int ctx_error = X509_STORE_CTX_get_error(ctx); ++ switch (ctx_error) { + case X509_V_ERR_CERT_HAS_EXPIRED: + case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: + case X509_V_ERR_INVALID_CA: +@@ -453,9 +458,9 @@ cb_check_cert_local(ok, ctx) + } + plog(log_tag, LOCATION, NULL, + "%s(%d) at depth:%d SubjectName:%s\n", +- X509_verify_cert_error_string(ctx->error), +- ctx->error, +- ctx->error_depth, ++ X509_verify_cert_error_string(ctx_error), ++ ctx_error, ++ X509_STORE_CTX_get_error_depth(ctx), + buf); + } + ERR_clear_error(); +@@ -477,10 +482,11 @@ cb_check_cert_remote(ok, ctx) + + if (!ok) { + X509_NAME_oneline( +- X509_get_subject_name(ctx->current_cert), ++ X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)), + buf, + 256); +- switch (ctx->error) { ++ int ctx_error=X509_STORE_CTX_get_error(ctx); ++ switch (ctx_error) { + case X509_V_ERR_UNABLE_TO_GET_CRL: + ok = 1; + log_tag = LLV_WARNING; +@@ -490,9 +496,9 @@ cb_check_cert_remote(ok, ctx) + } + plog(log_tag, LOCATION, NULL, + "%s(%d) at depth:%d SubjectName:%s\n", +- X509_verify_cert_error_string(ctx->error), +- ctx->error, +- ctx->error_depth, ++ X509_verify_cert_error_string(ctx_error), ++ ctx_error, ++ X509_STORE_CTX_get_error_depth(ctx), + buf); + } + ERR_clear_error(); +@@ -516,14 +522,15 @@ eay_get_x509asn1subjectname(cert) + if (x509 == NULL) + goto error; + ++ X509_NAME *subject_name = X509_get_subject_name(x509); + /* get the length of the name */ +- len = i2d_X509_NAME(x509->cert_info->subject, NULL); ++ len = i2d_X509_NAME(subject_name, NULL); + name = vmalloc(len); + if (!name) + goto error; + /* get the name */ + bp = (unsigned char *) name->v; +- len = i2d_X509_NAME(x509->cert_info->subject, &bp); ++ len = i2d_X509_NAME(subject_name, &bp); + + X509_free(x509); + +@@ -661,15 +668,16 @@ eay_get_x509asn1issuername(cert) + if (x509 == NULL) + goto error; + ++ X509_NAME *issuer_name = X509_get_issuer_name(x509); + /* get the length of the name */ +- len = i2d_X509_NAME(x509->cert_info->issuer, NULL); ++ len = i2d_X509_NAME(issuer_name, NULL); + name = vmalloc(len); + if (name == NULL) + goto error; + + /* get the name */ + bp = (unsigned char *) name->v; +- len = i2d_X509_NAME(x509->cert_info->issuer, &bp); ++ len = i2d_X509_NAME(issuer_name, &bp); + + X509_free(x509); + +@@ -850,7 +858,7 @@ eay_check_x509sign(source, sig, cert) + return -1; + } + +- res = eay_rsa_verify(source, sig, evp->pkey.rsa); ++ res = eay_rsa_verify(source, sig, EVP_PKEY_get0_RSA(evp)); + + EVP_PKEY_free(evp); + X509_free(x509); +@@ -992,7 +1000,7 @@ eay_get_x509sign(src, privkey) + if (evp == NULL) + return NULL; + +- sig = eay_rsa_sign(src, evp->pkey.rsa); ++ sig = eay_rsa_sign(src, EVP_PKEY_get0_RSA(evp)); + + EVP_PKEY_free(evp); + +@@ -1079,7 +1087,11 @@ eay_strerror() + int line, flags; + unsigned long es; + ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++ es = 0; /* even when allowed by OPENSSL_API_COMPAT, it is defined as 0 */ ++#else + es = CRYPTO_thread_id(); ++#endif + + while ((l = ERR_get_error_line_data(&file, &line, &data, &flags)) != 0){ + n = snprintf(ebuf + len, sizeof(ebuf) - len, +@@ -1100,7 +1112,7 @@ vchar_t * + evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc) + { + vchar_t *res; +- EVP_CIPHER_CTX ctx; ++ EVP_CIPHER_CTX *ctx; + + if (!e) + return NULL; +@@ -1111,7 +1123,7 @@ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc + if ((res = vmalloc(data->l)) == NULL) + return NULL; + +- EVP_CIPHER_CTX_init(&ctx); ++ ctx = EVP_CIPHER_CTX_new(); + + switch(EVP_CIPHER_nid(e)){ + case NID_bf_cbc: +@@ -1125,54 +1137,41 @@ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc + /* XXX: can we do that also for algos with a fixed key size ? + */ + /* init context without key/iv +- */ +- if (!EVP_CipherInit(&ctx, e, NULL, NULL, enc)) +- { +- OpenSSL_BUG(); +- vfree(res); +- return NULL; +- } ++ */ ++ if (!EVP_CipherInit(ctx, e, NULL, NULL, enc)) ++ goto out; + +- /* update key size +- */ +- if (!EVP_CIPHER_CTX_set_key_length(&ctx, key->l)) +- { +- OpenSSL_BUG(); +- vfree(res); +- return NULL; +- } +- +- /* finalize context init with desired key size +- */ +- if (!EVP_CipherInit(&ctx, NULL, (u_char *) key->v, ++ /* update key size ++ */ ++ if (!EVP_CIPHER_CTX_set_key_length(ctx, key->l)) ++ goto out; ++ ++ /* finalize context init with desired key size ++ */ ++ if (!EVP_CipherInit(ctx, NULL, (u_char *) key->v, + (u_char *) iv->v, enc)) +- { +- OpenSSL_BUG(); +- vfree(res); +- return NULL; +- } ++ goto out; + break; + default: +- if (!EVP_CipherInit(&ctx, e, (u_char *) key->v, +- (u_char *) iv->v, enc)) { +- OpenSSL_BUG(); +- vfree(res); +- return NULL; +- } ++ if (!EVP_CipherInit(ctx, e, (u_char *) key->v, ++ (u_char *) iv->v, enc)) ++ goto out; + } + + /* disable openssl padding */ +- EVP_CIPHER_CTX_set_padding(&ctx, 0); ++ EVP_CIPHER_CTX_set_padding(ctx, 0); + +- if (!EVP_Cipher(&ctx, (u_char *) res->v, (u_char *) data->v, data->l)) { +- OpenSSL_BUG(); +- vfree(res); +- return NULL; +- } ++ if (!EVP_Cipher(ctx, (u_char *) res->v, (u_char *) data->v, data->l)) ++ goto out; + +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_free(ctx); + + return res; ++out: ++ EVP_CIPHER_CTX_free(ctx); ++ OpenSSL_BUG(); ++ vfree(res); ++ return NULL; + } + + int +@@ -1230,7 +1229,7 @@ eay_des_keylen(len) + return evp_keylen(len, EVP_des_cbc()); + } + +-#ifdef HAVE_OPENSSL_IDEA_H ++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA) + /* + * IDEA-CBC + */ +@@ -1587,7 +1586,7 @@ eay_aes_keylen(len) + return len; + } + +-#if defined(HAVE_OPENSSL_CAMELLIA_H) ++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) + /* + * CAMELLIA-CBC + */ +@@ -1680,9 +1679,9 @@ eay_hmac_init(key, md) + vchar_t *key; + const EVP_MD *md; + { +- HMAC_CTX *c = racoon_malloc(sizeof(*c)); ++ HMAC_CTX *c = HMAC_CTX_new(); + +- HMAC_Init(c, key->v, key->l, md); ++ HMAC_Init_ex(c, key->v, key->l, md, NULL); + + return (caddr_t)c; + } +@@ -1761,8 +1760,7 @@ eay_hmacsha2_512_final(c) + + HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); + res->l = l; +- HMAC_cleanup((HMAC_CTX *)c); +- (void)racoon_free(c); ++ HMAC_CTX_free((HMAC_CTX *)c); + + if (SHA512_DIGEST_LENGTH != res->l) { + plog(LLV_ERROR, LOCATION, NULL, +@@ -1811,8 +1809,7 @@ eay_hmacsha2_384_final(c) + + HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); + res->l = l; +- HMAC_cleanup((HMAC_CTX *)c); +- (void)racoon_free(c); ++ HMAC_CTX_free((HMAC_CTX *)c); + + if (SHA384_DIGEST_LENGTH != res->l) { + plog(LLV_ERROR, LOCATION, NULL, +@@ -1861,8 +1858,7 @@ eay_hmacsha2_256_final(c) + + HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); + res->l = l; +- HMAC_cleanup((HMAC_CTX *)c); +- (void)racoon_free(c); ++ HMAC_CTX_free((HMAC_CTX *)c); + + if (SHA256_DIGEST_LENGTH != res->l) { + plog(LLV_ERROR, LOCATION, NULL, +@@ -1912,8 +1908,7 @@ eay_hmacsha1_final(c) + + HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); + res->l = l; +- HMAC_cleanup((HMAC_CTX *)c); +- (void)racoon_free(c); ++ HMAC_CTX_free((HMAC_CTX *)c); + + if (SHA_DIGEST_LENGTH != res->l) { + plog(LLV_ERROR, LOCATION, NULL, +@@ -1962,8 +1957,7 @@ eay_hmacmd5_final(c) + + HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); + res->l = l; +- HMAC_cleanup((HMAC_CTX *)c); +- (void)racoon_free(c); ++ HMAC_CTX_free((HMAC_CTX *)c); + + if (MD5_DIGEST_LENGTH != res->l) { + plog(LLV_ERROR, LOCATION, NULL, +@@ -2266,6 +2260,7 @@ eay_dh_generate(prime, g, publen, pub, priv) + u_int32_t g; + { + BIGNUM *p = NULL; ++ BIGNUM *BNg = NULL; + DH *dh = NULL; + int error = -1; + +@@ -2276,25 +2271,28 @@ eay_dh_generate(prime, g, publen, pub, priv) + + if ((dh = DH_new()) == NULL) + goto end; +- dh->p = p; +- p = NULL; /* p is now part of dh structure */ +- dh->g = NULL; +- if ((dh->g = BN_new()) == NULL) ++ if ((BNg = BN_new()) == NULL) + goto end; +- if (!BN_set_word(dh->g, g)) ++ if (!BN_set_word(BNg, g)) + goto end; ++ if (! DH_set0_pqg(dh, p, NULL, BNg)) ++ goto end; ++ BNg = NULL; ++ p = NULL; /* p is now part of dh structure */ + + if (publen != 0) +- dh->length = publen; ++ DH_set_length(dh, publen); + + /* generate public and private number */ + if (!DH_generate_key(dh)) + goto end; + + /* copy results to buffers */ +- if (eay_bn2v(pub, dh->pub_key) < 0) ++ BIGNUM *pub_key, *priv_key; ++ DH_get0_key(dh, (const BIGNUM**) &pub_key, (const BIGNUM**) &priv_key); ++ if (eay_bn2v(pub, pub_key) < 0) + goto end; +- if (eay_bn2v(priv, dh->priv_key) < 0) { ++ if (eay_bn2v(priv, priv_key) < 0) { + vfree(*pub); + goto end; + } +@@ -2306,6 +2304,8 @@ end: + DH_free(dh); + if (p != 0) + BN_free(p); ++ if (BNg != 0) ++ BN_free(BNg); + return(error); + } + +@@ -2319,6 +2319,10 @@ eay_dh_compute(prime, g, pub, priv, pub2, key) + int l; + unsigned char *v = NULL; + int error = -1; ++ BIGNUM *p = BN_new(); ++ BIGNUM *BNg = BN_new(); ++ BIGNUM *pub_key = BN_new(); ++ BIGNUM *priv_key = BN_new(); + + /* make public number to compute */ + if (eay_v2bn(&dh_pub, pub2) < 0) +@@ -2327,19 +2331,21 @@ eay_dh_compute(prime, g, pub, priv, pub2, key) + /* make DH structure */ + if ((dh = DH_new()) == NULL) + goto end; +- if (eay_v2bn(&dh->p, prime) < 0) ++ if (p == NULL || BNg == NULL || pub_key == NULL || priv_key == NULL) + goto end; +- if (eay_v2bn(&dh->pub_key, pub) < 0) ++ ++ if (eay_v2bn(&p, prime) < 0) + goto end; +- if (eay_v2bn(&dh->priv_key, priv) < 0) ++ if (eay_v2bn(&pub_key, pub) < 0) + goto end; +- dh->length = pub2->l * 8; +- +- dh->g = NULL; +- if ((dh->g = BN_new()) == NULL) ++ if (eay_v2bn(&priv_key, priv) < 0) + goto end; +- if (!BN_set_word(dh->g, g)) ++ if (!BN_set_word(BNg, g)) + goto end; ++ DH_set0_key(dh, pub_key, priv_key); ++ DH_set_length(dh, pub2->l * 8); ++ DH_set0_pqg(dh, p, NULL, BNg); ++ pub_key = priv_key = p = BNg = NULL; + + if ((v = racoon_calloc(prime->l, sizeof(u_char))) == NULL) + goto end; +@@ -2350,6 +2356,14 @@ eay_dh_compute(prime, g, pub, priv, pub2, key) + error = 0; + + end: ++ if (p != NULL) ++ BN_free(p); ++ if (BNg != NULL) ++ BN_free(BNg); ++ if (pub_key != NULL) ++ BN_free(pub_key); ++ if (priv_key != NULL) ++ BN_free(priv_key); + if (dh_pub != NULL) + BN_free(dh_pub); + if (dh != NULL) +@@ -2400,12 +2414,14 @@ eay_bn2v(var, bn) + void + eay_init() + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + OpenSSL_add_all_algorithms(); + ERR_load_crypto_strings(); + #ifdef HAVE_OPENSSL_ENGINE_H + ENGINE_load_builtin_engines(); + ENGINE_register_all_complete(); + #endif ++#endif + } + + vchar_t * +@@ -2504,8 +2520,7 @@ binbuf_pubkey2rsa(vchar_t *binbuf) + goto out; + } + +- rsa_pub->n = mod; +- rsa_pub->e = exp; ++ RSA_set0_key(rsa_pub, mod, exp, NULL); + + out: + return rsa_pub; +@@ -2582,5 +2597,5 @@ eay_random() + const char * + eay_version() + { +- return SSLeay_version(SSLEAY_VERSION); ++ return OpenSSL_version(OPENSSL_VERSION); + } +diff --git a/src/racoon/crypto_openssl.h b/src/racoon/crypto_openssl.h +index 66fac73..ee5b765 100644 +--- a/src/racoon/crypto_openssl.h ++++ b/src/racoon/crypto_openssl.h +@@ -124,7 +124,7 @@ extern vchar_t *eay_aes_decrypt __P((vchar_t *, vchar_t *, vchar_t *)); + extern int eay_aes_weakkey __P((vchar_t *)); + extern int eay_aes_keylen __P((int)); + +-#if defined(HAVE_OPENSSL_CAMELLIA_H) ++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) + /* Camellia */ + extern vchar_t *eay_camellia_encrypt __P((vchar_t *, vchar_t *, vchar_t *)); + extern vchar_t *eay_camellia_decrypt __P((vchar_t *, vchar_t *, vchar_t *)); +diff --git a/src/racoon/eaytest.c b/src/racoon/eaytest.c +index d609e4f..d2d20da 100644 +--- a/src/racoon/eaytest.c ++++ b/src/racoon/eaytest.c +@@ -62,6 +62,7 @@ + #include "dhgroup.h" + #include "crypto_openssl.h" + #include "gnuc.h" ++#include "openssl_compat.h" + + #include "package_version.h" + +@@ -103,7 +104,7 @@ rsa_verify_with_pubkey(src, sig, pubkey_txt) + printf ("PEM_read_PUBKEY(): %s\n", eay_strerror()); + return -1; + } +- error = eay_check_rsasign(src, sig, evp->pkey.rsa); ++ error = eay_check_rsasign(src, sig, EVP_PKEY_get0_RSA(evp)); + + return error; + } +@@ -698,7 +699,7 @@ ciphertest(ac, av) + eay_cast_encrypt, eay_cast_decrypt) < 0) + return -1; + +-#ifdef HAVE_OPENSSL_IDEA_H ++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA) + if (ciphertest_1 ("IDEA", + &data, 8, + &key, key.l, +@@ -715,7 +716,7 @@ ciphertest(ac, av) + eay_rc5_encrypt, eay_rc5_decrypt) < 0) + return -1; + #endif +-#if defined(HAVE_OPENSSL_CAMELLIA_H) ++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) + if (ciphertest_1 ("CAMELLIA", + &data, 16, + &key, key.l, +diff --git a/src/racoon/ipsec_doi.c b/src/racoon/ipsec_doi.c +index 08e4325..7b1604d 100644 +--- a/src/racoon/ipsec_doi.c ++++ b/src/racoon/ipsec_doi.c +@@ -715,7 +715,7 @@ out: + /* key length must not be specified on some algorithms */ + if (keylen) { + if (sa->enctype == OAKLEY_ATTR_ENC_ALG_DES +-#ifdef HAVE_OPENSSL_IDEA_H ++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA) + || sa->enctype == OAKLEY_ATTR_ENC_ALG_IDEA + #endif + || sa->enctype == OAKLEY_ATTR_ENC_ALG_3DES) { +diff --git a/src/racoon/openssl_compat.c b/src/racoon/openssl_compat.c +new file mode 100644 +index 0000000..864b5fb +--- /dev/null ++++ b/src/racoon/openssl_compat.c +@@ -0,0 +1,213 @@ ++/* ++ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. ++ * ++ * Licensed under the OpenSSL license (the "License"). You may not use ++ * this file except in compliance with the License. You can obtain a copy ++ * in the file LICENSE in the source distribution or at ++ * https://www.openssl.org/source/license.html ++ */ ++ ++#include "openssl_compat.h" ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ ++#include <string.h> ++ ++static void *OPENSSL_zalloc(size_t num) ++{ ++ void *ret = OPENSSL_malloc(num); ++ ++ if (ret != NULL) ++ memset(ret, 0, num); ++ return ret; ++} ++ ++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) ++{ ++ /* If the fields n and e in r are NULL, the corresponding input ++ * parameters MUST be non-NULL for n and e. d may be ++ * left NULL (in case only the public key is used). ++ */ ++ if ((r->n == NULL && n == NULL) ++ || (r->e == NULL && e == NULL)) ++ return 0; ++ ++ if (n != NULL) { ++ BN_free(r->n); ++ r->n = n; ++ } ++ if (e != NULL) { ++ BN_free(r->e); ++ r->e = e; ++ } ++ if (d != NULL) { ++ BN_free(r->d); ++ r->d = d; ++ } ++ ++ return 1; ++} ++ ++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q) ++{ ++ /* If the fields p and q in r are NULL, the corresponding input ++ * parameters MUST be non-NULL. ++ */ ++ if ((r->p == NULL && p == NULL) ++ || (r->q == NULL && q == NULL)) ++ return 0; ++ ++ if (p != NULL) { ++ BN_free(r->p); ++ r->p = p; ++ } ++ if (q != NULL) { ++ BN_free(r->q); ++ r->q = q; ++ } ++ ++ return 1; ++} ++ ++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp) ++{ ++ /* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input ++ * parameters MUST be non-NULL. ++ */ ++ if ((r->dmp1 == NULL && dmp1 == NULL) ++ || (r->dmq1 == NULL && dmq1 == NULL) ++ || (r->iqmp == NULL && iqmp == NULL)) ++ return 0; ++ ++ if (dmp1 != NULL) { ++ BN_free(r->dmp1); ++ r->dmp1 = dmp1; ++ } ++ if (dmq1 != NULL) { ++ BN_free(r->dmq1); ++ r->dmq1 = dmq1; ++ } ++ if (iqmp != NULL) { ++ BN_free(r->iqmp); ++ r->iqmp = iqmp; ++ } ++ ++ return 1; ++} ++ ++void RSA_get0_key(const RSA *r, ++ const BIGNUM **n, const BIGNUM **e, const BIGNUM **d) ++{ ++ if (n != NULL) ++ *n = r->n; ++ if (e != NULL) ++ *e = r->e; ++ if (d != NULL) ++ *d = r->d; ++} ++ ++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q) ++{ ++ if (p != NULL) ++ *p = r->p; ++ if (q != NULL) ++ *q = r->q; ++} ++ ++void RSA_get0_crt_params(const RSA *r, ++ const BIGNUM **dmp1, const BIGNUM **dmq1, ++ const BIGNUM **iqmp) ++{ ++ if (dmp1 != NULL) ++ *dmp1 = r->dmp1; ++ if (dmq1 != NULL) ++ *dmq1 = r->dmq1; ++ if (iqmp != NULL) ++ *iqmp = r->iqmp; ++} ++ ++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g) ++{ ++ /* If the fields p and g in d are NULL, the corresponding input ++ * parameters MUST be non-NULL. q may remain NULL. ++ */ ++ if ((dh->p == NULL && p == NULL) ++ || (dh->g == NULL && g == NULL)) ++ return 0; ++ ++ if (p != NULL) { ++ BN_free(dh->p); ++ dh->p = p; ++ } ++ if (q != NULL) { ++ BN_free(dh->q); ++ dh->q = q; ++ } ++ if (g != NULL) { ++ BN_free(dh->g); ++ dh->g = g; ++ } ++ ++ if (q != NULL) { ++ dh->length = BN_num_bits(q); ++ } ++ ++ return 1; ++} ++ ++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key) ++{ ++ if (pub_key != NULL) ++ *pub_key = dh->pub_key; ++ if (priv_key != NULL) ++ *priv_key = dh->priv_key; ++} ++ ++int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key) ++{ ++ /* If the field pub_key in dh is NULL, the corresponding input ++ * parameters MUST be non-NULL. The priv_key field may ++ * be left NULL. ++ */ ++ if (dh->pub_key == NULL && pub_key == NULL) ++ return 0; ++ ++ if (pub_key != NULL) { ++ BN_free(dh->pub_key); ++ dh->pub_key = pub_key; ++ } ++ if (priv_key != NULL) { ++ BN_free(dh->priv_key); ++ dh->priv_key = priv_key; ++ } ++ ++ return 1; ++} ++ ++int DH_set_length(DH *dh, long length) ++{ ++ dh->length = length; ++ return 1; ++} ++ ++HMAC_CTX *HMAC_CTX_new(void) ++{ ++ return OPENSSL_zalloc(sizeof(HMAC_CTX)); ++} ++ ++void HMAC_CTX_free(HMAC_CTX *ctx) ++{ ++ HMAC_CTX_cleanup(ctx); ++ OPENSSL_free(ctx); ++} ++ ++RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey) ++{ ++ if (pkey->type != EVP_PKEY_RSA) { ++ return NULL; ++ } ++ return pkey->pkey.rsa; ++} ++ ++ ++#endif /* OPENSSL_VERSION_NUMBER */ +diff --git a/src/racoon/openssl_compat.h b/src/racoon/openssl_compat.h +new file mode 100644 +index 0000000..9e152c2 +--- /dev/null ++++ b/src/racoon/openssl_compat.h +@@ -0,0 +1,45 @@ ++#ifndef OPENSSL_COMPAT_H ++#define OPENSSL_COMPAT_H ++ ++#include <openssl/opensslv.h> ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ ++#include <openssl/rsa.h> ++#include <openssl/dh.h> ++#include <openssl/evp.h> ++#include <openssl/hmac.h> ++ ++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); ++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); ++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); ++void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); ++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); ++void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp); ++ ++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); ++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key); ++int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); ++int DH_set_length(DH *dh, long length); ++ ++HMAC_CTX *HMAC_CTX_new(void); ++void HMAC_CTX_free(HMAC_CTX* ctx); ++ ++RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); ++ ++#define ASN1_STRING_length(s) s->length ++#define ASN1_STRING_get0_data(s) s->data ++ ++#define X509_get_subject_name(x) x->cert_info->subject ++#define X509_get_issuer_name(x) x->cert_info->issuer ++#define X509_NAME_ENTRY_get_data(n) n->value ++#define X509_NAME_ENTRY_get_object(n) n->object ++#define X509_STORE_CTX_get_current_cert(ctx) ctx->current_cert ++#define X509_STORE_CTX_get_error(ctx) ctx->error ++#define X509_STORE_CTX_get_error_depth(ctx) ctx->error_depth ++ ++#define OPENSSL_VERSION SSLEAY_VERSION ++#define OpenSSL_version SSLeay_version ++ ++#endif /* OPENSSL_VERSION_NUMBER */ ++ ++#endif /* OPENSSL_COMPAT_H */ +diff --git a/src/racoon/plainrsa-gen.c b/src/racoon/plainrsa-gen.c +index cad1861..b949b08 100644 +--- a/src/racoon/plainrsa-gen.c ++++ b/src/racoon/plainrsa-gen.c +@@ -60,6 +60,7 @@ + #include "vmbuf.h" + #include "plog.h" + #include "crypto_openssl.h" ++#include "openssl_compat.h" + + #include "package_version.h" + +@@ -90,12 +91,14 @@ mix_b64_pubkey(const RSA *key) + char *binbuf; + long binlen, ret; + vchar_t *res; +- +- binlen = 1 + BN_num_bytes(key->e) + BN_num_bytes(key->n); ++ const BIGNUM *e, *n; ++ ++ RSA_get0_key(key, &n, &e, NULL); ++ binlen = 1 + BN_num_bytes(e) + BN_num_bytes(n); + binbuf = malloc(binlen); + memset(binbuf, 0, binlen); +- binbuf[0] = BN_bn2bin(key->e, (unsigned char *) &binbuf[1]); +- ret = BN_bn2bin(key->n, (unsigned char *) (&binbuf[binbuf[0] + 1])); ++ binbuf[0] = BN_bn2bin(e, (unsigned char *) &binbuf[1]); ++ ret = BN_bn2bin(n, (unsigned char *) (&binbuf[binbuf[0] + 1])); + if (1 + binbuf[0] + ret != binlen) { + plog(LLV_ERROR, LOCATION, NULL, + "Pubkey generation failed. This is really strange...\n"); +@@ -131,16 +134,20 @@ print_rsa_key(FILE *fp, const RSA *key) + + fprintf(fp, "# : PUB 0s%s\n", pubkey64->v); + fprintf(fp, ": RSA\t{\n"); +- fprintf(fp, "\t# RSA %d bits\n", BN_num_bits(key->n)); ++ const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp; ++ RSA_get0_key(key, &n, &e, &d); ++ RSA_get0_factors(key, &p, &q); ++ RSA_get0_crt_params(key, &dmp1, &dmq1, &iqmp); ++ fprintf(fp, "\t# RSA %d bits\n", BN_num_bits(n)); + fprintf(fp, "\t# pubkey=0s%s\n", pubkey64->v); +- fprintf(fp, "\tModulus: 0x%s\n", lowercase(BN_bn2hex(key->n))); +- fprintf(fp, "\tPublicExponent: 0x%s\n", lowercase(BN_bn2hex(key->e))); +- fprintf(fp, "\tPrivateExponent: 0x%s\n", lowercase(BN_bn2hex(key->d))); +- fprintf(fp, "\tPrime1: 0x%s\n", lowercase(BN_bn2hex(key->p))); +- fprintf(fp, "\tPrime2: 0x%s\n", lowercase(BN_bn2hex(key->q))); +- fprintf(fp, "\tExponent1: 0x%s\n", lowercase(BN_bn2hex(key->dmp1))); +- fprintf(fp, "\tExponent2: 0x%s\n", lowercase(BN_bn2hex(key->dmq1))); +- fprintf(fp, "\tCoefficient: 0x%s\n", lowercase(BN_bn2hex(key->iqmp))); ++ fprintf(fp, "\tModulus: 0x%s\n", lowercase(BN_bn2hex(n))); ++ fprintf(fp, "\tPublicExponent: 0x%s\n", lowercase(BN_bn2hex(e))); ++ fprintf(fp, "\tPrivateExponent: 0x%s\n", lowercase(BN_bn2hex(d))); ++ fprintf(fp, "\tPrime1: 0x%s\n", lowercase(BN_bn2hex(p))); ++ fprintf(fp, "\tPrime2: 0x%s\n", lowercase(BN_bn2hex(q))); ++ fprintf(fp, "\tExponent1: 0x%s\n", lowercase(BN_bn2hex(dmp1))); ++ fprintf(fp, "\tExponent2: 0x%s\n", lowercase(BN_bn2hex(dmq1))); ++ fprintf(fp, "\tCoefficient: 0x%s\n", lowercase(BN_bn2hex(iqmp))); + fprintf(fp, " }\n"); + + vfree(pubkey64); +@@ -203,11 +210,13 @@ int + gen_rsa_key(FILE *fp, size_t bits, unsigned long exp) + { + int ret; +- RSA *key; ++ RSA *key = RSA_new(); ++ BIGNUM *e = BN_new(); + +- key = RSA_generate_key(bits, exp, NULL, NULL); +- if (!key) { ++ BN_set_word(e, exp); ++ if (! RSA_generate_key_ex(key, bits, e, NULL)) { + fprintf(stderr, "RSA_generate_key(): %s\n", eay_strerror()); ++ RSA_free(key); + return -1; + } + +diff --git a/src/racoon/prsa_par.y b/src/racoon/prsa_par.y +index 1987e4d..27ce4c6 100644 +--- a/src/racoon/prsa_par.y ++++ b/src/racoon/prsa_par.y +@@ -68,6 +68,7 @@ + #include "isakmp_var.h" + #include "handler.h" + #include "crypto_openssl.h" ++#include "openssl_compat.h" + #include "sockmisc.h" + #include "rsalist.h" + +@@ -85,7 +86,18 @@ char *prsa_cur_fname = NULL; + struct genlist *prsa_cur_list = NULL; + enum rsa_key_type prsa_cur_type = RSA_TYPE_ANY; + +-static RSA *rsa_cur; ++struct my_rsa_st { ++ BIGNUM *n; ++ BIGNUM *e; ++ BIGNUM *d; ++ BIGNUM *p; ++ BIGNUM *q; ++ BIGNUM *dmp1; ++ BIGNUM *dmq1; ++ BIGNUM *iqmp; ++}; ++ ++static struct my_rsa_st *rsa_cur; + + void + prsaerror(const char *s, ...) +@@ -201,8 +213,12 @@ rsa_statement: + rsa_cur->iqmp = NULL; + } + } +- $$ = rsa_cur; +- rsa_cur = RSA_new(); ++ RSA * rsa_tmp = RSA_new(); ++ RSA_set0_key(rsa_tmp, rsa_cur->n, rsa_cur->e, rsa_cur->d); ++ RSA_set0_factors(rsa_tmp, rsa_cur->p, rsa_cur->q); ++ RSA_set0_crt_params(rsa_tmp, rsa_cur->dmp1, rsa_cur->dmq1, rsa_cur->iqmp); ++ $$ = rsa_tmp; ++ memset(rsa_cur, 0, sizeof(struct my_rsa_st)); + } + | TAG_PUB BASE64 + { +@@ -351,10 +367,12 @@ prsa_parse_file(struct genlist *list, char *fname, enum rsa_key_type type) + prsa_cur_fname = fname; + prsa_cur_list = list; + prsa_cur_type = type; +- rsa_cur = RSA_new(); ++ rsa_cur = malloc(sizeof(struct my_rsa_st)); ++ memset(rsa_cur, 0, sizeof(struct my_rsa_st)); + ret = prsaparse(); + if (rsa_cur) { +- RSA_free(rsa_cur); ++ memset(rsa_cur, 0, sizeof(struct my_rsa_st)); ++ free(rsa_cur); + rsa_cur = NULL; + } + fclose (fp); +diff --git a/src/racoon/rsalist.c b/src/racoon/rsalist.c +index f152c82..96e8363 100644 +--- a/src/racoon/rsalist.c ++++ b/src/racoon/rsalist.c +@@ -52,6 +52,7 @@ + #include "genlist.h" + #include "remoteconf.h" + #include "crypto_openssl.h" ++#include "openssl_compat.h" + + #ifndef LIST_FIRST + #define LIST_FIRST(head) ((head)->lh_first) +@@ -98,7 +99,9 @@ rsa_key_dup(struct rsa_key *key) + return NULL; + + if (key->rsa) { +- new->rsa = key->rsa->d != NULL ? RSAPrivateKey_dup(key->rsa) : RSAPublicKey_dup(key->rsa); ++ const BIGNUM *d; ++ RSA_get0_key(key->rsa, NULL, NULL, &d); ++ new->rsa = (d != NULL ? RSAPrivateKey_dup(key->rsa) : RSAPublicKey_dup(key->rsa)); + if (new->rsa == NULL) + goto dup_error; + } +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb index 5cbeb15ad..a6d473b59 100644 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb +++ b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb @@ -25,6 +25,8 @@ SRC_URI = "http://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${P file://0001-Fix-header-issues-found-with-musl-libc.patch \ file://0002-cfparse-clear-memory-equal-to-size-of-array.patch \ file://fix-CVE-2016-10396.patch \ + file://0001-Disable-gcc8-specific-warnings.patch \ + file://0001-ipsec-tools-add-openssl-1.1-support.patch \ " SRC_URI[md5sum] = "d53ec14a0a3ece64e09e5e34b3350b41" SRC_URI[sha256sum] = "8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d" diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch index 7c3dfe4a8..d7b0267d5 100644 --- a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch +++ b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch @@ -1,18 +1,22 @@ -From 58292175115bae7a4c3600d3022e59ea57213025 Mon Sep 17 00:00:00 2001 -From: Jianchuan Wang <jianchuan.wang@windriver.com> -Date: Mon, 12 Jan 2015 15:53:23 +0800 +From 801224257015788d3aff026bf2ae1cd8531d4fcc Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Wed, 25 Jul 2018 13:12:04 +0800 Subject: [PATCH] Modify the Makefile for cross compile. Upstream-Status: Inappropriate [embedded specific] Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com> + +update to version 1.29 + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - Makefile | 23 ++++++----------------- + Makefile | 9 ++++----- libipvs/Makefile | 3 +-- - 2 files changed, 7 insertions(+), 19 deletions(-) + 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile -index e4e03cc..461c021 100644 +index 91a2991..906086d 100644 --- a/Makefile +++ b/Makefile @@ -35,10 +35,9 @@ ARCH = $(shell uname -m) @@ -23,57 +27,29 @@ index e4e03cc..461c021 100644 INCLUDE = SBIN = $(BUILD_ROOT)/sbin -MANDIR = usr/man -+MANDIR = usr/share/man ++MANDIR = usr/share/man MAN = $(BUILD_ROOT)/$(MANDIR)/man8 INIT = $(BUILD_ROOT)/etc/rc.d/init.d MKDIR = mkdir -@@ -62,17 +61,7 @@ RPMBUILD = $(shell \ - echo "/bin/rpm"; \ - fi ) - --ifeq (,$(FORCE_GETOPT)) --LIB_SEARCH = /lib64 /usr/lib64 /usr/local/lib64 /lib /usr/lib /usr/local/lib --POPT_LIB = $(shell for i in $(LIB_SEARCH); do \ -- if [ -f $$i/libpopt.a ]; then \ -- if nm $$i/libpopt.a | fgrep -q poptGetContext; then \ -- echo "-lpopt"; \ -- break; \ -- fi; \ -- fi; \ --done) --endif -+POPT_LIB = -lpopt - - ifneq (,$(POPT_LIB)) - POPT_DEFINE = -DHAVE_POPT -@@ -81,7 +70,7 @@ endif - OBJS = ipvsadm.o config_stream.o dynamic_array.o - LIBS = $(POPT_LIB) - ifneq (0,$(HAVE_NL)) --LIBS += -lnl -+LIBS += -lnl-3 -lnl-genl-3 - endif - DEFINES = -DVERSION=\"$(VERSION)\" -DSCHEDULERS=\"$(SCHEDULERS)\" \ - -DPE_LIST=\"$(PE_LIST)\" $(POPT_DEFINE) -@@ -91,13 +80,13 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \ +@@ -81,13 +80,13 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \ .PHONY = all clean install dist distclean rpm rpms -all: libs ipvsadm -+all: ipvsadm ++all: ipvsadm libs: make -C libipvs -ipvsadm: $(OBJS) $(STATIC_LIBS) - $(CC) $(CFLAGS) -o $@ $^ $(LIBS) -+ipvsadm: $(OBJS) libs ++ipvsadm: $(OBJS) libs + $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS) install: all if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi diff --git a/libipvs/Makefile b/libipvs/Makefile -index a527a7f..b7300ec 100644 +index f845c8b..dafab30 100644 --- a/libipvs/Makefile +++ b/libipvs/Makefile @@ -1,6 +1,5 @@ @@ -83,7 +59,7 @@ index a527a7f..b7300ec 100644 CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC ifneq (0,$(HAVE_NL)) CFLAGS += -DLIBIPVS_USE_NL -@@ -18,7 +17,7 @@ SHARED_LIB = libipvs.so +@@ -30,7 +29,7 @@ SHARED_LIB = libipvs.so all: $(STATIC_LIB) $(SHARED_LIB) $(STATIC_LIB): libipvs.o ip_vs_nl_policy.o @@ -93,5 +69,5 @@ index a527a7f..b7300ec 100644 $(SHARED_LIB): libipvs.o ip_vs_nl_policy.o $(CC) -shared -Wl,-soname,$@ -o $@ $^ -- -1.9.1 +2.7.4 diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch deleted file mode 100644 index 7896d6d1e..000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 2686213259b15df9cf1d969c5a14d62f14cfbaae Mon Sep 17 00:00:00 2001 -From: Jianchuan Wang <jianchuan.wang@windriver.com> -Date: Thu, 8 Jan 2015 17:37:11 +0800 -Subject: [PATCH 2/2] Replace nl_handle to nl_sock. - -The nl_handle was replace with nl_sock in the libnl-3. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com> ---- - libipvs/libipvs.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/libipvs/libipvs.c b/libipvs/libipvs.c -index a157e18..21a9bfa 100644 ---- a/libipvs/libipvs.c -+++ b/libipvs/libipvs.c -@@ -32,7 +32,7 @@ static void* ipvs_func = NULL; - struct ip_vs_getinfo ipvs_info; - - #ifdef LIBIPVS_USE_NL --static struct nl_handle *sock = NULL; -+static struct nl_sock *sock = NULL; - static int family, try_nl = 1; - #endif - -@@ -73,7 +73,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg - { - int err = EINVAL; - -- sock = nl_handle_alloc(); -+ sock = nl_socket_alloc(); - if (!sock) { - nlmsg_free(msg); - return -1; -@@ -88,7 +88,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg - - /* To test connections and set the family */ - if (msg == NULL) { -- nl_handle_destroy(sock); -+ nl_socket_free(sock); - sock = NULL; - return 0; - } -@@ -104,12 +104,12 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg - - nlmsg_free(msg); - -- nl_handle_destroy(sock); -+ nl_socket_free(sock); - - return 0; - - fail_genl: -- nl_handle_destroy(sock); -+ nl_socket_free(sock); - sock = NULL; - nlmsg_free(msg); - errno = err; --- -1.8.3.1 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch index 1bf1eed4c..a2c5235c3 100644 --- a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch +++ b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch @@ -1,19 +1,33 @@ -Add LDFLAGS variable to Makefile, make sure the extra linker flags can be passed. +From 8aff1e965ec17262f3a5b376f7eb3e053d81905c Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 18:18:05 +0800 +Subject: [PATCH] Add LDFLAGS variable to Makefile, make sure the extra linker + flags can be passed. Upstream-Status: Pending Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +Update to version 1.29 + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + diff --git a/Makefile b/Makefile -index 461c021..8bc9cde 100644 +index f29bbae..81beb5a 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ libs: make -C libipvs - ipvsadm: $(OBJS) libs + ipvsadm: $(OBJS) libs - $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS) install: all if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.29.bb index b35a9f4a4..4f3c16dc3 100644 --- a/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb +++ b/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.29.bb @@ -12,19 +12,20 @@ locality-based least-connection, locality-based least-connection with replicati destination-hashing, and source-hashing)." SECTION = "net" LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://README;beginline=40;endline=56;md5=a54cba37b64924aa5008881607942892" +LIC_FILES_CHKSUM = "file://README;beginline=40;endline=56;md5=b4e40069f15598d0e3fe2aa177e5ec77" DEPENDS += "libnl popt" -SRC_URI = "http://www.linuxvirtualserver.org/software/kernel-2.6/${BP}.tar.gz \ +SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/utils/kernel/ipvsadm/${BP}.tar.gz \ file://0001-Modify-the-Makefile-for-cross-compile.patch \ - file://0002-Replace-nl_handle-to-nl_sock.patch \ file://0003-ipvsadm-remove-dependency-on-bash.patch \ file://makefile-add-ldflags.patch \ " -SRC_URI[md5sum] = "eac3ba3f62cd4dea2da353aeddd353a8" -SRC_URI[sha256sum] = "6d6c46fecb1c532a892616b4445c73b71730e8790d5630f60269fd9cbee0eb2d" +SRC_URI[md5sum] = "88b35030b4766b3e44ad15aacdef65c4" +SRC_URI[sha256sum] = "297f5cd459c3eef81ed0ca32e53bf320ed6b132fe7ed6ea5e44aa6b1fbd2a7de" + +UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/ipvsadm" do_compile() { oe_runmake \ @@ -33,5 +34,8 @@ do_compile() { } do_install() { + sed -i -e "s;SBIN\t\t= \$(BUILD_ROOT)/sbin;SBIN\t\t= \$(BUILD_ROOT)/$base_sbindir;" ${S}/Makefile oe_runmake 'BUILD_ROOT=${D}' install } + +inherit pkgconfig diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch new file mode 100644 index 000000000..5818d57f7 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch @@ -0,0 +1,87 @@ +From bc4ff7e37ce120c257e52a81fe3475499dfd2573 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 10:10:24 +0800 +Subject: [PATCH] libldb: fix config error + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + wscript | 58 +++++++++++++++++++++++++++++----------------------------- + 1 file changed, 29 insertions(+), 29 deletions(-) + +diff --git a/wscript b/wscript +index b0af7b6..8ad9f96 100644 +--- a/wscript ++++ b/wscript +@@ -115,40 +115,40 @@ def configure(conf): + onlyif='talloc tdb tevent pyldb-util', + implied_deps='replace talloc tdb tevent'): + conf.define('USING_SYSTEM_LDB', 1) ++ if not Options.options.without_ldb_lmdb: ++ if not conf.CHECK_CODE('return !(sizeof(size_t) >= 8)', ++ "HAVE_64_BIT_SIZE_T_FOR_LMDB", ++ execute=True, ++ msg='Checking for a 64-bit host to ' ++ 'support lmdb'): ++ Logs.warn("--without-ldb-lmdb implied as this " ++ "host is not 64-bit") ++ ++ if not conf.env.standalone_ldb and \ ++ not Options.options.without_ad_dc and \ ++ conf.CONFIG_GET('ENABLE_SELFTEST'): ++ Logs.warn("NOTE: Some AD DC parts of selftest will fail") + +- if not conf.CHECK_CODE('return !(sizeof(size_t) >= 8)', +- "HAVE_64_BIT_SIZE_T_FOR_LMDB", +- execute=True, +- msg='Checking for a 64-bit host to ' +- 'support lmdb'): +- Logs.warn("--without-ldb-lmdb implied as this " +- "host is not 64-bit") +- +- if not conf.env.standalone_ldb and \ +- not Options.options.without_ad_dc and \ +- conf.CONFIG_GET('ENABLE_SELFTEST'): +- Logs.warn("NOTE: Some AD DC parts of selftest will fail") +- +- conf.env.REQUIRE_LMDB = False +- else: +- if conf.env.standalone_ldb: +- if Options.options.without_ldb_lmdb: +- conf.env.REQUIRE_LMDB = False +- else: +- conf.env.REQUIRE_LMDB = True +- elif Options.options.without_ad_dc: + conf.env.REQUIRE_LMDB = False + else: +- if Options.options.without_ldb_lmdb: +- if not Options.options.without_ad_dc and \ +- conf.CONFIG_GET('ENABLE_SELFTEST'): +- raise Utils.WafError('--without-ldb-lmdb conflicts ' +- 'with --enable-selftest while ' +- 'building the AD DC') +- ++ if conf.env.standalone_ldb: ++ if Options.options.without_ldb_lmdb: ++ conf.env.REQUIRE_LMDB = False ++ else: ++ conf.env.REQUIRE_LMDB = True ++ elif Options.options.without_ad_dc: + conf.env.REQUIRE_LMDB = False + else: +- conf.env.REQUIRE_LMDB = True ++ if Options.options.without_ldb_lmdb: ++ if not Options.options.without_ad_dc and \ ++ conf.CONFIG_GET('ENABLE_SELFTEST'): ++ raise Utils.WafError('--without-ldb-lmdb conflicts ' ++ 'with --enable-selftest while ' ++ 'building the AD DC') ++ ++ conf.env.REQUIRE_LMDB = False ++ else: ++ conf.env.REQUIRE_LMDB = True + + + if conf.CONFIG_SET('USING_SYSTEM_LDB'): +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch index 8ab094fa7..b30afeee2 100644 --- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch +++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch @@ -1,6 +1,16 @@ ---- a/wscript 2015-11-18 12:43:33.000000000 +0100 -+++ b/wscript 2015-11-18 12:46:25.000000000 +0100 -@@ -58,9 +58,7 @@ +From 63570b98ef63c91d8508478fcbe6b89c90c8398f Mon Sep 17 00:00:00 2001 +From: Jens Rehsack <rehsack@gmail.com> +Date: Thu, 19 Nov 2015 20:45:56 +0100 + +--- + wscript | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/wscript b/wscript +index e7c05d2..1633593 100644 +--- a/wscript ++++ b/wscript +@@ -161,9 +161,7 @@ def configure(conf): if conf.env.standalone_ldb: conf.CHECK_XSLTPROC_MANPAGES() diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch index fdd312c0a..ee4936a5a 100755..100644 --- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch +++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch @@ -1,12 +1,21 @@ +From f4cda3a71311e4496b725bc5f46af93413ec7a1c Mon Sep 17 00:00:00 2001 +From: Bian Naimeng <biannm@cn.fujitsu.com> +Date: Fri, 17 Jul 2015 11:58:49 +0800 +Subject: [PATCH] libldb: add new recipe + Some modules such as dynamic library maybe cann't be imported while cross compile, we just check whether does the module exist. Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> -Index: ldb-1.1.26/buildtools/wafsamba/samba_bundled.py -=================================================================== ---- ldb-1.1.26.orig/buildtools/wafsamba/samba_bundled.py -+++ ldb-1.1.26/buildtools/wafsamba/samba_bundled.py +--- + buildtools/wafsamba/samba_bundled.py | 32 ++++++++++++++++++++++++-------- + 1 file changed, 24 insertions(+), 8 deletions(-) + +diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py +index 253d604..398cc6a 100644 +--- a/buildtools/wafsamba/samba_bundled.py ++++ b/buildtools/wafsamba/samba_bundled.py @@ -2,6 +2,7 @@ import sys @@ -15,7 +24,7 @@ Index: ldb-1.1.26/buildtools/wafsamba/samba_bundled.py from Configure import conf from samba_utils import TO_LIST -@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li +@@ -249,17 +250,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'): # versions minversion = minimum_library_version(conf, libname, minversion) diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch new file mode 100644 index 000000000..444fa3ff1 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch @@ -0,0 +1,45 @@ +From 5bd7b5d04435bd593349825973ce32290f5f604d Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Wed, 25 Jul 2018 09:55:25 +0800 +Subject: [PATCH] libldb: fix musl libc conflicting types error + +/third_party/cmocka/cmocka.h:126:28: error: conflicting types for 'uintptr_t' + typedef unsigned int uintptr_t; + ^~~~~~~~~ +use __DEFINED_uintptr_t in alltypes.h to check if uintptr already defined + +Upstream-Status: Pending + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + third_party/cmocka/cmocka.h | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/third_party/cmocka/cmocka.h b/third_party/cmocka/cmocka.h +index 4fd82a9..5443a08 100644 +--- a/third_party/cmocka/cmocka.h ++++ b/third_party/cmocka/cmocka.h +@@ -110,7 +110,7 @@ typedef uintmax_t LargestIntegralType; + ((LargestIntegralType)(value)) + + /* Smallest integral type capable of holding a pointer. */ +-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) ++#if !defined(__DEFINED_uintptr_t) + # if defined(_WIN32) + /* WIN32 is an ILP32 platform */ + typedef unsigned int uintptr_t; +@@ -134,9 +134,8 @@ typedef uintmax_t LargestIntegralType; + # endif /* __WORDSIZE */ + # endif /* _WIN32 */ + +-# define _UINTPTR_T +-# define _UINTPTR_T_DEFINED +-#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */ ++# define __DEFINED_uintptr_t ++#endif /* !defined(__DEFINED_uintptr_t) + + /* Perform an unsigned cast to uintptr_t. */ + #define cast_to_pointer_integral_type(value) \ +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-unkown-type-error.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-unkown-type-error.patch new file mode 100644 index 000000000..c0e7e8907 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-unkown-type-error.patch @@ -0,0 +1,31 @@ +From d90534469c5c43bf2a97e5698a5ddb4b7471f92a Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 10:53:16 +0800 +Subject: [PATCH] libldb: fix musl libc unkoown type error + +tevent.h:1440:8: error: unknown type name 'pid_t'; did you mean 'div_t'? + pid_t *pid, + ^~~~~ + div_t + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + lib/tevent/tevent.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h +index aa6fe0d..2572696 100644 +--- a/lib/tevent/tevent.h ++++ b/lib/tevent/tevent.h +@@ -32,6 +32,8 @@ + #include <talloc.h> + #include <sys/time.h> + #include <stdbool.h> ++#include <sys/stat.h> ++#include <sys/types.h> + + struct tevent_context; + struct tevent_ops; +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch index ffe253b63..357afbea5 100644 --- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch +++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch @@ -1,7 +1,7 @@ -From a4da3ab4d76013aaa731d43d52ccca1ebd37c395 Mon Sep 17 00:00:00 2001 -From: Jackie Huang <jackie.huang@windriver.com> -Date: Wed, 21 Sep 2016 10:06:39 +0800 -Subject: [PATCH 1/1] ldb: Add configure options for packages +From ffffd29bc6303d60b3d77048fbbf6776f6fbbe01 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Thu, 19 Jul 2018 16:40:31 +0800 +Subject: [PATCH] ldb: Add configure options for packages Add configure options for the following packages: - acl @@ -14,30 +14,22 @@ Add configure options for the following packages: Upstream-Status: Inappropriate [oe deterministic build specific] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> + +Update to version 1.4.1, and fix one configure error + +Cross answers file cross-answers-i586.txt is incomplete with +"Checking for a 64-bit host to support lmdb: UNKNOWN" + +we don't support lmdb, so only check when lmdb is support + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - lib/replace/system/wscript_configure | 6 ++- - lib/replace/wscript | 94 +++++++++++++++++++++++++++--------- - wscript | 7 +++ - 3 files changed, 83 insertions(+), 24 deletions(-) + lib/replace/wscript | 94 ++++++++++++++++++++++++++++++++++++++++------------- + wscript | 6 ++++ + 2 files changed, 77 insertions(+), 23 deletions(-) -diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure -index 2035474..10f9ae7 100644 ---- a/lib/replace/system/wscript_configure -+++ b/lib/replace/system/wscript_configure -@@ -1,6 +1,10 @@ - #!/usr/bin/env python - --conf.CHECK_HEADERS('sys/capability.h') -+import Options -+ -+if Options.options.enable_libcap: -+ conf.CHECK_HEADERS('sys/capability.h') -+ - conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r') - - # solaris varients of getXXent_r diff --git a/lib/replace/wscript b/lib/replace/wscript -index 2f94d49..68b2d3a 100644 +index fd00a42..434192e 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -23,6 +23,41 @@ def set_options(opt): @@ -113,9 +105,9 @@ index 2f94d49..68b2d3a 100644 conf.CHECK_HEADERS('port.h') conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') -@@ -73,7 +121,9 @@ def configure(conf): - - conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') +@@ -108,7 +156,9 @@ def configure(conf): + conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h') + conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h') - conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') + if Options.options.enable_valgrind: @@ -124,7 +116,7 @@ index 2f94d49..68b2d3a 100644 conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') -@@ -266,22 +316,20 @@ def configure(conf): +@@ -340,22 +390,20 @@ def configure(conf): conf.CHECK_FUNCS('prctl dirname basename') @@ -161,7 +153,7 @@ index 2f94d49..68b2d3a 100644 conf.CHECK_CODE(''' struct ucred cred; -@@ -632,7 +680,7 @@ removeea setea +@@ -699,7 +747,7 @@ def configure(conf): # look for a method of finding the list of network interfaces for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']: bsd_for_strlcpy = '' @@ -171,12 +163,12 @@ index 2f94d49..68b2d3a 100644 if conf.CHECK_CODE(''' #define %s 1 diff --git a/wscript b/wscript -index 8ae5be3..a178cc4 100644 +index ad91bc6..2d20fee 100644 --- a/wscript +++ b/wscript -@@ -31,6 +31,13 @@ def set_options(opt): - opt.RECURSE('lib/replace') - opt.tool_options('python') # options for disabling pyc or pyo compilation +@@ -36,6 +36,12 @@ def set_options(opt): + help='disable new LMDB backend for LDB', + action='store_true', dest='without_ldb_lmdb', default=False) + opt.add_option('--with-valgrind', + help=("enable use of valgrind"), @@ -184,10 +176,9 @@ index 8ae5be3..a178cc4 100644 + opt.add_option('--without-valgrind', + help=("disable use of valgrind"), + action="store_false", dest='enable_valgrind', default=False) -+ + def configure(conf): conf.RECURSE('lib/tdb') - conf.RECURSE('lib/tevent') -- -2.16.2 +2.7.4 diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.3.1.bb b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb index 7e14cde35..3c7e5455e 100644 --- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.3.1.bb +++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb @@ -4,11 +4,14 @@ SECTION = "libs" LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+" DEPENDS += "libtdb libtalloc libtevent popt" -RDEPENDS_pyldb += "python" +RDEPENDS_pyldb += "python samba" SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \ file://do-not-import-target-module-while-cross-compile.patch \ - file://options-1.3.1.patch \ + file://options-1.4.1.patch \ + file://0001-libldb-fix-config-error.patch \ + file://libldb-fix-musl-libc-unkown-type-error.patch \ + file://libldb-fix-musl-libc-conflict-type-error.patch \ " PACKAGECONFIG ??= "\ @@ -29,10 +32,11 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" -SRC_URI[md5sum] = "e5233f202bca27f6ce8474fb8ae65983" -SRC_URI[sha256sum] = "b19f2c9f55ae0f46aa5ebaea0bf1a47ec1ac135e1d78af0f6318cf50bf62cbd2" +SRC_URI[md5sum] = "159a1b1a56dcccf410d1bba911be6076" +SRC_URI[sha256sum] = "2df13aa25b376b314ce24182c37691959019523de3cc5356c40c1a333b0890a2" -inherit waf-samba +inherit waf-samba distro_features_check +REQUIRED_DISTRO_FEATURES = "pam" S = "${WORKDIR}/ldb-${PV}" @@ -43,6 +47,7 @@ EXTRA_OECONF += "--disable-rpath \ --with-modulesdir=${libdir}/ldb/modules \ --with-privatelibdir=${libdir}/ldb \ --with-libiconv=${STAGING_DIR_HOST}${prefix}\ + --without-ldb-lmdb \ " PACKAGES =+ "pyldb pyldb-dbg pyldb-dev" diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch index a3ee9ccd9..db3ddce2c 100644 --- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch +++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch @@ -1,20 +1,20 @@ --- a/lib/replace/wscript 2015-11-13 16:04:04.000000000 +0100 +++ b/lib/replace/wscript 2015-11-13 16:23:20.000000000 +0100 -@@ -636,8 +636,6 @@ +@@ -837,8 +837,6 @@ def build(bld): if not bld.CONFIG_SET('HAVE_INET_ATON'): REPLACE_SOURCE += ' inet_aton.c' if not bld.CONFIG_SET('HAVE_INET_NTOP'): REPLACE_SOURCE += ' inet_ntop.c' if not bld.CONFIG_SET('HAVE_INET_PTON'): REPLACE_SOURCE += ' inet_pton.c' - if not bld.CONFIG_SET('HAVE_GETXATTR') or bld.CONFIG_SET('XATTR_ADDITIONAL_OPTIONS'): - REPLACE_SOURCE += ' xattr.c' - bld.SAMBA_LIBRARY('replace', - source=REPLACE_SOURCE, -@@ -648,7 +646,7 @@ + if not bld.CONFIG_SET('HAVE_CLOSEFROM'): + REPLACE_SOURCE += ' closefrom.c' +@@ -852,7 +850,7 @@ def build(bld): # at the moment: # hide_symbols=bld.BUILTIN_LIBRARY('replace'), private_library=True, - deps='crypt dl nsl socket rt attr' + extra_libs) + deps='crypt dl nsl socket rt ' + extra_libs) - bld.SAMBA_SUBSYSTEM('replace-test', - source='''test/testsuite.c test/strptime.c + replace_test_cflags="-Wno-format-zero-length" + if bld.CONFIG_SET('HAVE_WNO_FORMAT_TRUNCATION'): diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.14.patch index 63f21e775..df45d36e9 100644 --- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch +++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.14.patch @@ -1,6 +1,6 @@ -From efc1b02144f23fdf84dbc5ff15307815e0f2a425 Mon Sep 17 00:00:00 2001 +From 319a2a1bb46ae35fa9d66878cb08285035f0bd5f Mon Sep 17 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> -Date: Wed, 14 Sep 2016 11:11:35 +0800 +Date: Thu, 19 Jul 2018 15:41:31 +0800 Subject: [PATCH] talloc: Add configure options for packages Add configure options for the following packages: @@ -19,36 +19,22 @@ Modified to apply to version 2.1.10. Signed-off-by: Joe Slater <joe.slater@windriver.com> +Modified tp apply to version 2.1.14 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - lib/replace/system/wscript_configure | 6 ++- - lib/replace/wscript | 85 ++++++++++++++++++++++++++++-------- - wscript | 7 ++- - 3 files changed, 79 insertions(+), 19 deletions(-) + lib/replace/wscript | 90 +++++++++++++++++++++++++++++++++++++++++------------ + wscript | 7 +++++ + 2 files changed, 77 insertions(+), 20 deletions(-) -Index: talloc-2.1.11/lib/replace/system/wscript_configure -=================================================================== ---- talloc-2.1.11.orig/lib/replace/system/wscript_configure -+++ talloc-2.1.11/lib/replace/system/wscript_configure -@@ -1,6 +1,10 @@ - #!/usr/bin/env python - --conf.CHECK_HEADERS('sys/capability.h') -+import Options -+ -+if Options.options.enable_libcap: -+ conf.CHECK_HEADERS('sys/capability.h') -+ - conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r') - - # solaris varients of getXXent_r -Index: talloc-2.1.11/lib/replace/wscript -=================================================================== ---- talloc-2.1.11.orig/lib/replace/wscript -+++ talloc-2.1.11/lib/replace/wscript -@@ -23,6 +23,41 @@ def set_options(opt): +diff --git a/lib/replace/wscript b/lib/replace/wscript +index fd00a42..a77c058 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -22,6 +22,41 @@ def set_options(opt): + opt.BUILTIN_DEFAULT('NONE') opt.PRIVATE_EXTENSION_DEFAULT('') opt.RECURSE('buildtools/wafsamba') - ++ + opt.add_option('--with-acl', + help=("Enable use of acl"), + action="store_true", dest='enable_acl') @@ -83,10 +69,9 @@ Index: talloc-2.1.11/lib/replace/wscript + opt.add_option('--without-libcap', + help=("Disable use of libcap"), + action="store_false", dest='enable_libcap', default=False) -+ + @Utils.run_once def configure(conf): - conf.RECURSE('buildtools/wafsamba') @@ -32,12 +67,25 @@ def configure(conf): conf.DEFINE('HAVE_LIBREPLACE', 1) conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1) @@ -94,7 +79,7 @@ Index: talloc-2.1.11/lib/replace/wscript - conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h') - conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h') + conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h') -+ conf.CHECK_HEADERS('compat.h ctype.h dustat.h') ++ conf.CHECK_HEADERS('attr/xattr.h compat.h ctype.h dustat.h') conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h') - conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h') - conf.CHECK_HEADERS('shadow.h sys/acl.h') @@ -118,9 +103,9 @@ Index: talloc-2.1.11/lib/replace/wscript conf.CHECK_HEADERS('port.h') conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') -@@ -73,7 +121,9 @@ def configure(conf): - - conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') +@@ -108,7 +156,9 @@ def configure(conf): + conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h') + conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h') - conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') + if Options.options.enable_valgrind: @@ -129,19 +114,14 @@ Index: talloc-2.1.11/lib/replace/wscript conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') -@@ -267,21 +317,21 @@ def configure(conf): - conf.CHECK_FUNCS('prctl dirname basename') +@@ -342,20 +392,20 @@ def configure(conf): strlcpy_in_bsd = False -- + - # libbsd on some platforms provides strlcpy and strlcat - if not conf.CHECK_FUNCS('strlcpy strlcat'): - if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', -+ if Options.options.enable_libbsd: -+ # libbsd on some platforms provides strlcpy and strlcat -+ if not conf.CHECK_FUNCS('strlcpy strlcat'): -+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', - checklibc=True): +- checklibc=True): - strlcpy_in_bsd = True - if not conf.CHECK_FUNCS('getpeereid'): - conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') @@ -149,6 +129,14 @@ Index: talloc-2.1.11/lib/replace/wscript - conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') - if not conf.CHECK_FUNCS('setproctitle_init'): - conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') +- +- if not conf.CHECK_FUNCS('closefrom'): +- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') ++ if Options.options.enable_libbsd: ++ # libbsd on some platforms provides strlcpy and strlcat ++ if not conf.CHECK_FUNCS('strlcpy strlcat'): ++ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', ++ checklibc=True): + strlcpy_in_bsd = True + if not conf.CHECK_FUNCS('getpeereid'): + conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') @@ -156,29 +144,29 @@ Index: talloc-2.1.11/lib/replace/wscript + conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') + if not conf.CHECK_FUNCS('setproctitle_init'): + conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') - -- if not conf.CHECK_FUNCS('closefrom'): -- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') + if not conf.CHECK_FUNCS('closefrom'): + conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') conf.CHECK_CODE(''' struct ucred cred; -Index: talloc-2.1.11/wscript -=================================================================== ---- talloc-2.1.11.orig/wscript -+++ talloc-2.1.11/wscript -@@ -32,7 +32,12 @@ def set_options(opt): +diff --git a/wscript b/wscript +index 18f726e..fed8ab9 100644 +--- a/wscript ++++ b/wscript +@@ -32,6 +32,13 @@ def set_options(opt): opt.add_option('--enable-talloc-compat1', help=("Build talloc 1.x.x compat library [False]"), action="store_true", dest='TALLOC_COMPAT1', default=False) -- + opt.add_option('--with-valgrind', + help=("enable use of valgrind"), + action="store_true", dest='enable_valgrind') + opt.add_option('--without-valgrind', + help=("disable use of valgrind"), + action="store_false", dest='enable_valgrind', default=False) ++ + def configure(conf): - conf.RECURSE('lib/replace') +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.14.bb index 848cf4d99..9a463a6dc 100644 --- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb +++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.14.bb @@ -7,10 +7,10 @@ LIC_FILES_CHKSUM = "file://talloc.h;beginline=3;endline=27;md5=a301712782cad6dd6 SRC_URI = "https://samba.org/ftp/talloc/talloc-${PV}.tar.gz \ - file://options-2.1.10.patch \ + file://options-2.1.14.patch \ " -SRC_URI[md5sum] = "452596f904ca2b10322bdaabf147a721" -SRC_URI[sha256sum] = "639eb35556a0af999123c4d883e79be05ff9f00ab4f9e4ac2e5775f9c5eeeed3" +SRC_URI[md5sum] = "7478da02e309316231a497a9f17a980d" +SRC_URI[sha256sum] = "b185602756a628bac507fa8af8b9df92ace69d27c0add5dab93190ad7c3367ce" inherit waf-samba @@ -37,13 +37,13 @@ EXTRA_OECONF += "--disable-rpath \ --with-libiconv=${STAGING_DIR_HOST}${prefix}\ " -PACKAGES += "pytalloc pytalloc-dbg pytalloc-dev" +PACKAGES += "pytalloc pytalloc-dev" + +RPROVIDES_${PN}-dbg += "pytalloc-dbg" FILES_pytalloc = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \ ${libdir}/libpytalloc-util.so.2 \ ${libdir}/libpytalloc-util.so.2.1.1 \ " -FILES_pytalloc-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \ - ${libdir}/.debug/libpytalloc-util.so.2.1.1" FILES_pytalloc-dev = "${libdir}/libpytalloc-util.so" RDEPENDS_pytalloc = "python" diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch index 272921e56..365b92da2 100644 --- a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch +++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch @@ -1,10 +1,7 @@ -From 24911f36bcb00412e5dc4cd11fda139e09d58798 Mon Sep 17 00:00:00 2001 -From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> -Date: Tue, 1 Aug 2017 03:12:09 +0900 -Subject: [PATCH] From 10ac5e5fdda44adcc2a159b6f9a2d51a51361057 Mon Sep 17 - 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> Date: Wed, 21 - Sep 2016 10:46:19 +0800 Subject: [PATCH] tdb: Add configure options for - packages +From 6de1affddde4003a956523c330ecf24e22e094ac Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Thu, 19 Jul 2018 16:20:32 +0800 +Subject: [PATCH] tdb: Add configure options for packages Add configure options for the following packages: - acl @@ -21,30 +18,16 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Update for libtdb_1.3.14. Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> + +Update for libtdb_1.3.16 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - lib/replace/system/wscript_configure | 6 ++- - lib/replace/wscript | 85 ++++++++++++++++++++++++++++-------- - wscript | 7 ++- - 3 files changed, 79 insertions(+), 19 deletions(-) + lib/replace/wscript | 89 +++++++++++++++++++++++++++++++++++++++++------------ + wscript | 6 ++++ + 2 files changed, 75 insertions(+), 20 deletions(-) -diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure -index 2035474..10f9ae7 100644 ---- a/lib/replace/system/wscript_configure -+++ b/lib/replace/system/wscript_configure -@@ -1,6 +1,10 @@ - #!/usr/bin/env python - --conf.CHECK_HEADERS('sys/capability.h') -+import Options -+ -+if Options.options.enable_libcap: -+ conf.CHECK_HEADERS('sys/capability.h') -+ - conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r') - - # solaris varients of getXXent_r diff --git a/lib/replace/wscript b/lib/replace/wscript -index 7c50e1d..15df5c3 100644 +index fd00a42..2df83cd 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -23,6 +23,41 @@ def set_options(opt): @@ -96,7 +79,7 @@ index 7c50e1d..15df5c3 100644 - conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h') - conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h') + conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h') -+ conf.CHECK_HEADERS('compat.h ctype.h dustat.h') ++ conf.CHECK_HEADERS('attr/xattr.h compat.h ctype.h dustat.h') conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h') - conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h') - conf.CHECK_HEADERS('shadow.h sys/acl.h') @@ -120,9 +103,9 @@ index 7c50e1d..15df5c3 100644 conf.CHECK_HEADERS('port.h') conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') -@@ -73,7 +121,9 @@ def configure(conf): - - conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') +@@ -108,7 +156,9 @@ def configure(conf): + conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h') + conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h') - conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') + if Options.options.enable_valgrind: @@ -131,18 +114,21 @@ index 7c50e1d..15df5c3 100644 conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') -@@ -251,17 +301,18 @@ def configure(conf): +@@ -342,20 +392,19 @@ def configure(conf): - conf.CHECK_FUNCS('prctl dirname basename') + strlcpy_in_bsd = False - # libbsd on some platforms provides strlcpy and strlcat - if not conf.CHECK_FUNCS('strlcpy strlcat'): -- conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', -- checklibc=True) +- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', +- checklibc=True): +- strlcpy_in_bsd = True - if not conf.CHECK_FUNCS('getpeereid'): - conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') - if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): - conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') +- if not conf.CHECK_FUNCS('setproctitle_init'): +- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') - - if not conf.CHECK_FUNCS('closefrom'): - conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') @@ -158,18 +144,18 @@ index 7c50e1d..15df5c3 100644 + + if not conf.CHECK_FUNCS('closefrom'): + conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') ++ conf.CHECK_CODE(''' struct ucred cred; diff --git a/wscript b/wscript -index 1c9655a..8c20d3b 100644 +index 6505648..6608481 100644 --- a/wscript +++ b/wscript -@@ -62,7 +62,12 @@ def set_options(opt): - help=("Disable the use of pthread robust mutexes"), +@@ -63,6 +63,12 @@ def set_options(opt): action="store_true", dest='disable_tdb_mutex_locking', default=False) -- + + opt.add_option('--with-valgrind', + help=("enable use of valgrind"), + action="store_true", dest='enable_valgrind') diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb index 302a306b3..0579ed6e3 100644 --- a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb +++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb @@ -11,8 +11,8 @@ SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \ file://tdb-Add-configure-options-for-packages.patch \ " -SRC_URI[md5sum] = "60ece3996acc8d85b6f713199da971a6" -SRC_URI[sha256sum] = "b4a1bf3833601bd9f10aff363cb750860aef9ce5b4617989239923192f946728" +SRC_URI[md5sum] = "7d06d8709188e07df853d9e91db88927" +SRC_URI[sha256sum] = "6a3fc2616567f23993984ada3cea97d953a27669ffd1bfbbe961f26e0cf96cc5" PACKAGECONFIG ??= "\ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ @@ -35,10 +35,11 @@ EXTRA_OECONF += "--disable-rpath \ --with-libiconv=${STAGING_DIR_HOST}${prefix}\ " -PACKAGES += "tdb-tools python-tdb python-tdb-dbg" +PACKAGES += "tdb-tools python-tdb" + +RPROVIDES_${PN}-dbg += "python-tdb-dbg" FILES_${PN} = "${libdir}/*.so.*" FILES_tdb-tools = "${bindir}/*" FILES_python-tdb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*" -FILES_python-tdb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug/*" RDEPENDS_python-tdb = "python" diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch new file mode 100644 index 000000000..e3aeda9c3 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch @@ -0,0 +1,32 @@ +From 7ba1de909c587b6773a39ba9f6f9890987f35b24 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 11:30:53 +0800 +Subject: [PATCH] libtevent: fix musl libc compile error + +libldb depend on libtevent, build libldb with musl libc, +will report error: +tevent.h:1440:8: error: unknown type name 'pid_t'; did you mean 'div_t'? + +add missing headers to fix it. + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + tevent.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tevent.h b/tevent.h +index aa6fe0d..2572696 100644 +--- a/tevent.h ++++ b/tevent.h +@@ -32,6 +32,8 @@ + #include <talloc.h> + #include <sys/time.h> + #include <stdbool.h> ++#include <sys/stat.h> ++#include <sys/types.h> + + struct tevent_context; + struct tevent_ops; +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.37.bb index c91b221b1..4df251c7f 100644 --- a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb +++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.37.bb @@ -8,11 +8,12 @@ RDEPENDS_python-tevent = "python" SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \ file://options-0.9.36.patch \ + file://0001-libtevent-fix-musl-libc-compile-error.patch \ " LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a" -SRC_URI[md5sum] = "87d67bca75b231814435c47bec0aff8a" -SRC_URI[sha256sum] = "bd2b6be3fd1601ed7f176e99111e322c57d58e425cc149ee80c7dd4fed263b4c" +SRC_URI[md5sum] = "6859cd4081fdb2a76b1cb4bf1c803a59" +SRC_URI[sha256sum] = "168345ed65eac03785cf77b95238e7dc66cbb473a42811693a6b0916e5dae7e0" inherit waf-samba @@ -38,7 +39,8 @@ EXTRA_OECONF += "--disable-rpath \ --without-gettext \ " -PACKAGES += "python-tevent python-tevent-dbg" +PACKAGES += "python-tevent" + +RPROVIDES_${PN}-dbg += "python-tevent-dbg" FILES_python-tevent = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*" -FILES_python-tevent-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug" diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch new file mode 100644 index 000000000..7599b1bcf --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch @@ -0,0 +1,31 @@ +From e5952a0cdfa8b1b56a5823574835f1f771f14ae0 Mon Sep 17 00:00:00 2001 +From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +Date: Fri, 24 Aug 2018 09:53:00 -0300 +Subject: [PATCH] build: 0b0dce7a36fb actually belongs to v4.19 + +Typo or not, this commit actually belongs to v4.19 and made me wonder why +on v4.18 it didn't find this feature. + +Fixes: 817f0bfa248f ("build: add two defines for Peer Address Parameters extensions on sctp_paddrparams") +Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +Reviewed-by: Xin Long <lucien.xin@gmail.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index f55775a..5de5c76 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -101,7 +101,7 @@ LKSCTP_CHECK_TYPE([struct sctp_prinfo], [HAVE_SCTP_SENDV]) + # added on v4.16, 30f6ebf65bc4 + LKSCTP_CHECK_DECL([SCTP_AUTH_NO_AUTH], [HAVE_SCTP_AUTH_NO_AUTH]) + +-# New members to sctp_paddrparams, added on v4.18, 0b0dce7a36fb ++# New members to sctp_paddrparams, added on v4.19, 0b0dce7a36fb + LKSCTP_CHECK_MEMBER([struct sctp_paddrparams.spp_ipv6_flowlabel], + [HAVE_SCTP_SPP_IPV6_FLOWLABEL]) + LKSCTP_CHECK_MEMBER([struct sctp_paddrparams.spp_dscp], +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-netinet-sctp.h-not-to-be-installed.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-netinet-sctp.h-not-to-be-installed.patch new file mode 100644 index 000000000..03c6c4f73 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-netinet-sctp.h-not-to-be-installed.patch @@ -0,0 +1,35 @@ +From 378560050a8f93786c590cc99a55461666205b61 Mon Sep 17 00:00:00 2001 +From: Xin Long <lucien.xin@gmail.com> +Date: Fri, 24 Aug 2018 01:13:32 +0800 +Subject: [PATCH] build: fix netinet/sctp.h not to be installed + +After libcnetinet_HEADERS was set to sctp.h.in, netinet/sctp.h can +no longer be installed into ${includedir}. + +Since "AC_CONFIG_HEADERS([src/include/netinet/sctp.h])" is already +added into configure.ac, there's no need to generate sctp.h by +automake. + +So we simply set libcnetinet_HEADERS back to sctp.h. + +Fixes: 9607dd85e70a ("netinet/sctp.h: dynamically build based on system setup") +Signed-off-by: Xin Long <lucien.xin@gmail.com> +Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +--- + src/include/netinet/Makefile.am | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/include/netinet/Makefile.am b/src/include/netinet/Makefile.am +index ca0aac2..965db8c 100644 +--- a/src/include/netinet/Makefile.am ++++ b/src/include/netinet/Makefile.am +@@ -11,5 +11,4 @@ libcnetinetdir = $(includedir)/netinet + # API. + include_HEADERS = + +-libcnetinet_HEADERS = sctp.h.in +-BUILT_SOURCES = sctp.h ++libcnetinet_HEADERS = sctp.h +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch new file mode 100644 index 000000000..89c89835d --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch @@ -0,0 +1,35 @@ +From 596efd6631b83069d41782fb0ee2d6cf76a50dfa Mon Sep 17 00:00:00 2001 +From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +Date: Fri, 24 Aug 2018 09:52:59 -0300 +Subject: [PATCH] build: fix probing for HAVE_SCTP_SENDV + +Somehow it was using a type that is non-existent. The right one is +sctp_prinfo, introduced on ed63afb8a318 ("sctp: add support for PR-SCTP +Information for sendmsg"), present on v4.17. + +Fixes: 1b798f1ca3b5 ("build: add define HAVE_SCTP_AUTH_NO_AUTH") +Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +Reviewed-by: Xin Long <lucien.xin@gmail.com> +--- + configure.ac | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index dad658c..f55775a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -94,9 +94,8 @@ LKSCTP_CHECK_MEMBER([struct sctp_pdapi_event.pdapi_stream], + LKSCTP_CHECK_MEMBER([struct sctp_pdapi_event.pdapi_seq], + [HAVE_SCTP_PDAPI_EVENT_PDAPI_SEQ]) + +-# PR-SCTP field used to probe for sendv/recvv support, added on v4.17 +-LKSCTP_CHECK_MEMBER([struct sendv_prinfo.sctp_prinfo], +- [HAVE_SCTP_SENDV]) ++# PR-SCTP struct used to probe for sendv/recvv support, added on v4.17 ++LKSCTP_CHECK_TYPE([struct sctp_prinfo], [HAVE_SCTP_SENDV]) + + # This event indicates that the peer does not support SCTP authentication, + # added on v4.16, 30f6ebf65bc4 +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch new file mode 100644 index 000000000..d22cda681 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch @@ -0,0 +1,52 @@ +From db6d15bf12a0123e4320e5fd7cb688331dea1bdc Mon Sep 17 00:00:00 2001 +From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +Date: Fri, 24 Aug 2018 09:52:58 -0300 +Subject: [PATCH] build: remove v4.12 secondary defines in favor of + HAVE_SCTP_STREAM_RECONFIG + +These were backups, commented out since beginning. +HAVE_SCTP_STREAM_RECONFIG is enough to identify that these are there, so +lets use only one. + +Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +Reviewed-by: Xin Long <lucien.xin@gmail.com> +--- + configure.ac | 8 -------- + src/include/netinet/sctp.h.in | 2 -- + 2 files changed, 10 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2ae36ec..dad658c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -82,14 +82,6 @@ AC_CHECK_FUNCS([bzero gethostbyname gettimeofday memmove memset select socket \ + LKSCTP_CHECK_MEMBER([struct sctp_event_subscribe.sctp_stream_reset_event], + [HAVE_SCTP_STREAM_RESET_EVENT]) + +-# Support for assoc reset event, added on v4.12, c95129d127c6 +-#LKSCTP_CHECK_MEMBER([struct sctp_event_subscribe.sctp_assoc_reset_event], \ +-# [HAVE_SCTP_ASSOC_RESET_EVENT]) +- +-# Support for stream change event, added on v4.12, b444153fb5a6 +-#LKSCTP_CHECK_MEMBER([struct sctp_event_subscribe.sctp_stream_change_event], \ +-# [HAVE_SCTP_STREAM_CHANGE_EVENT]) +- + # RFC 6525 (Stream Reconf), finished on v4.12, c0d8bab6ae51 + LKSCTP_CHECK_DECL([SCTP_RECONFIG_SUPPORTED], [HAVE_SCTP_STREAM_RECONFIG]) + +diff --git a/src/include/netinet/sctp.h.in b/src/include/netinet/sctp.h.in +index c049077..2009f1c 100644 +--- a/src/include/netinet/sctp.h.in ++++ b/src/include/netinet/sctp.h.in +@@ -61,8 +61,6 @@ extern "C" { + #define HAVE_SCTP_CANSET_PRIMARY + + #undef HAVE_SCTP_STREAM_RESET_EVENT +-#undef HAVE_SCTP_ASSOC_RESET_EVENT +-#undef HAVE_SCTP_STREAM_CHANGE_EVENT + #undef HAVE_SCTP_STREAM_RECONFIG + #undef HAVE_SCTP_PEELOFF_FLAGS + #undef HAVE_SCTP_PDAPI_EVENT_PDAPI_STREAM +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch new file mode 100644 index 000000000..bec9bf0d1 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch @@ -0,0 +1,71 @@ +From 7de2bd7e769f10521e3d0c2cb42c6f6b9b505dd0 Mon Sep 17 00:00:00 2001 +From: Xin Long <lucien.xin@gmail.com> +Date: Thu, 16 Aug 2018 14:12:30 +0800 +Subject: [PATCH] configure.ac: add CURRENT REVISION and AGE for libsctp and + libwithsctp + +Add CURRENT REVISION and AGE for libsctp and libwithsctp in +configure.ac to update these 2 library version information. + +Compatible with before, they will start from 1:18:0. But each +will get updated according to their definitions in the future. + +Signed-off-by: Xin Long <lucien.xin@gmail.com> +Acked-by: Neil Horman <nhorman@tuxdriver.com> +Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +--- + configure.ac | 7 +++++++ + src/lib/Makefile.am | 7 +++++-- + src/withsctp/Makefile.am | 3 ++- + 3 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 275ef4e..2ae36ec 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -14,6 +14,13 @@ dnl reduce clutter in the root; if we put it below AM_INIT_AUTOMAKE, + dnl configure will fail ...) + + AC_INIT([lksctp-tools], [1.0.18], [], [], [http://www.lksctp.org/]) ++AC_SUBST(LIBSCTP_CURRENT, 1) ++AC_SUBST(LIBSCTP_REVISION, 18) ++AC_SUBST(LIBSCTP_AGE, 0) ++AC_SUBST(LIBWITHSCTP_CURRENT, 1) ++AC_SUBST(LIBWITHSCTP_REVISION, 18) ++AC_SUBST(LIBWITHSCTP_AGE, 0) ++ + AC_CONFIG_AUX_DIR(bin) + AC_CONFIG_SRCDIR([src/apps/sctp_darn.c]) + AC_CONFIG_HEADERS([config.h]) +diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am +index 6100c56..1d62175 100644 +--- a/src/lib/Makefile.am ++++ b/src/lib/Makefile.am +@@ -8,5 +8,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/src/include + + lib_LTLIBRARIES = libsctp.la + +-libsctp_la_SOURCES = bindx.c connectx.c peeloff.c opt_info.c addrs.c sendmsg.c recvmsg.c Versions.map +-libsctp_la_LDFLAGS = -version-info 1:17:0 -Wl,--version-script=$(srcdir)/Versions.map ++libsctp_la_SOURCES = bindx.c connectx.c peeloff.c opt_info.c \ ++ addrs.c sendmsg.c recvmsg.c Versions.map ++libsctp_la_LDFLAGS = -version-info \ ++ @LIBSCTP_CURRENT@:@LIBSCTP_REVISION@:@LIBSCTP_AGE@ \ ++ -Wl,--version-script=$(srcdir)/Versions.map +diff --git a/src/withsctp/Makefile.am b/src/withsctp/Makefile.am +index 70b1cca..1f6ca37 100644 +--- a/src/withsctp/Makefile.am ++++ b/src/withsctp/Makefile.am +@@ -14,7 +14,8 @@ AM_CPPFLAGS=-I$(top_srcdir)/src/include + pkglib_LTLIBRARIES = libwithsctp.la + libwithsctp_la_SOURCES = sctp_load_libs.c sctp_socket.c sctp_bind.c \ + sctp_sockopt.c sctp_socket.h +-libwithsctp_la_LDFLAGS = -version-info 1:17:0 -ldl ++libwithsctp_la_LDFLAGS = -version-info \ ++ @LIBWITHSCTP_CURRENT@:@LIBWITHSCTP_REVISION@:@LIBWITHSCTP_AGE@ -ldl + + pkgdoc_DATA = sctp_load_libs.c sctp_socket.c sctp_bind.c \ + sctp_sockopt.c sctp_socket.h checksctp.c +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-test_1_to_1_events.c-initialize-event-properly.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-test_1_to_1_events.c-initialize-event-properly.patch new file mode 100644 index 000000000..621e6f469 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-test_1_to_1_events.c-initialize-event-properly.patch @@ -0,0 +1,44 @@ +From e1e670defb84d51efdd124e5f3fa166a1a4b7c1d Mon Sep 17 00:00:00 2001 +From: Mingli Yu <Mingli.Yu@windriver.com> +Date: Tue, 25 Sep 2018 11:39:43 +0800 +Subject: [PATCH] test_1_to_1_events.c: initialize event properly + +Initialize event properly to avoid below +Segmentation fault when run below test +related to AUTH_NO_AUTH. + + # ./test_1_to_1_events +test_1_to_1_events.c 1 PASS : COMM_UP notification on client socket - SUCCESS +test_1_to_1_events.c 2 PASS : COMM_UP notification on server socket - SUCCESS +test_1_to_1_events.c 3 BROK : Got a datamsg, expecting notification +DUMP_CORE sctputil.c: 187 +[ 1468.733938] test_1_to_1_eve[2376]: segfault at 0 ip 0000561a4a3d5079 sp 00007ffd49101580 error 6 in test_1_to_1_events[561a4a3d4000+2000] +[ 1468.734479] Code: ff bf 0a 00 00 00 e8 e6 ef ff ff b9 c9 00 00 00 48 8d 15 61 13 00 00 bf 01 00 00 00 31 c0 48 8d 35 c7 0f 00 00 e8 97 f0 +Segmentation fault + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> +--- + src/func_tests/test_1_to_1_events.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/func_tests/test_1_to_1_events.c b/src/func_tests/test_1_to_1_events.c +index 46439bf..a086832 100644 +--- a/src/func_tests/test_1_to_1_events.c ++++ b/src/func_tests/test_1_to_1_events.c +@@ -92,9 +92,11 @@ main(int argc, char *argv[]) + /* Create the client socket. */ + clt_sk = test_socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP); + ++ memset(&event, 0, sizeof(event)); + event.sctp_data_io_event = 1; + event.sctp_association_event = 1; + event.sctp_shutdown_event = 1; ++ event.sctp_authentication_event = 1; + len = sizeof(struct sctp_event_subscribe); + test_setsockopt(svr_sk, SCTP_EVENTS, &event, len); + test_setsockopt(clt_sk, SCTP_EVENTS, &event, len); +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch new file mode 100644 index 000000000..2537bb976 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch @@ -0,0 +1,43 @@ +From 7c0ef4d441b3833e721df58f56e2cb8c81b34df4 Mon Sep 17 00:00:00 2001 +From: Xin Long <lucien.xin@gmail.com> +Date: Thu, 16 Aug 2018 14:12:01 +0800 +Subject: [PATCH] withsctp: use @PACKAGE_VERSION@ in withsctp.h + +use @PACKAGE_VERSION@ to replace the hardcode version. + +Signed-off-by: Xin Long <lucien.xin@gmail.com> +Acked-by: Neil Horman <nhorman@tuxdriver.com> +Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> +--- + Makefile.rules | 3 ++- + src/withsctp/withsctp.in | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/Makefile.rules b/Makefile.rules +index 83f5f0c..d3693fa 100644 +--- a/Makefile.rules ++++ b/Makefile.rules +@@ -15,4 +15,5 @@ + edit = @sed \ + -e "s|\@bindir\@|$(bindir)|" \ + -e "s|\@libdir\@|$(libdir)|" \ +- -e "s|\@PACKAGE\@|$(PACKAGE)|" ++ -e "s|\@PACKAGE\@|$(PACKAGE)|" \ ++ -e "s|\@PACKAGE_VERSION\@|$(PACKAGE_VERSION)|" +diff --git a/src/withsctp/withsctp.in b/src/withsctp/withsctp.in +index 7f182ba..fda5ebc 100644 +--- a/src/withsctp/withsctp.in ++++ b/src/withsctp/withsctp.in +@@ -2,7 +2,8 @@ + # -*- sh -*- + LIBDIR=@libdir@/@PACKAGE@ + BINDIR=@bindir@ +-export LD_PRELOAD=${LIBDIR}/libwithsctp.so.1.0.17 ++LIBVER=@PACKAGE_VERSION@ ++export LD_PRELOAD=${LIBDIR}/libwithsctp.so.${LIBVER} + if ! ${BINDIR}/checksctp 2> /dev/null + then + ${BINDIR}/checksctp; +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.18.bb index 121cc9945..70cea6c7b 100644 --- a/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb +++ b/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.18.bb @@ -8,13 +8,20 @@ LIC_FILES_CHKSUM = " \ file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e \ " -SRCREV = "736b91d340e3f2519714f2930ed63b164d363511" +SRCREV = "1b077af62d83d53c34b1bde8bad6648149d5edf9" PV .= "+git${SRCPV}" -LK_REL = "1.0.17" +LK_REL = "1.0.18" SRC_URI = " \ git://github.com/sctp/lksctp-tools.git \ + file://0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch \ + file://0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch \ + file://0001-build-fix-netinet-sctp.h-not-to-be-installed.patch \ + file://0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch \ + file://0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch \ + file://0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch \ + file://0001-test_1_to_1_events.c-initialize-event-properly.patch \ file://run-ptest \ file://v4test.sh \ file://v6test.sh \ @@ -24,7 +31,7 @@ S = "${WORKDIR}/git" BBCLASSEXTEND = "native" -inherit autotools pkgconfig binconfig ptest +inherit autotools-brokensep pkgconfig binconfig ptest do_install_ptest () { install -m 0755 ${WORKDIR}/v4test.sh ${D}${PTEST_PATH} diff --git a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-potential-string-truncation-in-strncpy.patch b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-potential-string-truncation-in-strncpy.patch new file mode 100644 index 000000000..e621d8f2a --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-potential-string-truncation-in-strncpy.patch @@ -0,0 +1,139 @@ +From 58b6d9a2efe101e5b80fd708e6f84c7ca779ce93 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 31 May 2018 20:27:43 -0700 +Subject: [PATCH] Fix potential string truncation in strncpy() + +GCC 8 complains about the string truncation during copy + +error: 'strncpy' specified bound 16 equals destination size + +Upstream-Status: Inappropriate [depricated component] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tests/listen-packet.c | 3 ++- + tests/listen.c | 3 ++- + tests/test2.c | 4 ++-- + tests/test3.c | 3 ++- + tests/test4.c | 3 ++- + tests/test5.c | 3 ++- + tests/test6.c | 3 ++- + tests/test7.c | 3 ++- + 8 files changed, 16 insertions(+), 9 deletions(-) + +diff --git a/tests/listen-packet.c b/tests/listen-packet.c +index e40af81..eae0c71 100644 +--- a/tests/listen-packet.c ++++ b/tests/listen-packet.c +@@ -50,7 +50,8 @@ int main(int argc, char **argv) { + return 1; + } + +- strncpy(req.ifr_name, iface, IF_NAMESIZE); ++ strncpy(req.ifr_name, iface, IF_NAMESIZE - 1); ++ req.ifr_name[IF_NAMESIZE - 1] = '\0'; + ret = ioctl(sd, SIOCGIFINDEX, &req); + if (ret < 0) + perror("ioctl: SIOCGIFINDEX"); +diff --git a/tests/listen.c b/tests/listen.c +index 75c320b..5ce1ed9 100644 +--- a/tests/listen.c ++++ b/tests/listen.c +@@ -47,7 +47,8 @@ int main(int argc, char **argv) { + return 1; + } + +- strncpy(req.ifr_name, iface, IFNAMSIZ); ++ strncpy(req.ifr_name, iface, IFNAMSIZ - 1); ++ req.ifr_name[IF_NAMESIZE - 1] = '\0'; + ret = ioctl(sd, SIOCGIFHWADDR, &req); + if (ret < 0) + perror("ioctl: SIOCGIFHWADDR"); +diff --git a/tests/test2.c b/tests/test2.c +index 58eb74b..5d02838 100644 +--- a/tests/test2.c ++++ b/tests/test2.c +@@ -45,8 +45,8 @@ int main(int argc, char **argv) { + perror("socket"); + return 1; + } +- +- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); ++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); ++ req.ifr_name[IF_NAMESIZE - 1] = '\0'; + ret = ioctl(sd, SIOCGIFHWADDR, &req); + if (ret < 0) + perror("ioctl: SIOCGIFHWADDR"); +diff --git a/tests/test3.c b/tests/test3.c +index fb36627..2f50a5a 100644 +--- a/tests/test3.c ++++ b/tests/test3.c +@@ -46,7 +46,8 @@ int main(int argc, char **argv) { + return 1; + } + +- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); ++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); ++ req.ifr_name[IF_NAMESIZE - 1] = '\0'; + ret = ioctl(sd, SIOCGIFHWADDR, &req); + if (ret < 0) + perror("ioctl: SIOCGIFHWADDR"); +diff --git a/tests/test4.c b/tests/test4.c +index 33c274c..8737149 100644 +--- a/tests/test4.c ++++ b/tests/test4.c +@@ -46,7 +46,8 @@ int main(int argc, char **argv) { + return 1; + } + +- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); ++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); ++ req.ifr_name[IF_NAMESIZE - 1] = '\0'; + ret = ioctl(sd, SIOCGIFHWADDR, &req); + if (ret < 0) + perror("ioctl: SIOCGIFHWADDR"); +diff --git a/tests/test5.c b/tests/test5.c +index 4439dfa..28db562 100644 +--- a/tests/test5.c ++++ b/tests/test5.c +@@ -45,7 +45,8 @@ int main(int argc, char **argv) { + return 1; + } + +- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); ++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); ++ req.ifr_name[IF_NAMESIZE - 1] = '\0'; + ret = ioctl(sd, SIOCGIFADDR, &req); + if (ret < 0) { + perror("ioctl: SIOCGIFADDR"); +diff --git a/tests/test6.c b/tests/test6.c +index e375bfb..ce7de59 100644 +--- a/tests/test6.c ++++ b/tests/test6.c +@@ -45,7 +45,8 @@ int main(int argc, char **argv) { + return 1; + } + +- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); ++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); ++ req.ifr_name[IF_NAMESIZE - 1] = '\0'; + ret = ioctl(sd, SIOCGIFADDR, &req); + if (ret < 0) { + perror("ioctl: SIOCGIFADDR"); +diff --git a/tests/test7.c b/tests/test7.c +index e9a5a55..37da22d 100644 +--- a/tests/test7.c ++++ b/tests/test7.c +@@ -58,7 +58,8 @@ int main(int argc, char **argv) { + if (ret) + perror("setsockopt"); + +- strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); ++ strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); ++ req.ifr_name[IF_NAMESIZE - 1] = '\0'; + ret = ioctl(sd, SIOCGIFHWADDR, &req); + if (ret < 0) + perror("ioctl: SIOCGIFHWADDR"); +-- +2.17.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb index d0fe59c98..b70c43f15 100644 --- a/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb +++ b/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb @@ -15,6 +15,7 @@ SRC_URI = "git://github.com/linux-wpan/lowpan-tools \ file://0001-src-iz.c-Undef-dprintf-before-redefining.patch \ file://0001-Remove-newline-from-format-line.patch \ file://0001-coordinator-Fix-strncpy-range-warning.patch \ + file://0001-Fix-potential-string-truncation-in-strncpy.patch \ " SRCREV = "1c2d8674cc6f4b1166a066e8822e295c105ae7a2" diff --git a/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.bb b/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.10.bb index fd3d171f0..d2cafc9f6 100644 --- a/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.bb +++ b/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.10.bb @@ -22,8 +22,8 @@ RDEPENDS_${PN} += "perl perl-module-posix perl-module-autoloader \ SRC_URI = "http://www.memcached.org/files/${BP}.tar.gz \ file://memcached-add-hugetlbfs-check.patch \ " -SRC_URI[md5sum] = "81326513f60d7ba482f8131975cd55ae" -SRC_URI[sha256sum] = "c001f812024bb461b5e4d7d0506daab63dff9614eea26f46536c3b7e1e601c32" +SRC_URI[md5sum] = "8462616b554183a75845b03c56837cca" +SRC_URI[sha256sum] = "494c060dbd96d546c74ab85a3cc3984d009b4423767ac33e05dd2340c01f1c4b" # set the same COMPATIBLE_HOST as libhugetlbfs COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64|arm).*-linux' diff --git a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.11.bb b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.17.bb index 2ad75bda6..356023681 100644 --- a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.11.bb +++ b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.17.bb @@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "glib-2.0" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "73d11644a28b9f335292cdb3bdc4b74b" -SRC_URI[sha256sum] = "14420f74cb16dc609a9302ed1efd653064bed7a8357e9d73daabc33608e3f2a0" +SRC_URI[md5sum] = "98b74c655ed94a66686c5ba19480d98e" +SRC_URI[sha256sum] = "d95c6bb1a3ab33b953af99b73fb4833e123bd25433513b32d57dbeb1a0a0d189" inherit autotools pkgconfig diff --git a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb index cebc1d9cd..ec4879752 100644 --- a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb +++ b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb @@ -19,13 +19,10 @@ inherit autotools gettext EXTRA_OECONF += "PERL=${USRBINPATH}/perl" -LDFLAGS += "-fuse-ld=gold" -LDFLAGS_remove_riscv64 = "-fuse-ld=gold" - -TOOLCHAIN = "gcc" - USE_NLS = "yes" +EXTRA_OECONF += "--disable-rpath" + do_configure_prepend() { cp ${STAGING_DATADIR_NATIVE}/gettext/gettext.h ${S}/include ${S}/autogen.sh diff --git a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch index 0966b6580..929f63f4a 100644 --- a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch +++ b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch @@ -1,40 +1,47 @@ -From ccd166b73eaae4dd1e1785c63ceb9b303568ed46 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 21 Mar 2017 11:30:49 -0700 +From 3da48ec13a44b71ca51adbc803b42c1b29a43f57 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 24 Jul 2018 14:03:51 +0800 Subject: [PATCH] bundle own base64 encode/decode functions Not all libc implementations provide it. as an aside libresolv is no longer needed +Upstream-Status: Pending + Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Update to version 1.190-2 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- Makefile | 4 +- base64.c | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - netcat.c | 2 + + netcat.c | 3 + socks.c | 3 + - 4 files changed, 320 insertions(+), 2 deletions(-) + 4 files changed, 321 insertions(+), 2 deletions(-) create mode 100644 base64.c -Index: netcat-openbsd-1.105/Makefile -=================================================================== ---- netcat-openbsd-1.105.orig/Makefile -+++ netcat-openbsd-1.105/Makefile -@@ -1,9 +1,9 @@ - # $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $ +diff --git a/Makefile b/Makefile +index 8247cfd..b8d8547 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,10 +1,10 @@ + # $OpenBSD: Makefile,v 1.7 2015/09/11 21:07:01 beck Exp $ PROG= nc -SRCS= netcat.c atomicio.c socks.c +SRCS= netcat.c atomicio.c socks.c base64.c --LIBS= `pkg-config --libs libbsd` -lresolv -+LIBS= `pkg-config --libs libbsd` + PKG_CONFIG ?= pkg-config +-LIBS= `$(PKG_CONFIG) --libs libbsd` -lresolv ++LIBS= `$(PKG_CONFIG) --libs libbsd` OBJS= $(SRCS:.c=.o) CFLAGS= -g -O2 LDFLAGS= -Wl,--no-add-needed -Index: netcat-openbsd-1.105/base64.c -=================================================================== +diff --git a/base64.c b/base64.c +new file mode 100644 +index 0000000..b0ee6c2 --- /dev/null -+++ netcat-openbsd-1.105/base64.c ++++ b/base64.c @@ -0,0 +1,313 @@ +/* + * Copyright (c) 1996-1999 by Internet Software Consortium. @@ -349,31 +356,34 @@ Index: netcat-openbsd-1.105/base64.c + + return (tarindex); +} -Index: netcat-openbsd-1.105/netcat.c -=================================================================== ---- netcat-openbsd-1.105.orig/netcat.c -+++ netcat-openbsd-1.105/netcat.c -@@ -169,6 +169,9 @@ static int connect_with_timeout(int fd, - socklen_t salen, int ctimeout); +diff --git a/netcat.c b/netcat.c +index a0fb51b..9c4ed23 100644 +--- a/netcat.c ++++ b/netcat.c +@@ -240,6 +240,9 @@ static int connect_with_timeout(int fd, const struct sockaddr *sa, + static void quit(); -+int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); -+int b64_pton(char const *src, u_char *target, size_t targsize); ++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); ++int b64_pton(char const *src, u_char *target, size_t targsize); + int main(int argc, char *argv[]) { -Index: netcat-openbsd-1.105/socks.c -=================================================================== ---- netcat-openbsd-1.105.orig/socks.c -+++ netcat-openbsd-1.105/socks.c +diff --git a/socks.c b/socks.c +index 9068f39..c576f6b 100644 +--- a/socks.c ++++ b/socks.c @@ -53,6 +53,9 @@ #define SOCKS_DOMAIN 3 #define SOCKS_IPV6 4 -+int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); -+int b64_pton(char const *src, u_char *target, size_t targsize); ++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); ++int b64_pton(char const *src, u_char *target, size_t targsize); + int remote_connect(const char *, const char *, struct addrinfo); int socks_connect(const char *, const char *, struct addrinfo, const char *, const char *, struct addrinfo, int, +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb index 9d7420f8c..defc05cd1 100644 --- a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb +++ b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb @@ -1,21 +1,21 @@ require netcat.inc SUMMARY = "OpenBSD Netcat" HOMEPAGE = "http://ftp.debian.org" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee6bbaacb5db5f2973818f0902c3ae6f" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=f39e60ae4ea9fdb559c833be2e59de99" DEPENDS += "glib-2.0 libbsd" do_patch[depends] = "quilt-native:do_populate_sysroot" -SRC_URI = "${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \ - ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz;name=netcat-patch;subdir=${BP} \ +SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/netcat-openbsd/1.190-2/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \ + https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/netcat-openbsd/1.190-2/netcat-openbsd_${PV}-2.debian.tar.xz;name=netcat-patch;subdir=${BP} \ file://0001-bundle-own-base64-encode-decode-functions.patch \ " -SRC_URI[netcat.md5sum] = "7e67b22f1ad41a1b7effbb59ff28fca1" -SRC_URI[netcat.sha256sum] = "40653fe66c1516876b61b07e093d826e2a5463c5d994f1b7e6ce328f3edb211e" -SRC_URI[netcat-patch.md5sum] = "e914f8eb7eda5c75c679dd77787ac76b" -SRC_URI[netcat-patch.sha256sum] = "eee759327ffea293e81d0dde67921b7fcfcad279ffd7a2c9d037bbc8f882b363" +SRC_URI[netcat.md5sum] = "dd32fd1d7903b541ad8709794539b959" +SRC_URI[netcat.sha256sum] = "68ccc448392c05ec51baed0167a72b8c650454f990b895d6e6877d416a38e536" +SRC_URI[netcat-patch.md5sum] = "78058b7af0170654b877b02c37716cdf" +SRC_URI[netcat-patch.sha256sum] = "88088af3f520c7825e59bc133d65e70fc4a30139d451c6faabbd9f240bc78374" inherit pkgconfig @@ -30,7 +30,7 @@ netcat_do_patch() { rm -rf ${S}/.pc mv ${S}/.pc-netcat ${S}/.pc QUILT_PATCHES=${S}/debian/patches quilt pop -a - rm -rf ${S}/.pc ${S}/debian + rm -rf ${S}/.pc fi QUILT_PATCHES=${S}/debian/patches quilt push -a mv ${S}/.pc ${S}/.pc-netcat diff --git a/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb b/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb index 9a6f60ea2..a4a9c91c6 100644 --- a/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb +++ b/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb @@ -12,6 +12,8 @@ PV .= "+git${SRCPV}" SRC_URI = "git://pagure.io/netcf.git;protocol=https \ " +UPSTREAM_CHECK_GITTAGREGEX = "release-(?P<pver>(\d+(\.\d+)+))" + DEPENDS += "augeas libnl libxslt libxml2 gnulib" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch b/meta-openembedded/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch new file mode 100644 index 000000000..515737c8e --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch @@ -0,0 +1,50 @@ +From 51a092ebb36dcc6180ceb93a9777258e826d9990 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 26 Sep 2018 18:11:10 -0700 +Subject: [PATCH] netlib.c: Move including sched.h out og function + +The shutdown_control() has this code where system headers are being +included inside function body and this results in compile errors on musl +especially when sched.h is included because sched.h defines a macro +which defines a static function. This means it ends up being a static +function inside another function and compiler calls it out + +In function 'bind_to_specific_processor': +| +/mnt/a/yoe/build/tmp/work/i586-yoe-linux-musl/netperf/2.7.0+git999-r0/recipe-sysroot/usr/include/sched.h:102:1: +error: invalid storage class for function '__CPU_AND_S' +| __CPU_op_func_S(AND, &) +| ^~~~~~~~~~~~~~~ + +Moving the definition out of function definition fixes the problem + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/netlib.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/netlib.c b/src/netlib.c +index 9258424..60b032d 100644 +--- a/src/netlib.c ++++ b/src/netlib.c +@@ -2262,6 +2262,10 @@ shutdown_control() + + } + ++#if HAVE_SCHED_SETAFFINITY ++#include <sched.h> ++#endif ++ + /* + bind_to_specific_processor will bind the calling process to the + processor in "processor" It has lots of ugly ifdefs to deal with +@@ -2308,7 +2312,6 @@ bind_to_specific_processor(int processor_affinity, int use_cpu_map) + value will not tell you if you are bound vs unbound. */ + bindprocessor(BINDPROCESS,getpid(),(cpu_t)mapped_affinity); + #elif HAVE_SCHED_SETAFFINITY +-#include <sched.h> + /* in theory this should cover systems with more CPUs than bits in a + long, without having to specify __USE_GNU. we "cheat" by taking + defines from /usr/include/bits/sched.h, which we ass-u-me is diff --git a/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb b/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb index f0e0f9cf1..8921ea746 100644 --- a/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb +++ b/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb @@ -8,10 +8,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a0ab17253e7a3f318da85382c7d5d5d6" PV = "2.7.0+git${SRCPV}" -SRC_URI="git://github.com/HewlettPackard/netperf.git \ - file://cpu_set.patch \ - file://vfork.patch \ - file://init" +SRC_URI = "git://github.com/HewlettPackard/netperf.git \ + file://cpu_set.patch \ + file://vfork.patch \ + file://init \ + file://0001-netlib.c-Move-including-sched.h-out-og-function.patch \ + " SRCREV = "f482bab49fcedee46fc5b755da127f608325cd13" diff --git a/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb b/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb index 4e27e32d4..bb401666c 100644 --- a/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb +++ b/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb @@ -20,7 +20,7 @@ SRC_URI = "git://github.com/thkukuk/yp-tools \ S = "${WORKDIR}/git" -DEPENDS = "libtirpc libnsl2" +DEPENDS = "libtirpc libnsl2 virtual/crypt" inherit autotools systemd SYSTEMD_SERVICE_${PN} = "domainname.service" diff --git a/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch b/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch new file mode 100644 index 000000000..d6f7eb555 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch @@ -0,0 +1,74 @@ +From d22ddc73f00ed056032a635ee8379305ec83bf81 Mon Sep 17 00:00:00 2001 +From: Robert Yang <liezhi.yang@windriver.com> +Date: Wed, 11 Jul 2018 12:02:50 +0800 +Subject: [PATCH] plugins/Makefile.am: fix for automake 1.16.1 + +Fixed: +| i586-poky-linux-gcc: error: netflowPlugin.o: No such file or directory +| i586-poky-linux-gcc: error: unrecognized command line option '-flat_namespace'; did you mean '-Wnamespaces'? +| i586-poky-linux-gcc: fatal error: no input files + +The previous code make things complicated, but we don't have to, let libtool do +most of the things can fix the problem. + +Upstream-Status: Pending [ntop is not longer maintained any more, we need consider moving to ntopng] + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +--- + plugins/Makefile.am | 34 ++++++---------------------------- + 1 file changed, 6 insertions(+), 28 deletions(-) + +diff --git a/plugins/Makefile.am b/plugins/Makefile.am +index 64492e0..bcd0c10 100644 +--- a/plugins/Makefile.am ++++ b/plugins/Makefile.am +@@ -69,40 +69,18 @@ libsflowPlugin_la_CFLAGS = $(AM_CFLAGS) + # by default ntop looks for plugins in the plugins/ subdirectory + # + +- +-.libs/libnetflowPlugin.so@SO_VERSION_PATCH@: +- @if test -f libnetflowPlugin_la-netflowPlugin.o; then \ +- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/libnetflowPlugin.so@SO_VERSION_PATCH@ libnetflowPlugin_la-netflowPlugin.o; \ +- else \ +- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/libnetflowPlugin.so@SO_VERSION_PATCH@ netflowPlugin.o; \ +- fi +- +-netflowPlugin.so$(EXEEXT): .libs/libnetflowPlugin.so@SO_VERSION_PATCH@ +- @$(LN_S) .libs/libnetflowPlugin.so netflowPlugin.so ++netflowPlugin.so$(EXEEXT): libnetflowPlugin.la ++ @$(LN_S) -f .libs/libnetflowPlugin.so netflowPlugin.so + + ############### + +-.libs/librrdPlugin.so@SO_VERSION_PATCH@: +- @if test -f librrdPlugin_la-rrdPlugin.o; then \ +- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/librrdPlugin.so@SO_VERSION_PATCH@ librrdPlugin_la-rrdPlugin.o; \ +- else \ +- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/librrdPlugin.so@SO_VERSION_PATCH@ rrdPlugin.o; \ +- fi +- +-rrdPlugin.so$(EXEEXT): .libs/librrdPlugin.so@SO_VERSION_PATCH@ +- @$(LN_S) .libs/librrdPlugin.so rrdPlugin.so ++rrdPlugin.so$(EXEEXT): librrdPlugin.la ++ @$(LN_S) -f .libs/librrdPlugin.so rrdPlugin.so + + ############### + +-.libs/libsflowPlugin.so@SO_VERSION_PATCH@: +- @if test -f libsflowPlugin_la-sflowPlugin.o; then \ +- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/libsflowPlugin.so@SO_VERSION_PATCH@ libsflowPlugin_la-sflowPlugin.o; \ +- else \ +- $(CC) @MAKE_SHARED_LIBRARY_PARM@ -o .libs/libsflowPlugin.so@SO_VERSION_PATCH@ sflowPlugin.o; \ +- fi +- +-sflowPlugin.so$(EXEEXT): .libs/libsflowPlugin.so@SO_VERSION_PATCH@ +- @$(LN_S) .libs/libsflowPlugin.so sflowPlugin.so ++sflowPlugin.so$(EXEEXT): libsflowPlugin.la ++ @$(LN_S) -f .libs/libsflowPlugin.so sflowPlugin.so + + ############### + +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb b/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb index 298fbec61..2a7a7f2cb 100644 --- a/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb +++ b/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb @@ -17,10 +17,13 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/ntop/ntop-${PV}.tar.gz \ file://ntop.service \ file://use-static-inline.patch \ file://0001-nDPI-Include-sys-types.h.patch \ + file://0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch \ " SRC_URI[md5sum] = "01710b6925a8a5ffe1a41b8b512ebd69" SRC_URI[sha256sum] = "7e8e84cb14d2173beaca4d4cb991a14d84a4bef84ec37b2276bc363f45c52ef8" +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ntop/files/ntop/Stable" + inherit autotools-brokensep useradd pythonnative pkgconfig systemd DEPENDS = "geoip rrdtool python zlib libpcap gdbm" diff --git a/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch b/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch new file mode 100644 index 000000000..571db75f7 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch @@ -0,0 +1,15 @@ +--- ntp-4.2.8p12.original/sntp/libopts/m4/libopts.m4 2018-11-12 17:54:57.747220846 +1300 ++++ ntp-4.2.8p12/sntp/libopts/m4/libopts.m4 2018-11-12 18:00:50.626211641 +1300 +@@ -114,12 +114,6 @@ + AC_PROG_SED + [while : + do +- POSIX_SHELL=`which bash` +- test -x "$POSIX_SHELL" && break +- POSIX_SHELL=`which dash` +- test -x "$POSIX_SHELL" && break +- POSIX_SHELL=/usr/xpg4/bin/sh +- test -x "$POSIX_SHELL" && break + POSIX_SHELL=`/bin/sh -c ' + exec 2>/dev/null + if ! true ; then exit 1 ; fi diff --git a/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-respect-source-date-epoch.patch b/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-respect-source-date-epoch.patch new file mode 100644 index 000000000..58e71c3b8 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-respect-source-date-epoch.patch @@ -0,0 +1,16 @@ +--- ntp-4.2.8p12.original/scripts/build/mkver.in 2018-11-12 14:06:49.333020430 +1300 ++++ ntp-4.2.8p12/scripts/build/mkver.in 2018-11-12 14:15:04.947480167 +1300 +@@ -15,7 +15,12 @@ + *) ConfStr="${ConfStr}-@VER_SUFFIX@" ;; + esac + +-ConfStr="$ConfStr `LC_TIME=C TZ=UTC date`" ++if [ -n "$SOURCE_DATE_EPOCH" ]; then ++ ConfStr="$ConfStr `LC_TIME=C TZ=UTC date -d@$SOURCE_DATE_EPOCH 2>/dev/null`" || ++ ConfStr="$ConfStr `LC_TIME=C TZ=UTC date -r $SOURCE_DATE_EPOCH`" ++else ++ ConfStr="$ConfStr `LC_TIME=C TZ=UTC date`" ++fi + + if [ ! -f .version ]; then + echo 0 > .version diff --git a/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p12.bb index c698fa049..53e41297a 100644 --- a/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb +++ b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p12.bb @@ -12,6 +12,8 @@ DEPENDS = "libevent" SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \ file://ntp-4.2.4_p6-nano.patch \ + file://reproducibility-fixed-path-to-posix-shell.patch \ + file://reproducibility-respect-source-date-epoch.patch \ file://ntpd \ file://ntp.conf \ file://ntpdate \ @@ -23,8 +25,8 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.g file://ntpd.list \ " -SRC_URI[md5sum] = "00950ca2855579541896513e78295361" -SRC_URI[sha256sum] = "f14a39f753688252d683ff907035ffff106ba8d3db21309b742e09b5c3cd278e" +SRC_URI[md5sum] = "1522d66574bae14abb2622746dad2bdc" +SRC_URI[sha256sum] = "709b222b5013d77d26bfff532b5ea470a8039497ef29d09363931c036cb30454" inherit autotools update-rc.d useradd systemd pkgconfig @@ -120,6 +122,7 @@ SYSTEMD_PACKAGES = "${PN} ntpdate sntp" SYSTEMD_SERVICE_${PN} = "ntpd.service" SYSTEMD_SERVICE_ntpdate = "ntpdate.service" SYSTEMD_SERVICE_sntp = "sntp.service" +SYSTEMD_AUTO_ENABLE_sntp = "disable" RPROVIDES_${PN} += "${PN}-systemd" RREPLACES_${PN} += "${PN}-systemd" diff --git a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch index 825e2bf6a..fbdc4e911 100644 --- a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch +++ b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch @@ -13,10 +13,10 @@ include/libisns/util.h:114:12: fatal error: sys/endian.h: No such file or direct # include <sys/endian.h> ^~~~~~~~~~~~~~ -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- Upstream-Status: Submitted +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- include/libisns/util.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.98.bb index abfa7510e..5e64f893e 100644 --- a/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb +++ b/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.98.bb @@ -17,7 +17,7 @@ SRC_URI = "git://github.com/open-iscsi/open-isns \ file://0001-util.h-endian.h-is-available-on-musl-on-linux.patch \ " -SRCREV ?= "09954404e948e41eb0fce8e28836018b4ce3d20d" +SRCREV = "e84374ce7d1f5fc58a4c0fc751e075b2cc752c34" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch deleted file mode 100644 index 25057fbce..000000000 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch +++ /dev/null @@ -1,618 +0,0 @@ -From 8b51a6bf5a4829d8add535a098c0c06a049a9958 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 26 Aug 2017 22:50:57 -0700 -Subject: [PATCH] lanserv: Rename struct parameter printf for namespace - collision - -This comes to fore when we use hardening flags where printf -is treated as macro and gets replaced with printf_chk - -Fixes errors like - -error: no member named '__printf_chk' in 'struct emu_out_s' - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lanserv/OpenIPMI/serv.h | 2 +- - lanserv/emu_cmd.c | 132 ++++++++++++++++++++++++------------------------ - lanserv/ipmi_sim.c | 10 ++-- - 3 files changed, 72 insertions(+), 72 deletions(-) - -diff --git a/lanserv/OpenIPMI/serv.h b/lanserv/OpenIPMI/serv.h -index d12d63a..8555c85 100644 ---- a/lanserv/OpenIPMI/serv.h -+++ b/lanserv/OpenIPMI/serv.h -@@ -522,7 +522,7 @@ uint8_t ipmb_checksum(uint8_t *data, int size, uint8_t start); - typedef struct emu_data_s emu_data_t; - typedef struct emu_out_s - { -- void (*printf)(struct emu_out_s *out, char *format, ...); -+ void (*eprintf)(struct emu_out_s *out, char *format, ...); - void *data; - } emu_out_t; - -diff --git a/lanserv/emu_cmd.c b/lanserv/emu_cmd.c -index ca44032..54b6f7b 100644 ---- a/lanserv/emu_cmd.c -+++ b/lanserv/emu_cmd.c -@@ -76,7 +76,7 @@ emu_get_uchar(emu_out_t *out, char **toks, unsigned char *val, char *errstr, - if (empty_ok) - return ENOSPC; - if (errstr) -- out->printf(out, "**No %s given\n", errstr); -+ out->eprintf(out, "**No %s given\n", errstr); - return EINVAL; - } - if (str[0] == '\'') { -@@ -86,7 +86,7 @@ emu_get_uchar(emu_out_t *out, char **toks, unsigned char *val, char *errstr, - *val = strtoul(str, &tmpstr, 0); - if (*tmpstr != '\0') { - if (errstr) -- out->printf(out, "**Invalid %s given\n", errstr); -+ out->eprintf(out, "**Invalid %s given\n", errstr); - return EINVAL; - } - -@@ -108,7 +108,7 @@ emu_get_uchar_with_vals(emu_out_t *out, char **toks, - if (empty_ok) - return ENOSPC; - if (errstr) -- out->printf(out, "**No %s given\n", errstr); -+ out->eprintf(out, "**No %s given\n", errstr); - return EINVAL; - } - if (str[0] == '\'') { -@@ -131,7 +131,7 @@ emu_get_uchar_with_vals(emu_out_t *out, char **toks, - *val = strtoul(str, &tmpstr, 0); - if (*tmpstr != '\0') { - if (errstr) -- out->printf(out, "**Invalid %s given\n", errstr); -+ out->eprintf(out, "**Invalid %s given\n", errstr); - return EINVAL; - } - out: -@@ -150,12 +150,12 @@ emu_get_bitmask(emu_out_t *out, char **toks, uint16_t *val, char *errstr, - if (empty_ok) - return ENOSPC; - if (errstr) -- out->printf(out, "**No %s given\n", errstr); -+ out->eprintf(out, "**No %s given\n", errstr); - return EINVAL; - } - if (strlen(str) != size) { - if (errstr) -- out->printf(out, "**invalid number of bits in %s\n", errstr); -+ out->eprintf(out, "**invalid number of bits in %s\n", errstr); - return EINVAL; - } - *val = 0; -@@ -166,7 +166,7 @@ emu_get_bitmask(emu_out_t *out, char **toks, uint16_t *val, char *errstr, - *val |= 1 << i; - } else { - if (errstr) -- out->printf(out, "**Invalid bit value '%c' in %s\n", str[j], -+ out->eprintf(out, "**Invalid bit value '%c' in %s\n", str[j], - errstr); - return EINVAL; - } -@@ -184,13 +184,13 @@ emu_get_uint(emu_out_t *out, char **toks, unsigned int *val, char *errstr) - str = mystrtok(NULL, " \t\n", toks); - if (!str) { - if (errstr) -- out->printf(out, "**No %s given\n", errstr); -+ out->eprintf(out, "**No %s given\n", errstr); - return EINVAL; - } - *val = strtoul(str, &tmpstr, 0); - if (*tmpstr != '\0') { - if (errstr) -- out->printf(out, "**Invalid %s given\n", errstr); -+ out->eprintf(out, "**Invalid %s given\n", errstr); - return EINVAL; - } - -@@ -206,7 +206,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr, - - if (!tok) { - if (errstr) -- out->printf(out, "**No %s given\n", errstr); -+ out->eprintf(out, "**No %s given\n", errstr); - return EINVAL; - } - if (*tok == '"') { -@@ -215,7 +215,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr, - tok++; - end = strlen(tok) - 1; - if (tok[end] != '"') { -- out->printf(out, "**ASCII %s doesn't end in '\"'", errstr); -+ out->eprintf(out, "**ASCII %s doesn't end in '\"'", errstr); - return EINVAL; - } - if (end > (len - 1)) -@@ -228,7 +228,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr, - char c[3]; - /* HEX pw */ - if (strlen(tok) != 32) { -- out->printf(out, "**HEX %s not 32 HEX characters long", errstr); -+ out->eprintf(out, "**HEX %s not 32 HEX characters long", errstr); - return EINVAL; - } - c[2] = '\0'; -@@ -239,7 +239,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr, - tok++; - data[i] = strtoul(c, &end, 16); - if (*end != '\0') { -- out->printf(out, "**Invalid HEX character in %s", errstr); -+ out->eprintf(out, "**Invalid HEX character in %s", errstr); - return -1; - } - } -@@ -263,12 +263,12 @@ read_command_file(emu_out_t *out, emu_data_t *emu, const char *command_file) - - buffer = malloc(INPUT_BUFFER_SIZE); - if (!buffer) { -- out->printf(out, "Could not allocate buffer memory\n"); -+ out->eprintf(out, "Could not allocate buffer memory\n"); - rv = ENOMEM; - goto out; - } - while (fgets(buffer+pos, INPUT_BUFFER_SIZE-pos, f)) { -- out->printf(out, "%s", buffer+pos); -+ out->eprintf(out, "%s", buffer+pos); - if (buffer[pos] == '#') - continue; - pos = strlen(buffer); -@@ -318,7 +318,7 @@ sel_enable(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_mc_enable_sel(mc, max_records, flags); - if (rv) -- out->printf(out, "**Unable to enable sel, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to enable sel, error 0x%x\n", rv); - return rv; - } - -@@ -343,9 +343,9 @@ sel_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_mc_add_to_sel(mc, record_type, data, &r); - if (rv) -- out->printf(out, "**Unable to add to sel, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to add to sel, error 0x%x\n", rv); - else -- out->printf(out, "Added record %d\n", r); -+ out->eprintf(out, "Added record %d\n", r); - return rv; - } - -@@ -361,14 +361,14 @@ main_sdr_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - if (rv == ENOSPC) - break; - if (rv) { -- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i); -+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i); - return rv; - } - } - - rv = ipmi_mc_add_main_sdr(mc, data, i); - if (rv) -- out->printf(out, "**Unable to add to sdr, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to add to sdr, error 0x%x\n", rv); - return rv; - } - -@@ -389,14 +389,14 @@ device_sdr_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - if (rv == ENOSPC) - break; - if (rv) { -- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i); -+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i); - return rv; - } - } - - rv = ipmi_mc_add_device_sdr(mc, lun, data, i); - if (rv) -- out->printf(out, "**Unable to add to sdr, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to add to sdr, error 0x%x\n", rv); - return rv; - } - -@@ -439,7 +439,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - while (tok) { - if (strcmp(tok, "poll") == 0) { - if (handler) { -- out->printf(out, "**poll given twice in sensor\n", tok); -+ out->eprintf(out, "**poll given twice in sensor\n", tok); - return -1; - } - -@@ -449,27 +449,27 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - tok = mystrtok(NULL, " \t\n", toks); - if (!tok) { -- out->printf(out, "**No polled sensor handler given\n", tok); -+ out->eprintf(out, "**No polled sensor handler given\n", tok); - return -1; - } - - handler = ipmi_sensor_find_handler(tok); - if (!handler) { -- out->printf(out, "**Invalid sensor handler: %s\n", tok); -+ out->eprintf(out, "**Invalid sensor handler: %s\n", tok); - return -1; - } - - rv = handler->init(mc, lun, num, toks, handler->cb_data, &rcb_data, - &errstr); - if (rv) { -- out->printf(out, "**Error initializing sensor handler: %s\n", -+ out->eprintf(out, "**Error initializing sensor handler: %s\n", - errstr); - return rv; - } - } else if (strcmp(tok, "event-only") == 0) { - event_only = 1; - } else { -- out->printf(out, "**Unknown sensor option: %s\n", tok); -+ out->eprintf(out, "**Unknown sensor option: %s\n", tok); - return -1; - } - -@@ -477,7 +477,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - } - - if (handler && event_only) { -- out->printf(out, "**An event-only sensor cannot be polled\n"); -+ out->eprintf(out, "**An event-only sensor cannot be polled\n"); - return -1; - } - -@@ -488,7 +488,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - if (!rv && handler->postinit) { - rv = handler->postinit(rcb_data, &errstr); - if (rv) { -- out->printf(out, "**Error in sensor handler postinit: %s\n", -+ out->eprintf(out, "**Error in sensor handler postinit: %s\n", - errstr); - } - } -@@ -496,7 +496,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - rv = ipmi_mc_add_sensor(mc, lun, num, type, code, event_only); - } - if (rv) -- out->printf(out, "**Unable to add to sensor, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to add to sensor, error 0x%x\n", rv); - return rv; - } - -@@ -532,7 +532,7 @@ sensor_set_bit(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_mc_sensor_set_bit(mc, lun, num, bit, value, gen_event); - if (rv) -- out->printf(out, "**Unable to set sensor bit, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set sensor bit, error 0x%x\n", rv); - return rv; - } - -@@ -563,7 +563,7 @@ sensor_set_bit_clr_rest(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char ** - - rv = ipmi_mc_sensor_set_bit_clr_rest(mc, lun, num, bit, gen_event); - if (rv) -- out->printf(out, "**Unable to set sensor bit, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set sensor bit, error 0x%x\n", rv); - return rv; - } - -@@ -594,7 +594,7 @@ sensor_set_value(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_mc_sensor_set_value(mc, lun, num, value, gen_event); - if (rv) -- out->printf(out, "**Unable to set sensor value, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set sensor value, error 0x%x\n", rv); - return rv; - } - -@@ -637,7 +637,7 @@ sensor_set_hysteresis(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **to - rv = ipmi_mc_sensor_set_hysteresis(mc, lun, num, support, positive, - negative); - if (rv) -- out->printf(out, "**Unable to set sensor hysteresis, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set sensor hysteresis, error 0x%x\n", rv); - return rv; - } - -@@ -682,7 +682,7 @@ sensor_set_threshold(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **tok - rv = ipmi_mc_sensor_set_threshold(mc, lun, num, support, - enabled, 1, thresholds); - if (rv) -- out->printf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv); - return rv; - } - -@@ -759,7 +759,7 @@ sensor_set_event_support(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char * - assert_support, deassert_support, - assert_enabled, deassert_enabled); - if (rv) -- out->printf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv); - return rv; - } - -@@ -819,7 +819,7 @@ mc_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - else if (strcmp("persist_sdr", tok) == 0) - flags |= IPMI_MC_PERSIST_SDR; - else { -- out->printf(out, "**Invalid MC flag: %s\n", tok); -+ out->eprintf(out, "**Invalid MC flag: %s\n", tok); - return -1; - } - } -@@ -833,7 +833,7 @@ mc_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - device_revision, major_fw_rev, minor_fw_rev, - device_support, mfg_id, product_id, flags); - if (rv) -- out->printf(out, "**Unable to add the MC, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to add the MC, error 0x%x\n", rv); - return rv; - } - -@@ -890,7 +890,7 @@ mc_set_power(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_mc_set_power(mc, power, gen_int); - if (rv) -- out->printf(out, "**Unable to set power, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set power, error 0x%x\n", rv); - return rv; - } - -@@ -916,7 +916,7 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - tok = mystrtok(NULL, " \t\n", toks); - if (!tok) { -- out->printf(out, "**No FRU data type given"); -+ out->eprintf(out, "**No FRU data type given"); - return -1; - } - if (strcmp(tok, "file") == 0) { -@@ -929,13 +929,13 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = get_delim_str(toks, &frufn, &errstr); - if (rv) { -- out->printf(out, "**Error with FRU filename: %d", strerror(rv)); -+ out->eprintf(out, "**Error with FRU filename: %d", strerror(rv)); - return rv; - } - rv = ipmi_mc_add_fru_file(mc, devid, length, file_offset, - (void *) frufn); - if (rv) -- out->printf(out, "**Unable to add FRU file, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to add FRU file, error 0x%x\n", rv); - - } else if (strcmp(tok, "data") == 0) { - for (i=0; i<length; i++) { -@@ -943,14 +943,14 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - if (rv == ENOSPC) - break; - if (rv) { -- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i); -+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i); - return rv; - } - } - - rv = emu_get_uchar(out, toks, &data[i], "data byte", 1); - if (rv != ENOSPC) { -- out->printf(out, "**Error: input data too long for FRU\n", rv, i); -+ out->eprintf(out, "**Error: input data too long for FRU\n", rv, i); - return EINVAL; - } - -@@ -958,9 +958,9 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_mc_add_fru_data(mc, devid, length, NULL, data); - if (rv) -- out->printf(out, "**Unable to add FRU data, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to add FRU data, error 0x%x\n", rv); - } else { -- out->printf(out, "**FRU type not given, need file or data\n"); -+ out->eprintf(out, "**FRU type not given, need file or data\n"); - rv = EINVAL; - } - return rv; -@@ -981,28 +981,28 @@ mc_dump_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_mc_get_fru_data_len(mc, devid, &length); - if (rv) { -- out->printf(out, "**Unable to dump FRU data, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to dump FRU data, error 0x%x\n", rv); - goto out; - } - - data = malloc(length); - if (!data) { -- out->printf(out, "**Unable to dump FRU data, out of memory\n", rv); -+ out->eprintf(out, "**Unable to dump FRU data, out of memory\n", rv); - goto out; - } - - rv = ipmi_mc_get_fru_data(mc, devid, length, data); - if (rv) { -- out->printf(out, "**Unable to dump FRU data, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to dump FRU data, error 0x%x\n", rv); - goto out; - } - - for (i=0; i<length; i++) { - if ((i > 0) && ((i % 8) == 0)) -- out->printf(out, "\n"); -- out->printf(out, " 0x%2.2x", data[i]); -+ out->eprintf(out, "\n"); -+ out->eprintf(out, " 0x%2.2x", data[i]); - } -- out->printf(out, "\n"); -+ out->eprintf(out, "\n"); - - out: - if (data) -@@ -1021,7 +1021,7 @@ mc_setbmc(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - return rv; - rv = ipmi_emu_set_bmc_mc(emu, ipmb); - if (rv) -- out->printf(out, "**Invalid IPMB address\n"); -+ out->eprintf(out, "**Invalid IPMB address\n"); - return rv; - } - -@@ -1032,7 +1032,7 @@ atca_enable(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_emu_atca_enable(emu); - if (rv) -- out->printf(out, "**Unable to enable ATCA mode, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to enable ATCA mode, error 0x%x\n", rv); - return rv; - } - -@@ -1056,7 +1056,7 @@ atca_set_site(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_emu_atca_set_site(emu, hw_address, site_type, site_number); - if (rv) -- out->printf(out, "**Unable to set site type, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set site type, error 0x%x\n", rv); - return rv; - } - -@@ -1072,7 +1072,7 @@ mc_set_num_leds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - rv = ipmi_mc_set_num_leds(mc, count); - if (rv) -- out->printf(out, "**Unable to set number of LEDs, error 0x%x\n", rv); -+ out->eprintf(out, "**Unable to set number of LEDs, error 0x%x\n", rv); - return rv; - } - -@@ -1085,7 +1085,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - err = get_delim_str(toks, &filename, &errstr); - if (err) { -- out->printf(out, "Could not get include filename: %s\n", errstr); -+ out->eprintf(out, "Could not get include filename: %s\n", errstr); - return err; - } - -@@ -1097,7 +1097,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - { - char *nf = malloc(strlen(BASE_CONF_STR) + strlen(filename) + 2); - if (!nf) { -- out->printf(out, "Out of memory in include\n", errstr); -+ out->eprintf(out, "Out of memory in include\n", errstr); - goto out_err; - } - strcpy(nf, BASE_CONF_STR); -@@ -1107,7 +1107,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - filename = nf; - err = read_command_file(out, emu, filename); - if (err) { -- out->printf(out, "Could not read include file %s\n", filename); -+ out->eprintf(out, "Could not read include file %s\n", filename); - } - } - -@@ -1147,7 +1147,7 @@ debug_cmd(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - } else if (strcmp(tok, "sol") == 0) { - level |= DEBUG_SOL; - } else { -- out->printf(out, "Invalid debug level '%s', options are 'raw' and 'msg'\n", -+ out->eprintf(out, "Invalid debug level '%s', options are 'raw' and 'msg'\n", - tok); - return EINVAL; - } -@@ -1168,7 +1168,7 @@ persist_cmd(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - } else if (strcmp(tok, "off") == 0) { - persist_enable = 0; - } else { -- out->printf(out, "Invalid persist vale '%s', options are 'on' and 'off'\n", -+ out->eprintf(out, "Invalid persist vale '%s', options are 'on' and 'off'\n", - tok); - return EINVAL; - } -@@ -1194,18 +1194,18 @@ do_define(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) - - name = mystrtok(NULL, " \t\n", toks); - if (!name) { -- out->printf(out, "No variable name given for define\n"); -+ out->eprintf(out, "No variable name given for define\n"); - return EINVAL; - } - err = get_delim_str(toks, &value, &errstr); - if (err) { -- out->printf(out, "Could not get variable %s value: %s\n", name, errstr); -+ out->eprintf(out, "Could not get variable %s value: %s\n", name, errstr); - return err; - } - err = add_variable(name, value); - if (err) { - free(value); -- out->printf(out, "Out of memory setting variable %s\n", name); -+ out->eprintf(out, "Out of memory setting variable %s\n", name); - return err; - } - return 0; -@@ -1301,7 +1301,7 @@ ipmi_emu_cmd(emu_out_t *out, emu_data_t *emu, char *cmd_str) - return rv; - rv = ipmi_emu_get_mc_by_addr(emu, ipmb, &mc); - if (rv) { -- out->printf(out, "**Invalid MC address\n"); -+ out->eprintf(out, "**Invalid MC address\n"); - return rv; - } - } -@@ -1312,7 +1312,7 @@ ipmi_emu_cmd(emu_out_t *out, emu_data_t *emu, char *cmd_str) - } - } - -- out->printf(out, "**Unknown command: %s\n", cmd); -+ out->eprintf(out, "**Unknown command: %s\n", cmd); - - out: - return rv; -diff --git a/lanserv/ipmi_sim.c b/lanserv/ipmi_sim.c -index 9472cce..30c4f27 100644 ---- a/lanserv/ipmi_sim.c -+++ b/lanserv/ipmi_sim.c -@@ -607,8 +607,8 @@ isim_log(sys_data_t *sys, int logtype, msg_t *msg, const char *format, - - con = data->consoles; - while (con) { -- con->out.printf(&con->out, "%s", str); -- con->out.printf(&con->out, "\n"); -+ con->out.eprintf(&con->out, "%s", str); -+ con->out.eprintf(&con->out, "\n"); - con = con->next; - } - #if HAVE_SYSLOG -@@ -956,7 +956,7 @@ console_bind_ready(int fd, void *cb_data, os_hnd_fd_id_t *id) - newcon->shutdown_on_close = 0; - newcon->telnet = 1; - newcon->tn_pos = 0; -- newcon->out.printf = emu_printf; -+ newcon->out.eprintf = emu_printf; - newcon->out.data = newcon; - - setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); -@@ -1463,10 +1463,10 @@ main(int argc, const char *argv[]) - stdio_console.telnet = 0; - stdio_console.tn_pos = 0; - if (nostdio) { -- stdio_console.out.printf = dummy_printf; -+ stdio_console.out.eprintf = dummy_printf; - stdio_console.out.data = &stdio_console; - } else { -- stdio_console.out.printf = emu_printf; -+ stdio_console.out.eprintf = emu_printf; - stdio_console.out.data = &stdio_console; - } - stdio_console.next = NULL; --- -2.14.1 - diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch new file mode 100644 index 000000000..389407590 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch @@ -0,0 +1,26 @@ +openipmi load swig/python/.libs/_OpenIPMI.so to create .pyc and .pyo files. +It fails when multilib is enable: + +| ImportError: .../lib32-openipmi/2.0.25-r0/OpenIPMI-2.0.25/swig/python/.libs/_OpenIPMI.so: wrong ELF class: ELFCLASS32 + +Don't compile and install .pyc and .pyo files to fix the failure. + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +diff --git a/swig/python/openipmigui/Makefile.am b/swig/python/openipmigui/Makefile.am +index 570e7b9..88258bf 100644 +--- a/swig/python/openipmigui/Makefile.am ++++ b/swig/python/openipmigui/Makefile.am +@@ -34,9 +34,9 @@ localcopy: + fi \ + done + +-all-local: localcopy $(PYC_FILES) $(PYO_FILES) ++all-local: localcopy + +-install-exec-local: $(EXTRA_DIST) $(PYC_FILES) $(PYO_FILES) ++install-exec-local: $(EXTRA_DIST) + $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR)/openipmigui + $(INSTALL_DATA) $^ $(DESTDIR)$(PYTHON_INSTALL_DIR)/openipmigui + diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb index a4f63c5f4..d28ebd484 100644 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb @@ -29,14 +29,14 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \ file://ipmi-init-fix-the-arguments.patch \ file://do-not-install-pyc-and-pyo.patch \ file://include_sys_types.patch \ + file://openipmigui-not-compile-pyc-pyo.patch \ file://openipmi-helper \ file://ipmi.service \ - file://0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch \ " S = "${WORKDIR}/OpenIPMI-${PV}" -SRC_URI[md5sum] = "58f9542cbfcb5fe250b77cf88345e1ec" -SRC_URI[sha256sum] = "bca39a27071278a8b74610181ede8df51e155e5e9031bc8eaa3699d1720292b4" +SRC_URI[md5sum] = "1461ac4d78fc516646fd0a6e605a8b05" +SRC_URI[sha256sum] = "f0f1a0ec732409930b7a31a6daa6cf39b585f52059b62a5f092b7ece21aa75a5" inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.6.bb index 4cad99869..84fd467c7 100644 --- a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb +++ b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.6.bb @@ -2,22 +2,26 @@ SUMMARY = "A full-featured SSL VPN solution via tun device." HOMEPAGE = "http://openvpn.sourceforge.net" SECTION = "net" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=e9b64491ec98eb6c6493ac5e4118f107" +LIC_FILES_CHKSUM = "file://COPYING;md5=7aee596ed2deefe3e8a861e24292abba" DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -inherit autotools systemd +inherit autotools systemd update-rc.d SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \ file://openvpn \ file://openvpn@.service \ file://openvpn-volatile.conf" -SRC_URI[md5sum] = "705a79d005558d94fa1e2b74e4413e97" -SRC_URI[sha256sum] = "1ae883d9522c9fa6d189e5e4aaa058a93edd3d0b897e3c2664107c4785099fc3" +SRC_URI[md5sum] = "971d57e29b78b4b902eb2f4aae2f05a7" +SRC_URI[sha256sum] = "738dbd37fcf8eb9382c53628db22258c41ba9550165519d9200e8bebaef4cbe2" SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service" SYSTEMD_AUTO_ENABLE = "disable" +INITSCRIPT_PACKAGES = "${PN}" +INITSCRIPT_NAME_${PN} = "openvpn" +INITSCRIPT_PARAMS_${PN} = "start 10 2 3 4 5 . stop 70 0 1 6 ." + CFLAGS += "-fno-inline" # I want openvpn to be able to read password from file (hrw) diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch new file mode 100644 index 000000000..4b595613f --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch @@ -0,0 +1,103 @@ +From 5a8a2f81ef8650f06d1d9d268add612ab46025f1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Jun 2018 22:57:04 -0700 +Subject: [PATCH] Remove man files which cant be built + +Remove need for pandoc-prebuilt during cross build + +Fixes errors + +| CMake Error at libibumad/man/cmake_install.cmake:105 (file): +| file INSTALL cannot find +| "/mnt/a/oe/build/tmp/work/core2-64-bec-linux-musl/rdma-core/18.1-r0/git/buildlib/pandoc-prebuilt/41bbb0bed7a781be59e8c0dcd8b7278af2ce6882". +| Call Stack (most recent call first): +| cmake_install.cmake:48 (include) + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libibumad/man/CMakeLists.txt | 1 - + libibverbs/man/CMakeLists.txt | 15 --------------- + providers/mlx5/man/CMakeLists.txt | 1 - + 3 files changed, 17 deletions(-) + +diff --git a/libibumad/man/CMakeLists.txt b/libibumad/man/CMakeLists.txt +index 185584a0..ac45a4e9 100644 +--- a/libibumad/man/CMakeLists.txt ++++ b/libibumad/man/CMakeLists.txt +@@ -15,7 +15,6 @@ rdma_man_pages( + umad_get_mad_addr.3 + umad_get_pkey.3 + umad_get_port.3 +- umad_init.3.md + umad_open_port.3 + umad_poll.3 + umad_recv.3 +diff --git a/libibverbs/man/CMakeLists.txt b/libibverbs/man/CMakeLists.txt +index 86dd49de..b54675be 100644 +--- a/libibverbs/man/CMakeLists.txt ++++ b/libibverbs/man/CMakeLists.txt +@@ -5,7 +5,6 @@ rdma_man_pages( + ibv_alloc_pd.3 + ibv_alloc_td.3 + ibv_asyncwatch.1 +- ibv_attach_mcast.3.md + ibv_bind_mw.3 + ibv_create_ah.3 + ibv_create_ah_from_wc.3 +@@ -14,7 +13,6 @@ rdma_man_pages( + ibv_create_cq_ex.3 + ibv_modify_cq.3 + ibv_create_flow.3 +- ibv_create_flow_action.3.md + ibv_create_qp.3 + ibv_create_qp_ex.3 + ibv_create_rwq_ind_table.3 +@@ -23,15 +21,9 @@ rdma_man_pages( + ibv_create_wq.3 + ibv_devices.1 + ibv_devinfo.1 +- ibv_event_type_str.3.md +- ibv_fork_init.3.md + ibv_get_async_event.3 + ibv_get_cq_event.3 +- ibv_get_device_guid.3.md + ibv_get_device_list.3 +- ibv_get_device_name.3.md +- ibv_get_srq_num.3.md +- ibv_inc_rkey.3.md + ibv_modify_qp.3 + ibv_modify_qp_rate_limit.3 + ibv_modify_srq.3 +@@ -46,19 +38,12 @@ rdma_man_pages( + ibv_post_srq_recv.3 + ibv_query_device.3 + ibv_query_device_ex.3 +- ibv_query_gid.3.md +- ibv_query_pkey.3.md + ibv_query_port.3 + ibv_query_qp.3 + ibv_query_rt_values_ex.3 + ibv_query_srq.3 +- ibv_rate_to_mbps.3.md +- ibv_rate_to_mult.3.md + ibv_rc_pingpong.1 + ibv_reg_mr.3 +- ibv_req_notify_cq.3.md +- ibv_rereg_mr.3.md +- ibv_resize_cq.3.md + ibv_srq_pingpong.1 + ibv_uc_pingpong.1 + ibv_ud_pingpong.1 +diff --git a/providers/mlx5/man/CMakeLists.txt b/providers/mlx5/man/CMakeLists.txt +index cdc7115e..876b6fcf 100644 +--- a/providers/mlx5/man/CMakeLists.txt ++++ b/providers/mlx5/man/CMakeLists.txt +@@ -1,5 +1,4 @@ + rdma_man_pages( +- mlx5dv_flow_action_esp.3.md + mlx5dv_get_clock_info.3 + mlx5dv_init_obj.3 + mlx5dv_query_device.3 +-- +2.17.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch new file mode 100644 index 000000000..b04c9b723 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch @@ -0,0 +1,29 @@ +From f2df1db11f3a9580774300e703b6f53dbcdb28ef Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jun 2018 20:17:57 -0700 +Subject: [PATCH] S_IFSOCK is defined in both glibc/musl + +Fixes + +preload.c:1183:46: error: '__S_IFSOCK' undeclared (first use in this function); did you mean 'S_IFSOCK'? + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + librdmacm/preload.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/librdmacm/preload.c b/librdmacm/preload.c +index 0f2aa250..d46beb1b 100644 +--- a/librdmacm/preload.c ++++ b/librdmacm/preload.c +@@ -1180,7 +1180,7 @@ int __fxstat(int ver, int socket, struct stat *buf) + if (fd_get(socket, &fd) == fd_rsocket) { + ret = real.fxstat(ver, socket, buf); + if (!ret) +- buf->st_mode = (buf->st_mode & ~S_IFMT) | __S_IFSOCK; ++ buf->st_mode = (buf->st_mode & ~S_IFMT) | S_IFSOCK; + } else { + ret = real.fxstat(ver, fd, buf); + } diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch new file mode 100644 index 000000000..aa335244b --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch @@ -0,0 +1,25 @@ +From 65b9a47c07be4611b4fbbcafff1993186bcb0537 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Jun 2018 19:15:52 -0700 +Subject: [PATCH 1/2] include endian.h for htole32 and friends + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + providers/hns/hns_roce_u.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h +index bd66c6e7..b07424db 100644 +--- a/providers/hns/hns_roce_u.h ++++ b/providers/hns/hns_roce_u.h +@@ -34,6 +34,7 @@ + #define _HNS_ROCE_U_H + + #include <stddef.h> ++#include <endian.h> + #include <util/compiler.h> + + #include <infiniband/driver.h> +-- +2.17.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch new file mode 100644 index 000000000..347f964e9 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch @@ -0,0 +1,27 @@ +From 3d9cae15c69c0b3260a024ad5d6802a8d85515a2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Jun 2018 19:18:24 -0700 +Subject: [PATCH 2/2] Remove unused include for execinfo.h + +Fixes build on musl + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + providers/qedr/qelr_verbs.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/providers/qedr/qelr_verbs.c b/providers/qedr/qelr_verbs.c +index e3b01f28..2ee1c832 100644 +--- a/providers/qedr/qelr_verbs.c ++++ b/providers/qedr/qelr_verbs.c +@@ -54,7 +54,6 @@ + + #include <stdio.h> + #include <stdlib.h> +-#include <execinfo.h> + + #define QELR_SQE_ELEMENT_SIZE (sizeof(struct rdma_sq_sge)) + #define QELR_RQE_ELEMENT_SIZE (sizeof(struct rdma_rq_sge)) +-- +2.17.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch new file mode 100644 index 000000000..e887f222b --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch @@ -0,0 +1,26 @@ +From 82486f7e1ee2aa07a5c12cb357834993aa8c1d20 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jun 2018 20:19:13 -0700 +Subject: [PATCH] neigh.c: Do not include net/if_packet.h + +This header is glibc specific + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libibverbs/neigh.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libibverbs/neigh.c b/libibverbs/neigh.c +index 21177db0..cfc593a0 100644 +--- a/libibverbs/neigh.c ++++ b/libibverbs/neigh.c +@@ -2,7 +2,6 @@ + */ + + #include "config.h" +-#include <net/if_packet.h> + #include <linux/netlink.h> + #include <linux/rtnetlink.h> + #include <endian.h> diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb new file mode 100644 index 000000000..6ad864d1e --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb @@ -0,0 +1,30 @@ +SUMMARY = "Userspace support for InfiniBand/RDMA verbs" +DESCRIPTION = "This is the userspace components for the Linux Kernel's drivers Infiniband/RDMA subsystem." +SECTION = "libs" + +DEPENDS = "libnl" +RDEPENDS_${PN} = "bash perl" + +SRC_URI = "git://github.com/linux-rdma/rdma-core.git;branch=stable-v18 \ + file://0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch \ + file://0002-neigh.c-Do-not-include-net-if_packet.h.patch \ + file://0001-include-endian.h-for-htole32-and-friends.patch \ + file://0002-Remove-unused-include-for-execinfo.h.patch \ + file://0001-Remove-man-files-which-cant-be-built.patch \ + " +SRCREV = "7844b3fbe5120623d63b29ecb43eb83a61129658" +S = "${WORKDIR}/git" + +#Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md +LICENSE = "BSD-2-Clause | GPLv2" +LIC_FILES_CHKSUM = "file://COPYING.BSD_FB;md5=0ec18bae1a9df92c8d6ae01f94a289ae \ + file://COPYING.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263" + + +FILES_SOLIBSDEV = "" +FILES_${PN} += "${libdir}/*" +INSANE_SKIP_${PN} += "dev-so" + +inherit cmake + +OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb new file mode 100644 index 000000000..30d0a7675 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb @@ -0,0 +1,28 @@ +# +# Copyright (C) 2013 Wind River Systems, Inc. +# + +SUMMARY = "Simple Protocol for Independent Computing Environments" +DESCRIPTION = "SPICE (the Simple Protocol for Independent Computing \ +Environments) is a remote-display system built for virtual \ +environments which allows users to view a computing 'desktop' \ +environment - not only on its computer-server machine, but also from \ +anywhere on the Internet and using a wide variety of machine \ +architectures." + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=b37311cb5604f3e5cc2fb0fd23527e95" + +PV = "0.12.13+git${SRCPV}" + +SRCREV = "87441524f4e7b79658e42bd8f1f6c3e3c8649aa5" + +SRC_URI = " \ + git://anongit.freedesktop.org/spice/spice-protocol \ +" + +S = "${WORKDIR}/git" + +inherit autotools gettext pkgconfig + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch new file mode 100644 index 000000000..505b7c890 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch @@ -0,0 +1,66 @@ +From 0726ce6d6f52e135e28f15ca8392568c84909b1d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 16 Jun 2018 16:21:39 -0700 +Subject: [PATCH] Convert pthread_t to be numeric + +typecast pthread_t to unsigned long +pthread_t is implemented as a struct point in musl and its as per standard + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + server/red-channel.c | 5 +++-- + server/red-client.c | 6 +++--- + 2 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/server/red-channel.c b/server/red-channel.c +index 1b38f04d..11dc667b 100644 +--- a/server/red-channel.c ++++ b/server/red-channel.c +@@ -192,7 +192,7 @@ red_channel_constructed(GObject *object) + { + RedChannel *self = RED_CHANNEL(object); + +- red_channel_debug(self, "thread_id 0x%lx", self->priv->thread_id); ++ red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id); + + RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self); + +@@ -475,7 +475,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc) + red_channel_warning(channel, "channel->thread_id (0x%lx) != pthread_self (0x%lx)." + "If one of the threads is != io-thread && != vcpu-thread, " + "this might be a BUG", +- channel->priv->thread_id, pthread_self()); ++ (unsigned long)channel->priv->thread_id, ++ (unsigned long)pthread_self()); + } + spice_return_if_fail(channel); + link = g_list_find(channel->priv->clients, rcc); +diff --git a/server/red-client.c b/server/red-client.c +index ddfc5400..76986640 100644 +--- a/server/red-client.c ++++ b/server/red-client.c +@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *client) + spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)." + "If one of the threads is != io-thread && != vcpu-thread," + " this might be a BUG", +- client->thread_id, pthread_self()); ++ (unsigned long)client->thread_id, (unsigned long)pthread_self()); + } + FOREACH_CHANNEL_CLIENT(client, rcc) { + if (red_channel_client_is_connected(rcc)) { +@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *client) + spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)." + "If one of the threads is != io-thread && != vcpu-thread," + " this might be a BUG", +- client->thread_id, +- pthread_self()); ++ (unsigned long)client->thread_id, ++ (unsigned long)pthread_self()); + } + red_client_set_disconnecting(client); + FOREACH_CHANNEL_CLIENT(client, rcc) { +-- +2.17.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch new file mode 100644 index 000000000..1f9d5fdd7 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch @@ -0,0 +1,36 @@ +From 7023732c65b4dc509c46a54fb7715da275b5597f Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Thu, 13 Sep 2018 12:39:44 +0800 +Subject: [PATCH] spice: fix compile fail problem + +compile error: +format '%d' expects argument of type 'int', but argument 6 has +type 'long unsigned int' [-Werror=format=] + +spice compile failed on 32bit system, since upstream commit +9541cd2fe(in V0.14.1) change %ld to %PRIdPTR, %PRIdPTR is %d, but argument +strm.total_out is uLong. + +Upstream-Status: Submitted[https://github.com/freedesktop/spice/pull/1] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + server/red-replay-qxl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c +index 1fce76c..bd33b58 100644 +--- a/server/red-replay-qxl.c ++++ b/server/red-replay-qxl.c +@@ -266,7 +266,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz + exit(1); + } + if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) { +- spice_error("inflate error %d (disc: %" PRIdPTR ")", ret, *size - strm.total_out); ++ spice_error("inflate error %d (disc: %ld)", ret, *size - strm.total_out); + if (ret == Z_DATA_ERROR) { + /* last operation may be wrong. since we do the recording + * in red_worker, when there is a shutdown from the vcpu/io thread +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb new file mode 100644 index 000000000..1ad46c2c3 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb @@ -0,0 +1,57 @@ +# +# Copyright (C) 2013 Wind River Systems, Inc. +# + +SUMMARY = "Simple Protocol for Independent Computing Environments" +DESCRIPTION = "SPICE (the Simple Protocol for Independent Computing \ +Environments) is a remote-display system built for virtual \ +environments which allows users to view a computing 'desktop' \ +environment - not only on its computer-server machine, but also from \ +anywhere on the Internet and using a wide variety of machine \ +architectures." + +LICENSE = "BSD & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +PV = "0.14.1+git${SRCPV}" + +SRCREV_spice = "eaa07ef15cfc3bf57a69da2576af66f028787774" +SRCREV_spice-common = "6b93b3fce8909b836ef1d1434d191900d8aa00be" + +SRCREV_FORMAT = "spice_spice-common" + +SRC_URI = " \ + git://anongit.freedesktop.org/spice/spice;name=spice \ + git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common \ + file://0001-Convert-pthread_t-to-be-numeric.patch \ + file://0001-spice-fix-compile-fail-problem.patch \ +" + +S = "${WORKDIR}/git" + +inherit autotools gettext pythonnative python-dir pkgconfig + +DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0 python-pyparsing-native python-six-native glib-2.0-native" +DEPENDS_append_class-nativesdk = "nativesdk-openssl" + +export PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" +export PYTHONPATH="${PKG_CONFIG_SYSROOT_DIR}${libdir}/python2.7/site-packages" + +PACKAGECONFIG_class-native = "" +PACKAGECONFIG_class-nativesdk = "" +PACKAGECONFIG ?= "sasl" + +PACKAGECONFIG[celt051] = "--enable-celt051,--disable-celt051,celt051" +PACKAGECONFIG[smartcard] = "--enable-smartcard,--disable-smartcard,libcacard," +PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl," +PACKAGECONFIG[client] = "--enable-client,--disable-client,," +PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,," +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus," +PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,," +PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama," + +COMPATIBLE_HOST = '(x86_64|i.86).*-linux' + +BBCLASSEXTEND = "native nativesdk" + +EXTRA_OECONF_toolchain-clang += "--disable-werror" diff --git a/meta-openembedded/meta-networking/recipes-support/spice/usbredir_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/usbredir_git.bb new file mode 100644 index 000000000..3fea7528e --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/spice/usbredir_git.bb @@ -0,0 +1,21 @@ +SUMMARY = "usbredir libraries and utilities" + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4b54a1fd55a448865a0b32d41598759d \ +" + +DEPENDS = "libusb1" + +SRCREV = "39aa3c69f61bba28856a3eef3fe4ab37a3968e88" +PV = "0.7.1+git${SRCPV}" + +SRC_URI = " \ + git://anongit.freedesktop.org/spice/usbredir \ +" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch b/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch index be660d1fd..5945507bf 100644 --- a/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch +++ b/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch @@ -3,7 +3,7 @@ From: "Roy.Li" <rongqing.li@windriver.com> Date: Tue, 4 Mar 2014 14:38:42 +0800 Subject: [PATCH] fix the function parameter -Upstream-Status: pending +Upstream-Status: Pending Original openssl_diffie_hellman_create has three parameters, but it is reassigned a function pointer which has one parameter, and diff --git a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb index f2fe1f1cb..c8bb17c5b 100644 --- a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb +++ b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb @@ -12,8 +12,10 @@ SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \ file://0001-memory.h-Include-stdint.h-for-uintptr_t.patch \ " -SRC_URI[md5sum] = "46aa3aa18fbc4bd528f9a0345ce79913" -SRC_URI[sha256sum] = "e0a60a30ebf3c534c223559e1686497a21ded709a5d605c5123c2f52bcc22e92" +SRC_URI[md5sum] = "86b7e9321cde075cf382268fd282e0b0" +SRC_URI[sha256sum] = "006f9c9126e2a2f4e7a874b5e1bd2abec1bbbb193c8b3b3a4c6ccd8c2d454bec" + +UPSTREAM_CHECK_REGEX = "strongswan-(?P<pver>\d+(\.\d+)+)\.tar" EXTRA_OECONF = " \ --without-lib-prefix \ diff --git a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb deleted file mode 100644 index ec8478d6b..000000000 --- a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Program for providing universal TLS/SSL tunneling service" -HOMEPAGE = "http://www.stunnel.org/" -DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server." -SECTION = "net" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=866cdc7459d91e092b174388fab8d283" -DEPENDS = "openssl zlib tcp-wrappers" - -RDEPENDS_${PN} += "perl" - -SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz \ - file://fix-openssl-no-des.patch \ -" - -SRC_URI[md5sum] = "9079f5fafbccaf88b7d92b227d78249a" -SRC_URI[sha256sum] = "ffa386ae4c825f35f35157c285e7402a6d58779ad8c3822f74a9d355b54aba1d" - -inherit autotools - -EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)}" -PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.49.bb b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.49.bb new file mode 100644 index 000000000..eca77cf84 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.49.bb @@ -0,0 +1,37 @@ +SUMMARY = "Program for providing universal TLS/SSL tunneling service" +DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server." +HOMEPAGE = "https://www.stunnel.org/" +SECTION = "net" +# Note: Linking stunnel statically or dynamically with other modules is making +# a combined work based on stunnel. Thus, the terms and conditions of the GNU +# General Public License cover the whole combination. +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=f6b7fe7379c9c2d7db6c80f7bd41e06d" + +DEPENDS = "autoconf-archive libnsl2 openssl" + +SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz \ + file://fix-openssl-no-des.patch \ +" + +SRC_URI[md5sum] = "0b41240e5585ec7d55ca343feed5530f" +SRC_URI[sha256sum] = "3d6641213a82175c19f23fde1c3d1c841738385289eb7ca1554f4a58b96d955e" + +inherit autotools + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} libwrap" + +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[libwrap] = "--enable-libwrap,--disable-libwrap,tcp-wrappers" +PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" + +EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips" + +# When cross compiling, configure defaults to nobody, but provides no option to change it. +EXTRA_OEMAKE += "DEFAULT_GROUP='nogroup'" + +# stunnel3 is a Perl wrapper to allow use of the legacy stunnel 3.x commandline +# syntax with stunnel >= 4.05 +PACKAGES =+ "stunnel3" +FILES_stunnel3 = "${bindir}/stunnel3" +RDEPENDS_stunnel3 += "${PN} perl" diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch index 01d0236be..91508d721 100644 --- a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch +++ b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch @@ -1,19 +1,40 @@ ---- a/configure.ac 2016-01-01 17:42:27.000000000 +0100 -+++ b/configure.ac 2017-04-20 14:03:37.238254471 +0200 -@@ -284,24 +284,12 @@ - AC_SUBST(LIBS) - AC_SUBST(ADDITIONAL_OBJECTS) +From b71eb384522b5ce4629dee6e8be257fb4880fef3 Mon Sep 17 00:00:00 2001 +From: Benjamin Gaignard <benjamin.gaignard@linaro.org> +Date: Thu, 20 Apr 2017 14:25:18 +0200 + +--- + Makefile.am | 1 - + configure.ac | 9 --------- + 2 files changed, 10 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index e9113c2..2fe3d54 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2,7 +2,6 @@ SUBDIRS = \ + src \ + data \ + etc \ +- docs \ + m4macros \ + tests + +diff --git a/configure.ac b/configure.ac +index 48ee0b2..a1a5fa1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -194,10 +194,6 @@ AC_SUBST(ADDITIONAL_OBJECTS) + AC_PATH_PROG(XSLTPROC, xsltproc, no) + AM_CONDITIONAL(HAVE_XSLTPROC, test "x$XSLTPROC" != "xno") -# Check for asciidoc -AC_PATH_PROG(A2X, a2x, no) -AM_CONDITIONAL(HAVE_A2X, test "x$A2X" != "xno") --if test x"$A2X" = x"no"; then -- AC_MSG_ERROR([Test for asciidoc failed. See the file 'INSTALL' for help.]) --fi - - AC_CONFIG_FILES([ - Makefile - src/Makefile + # checking xmllint + AC_PATH_PROG(XMLLINT, xmllint, no) + if test "x$XMLLINT" != "xno"; then +@@ -219,11 +215,6 @@ src/Makefile data/Makefile data/templates/Makefile etc/Makefile @@ -25,13 +46,3 @@ m4macros/Makefile tests/Makefile tests/scripts/Makefile ---- a/Makefile.am 2016-01-01 17:42:27.000000000 +0100 -+++ b/Makefile.am 2017-04-20 14:03:53.842822997 +0200 -@@ -2,7 +2,6 @@ - src \ - data \ - etc \ -- docs \ - m4macros \ - tests - diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service index ea079f955..df4274573 100644 --- a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service +++ b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service @@ -8,7 +8,7 @@ ExecStartPre=/bin/mkdir -p /var/log/tinyproxy ExecStartPre=/bin/chown -R nobody.tinyproxy /var/log/tinyproxy ExecStartPre=/bin/mkdir -p /var/run/tinyproxy ExecStartPre=/bin/chown -R nobody.tinyproxy /var/run/tinyproxy -ExecStart=/usr/sbin/tinyproxy -d +ExecStart=/usr/bin/tinyproxy -d [Install] WantedBy=multi-user.target diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb index 98192dc99..144dcf33a 100644 --- a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb +++ b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb @@ -7,13 +7,12 @@ SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.gz file://disable-documentation.patch \ file://tinyproxy.service" -SRC_URI[md5sum] = "3b60f7d08e0821ed1a3e2cf1e5778cac" -SRC_URI[sha256sum] = "8234c879a129feee61efa98bac14a1a3e46e5cf08f01696a216940872aa70faf" +SRC_URI[md5sum] = "423047c8dc53a15e19f78e238198549c" +SRC_URI[sha256sum] = "6020955e6a0ef0ef898ad5bb17a448c47f9e4c003c464b4ae7c4dba063272055" EXTRA_OECONF += " \ --enable-filter \ --enable-transparent \ - --disable-regexcheck \ --enable-reverse \ --enable-upstream \ --enable-xtinyproxy \ diff --git a/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb b/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.8.bb index 1166f9a8d..0bbdd6b1d 100644 --- a/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb +++ b/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.8.bb @@ -6,8 +6,8 @@ LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504" SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz" -SRC_URI[md5sum] = "231d6ba7820d89a712fe7d727ab0f8e6" -SRC_URI[sha256sum] = "9e9215af0315257c6cc4f40fbc6161057e861be1fff10a38a5564f699e99c78f" +SRC_URI[md5sum] = "f7a5affd3000b5aafbb13df49719b6c0" +SRC_URI[sha256sum] = "e98c6318e497124d777ca71eae752d213207c35de9f782c8bcaaf82ece20e599" DEPENDS = "openssl" diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/files/libgcrypt.patch b/meta-openembedded/meta-networking/recipes-support/wireshark/files/libgcrypt.patch deleted file mode 100644 index 2aa58f73c..000000000 --- a/meta-openembedded/meta-networking/recipes-support/wireshark/files/libgcrypt.patch +++ /dev/null @@ -1,53 +0,0 @@ -use OR PKG_CONFIG scheme for libgcrypt - -Upstream-Status: Inappropriate OE specific - -Signed-off-by: Armin Kuster <akuster808@gmail.com> - -Index: wireshark-2.4.4/m4/libgcrypt.m4 -=================================================================== ---- wireshark-2.4.4.orig/m4/libgcrypt.m4 -+++ wireshark-2.4.4/m4/libgcrypt.m4 -@@ -27,11 +27,11 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], - libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") - if test x$libgcrypt_config_prefix != x ; then - if test x${LIBGCRYPT_CONFIG+set} != xset ; then -- LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config -+ LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/libgcrypt.pc - fi - fi - -- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no) -+ AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt.pc, no) - tmp=ifelse([$1], ,1:1.2.0,$1) - if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then - req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` -@@ -50,7 +50,7 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` - req_micro=`echo $min_libgcrypt_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` -- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` -+ libgcrypt_config_version=`$PKG_CONFIG --modversion libgcrypt` - major=`echo $libgcrypt_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` - minor=`echo $libgcrypt_config_version | \ -@@ -82,7 +82,7 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], - # If we have a recent libgcrypt, we should also check that the - # API is compatible - if test "$req_libgcrypt_api" -gt 0 ; then -- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` -+ tmp=`$PKG_CONFIG --api-version libgcrypt 2>/dev/null || echo 0` - if test "$tmp" -gt 0 ; then - AC_MSG_CHECKING([LIBGCRYPT API version]) - if test "$req_libgcrypt_api" -eq "$tmp" ; then -@@ -95,8 +95,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], - fi - fi - if test $ok = yes; then -- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` -- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` -+ LIBGCRYPT_CFLAGS=`$PKG_CONFIG --cflags libgcrypt` -+ LIBGCRYPT_LIBS=`$PKG_CONFIG --libs libgcrypt` - ifelse([$2], , :, [$2]) - else - LIBGCRYPT_CFLAGS="" diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch new file mode 100644 index 000000000..e65ef9b10 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch @@ -0,0 +1,29 @@ +From 1a6a5d2bcb1adec9ba138c2ebee7bbc994620aff Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Jun 2018 23:23:44 -0700 +Subject: [PATCH] Add libm to link for fmod() API + +fixes +ld: CMakeFiles/tshark.dir/ui/cli/tap-comparestat.c.o: undefined reference to symbol 'fmod@@GLIBC_2.2.5' +| /mnt/a/oe/build/tmp/work/core2-64-bec-linux/wireshark/1_2.6.1-r0/recipe-sysroot/lib/libm.so.6: error adding symbols: DSO missing from command line + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7950e85..acee140 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2494,6 +2494,7 @@ if(BUILD_tshark) + ${LIBEPAN_LIBS} + ${APPLE_CORE_FOUNDATION_LIBRARY} + ${APPLE_SYSTEM_CONFIGURATION_LIBRARY} ++ m + ) + set(tshark_FILES + capture_opts.c +-- +2.17.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.4.8.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.4.8.bb deleted file mode 100644 index 51a7aa8cd..000000000 --- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.4.8.bb +++ /dev/null @@ -1,73 +0,0 @@ -DESCRIPTION = "wireshark - a popular network protocol analyzer" -HOMEPAGE = "http://www.wireshark.org" -SECTION = "net" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77" - -DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error" - -SRC_URI = "https://1.as.dl.wireshark.org/src/all-versions/${BP}.tar.xz" -SRC_URI += "file://libgcrypt.patch" - -UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src" - -SRC_URI[md5sum] = "25f93aa6a2b3fdd9d1f01a49f84d224f" -SRC_URI[sha256sum] = "db8ed7828c157e4ffb91fb8c41fa5a2f37fd44259175951a5c37848bf641f5e8" - -PE = "1" - -inherit autotools pkgconfig perlnative upstream-version-is-even - -ARM_INSTRUCTION_SET = "arm" - -PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc" -PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk2 graphics", "", d)}" - -PACKAGECONFIG[libcap] = "--with-libcap=${STAGING_DIR_HOST}/usr, --with-libcap=no --enable-pcap-ng-default , libcap" -PACKAGECONFIG[libpcap] = "--with-pcap=${STAGING_DIR_HOST}/usr --with-pcap-remote, --with-pcap=no --enable-pcap-ng-default , libpcap" -PACKAGECONFIG[libsmi] = "--with-libsmi=yes, --with-libsmi=no, libsmi" -PACKAGECONFIG[libnl] = "--with-libnl=yes, --with-libnl=no, libnl" -PACKAGECONFIG[portaudio] = "--with-portaudio=yes, --with-portaudio=no, portaudio-v19" -PACKAGECONFIG[gtk2] = "--with-gtk=2, , gtk+" -PACKAGECONFIG[gtk3] = "--with-gtk=3, , gtk+3" -PACKAGECONFIG[graphics] = "--enable-wireshark, --with-gtk=no --disable-wireshark," -PACKAGECONFIG[gnutls] = "--with-gnutls=yes, --with-gnutls=no, gnutls" -PACKAGECONFIG[ssl] = "--with-ssl=yes, --with-ssl=no, openssl" -PACKAGECONFIG[krb5] = "--with-krb5=yes, --with-krb5=no, krb5" -PACKAGECONFIG[lua] = "--with-lua=yes, --with-lua=no, lua" -PACKAGECONFIG[zlib] = "--with-zlib=yes, --with-zlib=no, zlib" -PACKAGECONFIG[geoip] = "--with-geoip=yes, --with-geoip=no, geoip" -PACKAGECONFIG[plugins] = "--with-plugins=yes, --with-plugins=no" -PACKAGECONFIG[sbc] = "--with-sbc=yes, --with-sbc=no, sbc" -PACKAGECONFIG[libssh] = "--with-libssh=${STAGING_DIR_HOST}/usr, --with-libssh=no, libssh2" -PACKAGECONFIG[lz4] = "--with-lz4=${STAGING_DIR_HOST}/usr, --with-lz4=no, lz4" - -# these next two options require addional layers -PACKAGECONFIG[c-ares] = "--with-c-ares=yes, --with-c-ares=no, c-ares" - -EXTRA_OECONF += "--with-libgcrypt-prefix=${PKG_CONFIG_DIR} --with-qt=no --enable-tshark --enable-rawshark" - -LDFLAGS_append = " -lgpg-error" - -# Currently wireshark does not install header files -do_install_append () { - - install -d ${D}/${includedir}/${BPN} - install -d ${D}/${includedir}/${BPN}/epan - install -d ${D}/${includedir}/${BPN}/epan/crypt - install -d ${D}/${includedir}/${BPN}/epan/dfilter - install -d ${D}/${includedir}/${BPN}/epan/dissectors - install -d ${D}/${includedir}/${BPN}/epan/ftypes - install -d ${D}/${includedir}/${BPN}/epan/wmem - - install config.h ${D}/${includedir}/${BPN} - install ${S}/register.h ${D}/${includedir}/${BPN} - install -D ${S}/epan/*.h ${D}/${includedir}/${BPN}/epan - install -D ${S}/epan/crypt/*.h ${D}/${includedir}/${BPN}/epan/crypt - install -D ${S}/epan/dfilter/*.h ${D}/${includedir}/${BPN}/epan/dfilter - install -D ${S}/epan/dissectors/*.h ${D}/${includedir}/${BPN}/epan/dissectors - install -D ${S}/epan/ftypes/*.h ${D}/${includedir}/${BPN}/epan/ftypes - install -D ${S}/epan/wmem/*.h ${D}/${includedir}/${BPN}/epan/wmem -} - -FILES_${PN} += "${datadir}*" diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.4.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.4.bb new file mode 100644 index 000000000..595502e76 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.4.bb @@ -0,0 +1,94 @@ +DESCRIPTION = "wireshark - a popular network protocol analyzer" +HOMEPAGE = "http://www.wireshark.org" +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77" + +DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2 bison-native" + +DEPENDS_append_class-target = " wireshark-native chrpath-replacement-native " + +SRC_URI = "https://1.as.dl.wireshark.org/src/all-versions/${BP}.tar.xz \ + file://0001-Add-libm-to-link-for-fmod-API.patch \ + " + +UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src" + +SRC_URI[md5sum] = "8aa7b8c8ce0b6ce4256a081493819d6f" +SRC_URI[sha256sum] = "a06b007e6343f148b8b93443b2fcfc9bb3204311cd268565d54d1b71660bc861" + +PE = "1" + +inherit cmake pkgconfig pythonnative perlnative upstream-version-is-even + +ARM_INSTRUCTION_SET = "arm" + +# Options: gtk+, gtk+3 and qt5 +GTK = "gtk+3" + +PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc" +PACKAGECONFIG_append_class-target = " ${@bb.utils.contains("DISTRO_FEATURES", "x11", " ${GTK}", "", d)}" + +PACKAGECONFIG_class-native = "libpcap gnutls ssl libssh" + +PACKAGECONFIG[libcap] = "-DENABLE_CAP=ON,-DENABLE_CAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON, libcap" +PACKAGECONFIG[libpcap] = "-DENABLE_PCAP=ON,-DENABLE_PCAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON , libpcap" +PACKAGECONFIG[libsmi] = "-DENABLE_SMI=ON,-DENABLE_SMI=OFF,libsmi" +PACKAGECONFIG[libnl] = ",,libnl" +PACKAGECONFIG[portaudio] = "-DENABLE_PORTAUDIO=ON,-DENABLE_PORTAUDIO=OFF, portaudio-v19" +PACKAGECONFIG[gtk+] = "-DENABLE_GTK=ON -DBUILD_wireshark_gtk=ON, -DENABLE_GTK=OFF, gtk+" +PACKAGECONFIG[gtk+3] = "-DENABLE_GTK3=ON -DBUILD_wireshark_gtk=ON, -DENABLE_GTK3=OFF, gtk+3" +PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF, gnutls" +PACKAGECONFIG[ssl] = ",,openssl" +PACKAGECONFIG[krb5] = "-DENABLE_KRB5=ON,-DENABLE_KRB5=OFF, krb5" +PACKAGECONFIG[lua] = "-DENABLE_LUA=ON,-DENABLE_LUA=OFF, lua" +PACKAGECONFIG[zlib] = "-DENABLE_ZLIB=ON,-DENABLE_ZLIB=OFF, zlib" +PACKAGECONFIG[geoip] = ",, geoip" +PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF" +PACKAGECONFIG[sbc] = "-DENABLE_SBC=ON,-DENABLE_SBC=OFF, sbc" +PACKAGECONFIG[libssh] = ",,libssh2" +PACKAGECONFIG[lz4] = "-DENABLE_LZ4=ON,-DENABLE_LZ4=OFF, lz4" + +# these next two options require addional layers +PACKAGECONFIG[c-ares] = "-DENABLE_CARES=ON,-DENABLE_CARES=OFF, c-ares" +PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON -DBUILD_wireshark=ON, -DENABLE_QT5=OFF -DBUILD_wireshark=OFF, qtbase" + +EXTRA_OECMAKE += "-DENABLE_NETLINK=ON \ + -DBUILD_mmdbresolve=OFF \ + -DBUILD_randpktdump=OFF \ + -DBUILD_androiddump=OFF \ + -DBUILD_dcerpcidl2wrs=OFF \ + -DM_INCLUDE_DIR=${includedir} \ + -DM_LIBRARY=${libdir} \ + " +CFLAGS_append = " -lm" + +do_install_append_class-native() { + install -d ${D}${bindir} + for f in lemon + do + install -m 0755 ${B}/run/$f ${D}${bindir} + done +} + +do_install_append_class-target() { + for f in `find ${D}${libdir} ${D}${bindir} -type f -executable` + do + chrpath --delete $f + done +} + +PACKAGE_BEFORE_PN += "tshark" +PACKAGE_BEFORE_PN += "${PN}-gtk" + +FILES_tshark = "${bindir}/tshark ${mandir}/man1/tshark.*" +FILES_${PN}-gtk = "${bindir}/wireshark-gtk ${datadir}/icons ${datadir}/appdata \ + ${datadir}/applications ${datadir}/wireshark ${datadir}/mime \ + ${mandir}/man1/wireshark.* " + +FILES_${PN} += "${datadir}*" + +RDEPENDS_tshark = "wireshark" +RDEPENDS_${PN}-gtk = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "${GTK}", "", d)} wireshark" + +BBCLASSEXTEND = "native" |