summaryrefslogtreecommitdiffstats
path: root/meta-openembedded/meta-networking
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-networking')
-rw-r--r--meta-openembedded/meta-networking/MAINTAINERS28
-rw-r--r--meta-openembedded/meta-networking/README6
-rw-r--r--meta-openembedded/meta-networking/classes/kernel_wireless_regdb.bbclass20
-rw-r--r--meta-openembedded/meta-networking/conf/layer.conf2
-rw-r--r--meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt40
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_git.bb41
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch40
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch26
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb43
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb16
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-freeradius-correct-version-number-of-libssl-defect.patch44
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch12
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch106
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb)5
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-Fix-error-call-of-overloaded-distance-is-ambiguous.patch89
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/kea/files/0003-Makefile.am-update-hooksdir-for-lease_cmds.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service13
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service13
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service13
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.4.0.bb52
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.8.4.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb)11
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.8.0.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/miniupnpd.service14
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb)16
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch975
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init89
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb96
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.1.4.bb28
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.10.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb)5
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch53
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch7
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch4
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch51
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch13
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch4
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch14
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch32
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch20
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch4
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb)25
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb6
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch86
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch32
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch32
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch36
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch21
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf254
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch17
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.7.6.bb)47
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch33
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch62
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch60
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch60
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch85
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch254
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb)22
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-Add-format-string-to-fprintf-call.patch26
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch38
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0001-support-openssl-1.1.x.patch88
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/umip/umip/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch143
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/umip/umip/add-dependency-to-support-parallel-compilation.patch23
-rwxr-xr-xmeta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d112
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/umip/umip/mip6d.service10
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/umip/umip_1.0.bb43
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb5
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb20
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb42
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb)2
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch28
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch39
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch35
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb)13
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch41
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0001-makeinit.sh-fix-parallel-build-issue.patch95
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch28
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch21
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff14
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff27
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb)45
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch231
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb8
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Include-limit.h-for-PATH_MAX.patch25
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-qedi.c-Removed-unused-linux-ethtool.h.patch25
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-idbm.c-Include-fcnl.h-for-O_RDWR-and-O_CREAT-definit.patch25
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-libopeniscsiusr-Add-CFLAGS-to-linker-cmdline.patch29
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0003-bnx2x.c-Reorder-the-includes-to-avoid-duplicate-defi.patch49
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0004-fwparam_ppc.c-Do-not-use-__compar_fn_t.patch28
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb24
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb5
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher.bb34
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch27
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch49
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch41
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch47
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch37
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch24
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch17
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch98
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/no-md2.patch37
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch20
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch29
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch23
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch25
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch19
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb)20
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch67
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch76
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch34
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch10
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch12
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch20
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch100
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0008-check-for-size-before-using-strncpy.patch33
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb)17
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch26
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch58
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc44
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb9
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb12
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc7
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-Bug-4843-pt1-ext_edirectory_userip_acl-refactoring-f.patch506
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch46
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/squid/files/0002-smblib-fix-buffer-over-read.patch39
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch26
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb)9
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb5
-rw-r--r--meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch33
-rw-r--r--meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch61
-rw-r--r--meta-openembedded/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch42
-rw-r--r--meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb (renamed from meta-openembedded/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb)26
-rw-r--r--meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.45.bb (renamed from meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/corosync/corosync/corosync.conf58
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.4.bb (renamed from meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb)15
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch41
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch36
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-package-qa-error.patch32
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch53
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.7.bb (renamed from meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb)23
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch40
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch28
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch108
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch475
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch85
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch327
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch67
-rw-r--r--meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb64
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb6
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb9
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch2949
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch289
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch (renamed from meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch)263
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb (renamed from meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb)8
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch323
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch147
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch62
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch65
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch98
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch84
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch86
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch26
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb27
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb20
-rw-r--r--meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb6
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb6
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb5
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch79
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb8
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch114
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb22
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.8.3.bb27
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch97
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb3
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch45
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch2524
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch13
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch14
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch42
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch26
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch16
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch6
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch186
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch10
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch131
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch19
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch23
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch75
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch10
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch17
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb (renamed from meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb)24
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb (renamed from meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch33
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb1
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch7
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch36
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb15
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb5
-rw-r--r--meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch37
-rw-r--r--meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb (renamed from meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb)12
-rw-r--r--meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-configure.ac-make-tools-support-optional.patch39
-rw-r--r--meta-openembedded/meta-networking/recipes-support/celt051/celt051/0001-tests-Include-entcode.c-into-test-sources-to-provide.patch55
-rw-r--r--meta-openembedded/meta-networking/recipes-support/celt051/celt051_git.bb33
-rw-r--r--meta-openembedded/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch17
-rw-r--r--meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.3.bb (renamed from meta-openembedded/meta-networking/recipes-support/chrony/chrony_3.2.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch24
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch17
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch25
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb57
-rw-r--r--meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb17
-rw-r--r--meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb9
-rw-r--r--meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb8
-rw-r--r--meta-openembedded/meta-networking/recipes-support/dnsmasq/files/CVE-2017-15107.patch263
-rw-r--r--meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb8
-rw-r--r--meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch25
-rw-r--r--meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-drbd-tools-only-rmmod-if-DRBD-is-a-module.patch43
-rw-r--r--meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.5.0.bb (renamed from meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb)27
-rw-r--r--meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb6
-rw-r--r--meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail/02_remove_SSLv3.patch1576
-rw-r--r--meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb (renamed from meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.12.bb (renamed from meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.11.bb)36
-rw-r--r--meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch40
-rw-r--r--meta-openembedded/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb39
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb6
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch86
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch1086
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch58
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch63
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch20
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.29.bb (renamed from meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb)14
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch87
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch16
-rw-r--r--[-rwxr-xr-x]meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch19
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch45
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-unkown-type-error.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch (renamed from meta-openembedded/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch)65
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb (renamed from meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.3.1.bb)15
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch12
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.14.patch (renamed from meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch)92
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.14.bb (renamed from meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb)12
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch66
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb (renamed from meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb)9
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch32
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.37.bb (renamed from meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb)10
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-0b0dce7a36fb-actually-belongs-to-v4.19.patch31
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-netinet-sctp.h-not-to-be-installed.patch35
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-fix-probing-for-HAVE_SCTP_SENDV.patch35
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-build-remove-v4.12-secondary-defines-in-favor-of-HAV.patch52
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-configure.ac-add-CURRENT-REVISION-and-AGE-for-libsct.patch71
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-test_1_to_1_events.c-initialize-event-properly.patch44
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/0001-withsctp-use-PACKAGE_VERSION-in-withsctp.h.patch43
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.18.bb (renamed from meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb)13
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-potential-string-truncation-in-strncpy.patch139
-rw-r--r--meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb1
-rw-r--r--meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.10.bb (renamed from meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.17.bb (renamed from meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.11.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb7
-rw-r--r--meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch70
-rw-r--r--meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb (renamed from meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb)18
-rw-r--r--meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch50
-rw-r--r--meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb10
-rw-r--r--meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-plugins-Makefile.am-fix-for-automake-1.16.1.patch74
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb3
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch15
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ntp/ntp/reproducibility-respect-source-date-epoch.patch16
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p12.bb (renamed from meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb)7
-rw-r--r--meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.98.bb (renamed from meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb)2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch618
-rw-r--r--meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch26
-rw-r--r--meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb (renamed from meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.6.bb (renamed from meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb)12
-rw-r--r--meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch103
-rw-r--r--meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch29
-rw-r--r--meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch25
-rw-r--r--meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch27
-rw-r--r--meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch26
-rw-r--r--meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb30
-rw-r--r--meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb28
-rw-r--r--meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch66
-rw-r--r--meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch36
-rw-r--r--meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb57
-rw-r--r--meta-openembedded/meta-networking/recipes-support/spice/usbredir_git.bb21
-rw-r--r--meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb (renamed from meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb24
-rw-r--r--meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.49.bb37
-rw-r--r--meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch53
-rw-r--r--meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb (renamed from meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb)5
-rw-r--r--meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.8.bb (renamed from meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb)4
-rw-r--r--meta-openembedded/meta-networking/recipes-support/wireshark/files/libgcrypt.patch53
-rw-r--r--meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch29
-rw-r--r--meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.4.8.bb73
-rw-r--r--meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.4.bb94
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 &lt;ksturgeon@fbceg.org&gt;; Wed, 9 Sep 1998 17:01:59 -0700
++ by iserv.example.net (8.8.5/8.8.5) with SMTP id RAA10088
++ for &lt;ksturgeon@fbceg.example.org&gt;; 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&nbsp;%.
+ 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"
OpenPOWER on IntegriCloud