summaryrefslogtreecommitdiffstats
path: root/import-layers/meta-openembedded/meta-networking
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/meta-openembedded/meta-networking')
-rw-r--r--import-layers/meta-openembedded/meta-networking/MAINTAINERS6
-rw-r--r--import-layers/meta-openembedded/meta-networking/conf/distro/include/meta_networking_security_flags.inc10
-rw-r--r--import-layers/meta-openembedded/meta-networking/conf/layer.conf3
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb4
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius110
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch197
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch70
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch31
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch61
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch236
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch55
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch89
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch160
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch33
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf2
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service16
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/volatiles.58_radiusd3
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb222
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb37
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb39
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch82
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch67
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-add-systemd-resolved-backend.patch621
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch29
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch36
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch29
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch58
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch30
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-user-format-string-in-g_dbus_message_new_method_erro.patch67
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch39
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch93
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch36
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb136
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb4
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb13
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch40
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate/0001-src-rdate-Fix-printf-format-errors.patch33
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb21
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bb-build.patch75
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bison.patch147
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-cleanup.patch2087
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-msgsndnotify-loop.patch37
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-hardlink.patch25
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-lfs.patch142
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-links.patch79
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-linux.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-makefile-add-ldflags.patch23
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-maxargs.patch16
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-mkstemp.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-oldpath.patch59
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-ssh.patch14
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-stat64.patch85
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-svr4.patch15
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-varargs.patch16
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb37
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch34
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb6
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/00-fix-typos-in-man-pages.patch108
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.2.bb)10
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/fix-host-contamination-when-enable-static-daq.patch21
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch42
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch27
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb)10
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch29
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb3
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb41
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch25
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch56
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch31
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch31
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch30
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch58
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch283
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/always_syslog.patch22
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool.service19
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_init.d.patch65
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_parallel_make_and_pic.patch89
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_usl_timer.patch49
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/makefile-add-ldflags.patch21
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/runtest.sh26
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb113
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.3.5.bb49
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch32
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.6.bb)6
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch32
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb)16
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch49
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch31
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch47
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch12
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch1288
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch20
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb20
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Remove-unused-variables.patch43
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch34
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch122
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.17.07.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.2.0.bb)7
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch26
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch64
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/icu-config.patch21
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix-install.patch26
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc8
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.1.1.bb4
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb18
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch54
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5b.bb)7
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.14.bb5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.17.bb5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch116
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch36
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch17
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.25.bb)20
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch62
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.service10
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.socket8
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb14
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.conf2
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.init193
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.service11
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/volatiles.99_vblade1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_20.bb22
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb51
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb3
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest21
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch90
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb39
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb29
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.2.bb80
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch36
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb51
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch40
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb4
-rwxr-xr-ximport-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save43
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb16
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-filter/libmnl/libmnl_1.0.4.bb13
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch224
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch33
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch97
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb92
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap.inc17
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb37
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170810.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170421.bb)0
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170810.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170421.bb)2
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb2
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb45
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/files/build.patch167
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/files/mdns.service15
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb89
-rwxr-xr-ximport-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init6
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch45
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch32
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch31
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch35
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-warning.patch32
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch49
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service17
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb41
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux/options.pptp (renamed from import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.8.0/options.pptp)0
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bb)9
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc24
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb6
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.2.1.bb4
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd/fix-inline-functions-errors-with-gcc-5.x.patch134
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb4
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb3
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/0001-configure.ac-don-t-override-passed-cflags.patch26
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch105
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.12.0.bb15
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb24
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch47
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc4
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch19
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.76.bb8
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb8
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch38
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch24
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb22
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.4.0/GeoIP.conf (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.2.2/GeoIP.conf)0
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.4.0/geoipupdate.cron (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.2.2/geoipupdate.cron)0
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate_2.4.0.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate_2.2.2.bb)15
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.7.bb)5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch207
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch19
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb4
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch43
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.14.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.12.bb)5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch16
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.4.36.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch34
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch124
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch30
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.2.bb)50
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb)12
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/netperf/netperf_2.6.0.bb)12
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch33
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0002-yp_dump_bindings.c-Include-string.h-for-memset.patch30
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/alignment-cheat.patch52
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch110
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.2.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_3.3.bb)16
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt/0001-dns_hosts-Fix-build-with-musl.patch67
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb53
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb)10
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch26
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop.service15
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch164
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch21
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_init.patch228
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch19
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch32
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb137
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch38
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb6
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch618
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch25
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch22
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/include_sys_types.patch17
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch41
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi.service12
-rwxr-xr-ximport-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-helper512
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch26
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch50
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb110
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.3.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.9.bb)8
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch28
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.1.8.bb19
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.3.2.bb20
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch26
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.3.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb)9
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch54
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb5
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/tcpdump-configure-dlpi.patch31
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb1
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.1.2.bb)6
-rw-r--r--import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb (renamed from import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.9.bb)4
255 files changed, 13606 insertions, 1572 deletions
diff --git a/import-layers/meta-openembedded/meta-networking/MAINTAINERS b/import-layers/meta-openembedded/meta-networking/MAINTAINERS
index 8e6e3a0f9..771c73cb0 100644
--- a/import-layers/meta-openembedded/meta-networking/MAINTAINERS
+++ b/import-layers/meta-openembedded/meta-networking/MAINTAINERS
@@ -2,15 +2,15 @@ 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][pyro]' in the subject.
+'[meta-networking][rocko]' 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][pyro][PATCH
+ --subject-prefix=meta-networking][rocko][PATCH
-pyro Branch Maintainer:
+rocko Branch Maintainer:
Armin Kuster <akuster808@gmail.com>
You may also contact the maintainers directly.
diff --git a/import-layers/meta-openembedded/meta-networking/conf/distro/include/meta_networking_security_flags.inc b/import-layers/meta-openembedded/meta-networking/conf/distro/include/meta_networking_security_flags.inc
deleted file mode 100644
index 19e13ea87..000000000
--- a/import-layers/meta-openembedded/meta-networking/conf/distro/include/meta_networking_security_flags.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-# configure righteously complains:
-# | configure:3479: using CFLAGS: -O2 -pipe -g -feliminate-unused-debug-types -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2
-# | configure:3485: CFLAGS error: CFLAGS may only be used to specify C compiler flags, not macro definitions. Use CPPFLAGS for: -D_FORTIFY_SOURCE=2
-# | configure:3516: error: Can not continue. Fix errors mentioned immediately above this line.
-
-# Make sure it's at least empty in builds which don't include
-# conf/distro/include/security_flags.inc
-lcl_maybe_fortify ?= ""
-TARGET_CFLAGS_remove_pn-c-ares = "${lcl_maybe_fortify}"
-TARGET_CPPFLAGS_append_pn-c-ares = "${lcl_maybe_fortify}"
diff --git a/import-layers/meta-openembedded/meta-networking/conf/layer.conf b/import-layers/meta-openembedded/meta-networking/conf/layer.conf
index b5aa1599b..2dfde4bdf 100644
--- a/import-layers/meta-openembedded/meta-networking/conf/layer.conf
+++ b/import-layers/meta-openembedded/meta-networking/conf/layer.conf
@@ -19,9 +19,6 @@ LAYERDEPENDS_networking-layer += "meta-python"
LICENSE_PATH += "${LAYERDIR}/licenses"
-# Override security flags
-require conf/distro/include/meta_networking_security_flags.inc
-
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
wireguard-tools->wireguard-module \
"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb
index 47cb163e6..ec35175a0 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb
@@ -29,3 +29,7 @@ SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c"
SRC_URI[sha256sum] = "b40e1d1273e08aaeaa86e69d4f28d535b7e53bdb3898adf539266b63137be7cb"
inherit autotools
+
+DISABLE_STATIC = ""
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch
new file mode 100644
index 000000000..db8caab12
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch
@@ -0,0 +1,28 @@
+From 66e8bcdcca8971b5c43c31755d56d7f675d8b5ff Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 20:10:49 -0700
+Subject: [PATCH] rlm_mschap: Use includedir instead of hardcoding /usr/include
+
+OE QA flags it correctly as a voilation of cross compilation
+namespace
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/modules/rlm_mschap/configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: freeradius-server-3.0.14/src/modules/rlm_mschap/configure.ac
+===================================================================
+--- freeradius-server-3.0.14.orig/src/modules/rlm_mschap/configure.ac
++++ freeradius-server-3.0.14/src/modules/rlm_mschap/configure.ac
+@@ -72,7 +72,7 @@ if test x$with_[]modname != xno; then
+ mod_ldflags="-framework DirectoryService"
+ fi
+
+- smart_try_dir="$winbind_include_dir /usr/include/samba-4.0"
++ smart_try_dir="$winbind_include_dir =/usr/include/samba-4.0"
+ FR_SMART_CHECK_INCLUDE(wbclient.h, [#include <stdint.h>
+ #include <stdbool.h>])
+ if test "x$ac_cv_header_wbclient_h" != "xyes"; then
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius
new file mode 100644
index 000000000..fa412e2aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius
@@ -0,0 +1,110 @@
+#!/bin/sh
+# Start/stop the FreeRADIUS daemon.
+
+### BEGIN INIT INFO
+# Provides: freeradius
+# Required-Start: $remote_fs $network $syslog
+# Should-Start: $time mysql slapd postgresql samba krb5-kdc
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Radius Daemon
+# Description: Extensible, configurable radius daemon
+### END INIT INFO
+
+set -e
+
+# Source function library.
+. /etc/init.d/functions
+
+if [ -f /lib/lsb/init-functions ]; then
+ . /lib/lsb/init-functions
+fi
+
+PROG="radiusd"
+PROGRAM="/usr/sbin/radiusd"
+PIDFILE="/var/run/radiusd/radiusd.pid"
+DESCR="FreeRADIUS daemon"
+
+if [ -r /etc/default/$PROG ]; then
+ . /etc/default/$PROG
+fi
+
+test -f $PROGRAM || exit 0
+
+check_certs() {
+ if [ ! -f /etc/raddb/certs/server.pem ]; then
+ echo -n "Creating certificates for freeradius..."
+ if sudo -u radiusd /etc/raddb/certs/bootstrap 1> /dev/null 2> /dev/null; then
+ echo "done"
+ else
+ echo "failed!"
+ fi
+ fi
+
+}
+
+# /var/run may be a tmpfs
+if [ ! -d /var/run/radiusd ]; then
+ mkdir -p /var/run/radiusd
+ chown radiusd:radiusd /var/run/radiusd
+fi
+
+if [ ! -d /var/log/radius ]; then
+ mkdir -p /var/log/radius
+ touch /var/log/radius/radius.log
+ chown radiusd:radiusd /var/run/radius
+fi
+
+if [ ! -f ${PIDFILE} ]; then
+ touch ${PIDFILE}
+ chown radiusd:radiusd ${PIDFILE}
+fi
+
+export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
+
+ret=0
+
+case "$1" in
+ start)
+ check_certs
+ echo -n "Starting $DESCR" "$PROG"
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM -- $FREERADIUS_OPTIONS || ret=$?
+ [ "$ret" == 0 ] && echo " Success" || echo " Failed"
+ exit $ret
+ ;;
+ stop)
+ echo -n "Stopping $DESCR" "$PROG"
+ if [ -f "$PIDFILE" ] ; then
+ start-stop-daemon --stop --retry=TERM/30/KILL/5 --quiet --pidfile $PIDFILE || ret=$?
+ else
+ echo -n "$PIDFILE not found"
+ ret=1
+ fi
+ [ "$ret" == 0 ] && echo " Success" || echo " Failed"
+ ;;
+ status)
+ status $PROGRAM;
+ exit $?
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ reload|force-reload)
+ echo -n "Reloading $DESCR" "$PROG"
+ if [ -f "$PIDFILE" ] ; then
+ start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || ret=$?
+ else
+ echo -n "$PIDFILE not found"
+ ret=1
+ fi
+ [ "$ret" == 0 ] && echo " Success" || echo " Failed"
+ ;;
+ *)
+ echo "Usage: $0 start|stop|status|restart|force-reload|reload"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch
new file mode 100644
index 000000000..9c997661f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch
@@ -0,0 +1,197 @@
+From dc41591d5ceb18900ec85894f8f7b7bb44bb3bd9 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Mon, 4 Jan 2016 01:44:04 -0500
+Subject: [PATCH] avoid searching host dirs
+
+Don't search the hardcoded host dirs to avoid
+host contamination.
+
+Upstream-Status: Inappropriate [cross-compile specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ acinclude.m4 | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac | 6 +++---
+ src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac | 2 +-
+ src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac | 4 ++--
+ 8 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index da48acc..b513ae1 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -178,7 +178,7 @@ if test "x$smart_lib" = "x"; then
+ FR_LOCATE_DIR(smart_lib_dir,[lib$1${libltdl_cv_shlibext}])
+ FR_LOCATE_DIR(smart_lib_dir,[lib$1.a])
+
+- for try in $smart_lib_dir /usr/local/lib /opt/lib; do
++ for try in $smart_lib_dir; do
+ AC_MSG_CHECKING([for $2 in -l$1 in $try])
+ LIBS="-l$1 $old_LIBS"
+ CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS"
+@@ -218,7 +218,7 @@ ac_safe=`echo "$1" | sed 'y%./+-%__pm%'`
+ old_CPPFLAGS="$CPPFLAGS"
+ smart_include=
+ dnl # The default directories we search in (in addition to the compilers search path)
+-smart_include_dir="/usr/local/include /opt/include"
++smart_include_dir=
+
+ dnl # Our local versions
+ _smart_try_dir=
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
+index 75c851a..a262d71 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
+@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then
+ esac])
+
+ dnl Check for SQLConnect in -ldb2
+- smart_try_dir="$ibmdb2_lib_dir /usr/local/db2/lib /usr/IBMdb2/V7.1/lib"
++ smart_try_dir="$ibmdb2_lib_dir"
+ FR_SMART_CHECK_LIB(db2, SQLConnect)
+ if test "x$ac_cv_lib_db2_SQLConnect" != xyes; then
+ fail="$fail libdb2"
+ fi
+
+ dnl Check for sqlcli.h
+- smart_try_dir="$ibmdb2_include_dir /usr/local/db2/include /usr/IBMdb2/V7.1/include"
++ smart_try_dir="$ibmdb2_include_dir"
+ FR_SMART_CHECK_INCLUDE(sqlcli.h)
+ if test "x$ac_cv_header_sqlcli_h" != xyes; then
+ fail="$fail sqlcli.h"
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
+index 4da57b3..752b043 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
+@@ -56,14 +56,14 @@ if test x$with_[]modname != xno; then
+ esac])
+
+ dnl Check for isc_attach_database in -lfbclient
+- smart_try_dir="$firebird_lib_dir /usr/lib/firebird2/lib /usr/local/firebird/lib"
++ smart_try_dir="$firebird_lib_dir"
+ FR_SMART_CHECK_LIB(fbclient, isc_attach_database)
+ if test "x$ac_cv_lib_fbclient_isc_attach_database" != xyes; then
+ fail="$fail libfbclient"
+ fi
+
+ dnl Check for ibase.h
+- smart_try_dir="$firebird_include_dir /usr/lib/firebird2/include /usr/local/firebird/include"
++ smart_try_dir="$firebird_include_dir"
+ FR_SMART_CHECK_INCLUDE(ibase.h)
+ if test "x$ac_cv_header_ibase_h" != xyes; then
+ fail="$fail ibase.h"
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
+index ba6304f..3393557 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
+@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then
+ esac])
+
+ dnl Check for SQLConnect in -liodbc
+- smart_try_dir="$iodbc_lib_dir /usr/lib /usr/lib/iodbc /usr/local/lib/iodbc /usr/local/iodbc/lib/iodbc"
++ smart_try_dir="$iodbc_lib_dir"
+ FR_SMART_CHECK_LIB(iodbc, SQLConnect)
+ if test "x$ac_cv_lib_iodbc_SQLConnect" != xyes; then
+ fail="$fail libiodbc"
+ fi
+
+ dnl Check for isql.h
+- smart_try_dir="$iodbc_include_dir /usr/include /usr/include/iodbc /usr/local/iodbc/include"
++ smart_try_dir="$iodbc_include_dir"
+ FR_SMART_CHECK_INCLUDE(isql.h)
+ if test "x$ac_cv_header_isql_h" != xyes; then
+ fail="$fail isql.h"
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
+index 1401677..2e7db44 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
+@@ -136,7 +136,7 @@ if test x$with_[]modname != xno; then
+
+ dnl # Check for libmysqlclient_r
+ if test "x$have_a_libmysqlclient" != "xyes"; then
+- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql"
++ smart_try_dir="$mysql_lib_dir"
+ FR_SMART_CHECK_LIB(mysqlclient_r, mysql_init)
+ if test "x$ac_cv_lib_mysqlclient_r_mysql_init" = "xyes"; then
+ have_a_libmysqlclient='yes'
+@@ -145,7 +145,7 @@ if test x$with_[]modname != xno; then
+
+ dnl # Check for libmysqlclient
+ if test "x$have_a_libmysqlclient" != "xyes"; then
+- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql"
++ smart_try_dir="$mysql_lib_dir"
+ FR_SMART_CHECK_LIB(mysqlclient, mysql_init)
+ if test "x$ac_cv_lib_mysqlclient_mysql_init" = "xyes"; then
+ have_a_libmysqlclient='yes'
+@@ -189,7 +189,7 @@ if test x$with_[]modname != xno; then
+ fi
+
+ if test "x$have_mysql_h" != "xyes"; then
+- smart_try_dir="$mysql_include_dir /usr/local/include /usr/local/mysql/include"
++ smart_try_dir="$mysql_include_dir"
+ FR_SMART_CHECK_INCLUDE(mysql/mysql.h)
+ if test "x$ac_cv_header_mysql_mysql_h" = "xyes"; then
+ AC_DEFINE(HAVE_MYSQL_MYSQL_H, [], [Define if you have <mysql/mysql.h>])
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
+index 3178462..5cbc8c2 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
+@@ -63,7 +63,7 @@ if test x$with_[]modname != xno; then
+ dnl # Check for header files
+ dnl ############################################################
+
+- smart_try_dir="$oracle_include_dir /usr/local/instaclient/include"
++ smart_try_dir="$oracle_include_dir"
+
+ if test "x$ORACLE_HOME" != "x"; then
+ smart_try_dir="${smart_try_dir} ${ORACLE_HOME}/include"
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
+index 4f9a890..e1cf811 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
+@@ -41,7 +41,7 @@ if test x$with_[]modname != xno; then
+ esac ]
+ )
+
+- smart_try_dir="$rlm_sql_postgresql_include_dir /usr/include/postgresql /usr/local/pgsql/include /usr/include/pgsql"
++ smart_try_dir="$rlm_sql_postgresql_include_dir"
+ FR_SMART_CHECK_INCLUDE(libpq-fe.h)
+ if test "x$ac_cv_header_libpqmfe_h" != "xyes"; then
+ fail="$fail libpq-fe.h"
+@@ -76,7 +76,7 @@ if test x$with_[]modname != xno; then
+ ])
+ fi
+
+- smart_try_dir="$rlm_sql_postgresql_lib_dir /usr/lib /usr/local/pgsql/lib"
++ smart_try_dir="$rlm_sql_postgresql_lib_dir"
+ FR_SMART_CHECK_LIB(pq, PQconnectdb)
+ if test "x$ac_cv_lib_pq_PQconnectdb" != "xyes"; then
+ fail="$fail libpq"
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
+index 3545387..c543ed4 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
+@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then
+ esac])
+
+ dnl Check for SQLConnect in -lodbc
+- smart_try_dir="$unixodbc_lib_dir /usr/local/unixodbc/lib"
++ smart_try_dir="$unixodbc_lib_dir"
+ FR_SMART_CHECK_LIB(odbc, SQLConnect)
+ if test "x$ac_cv_lib_odbc_SQLConnect" != xyes; then
+ fail="$fail libodbc"
+ fi
+
+ dnl Check for sql.h
+- smart_try_dir="$unixodbc_include_dir /usr/local/unixodbc/include"
++ smart_try_dir="$unixodbc_include_dir"
+ FR_SMART_CHECK_INCLUDE(sql.h)
+ if test "x$ac_cv_header_sql_h" != xyes; then
+ fail="$fail sql.h"
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch
new file mode 100644
index 000000000..71b78090c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch
@@ -0,0 +1,70 @@
+From 74eed61dec8702c89f3e121d577ea9db25c961a4 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Mon, 11 Jan 2016 02:52:16 -0500
+Subject: [PATCH] configure.ac: add option for libcap
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ configure.ac | 37 ++++++++++++++++++++++++++++---------
+ 1 file changed, 28 insertions(+), 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 066d3d7..6e4266b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -948,6 +948,23 @@ fi
+ dnl Set by FR_SMART_CHECKLIB
+ LIBS="${old_LIBS}"
+
++dnl #
++dnl # extra argument: --with-libcap
++dnl #
++WITH_LIBCAP=yes
++AC_ARG_WITH(libcap,
++[ --with-licap use licap for debugger checks. (default=yes)],
++[ case "$withval" in
++ no)
++ WITH_LIBCAP=no
++ ;;
++ *)
++ WITH_LIBCAP=yes
++ ;;
++ esac ]
++)
++
++
+ dnl Check for cap
+ dnl extra argument: --with-cap-lib-dir=DIR
+ cap_lib_dir=
+@@ -981,15 +998,17 @@ AC_ARG_WITH(cap-include-dir,
+ ;;
+ esac])
+
+-smart_try_dir="$cap_lib_dir"
+-FR_SMART_CHECK_LIB(cap, cap_get_proc)
+-if test "x$ac_cv_lib_cap_cap_get_proc" != "xyes"; then
+- AC_MSG_WARN([cap library not found, debugger checks will not be enabled. Use --with-cap-lib-dir=<path>.])
+-else
+- AC_DEFINE(HAVE_LIBCAP, 1,
+- [Define to 1 if you have the `cap' library (-lcap).]
+- )
+- HAVE_LIBCAP=1
++if test "x$WITH_LIBCAP" = xyes; then
++ smart_try_dir="$cap_lib_dir"
++ FR_SMART_CHECK_LIB(cap, cap_get_proc)
++ if test "x$ac_cv_lib_cap_cap_get_proc" != "xyes"; then
++ AC_MSG_WARN([cap library not found, debugger checks will not be enabled. Use --with-cap-lib-dir=<path>.])
++ else
++ AC_DEFINE(HAVE_LIBCAP, 1,
++ [Define to 1 if you have the `cap' library (-lcap).]
++ )
++ HAVE_LIBCAP=1
++ fi
+ fi
+
+ VL_LIB_READLINE
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch
new file mode 100644
index 000000000..30497a602
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch
@@ -0,0 +1,31 @@
+Subject: [PATCH] configure.ac: allow cross-compilation
+
+The checking OpenSSL library and header version consistency will
+always fail in cross compiling, skip the check and give a warning
+instead for cross compiling.
+
+Upstream-Status: Inappropriate[embedded specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@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
+--- 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
+ 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]])],
++ [AC_MSG_WARN(cross compiling: not checking)])
+ fi
+ else
+ krb5threadsafe=""
+--
+2.10.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch
new file mode 100644
index 000000000..4a62bf1fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch
@@ -0,0 +1,28 @@
+Enable and change user and group of freeradius server to radiusd
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Roy.Li <rongqing.li@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ raddb/radiusd.conf.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/raddb/radiusd.conf.in b/raddb/radiusd.conf.in
+index c62f4ff..0b4a84e 100644
+--- a/raddb/radiusd.conf.in
++++ b/raddb/radiusd.conf.in
+@@ -436,8 +436,8 @@ security {
+ # member. This can allow for some finer-grained access
+ # controls.
+ #
+-# user = radius
+-# group = radius
++ user = radiusd
++ group = radiusd
+
+ # Core dumps are a bad thing. This should only be set to
+ # 'yes' if you're debugging a problem with the server.
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch
new file mode 100644
index 000000000..af1bff051
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch
@@ -0,0 +1,61 @@
+From 5b6d8b14f2696fcf1dca119212f9d0a0fa04defd Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 18 Jan 2017 14:59:39 +0800
+Subject: [PATCH] fix error for expansion of macro in thread.h
+
+The parameter declaration is missing in expansion of macro
+which cause the build error:
+| In file included from src/freeradius-devel/libradius.h:80:0,
+| from src/lib/log.c:26:
+| src/lib/log.c: In function '__fr_thread_local_destroy_fr_strerror_buffer':
+| src/lib/log.c:37:31: error: 'fr_strerror_buffer' undeclared (first use in this function)
+| fr_thread_local_setup(char *, fr_strerror_buffer) /* macro */
+| ^
+
+Add the missing declaration in macro.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/include/threads.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/include/threads.h b/src/include/threads.h
+index e36d81d..2bcb6aa 100644
+--- a/src/include/threads.h
++++ b/src/include/threads.h
+@@ -89,7 +89,7 @@ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
+ # define fr_thread_local_get(_n) _n
+ #elif defined(HAVE_PTHREAD_H)
+ # include <pthread.h>
+-# define fr_thread_local_setup(_t, _n) \
++# define fr_thread_local_setup(_t, _n) static __thread _t _n;\
+ static pthread_key_t __fr_thread_local_key_##_n;\
+ static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\
+ static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\
+@@ -100,17 +100,17 @@ static void __fr_thread_local_destroy_##_n(UNUSED void *unused)\
+ static void __fr_thread_local_key_init_##_n(void)\
+ {\
+ (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\
+- (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ }\
+ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
+ {\
+ __fr_thread_local_destructor_##_n = func;\
+ if (_n) return _n; \
+ (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\
++ (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ return _n;\
+ }
+-# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
+-# define fr_thread_local_set(_n, _v) __fr_thread_local_set_##_n(_v)
+-# define fr_thread_local_get(_n) __fr_thread_local_get_##_n()
++# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
++# define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1))
++# define fr_thread_local_get(_n) _n
+ #endif
+ #endif
+--
+2.10.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch
new file mode 100644
index 000000000..d29b2ac39
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch
@@ -0,0 +1,236 @@
+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
+
+Upstream-Status: Submitted [1]
+
+[1]: https://github.com/FreeRADIUS/freeradius-server/pull/1428
+
+Submmited by: Jorge Pereira <jpereiran@gmail.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(-)
+
+diff --git a/src/modules/rlm_example/config.h.in b/src/modules/rlm_example/config.h.in
+index 2a81ef5..f80de9c 100644
+--- a/src/modules/rlm_example/config.h.in
++++ b/src/modules/rlm_example/config.h.in
+@@ -1,38 +1,5 @@
+ /* config.h.in. Generated from configure.ac by autoheader. */
+
+-/* Define to 1 if you have the <inttypes.h> header file. */
+-#undef HAVE_INTTYPES_H
+-
+-/* Define to 1 if you have the <memory.h> header file. */
+-#undef HAVE_MEMORY_H
+-
+-/* Define to 1 if you have the `printf' function. */
+-#undef HAVE_PRINTF
+-
+-/* Define to 1 if you have the <stdint.h> header file. */
+-#undef HAVE_STDINT_H
+-
+-/* Define to 1 if you have the <stdio.h> header file. */
+-#undef HAVE_STDIO_H
+-
+-/* Define to 1 if you have the <stdlib.h> header file. */
+-#undef HAVE_STDLIB_H
+-
+-/* Define to 1 if you have the <strings.h> header file. */
+-#undef HAVE_STRINGS_H
+-
+-/* Define to 1 if you have the <string.h> header file. */
+-#undef HAVE_STRING_H
+-
+-/* Define to 1 if you have the <sys/stat.h> header file. */
+-#undef HAVE_SYS_STAT_H
+-
+-/* Define to 1 if you have the <sys/types.h> header file. */
+-#undef HAVE_SYS_TYPES_H
+-
+-/* 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 @@
+ /* 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
+-
+-/* 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
++++ b/src/modules/rlm_pam/config.h.in
+@@ -45,6 +45,9 @@
+ /* 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_perl/config.h.in b/src/modules/rlm_perl/config.h.in
+index 989ed53..f80de9c 100644
+--- a/src/modules/rlm_perl/config.h.in
++++ b/src/modules/rlm_perl/config.h.in
+@@ -12,5 +12,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_perl/configure.ac b/src/modules/rlm_perl/configure.ac
+index 44c5fc9..6b2a043 100644
+--- a/src/modules/rlm_perl/configure.ac
++++ b/src/modules/rlm_perl/configure.ac
+@@ -3,7 +3,7 @@ AC_INIT(rlm_perl.c)
+ AC_REVISION($Revision$)
+ AC_DEFUN(modname,[rlm_perl])
+
+-m4_include([ax_with_prog.m4])
++m4_include([m4/ax_with_prog.m4])
+
+ if test x$with_[]modname != xno; then
+ AC_PROG_CC
+diff --git a/src/modules/rlm_radutmp/config.h.in b/src/modules/rlm_radutmp/config.h.in
+index 9a883cc..750b434 100644
+--- a/src/modules/rlm_radutmp/config.h.in
++++ b/src/modules/rlm_radutmp/config.h.in
+@@ -42,6 +42,9 @@
+ /* 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_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
+--- a/src/modules/rlm_ruby/configure.ac
++++ b/src/modules/rlm_ruby/configure.ac
+@@ -3,15 +3,16 @@ AC_INIT(rlm_ruby.c)
+ AC_REVISION($Revision: 1.9 $)
+ AC_DEFUN(modname,[rlm_ruby])
+
+-m4_include([ax_with_prog.m4])
++m4_include([m4/ax_with_prog.m4])
+
+ AC_DEFUN([AX_WITH_RUBY],[
+ AX_WITH_PROG([RUBY],[ruby],[not-found],[${PATH}:/usr/bin:/usr/local/bin])
+ ])
+
+-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])
+
+ targetname=modname
+ mod_cflags=
+diff --git a/src/modules/rlm_smsotp/config.h.in b/src/modules/rlm_smsotp/config.h.in
+index 5feaf91..9e69f85 100644
+--- a/src/modules/rlm_smsotp/config.h.in
++++ b/src/modules/rlm_smsotp/config.h.in
+@@ -42,6 +42,9 @@
+ /* 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_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
+--- 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 @@
+ /* 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
+
+--
+2.3.5
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch
new file mode 100644
index 000000000..b0929c4b0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch
@@ -0,0 +1,55 @@
+Fix quoting for BUILD_WITH
+
+The escaped quotes are to make the -D values produce strings which
+can be used to display these values. However, if the values are more
+than one word, with spaces, they also need shell quoting to make them
+into single words.
+
+Upstream-Status: Pending
+
+Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/main/libfreeradius-server.mk | 2 +-
+ src/main/unittest.mk | 2 +-
+ src/modules/rlm_eap/radeapclient.mk | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/main/libfreeradius-server.mk b/src/main/libfreeradius-server.mk
+index 4495f72..07c28f1 100644
+--- a/src/main/libfreeradius-server.mk
++++ b/src/main/libfreeradius-server.mk
+@@ -18,5 +18,5 @@ SOURCES := conffile.c \
+ TGT_LDLIBS := $(OPENSSL_LIBS)
+
+ ifneq ($(MAKECMDGOALS),scan)
+-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
+ endif
+diff --git a/src/main/unittest.mk b/src/main/unittest.mk
+index 09f3938..ed33952 100644
+--- a/src/main/unittest.mk
++++ b/src/main/unittest.mk
+@@ -21,5 +21,5 @@ TGT_PREREQS += libfreeradius-eap.a
+ endif
+
+ ifneq ($(MAKECMDGOALS),scan)
+-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
+ endif
+diff --git a/src/modules/rlm_eap/radeapclient.mk b/src/modules/rlm_eap/radeapclient.mk
+index 6068f54..7d3c556 100644
+--- a/src/modules/rlm_eap/radeapclient.mk
++++ b/src/modules/rlm_eap/radeapclient.mk
+@@ -23,7 +23,7 @@ SRC_CFLAGS += -DWITH_EAPCLIENT
+ SRC_INCDIRS := ${top_srcdir}/src/modules/rlm_eap/libeap
+
+ ifneq ($(MAKECMDGOALS),scan)
+-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
+ endif
+
+ endif
+--
+2.10.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch
new file mode 100644
index 000000000..4eb61ff2e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch
@@ -0,0 +1,89 @@
+From 56ef434e454bcc82c162a83d9bcb076d4fc72b7f Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 9 Jan 2014 14:30:26 +0800
+Subject: [PATCH] Fix libtool detection
+
+Upstream-Status: pending
+
+Use LT_INIT instead of the deprecated AC_PROG_LIBTOOL to detect libtool, so it
+can work with our libtoolize and libtool.
+
+Simplify the detection of ltdl. It will find the ltdl from the sysroot; the
+switch --with-system-libltdl is no longer needed. The code is copied from
+pulseaudio configure.ac, together with the comment paragraph.
+
+Also patch autogen.sh so it uses autoreconf, which handles libtoolize better.
+
+Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ autogen.sh | 5 +----
+ configure.ac | 36 ++++++++++++++++++++++++++++++++++++
+ 2 files changed, 37 insertions(+), 4 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index 3418673..e42c3d5 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -5,10 +5,7 @@ parentdir=`dirname $0`
+ cd $parentdir
+ parentdir=`pwd`
+
+-libtoolize -f -c
+-#aclocal
+-autoheader
+-autoconf
++autoreconf -Wcross --verbose --install --force
+
+ mysubdirs="$mysubdirs `find src/modules/ -name configure -print | sed 's%/configure%%'`"
+ mysubdirs=`echo $mysubdirs`
+diff --git a/configure.ac b/configure.ac
+index e73e4ad..066d3d7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -205,6 +205,42 @@ dnl # See if we have Git.
+ dnl #
+ AC_CHECK_PROG(GIT, git, yes, no)
+
++#### libtool stuff ####
++
++dnl set this shit so it doesn't force CFLAGS...
++LTCFLAGS=" "
++
++LT_PREREQ(2.2)
++LT_INIT([dlopen disable-static])
++
++dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
++dnl exactly which version of libltdl is present in the system, so we
++dnl just assume that it's a working version as long as we have the
++dnl library and the header files.
++dnl
++dnl As an extra safety device, check for lt_dladvise_init() which is
++dnl only implemented in libtool 2.x, and refine as we go if we have
++dnl refined requirements.
++dnl
++dnl Check the header files first since the system may have a
++dnl libltdl.so for runtime, but no headers, and we want to bail out as
++dnl soon as possible.
++dnl
++dnl We don't need any special variable for this though, since the user
++dnl can give the proper place to find libltdl through the standard
++dnl variables like LDFLAGS and CPPFLAGS.
++
++AC_CHECK_HEADER([ltdl.h],
++ [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
++ [LIBLTDL=])
++
++AS_IF([test "x$LIBLTDL" = "x"],
++ [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
++AC_SUBST([LIBLTDL])
++LTDL_SUBDIRS=
++INCLTDL=-DWITH_SYSTEM_LTDL
++AC_SUBST(LTDL_SUBDIRS)
++
+ dnl Put this in later, when all distributed modules use autoconf.
+ dnl AC_ARG_WITH(disablemodulefoo,
+ dnl [ --without-rlm_foo Disables module compilation. Module list:]
+--
+1.8.3
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch
new file mode 100644
index 000000000..1954586b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch
@@ -0,0 +1,160 @@
+From 16bf899447fc1524ffc3c79e1d35380e5285a552 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 7 Jan 2016 22:37:30 -0800
+Subject: [PATCH] libtool: do not use jlibtool
+
+jlibtool is hardcoded to be used but we need to use
+our libtool, so fix the makfiles to make it compatible
+with our libtool.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Make.inc.in | 4 ++--
+ scripts/boiler.mk | 2 ++
+ scripts/install.mk | 14 +++++++-------
+ scripts/libtool.mk | 22 ++++++++++++++++------
+ 4 files changed, 27 insertions(+), 15 deletions(-)
+
+diff --git a/Make.inc.in b/Make.inc.in
+index 7a77625..fd8aa3e 100644
+--- a/Make.inc.in
++++ b/Make.inc.in
+@@ -57,7 +57,7 @@ CPPFLAGS = @CPPFLAGS@
+ LIBPREFIX = @LIBPREFIX@
+ EXEEXT = @EXEEXT@
+
+-LIBTOOL = JLIBTOOL
++LIBTOOL = @LIBTOOL@
+ ACLOCAL = @ACLOCAL@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+@@ -163,7 +163,7 @@ ANALYZE.c := @clang_path@
+ #
+ ifeq "$(USE_SHARED_LIBS)" "yes"
+ TESTBINDIR = ./$(BUILD_DIR)/bin/local
+- TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(JLIBTOOL) --quiet --mode=execute $(TESTBINDIR)
++ TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(LIBTOOL) --quiet --mode=execute $(TESTBINDIR)
+ else
+ TESTBINDIR = ./$(BUILD_DIR)/bin
+ TESTBIN = ./$(BUILD_DIR)/bin
+diff --git a/scripts/boiler.mk b/scripts/boiler.mk
+index bccec5e..926a13e 100644
+--- a/scripts/boiler.mk
++++ b/scripts/boiler.mk
+@@ -266,6 +266,7 @@ define COMPILE_C_CMDS
+ $(Q)$(ECHO) CC $<
+ $(Q)$(strip ${COMPILE.c} -o $@ -c -MD ${CPPFLAGS} ${CFLAGS} ${SRC_CFLAGS} ${INCDIRS} \
+ $(addprefix -I, ${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} $<)
++ ${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d
+ endef
+ else
+ #
+@@ -281,6 +282,7 @@ define COMPILE_C_CMDS
+ $(Q)cppcheck --enable=style -q ${CHECKFLAGS} $(filter -isystem%,${SRC_CFLAGS}) \
+ $(filter -I%,${SRC_CFLAGS}) $(filter -D%,${SRC_CFLAGS}) ${INCDIRS} \
+ $(addprefix -I,${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} --suppress=variableScope --suppress=invalidscanf $<
++ ${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d
+ endef
+ endif
+
+diff --git a/scripts/install.mk b/scripts/install.mk
+index 9164115..e38c1ed 100644
+--- a/scripts/install.mk
++++ b/scripts/install.mk
+@@ -46,7 +46,7 @@ define ADD_INSTALL_RULE.exe
+ install: $${${1}_INSTALLDIR}/$(notdir ${1})
+
+ # Install executable ${1}
+- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
+ @$(ECHO) INSTALL ${1}
+ $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/bin/${1} $${${1}_INSTALLDIR}/
+ $(Q)$${${1}_POSTINSTALL}
+@@ -65,7 +65,7 @@ define ADD_INSTALL_RULE.a
+ install: $${${1}_INSTALLDIR}/$(notdir ${1})
+
+ # Install static library ${1}
+- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} ${1} | $${${1}_INSTALLDIR}
++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} ${1} | $${${1}_INSTALLDIR}
+ @$(ECHO) INSTALL ${1}
+ $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
+ $(Q)$${${1}_POSTINSTALL}
+@@ -87,9 +87,9 @@ define ADD_INSTALL_RULE.la
+ install: $${${1}_INSTALLDIR}/$(notdir ${1})
+
+ # Install libtool library ${1}
+- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
+ @$(ECHO) INSTALL ${1}
+- $(Q)$${PROGRAM_INSTALL} -c -m 755 $${LOCAL_FLAGS_MIN} $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
++ $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
+ $(Q)$${${1}_POSTINSTALL}
+
+ endef
+@@ -107,7 +107,7 @@ define ADD_INSTALL_RULE.man
+ install: ${2}/$(notdir ${1})
+
+ # Install manual page ${1}
+- ${2}/$(notdir ${1}): ${JLIBTOOL} ${1} | ${2}
++ ${2}/$(notdir ${1}): ${LIBTOOL} ${1} | ${2}
+ @$(ECHO) INSTALL $(notdir ${1})
+ $(Q)$${PROGRAM_INSTALL} -c -m 644 ${1} ${2}/
+
+@@ -122,9 +122,9 @@ endef
+ define ADD_INSTALL_RULE.dir
+ # Install directory
+ .PHONY: ${1}
+- ${1}: ${JLIBTOOL}
++ ${1}: ${LIBTOOL}
+ @$(ECHO) INSTALL -d -m 755 ${1}
+- $(Q)$${PROGRAM_INSTALL} -d -m 755 ${1}
++ $(Q)$${INSTALL} -d -m 755 ${1}
+ endef
+
+
+diff --git a/scripts/libtool.mk b/scripts/libtool.mk
+index 57915e1..2cb2f7d 100644
+--- a/scripts/libtool.mk
++++ b/scripts/libtool.mk
+@@ -55,7 +55,9 @@ ifeq "${LIBTOOL}" "JLIBTOOL"
+ # Tell GNU Make to use this value, rather than anything specified
+ # on the command line.
+ override LIBTOOL := ${JLIBTOOL}
+-endif # else we're not using jlibtool
++else # else we're not using jlibtool
++ all install: ${LIBTOOL}
++endif
+
+ # When using libtool, it produces a '.libs' directory. Ensure that it
+ # is removed on "make clean", too.
+@@ -69,11 +71,19 @@ clean: .libs_clean
+ # Re-define compilers and linkers
+ #
+ OBJ_EXT = lo
+-COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC}
+-COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX}
+-LINK.c = ${LIBTOOL} --silent --mode=link ${CC}
+-LINK.cxx = ${LIBTOOL} --mode=link ${CXX}
+-PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL}
++ifeq "${LIBTOOL}" "JLIBTOOL"
++ COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC}
++ COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX}
++ LINK.c = ${LIBTOOL} --silent --mode=link ${CC}
++ LINK.cxx = ${LIBTOOL} --mode=link ${CXX}
++ PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL}
++else
++ COMPILE.c = ${LIBTOOL} --mode=compile --tag=CC ${CC}
++ COMPILE.cxx = ${LIBTOOL} --mode=compile --tag=CC ${CXX}
++ LINK.c = ${LIBTOOL} --mode=link --tag=CC ${CC} -module -export-dynamic
++ LINK.cxx = ${LIBTOOL} --mode=link --tag=CC ${CXX} -module -export-dynamic
++ PROGRAM_INSTALL = ${LIBTOOL} --mode=install ${INSTALL}
++endif
+
+
+ # LIBTOOL_ENDINGS - Given a library ending in ".a" or ".so", replace that
+--
+2.10.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch
new file mode 100644
index 000000000..675940dd6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch
@@ -0,0 +1,33 @@
+From a0bf65e04d2bbd3271cab94bd5ac93f8e877bfc5 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 27 Jan 2016 05:07:19 -0500
+Subject: [PATCH] rlm_python: add PY_INC_DIR in search dir
+
+Upstream-Status: Pending
+
+configure option --with-rlm-python-include-dir is used to set
+PY_INC_DIR which is never used and it fails to find Python.h,
+so add it into search dir to fix it.
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/modules/rlm_python/configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/modules/rlm_python/configure.ac b/src/modules/rlm_python/configure.ac
+index 831a33a..c3792d8 100644
+--- a/src/modules/rlm_python/configure.ac
++++ b/src/modules/rlm_python/configure.ac
+@@ -93,7 +93,7 @@ if test x$with_[]modname != xno; then
+
+ old_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $PY_CFLAGS"
+- smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION"
++ smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION $PY_INC_DIR"
+ FR_SMART_CHECK_INCLUDE(Python.h)
+ CFLAGS=$old_CFLAGS
+
+--
+2.10.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf
new file mode 100644
index 000000000..fa6296297
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf
@@ -0,0 +1,2 @@
+d /var/log/radius 0755 radiusd radiusd -
+d /var/run/radiusd 0755 radiusd radiusd -
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
new file mode 100644
index 000000000..899c4e495
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=FreeRADIUS high performance RADIUS server.
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=@STATEDIR@/run/radiusd/radiusd.pid
+ExecStartPre=-@BASE_BINDIR@/chown -R radiusd.radiusd @STATEDIR@/run/radiusd
+ExecStartPre=-@BASE_BINDIR@/sh -c "if [ ! -f @SYSCONFDIR@/raddb/certs/server.pem ]; then sudo -u radiusd @SYSCONFDIR@/raddb/certs/bootstrap; fi"
+ExecStartPre=@SBINDIR@/radiusd -C
+ExecStart=@SBINDIR@/radiusd -d @SYSCONFDIR@/raddb
+ExecReload=@SBINDIR@/radiusd -C
+ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/volatiles.58_radiusd b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/volatiles.58_radiusd
new file mode 100644
index 000000000..8cbdae8a6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/volatiles.58_radiusd
@@ -0,0 +1,3 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d radiusd radiusd 0755 /var/run/radiusd none
+d radiusd radiusd 0755 /var/log/radius none
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb
new file mode 100644
index 000000000..4155a4059
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb
@@ -0,0 +1,222 @@
+DESCRIPTION = "FreeRADIUS is an Internet authentication daemon, which implements the RADIUS \
+protocol, as defined in RFC 2865 (and others). It allows Network Access \
+Servers (NAS boxes) to perform authentication for dial-up users. There are \
+also RADIUS clients available for Web servers, firewalls, Unix logins, and \
+more. Using RADIUS allows authentication and authorization for a network to \
+be centralized, and minimizes the amount of re-configuration which has to be \
+done when adding or deleting new users."
+
+SUMMARY = "High-performance and highly configurable RADIUS server"
+HOMEPAGE = "http://www.freeradius.org/"
+SECTION = "System/Servers"
+LICENSE = "GPLv2 & LGPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
+DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc"
+
+SRC_URI = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${PV}.tar.bz2 \
+ file://freeradius \
+ file://volatiles.58_radiusd \
+ file://freeradius-enble-user-in-conf.patch \
+ file://freeradius-configure.ac-allow-cross-compilation.patch \
+ file://freeradius-fix-issues-related-to-m4-include-path.patch \
+ file://freeradius-libtool-detection.patch \
+ file://freeradius-configure.ac-add-option-for-libcap.patch \
+ file://freeradius-avoid-searching-host-dirs.patch \
+ file://freeradius-rlm_python-add-PY_INC_DIR.patch \
+ file://freeradius-libtool-do-not-use-jlibtool.patch \
+ file://freeradius-fix-quoting-for-BUILT_WITH.patch \
+ file://freeradius-fix-error-for-expansion-of-macro.patch \
+ file://0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \
+ file://radiusd.service \
+ file://radiusd-volatiles.conf \
+"
+SRC_URI[md5sum] = "0c81a4464ccf1d04f7ef1218a029d37a"
+SRC_URI[sha256sum] = "23267d8505e7b2909f5bdbf3938ca077c1fe122290dc969304d4f3b594f7e3ba"
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/freeradius-server-${PV}"
+
+EXTRA_OECONF = " --enable-strict-dependencies \
+ --with-docdir=${docdir}/freeradius-${PV} \
+ --with-openssl-includes=${STAGING_INCDIR} \
+ --with-openssl-libraries=${STAGING_LIBDIR} \
+ --without-rlm_ippool \
+ --without-rlm_cache_memcached \
+ --without-rlm_counter \
+ --without-rlm_couchbase \
+ --without-rlm_dbm \
+ --without-rlm_eap_tnc \
+ --without-rlm_eap_ikev2 \
+ --without-rlm_opendirectory \
+ --without-rlm_redis \
+ --without-rlm_rediswho \
+ --without-rlm_sql_db2 \
+ --without-rlm_sql_firebird \
+ --without-rlm_sql_freetds \
+ --without-rlm_sql_iodbc \
+ --without-rlm_sql_oracle \
+ --without-rlm_sql_sybase \
+ --without-rlm_sqlhpwippool \
+ ac_cv_path_PERL=${bindir}/perl \
+ ax_cv_cc_builtin_choose_expr=no \
+ ax_cv_cc_builtin_types_compatible_p=no \
+ ax_cv_cc_builtin_bswap64=no \
+ ax_cv_cc_bounded_attribute=no \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+ pcre libcap \
+"
+
+PACKAGECONFIG[krb5] = "--with-rlm_krb5,--without-rlm_krb5,krb5"
+PACKAGECONFIG[pam] = "--with-rlm_pam,--without-rlm_pam,libpam"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[ldap] = "--with-rlm_ldap,--without-rlm_ldap,openldap"
+PACKAGECONFIG[mysql] = "--with-rlm_sql_mysql,--without-rlm_sql_mysql,mysql5"
+PACKAGECONFIG[sqlite] = "--with-rlm_sql_sqlite,--without-rlm_sql_sqlite,sqlite3"
+PACKAGECONFIG[unixodbc] = "--with-rlm_sql_unixodbc,--without-rlm_sql_unixodbc,unixodbc"
+PACKAGECONFIG[postgresql] = "--with-rlm_sql_postgresql,--without-rlm_sql_postgresql,postgresql"
+PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre"
+PACKAGECONFIG[perl] = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --with-rlm_perl,--without-rlm_perl,perl-native perl,perl"
+PACKAGECONFIG[python] = "--with-rlm_python --with-rlm-python-bin=${STAGING_BINDIR_NATIVE}/python-native/python --with-rlm-python-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python,python-native python"
+PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c"
+PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby"
+
+inherit useradd autotools-brokensep update-rc.d systemd
+
+# This is not a cpan or python based package, but it needs some definitions
+# from cpan-base and python-dir bbclasses for building rlm_perl and rlm_python
+# correctly.
+inherit cpan-base python-dir
+
+# The modules subdirs also need to be processed by autoreconf. Use autogen.sh
+# in order to handle the subdirs correctly.
+do_configure () {
+ ./autogen.sh
+
+ # the configure of rlm_perl needs this to get correct
+ # mod_cflags and mod_ldflags
+ if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then
+ export PERL5LIB="${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
+ fi
+
+ oe_runconf
+
+ # we don't need dhcpclient
+ sed -i -e 's/dhcpclient.mk//' ${S}/src/modules/proto_dhcp/all.mk
+}
+
+INITSCRIPT_NAME = "radiusd"
+
+SYSTEMD_SERVICE_${PN} = "radiusd.service"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false --user-group radiusd"
+
+do_install() {
+ rm -rf ${D}
+ mkdir -p ${D}/${sysconfdir}/logrotate.d
+ mkdir -p ${D}/${sysconfdir}/pam.d
+ mkdir -p ${D}/${sysconfdir}/init.d
+ mkdir -p ${D}/${localstatedir}/lib/radiusd
+ mkdir -p ${D}${sysconfdir}/default/volatiles
+
+ export LD_LIBRARY_PATH=${D}/${libdir}
+ oe_runmake install R=${D} INSTALLSTRIP=""
+
+ # remove unsupported config files
+ rm -f ${D}/${sysconfdir}/raddb/experimental.conf
+
+ # remove scripts that required Perl(DBI)
+ rm -rf ${D}/${bindir}/radsqlrelay
+
+ cp -f ${WORKDIR}/freeradius ${D}/etc/init.d/radiusd
+ rm -f ${D}/${sbindir}/rc.radiusd
+ chmod +x ${D}/${sysconfdir}/init.d/radiusd
+ rm -rf ${D}/${localstatedir}/run/
+ install -m 0644 ${WORKDIR}/volatiles.58_radiusd ${D}${sysconfdir}/default/volatiles/58_radiusd
+
+ chown -R radiusd:radiusd ${D}/${sysconfdir}/raddb/
+ chown -R radiusd:radiusd ${D}/${localstatedir}/lib/radiusd
+
+ # For systemd
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/radiusd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@STATEDIR@,${localstatedir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${systemd_unitdir}/system/radiusd.service
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d/
+ install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/
+ fi
+}
+
+# This is only needed when we install/update on a running target.
+#
+pkg_postinst_${PN} () {
+ if [ -z "$D" ]; then
+ if command -v systemd-tmpfiles >/dev/null; then
+ # create /var/log/radius, /var/run/radiusd
+ systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/radiusd-volatiles.conf
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+
+ # Fix ownership for /etc/raddb/*, /var/lib/radiusd
+ chown -R radiusd:radiusd ${sysconfdir}/raddb
+ chown -R radiusd:radiusd ${localstatedir}/lib/radiusd
+ fi
+}
+
+# We really need the symlink :(
+INSANE_SKIP_${PN} = "dev-so"
+INSANE_SKIP_${PN}-krb5 = "dev-so"
+INSANE_SKIP_${PN}-ldap = "dev-so"
+INSANE_SKIP_${PN}-mysql = "dev-so"
+INSANE_SKIP_${PN}-perl = "dev-so"
+INSANE_SKIP_${PN}-postgresql = "dev-so"
+INSANE_SKIP_${PN}-python = "dev-so"
+INSANE_SKIP_${PN}-unixodbc = "dev-so"
+
+PACKAGES =+ "${PN}-utils ${PN}-ldap ${PN}-krb5 ${PN}-perl \
+ ${PN}-python ${PN}-mysql ${PN}-postgresql ${PN}-unixodbc"
+
+FILES_${PN}-utils = "${bindir}/*"
+
+FILES_${PN}-ldap = "${libdir}/rlm_ldap.so* \
+ ${sysconfdir}/raddb/mods-available/ldap \
+"
+
+FILES_${PN}-krb5 = "${libdir}/rlm_krb5.so* \
+ ${sysconfdir}/raddb/mods-available/krb5 \
+"
+
+FILES_${PN}-perl = "${libdir}/rlm_perl.so* \
+ ${sysconfdir}/raddb/mods-config/perl \
+ ${sysconfdir}/raddb/mods-available/perl \
+"
+
+FILES_${PN}-python = "${libdir}/rlm_python.so* \
+ ${sysconfdir}/raddb/mods-config/python \
+ ${sysconfdir}/raddb/mods-available/python \
+"
+
+FILES_${PN}-mysql = "${libdir}/rlm_sql_mysql.so* \
+ ${sysconfdir}/raddb/mods-config/sql/*/mysql \
+ ${sysconfdir}/raddb/mods-available/sql \
+"
+
+FILES_${PN}-postgresql = "${libdir}/rlm_sql_postgresql.so* \
+ ${sysconfdir}/raddb/mods-config/sql/*/postgresql \
+"
+
+FILES_${PN}-unixodbc = "${libdir}/rlm_sql_unixodbc.so*"
+
+FILES_${PN} =+ "${libdir}/rlm_*.so* ${libdir}/proto_*so*"
+
+RDEPENDS_${PN} += "perl"
+RDEPENDS_${PN}-utils = "${PN}"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
index f48b6553b..e579de507 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
@@ -13,3 +13,4 @@ inherit autotools
acpaths = "-I ./config/"
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb
new file mode 100644
index 000000000..c6f36e137
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Lightweight UPnP IGD daemon"
+DESCRIPTION = "The miniUPnP daemon is an UPnP IGD (internet gateway device) \
+which provide NAT traversal services to any UPnP enabled client on \
+the network."
+
+SECTION = "networking"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aa71c78c373ccfe0ff207af0cd966d91"
+
+inherit autotools gettext pkgconfig
+
+DEPENDS += "iptables net-tools util-linux libmnl libnetfilter-conntrack"
+
+SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${P}.tar.gz;downloadfilename=${P}.tar.gz \
+"
+SRC_URI[md5sum] = "1c07a215dd9b362e75a9efc05e2fb3b4"
+SRC_URI[sha256sum] = "d96aa3a00e0f5490826bba3cb97e68cd27479e5839adac4b9bcb66eae786bfb7"
+
+IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}"
+
+do_compile() {
+ cd ${S}
+ CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux
+}
+
+do_install() {
+ install -d ${D}/${sbindir}
+ install ${S}/miniupnpd ${D}/${sbindir}
+ install -d ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/iptables_init.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/iptables_removeall.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/ip6tables_init.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/ip6tables_removeall.sh ${D}/${sysconfdir}/${BPN}
+ install -m 0644 -b ${S}/miniupnpd.conf ${D}/${sysconfdir}/${BPN}
+ install -d ${D}/${sysconfdir}/init.d
+ install ${S}/linux/miniupnpd.init.d.script ${D}/${sysconfdir}/init.d/miniupnpd
+}
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb
new file mode 100644
index 000000000..cce3f9188
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb
@@ -0,0 +1,39 @@
+SUMMARY = "NetworkManager-openvpn-plugin"
+SECTION = "net/misc"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=100d5a599bead70ddcd70dcd73f2e29c"
+
+DEPENDS = "dbus dbus-glib networkmanager openvpn intltool-native glib-2.0-native"
+
+inherit gnomebase useradd gettext systemd
+
+SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz"
+SRC_URI[md5sum] = "9f325be386aa906ff9b0b7c0bdf2a59a"
+SRC_URI[sha256sum] = "3e0b4007f248d96df4b8eb5d0f937536044af7053debbbf525e67c9bc5d30654"
+
+S = "${WORKDIR}/NetworkManager-openvpn-${PV}"
+
+PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome"
+
+do_install_append () {
+ rm -rf ${D}${libdir}/NetworkManager/*.la
+}
+
+# Create user and group nm-openvpn that are needed since version 1.0.6
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system nm-openvpn"
+
+FILES_${PN} += " \
+ ${libdir}/NetworkManager/*.so \
+ ${libdir}/NetworkManager/VPN/nm-openvpn-service.name \
+"
+
+FILES_${PN}-staticdev += " \
+ ${libdir}/NetworkManager/*.a \
+"
+
+RDEPENDS_${PN} = " \
+ networkmanager \
+ openvpn \
+"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch
new file mode 100644
index 000000000..ced0c7cff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch
@@ -0,0 +1,82 @@
+From 047d3bf96b510740f64687480333c378e414995f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 31 Mar 2017 15:57:05 -0700
+Subject: [PATCH 1/5] adjust net/ headers for musl compatibility
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libnm-core/nm-utils.c | 12 +++++++-----
+ libnm-core/nm-utils.h | 5 ++---
+ src/platform/wifi/wifi-utils.h | 2 +-
+ 3 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
+index df75d56..868224e 100644
+--- a/libnm-core/nm-utils.c
++++ b/libnm-core/nm-utils.c
+@@ -19,24 +19,26 @@
+ * Copyright 2005 - 2014 Red Hat, Inc.
+ */
+
+-#include "nm-default.h"
+-
+-#include "nm-utils.h"
+-
+ #include <string.h>
+ #include <errno.h>
+ #include <stdlib.h>
+-#include <netinet/ether.h>
+ #include <arpa/inet.h>
+ #include <uuid/uuid.h>
+ #include <libintl.h>
+ #include <gmodule.h>
+ #include <sys/stat.h>
++//#include <net/if_arp.h>
++//#include <net/ethernet.h>
++#include <netinet/ether.h>
++
++#include "nm-default.h"
+
++#include "nm-utils.h"
+ #if WITH_JANSSON
+ #include <jansson.h>
+ #endif
+
++
+ #include "nm-common-macros.h"
+ #include "nm-utils-private.h"
+ #include "nm-setting-private.h"
+diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h
+index 407c14e..156ccae 100644
+--- a/libnm-core/nm-utils.h
++++ b/libnm-core/nm-utils.h
+@@ -27,11 +27,10 @@
+
+ #include <glib.h>
+
+-#include <netinet/in.h>
+-
+ /* For ETH_ALEN and INFINIBAND_ALEN */
+-#include <linux/if_ether.h>
++//#include <linux/if_ether.h>
+ #include <linux/if_infiniband.h>
++#include <netinet/in.h>
+
+ #include "nm-core-enum-types.h"
+ #include "nm-setting-wireless-security.h"
+diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h
+index 8e2b93f..84f5ce9 100644
+--- a/src/platform/wifi/wifi-utils.h
++++ b/src/platform/wifi/wifi-utils.h
+@@ -22,7 +22,7 @@
+ #ifndef __WIFI_UTILS_H__
+ #define __WIFI_UTILS_H__
+
+-#include <net/ethernet.h>
++//#include <net/ethernet.h>
+
+ #include "nm-dbus-interface.h"
+
+--
+2.12.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch
new file mode 100644
index 000000000..26f380bf9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch
@@ -0,0 +1,67 @@
+From 05e8bd664d0244cb8ab4376b962830b97860f6bf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 31 Mar 2017 18:37:19 -0700
+Subject: [PATCH] check for strndupa before using it
+
+musl does not have strndupa
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ config.h.in | 4 ++++
+ configure.ac | 1 +
+ src/systemd/src/basic/alloc-util.h | 12 ++++++++++++
+ 3 files changed, 17 insertions(+)
+
+diff --git a/config.h.in b/config.h.in
+index db8c135..c4229ed 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -41,6 +41,10 @@
+ */
+ #undef HAVE_DCGETTEXT
+
++/* Define to 1 if you have the declaration of `strndupa', and to 0 if you
++ don't. */
++#undef HAVE_DECL_STRNDUPA
++
+ /* Define to 1 if you have the <dlfcn.h> header file. */
+ #undef HAVE_DLFCN_H
+
+diff --git a/configure.ac b/configure.ac
+index 2630f8d..d0a57fd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -54,6 +54,7 @@ AC_SUBST(NM_VERSION)
+
+ GIT_SHA_RECORD(NM_GIT_SHA)
+
++AC_CHECK_DECLS([strndupa], [], [], [[#include <string.h>]])
+ dnl
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ dnl
+diff --git a/src/systemd/src/basic/alloc-util.h b/src/systemd/src/basic/alloc-util.h
+index ceeee51..924b59c 100644
+--- a/src/systemd/src/basic/alloc-util.h
++++ b/src/systemd/src/basic/alloc-util.h
+@@ -25,6 +25,18 @@
+ #include <string.h>
+
+ #include "macro.h"
++#include "config.h"
++
++#if !HAVE_DECL_STRNDUPA
++#define strndupa(s, n) \
++ ({ \
++ const char *__old = (s); \
++ size_t __len = strnlen(__old, (n)); \
++ char *__new = (char *)alloca(__len + 1); \
++ __new[__len] = '\0'; \
++ (char *)memcpy(__new, __old, __len); \
++ })
++#endif
+
+ #define new(t, n) ((t*) malloc_multiply(sizeof(t), (n)))
+
+--
+2.12.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-add-systemd-resolved-backend.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-add-systemd-resolved-backend.patch
new file mode 100644
index 000000000..bd194a61d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-add-systemd-resolved-backend.patch
@@ -0,0 +1,621 @@
+From: Sjoerd Simons <sjoerd@luon.net>
+Date: Sun, 21 Aug 2016 21:46:02 +0200
+Subject: [PATCH] dns/resolved: add systemd-resolved backend
+
+Add initial DNS backend that pushes DNS information into
+systemd-resolved. Backend is choosen by default if the systems
+resolv.conv is setup to pointing to one of the standard resolved
+locations.
+
+This doesn't handle global dns configuration.
+
+Signed-off-by: Sjoerd Simons <sjoerd@luon.net>
+
+https://bugzilla.gnome.org/show_bug.cgi?id=762540
+
+Upstream-Status: Backport
+
+---
+ man/NetworkManager.conf.xml | 10 +-
+ src/Makefile.am | 2 +
+ src/dns-manager/nm-dns-manager.c | 43 ++-
+ src/dns-manager/nm-dns-systemd-resolved.c | 427 ++++++++++++++++++++++++++++++
+ src/dns-manager/nm-dns-systemd-resolved.h | 45 ++++
+ 5 files changed, 523 insertions(+), 4 deletions(-)
+ create mode 100644 src/dns-manager/nm-dns-systemd-resolved.c
+ create mode 100644 src/dns-manager/nm-dns-systemd-resolved.h
+
+diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml
+index 6295b82..0a67ae5 100644
+--- a/man/NetworkManager.conf.xml
++++ b/man/NetworkManager.conf.xml
+@@ -275,10 +275,12 @@ no-auto-default=*
+ <varlistentry>
+ <term><varname>dns</varname></term>
+ <listitem><para>Set the DNS (<filename>resolv.conf</filename>) processing mode.</para>
+- <para><literal>default</literal>: The default if the key is
+- not specified. NetworkManager will update
++ <para><literal>default</literal>: NetworkManager will update
+ <filename>resolv.conf</filename> to reflect the nameservers
+- provided by currently active connections.</para>
++ provided by currently active connections. This is the default
++ if the key is not specified, unless the system is configured
++ to use systemd-resolved; in this case the default is
++ <literal>systemd-resolved</literal></para>
+ <para><literal>dnsmasq</literal>: NetworkManager will run
+ dnsmasq as a local caching nameserver, using a "split DNS"
+ configuration if you are connected to a VPN, and then update
+@@ -288,6 +290,8 @@ no-auto-default=*
+ to unbound and dnssec-triggerd, providing a "split DNS"
+ configuration with DNSSEC support. The <filename>/etc/resolv.conf</filename>
+ will be managed by dnssec-trigger daemon.</para>
++ <para><literal>systemd-resolved</literal>: NetworkManager will
++ push the DNS configuration to systemd-resolved</para>
+ <para><literal>none</literal>: NetworkManager will not
+ modify resolv.conf. This implies
+ <literal>rc-manager</literal>&nbsp;<literal>unmanaged</literal></para>
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 8d29b19..10f63de 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -345,6 +345,8 @@ libNetworkManager_la_SOURCES = \
+ \
+ dns-manager/nm-dns-dnsmasq.c \
+ dns-manager/nm-dns-dnsmasq.h \
++ dns-manager/nm-dns-systemd-resolved.c \
++ dns-manager/nm-dns-systemd-resolved.h \
+ dns-manager/nm-dns-unbound.c \
+ dns-manager/nm-dns-unbound.h \
+ dns-manager/nm-dns-manager.c \
+diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
+index 5a758a9..38bc786 100644
+--- a/src/dns-manager/nm-dns-manager.c
++++ b/src/dns-manager/nm-dns-manager.c
+@@ -45,6 +45,7 @@
+
+ #include "nm-dns-plugin.h"
+ #include "nm-dns-dnsmasq.h"
++#include "nm-dns-systemd-resolved.h"
+ #include "nm-dns-unbound.h"
+
+ #if WITH_LIBSOUP
+@@ -1588,6 +1589,37 @@ _check_resconf_immutable (NMDnsManagerResolvConfManager rc_manager)
+
+ NM_DEFINE_SINGLETON_GETTER (NMDnsManager, nm_dns_manager_get, NM_TYPE_DNS_MANAGER);
+
++static gboolean
++_resolvconf_resolved_managed (void)
++{
++ static const char *const resolved_paths[] = {
++ "/run/systemd/resolve/resolv.conf",
++ "/lib/systemd/resolv.conf",
++ "/usr/lib/systemd/resolv.conf",
++ };
++ GFile *f;
++ GFileInfo *info;
++ gboolean ret = FALSE;
++
++ f = g_file_new_for_path (_PATH_RESCONF);
++ info = g_file_query_info (f,
++ G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK","\
++ G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET,
++ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
++ NULL, NULL);
++
++ if (info && g_file_info_get_is_symlink (info)) {
++ ret = _nm_utils_strv_find_first ((gchar **) resolved_paths,
++ G_N_ELEMENTS (resolved_paths),
++ g_file_info_get_symlink_target (info)) >= 0;
++ }
++
++ g_clear_object(&info);
++ g_clear_object(&f);
++
++ return ret;
++}
++
+ static void
+ init_resolv_conf_mode (NMDnsManager *self, gboolean force_reload_plugin)
+ {
+@@ -1633,7 +1665,16 @@ again:
+
+ rc_manager = _check_resconf_immutable (rc_manager);
+
+- if (nm_streq0 (mode, "dnsmasq")) {
++ if ( (!mode && _resolvconf_resolved_managed ())
++ || nm_streq0 (mode, "systemd-resolved")) {
++ if ( force_reload_plugin
++ || !NM_IS_DNS_SYSTEMD_RESOLVED (priv->plugin)) {
++ _clear_plugin (self);
++ priv->plugin = nm_dns_systemd_resolved_new ();
++ plugin_changed = TRUE;
++ }
++ mode = "systemd-resolved";
++ } else if (nm_streq0 (mode, "dnsmasq")) {
+ if (force_reload_plugin || !NM_IS_DNS_DNSMASQ (priv->plugin)) {
+ _clear_plugin (self);
+ priv->plugin = nm_dns_dnsmasq_new ();
+diff --git a/src/dns-manager/nm-dns-systemd-resolved.c b/src/dns-manager/nm-dns-systemd-resolved.c
+new file mode 100644
+index 0000000..6bdd5f6
+--- /dev/null
++++ b/src/dns-manager/nm-dns-systemd-resolved.c
+@@ -0,0 +1,427 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/*
++ * Copyright (C) 2010 Dan Williams <dcbw@redhat.com>
++ * Copyright (C) 2016 Sjoerd Simons <sjoerd@luon.net>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#include "nm-default.h"
++
++#include "nm-dns-systemd-resolved.h"
++
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <sys/wait.h>
++#include <arpa/inet.h>
++#include <sys/stat.h>
++#include <linux/if.h>
++
++#include "nm-core-internal.h"
++#include "nm-platform.h"
++#include "nm-utils.h"
++#include "nm-ip4-config.h"
++#include "nm-ip6-config.h"
++#include "nm-bus-manager.h"
++#include "nm-manager.h"
++#include "nm-device.h"
++#include "NetworkManagerUtils.h"
++
++G_DEFINE_TYPE (NMDnsSystemdResolved, nm_dns_systemd_resolved, NM_TYPE_DNS_PLUGIN)
++
++#define NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE(o) \
++ (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_SYSTEMD_RESOLVED, \
++ NMDnsSystemdResolvedPrivate))
++
++#define SYSTEMD_RESOLVED_DBUS_SERVICE "org.freedesktop.resolve1"
++#define SYSTEMD_RESOLVED_DBUS_PATH "/org/freedesktop/resolve1"
++
++typedef struct {
++ int ifindex;
++ GList *configs;
++} InterfaceConfig;
++
++typedef struct {
++ GDBusProxy *resolve;
++ GCancellable *init_cancellable;
++ GCancellable *update_cancellable;
++ GQueue dns_updates;
++ GQueue domain_updates;
++} NMDnsSystemdResolvedPrivate;
++
++/*****************************************************************************/
++
++#define _NMLOG_DOMAIN LOGD_DNS
++#define _NMLOG_PREFIX_NAME "systemd-resolved"
++#define _NMLOG(level, ...) \
++ G_STMT_START { \
++ nm_log ((level), _NMLOG_DOMAIN, \
++ "%s[%p]: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
++ _NMLOG_PREFIX_NAME, \
++ (self) \
++ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
++ } G_STMT_END
++
++/*****************************************************************************/
++
++static void
++call_done (GObject *source, GAsyncResult *r, gpointer user_data)
++{
++ GVariant *v;
++ GError *error = NULL;
++ NMDnsSystemdResolved *self = (NMDnsSystemdResolved *) user_data;
++
++ v = g_dbus_proxy_call_finish (G_DBUS_PROXY (source), r, &error);
++
++ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
++ return;
++
++ if (error != NULL) {
++ _LOGW ("Failed: %s\n", error->message);
++ g_error_free (error);
++ }
++}
++
++static void
++add_interface_configuration (NMDnsSystemdResolved *self,
++ GArray *interfaces,
++ const NMDnsIPConfigData *data)
++{
++ int i;
++ InterfaceConfig *ic = NULL;
++ int ifindex;
++ NMDevice *device;
++
++ if (NM_IS_IP4_CONFIG (data->config))
++ ifindex = nm_ip4_config_get_ifindex (data->config);
++ else if (NM_IS_IP6_CONFIG (data->config))
++ ifindex = nm_ip6_config_get_ifindex (data->config);
++ else
++ g_return_if_reached ();
++
++ device = nm_manager_get_device_by_ifindex (nm_manager_get (), ifindex);
++
++ if (!nm_device_get_managed (device, FALSE))
++ return;
++
++ for (i = 0; i < interfaces->len; i++) {
++ InterfaceConfig *tic = &g_array_index (interfaces, InterfaceConfig, i);
++ if (ifindex == tic->ifindex) {
++ ic = tic;
++ break;
++ }
++ }
++
++ if (!ic) {
++ g_array_set_size (interfaces, interfaces->len + 1);
++ ic = &g_array_index (interfaces, InterfaceConfig,
++ interfaces->len - 1);
++ ic->ifindex = ifindex;
++ }
++
++ ic->configs = g_list_append (ic->configs, data->config);
++}
++
++static void
++add_domain (GVariantBuilder *domains,
++ const char *domain,
++ gboolean never_default)
++{
++ /* If this link is never the default (e.g. only used for resources on this
++ * network) add a routing domain. */
++ g_variant_builder_add (domains, "(sb)", domain, never_default);
++}
++
++static void
++update_add_ip6_config (NMDnsSystemdResolved *self,
++ GVariantBuilder *dns,
++ GVariantBuilder *domains,
++ const NMIP6Config *config)
++{
++ guint i, n;
++
++ n = nm_ip6_config_get_num_nameservers (config);
++ for (i = 0 ; i < n; i++) {
++ const struct in6_addr *ip;
++
++ g_variant_builder_open (dns, G_VARIANT_TYPE ("(iay)"));
++ g_variant_builder_add (dns, "i", AF_INET6);
++ ip = nm_ip6_config_get_nameserver (config, i),
++
++ g_variant_builder_add_value (dns, g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE, ip, 16, 1));
++ g_variant_builder_close (dns);
++ }
++
++ n = nm_ip6_config_get_num_searches (config);
++ if (n > 0) {
++ for (i = 0; i < n; i++) {
++ add_domain (domains, nm_ip6_config_get_search (config, i),
++ nm_ip6_config_get_never_default (config));
++ }
++ } else {
++ n = nm_ip6_config_get_num_domains (config);
++ for (i = 0; i < n; i++) {
++ add_domain (domains, nm_ip6_config_get_domain (config, i),
++ nm_ip6_config_get_never_default (config));
++ }
++ }
++}
++
++static void
++update_add_ip4_config (NMDnsSystemdResolved *self,
++ GVariantBuilder *dns,
++ GVariantBuilder *domains,
++ const NMIP4Config *config)
++{
++ guint i, n;
++
++ n = nm_ip4_config_get_num_nameservers (config);
++ for (i = 0 ; i < n; i++) {
++ guint32 ns;
++
++ g_variant_builder_open (dns, G_VARIANT_TYPE ("(iay)"));
++ g_variant_builder_add (dns, "i", AF_INET);
++ ns = nm_ip4_config_get_nameserver (config, i),
++
++ g_variant_builder_add_value (dns, g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE, &ns, 4, 1));
++ g_variant_builder_close (dns);
++ }
++
++ n = nm_ip4_config_get_num_searches (config);
++ if (n > 0) {
++ for (i = 0; i < n; i++) {
++ add_domain (domains, nm_ip4_config_get_search (config, i),
++ nm_ip4_config_get_never_default (config));
++ }
++ } else {
++ n = nm_ip4_config_get_num_domains (config);
++ for (i = 0; i < n; i++) {
++ add_domain (domains, nm_ip4_config_get_domain (config, i),
++ nm_ip4_config_get_never_default (config));
++ }
++ }
++}
++
++static void
++free_pending_updates (NMDnsSystemdResolved *self)
++{
++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self);
++ GVariant *v;
++
++ while ((v = g_queue_pop_head (&priv->dns_updates)) != NULL)
++ g_variant_unref (v);
++
++ while ((v = g_queue_pop_head (&priv->domain_updates)) != NULL)
++ g_variant_unref (v);
++}
++
++static void
++prepare_one_interface (NMDnsSystemdResolved *self, InterfaceConfig *ic)
++{
++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self);
++ GVariantBuilder dns, domains;
++ GList *l;
++
++ g_variant_builder_init (&dns, G_VARIANT_TYPE ("(ia(iay))"));
++ g_variant_builder_add (&dns, "i", ic->ifindex);
++ g_variant_builder_open (&dns, G_VARIANT_TYPE ("a(iay)"));
++
++ g_variant_builder_init (&domains, G_VARIANT_TYPE ("(ia(sb))"));
++ g_variant_builder_add (&domains, "i", ic->ifindex);
++ g_variant_builder_open (&domains, G_VARIANT_TYPE ("a(sb)"));
++
++ for (l = ic->configs ; l != NULL ; l = g_list_next (l)) {
++ if (NM_IS_IP4_CONFIG (l->data))
++ update_add_ip4_config (self, &dns, &domains, l->data);
++ else if (NM_IS_IP6_CONFIG (l->data))
++ update_add_ip6_config (self, &dns, &domains, l->data);
++ else
++ g_assert_not_reached ();
++ }
++ g_variant_builder_close (&dns);
++ g_variant_builder_close (&domains);
++
++ g_queue_push_tail (&priv->dns_updates,
++ g_variant_ref_sink (g_variant_builder_end (&dns)));
++ g_queue_push_tail (&priv->domain_updates,
++ g_variant_ref_sink (g_variant_builder_end (&domains)));
++}
++
++static void
++send_updates (NMDnsSystemdResolved *self)
++{
++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self);
++ GVariant *v;
++
++ nm_clear_g_cancellable (&priv->update_cancellable);
++
++ if (!priv->resolve)
++ return;
++
++ priv->update_cancellable = g_cancellable_new ();
++
++ while ((v = g_queue_pop_head (&priv->dns_updates)) != NULL) {
++ g_dbus_proxy_call (priv->resolve, "SetLinkDNS", v,
++ G_DBUS_CALL_FLAGS_NONE,
++ -1, priv->update_cancellable, call_done, self);
++ g_variant_unref (v);
++ }
++
++ while ((v = g_queue_pop_head (&priv->domain_updates)) != NULL) {
++ g_dbus_proxy_call (priv->resolve, "SetLinkDomains", v,
++ G_DBUS_CALL_FLAGS_NONE,
++ -1, priv->update_cancellable, call_done, self);
++ g_variant_unref (v);
++ }
++}
++
++static gboolean
++update (NMDnsPlugin *plugin,
++ const NMDnsIPConfigData **configs,
++ const NMGlobalDnsConfig *global_config,
++ const char *hostname)
++{
++ NMDnsSystemdResolved *self = NM_DNS_SYSTEMD_RESOLVED (plugin);
++ GArray *interfaces = g_array_new (TRUE, TRUE, sizeof (InterfaceConfig));
++ const NMDnsIPConfigData **c;
++ int i;
++
++ for (c = configs; *c != NULL; c++)
++ add_interface_configuration (self, interfaces, *c);
++
++ free_pending_updates (self);
++
++ for (i = 0; i < interfaces->len; i++) {
++ InterfaceConfig *ic = &g_array_index (interfaces, InterfaceConfig, i);
++
++ prepare_one_interface (self, ic);
++ g_list_free (ic->configs);
++ }
++
++ g_array_free (interfaces, TRUE);
++
++ send_updates (self);
++
++ return TRUE;
++}
++
++/****************************************************************/
++
++static gboolean
++is_caching (NMDnsPlugin *plugin)
++{
++ return TRUE;
++}
++
++static const char *
++get_name (NMDnsPlugin *plugin)
++{
++ return "systemd-resolved";
++}
++
++/****************************************************************/
++
++NMDnsPlugin *
++nm_dns_systemd_resolved_new (void)
++{
++ return g_object_new (NM_TYPE_DNS_SYSTEMD_RESOLVED, NULL);
++}
++
++static void
++resolved_proxy_created (GObject *source, GAsyncResult *r, gpointer user_data)
++{
++ NMDnsSystemdResolved *self = (NMDnsSystemdResolved *) user_data;
++ NMDnsSystemdResolvedPrivate *priv;
++ gs_free_error GError *error = NULL;
++ GDBusProxy *resolve;
++
++ resolve = g_dbus_proxy_new_finish (r, &error);
++ if ( !resolve
++ && g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
++ return;
++
++ priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self);
++ g_clear_object (&priv->init_cancellable);
++ if (!resolve) {
++ _LOGW ("failed to connect to resolved via DBus: %s", error->message);
++ g_signal_emit_by_name (self, NM_DNS_PLUGIN_FAILED);
++ return;
++ }
++
++ priv->resolve = resolve;
++ send_updates (self);
++}
++
++
++static void
++nm_dns_systemd_resolved_init (NMDnsSystemdResolved *self)
++{
++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self);
++ NMBusManager *dbus_mgr;
++ GDBusConnection *connection;
++
++ g_queue_init (&priv->dns_updates);
++ g_queue_init (&priv->domain_updates);
++
++ dbus_mgr = nm_bus_manager_get ();
++ g_return_if_fail (dbus_mgr);
++
++ connection = nm_bus_manager_get_connection (dbus_mgr);
++ g_return_if_fail (connection);
++
++ priv->init_cancellable = g_cancellable_new ();
++ g_dbus_proxy_new (connection,
++ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
++ G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
++ NULL,
++ SYSTEMD_RESOLVED_DBUS_SERVICE,
++ SYSTEMD_RESOLVED_DBUS_PATH,
++ SYSTEMD_RESOLVED_DBUS_SERVICE ".Manager",
++ priv->init_cancellable,
++ resolved_proxy_created,
++ self);
++}
++
++static void
++dispose (GObject *object)
++{
++ NMDnsSystemdResolved *self = NM_DNS_SYSTEMD_RESOLVED (object);
++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self);
++
++ free_pending_updates (self);
++ g_clear_object (&priv->resolve);
++ nm_clear_g_cancellable (&priv->init_cancellable);
++ nm_clear_g_cancellable (&priv->update_cancellable);
++
++ G_OBJECT_CLASS (nm_dns_systemd_resolved_parent_class)->dispose (object);
++}
++
++static void
++nm_dns_systemd_resolved_class_init (NMDnsSystemdResolvedClass *dns_class)
++{
++ NMDnsPluginClass *plugin_class = NM_DNS_PLUGIN_CLASS (dns_class);
++ GObjectClass *object_class = G_OBJECT_CLASS (dns_class);
++
++ g_type_class_add_private (dns_class, sizeof (NMDnsSystemdResolvedPrivate));
++
++ object_class->dispose = dispose;
++
++ plugin_class->is_caching = is_caching;
++ plugin_class->update = update;
++ plugin_class->get_name = get_name;
++}
++
+diff --git a/src/dns-manager/nm-dns-systemd-resolved.h b/src/dns-manager/nm-dns-systemd-resolved.h
+new file mode 100644
+index 0000000..45c64b3
+--- /dev/null
++++ b/src/dns-manager/nm-dns-systemd-resolved.h
+@@ -0,0 +1,45 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ * Copyright (C) 2016 Sjoerd Simons <sjoerd@luon.net>
++ */
++
++#ifndef __NETWORKMANAGER_DNS_SYSTEMD_RESOLVED_H__
++#define __NETWORKMANAGER_DNS_SYSTEMD_RESOLVED_H__
++
++#include "nm-dns-plugin.h"
++
++#define NM_TYPE_DNS_SYSTEMD_RESOLVED (nm_dns_systemd_resolved_get_type ())
++#define NM_DNS_SYSTEMD_RESOLVED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DNS_SYSTEMD_RESOLVED, NMDnsSystemdResolved))
++#define NM_DNS_SYSTEMD_RESOLVED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DNS_SYSTEMD_RESOLVED, NMDnsSystemdResolvedClass))
++#define NM_IS_DNS_SYSTEMD_RESOLVED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DNS_SYSTEMD_RESOLVED))
++#define NM_IS_DNS_SYSTEMD_RESOLVED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_SYSTEMD_RESOLVED))
++#define NM_DNS_SYSTEMD_RESOLVED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_SYSTEMD_RESOLVED, NMDnsSystemdResolvedClass))
++
++typedef struct {
++ NMDnsPlugin parent;
++} NMDnsSystemdResolved;
++
++typedef struct {
++ NMDnsPluginClass parent;
++} NMDnsSystemdResolvedClass;
++
++GType nm_dns_systemd_resolved_get_type (void);
++
++NMDnsPlugin *nm_dns_systemd_resolved_new (void);
++
++#endif /* __NETWORKMANAGER_DNS_SYSTEMD_RESOLVED_H__ */
++
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch
new file mode 100644
index 000000000..ca7e4a496
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch
@@ -0,0 +1,29 @@
+From 6f799f1f0e68cc7bf89c0a56aec5ecf46937619d Mon Sep 17 00:00:00 2001
+From: Ricardo Salveti <rsalveti@rsalveti.net>
+Date: Thu, 15 Jun 2017 10:02:38 -0300
+Subject: [PATCH] dns/resolved: also check for /etc/resolv-conf.systemd
+
+OE specific resolv.conf path, so it can be enabled by default if available.
+
+Upstream-Status: Inappropriate [OE config specific]
+
+Signed-off-by: Ricardo Salveti <rsalveti@rsalveti.net>
+---
+ src/dns-manager/nm-dns-manager.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
+index c1d2bf7..d70d4b4 100644
+--- a/src/dns-manager/nm-dns-manager.c
++++ b/src/dns-manager/nm-dns-manager.c
+@@ -1596,6 +1596,7 @@ _resolvconf_resolved_managed (void)
+ "/run/systemd/resolve/resolv.conf",
+ "/lib/systemd/resolv.conf",
+ "/usr/lib/systemd/resolv.conf",
++ "/etc/resolv-conf.systemd",
+ };
+ GFile *f;
+ GFileInfo *info;
+--
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch
new file mode 100644
index 000000000..5c9ed92b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch
@@ -0,0 +1,36 @@
+From 7dd40db6606c3b3559365a03944cb99aee5ceabc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 4 Apr 2013 12:57:58 +0200
+Subject: [PATCH] don't try to run /sbin/dhclient to get the version number,
+ this break cross-compiling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [build system specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index cc66e9b..7163287 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -488,12 +488,6 @@ AS_IF([test -z "$with_dhcpcd"], with_dhcpcd=yes)
+ # Search and check the executables
+ if test "$with_dhclient" = "yes"; then
+ AC_PATH_PROGS(with_dhclient, dhclient, no, /sbin:/usr/sbin:/usr/local/sbin)
+- if test "$with_dhclient" != "no"; then
+- if ! $with_dhclient --version 2>&1 | grep -q "^isc-dhclient-4\."; then
+- AC_MSG_WARN([Cannot use dhclient, version 4.x is required])
+- with_dhclient=no
+- fi
+- fi
+ fi
+ if test "$with_dhcpcd" = "yes"; then
+ AC_PATH_PROGS(with_dhcpcd, dhcpcd, no, /sbin:/usr/sbin:/usr/local/sbin)
+--
+1.7.6.5
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch
new file mode 100644
index 000000000..4234e2be2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch
@@ -0,0 +1,29 @@
+From a9bfe6f2029d75caf28fcdf3e740843cf6359615 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 27 Jun 2017 07:31:25 -0700
+Subject: [PATCH 1/2] systemd: xlocale.h is dropped by newer glibc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/systemd/src/basic/parse-util.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/systemd/src/basic/parse-util.c b/src/systemd/src/basic/parse-util.c
+index 9c21e5a..dd95d1f 100644
+--- a/src/systemd/src/basic/parse-util.c
++++ b/src/systemd/src/basic/parse-util.c
+@@ -25,11 +25,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#ifdef __GLIBC__
+-#include <xlocale.h>
+-#else
+ #include <locale.h>
+-#endif
+ #include "alloc-util.h"
+ #include "extract-word.h"
+ #include "macro.h"
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch
new file mode 100644
index 000000000..aa57c832c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch
@@ -0,0 +1,58 @@
+From 7274bbadd398a69b8babf47431f80d35e0228c42 Mon Sep 17 00:00:00 2001
+From: Adrian Freihofer <adrian.freihofer@gmail.com>
+Date: Mon, 18 Jan 2016 08:53:26 +0100
+Subject: [PATCH] Fix nm-version-macro includes
+
+nm-version-macros.h cannot be found since include directive has
+been changed from " to <. This breaks for example gnome-panel
+build:
+/usr/include/NetworkManager/NetworkManager.h:31:31:
+fatal error: nm-version-macros.h: No such file or directory.
+---
+ libnm-core/nm-version.h | 2 +-
+ libnm-util/NetworkManager.h | 2 +-
+ libnm-util/nm-version.h | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h
+index 730330a..d751bc1 100644
+--- a/libnm-core/nm-version.h
++++ b/libnm-core/nm-version.h
+@@ -23,7 +23,7 @@
+
+ #include <glib.h>
+
+-#include <nm-version-macros.h>
++#include "nm-version-macros.h"
+
+ /* Deprecation / Availability macros */
+
+diff --git a/libnm-util/NetworkManager.h b/libnm-util/NetworkManager.h
+index d83e4ab..3a964fc 100644
+--- a/libnm-util/NetworkManager.h
++++ b/libnm-util/NetworkManager.h
+@@ -28,7 +28,7 @@
+
+ /* This header must not include glib or libnm. */
+
+-#include <nm-version-macros.h>
++#include "nm-version-macros.h"
+
+ /*
+ * dbus services details
+diff --git a/libnm-util/nm-version.h b/libnm-util/nm-version.h
+index 63895dd..41101a4 100644
+--- a/libnm-util/nm-version.h
++++ b/libnm-util/nm-version.h
+@@ -23,7 +23,7 @@
+
+ #include <glib.h>
+
+-#include <nm-version-macros.h>
++#include "nm-version-macros.h"
+
+ /* Deprecation / Availability macros */
+
+--
+2.5.0
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch
new file mode 100644
index 000000000..22bc6e8bd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch
@@ -0,0 +1,30 @@
+From 98d7e3ae5b15e30af1bf5dd1d279e1a774bf2b86 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 31 Mar 2017 16:05:05 -0700
+Subject: [PATCH 2/5] socket-util.h: Include linux/sockios.h on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/systemd/src/basic/socket-util.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/systemd/src/basic/socket-util.h b/src/systemd/src/basic/socket-util.h
+index 2536b08..76d6107 100644
+--- a/src/systemd/src/basic/socket-util.h
++++ b/src/systemd/src/basic/socket-util.h
+@@ -29,6 +29,12 @@
+ #include <linux/netlink.h>
+ #include <linux/if_packet.h>
+
++#if !defined(__GLIBC__)
++/* SIOCGSTAMPNS from linux/asm-generic.h
++ * for src/systemd/src/libsystemd-network/sd-lldp.c */
++#include <linux/sockios.h>
++#endif
++
+ #include "macro.h"
+ #include "util.h"
+
+--
+2.12.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-user-format-string-in-g_dbus_message_new_method_erro.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-user-format-string-in-g_dbus_message_new_method_erro.patch
new file mode 100644
index 000000000..e32b5c00d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-user-format-string-in-g_dbus_message_new_method_erro.patch
@@ -0,0 +1,67 @@
+From adc0668b854289a11cfc29597b5566ba1869d17e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 27 Jun 2017 07:32:09 -0700
+Subject: [PATCH 2/2] user format string in g_dbus_message_new_method_error ()
+
+This fixes format errors with -Werror=format-security
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/nm-manager.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index c3d65cd..e814912 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -4871,6 +4871,7 @@ prop_set_auth_done_cb (NMAuthChain *chain,
+ if (error || (result != NM_AUTH_CALL_RESULT_YES)) {
+ reply = g_dbus_message_new_method_error (pfd->message,
+ NM_PERM_DENIED_ERROR,
++ "%s",
+ (error_message = "Not authorized to perform this operation"));
+ if (error)
+ error_message = error->message;
+@@ -4882,6 +4883,7 @@ prop_set_auth_done_cb (NMAuthChain *chain,
+ if (!object) {
+ reply = g_dbus_message_new_method_error (pfd->message,
+ "org.freedesktop.DBus.Error.UnknownObject",
++ "%s",
+ (error_message = "Object doesn't exist."));
+ goto done;
+ }
+@@ -4890,6 +4892,7 @@ prop_set_auth_done_cb (NMAuthChain *chain,
+ if (!nm_exported_object_get_interface_by_type (object, pfd->interface_type)) {
+ reply = g_dbus_message_new_method_error (pfd->message,
+ "org.freedesktop.DBus.Error.InvalidArgs",
++ "%s",
+ (error_message = "Object is of unexpected type."));
+ goto done;
+ }
+@@ -4905,6 +4908,7 @@ prop_set_auth_done_cb (NMAuthChain *chain,
+ if (global_dns && !nm_global_dns_config_is_internal (global_dns)) {
+ reply = g_dbus_message_new_method_error (pfd->message,
+ NM_PERM_DENIED_ERROR,
++ "%s",
+ (error_message = "Global DNS configuration already set via configuration file"));
+ goto done;
+ }
+@@ -4949,6 +4953,7 @@ do_set_property_check (gpointer user_data)
+ if (!pfd->subject) {
+ reply = g_dbus_message_new_method_error (pfd->message,
+ NM_PERM_DENIED_ERROR,
++ "%s",
+ (error_message = "Could not determine request UID."));
+ goto out;
+ }
+@@ -4958,6 +4963,7 @@ do_set_property_check (gpointer user_data)
+ if (!chain) {
+ reply = g_dbus_message_new_method_error (pfd->message,
+ NM_PERM_DENIED_ERROR,
++ "%s",
+ (error_message = "Could not authenticate request."));
+ goto out;
+ }
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch
new file mode 100644
index 000000000..236914f75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch
@@ -0,0 +1,39 @@
+From 16c3dc7a407101243d2056d2c93e61dce1a05350 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 31 Mar 2017 16:08:45 -0700
+Subject: [PATCH 3/5] Define ETH_ALEN
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libnm-core/nm-utils.h | 1 +
+ src/platform/wifi/wifi-utils.h | 2 ++
+ 2 files changed, 3 insertions(+)
+
+diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h
+index 156ccae..68e222b 100644
+--- a/libnm-core/nm-utils.h
++++ b/libnm-core/nm-utils.h
+@@ -29,6 +29,7 @@
+
+ /* For ETH_ALEN and INFINIBAND_ALEN */
+ //#include <linux/if_ether.h>
++#define ETH_ALEN 6 /* Octets in one ethernet addr */
+ #include <linux/if_infiniband.h>
+ #include <netinet/in.h>
+
+diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h
+index 84f5ce9..33a838d 100644
+--- a/src/platform/wifi/wifi-utils.h
++++ b/src/platform/wifi/wifi-utils.h
+@@ -24,6 +24,8 @@
+
+ //#include <net/ethernet.h>
+
++#define ETH_ALEN 6 /* Octets in one ethernet addr */
++
+ #include "nm-dbus-interface.h"
+
+ typedef struct WifiData WifiData;
+--
+2.12.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch
new file mode 100644
index 000000000..27c9ae962
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch
@@ -0,0 +1,93 @@
+From 2153109e60e362e0d09215d529bf00176f31a3e7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 31 Mar 2017 16:09:41 -0700
+Subject: [PATCH 4/5] Define missing features to cater for musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/systemd/sd-adapt/nm-sd-adapt.h | 2 +-
+ src/systemd/src/basic/parse-util.c | 5 ++++-
+ src/systemd/src/basic/stdio-util.h | 2 ++
+ src/systemd/src/basic/util.h | 5 +++++
+ src/systemd/src/systemd/sd-event.h | 4 ----
+ 5 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/src/systemd/sd-adapt/nm-sd-adapt.h b/src/systemd/sd-adapt/nm-sd-adapt.h
+index cf27c1a..72c1b89 100644
+--- a/src/systemd/sd-adapt/nm-sd-adapt.h
++++ b/src/systemd/sd-adapt/nm-sd-adapt.h
+@@ -119,7 +119,7 @@ G_STMT_START { \
+ # ifdef HAVE___SECURE_GETENV
+ # define secure_getenv __secure_getenv
+ # else
+-# error neither secure_getenv nor __secure_getenv is available
++# define secure_getenv getenv
+ # endif
+ #endif
+
+diff --git a/src/systemd/src/basic/parse-util.c b/src/systemd/src/basic/parse-util.c
+index 2738663..9c21e5a 100644
+--- a/src/systemd/src/basic/parse-util.c
++++ b/src/systemd/src/basic/parse-util.c
+@@ -25,8 +25,11 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#ifdef __GLIBC__
+ #include <xlocale.h>
+-
++#else
++#include <locale.h>
++#endif
+ #include "alloc-util.h"
+ #include "extract-word.h"
+ #include "macro.h"
+diff --git a/src/systemd/src/basic/stdio-util.h b/src/systemd/src/basic/stdio-util.h
+index bd1144b..c92e935 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/>.
+ ***/
+
++#ifdef __GLIBC__
+ #include <printf.h>
++#endif
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <sys/types.h>
+diff --git a/src/systemd/src/basic/util.h b/src/systemd/src/basic/util.h
+index bb2fc31..fe074a5 100644
+--- a/src/systemd/src/basic/util.h
++++ b/src/systemd/src/basic/util.h
+@@ -46,6 +46,11 @@
+ #include "missing.h"
+ #include "time-util.h"
+
++#if !defined(__GLIBC__)
++typedef int (*__compar_fn_t) (const void*, const void*);
++typedef __compar_fn_t comparison_fn_t;
++#endif
++
+ size_t page_size(void) _pure_;
+ #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
+
+diff --git a/src/systemd/src/systemd/sd-event.h b/src/systemd/src/systemd/sd-event.h
+index cc26b7d..c7e0004 100644
+--- a/src/systemd/src/systemd/sd-event.h
++++ b/src/systemd/src/systemd/sd-event.h
+@@ -69,11 +69,7 @@ typedef int (*sd_event_handler_t)(sd_event_source *s, void *userdata);
+ typedef int (*sd_event_io_handler_t)(sd_event_source *s, int fd, uint32_t revents, void *userdata);
+ typedef int (*sd_event_time_handler_t)(sd_event_source *s, uint64_t usec, void *userdata);
+ typedef int (*sd_event_signal_handler_t)(sd_event_source *s, const struct signalfd_siginfo *si, void *userdata);
+-#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
+ typedef int (*sd_event_child_handler_t)(sd_event_source *s, const siginfo_t *si, void *userdata);
+-#else
+-typedef void* sd_event_child_handler_t;
+-#endif
+
+ int sd_event_default(sd_event **e);
+
+--
+2.12.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
new file mode 100644
index 000000000..f4a04c782
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
@@ -0,0 +1,36 @@
+From 9e9e5814456ec23b9fc669d342bf9d8f7ee49fc2 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/5] sd-lldp.h: Remove net/ethernet.h seems to be over
+ specified
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/systemd/src/systemd/sd-lldp.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: NetworkManager-1.4.2/src/systemd/src/systemd/sd-lldp.h
+===================================================================
+--- NetworkManager-1.4.2.orig/src/systemd/src/systemd/sd-lldp.h
++++ NetworkManager-1.4.2/src/systemd/src/systemd/sd-lldp.h
+@@ -22,7 +22,7 @@
+ ***/
+
+ #include <inttypes.h>
+-#include <net/ethernet.h>
++//#include <net/ethernet.h>
+ #include <sys/types.h>
+
+ #include "sd-event.h"
+Index: NetworkManager-1.4.2/src/systemd/src/libsystemd-network/sd-lldp.c
+===================================================================
+--- NetworkManager-1.4.2.orig/src/systemd/src/libsystemd-network/sd-lldp.c
++++ NetworkManager-1.4.2/src/systemd/src/libsystemd-network/sd-lldp.c
+@@ -21,6 +21,7 @@
+ #include "nm-sd-adapt.h"
+
+ #include <arpa/inet.h>
++#include <net/ethernet.h>
+
+ #include "sd-lldp.h"
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb
new file mode 100644
index 000000000..d5f456f37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb
@@ -0,0 +1,136 @@
+SUMMARY = "NetworkManager"
+HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
+SECTION = "net/misc"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \
+ file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \
+ file://docs/api/html/license.html;md5=8eb8e72bab097b9d11763002cb003697 \
+"
+
+DEPENDS = " \
+ intltool-native \
+ libnl \
+ dbus \
+ dbus-glib \
+ dbus-glib-native \
+ libgudev \
+ util-linux \
+ libndp \
+ libnewt \
+ polkit \
+ jansson \
+"
+
+inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection
+
+GI_DATA_ENABLED_libc-musl = "False"
+
+SRC_URI = "${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
+ file://0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch \
+ file://0002-Fix-nm-version-macro-includes.patch \
+ file://0001-adjust-net-headers-for-musl-compatibility.patch \
+ file://0002-socket-util.h-Include-linux-sockios.h-on-musl.patch \
+ file://0003-Define-ETH_ALEN.patch \
+ file://0004-Define-missing-features-to-cater-for-musl.patch \
+ file://0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
+ file://0001-check-for-strndupa-before-using-it.patch \
+ file://0001-dns-resolved-add-systemd-resolved-backend.patch \
+ file://0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch \
+ file://0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch \
+ file://0002-user-format-string-in-g_dbus_message_new_method_erro.patch \
+ "
+SRC_URI[md5sum] = "63f1e0d6d7e9099499d062c84c927a75"
+SRC_URI[sha256sum] = "829378f318cc008d138a23ca6a9191928ce75344e7e47a2f2c35f4ac82133309"
+
+S = "${WORKDIR}/NetworkManager-${PV}"
+
+EXTRA_OECONF = " \
+ --disable-ifcfg-rh \
+ --disable-ifnet \
+ --disable-ifcfg-suse \
+ --disable-more-warnings \
+ --with-iptables=${sbindir}/iptables \
+ --with-tests \
+ --with-nmtui=yes \
+"
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/libnm-util/.libs"
+}
+
+PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
+ bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \
+"
+PACKAGECONFIG[systemd] = " \
+ --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \
+ --without-systemdsystemunitdir, \
+ polkit \
+"
+PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
+# consolekit is not picked by shlibs, so add it to RDEPENDS too
+PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
+PACKAGECONFIG[concheck] = "--with-libsoup=yes,--with-libsoup=no,libsoup-2.4"
+PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
+PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
+# Use full featured dhcp client instead of internal one
+PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
+PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
+PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
+PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
+PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,wireless-tools,wpa-supplicant wireless-tools"
+PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
+PACKAGECONFIG[netconfig] = "--with-netconfig=yes,--with-netconfig=no"
+PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
+
+PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \
+ ${PN}-nmtui ${PN}-nmtui-doc \
+ ${PN}-adsl \
+"
+
+FILES_libnmutil += "${libdir}/libnm-util.so.*"
+FILES_libnmglib += "${libdir}/libnm-glib.so.*"
+FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*"
+
+FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so"
+
+FILES_${PN} += " \
+ ${libexecdir} \
+ ${libdir}/pppd/*/nm-pppd-plugin.so \
+ ${libdir}/NetworkManager/*.so \
+ ${datadir}/polkit-1 \
+ ${datadir}/dbus-1 \
+ ${base_libdir}/udev/* \
+ ${systemd_unitdir}/system \
+"
+
+RRECOMMENDS_${PN} += "iptables \
+ ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
+"
+RCONFLICTS_${PN} = "connman"
+
+FILES_${PN}-dev += " \
+ ${datadir}/NetworkManager/gdb-cmd \
+ ${libdir}/pppd/*/*.la \
+ ${libdir}/NetworkManager/*.la \
+"
+
+FILES_${PN}-nmtui = " \
+ ${bindir}/nmtui \
+ ${bindir}/nmtui-edit \
+ ${bindir}/nmtui-connect \
+ ${bindir}/nmtui-hostname \
+"
+
+FILES_${PN}-nmtui-doc = " \
+ ${mandir}/man1/nmtui* \
+"
+
+SYSTEMD_SERVICE_${PN} = "NetworkManager.service NetworkManager-dispatcher.service"
+
+do_install_append() {
+ rm -rf ${D}/run ${D}${localstatedir}/run
+}
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb
index 3a1f0f30f..c944144e2 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb
@@ -14,9 +14,9 @@ PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy,"
# not config defaults
PACKAGECONFIG[pcsc-lite] = "--with-libpcsclite,--without-libpcsclite,pcsc-lite,"
-PV = "7.06"
+PV = "7.08"
-SRCREV = "35542d52202672b8c12ecc63867432128244013a"
+SRCREV = "9697bea0e50952cab57063238b43a7099e498cbb"
SRC_URI = "git://git.infradead.org/users/dwmw2/openconnect.git"
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb
new file mode 100644
index 000000000..4e41aa576
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Easy communication with NetworkManager from Python"
+HOMEPAGE = "https://github.com/seveas/python-networkmanager"
+LICENSE = "Zlib"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8d8bac174bf8422b151200e6cc78ebe4"
+
+SRC_URI[md5sum] = "5fc644a65463031295c6b7dd51a0f1bd"
+SRC_URI[sha256sum] = "bc36507506ad29bfdac941b0987ebd1cc9633c9a9291d7378e229e4515a0a517"
+
+PYPI_PACKAGE = "python-networkmanager"
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "networkmanager python-dbus python-six"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch
new file mode 100644
index 000000000..08ba2c31e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch
@@ -0,0 +1,40 @@
+From e0c690acfcddd3c3421f6eb0182c54815fd70f8f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jul 2017 23:21:08 -0700
+Subject: [PATCH] rdate: define logwtmp on libc != glibc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/rdate.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/src/rdate.c b/src/rdate.c
+index 943d481..685b1b8 100644
+--- a/src/rdate.c
++++ b/src/rdate.c
+@@ -41,7 +41,22 @@ static int print_mode = 0; // display the time
+ static int timeout = 10; // timeout for each connection attempt
+ static char *service = DEFAULT_SERVICE;
+
++#ifndef __GLIBC__
++static void logwtmp(const char * line, const char * name, const char * host)
++{
++ struct utmp u;
++ memset(&u, 0, sizeof(u));
++
++ u.ut_pid = getpid();
++ u.ut_type = name[0] ? USER_PROCESS : DEAD_PROCESS;
++ strncpy(u.ut_line, line, sizeof(u.ut_line));
++ strncpy(u.ut_name, name, sizeof(u.ut_name));
++ strncpy(u.ut_host, host, sizeof(u.ut_host));
++ gettimeofday(&(u.ut_tv), NULL);
+
++ updwtmp(_PATH_WTMP, &u);
++}
++#endif /* __GLIBC__ */
+
+ // Returns string from address info pointer
+ static char*
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate/0001-src-rdate-Fix-printf-format-errors.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate/0001-src-rdate-Fix-printf-format-errors.patch
new file mode 100644
index 000000000..2f6518984
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate/0001-src-rdate-Fix-printf-format-errors.patch
@@ -0,0 +1,33 @@
+From f58bcb43c31d08de58853b088681cbe4df36cbf9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 26 Jun 2017 22:50:56 -0700
+Subject: [PATCH] src/rdate: Fix printf format errors
+
+Fixes
+
+rdate.c:85:41: error: format not a string literal and no format arguments [-Werror=format-security]
+| syslog(is_error?LOG_WARNING:LOG_INFO, buf);
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ src/rdate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/rdate.c b/src/rdate.c
+index 5c3e829..943d481 100644
+--- a/src/rdate.c
++++ b/src/rdate.c
+@@ -82,7 +82,7 @@ write_log(int is_error, char *format, ...)
+ return; /* Error, which we can't report because this _is_ the error
+ reporting mechanism */
+ if(log_mode)
+- syslog(is_error?LOG_WARNING:LOG_INFO, buf);
++ syslog(is_error?LOG_WARNING:LOG_INFO, "%s", buf);
+ if(is_error || print_mode)
+ fprintf(is_error?stderr:stdout, "%s: %s\n", argv0, buf);
+ }
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb
new file mode 100644
index 000000000..cd4db12c0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Tool for getting the date/time from a remote machine."
+DESCRIPTION = "The rdate utility retrieves the date and time from \
+ another machine on your network, using the protocol described in RFC 868. \
+ If you run rdate as root, it will set your machine local time to the \
+ time of the machine that you queried. \
+"
+
+HOMEPAGE= "https://www.aelius.com/njh/rdate/"
+SECTION = "Applications/System"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "https://www.aelius.com/njh/${BPN}/${BP}.tar.gz \
+ file://0001-src-rdate-Fix-printf-format-errors.patch \
+ file://0001-rdate-define-logwtmp-on-libc-glibc.patch \
+ "
+SRC_URI[md5sum] = "0a4f612480777fdf25264ac03c57eae6"
+SRC_URI[sha256sum] = "6e800053eaac2b21ff4486ec42f0aca7214941c7e5fceedd593fa0be99b9227d"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bb-build.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bb-build.patch
new file mode 100644
index 000000000..c95eaf8f5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bb-build.patch
@@ -0,0 +1,75 @@
+From 244861e2c9bb9cc44f4bd246964ba850a7cf1216 Mon Sep 17 00:00:00 2001
+From: Xin Ouyang <Xin.Ouyang@windriver.com>
+Date: Tue, 15 May 2012 15:06:43 +0800
+Subject: [PATCH] rdist: bitbake build
+
+Upstream-Status: Inappropriate [OE specific]
+
+---
+ Makefile.local | 8 ++++----
+ doc/Makefile.real | 4 +++-
+ src/Makefile.real | 1 +
+ 3 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.local b/Makefile.local
+index 26092b2..389cb84 100644
+--- a/Makefile.local
++++ b/Makefile.local
+@@ -14,7 +14,7 @@
+ # BIN_DIR variable, you would uncomment the following line
+ # or add your own line.
+ #
+-#BIN_DIR = /usr/bin
++BIN_DIR = ${DESTDIR}/${bindir}
+
+ #
+ # Add any local definitions you want pass to the compiler to DEFS_LOCAL
+@@ -46,13 +46,13 @@ LIBS_LOCAL =
+ # Set a site specific install program to use. Must support BSD style
+ # install(1) arguments.
+ #
+-#INSTALL = install
++INSTALL = install
+
+ #
+ # Site specific Man Page configuration.
+ #
+-#MAN_1_DIR = /usr/local/man/man1
+-#MAN_8_DIR = /usr/local/man/man8
++MAN_1_DIR = ${DESTDIR}/${mandir}/man1
++MAN_8_DIR = ${DESTDIR}/${mandir}/man8
+ #MAN_OWNER = bin
+ #MAN_GROUP = bin
+ #MAN_MODE = 644
+diff --git a/doc/Makefile.real b/doc/Makefile.real
+index 42cabec..e32c30b 100644
+--- a/doc/Makefile.real
++++ b/doc/Makefile.real
+@@ -16,9 +16,11 @@ all:
+
+ doc:
+
+-install:
++install: install.man
+
+ install.man: rdist.man rdistd.man
++ test -d ${MAN_1_DIR} || ${INSTALL} -d ${MAN_1_DIR}
++ test -d ${MAN_8_DIR} || ${INSTALL} -d ${MAN_8_DIR}
+ ${INSTALL} ${INSTALL_ARGS} rdist.man ${CLIENT_DEST}
+ ${INSTALL} ${INSTALL_ARGS} rdistd.man ${SERVER_DEST}
+
+diff --git a/src/Makefile.real b/src/Makefile.real
+index 02179e4..9ec551d 100644
+--- a/src/Makefile.real
++++ b/src/Makefile.real
+@@ -52,6 +52,7 @@ clean:
+ $(COMMONOBJS) $(MISSINGOBJS)
+
+ install:
++ test -d $(BIN_DIR) || $(INSTALL) -d $(BIN_DIR)
+ $(INSTALL) ${IN_ARGS} -o $(BIN_OWNER) -m ${RDIST_MODE} \
+ $(CLIENT_BIN) $(BIN_DIR)/$(CLIENT)
+ $(INSTALL) ${IN_ARGS} -o ${BIN_OWNER} -m ${RDISTD_MODE} \
+--
+1.7.5.4
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bison.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bison.patch
new file mode 100644
index 000000000..435491221
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bison.patch
@@ -0,0 +1,147 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/gram.y.bison 1998-11-10 05:10:42.000000000 +0100
++++ rdist-6.1.5/src/gram.y 2003-06-04 16:02:19.000000000 +0200
+@@ -90,10 +90,10 @@
+ struct namelist *namel;
+ }
+
+-%type <optval> OPTION, options
+-%type <string> NAME, STRING
+-%type <subcmd> INSTALL, NOTIFY, EXCEPT, PATTERN, SPECIAL, CMDSPECIAL, cmdlist, cmd
+-%type <namel> namelist, names, opt_namelist nlist
++%type <optval> OPTION options
++%type <string> NAME STRING
++%type <subcmd> INSTALL NOTIFY EXCEPT PATTERN SPECIAL CMDSPECIAL cmdlist cmd
++%type <namel> namelist names opt_namelist nlist
+
+ %%
+
+@@ -101,19 +101,19 @@
+ | file command
+ ;
+
+-command: NAME '=' namelist = {
++command: NAME '=' namelist {
+ (void) lookup($1, INSERT, $3);
+ }
+- | namelist ARROW namelist cmdlist = {
++ | namelist ARROW namelist cmdlist {
+ insert((char *)NULL, $1, $3, $4);
+ }
+- | NAME COLON namelist ARROW namelist cmdlist = {
++ | NAME COLON namelist ARROW namelist cmdlist {
+ insert($1, $3, $5, $6);
+ }
+- | namelist DCOLON NAME cmdlist = {
++ | namelist DCOLON NAME cmdlist {
+ append((char *)NULL, $1, $3, $4);
+ }
+- | NAME COLON namelist DCOLON NAME cmdlist = {
++ | NAME COLON namelist DCOLON NAME cmdlist {
+ append($1, $3, $5, $6);
+ }
+ | error
+@@ -133,10 +133,10 @@
+ }
+ ;
+
+-nlist: NAME = {
++nlist: NAME {
+ $$ = makenl($1);
+ }
+- | '(' names ')' = {
++ | '(' names ')' {
+ $$ = $2;
+ }
+ ;
+@@ -144,7 +144,7 @@
+ names: /* VOID */ {
+ $$ = last_n = NULL;
+ }
+- | names NAME = {
++ | names NAME {
+ if (last_n == NULL)
+ $$ = last_n = makenl($2);
+ else {
+@@ -158,7 +158,7 @@
+ cmdlist: /* VOID */ {
+ $$ = last_sc = NULL;
+ }
+- | cmdlist cmd = {
++ | cmdlist cmd {
+ if (last_sc == NULL)
+ $$ = last_sc = $2;
+ else {
+@@ -169,7 +169,7 @@
+ }
+ ;
+
+-cmd: INSTALL options opt_namelist ';' = {
++cmd: INSTALL options opt_namelist ';' {
+ register struct namelist *nl;
+
+ $1->sc_options = $2 | options;
+@@ -185,17 +185,17 @@
+ }
+ $$ = $1;
+ }
+- | NOTIFY namelist ';' = {
++ | NOTIFY namelist ';' {
+ if ($2 != NULL)
+ $1->sc_args = expand($2, E_VARS);
+ $$ = $1;
+ }
+- | EXCEPT namelist ';' = {
++ | EXCEPT namelist ';' {
+ if ($2 != NULL)
+ $1->sc_args = expand($2, E_ALL);
+ $$ = $1;
+ }
+- | PATTERN namelist ';' = {
++ | PATTERN namelist ';' {
+ struct namelist *nl;
+ char *cp, *re_comp();
+
+@@ -205,13 +205,13 @@
+ $1->sc_args = expand($2, E_VARS);
+ $$ = $1;
+ }
+- | SPECIAL opt_namelist STRING ';' = {
++ | SPECIAL opt_namelist STRING ';' {
+ if ($2 != NULL)
+ $1->sc_args = expand($2, E_ALL);
+ $1->sc_name = $3;
+ $$ = $1;
+ }
+- | CMDSPECIAL opt_namelist STRING ';' = {
++ | CMDSPECIAL opt_namelist STRING ';' {
+ if ($2 != NULL)
+ $1->sc_args = expand($2, E_ALL);
+ $1->sc_name = $3;
+@@ -219,18 +219,18 @@
+ }
+ ;
+
+-options: /* VOID */ = {
++options: /* VOID */ {
+ $$ = 0;
+ }
+- | options OPTION = {
++ | options OPTION {
+ $$ |= $2;
+ }
+ ;
+
+-opt_namelist: /* VOID */ = {
++opt_namelist: /* VOID */ {
+ $$ = NULL;
+ }
+- | namelist = {
++ | namelist {
+ $$ = $1;
+ }
+ ;
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-cleanup.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-cleanup.patch
new file mode 100644
index 000000000..ed3d7f1b3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-cleanup.patch
@@ -0,0 +1,2087 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/gram.y.cleanup 2003-12-17 11:38:16.000000000 +0100
++++ rdist-6.1.5/src/gram.y 2003-12-17 11:38:16.000000000 +0100
+@@ -40,7 +40,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: gram.y,v 6.30 1998/11/10 04:10:42 mcooper Exp $";
+
+@@ -170,7 +170,7 @@
+ ;
+
+ cmd: INSTALL options opt_namelist ';' {
+- register struct namelist *nl;
++ struct namelist *nl;
+
+ $1->sc_options = $2 | options;
+ if ($3 != NULL) {
+@@ -240,11 +240,11 @@
+ int yylineno = 1;
+ extern FILE *fin;
+
+-yylex()
++int yylex()
+ {
+ static char yytext[INMAX];
+- register int c;
+- register char *cp1, *cp2;
++ int c;
++ char *cp1, *cp2;
+ static char quotechars[] = "[]{}*?$";
+
+ again:
+@@ -409,8 +409,8 @@
+ * some of the characters we use.
+ */
+ extern int any(c, str)
+- register int c;
+- register char *str;
++ int c;
++ char *str;
+ {
+ while (*str)
+ if (c == *str++)
+@@ -421,13 +421,14 @@
+ /*
+ * Insert or append ARROW command to list of hosts to be updated.
+ */
++void
+ insert(label, files, hosts, subcmds)
+ char *label;
+ struct namelist *files, *hosts;
+ struct subcmd *subcmds;
+ {
+- register struct cmd *c, *prev, *nc;
+- register struct namelist *h, *lasth;
++ struct cmd *c, *prev, *nc;
++ struct namelist *h, *lasth;
+
+ debugmsg(DM_CALL, "insert(%s, %x, %x, %x) start, files = %s",
+ label == NULL ? "(null)" : label,
+@@ -475,13 +476,14 @@
+ * Append DCOLON command to the end of the command list since these are always
+ * executed in the order they appear in the distfile.
+ */
++void
+ append(label, files, stamp, subcmds)
+ char *label;
+ struct namelist *files;
+ char *stamp;
+ struct subcmd *subcmds;
+ {
+- register struct cmd *c;
++ struct cmd *c;
+
+ c = ALLOC(cmd);
+ c->c_type = DCOLON;
+@@ -501,6 +503,7 @@
+ /*
+ * Error printing routine in parser.
+ */
++void
+ yyerror(s)
+ char *s;
+ {
+@@ -530,7 +533,7 @@
+ makenl(name)
+ char *name;
+ {
+- register struct namelist *nl;
++ struct namelist *nl;
+
+ debugmsg(DM_CALL, "makenl(%s)", name == NULL ? "null" : name);
+
+@@ -627,7 +630,7 @@
+ makesubcmd(type)
+ int type;
+ {
+- register struct subcmd *sc;
++ struct subcmd *sc;
+
+ sc = ALLOC(subcmd);
+ sc->sc_type = type;
+--- rdist-6.1.5/src/rdist.c.cleanup 1998-11-10 05:13:50.000000000 +0100
++++ rdist-6.1.5/src/rdist.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: rdist.c,v 6.66 1998/11/10 04:13:49 mcooper Exp $";
+
+@@ -80,7 +80,7 @@
+ char *name;
+ struct namelist **hostlist;
+ {
+- register struct namelist *ptr, *new;
++ struct namelist *ptr, *new;
+
+ if (!name || !hostlist)
+ return;
+@@ -97,14 +97,15 @@
+ *hostlist = new;
+ }
+
++int
+ main(argc, argv, envp)
+ int argc;
+ char *argv[];
+ char **envp;
+ {
+ struct namelist *hostlist = NULL;
+- register int x;
+- register char *cp;
++ int x;
++ char *cp;
+ int cmdargs = 0;
+ int c;
+
+@@ -114,7 +115,7 @@
+ */
+ setprogname(argv);
+
+- if (cp = msgparseopts(localmsglist, TRUE)) {
++ if ((cp = msgparseopts(localmsglist, TRUE))) {
+ error("Bad builtin log option (%s): %s.",
+ localmsglist, cp);
+ usage();
+@@ -158,7 +159,7 @@
+ while ((c = getopt(argc, argv, optchars)) != -1)
+ switch (c) {
+ case 'l':
+- if (cp = msgparseopts(optarg, TRUE)) {
++ if ((cp = msgparseopts(optarg, TRUE))) {
+ error("Bad log option \"%s\": %s.", optarg,cp);
+ usage();
+ }
+@@ -206,7 +207,7 @@
+
+ case 'D':
+ debug = DM_ALL;
+- if (cp = msgparseopts("stdout=all,debug", TRUE)) {
++ if ((cp = msgparseopts("stdout=all,debug", TRUE))) {
+ error("Enable debug messages failed: %s.", cp);
+ usage();
+ }
+@@ -245,7 +246,7 @@
+ error("No path specified to \"-P\".");
+ usage();
+ }
+- if (cp = searchpath(optarg))
++ if ((cp = searchpath(optarg)))
+ path_remsh = strdup(cp);
+ else {
+ error("No component of path \"%s\" exists.",
+@@ -297,7 +298,7 @@
+ else {
+ if (fin == NULL)
+ fin = opendist(distfile);
+- (void) yyparse();
++ yyparse();
+ /*
+ * Need to keep stdin open for child processing later
+ */
+@@ -348,6 +349,7 @@
+ /*
+ * Print usage message and exit.
+ */
++void
+ usage()
+ {
+ char *sopts = "cDFnv";
+@@ -379,12 +381,13 @@
+ /*
+ * rcp like interface for distributing files.
+ */
++void
+ docmdargs(nargs, args)
+ int nargs;
+ char *args[];
+ {
+- register struct namelist *nl, *prev;
+- register char *cp;
++ struct namelist *nl, *prev;
++ char *cp;
+ struct namelist *files, *hosts;
+ struct subcmd *cmds;
+ char *dest;
+@@ -433,10 +436,10 @@
+ * Get a list of NAME blocks (mostly for debugging).
+ */
+ extern char *getnlstr(nl)
+- register struct namelist *nl;
++ struct namelist *nl;
+ {
+ static char buf[16384];
+- register int count = 0, len = 0;
++ int count = 0, len = 0;
+
+ (void) sprintf(buf, "(");
+
+--- rdist-6.1.5/src/client.c.cleanup 2003-12-17 11:38:16.000000000 +0100
++++ rdist-6.1.5/src/client.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: client.c,v 6.82 1998/11/10 04:08:47 mcooper Exp $";
+
+@@ -84,7 +84,7 @@
+ int destdir;
+ {
+ extern struct namelist *filelist;
+- register char *lname, *cp;
++ char *lname, *cp;
+ static char buff[BUFSIZ];
+ int srclen, pathlen;
+ char *p;
+@@ -146,7 +146,7 @@
+ struct namelist *list;
+ char *file;
+ {
+- register struct namelist *nl;
++ struct namelist *nl;
+
+ for (nl = list; nl != NULL; nl = nl->n_next)
+ if (strcmp(file, nl->n_name) == 0)
+@@ -163,7 +163,7 @@
+ char *rname;
+ int destdir;
+ {
+- register struct subcmd *sc;
++ struct subcmd *sc;
+ extern struct subcmd *subcmds;
+ char *rfile;
+
+@@ -200,7 +200,7 @@
+ {
+ char *rfile;
+ struct namelist *new;
+- register struct subcmd *sc;
++ struct subcmd *sc;
+ extern struct subcmd *subcmds;
+ int isokay = 0;
+
+@@ -227,7 +227,7 @@
+ */
+ static void freecmdspecialfiles()
+ {
+- register struct namelist *ptr, *save;
++ struct namelist *ptr, *save;
+
+ for (ptr = updfilelist; ptr; ) {
+ if (ptr->n_name) (void) free(ptr->n_name);
+@@ -249,10 +249,8 @@
+ char **filev;
+ opt_t opts;
+ {
+- register struct subcmd *sc;
+- register struct namelist *f;
+- register char **cpp;
+- char *file;
++ struct subcmd *sc;
++ struct namelist *f;
+ int first = TRUE;
+
+ for (sc = cmd->c_cmds; sc != NULL; sc = sc->sc_next) {
+@@ -294,7 +292,7 @@
+ int checkfilename(name)
+ char *name;
+ {
+- register char *cp;
++ char *cp;
+
+ if (strchr(name, '\n')) {
+ for (cp = name; *cp; cp++)
+@@ -501,7 +499,7 @@
+ static int rmchk(opts)
+ opt_t opts;
+ {
+- register u_char *s;
++ u_char *s;
+ struct stat stb;
+ int didupdate = 0;
+ int n;
+@@ -618,7 +616,7 @@
+
+ optarget = ptarget;
+ len = ptarget - target;
+- while (dp = readdir(d)) {
++ while ((dp = readdir(d))) {
+ if (!strcmp(dp->d_name, ".") ||
+ !strcmp(dp->d_name, ".."))
+ continue;
+@@ -631,7 +629,7 @@
+ if (ptarget[-1] != '/')
+ *ptarget++ = '/';
+ cp = dp->d_name;
+- while (*ptarget++ = *cp++)
++ while ((*ptarget++ = *cp++))
+ ;
+ ptarget--;
+ if (sendit(dp->d_name, opts, destdir) > 0)
+@@ -770,13 +768,13 @@
+ opt_t opts;
+ struct stat *statp;
+ {
+- register off_t size;
+- register time_t mtime;
++ off_t size;
++ time_t mtime;
+ unsigned short lmode;
+ unsigned short rmode;
+ char *owner = NULL, *group = NULL;
+ int done, n;
+- u_char *cp;
++ char *cp;
+
+ debugmsg(DM_CALL, "update(%s, 0x%x, 0x%x)\n", rname, opts, statp);
+
+@@ -1035,7 +1033,6 @@
+ int destdir;
+ {
+ static struct stat stb;
+- extern struct subcmd *subcmds;
+ char *user, *group;
+ int u, len;
+ int didupdate = 0;
+@@ -1157,7 +1154,7 @@
+ (void) unlink(statfile);
+ #endif
+
+- if (file = getnotifyfile())
++ if ((file = getnotifyfile()))
+ (void) unlink(file);
+ }
+
+--- rdist-6.1.5/src/child.c.cleanup 1998-11-10 05:18:57.000000000 +0100
++++ rdist-6.1.5/src/child.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: child.c,v 6.29 1998/11/10 04:18:56 mcooper Exp $";
+
+@@ -90,7 +90,7 @@
+ static void removechild(child)
+ CHILD *child;
+ {
+- register CHILD *pc, *prevpc;
++ CHILD *pc, *prevpc;
+
+ debugmsg(DM_CALL, "removechild(%s, %d, %d) start",
+ child->c_name, child->c_pid, child->c_readfd);
+@@ -148,7 +148,7 @@
+ static CHILD *copychild(child)
+ CHILD *child;
+ {
+- register CHILD *newc;
++ CHILD *newc;
+
+ newc = (CHILD *) xmalloc(sizeof(CHILD));
+
+@@ -167,7 +167,7 @@
+ static void addchild(child)
+ CHILD *child;
+ {
+- register CHILD *pc;
++ CHILD *pc;
+
+ debugmsg(DM_CALL, "addchild() start\n");
+
+@@ -280,7 +280,7 @@
+ */
+ static void reap()
+ {
+- register CHILD *pc;
++ CHILD *pc;
+ int status = 0;
+ pid_t pid;
+
+@@ -336,7 +336,7 @@
+ */
+ static void childscan()
+ {
+- register CHILD *pc, *nextpc;
++ CHILD *pc, *nextpc;
+
+ debugmsg(DM_CALL, "childscan() start");
+
+@@ -366,8 +366,8 @@
+ extern void waitup()
+ {
+ #if defined(HAVE_SELECT)
+- register int count;
+- register CHILD *pc;
++ int count;
++ CHILD *pc;
+ fd_set rchildfds;
+
+ debugmsg(DM_CALL, "waitup() start\n");
+--- rdist-6.1.5/src/docmd.c.cleanup 2003-12-17 11:38:16.000000000 +0100
++++ rdist-6.1.5/src/docmd.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: docmd.c,v 6.87 1998/11/10 04:08:32 mcooper Exp $";
+
+@@ -99,10 +99,10 @@
+ */
+ static void notify(rhost, to, lmod)
+ char *rhost;
+- register struct namelist *to;
++ struct namelist *to;
+ time_t lmod;
+ {
+- register int fd, len;
++ int fd, len;
+ FILE *pf, *popen();
+ struct stat stb;
+ static char buf[BUFSIZ];
+@@ -221,7 +221,7 @@
+ struct cmd *cmd;
+ struct cmd *cmdlist;
+ {
+- register struct cmd *pcmd;
++ struct cmd *pcmd;
+
+ for (pcmd = cmdlist; pcmd; pcmd = pcmd->c_next) {
+ checkcmd(pcmd);
+@@ -238,7 +238,7 @@
+ struct cmd *cmd;
+ struct cmd *cmdlist;
+ {
+- register struct cmd *pc;
++ struct cmd *pc;
+
+ if (!cmd) {
+ debugmsg(DM_MISC, "markfailed() NULL cmd parameter");
+@@ -309,7 +309,7 @@
+ static int makeconn(rhost)
+ char *rhost;
+ {
+- register char *ruser, *cp;
++ char *ruser, *cp;
+ static char *cur_host = NULL;
+ extern char *locuser;
+ extern long min_freefiles, min_freespace;
+@@ -430,9 +430,9 @@
+ struct cmd *cmd;
+ char **filev;
+ {
+- register struct namelist *f;
+- register struct subcmd *sc;
+- register char **cpp;
++ struct namelist *f;
++ struct subcmd *sc;
++ char **cpp;
+ int n, ddir, destdir, opts = options;
+ struct namelist *files;
+ struct subcmd *sbcmds;
+@@ -567,7 +567,6 @@
+ }
+ }
+
+-done:
+ /*
+ * Run any commands for the entire cmd
+ */
+@@ -584,7 +583,7 @@
+ notify(rhost, sc->sc_args, (time_t) 0);
+
+ if (!nflag) {
+- register struct linkbuf *nextl, *l;
++ struct linkbuf *nextl, *l;
+
+ for (l = ihead; l != NULL; freelinkinfo(l), l = nextl) {
+ nextl = l->nextp;
+@@ -601,11 +600,12 @@
+ setjmp_ok = FALSE;
+ }
+
++int
+ okname(name)
+- register char *name;
++ char *name;
+ {
+- register char *cp = name;
+- register int c, isbad;
++ char *cp = name;
++ int c, isbad;
+
+ for (isbad = FALSE; *cp && !isbad; ++cp) {
+ c = *cp;
+@@ -627,9 +627,9 @@
+ struct subcmd *sbcmds;
+ char **env;
+ {
+- register DIR *d;
+- register DIRENTRY *dp;
+- register char *cp;
++ DIR *d;
++ DIRENTRY *dp;
++ char *cp;
+ char *optarget;
+ int len;
+
+@@ -641,7 +641,7 @@
+ }
+ optarget = ptarget;
+ len = ptarget - target;
+- while (dp = readdir(d)) {
++ while ((dp = readdir(d))) {
+ if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
+ continue;
+ if (len + 1 + (int)strlen(dp->d_name) >= BUFSIZ - 1) {
+@@ -651,7 +651,7 @@
+ ptarget = optarget;
+ *ptarget++ = '/';
+ cp = dp->d_name;
+- while (*ptarget++ = *cp++)
++ while ((*ptarget++ = *cp++))
+ ;
+ ptarget--;
+ cmptime(target, sbcmds, env);
+@@ -740,9 +740,9 @@
+ struct cmd *cmd;
+ char **filev;
+ {
+- register struct subcmd *sc;
+- register struct namelist *f;
+- register char *cp, **cpp;
++ struct subcmd *sc;
++ struct namelist *f;
++ char *cp, **cpp;
+ struct stat stb;
+ struct namelist *files = cmd->c_files;
+ struct subcmd *sbcmds = cmd->c_cmds;
+@@ -824,8 +824,8 @@
+ extern int except(file)
+ char *file;
+ {
+- register struct subcmd *sc;
+- register struct namelist *nl;
++ struct subcmd *sc;
++ struct namelist *nl;
+
+ debugmsg(DM_CALL, "except(%s)", file);
+
+@@ -918,8 +918,8 @@
+ int argc;
+ char **argv;
+ {
+- register struct namelist *f;
+- register int i;
++ struct namelist *f;
++ int i;
+
+ if (argc) {
+ for (i = 0; i < argc; i++) {
+@@ -962,9 +962,9 @@
+ int argc;
+ char **argv;
+ {
+- register struct cmd *c;
+- register char *cp;
+- register int i;
++ struct cmd *c;
++ char *cp;
++ int i;
+
+ (void) signal(SIGHUP, sighandler);
+ (void) signal(SIGINT, sighandler);
+@@ -1032,7 +1032,7 @@
+
+ if (hostlist) {
+ /* Do specific hosts as specified on command line */
+- register struct namelist *nlptr;
++ struct namelist *nlptr;
+
+ for (nlptr = hostlist; nlptr; nlptr = nlptr->n_next)
+ /*
+--- rdist-6.1.5/src/distopt.c.cleanup 1998-11-10 05:09:11.000000000 +0100
++++ rdist-6.1.5/src/distopt.c 2003-12-17 11:38:16.000000000 +0100
+@@ -6,7 +6,7 @@
+ * appropriately.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: distopt.c,v 6.12 1998/11/10 04:09:11 mcooper Exp $";
+
+@@ -55,7 +55,7 @@
+ extern DISTOPTINFO *getdistopt(name)
+ char *name;
+ {
+- register int i;
++ int i;
+
+ for (i = 0; distoptinfo[i].do_name; ++i)
+ if (strcasecmp(name, distoptinfo[i].do_name) == 0)
+@@ -74,7 +74,7 @@
+ opt_t *optptr;
+ int doerrs;
+ {
+- register char *string, *optstr;
++ char *string, *optstr;
+ DISTOPTINFO *distopt;
+ int negate;
+
+@@ -93,7 +93,7 @@
+ * and the option starts with "no", strip "no"
+ * from option and retry lookup.
+ */
+- if (distopt = getdistopt(optstr)) {
++ if ((distopt = getdistopt(optstr))) {
+ FLAG_ON(*optptr, distopt->do_value);
+ continue;
+ }
+@@ -116,7 +116,7 @@
+ */
+ extern char *getdistoptlist()
+ {
+- register int i;
++ int i;
+ static char buf[1024];
+
+ for (i = 0, buf[0] = CNULL; distoptinfo[i].do_name; ++i) {
+@@ -138,7 +138,7 @@
+ extern char *getondistoptlist(opts)
+ opt_t opts;
+ {
+- register int i;
++ int i;
+ static char buf[1024];
+
+ for (i = 0, buf[0] = CNULL; distoptinfo[i].do_name; ++i) {
+--- rdist-6.1.5/src/expand.c.cleanup 1998-11-10 05:09:31.000000000 +0100
++++ rdist-6.1.5/src/expand.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: expand.c,v 6.19 1998/11/10 04:09:31 mcooper Exp $";
+
+@@ -81,9 +81,9 @@
+ sizeof(*sortbase), argcmp), sortbase = &eargv[eargc]
+
+ static void Cat(s1, s2) /* quote in s1 and s2 */
+- register u_char *s1, *s2;
++ u_char *s1, *s2;
+ {
+- register char *cp;
++ char *cp;
+ int len = strlen((char *)s1) + strlen((char *)s2) + 2;
+
+ if ((eargc + 1) >= MAXEARGS) {
+@@ -97,12 +97,12 @@
+ do {
+ if (*s1 == QUOTECHAR)
+ s1++;
+- } while (*cp++ = *s1++);
++ } while ((*cp++ = *s1++));
+ cp--;
+ do {
+ if (*s2 == QUOTECHAR)
+ s2++;
+- } while (*cp++ = *s2++);
++ } while ((*cp++ = *s2++));
+ }
+
+ static void addpath(c)
+@@ -131,8 +131,8 @@
+ struct namelist *list;
+ int wh;
+ {
+- register struct namelist *nl, *prev;
+- register int n;
++ struct namelist *nl, *prev;
++ int n;
+ char pathbuf[BUFSIZ];
+
+ if (debug)
+@@ -182,7 +182,7 @@
+ u_char *str;
+ int ch;
+ {
+- register u_char *cp;
++ u_char *cp;
+
+ for (cp = str; cp && *cp != CNULL; ++cp)
+ if (ch == *cp)
+@@ -194,8 +194,8 @@
+ void expstr(s)
+ u_char *s;
+ {
+- register u_char *cp, *cp1;
+- register struct namelist *tp;
++ u_char *cp, *cp1;
++ struct namelist *tp;
+ u_char *tail;
+ u_char ebuf[BUFSIZ];
+ u_char varbuff[BUFSIZ];
+@@ -302,7 +302,7 @@
+ cp1 = (u_char *)pw->pw_dir;
+ s = cp;
+ }
+- for (cp = (u_char *)path; *cp++ = *cp1++; )
++ for (cp = (u_char *)path; (*cp++ = *cp1++); )
+ ;
+ tpathp = pathp = (char *)cp - 1;
+ } else {
+@@ -326,7 +326,7 @@
+ sort();
+ }
+
+-static
++static int
+ argcmp(a1, a2)
+ char **a1, **a2;
+ {
+@@ -341,8 +341,8 @@
+ void expsh(s) /* quote in s */
+ u_char *s;
+ {
+- register u_char *cp, *oldcp;
+- register char *spathp;
++ u_char *cp, *oldcp;
++ char *spathp;
+ struct stat stb;
+
+ spathp = pathp;
+@@ -380,7 +380,7 @@
+ char *pattern;
+ {
+ struct stat stb;
+- register DIRENTRY *dp;
++ DIRENTRY *dp;
+ DIR *dirp;
+
+ dirp = opendir(path);
+@@ -417,11 +417,12 @@
+ yyerror(path);
+ }
+
++int
+ execbrc(p, s) /* quote in p */
+ u_char *p, *s;
+ {
+ u_char restbuf[BUFSIZ + 2];
+- register u_char *pe, *pm, *pl;
++ u_char *pe, *pm, *pl;
+ int brclev = 0;
+ u_char *lm, savec;
+ char *spathp;
+@@ -507,11 +508,12 @@
+ return (0);
+ }
+
++int
+ match(s, p) /* quote in p */
+ char *s, *p;
+ {
+- register int c;
+- register char *sentp;
++ int c;
++ char *sentp;
+ char sexpany = expany;
+
+ if (*s == '.' && *p != '.')
+@@ -524,11 +526,12 @@
+ return (c);
+ }
+
++int
+ amatch(s, p) /* quote in p */
+- register char *s;
+- register u_char *p;
++ char *s;
++ u_char *p;
+ {
+- register int scc;
++ int scc;
+ int ok, lc;
+ char *spathp;
+ struct stat stb;
+@@ -545,7 +548,7 @@
+ case '[':
+ ok = 0;
+ lc = 077777;
+- while (cc = *p++) {
++ while ((cc = *p++)) {
+ if (cc == ']') {
+ if (ok)
+ break;
+@@ -599,7 +602,7 @@
+ while (*s)
+ addpath(*s++);
+ addpath('/');
+- if (stat(path, &stb) == 0 && S_ISDIR(stb.st_mode))
++ if (stat(path, &stb) == 0 && S_ISDIR(stb.st_mode)) {
+ if (*p == CNULL) {
+ if (which & E_TILDE)
+ Cat((u_char *)path,
+@@ -609,6 +612,7 @@
+ (u_char *)tpathp);
+ } else
+ expsh(p);
++ }
+ pathp = spathp;
+ *pathp = CNULL;
+ return (0);
+--- rdist-6.1.5/src/lookup.c.cleanup 1998-11-10 05:12:56.000000000 +0100
++++ rdist-6.1.5/src/lookup.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: lookup.c,v 6.9 1998/11/10 04:12:56 mcooper Exp $";
+
+@@ -68,11 +68,12 @@
+ /*
+ * Define a variable from a command line argument.
+ */
++void
+ define(name)
+ char *name;
+ {
+- register char *cp, *s;
+- register struct namelist *nl;
++ char *cp, *s;
++ struct namelist *nl;
+ struct namelist *value;
+
+ debugmsg(DM_CALL, "define(%s)", name);
+@@ -137,9 +138,9 @@
+ int action;
+ struct namelist *value;
+ {
+- register unsigned n;
+- register char *cp;
+- register struct syment *s;
++ unsigned n;
++ char *cp;
++ struct syment *s;
+ char ebuf[BUFSIZ];
+
+ debugmsg(DM_CALL, "lookup(%s, %d, %x)", name, action, value);
+--- rdist-6.1.5/src/isexec.c.cleanup 1998-11-10 05:11:42.000000000 +0100
++++ rdist-6.1.5/src/isexec.c 2003-12-17 11:38:16.000000000 +0100
+@@ -37,7 +37,7 @@
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: isexec.c,v 6.22 1998/11/10 04:11:42 mcooper Exp $";
+
+--- rdist-6.1.5/src/signal.c.cleanup 1998-11-10 05:16:13.000000000 +0100
++++ rdist-6.1.5/src/signal.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: signal.c,v 6.2 1998/11/10 04:16:13 mcooper Exp $";
+
+--- rdist-6.1.5/src/rshrcmd.c.cleanup 1998-11-10 05:15:07.000000000 +0100
++++ rdist-6.1.5/src/rshrcmd.c 2003-12-17 11:38:16.000000000 +0100
+@@ -10,7 +10,7 @@
+ * Chris Siebenmann <cks@utcc.utoronto.ca>.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: rshrcmd.c,v 1.9 1998/11/10 04:15:07 mcooper Exp $";
+
+@@ -34,6 +34,7 @@
+ * program in place of a direct rcmd() function call so as to
+ * avoid having to be root.
+ */
++int
+ rshrcmd(ahost, port, luser, ruser, cmd, fd2p)
+ char **ahost;
+ u_short port;
+@@ -108,6 +109,7 @@
+ (void) wait(0);
+ return sp[0];
+ }
++ return -1;
+ /*NOTREACHED*/
+ }
+
+--- rdist-6.1.5/src/common.c.cleanup 1998-11-10 05:09:01.000000000 +0100
++++ rdist-6.1.5/src/common.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: common.c,v 6.84 1998/11/10 04:09:01 mcooper Exp $";
+
+@@ -87,14 +87,14 @@
+ /*
+ * Front end to write() that handles partial write() requests.
+ */
+-extern WRITE_RETURN_T xwrite(fd, buf, len)
++WRITE_RETURN_T xwrite(fd, buf, len)
+ int fd;
+ void *buf;
+ WRITE_AMT_T len;
+ {
+ WRITE_AMT_T nleft = len;
+ WRITE_RETURN_T nwritten;
+- register char *ptr = buf;
++ char *ptr = buf;
+
+ while (nleft > 0) {
+ if ((nwritten = write(fd, ptr, nleft)) <= 0) {
+@@ -110,14 +110,14 @@
+ /*
+ * Set program name
+ */
+-extern void setprogname(argv)
++void setprogname(argv)
+ char **argv;
+ {
+- register char *cp;
++ char *cp;
+
+ if (!progname) {
+ progname = strdup(argv[0]);
+- if (cp = strrchr(progname, '/'))
++ if ((cp = strrchr(progname, '/')))
+ progname = cp + 1;
+ }
+ }
+@@ -125,14 +125,14 @@
+ /*
+ * Do run-time initialization
+ */
+-extern int init(argc, argv, envp)
++int init(argc, argv, envp)
+ /*ARGSUSED*/
+ int argc;
+ char **argv;
+ char **envp;
+ {
+- register int i;
+- register char *cp;
++ int i;
++ char *cp;
+
+ if (!isserver)
+ (void) signal(SIGSEGV, sighandler);
+@@ -182,7 +182,7 @@
+ /*
+ * Finish things up before ending.
+ */
+-extern void finish()
++void finish()
+ {
+ extern jmp_buf finish_jmpbuf;
+
+@@ -216,7 +216,7 @@
+ /*
+ * Handle lost connections
+ */
+-extern void lostconn()
++void lostconn()
+ {
+ /* Prevent looping */
+ (void) signal(SIGPIPE, SIG_IGN);
+@@ -232,7 +232,7 @@
+ /*
+ * Do a core dump
+ */
+-extern void coredump()
++void coredump()
+ {
+ error("Segmentation violation - dumping core [PID = %d, %s]",
+ getpid(),
+@@ -245,7 +245,7 @@
+ /*
+ * General signal handler
+ */
+-extern void sighandler(sig)
++void sighandler(sig)
+ int sig;
+ {
+ debugmsg(DM_CALL, "sighandler() received signal %d\n", sig);
+@@ -325,7 +325,7 @@
+ /*
+ * Stdarg frontend to sendcmdmsg()
+ */
+-extern int sendcmd(char cmd, char *fmt, ...)
++int sendcmd(char cmd, char *fmt, ...)
+ {
+ static char buf[BUFSIZ];
+ va_list args;
+@@ -345,7 +345,7 @@
+ /*
+ * Varargs frontend to sendcmdmsg()
+ */
+-extern int sendcmd(va_alist)
++int sendcmd(va_alist)
+ va_dcl
+ {
+ static char buf[BUFSIZ];
+@@ -372,7 +372,7 @@
+ * Stupid frontend to sendcmdmsg()
+ */
+ /*VARARGS2*/
+-extern int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a7, a8)
++int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a7, a8)
+ char cmd;
+ char *fmt;
+ {
+@@ -433,13 +433,13 @@
+ * errors, call cleanup() or lostconn(). In other words, unless
+ * the third argument is nonzero, this routine never returns failure.
+ */
+-extern int remline(buffer, space, doclean)
+- register u_char *buffer;
++int remline(buffer, space, doclean)
++ u_char *buffer;
+ int space;
+ int doclean;
+ {
+- register int c, left = space;
+- register u_char *p = buffer;
++ int c, left = space;
++ u_char *p = buffer;
+
+ if (rem_r < 0) {
+ error("Cannot read remote input: Remote descriptor not open.");
+@@ -494,9 +494,9 @@
+ /*
+ * Non-line-oriented remote read.
+ */
+-readrem(p, space)
++int readrem(p, space)
+ char *p;
+- register int space;
++ int space;
+ {
+ if (remleft <= 0) {
+ /*
+@@ -527,7 +527,7 @@
+ /*
+ * Get the user name for the uid.
+ */
+-extern char *getusername(uid, file, opts)
++char *getusername(uid, file, opts)
+ UID_T uid;
+ char *file;
+ opt_t opts;
+@@ -566,7 +566,7 @@
+ /*
+ * Get the group name for the gid.
+ */
+-extern char *getgroupname(gid, file, opts)
++char *getgroupname(gid, file, opts)
+ GID_T gid;
+ char *file;
+ opt_t opts;
+@@ -604,7 +604,7 @@
+ /*
+ * Read a response from the remote host.
+ */
+-extern int response()
++int response()
+ {
+ static u_char resp[BUFSIZ];
+ u_char *s;
+@@ -646,6 +646,7 @@
+ message(MT_FERROR, "%s", s);
+ finish();
+ }
++ return -1;
+ /*NOTREACHED*/
+ }
+
+@@ -657,11 +658,11 @@
+ * user's home directory path name. Return a pointer in buf to the
+ * part corresponding to `file'.
+ */
+-extern char *exptilde(ebuf, file)
++char *exptilde(ebuf, file)
+ char *ebuf;
+- register char *file;
++ char *file;
+ {
+- register char *s1, *s2, *s3;
++ char *s1, *s2, *s3;
+ extern char *homedir;
+
+ if (*file != '~') {
+@@ -694,12 +695,12 @@
+ *s3 = '/';
+ s2 = pw->pw_dir;
+ }
+- for (s1 = ebuf; *s1++ = *s2++; )
++ for (s1 = ebuf; (*s1++ = *s2++); )
+ ;
+ s2 = --s1;
+ if (s3 != NULL) {
+ s2++;
+- while (*s1++ = *s3++)
++ while ((*s1++ = *s3++))
+ ;
+ }
+ return(s2);
+@@ -710,7 +711,7 @@
+ * Set our effective user id to the user running us.
+ * This should be the uid we do most of our work as.
+ */
+-extern int becomeuser()
++int becomeuser()
+ {
+ int r = 0;
+
+@@ -732,7 +733,7 @@
+ /*
+ * Set our effective user id to "root" (uid = 0)
+ */
+-extern int becomeroot()
++int becomeroot()
+ {
+ int r = 0;
+
+@@ -753,7 +754,7 @@
+ /*
+ * Set access and modify times of a given file
+ */
+-extern int setfiletime(file, atime, mtime)
++int setfiletime(file, atime, mtime)
+ char *file;
+ time_t atime;
+ time_t mtime;
+@@ -790,7 +791,7 @@
+ /*
+ * Get version info
+ */
+-extern char *getversion()
++char *getversion()
+ {
+ static char buff[BUFSIZ];
+
+@@ -811,7 +812,7 @@
+ {
+ int fd[2], pid, i;
+ int status;
+- register char *cp, *s;
++ char *cp, *s;
+ char sbuf[BUFSIZ], buf[BUFSIZ];
+
+ if (pipe(fd) < 0) {
+@@ -933,12 +934,12 @@
+ /*
+ * Private version of basename()
+ */
+-extern char *xbasename(path)
++char *xbasename(path)
+ char *path;
+ {
+- register char *cp;
++ char *cp;
+
+- if (cp = strrchr(path, '/'))
++ if ((cp = strrchr(path, '/')))
+ return(cp+1);
+ else
+ return(path);
+@@ -949,11 +950,11 @@
+ * search until a component of that path is found and
+ * return the found file name.
+ */
+-extern char *searchpath(path)
++char *searchpath(path)
+ char *path;
+ {
+- register char *cp;
+- register char *file;
++ char *cp;
++ char *file;
+ struct stat statbuf;
+
+ for (; ;) {
+@@ -977,8 +978,7 @@
+ /*
+ * Set line buffering.
+ */
+-extern void
+-mysetlinebuf(fp)
++void mysetlinebuf(fp)
+ FILE *fp;
+ {
+ #if SETBUF_TYPE == SETBUF_SETLINEBUF
+@@ -995,8 +995,7 @@
+ /*
+ * Our interface to system call to get a socket pair.
+ */
+-int
+-getsocketpair(domain, type, protocol, sv)
++int getsocketpair(domain, type, protocol, sv)
+ int domain;
+ int type;
+ int protocol;
+--- rdist-6.1.5/src/message.c.cleanup 1998-11-10 05:13:30.000000000 +0100
++++ rdist-6.1.5/src/message.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: message.c,v 6.25 1998/11/10 04:13:30 mcooper Exp $";
+
+@@ -97,7 +97,7 @@
+ */
+ extern void msgprusage()
+ {
+- register int i, x;
++ int i, x;
+
+ (void) fprintf(stderr, "\nWhere <msgopt> is of form\n");
+ (void) fprintf(stderr,
+@@ -120,7 +120,7 @@
+ */
+ extern void msgprconfig()
+ {
+- register int i, x;
++ int i, x;
+ static char buf[MSGBUFSIZ];
+
+ debugmsg(DM_MISC, "Current message logging config:");
+@@ -145,7 +145,7 @@
+ static MSGFACILITY *getmsgfac(name)
+ char *name;
+ {
+- register int i;
++ int i;
+
+ for (i = 0; msgfacility[i].mf_name; ++i)
+ if (strcasecmp(name, msgfacility[i].mf_name) == 0)
+@@ -160,7 +160,7 @@
+ static MSGTYPE *getmsgtype(name)
+ char *name;
+ {
+- register int i;
++ int i;
+
+ for (i = 0; msgtypes[i].mt_name; ++i)
+ if (strcasecmp(name, msgtypes[i].mt_name) == 0)
+@@ -178,9 +178,9 @@
+ char *str;
+ {
+ static char ebuf[BUFSIZ];
+- register char *cp;
+- register char *strptr, *word;
+- register MSGTYPE *mtp;
++ char *cp;
++ char *strptr, *word;
++ MSGTYPE *mtp;
+
+ /*
+ * MF_SYSLOG is the only supported message facility for the server
+@@ -240,11 +240,11 @@
+ msgfac->mf_msgtypes = 0; /* Start from scratch */
+ while (strptr) {
+ word = strptr;
+- if (cp = strchr(strptr, ','))
++ if ((cp = strchr(strptr, ',')))
+ *cp++ = CNULL;
+ strptr = cp;
+
+- if (mtp = getmsgtype(word)) {
++ if ((mtp = getmsgtype(word))) {
+ msgfac->mf_msgtypes |= mtp->mt_type;
+ /*
+ * XXX This is really a kludge until we add real
+@@ -272,8 +272,8 @@
+ int doset;
+ {
+ static char ebuf[BUFSIZ], msgbuf[MSGBUFSIZ];
+- register char *cp, *optstr;
+- register char *word;
++ char *cp, *optstr;
++ char *word;
+ MSGFACILITY *msgfac;
+
+ if (msgstr == NULL)
+@@ -308,7 +308,7 @@
+ if (doset) {
+ char *mcp;
+
+- if (mcp = setmsgtypes(msgfac, cp))
++ if ((mcp = setmsgtypes(msgfac, cp)))
+ return(mcp);
+ }
+ }
+@@ -462,8 +462,9 @@
+ return;
+
+ if (!msgfac->mf_fptr) {
+- register char *cp;
++ char *cp;
+ char *getenv();
++ int fd;
+
+ /*
+ * Create and open a new temporary file
+@@ -475,7 +476,10 @@
+ (void) sprintf(tempfile, "%s/%s", cp, _RDIST_TMP);
+
+ msgfac->mf_filename = tempfile;
+- (void) mktemp(msgfac->mf_filename);
++ fd = mkstemp(msgfac->mf_filename);
++ if (fd < 0)
++ fatalerr("Cannot open notify file for writing: %s: %s.", msgfac->mf_filename, SYSERR);
++ close(fd);
+ if ((msgfac->mf_fptr = fopen(msgfac->mf_filename, "w"))==NULL)
+ fatalerr("Cannot open notify file for writing: %s: %s.",
+ msgfac->mf_filename, SYSERR);
+@@ -515,15 +519,15 @@
+ int flags;
+ char *msgbuf;
+ {
+- register int i, x;
+- register char *cp;
++ int i, x;
++ char *cp;
+ static char mbuf[2048];
+
+ if (msgbuf && *msgbuf) {
+ /*
+ * Ensure no stray newlines are present
+ */
+- if (cp = strchr(msgbuf, '\n'))
++ if ((cp = strchr(msgbuf, '\n')))
+ *cp = CNULL;
+
+ checkhostname();
+@@ -863,7 +867,7 @@
+ */
+ extern char *getnotifyfile()
+ {
+- register int i;
++ int i;
+
+ for (i = 0; msgfacility[i].mf_name; i++)
+ if (msgfacility[i].mf_msgfac == MF_NOTIFY &&
+--- rdist-6.1.5/src/setargs.c.cleanup 2003-12-17 11:38:16.000000000 +0100
++++ rdist-6.1.5/src/setargs.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: setargs.c,v 6.5 1998/11/10 04:15:56 mcooper Exp $";
+
+@@ -66,12 +66,12 @@
+ /*
+ * Settup things for using setproctitle()
+ */
+-setargs_settup(argc, argv, envp)
++void setargs_settup(argc, argv, envp)
+ int argc;
+ char **argv;
+ char **envp;
+ {
+- register int i;
++ int i;
+ extern char **environ;
+
+ /* Remember the User Environment */
+@@ -92,10 +92,10 @@
+ /*
+ * Set process title
+ */
+-extern void _setproctitle(msg)
++void _setproctitle(msg)
+ char *msg;
+ {
+- register int i;
++ int i;
+ char *p;
+
+ p = Argv[0];
+@@ -119,7 +119,7 @@
+ /*
+ * Varargs front-end to _setproctitle()
+ */
+-extern void setproctitle(va_alist)
++void setproctitle(va_alist)
+ va_dcl
+ {
+ static char buf[BUFSIZ];
+@@ -138,7 +138,7 @@
+ /*
+ * Stdarg front-end to _setproctitle()
+ */
+-extern void setproctitle(char *fmt, ...)
++void setproctitle(char *fmt, ...)
+ {
+ static char buf[BUFSIZ];
+ va_list args;
+@@ -155,7 +155,7 @@
+ * Non-Varargs front-end to _setproctitle()
+ */
+ /*VARARGS1*/
+-extern void setproctitle(fmt, a1, a2, a3, a4, a5, a6)
++void setproctitle(fmt, a1, a2, a3, a4, a5, a6)
+ char *fmt;
+ {
+ static char buf[BUFSIZ];
+--- rdist-6.1.5/src/rdistd.c.cleanup 1998-11-10 05:14:06.000000000 +0100
++++ rdist-6.1.5/src/rdistd.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: rdistd.c,v 6.23 1998/11/10 04:14:06 mcooper Exp $";
+
+@@ -53,21 +53,12 @@
+
+ #include "defs.h"
+
+-/*
+- * Print usage message
+- */
+-static void usage()
+-{
+- fprintf(stderr, "usage: %s -S [ -DV ]\n", progname);
+- exit(1);
+-}
+-
+ char localmsglist[] = "syslog=ferror";
+
+ /*
+ * The Beginning
+ */
+-main(argc, argv, envp)
++int main(argc, argv, envp)
+ int argc;
+ char **argv;
+ char **envp;
+@@ -95,7 +86,8 @@
+ case '?':
+ default:
+ error("Bad command line option.");
+- usage();
++ fprintf(stderr, "usage: %s -S [ -DV ]\n", progname);
++ exit(1);
+ }
+
+ if (!isserver) {
+@@ -108,7 +100,7 @@
+ rem_w = fileno(stdout);
+
+ /* Set logging */
+- if (cp = msgparseopts(localmsglist, TRUE))
++ if ((cp = msgparseopts(localmsglist, TRUE)))
+ fatalerr("Bad message logging option (%s): %s",
+ localmsglist, cp);
+
+--- rdist-6.1.5/src/server.c.cleanup 2003-12-17 11:38:16.000000000 +0100
++++ rdist-6.1.5/src/server.c 2003-12-17 11:38:16.000000000 +0100
+@@ -37,7 +37,7 @@
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: server.c,v 6.86 1998/11/10 04:15:31 mcooper Exp $";
+
+@@ -197,7 +197,7 @@
+ static UID_T last_uid = (UID_T)-2;
+ static GID_T last_primegid;
+ extern char *locuser;
+- register int i;
++ int i;
+ UID_T uid;
+ GID_T gid;
+ GID_T primegid = (GID_T)-2;
+@@ -252,7 +252,7 @@
+ /*
+ * Invalid cached values so we need to do a new lookup.
+ */
+- if (gr = mygetgroup(group)) {
++ if ((gr = mygetgroup(group))) {
+ last_gid = gid = gr->gr_gid;
+ strcpy(last_group, gr->gr_name);
+ } else {
+@@ -325,7 +325,7 @@
+ {
+ DIR *d;
+ static DIRENTRY *dp;
+- register char *cp;
++ char *cp;
+ struct stat stb;
+ char *optarget;
+ int len, failures = 0;
+@@ -362,7 +362,7 @@
+
+ optarget = ptarget;
+ len = ptarget - target;
+- while (dp = readdir(d)) {
++ while ((dp = readdir(d))) {
+ if ((D_NAMLEN(dp) == 1 && dp->d_name[0] == '.') ||
+ (D_NAMLEN(dp) == 2 && dp->d_name[0] == '.' &&
+ dp->d_name[1] == '.'))
+@@ -376,7 +376,7 @@
+ ptarget = optarget;
+ *ptarget++ = '/';
+ cp = dp->d_name;;
+- while (*ptarget++ = *cp++)
++ while ((*ptarget++ = *cp++))
+ ;
+ ptarget--;
+ if (lstat(target, &stb) < 0) {
+@@ -414,10 +414,10 @@
+ * for extraneous files and remove them.
+ */
+ static void doclean(cp)
+- register char *cp;
++ char *cp;
+ {
+ DIR *d;
+- register DIRENTRY *dp;
++ DIRENTRY *dp;
+ struct stat stb;
+ char *optarget, *ep;
+ int len;
+@@ -436,7 +436,7 @@
+
+ optarget = ptarget;
+ len = ptarget - target;
+- while (dp = readdir(d)) {
++ while ((dp = readdir(d))) {
+ if ((D_NAMLEN(dp) == 1 && dp->d_name[0] == '.') ||
+ (D_NAMLEN(dp) == 2 && dp->d_name[0] == '.' &&
+ dp->d_name[1] == '.'))
+@@ -450,7 +450,7 @@
+ ptarget = optarget;
+ *ptarget++ = '/';
+ cp = dp->d_name;;
+- while (*ptarget++ = *cp++)
++ while ((*ptarget++ = *cp++))
+ ;
+ ptarget--;
+ if (lstat(target, &stb) < 0) {
+@@ -481,7 +481,7 @@
+ * Frontend to doclean().
+ */
+ static void clean(cp)
+- register char *cp;
++ char *cp;
+ {
+ doclean(cp);
+ (void) sendcmd(CC_END, NULL);
+@@ -509,7 +509,7 @@
+ */
+ static void docmdspecial()
+ {
+- register char *cp;
++ char *cp;
+ char *cmd, *env = NULL;
+ int n;
+ int len;
+@@ -667,7 +667,7 @@
+ char *name;
+ opt_t opts;
+ {
+- register char *cp;
++ char *cp;
+ struct stat stb;
+ int r = -1;
+
+@@ -760,7 +760,7 @@
+ {
+ int f, wrerr, olderrno, lastwashole = 0, wassparse = 0;
+ off_t i;
+- register char *cp;
++ char *cp;
+ char *savefile = NULL;
+ static struct stat statbuff;
+
+@@ -987,7 +987,7 @@
+ char *owner, *group;
+ {
+ static char lowner[100], lgroup[100];
+- register char *cp;
++ char *cp;
+ struct stat stb;
+ int s;
+
+@@ -1044,7 +1044,7 @@
+
+ o = (owner[0] == ':') ? opts & DO_NUMCHKOWNER :
+ opts;
+- if (cp = getusername(stb.st_uid, target, o))
++ if ((cp = getusername(stb.st_uid, target, o)))
+ if (strcmp(owner, cp))
+ (void) strcpy(lowner, cp);
+ }
+@@ -1053,7 +1053,7 @@
+
+ o = (group[0] == ':') ? opts & DO_NUMCHKGROUP :
+ opts;
+- if (cp = getgroupname(stb.st_gid, target, o))
++ if ((cp = getgroupname(stb.st_gid, target, o)))
+ if (strcmp(group, cp))
+ (void) strcpy(lgroup, cp);
+ }
+@@ -1107,8 +1107,8 @@
+ if (s < 0) {
+ if (errno == ENOENT) {
+ if (mkdir(target, mode) == 0 ||
+- chkparent(target, opts) == 0 &&
+- mkdir(target, mode) == 0) {
++ (chkparent(target, opts) == 0 &&
++ mkdir(target, mode) == 0)) {
+ message(MT_NOTICE, "%s: mkdir", target);
+ (void) fchog(-1, target, owner, group, mode);
+ ack();
+@@ -1304,7 +1304,7 @@
+ static void setconfig(cmd)
+ char *cmd;
+ {
+- register char *cp = cmd;
++ char *cp = cmd;
+ char *estr;
+
+ switch (*cp++) {
+@@ -1338,7 +1338,7 @@
+ break;
+
+ case SC_LOGGING: /* Logging options */
+- if (estr = msgparseopts(cp, TRUE)) {
++ if ((estr = msgparseopts(cp, TRUE))) {
+ fatalerr("Bad message option string (%s): %s",
+ cp, estr);
+ return;
+@@ -1455,7 +1455,7 @@
+ sptarget[catname] = ptarget;
+ if (catname++) {
+ *ptarget++ = '/';
+- while (*ptarget++ = *file++)
++ while ((*ptarget++ = *file++))
+ ;
+ ptarget--;
+ }
+@@ -1463,6 +1463,7 @@
+ /*
+ * Create name of temporary file
+ */
++ int fd;
+ if (catname && cattarget(file) < 0) {
+ error("Cannot set file name.");
+ return;
+@@ -1477,7 +1478,12 @@
+ (void) sprintf(new, "%s/%s", target, tempname);
+ *file = '/';
+ }
+- (void) mktemp(new);
++ fd = mkstemp(new);
++ if (fd < 0) {
++ error("Cannot set file name.");
++ return;
++ }
++ close(fd);
+ }
+
+ /*
+@@ -1581,8 +1587,8 @@
+ extern void server()
+ {
+ static char cmdbuf[BUFSIZ];
+- register char *cp;
+- register int n;
++ char *cp;
++ int n;
+ extern jmp_buf finish_jmpbuf;
+
+ if (setjmp(finish_jmpbuf)) {
+--- rdist-6.1.5/src/filesys.c.cleanup 1998-11-10 05:10:18.000000000 +0100
++++ rdist-6.1.5/src/filesys.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: filesys.c,v 6.25 1998/11/10 04:10:17 mcooper Exp $";
+
+@@ -72,7 +72,7 @@
+ static char last_pathname[MAXPATHLEN];
+ static char file[MAXPATHLEN + 3];
+ static struct stat filestat;
+- register char *p;
++ char *p;
+
+ /*
+ * Mark the statbuf as invalid to start with.
+@@ -125,7 +125,7 @@
+ * Normally we want to change /dir1/dir2/file
+ * into "/dir1/dir2/."
+ */
+- if (p = (char *) strrchr(file, '/')) {
++ if ((p = (char *) strrchr(file, '/'))) {
+ *++p = '.';
+ *++p = CNULL;
+ } else {
+@@ -183,7 +183,7 @@
+ struct stat *filest;
+ struct mntinfo *mntinfo;
+ {
+- register struct mntinfo *mi;
++ struct mntinfo *mi;
+
+ for (mi = mntinfo; mi; mi = mi->mi_nxt) {
+ if (mi->mi_mnt->me_flags & MEFLAG_IGNORE)
+@@ -202,7 +202,7 @@
+ mntent_t *mnt;
+ struct mntinfo *mntinfo;
+ {
+- register struct mntinfo *m;
++ struct mntinfo *m;
+
+ for (m = mntinfo; m; m = m->mi_nxt)
+ if (strcmp(m->mi_mnt->me_path, mnt->me_path) == 0)
+@@ -247,7 +247,7 @@
+ }
+
+ mntinfo = mi;
+- while (mnt = getmountent(mfp)) {
++ while ((mnt = getmountent(mfp))) {
+ debugmsg(DM_MISC, "mountent = '%s' (%s)",
+ mnt->me_path, mnt->me_type);
+
+@@ -308,7 +308,7 @@
+ static struct stat filestat;
+ struct stat *pstat;
+ struct mntinfo *tmpmi;
+- register mntent_t *mnt;
++ mntent_t *mnt;
+
+ /*
+ * Use the supplied stat buffer if not NULL or our own.
+@@ -330,16 +330,16 @@
+ /*
+ * Find the mnt that pathname is on.
+ */
+- if (mnt = findmnt(pstat, mntinfo))
++ if ((mnt = findmnt(pstat, mntinfo)))
+ return(mnt);
+
+ /*
+ * We failed to find correct mnt, so maybe it's a newly
+ * mounted filesystem. We rebuild mntinfo and try again.
+ */
+- if (tmpmi = makemntinfo(mntinfo)) {
++ if ((tmpmi = makemntinfo(mntinfo))) {
+ mntinfo = tmpmi;
+- if (mnt = findmnt(pstat, mntinfo))
++ if ((mnt = findmnt(pstat, mntinfo)))
+ return(mnt);
+ }
+
+--- rdist-6.1.5/src/filesys-os.c.cleanup 1998-11-10 05:09:59.000000000 +0100
++++ rdist-6.1.5/src/filesys-os.c 2003-12-17 11:38:16.000000000 +0100
+@@ -38,7 +38,7 @@
+ * SUCH DAMAGE.
+ */
+
+-#ifndef lint
++#if 0
+ static char RCSid[] =
+ "$Id: filesys-os.c,v 6.18 1998/11/10 04:09:58 mcooper Exp $";
+
+@@ -314,7 +314,7 @@
+
+ bzero((char *)&me, sizeof(mntent_t));
+
+- if (mntent = getmntent(fptr)) {
++ if ((mntent = getmntent(fptr))) {
+ me.me_path = mntent->mnt_dir;
+ me.me_type = mntent->mnt_type;
+ if (mntent->mnt_opts && hasmntopt(mntent, MNTOPT_RO))
+--- rdist-6.1.5/src/strcasecmp.c.cleanup 1998-11-10 05:16:52.000000000 +0100
++++ rdist-6.1.5/src/strcasecmp.c 2003-12-17 11:38:16.000000000 +0100
+@@ -51,9 +51,9 @@
+ };
+
+ strcasecmp(s1, s2)
+- register char *s1, *s2;
++ char *s1, *s2;
+ {
+- register char *cm = charmap;
++ char *cm = charmap;
+
+ while (cm[*s1] == cm[*s2++])
+ if (*s1++ == '\0')
+@@ -62,10 +62,10 @@
+ }
+
+ strncasecmp(s1, s2, n)
+- register char *s1, *s2;
+- register int n;
++ char *s1, *s2;
++ int n;
+ {
+- register char *cm = charmap;
++ char *cm = charmap;
+
+ while (--n >= 0 && cm[*s1] == cm[*s2++])
+ if (*s1++ == '\0')
+--- rdist-6.1.5/src/strtol.c.cleanup 1994-03-17 00:25:50.000000000 +0100
++++ rdist-6.1.5/src/strtol.c 2003-12-17 11:38:16.000000000 +0100
+@@ -54,13 +54,13 @@
+ strtol(nptr, endptr, base)
+ char *nptr;
+ char **endptr;
+- register int base;
++ int base;
+ {
+- register char *s = nptr;
+- register unsigned long acc;
+- register int c;
+- register unsigned long cutoff;
+- register int neg = 0, any, cutlim;
++ char *s = nptr;
++ unsigned long acc;
++ int c;
++ unsigned long cutoff;
++ int neg = 0, any, cutlim;
+
+ /*
+ * Skip white space and pick up leading +/- sign if any.
+--- rdist-6.1.5/src/regex.c.cleanup 1998-11-10 05:14:28.000000000 +0100
++++ rdist-6.1.5/src/regex.c 2003-12-17 11:39:14.000000000 +0100
+@@ -142,10 +142,8 @@
+ */
+ char *
+ re_comp(sp)
+- register char *sp;
+ {
+- register int c;
+- register char *ep = expbuf;
++ char *ep = expbuf;
+ int cclcnt, numbra = 0;
+ char *lastep = 0;
+ char bracket[NBRA];
+@@ -266,10 +264,10 @@
+ */
+ int
+ re_exec(p1)
+- register char *p1;
++ char *p1;
+ {
+- register char *p2 = expbuf;
+- register int c;
++ char *p2 = expbuf;
++ int c;
+ int rv;
+
+ for (c = 0; c < NBRA; c++) {
+@@ -306,9 +304,9 @@
+ */
+ static int
+ advance(lp, ep)
+- register char *lp, *ep;
++ char *lp, *ep;
+ {
+- register char *curlp;
++ char *curlp;
+ int ct, i;
+ int rv;
+
+@@ -413,10 +411,10 @@
+ }
+
+ backref(i, lp)
+- register int i;
+- register char *lp;
++ int i;
++ char *lp;
+ {
+- register char *bp;
++ char *bp;
+
+ bp = braslist[i];
+ while (*bp++ == *lp++)
+@@ -427,10 +425,10 @@
+
+ int
+ cclass(set, c, af)
+- register char *set, c;
++ char *set, c;
+ int af;
+ {
+- register int n;
++ int n;
+
+ if (c == 0)
+ return(0);
+--- rdist-6.1.5/include/defs.h.cleanup 2003-12-17 11:38:16.000000000 +0100
++++ rdist-6.1.5/include/defs.h 2003-12-17 11:38:16.000000000 +0100
+@@ -30,11 +30,13 @@
+ #include <grp.h>
+ #include <syslog.h>
+ #include <setjmp.h>
++#include <time.h>
+ #include <sys/types.h>
+ #include <sys/param.h>
+ #include <sys/file.h>
+-#include <sys/time.h>
+ #include <sys/stat.h>
++#include <sys/wait.h>
++#include <sys/socket.h>
+
+ #include "version.h"
+ #include "config-def.h"
+@@ -48,6 +50,9 @@
+ #endif /* yacc */
+
+ #include <signal.h>
++#define _REGEX_RE_COMP
++#include <regex.h>
++
+
+ /*
+ * This belongs in os-svr4.h but many SVR4 OS's
+@@ -321,12 +326,11 @@
+ /*
+ * Our own declarations.
+ */
+-char *exptilde();
+ char *makestr();
+ char *xcalloc();
+ char *xmalloc();
+ char *xrealloc();
+-extern char *xbasename();
++extern char *exptilde();
+ extern char *getdistoptlist();
+ extern char *getgroupname();
+ extern char *getnlstr();
+@@ -336,44 +340,75 @@
+ extern char *getversion();
+ extern char *msgparseopts();
+ extern char *searchpath();
++extern char *xbasename();
++extern int amatch();
+ extern int any();
++extern int becomeroot();
++extern int becomeuser();
++extern int except();
++extern int execbrc();
++extern int getfilesysinfo();
++extern int getsocketpair();
+ extern int init();
+ extern int install();
+ extern int isexec();
++extern int is_nfs_mounted();
++extern int is_ro_mounted();
++extern int is_symlinked();
++extern int match();
++extern int okname();
+ extern int parsedistopts();
++extern int readrem();
+ extern int remline();
++extern int response();
++extern int rshrcmd();
+ extern int setfiletime();
++extern int setnonblocking();
+ extern int spawn();
++extern int yylex();
++extern int yyparse();
+ extern struct subcmd *makesubcmd();
++extern void append();
+ extern void checkhostname();
+ extern void cleanup();
+ extern void complain();
++extern void coredump();
++extern void define();
++extern void docmdargs();
+ extern void docmds();
+ extern void finish();
+-extern void log();
++extern void freelinkinfo();
++extern void insert();
+ extern void logmsg();
+ extern void lostconn();
+ extern void markassigned();
++extern void msgprconfig();
+ extern void msgprusage();
++extern void mysetlinebuf();
+ extern void note();
+ extern void runcmdspecial();
+ extern void runcommand();
+ extern void server();
++extern void setargs_settup();
+ extern void setprogname();
+ extern void sighandler();
++extern void usage();
+ extern void waitup();
++extern void yyerror();
++extern WRITE_RETURN_T xwrite();
+ struct namelist *expand();
+ struct namelist *lookup();
+ struct namelist *makenl();
+-extern WRITE_RETURN_T xwrite();
+
+ #if defined(ARG_TYPE) && ARG_TYPE == ARG_STDARG
++extern int sendcmd(char cmd, char *fmt, ...);
+ extern void debugmsg(int, char *, ...);
+ extern void error(char *, ...);
+ extern void fatalerr(char *, ...);
+ extern void message(int, char *, ...);
+ extern void setproctitle(char *fmt, ...);
+ #else
++extern int sendcmd(va_alist);
+ extern void debugmsg();
+ extern void error();
+ extern void fatalerr();
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-msgsndnotify-loop.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-msgsndnotify-loop.patch
new file mode 100644
index 000000000..d183d9183
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-msgsndnotify-loop.patch
@@ -0,0 +1,37 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/message.c.thestokes 2006-04-19 17:30:39.000000000 -0400
++++ rdist-6.1.5/src/message.c 2006-04-19 17:36:37.000000000 -0400
+@@ -793,15 +793,20 @@
+ char *msg;
+ {
+ static char buf[MSGBUFSIZ];
+-
+- ++nerrs;
+-
+- if (isserver)
+- (void) sprintf(buf, "REMOTE ERROR: %s", msg);
+- else
+- (void) sprintf(buf, "LOCAL ERROR: %s", msg);
+-
+- _message(MT_FERROR, buf);
++ /* Don't reenter this function. There is a nasty infinite recursion
++ case that pops up when msgsndnotify tries to exit. */
++ static int inside=0;
++
++ if(inside==0){
++ ++nerrs;
++ inside=1;
++
++ if (isserver)
++ (void) sprintf(buf, "REMOTE ERROR: %s", msg);
++ else
++ (void) sprintf(buf, "LOCAL ERROR: %s", msg);
++ _message(MT_FERROR, buf);
++ }
+
+ exit(nerrs);
+ }
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-hardlink.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-hardlink.patch
new file mode 100644
index 000000000..baf8e3030
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-hardlink.patch
@@ -0,0 +1,25 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/client.c.hardlink Thu Jun 3 13:56:31 1999
++++ rdist-6.1.5/src/client.c Thu Jun 3 14:00:06 1999
+@@ -348,7 +348,7 @@
+ lp->target = strdup(Tdest);
+ else
+ lp->target = NULL;
+- if (!lp->pathname || !lp->src || !(Tdest && lp->target))
++ if (!lp->pathname || !lp->src || (Tdest && !lp->target))
+ fatalerr("Cannot malloc memory in linkinfo.");
+
+ return((struct linkbuf *) NULL);
+@@ -370,7 +370,7 @@
+ "sendhardlink: rname='%s' pathname='%s' src='%s' target='%s'\n",
+ rname, lp->pathname, lp->src, lp->target);
+
+- if (*lp->target == CNULL)
++ if (lp->target == NULL || *lp->target == CNULL)
+ (void) sendcmd(C_RECVHARDLINK, "%o %s %s",
+ opts, lp->pathname, rname);
+ else {
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-lfs.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-lfs.patch
new file mode 100644
index 000000000..3fa8db8cd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-lfs.patch
@@ -0,0 +1,142 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/client.c.lfs 2003-12-16 23:43:56.000000000 +0100
++++ rdist-6.1.5/src/client.c 2003-12-16 23:46:56.000000000 +0100
+@@ -414,9 +414,9 @@
+ /*
+ * Send file info
+ */
+- (void) sendcmd(C_RECVREG, "%o %04o %ld %ld %ld %s %s %s",
++ (void) sendcmd(C_RECVREG, "%o %04o %lld %ld %ld %s %s %s",
+ opts, stb->st_mode & 07777,
+- (long) stb->st_size,
++ (off_t) stb->st_size,
+ stb->st_mtime, stb->st_atime,
+ user, group, rname);
+ if (response() < 0) {
+@@ -424,8 +424,8 @@
+ return(-1);
+ }
+
+- debugmsg(DM_MISC, "Send file '%s' %d bytes\n",
+- rname, (long) stb->st_size);
++ debugmsg(DM_MISC, "Send file '%s' %lld bytes\n",
++ rname, (off_t) stb->st_size);
+
+ /*
+ * Set remote time out alarm handler.
+@@ -676,9 +676,9 @@
+ /*
+ * Gather and send basic link info
+ */
+- (void) sendcmd(C_RECVSYMLINK, "%o %04o %ld %ld %ld %s %s %s",
++ (void) sendcmd(C_RECVSYMLINK, "%o %04o %lld %ld %ld %s %s %s",
+ opts, stb->st_mode & 07777,
+- (long) stb->st_size,
++ (off_t) stb->st_size,
+ stb->st_mtime, stb->st_atime,
+ user, group, rname);
+ if (response() < 0)
+@@ -858,7 +858,7 @@
+ /*
+ * Parse size
+ */
+- size = strtol(cp, &cp, 10);
++ size = strtoll(cp, &cp, 10);
+ if (*cp++ != ' ') {
+ error("update: size not delimited");
+ return(US_NOTHING);
+@@ -910,8 +910,8 @@
+
+ debugmsg(DM_MISC, "update(%s,) local mode %04o remote mode %04o\n",
+ rname, lmode, rmode);
+- debugmsg(DM_MISC, "update(%s,) size %d mtime %d owner '%s' grp '%s'\n",
+- rname, (int) size, mtime, owner, group);
++ debugmsg(DM_MISC, "update(%s,) size %lld mtime %d owner '%s' grp '%s'\n",
++ rname, (off_t) size, mtime, owner, group);
+
+ if (statp->st_mtime != mtime) {
+ if (statp->st_mtime < mtime && IS_ON(opts, DO_YOUNGER)) {
+@@ -937,8 +937,8 @@
+ }
+
+ if (statp->st_size != size) {
+- debugmsg(DM_MISC, "size does not match (%d != %d).\n",
+- (int) statp->st_size, size);
++ debugmsg(DM_MISC, "size does not match (%lld != %lld).\n",
++ statp->st_size, size);
+ return(US_OUTDATE);
+ }
+
+--- rdist-6.1.5/src/server.c.lfs 1998-11-10 05:15:31.000000000 +0100
++++ rdist-6.1.5/src/server.c 2003-12-16 23:50:19.000000000 +0100
+@@ -645,8 +645,8 @@
+ case S_IFLNK:
+ case S_IFDIR:
+ case S_IFREG:
+- (void) sendcmd(QC_YES, "%ld %ld %o %s %s",
+- (long) stb.st_size,
++ (void) sendcmd(QC_YES, "%lld %ld %o %s %s",
++ (off_t) stb.st_size,
+ stb.st_mtime,
+ stb.st_mode & 07777,
+ getusername(stb.st_uid, target, options),
+@@ -1388,7 +1388,7 @@
+ /*
+ * Get file size
+ */
+- size = strtol(cp, &cp, 10);
++ size = strtoll(cp, &cp, 10);
+ if (*cp++ != ' ') {
+ error("recvit: size not delimited");
+ return;
+@@ -1441,7 +1441,7 @@
+ }
+
+ debugmsg(DM_MISC,
+- "recvit: opts = %04o mode = %04o size = %d mtime = %d",
++ "recvit: opts = %04o mode = %04o size = %lld mtime = %d",
+ opts, mode, size, mtime);
+ debugmsg(DM_MISC,
+ "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d",
+--- rdist-6.1.5/include/defs.h.lfs 2003-12-16 23:43:56.000000000 +0100
++++ rdist-6.1.5/include/defs.h 2003-12-16 23:43:56.000000000 +0100
+@@ -22,6 +22,8 @@
+ #include <stdlib.h>
+ #endif /* _POSIX_SOURCE */
+ #include <stdio.h>
++#include <string.h>
++#include <mntent.h>
+ #include <ctype.h>
+ #include <errno.h>
+ #include <pwd.h>
+@@ -317,15 +319,6 @@
+ #endif /* USE_STATDB */
+
+ /*
+- * System function declarations
+- */
+-char *hasmntopt();
+-char *strchr();
+-char *strdup();
+-char *strrchr();
+-char *strtok();
+-
+-/*
+ * Our own declarations.
+ */
+ char *exptilde();
+--- rdist-6.1.5/Makefile.local.lfs 1998-11-10 04:36:31.000000000 +0100
++++ rdist-6.1.5/Makefile.local 2003-12-16 23:43:56.000000000 +0100
+@@ -20,7 +20,7 @@
+ # Add any local definitions you want pass to the compiler to DEFS_LOCAL
+ # below. This includes those items found in "config/config.h".
+ #
+-#DEFS_LOCAL = -DDIRECT_RCMD
++DEFS_LOCAL = -O2 -g -pipe -Wall -D_POSIX_SOURCE -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+
+ #
+ # Add any local libraries that your system might need to LIBS_LOCAL below.
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-links.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-links.patch
new file mode 100644
index 000000000..e9994f2c9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-links.patch
@@ -0,0 +1,79 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/client.c.links Wed Feb 17 17:46:09 1999
++++ rdist-6.1.5/src/client.c Wed Feb 17 17:51:15 1999
+@@ -309,6 +309,18 @@
+ return(0);
+ }
+
++void freelinkinfo(lp)
++ struct linkbuf *lp;
++{
++ if (lp->pathname)
++ free(lp->pathname);
++ if (lp->src)
++ free(lp->src);
++ if (lp->target)
++ free(lp->target);
++ free(lp);
++}
++
+ /*
+ * Save and retrieve hard link info
+ */
+@@ -317,6 +329,7 @@
+ {
+ struct linkbuf *lp;
+
++ /* xxx: linear search doesn't scale with many links */
+ for (lp = ihead; lp != NULL; lp = lp->nextp)
+ if (lp->inum == statp->st_ino && lp->devnum == statp->st_dev) {
+ lp->count--;
+@@ -329,12 +342,14 @@
+ lp->inum = statp->st_ino;
+ lp->devnum = statp->st_dev;
+ lp->count = statp->st_nlink - 1;
+- (void) strcpy(lp->pathname, target);
+- (void) strcpy(lp->src, source);
++ lp->pathname = strdup(target);
++ lp->src = strdup(source);
+ if (Tdest)
+- (void) strcpy(lp->target, Tdest);
++ lp->target = strdup(Tdest);
+ else
+- *lp->target = CNULL;
++ lp->target = NULL;
++ if (!lp->pathname || !lp->src || !(Tdest && lp->target))
++ fatalerr("Cannot malloc memory in linkinfo.");
+
+ return((struct linkbuf *) NULL);
+ }
+--- rdist-6.1.5/src/docmd.c.links Wed Feb 17 17:51:23 1999
++++ rdist-6.1.5/src/docmd.c Wed Feb 17 17:52:44 1999
+@@ -586,7 +586,7 @@
+ if (!nflag) {
+ register struct linkbuf *nextl, *l;
+
+- for (l = ihead; l != NULL; free((char *)l), l = nextl) {
++ for (l = ihead; l != NULL; freelinkinfo(l), l = nextl) {
+ nextl = l->nextp;
+ if (contimedout || IS_ON(opts, DO_IGNLNKS) ||
+ l->count == 0)
+--- rdist-6.1.5/include/defs.h.links Wed Feb 17 17:52:58 1999
++++ rdist-6.1.5/include/defs.h Wed Feb 17 17:53:47 1999
+@@ -276,9 +276,9 @@
+ ino_t inum;
+ dev_t devnum;
+ int count;
+- char pathname[BUFSIZ];
+- char src[BUFSIZ];
+- char target[BUFSIZ];
++ char *pathname;
++ char *src;
++ char *target;
+ struct linkbuf *nextp;
+ };
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-linux.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-linux.patch
new file mode 100644
index 000000000..b56fd38b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-linux.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+diff: rdist-6.1.5/config/mf: No such file or directory
+--- rdist-6.1.5/config/os-linux.h.linux Mon Nov 9 22:59:59 1998
++++ rdist-6.1.5/config/os-linux.h Thu Nov 12 14:50:35 1998
+@@ -58,7 +58,7 @@
+ /*
+ * Select the type of executable file format.
+ */
+-#define EXE_TYPE EXE_AOUT
++#define EXE_TYPE EXE_ELF
+
+ /*
+ * Select the type of statfs() system call (if any).
+--- rdist-6.1.5/mf/Makefile.var.linux Tue Nov 10 00:02:11 1998
++++ rdist-6.1.5/mf/Makefile.var Thu Nov 12 14:50:35 1998
+@@ -67,7 +67,7 @@
+ #
+ # Name of YACC.
+ #
+-#YACC = bison -y
++YACC = bison -y
+
+ OPT = -g
+ RM = rm
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-makefile-add-ldflags.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-makefile-add-ldflags.patch
new file mode 100644
index 000000000..cc82e16cc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-makefile-add-ldflags.patch
@@ -0,0 +1,23 @@
+Add LDFLAGS variable to Makefile so that extra linker flags can be sent via this variable.
+
+Upstream-Status: Inappropriate [no upstream]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/src/Makefile.real b/src/Makefile.real
+index 02179e4..9070974 100644
+--- a/src/Makefile.real
++++ b/src/Makefile.real
+@@ -36,10 +36,10 @@ all: src
+ src: $(CLIENT_BIN) $(SERVER_BIN)
+
+ $(SERVER_BIN): $(SERVEROBJS) $(COMMONOBJS) $(MISSINGOBJS)
+- $(CC) -o $@ $(SERVEROBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS)
++ $(CC) -o $@ $(SERVEROBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS) $(LDFLAGS)
+
+ $(CLIENT_BIN): $(CLIENTOBJS) $(COMMONOBJS) $(MISSINGOBJS)
+- $(CC) -o $@ $(CLIENTOBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS)
++ $(CC) -o $@ $(CLIENTOBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS) $(LDFLAGS)
+
+ $(CLIENTOBJS) $(SERVEROBJS): $(HFILES) y.tab.h
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-maxargs.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-maxargs.patch
new file mode 100644
index 000000000..e81639446
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-maxargs.patch
@@ -0,0 +1,16 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:rdist
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/setargs.c.maxargs 1998-11-10 05:15:56.000000000 +0100
++++ rdist-6.1.5/src/setargs.c 2003-09-04 14:39:03.000000000 +0200
+@@ -58,7 +58,7 @@
+ * Set process argument functions
+ */
+
+-#define MAXUSERENVIRON 40
++#define MAXUSERENVIRON 1024
+ char **Argv = NULL;
+ char *LastArgv = NULL;
+ char *UserEnviron[MAXUSERENVIRON+1];
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-mkstemp.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-mkstemp.patch
new file mode 100644
index 000000000..e49e3e4d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-mkstemp.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/server.c.mkstemp 2004-05-25 14:29:37.279312752 +0200
++++ rdist-6.1.5/src/server.c 2004-05-25 14:31:27.050744340 +0200
+@@ -1479,11 +1479,18 @@
+ *file = '/';
+ }
+ fd = mkstemp(new);
+- if (fd < 0) {
++ /*
++ * Don't consider it a fatal error if mkstemp() fails
++ * because parent directory didn't exist. (Missing
++ * parents are created later (in recvfile())
++ */
++ if ((fd < 0) && (errno != ENOENT)) {
+ error("Cannot set file name.");
+ return;
++ } else if (fd >= 0) {
++ close(fd);
++ unlink(new); /* Or symlink() will fail */
+ }
+- close(fd);
+ }
+
+ /*
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-oldpath.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-oldpath.patch
new file mode 100644
index 000000000..493b18397
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-oldpath.patch
@@ -0,0 +1,59 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/config/config.h.oldpath Tue Nov 10 04:59:48 1998
++++ rdist-6.1.5/config/config.h Thu Jan 31 17:33:21 2002
+@@ -39,7 +39,7 @@
+ * don't have the old rdist, then uncomment the "#undef" line.
+ */
+ #ifndef _PATH_OLDRDIST
+-#define _PATH_OLDRDIST "/usr/ucb/oldrdist" /* Enable compat */
++#define _PATH_OLDRDIST "/usr/bin/oldrdist" /* Enable compat */
+ #endif
+ /*#undef _PATH_OLDRDIST*/ /* Disable compat */
+
+--- rdist-6.1.5/doc/rdist.man.oldpath Tue Nov 10 06:38:53 1998
++++ rdist-6.1.5/doc/rdist.man Thu Jan 31 17:36:57 2002
+@@ -170,10 +170,9 @@
+ This option will only work if
+ .I rdist
+ was compiled with the location of the old rdist
+-(usually either
+-.I /usr/ucb/oldrdist
+-or
+-.I /usr/old/rdist)
++(the path
++.I /usr/bin/oldrdist
++is used on Red Hat linux)
+ and that program is available at run time.
+ .PP
+ .I Rdist
+@@ -558,7 +557,7 @@
+ should be of form
+ .sp
+ .RS
+-\fIfacility\fB=\fItypes\fB:\fIfacility\fB=\fItypes...
++\fIfacility\fB=\fItypes\fB:\fIfacility\fB=\fItypes...\fR
+ .RE
+ .sp
+ The valid facility names are:
+--- rdist-6.1.5/README.oldpath Fri Jul 19 19:24:09 1996
++++ rdist-6.1.5/README Thu Jan 31 17:33:21 2002
+@@ -65,12 +65,12 @@
+
+ The way the old rdist started a server rdist is to run "rdist
+ -Server". If the new rdist is run with the "-Server" option, then it
+-will exec a copy of the old rdist (usually /usr/old/rdist or
+-/usr/ucb/oldrdist). In this way, you get compatibility with hosts
++will exec a copy of the old rdist (the path /usr/bin/oldrdist in Red
++Hat linux). In this way, you get compatibility with hosts
+ running the old rdist attempting to rdist to a machine running new
+ rdist. If your host running new rdist wants to rdist to a host
+ running the old rdist, then it must run the old rdist program
+-(/usr/old/rdist or /usr/ucb/oldrdist).
++(/usr/bin/oldrdist in Red Hat linux).
+
+ The definition _PATH_OLDRDIST in "config/config.h" controls the
+ location of the old rdist. If this is not defined, or the defined
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-ssh.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-ssh.patch
new file mode 100644
index 000000000..d3982cf41
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-ssh.patch
@@ -0,0 +1,14 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/rshrcmd.c.dist Tue Dec 12 08:20:56 1995
++++ rdist-6.1.5/src/rshrcmd.c Wed Dec 11 07:14:13 1996
+@@ -64,5 +64,5 @@
+ sp[0]. */
+ (void) close(sp[0]);
+- if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0 || dup2(0, 2) < 0) {
++ if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0) {
+ error("dup2 failed: %s.", SYSERR);
+ _exit(255);
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-stat64.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-stat64.patch
new file mode 100644
index 000000000..b20953ef3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-stat64.patch
@@ -0,0 +1,85 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/src/filesys.c.stat64 2005-05-04 14:11:03.000000000 +0200
++++ rdist-6.1.5/src/filesys.c 2005-05-04 14:11:10.000000000 +0200
+@@ -430,8 +430,8 @@
+ */
+ int getfilesysinfo(file, freespace, freefiles)
+ char *file;
+- long *freespace;
+- long *freefiles;
++ fsblkcnt_t *freespace;
++ fsfilcnt_t *freefiles;
+ {
+ #if defined(STATFS_TYPE)
+ static statfs_t statfsbuf;
+--- rdist-6.1.5/src/server.c.stat64 2005-05-04 14:11:23.000000000 +0200
++++ rdist-6.1.5/src/server.c 2005-05-04 14:20:34.000000000 +0200
+@@ -62,8 +62,8 @@
+ int catname = 0; /* cat name to target name */
+ char *sptarget[32]; /* stack of saved ptarget's for directories */
+ char *fromhost = NULL; /* Client hostname */
+-static long min_freespace = 0; /* Minimium free space on a filesystem */
+-static long min_freefiles = 0; /* Minimium free # files on a filesystem */
++static fsblkcnt_t min_freespace = 0; /* Minimium free space on a filesystem */
++static fsfilcnt_t min_freefiles = 0; /* Minimium free # files on a filesystem */
+ int oumask; /* Old umask */
+
+ /*
+@@ -1326,7 +1326,7 @@
+ fatalerr("Expected digit, got '%s'.", cp);
+ return;
+ }
+- min_freespace = (unsigned long) atoi(cp);
++ min_freespace = (fsblkcnt_t) atoll(cp);
+ break;
+
+ case SC_FREEFILES: /* Minimium free files */
+@@ -1334,7 +1334,7 @@
+ fatalerr("Expected digit, got '%s'.", cp);
+ return;
+ }
+- min_freefiles = (unsigned long) atoi(cp);
++ min_freefiles = (fsfilcnt_t) atoll(cp);
+ break;
+
+ case SC_LOGGING: /* Logging options */
+@@ -1364,7 +1364,8 @@
+ time_t mtime, atime;
+ char *owner, *group, *file;
+ char new[MAXPATHLEN];
+- long freespace = -1, freefiles = -1;
++ fsfilcnt_t freefiles = -1;
++ fsblkcnt_t freespace = -1;
+ char *cp = cmd;
+
+ /*
+@@ -1499,7 +1500,7 @@
+ */
+ if (min_freespace || min_freefiles) {
+ /* Convert file size to kilobytes */
+- long fsize = (long) (size / 1024);
++ fsblkcnt_t fsize = (fsblkcnt_t) (size / 1024);
+
+ if (getfilesysinfo(target, &freespace, &freefiles) != 0)
+ return;
+@@ -1511,14 +1512,14 @@
+ if (min_freespace && (freespace >= 0) &&
+ (freespace - fsize < min_freespace)) {
+ error(
+- "%s: Not enough free space on filesystem: min %d free %d",
++ "%s: Not enough free space on filesystem: min %lld free %lld",
+ target, min_freespace, freespace);
+ return;
+ }
+ if (min_freefiles && (freefiles >= 0) &&
+ (freefiles - 1 < min_freefiles)) {
+ error(
+- "%s: Not enough free files on filesystem: min %d free %d",
++ "%s: Not enough free files on filesystem: min %lld free %lld",
+ target, min_freefiles, freefiles);
+ return;
+ }
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-svr4.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-svr4.patch
new file mode 100644
index 000000000..bf73b71e1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-svr4.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/build/os-type.svr4 2003-12-17 12:44:18.000000000 +0100
++++ rdist-6.1.5/build/os-type 2003-12-17 12:44:29.000000000 +0100
+@@ -83,7 +83,6 @@
+ if [ -z "${OS}" -a ! -z "${uname}" ]; then
+ case "`$uname -a | tr '[A-Z]' '[a-z]'`" in
+ osf1*) OS=break;;
+- *"4.0"*) OS=svr4;; # There has to be a better way
+ *" dcosx "*) OS=dcosx;;
+ *"cx/ux"*) OS=cxux;;
+ *"hp-ux"*) # HP-UX 9.x
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-varargs.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-varargs.patch
new file mode 100644
index 000000000..e6edbc44d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-varargs.patch
@@ -0,0 +1,16 @@
+Upstream-Status: Inappropriate [1]
+
+[1] Not the author, the patch is from:
+http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
+
+--- rdist-6.1.5/config/os-linux.h.varargs 2003-06-17 17:52:33.000000000 +0200
++++ rdist-6.1.5/config/os-linux.h 2003-06-17 17:53:07.000000000 +0200
+@@ -68,7 +68,7 @@
+ /*
+ * Type of arg functions we have.
+ */
+-#define ARG_TYPE ARG_VARARGS
++#define ARG_TYPE ARG_STDARG
+
+ /*
+ * Do we have select()?
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb
new file mode 100644
index 000000000..cea1f08f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Remote file distribution client and server"
+DESCRIPTION = "\
+Rdist is a program to maintain identical copies of files over multiple \
+hosts. It preserves the owner, group, mode, and mtime of files if \
+possible and can update programs that are executing. \
+"
+SECTION = "console/network"
+LICENSE = "BSD-4-Clause"
+LIC_FILES_CHKSUM = "file://Copyright;md5=3f47ec9f64b11c8192ee05a66b5c2755"
+
+SRC_URI = "http://www.magnicomp.com/download/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "546779700af70aa5f9103e08782cdcac"
+SRC_URI[sha256sum] = "2bb0d0f5904eadc9e7fe3d60c15389d6897fcf884211070e289a6c710ff37f96"
+
+SRC_URI += "file://rdist-6.1.5-linux.patch \
+ file://rdist-6.1.5-links.patch \
+ file://rdist-6.1.5-oldpath.patch \
+ file://rdist-6.1.5-hardlink.patch \
+ file://rdist-6.1.5-bison.patch \
+ file://rdist-6.1.5-varargs.patch \
+ file://rdist-6.1.5-maxargs.patch \
+ file://rdist-6.1.5-lfs.patch \
+ file://rdist-6.1.5-cleanup.patch \
+ file://rdist-6.1.5-svr4.patch \
+ file://rdist-6.1.5-ssh.patch \
+ file://rdist-6.1.5-mkstemp.patch \
+ file://rdist-6.1.5-stat64.patch \
+ file://rdist-6.1.5-fix-msgsndnotify-loop.patch \
+ file://rdist-6.1.5-bb-build.patch \
+ file://rdist-6.1.5-makefile-add-ldflags.patch \
+"
+
+DEPENDS = "bison-native"
+
+inherit autotools-brokensep
+
+EXTRA_OEMAKE = "BIN_GROUP=root MAN_GROUP=root RDIST_MODE=755 RDISTD_MODE=755 MAN_MODE=644"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch
new file mode 100644
index 000000000..eaaf30460
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch
@@ -0,0 +1,34 @@
+From 2fa326b26dc479942367dc4283e2f87372403988 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jun 2017 09:32:04 -0700
+Subject: [PATCH] rtnl_flush: Error on failed write()
+
+Fixes
+route.c:45:2: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
+| write(fd, "-1", 2);
+| ^~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ route.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/route.c b/route.c
+index c552d1f..fc5c31e 100644
+--- a/route.c
++++ b/route.c
+@@ -42,7 +42,8 @@ static void rtnl_flush(void)
+ if (fd < 0)
+ return;
+
+- write(fd, "-1", 2);
++ if (write(fd, "-1", 2) < 0 )
++ perror("write");
+ close(fd);
+ }
+
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
index 50297f38d..98dc41a09 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
@@ -5,9 +5,11 @@ LIC_FILES_CHKSUM = "file://main.c;endline=17;md5=86aad799085683e0a2e1c2684a20bab
DEPENDS = "libubox"
-SRC_URI = "git://nbd.name/relayd.git"
+SRC_URI = "git://git.openwrt.org/project/relayd.git \
+ file://0001-rtnl_flush-Error-on-failed-write.patch \
+"
-SRCREV = "2970ff60bac6b70ecb682779d5c776dc559dc0b9"
+SRCREV = "ad0b25ad74345d367c62311e14b279f5ccb8ef13"
PV = "0.0.1+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/00-fix-typos-in-man-pages.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/00-fix-typos-in-man-pages.patch
deleted file mode 100644
index c94bc3185..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/00-fix-typos-in-man-pages.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 1573638212a9733a44939a4d38a226f38dca36f1 Mon Sep 17 00:00:00 2001
-From: Michele Baldessari <michele@acksyn.org>
-Date: Tue, 9 Jul 2013 23:23:33 +0200
-Subject: [PATCH] Fix typos in man-pages
-
-Fix some typos in the man-pages.
-
-Signed-off-by: Michele Baldessari <michele@acksyn.org>
-Reviewed-by: Simo Sorce <idra@samba.org>
-
-Autobuild-User(master): Simo Sorce <idra@samba.org>
-Autobuild-Date(master): Wed Jul 10 16:45:07 CEST 2013 on sn-devel-104
----
- docs-xml/manpages/dbwrap_tool.1.xml | 2 +-
- docs-xml/manpages/idmap_autorid.8.xml | 2 +-
- docs-xml/manpages/net.8.xml | 2 +-
- docs-xml/manpages/pdbedit.8.xml | 2 +-
- docs-xml/manpages/samba.7.xml | 2 +-
- docs-xml/manpages/smbclient.1.xml | 2 +-
- docs-xml/manpages/smbpasswd.5.xml | 2 +-
- docs-xml/manpages/vfs_smb_traffic_analyzer.8.xml | 2 +-
- 8 files changed, 8 insertions(+), 8 deletions(-)
-
-Index: samba-4.1.11/docs-xml/manpages/smbstatus.1.xml
-===================================================================
---- samba-4.1.11.orig/docs-xml/manpages/smbstatus.1.xml
-+++ samba-4.1.11/docs-xml/manpages/smbstatus.1.xml
-@@ -137,6 +137,13 @@
- </listitem>
- </varlistentry>
-
-+ <varlistentry>
-+ <term>-n|--numeric</term>
-+ <listitem><para>causes smbstatus to display numeric UIDs and GIDs instead of
-+ resolving them to names.</para>
-+ </listitem>
-+ </varlistentry>
-+
- </variablelist>
- </refsect1>
-
-Index: samba-4.1.11/docs-xml/manpages/sharesec.1.xml
-===================================================================
---- samba-4.1.11.orig/docs-xml/manpages/sharesec.1.xml
-+++ samba-4.1.11/docs-xml/manpages/sharesec.1.xml
-@@ -129,6 +129,13 @@
- </para></listitem>
- </varlistentry>
-
-+ <varlistentry>
-+ <term>-S|--setsddl=STRING</term>
-+ <listitem><para>
-+ Set security descriptor by providing ACL in SDDL format.
-+ </para></listitem>
-+ </varlistentry>
-+
- &stdarg.help;
- &stdarg.server.debug;
- &popt.common.samba;
-Index: samba-4.1.11/docs-xml/build/DTD/samba.entities
-===================================================================
---- samba-4.1.11.orig/docs-xml/build/DTD/samba.entities
-+++ samba-4.1.11/docs-xml/build/DTD/samba.entities
-@@ -270,6 +270,44 @@ file.
- &popt.common.samba;
- '>
-
-+<!ENTITY stdarg.signing '
-+<varlistentry>
-+<term>-S|--signing on|off|required</term>
-+<listitem><para>Set the client signing state.
-+</para></listitem>
-+</varlistentry>
-+'>
-+
-+<!ENTITY stdarg.machinepass '
-+<varlistentry>
-+<term>-P|--machine-pass</term>
-+<listitem><para>Use stored machine account password.
-+</para></listitem>
-+</varlistentry>
-+'>
-+
-+<!ENTITY stdarg.encrypt '
-+<varlistentry>
-+<term>-e|--encrypt</term>
-+<listitem><para>
-+This command line parameter requires the remote
-+server support the UNIX extensions or that the SMB3 protocol has been selected.
-+Requests that the connection be encrypted. Negotiates SMB encryption using either
-+SMB3 or POSIX extensions via GSSAPI. Uses the given credentials for
-+the encryption negotiation (either kerberos or NTLMv1/v2 if given
-+domain/username/password triple. Fails the connection if encryption
-+cannot be negotiated.
-+</para></listitem>
-+</varlistentry>
-+'>
-+
-+<!ENTITY stdarg.pwnthash '
-+<varlistentry>
-+<term>--pw-nt-hash</term>
-+<listitem><para>The supplied password is the NT hash.
-+</para></listitem>
-+</varlistentry>
-+'>
-
- <!ENTITY stdarg.resolve.order '
- <varlistentry>
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb
index 7574aefb4..2b227c95d 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.2.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb
@@ -1,3 +1,4 @@
+HOMEPAGE = "https://www.samba.org/"
SECTION = "console/network"
LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+"
@@ -12,7 +13,6 @@ ${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \
"
SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
- file://00-fix-typos-in-man-pages.patch \
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 \
@@ -26,8 +26,9 @@ SRC_URI_append_libc-musl = " \
file://samba-4.2.7-pam.patch \
file://samba-4.3.9-remove-getpwent_r.patch \
"
-SRC_URI[md5sum] = "461def8190ffc651fd8458b24ca2a622"
-SRC_URI[sha256sum] = "927afcc16e444718985e3952de92d34e7b776b9ca0238179d866da18a6441c35"
+
+SRC_URI[md5sum] = "c6ee5c766016d59908c8fb672fbbd445"
+SRC_URI[sha256sum] = "9ef24393de08390f236cabccd6a420b5cea304e959cbf1a99ff317325db3ddfa"
inherit systemd waf-samba cpan-base perlnative update-rc.d
# remove default added RDEPENDS on perl
@@ -185,7 +186,8 @@ python samba_populate_packages() {
PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
-RDEPENDS_${PN} += "${PN}-base"
+RDEPENDS_${PN} += "${PN}-base ${PN}-python ${PN}-dsdb-modules"
+RDEPENDS_${PN}-python += "pytalloc python-tdb"
FILES_${PN}-base = "${sbindir}/nmbd \
${sbindir}/smbd \
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/fix-host-contamination-when-enable-static-daq.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/fix-host-contamination-when-enable-static-daq.patch
new file mode 100644
index 000000000..2becc0624
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/fix-host-contamination-when-enable-static-daq.patch
@@ -0,0 +1,21 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+When enable static daq for snort, it calls to daq-modules-config to get link
+library and library path. Library path is useless for oe and cause host
+contamination issue. So filter it.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/configure.in b/configure.in
+index fded45b..a247bb9 100644
+--- a/configure.in
++++ b/configure.in
+@@ -658,7 +658,7 @@ fi
+
+ if test "x$enable_static_daq" = "xyes"; then
+ LDAQ=""
+- LIBS="${LIBS} `daq-modules-config --static --libs`"
++ LIBS="${LIBS} `daq-modules-config --static --libs | sed 's#-L[^ ]*##g'`"
+ AC_CHECK_LIB([daq_static], [daq_load_modules],
+ [LIBS="-ldaq_static ${LIBS}"], [LDAQ="no"], [ ])
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb
index dfd6ba971..2034b85fb 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb
@@ -4,7 +4,7 @@ SECTION = "net"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
-DEPENDS = "xz libpcap libpcre daq libdnet util-linux"
+DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native"
DEPENDS_append_libc-musl = " libtirpc"
SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \
@@ -15,6 +15,7 @@ SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \
file://disable-daq-verdict-retry.patch \
file://0001-libpcap-search-sysroot-for-headers.patch \
file://0001-fix-do_package-failed-since-snort-2.9.7.0.patch \
+ file://fix-host-contamination-when-enable-static-daq.patch \
"
SRC_URI[tarball.md5sum] = "fd271788c0f8876be87a858a9142f202"
@@ -31,7 +32,7 @@ EXTRA_OECONF = " \
--enable-reload \
--enable-reload-error-restart \
--enable-targetbased \
- --disable-static-daq \
+ --enable-static-daq \
--with-dnet-includes=${STAGING_INCDIR} \
--with-dnet-libraries=${STAGING_LIBDIR} \
--with-libpcre-includes=${STAGING_INCDIR} \
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
index 3f688b360..bd55efce2 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
@@ -1,4 +1,5 @@
SUMMARY = "VLAN provides vconfig utility"
+HOMEPAGE = "http://www.candelatech.com/~greear/vlan.html"
SECTION = "misc"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://vconfig.c;beginline=1;endline=19;md5=094ca47de36c20c598b15b32c270ce0a"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch
new file mode 100644
index 000000000..2bed55041
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch
@@ -0,0 +1,42 @@
+From 39925f090c21ab571ebc6ec250696f7f7093a2a6 Mon Sep 17 00:00:00 2001
+From: Will Page <Will.Page@ni.com>
+Date: Wed, 30 Aug 2017 18:14:00 -0700
+Subject: [PATCH 1/1] Reduce lifetime value to widely-compatible value
+
+Current proposed lifetime value (2147483 seconds, which equates to
+MAXINT ms, or ~25 days) is rejected by Fortigate vpn devices because
+"peer SA proposal does not match local policy". It seems default
+policy for these devices constrains lifetime where similar VPN devices
+don't.
+
+Reducing the lifetime from its current value to 28800 (exactly 8 hours)
+causes it to start working with fortigate devices.
+---
+ vpnc.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/vpnc.c b/vpnc.c
+index 36dd0f3..3e0fcba 100644
+--- a/vpnc.c
++++ b/vpnc.c
+@@ -1135,7 +1135,7 @@ static struct isakmp_attribute *make_transform_ike(int dh_group, int crypt, int
+ a->af = isakmp_attr_lots;
+ a->u.lots.length = 4;
+ a->u.lots.data = xallocc(a->u.lots.length);
+- *((uint32_t *) a->u.lots.data) = htonl(2147483);
++ *((uint32_t *) a->u.lots.data) = htonl(28800);
+ a = new_isakmp_attribute_16(IKE_ATTRIB_LIFE_TYPE, IKE_LIFE_TYPE_SECONDS, a);
+ a = new_isakmp_attribute_16(IKE_ATTRIB_AUTH_METHOD, auth, a);
+ a = new_isakmp_attribute_16(IKE_ATTRIB_GROUP_DESC, dh_group, a);
+@@ -2561,7 +2561,7 @@ static struct isakmp_attribute *make_transform_ipsec(struct sa_block *s, int dh_
+ a->af = isakmp_attr_lots;
+ a->u.lots.length = 4;
+ a->u.lots.data = xallocc(a->u.lots.length);
+- *((uint32_t *) a->u.lots.data) = htonl(2147483);
++ *((uint32_t *) a->u.lots.data) = htonl(28800);
+ a = new_isakmp_attribute_16(ISAKMP_IPSEC_ATTRIB_SA_LIFE_TYPE, IPSEC_LIFE_SECONDS, a);
+
+ if (dh_group)
+--
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
index 6f92acd06..ea2179985 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
@@ -20,6 +20,7 @@ SRC_URI = "git://github.com/ndpgroup/vpnc \
file://0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch \
file://0007-add-error-API-when-error.h-is-not-on-platform.patch \
file://0008-include-sysdep.h-before-net-if_tun.h.patch \
+ file://0009-reduce-lifetime-value.patch \
"
PACKAGECONFIG ?= "gnutls"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch
new file mode 100644
index 000000000..f304d933d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch
@@ -0,0 +1,27 @@
+From fb490136cf8f2456cfe13b0b4f796e6c155e75dc Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Wed, 30 Aug 2017 03:02:32 -0400
+Subject: [PATCH] fix no rule to make cyassl/options.h
+
+Upstream-Status: Pending
+
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 395d75d..d4a3880 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3684,6 +3684,7 @@ AC_CONFIG_FILES([wolfssl/options.h])
+ #fi
+ AC_CONFIG_FILES([support/wolfssl.pc])
+ AC_CONFIG_FILES([rpm/spec])
++AC_CONFIG_FILES([cyassl/options.h])
+
+ AX_CREATE_GENERIC_CONFIG
+ AX_AM_JOBSERVER([yes])
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb
index afae3c863..512619098 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb
@@ -12,10 +12,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
PROVIDES += "cyassl"
RPROVIDES_${PN} = "cyassl"
-SRC_URI = "http://www.wolfssl.com/${BP}.zip"
+SRC_URI = "https://github.com/wolfSSL/wolfssl/archive/v${PV}-stable.zip \
+ file://0001-fix-no-rule-to-make-cyassl-options.h.patch \
+ "
-SRC_URI[md5sum] = "f3396726a9befd61443c2cce216e39ba"
-SRC_URI[sha256sum] = "98f50244f7b43f8683bd0cf5c599849d330e75e6cf077e96f14e83bda8b03ca3"
+SRC_URI[md5sum] = "f9caf558169ab650dc8200708799ebeb"
+SRC_URI[sha256sum] = "b6d87d3e2c8757177d69aff373c91cf162f4a3944fae90fa10d086fd5f9542e7"
+
+S = "${WORKDIR}/wolfssl-${PV}-stable"
inherit autotools
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch
new file mode 100644
index 000000000..7ac145674
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch
@@ -0,0 +1,29 @@
+From e4ee00e08acd7c0912a3264ad32e4de861c7416f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 7 Sep 2017 22:22:31 -0700
+Subject: [PATCH] modules/lookup_multi.c: Replace __S_IEXEC with S_IEXEC
+
+__S_IEXEC is internal to libc and may not be available on
+all libc e.g. musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/lookup_multi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/lookup_multi.c b/modules/lookup_multi.c
+index 3ecda6d..cf109de 100644
+--- a/modules/lookup_multi.c
++++ b/modules/lookup_multi.c
+@@ -452,7 +452,7 @@ int lookup_reinit(const char *my_mapfmt,
+ continue;
+ }
+
+- if (st.st_mode & __S_IEXEC)
++ if (st.st_mode & S_IEXEC)
+ type = src_prog;
+ else
+ type = src_file;
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb
index eea7c4b83..68c64fdb0 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb
@@ -3,7 +3,7 @@ SECTION = "utils"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl"
+DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2"
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
@@ -26,6 +26,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \
file://autofs-5.1.2-libtirpc-as-need.patch \
file://pkgconfig-libnsl.patch \
+ file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \
"
SRC_URI[md5sum] = "28cf88f99eff553a8500659ba5d45a76"
SRC_URI[sha256sum] = "0d57e4138c2ec8058ca92164d035546f68ce4af93acb893369993d67c7056a10"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb
index 61b7ad47d..eaa453d91 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb
@@ -1,5 +1,6 @@
SUMMARY = "Generic client/server library for SASL authentication"
SECTION = "libs"
+HOMEPAGE = "http://asg.web.cmu.edu/sasl/"
DEPENDS = "openssl virtual/db"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb
deleted file mode 100644
index 2da29d9cb..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "A caching, forwarding DNS proxy server"
-DESCRIPTION = "\
-dnrd is a proxying nameserver. It forwards DNS queries to the appropriate \
-nameserver, but can also act as the primary nameserver for a subnet behind \
-a firewall. It also has features such as caching DNS requests, support for \
-DNS servers, cache poisoning prevention, TCP support, etc.."
-HOMEPAGE = "http://dnrd.sourceforge.net/"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0be67017f1c770313ad7b40e18d568f1"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
- file://dnrd.service \
- file://dnrd.conf.sample \
- file://dnrd.init"
-SRC_URI[md5sum] = "41c9b070aae8ed403fc8c2aac7ab157c"
-SRC_URI[sha256sum] = "aa46e7f8736b88c1d752cf606b3990041221ce91d014e955c6b02eb2167db015"
-
-PNBLACKLIST[dnrd] ?= "BROKEN: dnrd-2.20.3-r0 do_package: QA Issue: dnrd: Files/directories were installed but not shipped in any package: - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SYSTEMD_SERVICE_${PN} = "dnrd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-inherit autotools
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
-
-do_install() {
- oe_runmake install DESTDIR=${D} INSTALL="install -p"
-
- sed -i -e 's:/etc/rc.d/init.d/functions:/etc/init.d/functions:g' \
- ${WORKDIR}/dnrd.init
- install -d -m 0755 ${D}${sysconfdir}/init.d
- install -d -m 0755 ${D}${sysconfdir}/dnrd
- install -p -m 0644 ${WORKDIR}/dnrd.conf.sample ${D}${sysconfdir}/dnrd/dnrd.conf
- install -p -m 0755 ${WORKDIR}/dnrd.init ${D}${sysconfdir}/init.d/dnrd
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d -m 0755 ${D}${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/dnrd.service ${D}${systemd_unitdir}/system
- fi
-}
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch
new file mode 100644
index 000000000..82cdc36ac
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch
@@ -0,0 +1,25 @@
+From a557651a08e21e3c7c7f5eca9f5405f86624903f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jul 2017 22:42:51 -0700
+Subject: [PATCH] src/igmpproxy.h: Include sys/types.h for u_short/u_init
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/igmpproxy.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/igmpproxy.h b/src/igmpproxy.h
+index 4dabd1c..4454729 100644
+--- a/src/igmpproxy.h
++++ b/src/igmpproxy.h
+@@ -46,6 +46,7 @@
+ #include <stdbool.h>
+
+ #include <sys/socket.h>
++#include <sys/types.h>
+ #include <sys/un.h>
+ #include <sys/time.h>
+ #include <sys/ioctl.h>
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb
index c3d2f1afa..5424dc455 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb
@@ -5,9 +5,12 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=1e995e2799bb0d27d63069b97f805420"
SRC_URI = "http://sourceforge.net/projects/igmpproxy/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
- "
+ file://0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch \
+ "
SRC_URI[md5sum] = "c56f41ec195bc1fe016369bf74efc5a1"
SRC_URI[sha256sum] = "ee18ff3d8c3ae3a29dccb7e5eedf332337330020168bd95a11cece8d7d7ee6ae"
inherit autotools pkgconfig
+
+CFLAGS += "-D_GNU_SOURCE"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch
new file mode 100644
index 000000000..e96762125
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch
@@ -0,0 +1,56 @@
+From 4848b9e4d516a9203c08432901a7b40419e8f43c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 19 Jul 2017 15:54:35 -0700
+Subject: [PATCH 1/3] Respect flags from env
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 4 ++--
+ cli/Makefile | 2 +-
+ pppd/Makefile | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a05a000..439a978 100644
+--- a/Makefile
++++ b/Makefile
+@@ -81,8 +81,8 @@ LIBS.dmalloc= -ldmalloc
+ export USE_DMALLOC
+ endif
+
+-CPPFLAGS= $(CPPFLAGS.ippooltest)
+-CFLAGS= -I. -Iusl -Icli -MMD -Wall -g $(CPPFLAGS) $(CPPFLAGS.dmalloc)
++CPPFLAGS+= $(CPPFLAGS.ippooltest)
++CFLAGS+= -I. -Iusl -Icli -MMD -Wall -g $(CPPFLAGS) $(CPPFLAGS.dmalloc)
+ LDFLAGS.ippoold= $(LDFLAGS) -Wl,-E -L. -Lusl -lusl -lnsl -ldl $(LIBS.dmalloc) -lc
+ LDFLAGS.ippoolconfig= $(LDFLAGS) -Lcli -lcli -lreadline -lcurses -lnsl $(LIBS.dmalloc) -lc
+
+diff --git a/cli/Makefile b/cli/Makefile
+index 4b5dd59..56fbf2f 100644
+--- a/cli/Makefile
++++ b/cli/Makefile
+@@ -7,7 +7,7 @@ CLI_SRCS_TEST.o= $(CLI_SRCS_TEST.c:%.c=%.o)
+
+ LDFLAGS.cli_test= -L.. -L. $(READLINE_LDFLAGS) -lcli -lusl -lreadline -lcurses -lc
+
+-CFLAGS= $(CFLAGS.optimize) -MMD -Wall -Werror -I.. $(READLINE_CFLAGS)
++CFLAGS= $(CFLAGS.optimize) -MMD -Wall -Werror -I.. $(READLINE_CFLAGS) $(CPPFLAGS)
+
+ .PHONY: all test clean
+
+diff --git a/pppd/Makefile b/pppd/Makefile
+index 106deca..7fd815f 100644
+--- a/pppd/Makefile
++++ b/pppd/Makefile
+@@ -10,7 +10,7 @@ endif
+
+ # END CONFIGURABLE SETTINGS
+
+-CFLAGS += -g -I.. -I/usr/include/pppd $(CFLAGS.pppd) -fPIC
++CFLAGS += -g -I.. -I=/usr/include/pppd $(CFLAGS.pppd) -fPIC
+ LDFLAGS += -shared
+
+ all: ippool.so
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch
new file mode 100644
index 000000000..7d3f9acb6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch
@@ -0,0 +1,31 @@
+From e4e0aae139b6489dc582fd14e54e562126482ce2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 26 Aug 2017 07:23:53 -0700
+Subject: [PATCH 1/3] read() returns ssize_t
+
+Fixes
+usl_fd.c:284:10: error: comparison of unsigned expression < 0 is always false [-Werror,-Wtautological-compare]
+ if (nb < 0) {
+ ~~ ^ ~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ usl/usl_fd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/usl/usl_fd.c b/usl/usl_fd.c
+index 3b7a813..04ba48c 100644
+--- a/usl/usl_fd.c
++++ b/usl/usl_fd.c
+@@ -280,7 +280,7 @@ size_t usl_fd_read(int fd, void *buf, size_t count)
+ char *ptr = buf;
+
+ for (chars_read = 0; chars_read < count; ) {
+- size_t nb = read(fd, ptr, count - chars_read);
++ ssize_t nb = read(fd, ptr, count - chars_read);
+ if (nb < 0) {
+ if (errno == EINTR)
+ continue;
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch
new file mode 100644
index 000000000..6fb7cc5c4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch
@@ -0,0 +1,28 @@
+From 5d7f20c045b3c74dad2c53d65e30bd4840250082 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 27 Jun 2017 15:17:19 -0700
+Subject: [PATCH] usl_timer: Check for return value of write() API
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ usl/usl_timer.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/usl/usl_timer.c b/usl/usl_timer.c
+index fda752b..d8414a6 100644
+--- a/usl/usl_timer.c
++++ b/usl/usl_timer.c
+@@ -94,7 +94,9 @@ void usl_timer_tick(void)
+
+ if (!usl_tick_pending) {
+ usl_tick_pending = 1;
+- write(usl_tick_pipe[1], &msg, sizeof(msg));
++ if (write(usl_tick_pipe[1], &msg, sizeof(msg)) != sizeof(msg)) {
++ fprintf(stderr, "write to fd %i failed: %s\n", usl_tick_pipe[1], strerror(errno));
++ }
+ }
+ }
+
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch
new file mode 100644
index 000000000..6e2bd523d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch
@@ -0,0 +1,31 @@
+From cf25576428903168cd41b183fb1ca9c2b7e2666e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 26 Aug 2017 07:28:10 -0700
+Subject: [PATCH 2/3] Mark first element of a string as null
+
+Fixes
+cli_lib.c:427:20: error: expression which evaluates to zero treated as a null pointer constant of type 'char *' [-Werror,-Wnon-literal-null-conversion]
+ values[arg] = '\0';
+ ^~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cli/cli_lib.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cli/cli_lib.c b/cli/cli_lib.c
+index 41a0b06..e4d2fd5 100644
+--- a/cli/cli_lib.c
++++ b/cli/cli_lib.c
+@@ -424,7 +424,7 @@ int cli_find_args(int argc, char *argv[], struct cli_node *cmd, struct cli_node
+ if (arg_string[1] == '\0') {
+ /* no arg value - only allowed for string args */
+ if (node->arg->parser == cli_arg_parse_string) {
+- values[arg] = '\0';
++ *values[arg] = '\0';
+ } else {
+ result = -EINVAL;
+ break;
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch
new file mode 100644
index 000000000..d80f7b436
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch
@@ -0,0 +1,30 @@
+From 47aef26198431f7ad568c2277dded158bda3e36f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 19 Jul 2017 16:00:35 -0700
+Subject: [PATCH 2/3] link with libtirpc
+
+musl needs it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 439a978..ea821eb 100644
+--- a/Makefile
++++ b/Makefile
+@@ -83,8 +83,8 @@ endif
+
+ CPPFLAGS+= $(CPPFLAGS.ippooltest)
+ CFLAGS+= -I. -Iusl -Icli -MMD -Wall -g $(CPPFLAGS) $(CPPFLAGS.dmalloc)
+-LDFLAGS.ippoold= $(LDFLAGS) -Wl,-E -L. -Lusl -lusl -lnsl -ldl $(LIBS.dmalloc) -lc
+-LDFLAGS.ippoolconfig= $(LDFLAGS) -Lcli -lcli -lreadline -lcurses -lnsl $(LIBS.dmalloc) -lc
++LDFLAGS.ippoold= $(LDFLAGS) -Wl,-E -L. -Lusl -lusl -ldl $(LIBS.dmalloc) -lc -ltirpc
++LDFLAGS.ippoolconfig= $(LDFLAGS) -Lcli -lcli -lreadline -lcurses $(LIBS.dmalloc) -lc -ltirpc
+
+ OPT_CFLAGS?= -O
+
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch
new file mode 100644
index 000000000..3854b1133
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch
@@ -0,0 +1,58 @@
+From 994d9575374d3cdb34b1b0f70c3c53ae76fe578e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 26 Aug 2017 07:41:05 -0700
+Subject: [PATCH 3/3] cli: Mark return of strtol as long int
+
+strtol does not return unsigned long
+
+error: taking the absolute value of unsigned type 'unsigned long' has no effect [-Werror,-Wabsolute-value]
+ if ((*endp == '\0') && (labs(tmp) < 32768)) {
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cli/cli_lib.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/cli/cli_lib.c b/cli/cli_lib.c
+index e4d2fd5..5f487dc 100644
+--- a/cli/cli_lib.c
++++ b/cli/cli_lib.c
+@@ -522,7 +522,7 @@ int cli_arg_parse_int32(struct cli_node *arg, const char *val, void *result)
+ int cli_arg_parse_int16(struct cli_node *arg, const char *val, void *result)
+ {
+ int16_t *intval = result;
+- unsigned long tmp;
++ long tmp;
+ char *endp;
+ int ret = 0;
+
+@@ -539,7 +539,7 @@ int cli_arg_parse_int16(struct cli_node *arg, const char *val, void *result)
+ int cli_arg_parse_int8(struct cli_node *arg, const char *val, void *result)
+ {
+ int8_t *intval = result;
+- unsigned long tmp;
++ long tmp;
+ char *endp;
+ int ret = 0;
+
+@@ -573,7 +573,7 @@ int cli_arg_parse_uint32(struct cli_node *arg, const char *val, void *result)
+ int cli_arg_parse_uint16(struct cli_node *arg, const char *val, void *result)
+ {
+ uint16_t *intval = result;
+- unsigned long tmp;
++ long tmp;
+ char *endp;
+ int ret = 0;
+
+@@ -590,7 +590,7 @@ int cli_arg_parse_uint16(struct cli_node *arg, const char *val, void *result)
+ int cli_arg_parse_uint8(struct cli_node *arg, const char *val, void *result)
+ {
+ uint8_t *intval = result;
+- unsigned long tmp;
++ long tmp;
+ char *endp;
+ int ret = 0;
+
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch
new file mode 100644
index 000000000..3cd5259fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch
@@ -0,0 +1,283 @@
+From eb345047decba665e3f39908336a83f039e1ece2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 19 Jul 2017 16:01:32 -0700
+Subject: [PATCH 3/3] musl fixes
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cli/cli_readline.c | 7 +-
+ ippool_api.c | 9 ++-
+ net/ppp_defs.h | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ usl/usl.h | 4 ++
+ 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
+@@ -17,13 +17,14 @@
+ * Boston, MA 02110-1301 USA
+ *
+ *****************************************************************************/
+-
++#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/file.h>
+ #include <sys/stat.h>
+-#include <sys/errno.h>
++#include <fcntl.h>
++#include <errno.h>
+ #include <signal.h>
+
+ #include <readline/readline.h>
+@@ -630,7 +631,7 @@ static void cli_rl_uninstall_signal_handlers(void)
+
+ static int cli_rl_install_signal_handlers(void)
+ {
+- __sighandler_t handler;
++ sighandler_t handler;
+
+ 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)
+ * non-loopback interface, reject the request.
+ */
+ if ((!ippool_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)))) {
++ char straddr[INET6_ADDRSTRLEN];
++ inet_ntop(AF_INET6, &xprt->xp_raddr.sin6_addr, straddr, sizeof(straddr));
++
+ if (ippool_opt_debug) {
+- ippool_log(LOG_ERR, "Rejecting RPC request from %s", inet_ntoa(xprt->xp_raddr.sin_addr));
++ ippool_log(LOG_ERR, "Rejecting RPC request from %s", straddr);
+ }
+ 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
+@@ -38,6 +38,10 @@
+ #include "usl_fsm.h"
+ #include "usl_list.h"
+
++#ifndef WAIT_ANY
++#define WAIT_ANY (-1)
++#endif
++
+ #define USL_VERSION "0.6"
+
+ #ifdef DEBUG
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/always_syslog.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/always_syslog.patch
new file mode 100644
index 000000000..e475276c0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/always_syslog.patch
@@ -0,0 +1,22 @@
+ippool: always log to syslog
+
+Even when running in the foreground, send log messages to syslog.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Joe Slater <jslater@windriver.com>
+
+
+--- a/ippool_main.c
++++ b/ippool_main.c
+@@ -251,9 +251,8 @@ void ippool_vlog(int level, const char *
+ if (ippool_opt_nodaemon) {
+ vprintf(fmt, ap);
+ printf("\n");
+- } else {
+- vsyslog(level, fmt, ap);
+ }
++ vsyslog(level, fmt, ap);
+ DMALLOC_VMESSAGE(fmt, ap);
+ }
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool.service
new file mode 100644
index 000000000..e5917fc14
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=ip address pool allocator
+Requires=rpcbind.service
+After=rpcbind.service
+
+[Service]
+Type=simple
+# Start ippoold in the foreground!
+ExecStart=@SBINDIR@/ippoold -f
+# Normal output will go to syslog, so suppress stdout.
+StandardOutput=null
+StandardError=syslog
+# ExecStop is not needed. systemd will send SIGTERM
+# and ippoold will exit status 1.
+SuccessExitStatus=1
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_init.d.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_init.d.patch
new file mode 100644
index 000000000..14a768d0f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_init.d.patch
@@ -0,0 +1,65 @@
+Fix start error if lsb init-functions doesn't exist
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/debian/init.d b/debian/init.d
+index 363ba89..0327fec 100644
+--- a/debian/init.d
++++ b/debian/init.d
+@@ -10,6 +10,9 @@
+ # Description: Start ippool daemon
+ ### END INIT INFO
+
++# Source function library.
++. /etc/init.d/functions
++
+ DAEMON=/usr/sbin/ippoold
+ NAME=ippoold
+ MODULE=pppol2tp
+@@ -18,7 +21,23 @@ MODULE=pppol2tp
+ test -x $DAEMON || exit 0
+
+ # Get lsb functions
+-. /lib/lsb/init-functions
++if [ -f /lib/lsb/init-functions ]
++then
++ . /lib/lsb/init-functions
++else
++ log_begin_msg() {
++ echo -n $*
++ }
++
++ log_end_msg() {
++ if [ $1 -eq 0 ]; then
++ echo "done"
++ else
++ echo "failed"
++ fi
++ }
++fi
++
+ . /etc/default/rcS
+
+ case "$1" in
+@@ -35,6 +54,10 @@ case "$1" in
+ fi
+ log_end_msg $?
+ ;;
++ status)
++ status /usr/sbin/ippoold;
++ exit $?
++ ;;
+ restart)
+ $0 stop
+ sleep 1
+@@ -46,7 +69,7 @@ case "$1" in
+ log_end_msg $?
+ ;;
+ *)
+- log_success_msg "Usage: /etc/init.d/ippoold {start|stop|restart|reload|force-reload}"
++ log_success_msg "Usage: /etc/init.d/ippoold {start|stop|status|restart|reload|force-reload}"
+ exit 1
+ esac
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_parallel_make_and_pic.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_parallel_make_and_pic.patch
new file mode 100644
index 000000000..1ebd95ea1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_parallel_make_and_pic.patch
@@ -0,0 +1,89 @@
+1)add -fPIC for $(IPPOOL_RPC_STEM)_xdr.o, $(IPPOOL_RPC_STEM)_client.o
+2)add sub target for subdirs-all, and those dependencies below
+ pppd plugin directory build depends on $(IPPOOL_RPC_STEM)_xdr.o
+$(IPPOOL_RPC_STEM)_client.o ippool_rpc.h
+
+ ippoold depends on libusl
+ ippoolconfig depends on libcli
+
+ $(IPPOOL_RPC_STEM)_xdr.o, $(IPPOOL_RPC_STEM)_client.o
+$(IPPOOL_RPC_STEM)_server.o *.o in main directory depends on ippool_rpc.h
+as those all directly or indirectly include ippool_rpc.h which is
+dynamically generated by rpcgen
+
+to make parallel make working.
+3)include dependency files for pppd.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+diff --git a/Makefile b/Makefile
+index 73aa72f..4f7af1d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -106,14 +106,14 @@ all: generated-files $(IPPOOL_RPC_STEM)_xdr.o $(IPPOOL_RPC_STEM)_client.o \
+ subdirs-all $(PROGS.sbin) $(PROGS.bin)
+
+ # Compile without -Wall because rpcgen-generated code is full of warnings
+-$(IPPOOL_RPC_STEM)_xdr.o: $(IPPOOL_RPC_STEM)_xdr.c
+- $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $<
++$(IPPOOL_RPC_STEM)_xdr.o: $(IPPOOL_RPC_STEM)_xdr.c $(IPPOOL_RPC_STEM).h
++ $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC
+
+-$(IPPOOL_RPC_STEM)_client.o: $(IPPOOL_RPC_STEM)_client.c
+- $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $<
++$(IPPOOL_RPC_STEM)_client.o: $(IPPOOL_RPC_STEM)_client.c $(IPPOOL_RPC_STEM).h
++ $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC
+
+-$(IPPOOL_RPC_STEM)_server.o: $(IPPOOL_RPC_STEM)_server.c
+- $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $<
++$(IPPOOL_RPC_STEM)_server.o: $(IPPOOL_RPC_STEM)_server.c $(IPPOOL_RPC_STEM).h
++ $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC
+
+ $(IPPOOL_RPC_STEM)_xdr.c: $(IPPOOL_RPC_STEM).x
+ -$(RM) $@
+@@ -136,8 +136,12 @@ $(IPPOOL_RPC_STEM).h: $(IPPOOL_RPC_STEM).x
+
+ generated-files: $(RPC_FILES)
+
+-subdirs-all:
+- @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS)" all; if [ $$? -ne 0 ]; then exit 1; fi; done
++subdirs-all: $(patsubst %,%-dir, $(SUBDIRS))
++
++pppd-dir: $(IPPOOL_RPC_STEM)_xdr.o $(IPPOOL_RPC_STEM)_client.o $(IPPOOL_RPC_STEM).h
++
++$(patsubst %,%-dir,$(SUBDIRS)):
++ @for d in $(patsubst %-dir,%,$@); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS)" all; if [ $$? -ne 0 ]; then exit 1; fi; done
+
+ clean:
+ @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) $@; if [ $$? -ne 0 ]; then exit 1; fi; done
+@@ -151,13 +155,13 @@ TAGS:
+ @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) $@; done
+ etags -t $(wildcard *.c) $(wildcard *.h)
+
+-ippoold: $(IPPOOLD_SRCS.o)
+- $(CC) -o $@ $^ $(LDFLAGS.ippoold)
++ippoold: $(IPPOOLD_SRCS.o) usl-dir
++ $(CC) -o $@ $(IPPOOLD_SRCS.o) $(LDFLAGS.ippoold)
+
+-ippoolconfig: $(IPPOOLCONFIG_SRCS.o)
+- $(CC) -o $@ $^ $(LDFLAGS.ippoolconfig)
++ippoolconfig: $(IPPOOLCONFIG_SRCS.o) cli-dir
++ $(CC) -o $@ $(IPPOOLCONFIG_SRCS.o) $(LDFLAGS.ippoolconfig)
+
+-%.o: %.c
++%.o: %.c $(IPPOOL_RPC_STEM).h
+ $(CC) -c $(CFLAGS) $< -o $@
+
+ install: all
+diff --git a/pppd/Makefile b/pppd/Makefile
+index 78d9b33..106deca 100644
+--- a/pppd/Makefile
++++ b/pppd/Makefile
+@@ -24,3 +24,5 @@ install: ippool.so
+
+ clean:
+ -rm -rf *.o *.so
++
++include $(wildcard *.d /dev/null)
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_usl_timer.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_usl_timer.patch
new file mode 100644
index 000000000..ca0e3320c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/ippool_usl_timer.patch
@@ -0,0 +1,49 @@
+include limits.h to avoid UINT_MAX undefined compiling error.
+remove the unused assign which caused compiling error with -Werror.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+
+diff --git a/usl/usl_timer.c b/usl/usl_timer.c
+index 734b820..fda752b 100644
+--- a/usl/usl_timer.c
++++ b/usl/usl_timer.c
+@@ -42,6 +42,7 @@
+ #include <signal.h>
+ #include <string.h>
+ #include <sys/time.h>
++#include <limits.h>
+
+ #include "usl.h"
+
+@@ -87,14 +88,13 @@ void (*usl_timer_tick_hook)(void);
+ */
+ void usl_timer_tick(void)
+ {
+- int result;
+ char msg = '\0';
+
+ usl_tick++;
+
+ if (!usl_tick_pending) {
+ usl_tick_pending = 1;
+- result = write(usl_tick_pipe[1], &msg, sizeof(msg));
++ write(usl_tick_pipe[1], &msg, sizeof(msg));
+ }
+ }
+
+@@ -111,11 +111,10 @@ static void usl_timer_tick_handler(int fd, void *arg)
+ struct usl_ord_list_head *tmp;
+ struct usl_list_head *iwalk;
+ struct usl_list_head *itmp;
+- int result;
+ char msg;
+ USL_LIST_HEAD(expire_list);
+
+- result = usl_fd_read(usl_tick_pipe[0], &msg, sizeof(msg));
++ usl_fd_read(usl_tick_pipe[0], &msg, sizeof(msg));
+ usl_tick_pending = 0;
+
+ usl_list_for_each(walk, tmp, &usl_timer_list) {
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/makefile-add-ldflags.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/makefile-add-ldflags.patch
new file mode 100644
index 000000000..7d5b715ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/makefile-add-ldflags.patch
@@ -0,0 +1,21 @@
+Add LDFLAGS variable to Makefile so that extra linker flags can be sent via this variable.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/Makefile b/Makefile
+index 4f7af1d..a05a000 100644
+--- a/Makefile
++++ b/Makefile
+@@ -83,8 +83,8 @@ endif
+
+ CPPFLAGS= $(CPPFLAGS.ippooltest)
+ CFLAGS= -I. -Iusl -Icli -MMD -Wall -g $(CPPFLAGS) $(CPPFLAGS.dmalloc)
+-LDFLAGS.ippoold= -Wl,-E -L. -Lusl -lusl -lnsl -ldl $(LIBS.dmalloc) -lc
+-LDFLAGS.ippoolconfig= -Lcli -lcli -lreadline -lcurses -lnsl $(LIBS.dmalloc) -lc
++LDFLAGS.ippoold= $(LDFLAGS) -Wl,-E -L. -Lusl -lusl -lnsl -ldl $(LIBS.dmalloc) -lc
++LDFLAGS.ippoolconfig= $(LDFLAGS) -Lcli -lcli -lreadline -lcurses -lnsl $(LIBS.dmalloc) -lc
+
+ OPT_CFLAGS?= -O
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/runtest.sh b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/runtest.sh
new file mode 100644
index 000000000..f91f58237
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool/runtest.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+BANNER="----------------------------------------------------------------------------"
+TCLSH="tclsh all.tcl -preservecore 3 -verbose bps -tmpdir ./results -outfile test-ippool.result"
+
+test_setup() {
+ if [ -d ./results ]; then rm -fr ./results; fi
+ mkdir ./results
+}
+
+test_ippool() {
+ echo "${BANNER}"
+ eval $TCLSH -constraints "ipPool"
+}
+test_postprocess() {
+ echo "${BANNER}"
+ (failed=`grep FAILED results/*.result | wc -l`; \
+ let failed2=failed/2 ;\
+ passed=`grep PASSED results/*.result | wc -l`; \
+ echo "TEST SUMMARY: $passed tests PASSED, $failed2 tests FAILED" ;\
+ exit $failed2)
+}
+
+test_setup
+test_ippool
+test_postprocess
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
new file mode 100644
index 000000000..6e4748357
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
@@ -0,0 +1,113 @@
+SUMMARY = "An IP address pool manager"
+DESCRIPTION = "IpPool is implemented as a separate server daemon \
+to allow any application to use its address pools. This makes it possible \
+to define address pools that are shared by PPP, L2TP, PPTP etc. It may be \
+useful in some VPN server setups. IpPool comes with a command line \
+management application, ippoolconfig to manage and query address pool \
+status. A pppd plugin is supplied which allows pppd to request IP \
+addresses from ippoold. \
+"
+HOMEPAGE = "http://www.openl2tp.org/"
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+
+SRC_URI = "https://sourceforge.net/projects/openl2tp/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
+ file://runtest.sh \
+ file://ippool.service \
+ file://ippool_usl_timer.patch \
+ file://ippool_parallel_make_and_pic.patch \
+ file://ippool_init.d.patch \
+ file://always_syslog.patch \
+ file://makefile-add-ldflags.patch \
+ file://0001-usl_timer-Check-for-return-value-of-write-API.patch \
+ file://0001-Respect-flags-from-env.patch \
+ 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 \
+ "
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4c59283b82fc2b166455e0fc23c71c6f"
+SRC_URI[md5sum] = "e2401e65db26a3764585b97212888fae"
+SRC_URI[sha256sum] = "d3eab7d6cad5da8ccc9d1e31d5303e27a39622c07bdb8fa3618eea314412075b"
+
+inherit systemd
+
+DEPENDS = "readline ppp ncurses gzip-native"
+DEPENDS_append_libc-musl = " libtirpc"
+RDEPENDS_${PN} = "rpcbind"
+
+EXTRA_OEMAKE = "CC='${CC}' AS='${AS}' LD='${LD}' AR='${AR}' NM='${NM}' STRIP='${STRIP}'"
+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"
+
+SYSTEMD_SERVICE_${PN} = "ippool.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+
+do_compile_prepend() {
+ # fix the CFLAGS= and CPPFLAGS= in main Makefile, to have the extra CFLAGS in env
+ sed -i -e "s/^CFLAGS=/CFLAGS+=/" ${S}/Makefile
+ sed -i -e "s/^CPPFLAGS=/CPPFLAGS+=/" ${S}/Makefile
+
+ sed -i -e "s:-I/usr/include/pppd:-I=/usr/include/pppd:" ${S}/pppd/Makefile
+
+}
+
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+
+ install -D -m 0755 ${S}/debian/init.d ${D}${sysconfdir}/init.d/ippoold
+ install -D -m 0644 ${WORKDIR}/ippool.service ${D}${systemd_system_unitdir}/ippool.service
+ sed -i -e 's:@SBINDIR@:${sbindir}:g' ${D}${systemd_system_unitdir}/ippool.service
+
+ # install self test
+ install -d ${D}/opt/${BPN}
+ install ${S}/test/all.tcl ${S}/test/ippool.test \
+ ${S}/test/test_procs.tcl ${D}/opt/${BPN}
+ install ${WORKDIR}/runtest.sh ${D}/opt/${BPN}
+ # fix the ../ippoolconfig in test_procs.tcl
+ sed -i -e "s:../ippoolconfig:ippoolconfig:" \
+ ${D}/opt/${BPN}/test_procs.tcl
+}
+
+
+PACKAGES =+ "${PN}-test"
+
+FILES_${PN} += "${libdir}/pppd/${PPPD_VERSION}/ippool.so"
+FILES_${PN}-dbg += "${libdir}/pppd/${PPPD_VERSION}/.debug/ippool.so"
+FILES_${PN}-test = "/opt/${BPN}"
+
+# needs tcl to run tests
+RDEPENDS_${PN}-test += "tcl ${BPN}"
+
+PPPD_VERSION="${@get_ppp_version(d)}"
+
+def get_ppp_version(d):
+ import re
+
+ pppd_plugin = d.expand('${STAGING_LIBDIR}/pppd')
+ if not os.path.isdir(pppd_plugin):
+ return None
+
+ bb.debug(1, "pppd plugin dir %s" % pppd_plugin)
+ r = re.compile("\d*\.\d*\.\d*")
+ for f in os.listdir(pppd_plugin):
+ if os.path.isdir(os.path.join(pppd_plugin, f)):
+ ma = r.match(f)
+ if ma:
+ bb.debug(1, "pppd version dir %s" % f)
+ return f
+ else:
+ bb.debug(1, "under pppd plugin dir %s" % f)
+
+ return None
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.3.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.3.5.bb
new file mode 100644
index 000000000..5e7e6e49f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_1.3.5.bb
@@ -0,0 +1,49 @@
+SUMMARY = "High Availability monitor built upon LVS, VRRP and service pollers"
+DESCRIPTION = "Keepalived is a routing software written in C. The main goal \
+of this project is to provide simple and robust facilities for loadbalancing \
+and high-availability to Linux system and Linux based infrastructures. \
+Loadbalancing framework relies on well-known and widely used Linux Virtual \
+Server (IPVS) kernel module providing Layer4 loadbalancing \
+"
+HOMEPAGE = "http://www.keepalived.org/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "9964d295ec9d34ed3408b57d28847b68"
+SRC_URI[sha256sum] = "c0114d86ea4c896557beb0d9367819a423ffba772bc5d7c548dc455e6b3bd048"
+
+DEPENDS = "libnfnetlink openssl"
+
+inherit autotools pkgconfig systemd update-rc.d
+
+PACKAGECONFIG ??= "libnl snmp \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+PACKAGECONFIG[libnl] = "--enable-libnl,--disable-libnl,libnl"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
+PACKAGECONFIG[systemd] = "--with-init=systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--with-init=SYSV,systemd"
+
+EXTRA_OECONF = "--disable-libiptc"
+EXTRA_OEMAKE = "initdir=${sysconfdir}/init.d"
+
+do_install_append() {
+ if [ -f ${D}${sysconfdir}/init.d/${BPN} ]; then
+ chmod 0755 ${D}${sysconfdir}/init.d/${BPN}
+ sed -i 's#rc.d/##' ${D}${sysconfdir}/init.d/${BPN}
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -D -m 0644 ${B}/${BPN}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+ fi
+}
+
+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/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch
new file mode 100644
index 000000000..4876e1794
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch
@@ -0,0 +1,32 @@
+From f9f3e4dd31588cce5f655730da7b5c3f56a9bdc1 Mon Sep 17 00:00:00 2001
+From: Fabio Berton <fabio.berton@ossystems.com.br>
+Date: Tue, 26 Sep 2017 09:19:51 -0300
+Subject: [PATCH] src/daemon/lldpd.service.in: Use fixed path for mkdir command
+Organization: O.S. Systems Software LTDA.
+
+@mkdir_p@ is expanded to host tools path ../build/tmp/hosttools/mkdir that
+doesn't exist on target. Remove @mkdir_p@ and use /bin/mkdir -p to
+create /var/run/lldpd directory.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ src/daemon/lldpd.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/daemon/lldpd.service.in b/src/daemon/lldpd.service.in
+index fdb7338..4291830 100644
+--- a/src/daemon/lldpd.service.in
++++ b/src/daemon/lldpd.service.in
+@@ -9,7 +9,7 @@ Type=notify
+ NotifyAccess=main
+ EnvironmentFile=-/etc/default/lldpd
+ EnvironmentFile=-/etc/sysconfig/lldpd
+-ExecStartPre=@mkdir_p@ @PRIVSEP_CHROOT@
++ExecStartPre=/bin/mkdir -p @PRIVSEP_CHROOT@
+ ExecStart=@sbindir@/lldpd $DAEMON_ARGS $LLDPD_OPTIONS
+ Restart=on-failure
+ PrivateTmp=yes
+--
+2.14.2
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb
index 0cd063720..dbd84cf67 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.6.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb
@@ -9,10 +9,11 @@ SRC_URI = "\
http://media.luffy.cx/files/${BPN}/${BPN}-${PV}.tar.gz \
file://lldpd.init.d \
file://lldpd.default \
+ file://src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch \
"
-SRC_URI[md5sum] = "0dcdee7c1b3c62362d73f6508c11edae"
-SRC_URI[sha256sum] = "e74e2dd7e2a233ca1ff385c925ddae2a916d302819d1433741407d2f8fb0ddd8"
+SRC_URI[md5sum] = "8809600492f6b73149eb19158e819c1f"
+SRC_URI[sha256sum] = "9ee494e91bc33938575b2c09b26188c486ef8eac6e2155d250c189cc4e988c4f"
inherit autotools update-rc.d useradd systemd pkgconfig bash-completion
@@ -29,7 +30,6 @@ EXTRA_OECONF += "--without-embedded-libevent \
"
PACKAGECONFIG ??= "cdp fdp edp sonmp lldpmed dot1 dot3"
-PACKAGECONFIG[json] = "--with-json,--without-json,jansson"
PACKAGECONFIG[xml] = "--with-xml,--without-xml,libxm2"
PACKAGECONFIG[snmp] = "--with-snmp,--without-snmp,net-snmp"
PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch
new file mode 100644
index 000000000..1c8146eda
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch
@@ -0,0 +1,32 @@
+This patch is needed to avoid double definitions of functions
+especially when building with security flags turned on. The double
+definitions causes the sed.sh script in configure to fail since it
+starts to spit out double outputs e.g.
+
+wi_cv_gethostname_size_t size_t size_t
+
+which then caused almost all subsequent compile time tests to fail since
+this gets into confdefs.h file
+
+removing this include causes only one definitions to be emitted into
+the genrated protos.h file and thus avoiding the above failure.
+
+Other solution would to fix sed.sh to ignore double definitions
+
+Upstream-Status: Pending
+
+Signed-of-by: Khem Raj <raj.khem@gmail.com>
+
+
+Index: ncftp-3.2.6/configure
+===================================================================
+--- ncftp-3.2.6.orig/configure
++++ ncftp-3.2.6/configure
+@@ -7859,7 +7859,6 @@ chmod 755 "$wi_tmpdir/prpp.pl"
+ cat << 'EOF' > "$wi_tmpdir/unistd.c"
+ #include <confdefs.h>
+
+-#include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb
index 893eacb99..5f92f27fd 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb
@@ -2,21 +2,29 @@ DESCRIPTION = "A sophisticated console ftp client"
HOMEPAGE = "http://ncftp.com/"
SECTION = "net"
LICENSE = "ClArtistic"
-LIC_FILES_CHKSUM = "file://ncftp/cmds.c;beginline=3;endline=4;md5=9de76faeaedc4f908082e3f8142715f4"
+LIC_FILES_CHKSUM = "file://ncftp/cmds.c;beginline=3;endline=4;md5=9c2390809f71465aa7ff76e03dc14d91"
DEPENDS = "ncurses"
-SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz \
+SRC_URI = "ftp://ftp.ncftp.com/${BPN}/${BP}-src.tar.xz \
file://ncftp-configure-use-BUILD_CC-for-ccdv.patch \
+ file://unistd.patch \
"
-SRC_URI[md5sum] = "685e45f60ac11c89442c572c28af4228"
-SRC_URI[sha256sum] = "ac111b71112382853b2835c42ebe7bd59acb7f85dd00d44b2c19fbd074a436c4"
+SRC_URI[md5sum] = "42d0f896d69a4d603ec097546444245f"
+SRC_URI[sha256sum] = "5f200687c05d0807690d9fb770327b226f02dd86155b49e750853fce4e31098d"
inherit autotools-brokensep pkgconfig
+CFLAGS += "-DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -Wall"
+
PACKAGECONFIG ??= ""
PACKAGECONFIG[ccdv] = "--enable-ccdv,--disable-ccdv,,"
+EXTRA_OECONF = "--disable-precomp"
+TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
+
do_configure() {
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
oe_runconf
}
do_install () {
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch
new file mode 100644
index 000000000..4f493f7b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch
@@ -0,0 +1,49 @@
+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/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch
new file mode 100644
index 000000000..4d56f6535
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch
@@ -0,0 +1,31 @@
+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/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch
new file mode 100644
index 000000000..0f033ac85
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch
@@ -0,0 +1,47 @@
+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/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch
new file mode 100644
index 000000000..0549d5977
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/c++11.patch
@@ -0,0 +1,12 @@
+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
+ AC_PROG_MAKE_SET
++AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
+
+ enabled_non32bit="no"
+ AC_ARG_ENABLE([non32bit-int],
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch
new file mode 100644
index 000000000..9b35a0cce
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch
@@ -0,0 +1,1288 @@
+Index: openhpi-3.6.1/plugins/dynamic_simulator/new_sim.cpp
+===================================================================
+--- openhpi-3.6.1.orig/plugins/dynamic_simulator/new_sim.cpp
++++ openhpi-3.6.1/plugins/dynamic_simulator/new_sim.cpp
+@@ -415,7 +415,7 @@ extern "C" {
+ /**
+ * Alias for @ref öh_open(), implemented by @ref NewSimulatorOpen().
+ **/
+-static void * NewSimulatorOpen( GHashTable *, unsigned int, oh_evt_queue * ) __attribute__((used));
++static void * NewSimulatorOpen( GHashTable *, unsigned int, oh_evt_queue * ) __asm__("NewSimulatorOpen") __attribute__((used));
+
+ /**
+ * @fn NewSimulatorOpen( GHashTable *handler_config, unsigned int hid,
+@@ -530,7 +530,7 @@ static void * NewSimulatorOpen( GHashTab
+ /**
+ * Alias for @ref öh_close(), implemented by @ref NewSimulatorClose().
+ **/
+-static void NewSimulatorClose( void * ) __attribute__((used));
++static void NewSimulatorClose( void * ) __asm__("NewSimulatorClose") __attribute__((used));
+
+ /**
+ * @relate NewSimulatorClose
+@@ -585,7 +585,7 @@ static void NewSimulatorClose( void *hnd
+ *
+ * @return HPI error code
+ **/
+-static SaErrorT NewSimulatorGetEvent( void * ) __attribute__((used));
++static SaErrorT NewSimulatorGetEvent( void * ) __asm__("NewSimulatorGetEvent") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetEvent( void *hnd ) {
+ dbg( "NewSimulatorGetEvent" );
+@@ -613,7 +613,7 @@ static SaErrorT NewSimulatorGetEvent( vo
+ *
+ * @return HPI error code
+ **/
+-static SaErrorT NewSimulatorDiscoverResources( void * ) __attribute__((used));
++static SaErrorT NewSimulatorDiscoverResources( void * ) __asm__("NewSimulatorDiscoverResources") __attribute__((used));
+
+ static SaErrorT NewSimulatorDiscoverResources( void *hnd ) {
+ dbg( "NewSimulatorDiscoverResources" );
+@@ -641,7 +641,7 @@ static SaErrorT NewSimulatorDiscoverReso
+ *
+ * @return HPI error code
+ **/
+-static SaErrorT NewSimulatorSetResourceTag( void *, SaHpiResourceIdT, SaHpiTextBufferT * ) __attribute__((used));
++static SaErrorT NewSimulatorSetResourceTag( void *, SaHpiResourceIdT, SaHpiTextBufferT * ) __asm__("NewSimulatorSetResourceTag") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetResourceTag( void *hnd, SaHpiResourceIdT id,
+ SaHpiTextBufferT *tag ) {
+@@ -669,7 +669,7 @@ static SaErrorT NewSimulatorSetResourceT
+ *
+ * @return HPI error code
+ **/
+-static SaErrorT NewSimulatorSetResourceSeverity( void *, SaHpiResourceIdT, SaHpiSeverityT ) __attribute__((used));
++static SaErrorT NewSimulatorSetResourceSeverity( void *, SaHpiResourceIdT, SaHpiSeverityT ) __asm__("NewSimulatorSetResourceSeverity") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetResourceSeverity( void *hnd, SaHpiResourceIdT id,
+ SaHpiSeverityT sev ) {
+@@ -703,7 +703,7 @@ static SaErrorT NewSimulatorGetSensorRea
+ SaHpiResourceIdT id,
+ SaHpiSensorNumT num,
+ SaHpiSensorReadingT *data,
+- SaHpiEventStateT *state ) __attribute__((used));
++ SaHpiEventStateT *state ) __asm__("NewSimulatorGetSensorReading") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSensorReading( void *hnd,
+ SaHpiResourceIdT id,
+@@ -738,7 +738,7 @@ static SaErrorT NewSimulatorGetSensorRea
+ static SaErrorT NewSimulatorGetSensorThresholds( void *hnd,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiSensorThresholdsT * ) __attribute__((used));
++ SaHpiSensorThresholdsT * ) __asm__("NewSimulatorGetSensorThresholds") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSensorThresholds( void *hnd,
+ SaHpiResourceIdT id,
+@@ -777,7 +777,7 @@ static SaErrorT NewSimulatorGetSensorThr
+ static SaErrorT NewSimulatorSetSensorThresholds( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- const SaHpiSensorThresholdsT * ) __attribute__((used));
++ const SaHpiSensorThresholdsT * ) __asm__("NewSimulatorSetSensorThresholds") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetSensorThresholds( void *hnd,
+ SaHpiResourceIdT id,
+@@ -815,7 +815,7 @@ static SaErrorT NewSimulatorSetSensorThr
+ static SaErrorT NewSimulatorGetSensorEnable( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiBoolT * ) __attribute__((used));
++ SaHpiBoolT * ) __asm__("NewSimulatorGetSensorEnable") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSensorEnable( void *hnd,
+ SaHpiResourceIdT id,
+@@ -849,7 +849,7 @@ static SaErrorT NewSimulatorGetSensorEna
+ static SaErrorT NewSimulatorSetSensorEnable( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiBoolT ) __attribute__((used));
++ SaHpiBoolT ) __asm__("NewSimulatorSetSensorEnable") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetSensorEnable( void *hnd,
+ SaHpiResourceIdT id,
+@@ -883,7 +883,7 @@ static SaErrorT NewSimulatorSetSensorEna
+ static SaErrorT NewSimulatorGetSensorEventEnables( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiBoolT * ) __attribute__((used));
++ SaHpiBoolT * ) __asm__("NewSimulatorGetSensorEventEnables") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSensorEventEnables( void *hnd,
+ SaHpiResourceIdT id,
+@@ -916,7 +916,7 @@ static SaErrorT NewSimulatorGetSensorEve
+ static SaErrorT NewSimulatorSetSensorEventEnables( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiBoolT ) __attribute__((used));
++ SaHpiBoolT ) __asm__("NewSimulatorSetSensorEventEnables") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetSensorEventEnables( void *hnd,
+ SaHpiResourceIdT id,
+@@ -952,7 +952,7 @@ static SaErrorT NewSimulatorGetSensorEve
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+ SaHpiEventStateT *,
+- SaHpiEventStateT * ) __attribute__((used));
++ SaHpiEventStateT * ) __asm__("NewSimulatorGetSensorEventMasks") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSensorEventMasks( void *hnd,
+ SaHpiResourceIdT id,
+@@ -990,7 +990,7 @@ static SaErrorT NewSimulatorSetSensorEve
+ SaHpiSensorNumT,
+ SaHpiSensorEventMaskActionT,
+ SaHpiEventStateT,
+- SaHpiEventStateT ) __attribute__((used));
++ SaHpiEventStateT ) __asm__("NewSimulatorSetSensorEventMasks") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetSensorEventMasks( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1026,7 +1026,7 @@ static SaErrorT NewSimulatorSetSensorEve
+ static SaErrorT NewSimulatorGetControlState( void *, SaHpiResourceIdT,
+ SaHpiCtrlNumT,
+ SaHpiCtrlModeT *,
+- SaHpiCtrlStateT * ) __attribute__((used));
++ SaHpiCtrlStateT * ) __asm__("NewSimulatorGetControlState") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetControlState( void *hnd, SaHpiResourceIdT id,
+ SaHpiCtrlNumT num,
+@@ -1061,7 +1061,7 @@ static SaErrorT NewSimulatorGetControlSt
+ static SaErrorT NewSimulatorSetControlState( void *, SaHpiResourceIdT,
+ SaHpiCtrlNumT,
+ SaHpiCtrlModeT,
+- SaHpiCtrlStateT * ) __attribute__((used));
++ SaHpiCtrlStateT * ) __asm__("NewSimulatorSetControlState") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetControlState( void *hnd, SaHpiResourceIdT id,
+ SaHpiCtrlNumT num,
+@@ -1099,7 +1099,7 @@ static SaErrorT NewSimulatorGetNextAnnou
+ SaHpiAnnunciatorNumT,
+ SaHpiSeverityT,
+ SaHpiBoolT,
+- SaHpiAnnouncementT *) __attribute__((used));
++ SaHpiAnnouncementT *) __asm__("NewSimulatorGetNextAnnouncement") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetNextAnnouncement(void *hnd, SaHpiResourceIdT id,
+ SaHpiAnnunciatorNumT num,
+@@ -1135,7 +1135,7 @@ static SaErrorT NewSimulatorGetNextAnnou
+ static SaErrorT NewSimulatorGetAnnouncement(void *, SaHpiResourceIdT,
+ SaHpiAnnunciatorNumT,
+ SaHpiEntryIdT,
+- SaHpiAnnouncementT *) __attribute__((used));
++ SaHpiAnnouncementT *) __asm__("NewSimulatorGetAnnouncement") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetAnnouncement(void *hnd, SaHpiResourceIdT id,
+ SaHpiAnnunciatorNumT num,
+@@ -1171,7 +1171,7 @@ static SaErrorT NewSimulatorGetAnnouncem
+ static SaErrorT NewSimulatorAckAnnouncement(void *, SaHpiResourceIdT,
+ SaHpiAnnunciatorNumT,
+ SaHpiEntryIdT,
+- SaHpiSeverityT) __attribute__((used));
++ SaHpiSeverityT) __asm__("NewSimulatorAckAnnouncement") __attribute__((used));
+
+ static SaErrorT NewSimulatorAckAnnouncement(void *hnd, SaHpiResourceIdT id,
+ SaHpiAnnunciatorNumT num,
+@@ -1205,7 +1205,7 @@ static SaErrorT NewSimulatorAckAnnouncem
+ **/
+ static SaErrorT NewSimulatorAddAnnouncement(void *, SaHpiResourceIdT,
+ SaHpiAnnunciatorNumT,
+- SaHpiAnnouncementT *) __attribute__((used));
++ SaHpiAnnouncementT *) __asm__("NewSimulatorAddAnnouncement") __attribute__((used));
+
+ static SaErrorT NewSimulatorAddAnnouncement(void *hnd, SaHpiResourceIdT id,
+ SaHpiAnnunciatorNumT num,
+@@ -1239,7 +1239,7 @@ static SaErrorT NewSimulatorAddAnnouncem
+ static SaErrorT NewSimulatorDelAnnouncement(void *, SaHpiResourceIdT,
+ SaHpiAnnunciatorNumT,
+ SaHpiEntryIdT,
+- SaHpiSeverityT) __attribute__((used));
++ SaHpiSeverityT) __asm__("NewSimulatorDelAnnouncement") __attribute__((used));
+
+ static SaErrorT NewSimulatorDelAnnouncement(void *hnd, SaHpiResourceIdT id,
+ SaHpiAnnunciatorNumT num,
+@@ -1273,7 +1273,7 @@ static SaErrorT NewSimulatorDelAnnouncem
+ **/
+ static SaErrorT NewSimulatorGetAnnMode(void *, SaHpiResourceIdT,
+ SaHpiAnnunciatorNumT,
+- SaHpiAnnunciatorModeT *) __attribute__((used));
++ SaHpiAnnunciatorModeT *) __asm__("NewSimulatorGetAnnMode") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetAnnMode(void *hnd, SaHpiResourceIdT id,
+ SaHpiAnnunciatorNumT num,
+@@ -1306,7 +1306,7 @@ static SaErrorT NewSimulatorGetAnnMode(v
+ **/
+ static SaErrorT NewSimulatorSetAnnMode(void *, SaHpiResourceIdT,
+ SaHpiAnnunciatorNumT,
+- SaHpiAnnunciatorModeT) __attribute__((used));
++ SaHpiAnnunciatorModeT) __asm__("NewSimulatorSetAnnMode") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetAnnMode(void *hnd, SaHpiResourceIdT id,
+ SaHpiAnnunciatorNumT num,
+@@ -1340,7 +1340,7 @@ static SaErrorT NewSimulatorSetAnnMode(v
+ static SaErrorT NewSimulatorGetIdrInfo( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiIdrInfoT * ) __attribute__((used));
++ SaHpiIdrInfoT * ) __asm__("NewSimulatorGetIdrInfo") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetIdrInfo( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1380,7 +1380,7 @@ static SaErrorT NewSimulatorGetIdrAreaHe
+ SaHpiIdrAreaTypeT,
+ SaHpiEntryIdT,
+ SaHpiEntryIdT *,
+- SaHpiIdrAreaHeaderT * ) __attribute__((used));
++ SaHpiIdrAreaHeaderT * ) __asm__("NewSimulatorGetIdrAreaHeader") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetIdrAreaHeader( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1419,7 +1419,7 @@ static SaErrorT NewSimulatorAddIdrArea(
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+ SaHpiIdrAreaTypeT,
+- SaHpiEntryIdT * ) __attribute__((used));
++ SaHpiEntryIdT * ) __asm__("NewSimulatorAddIdrArea") __attribute__((used));
+
+ static SaErrorT NewSimulatorAddIdrArea( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1456,7 +1456,7 @@ static SaErrorT NewSimulatorAddIdrAreaBy
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+ SaHpiIdrAreaTypeT,
+- SaHpiEntryIdT ) __attribute__((used));
++ SaHpiEntryIdT ) __asm__("NewSimulatorAddIdrAreaById") __attribute__((used));
+
+ static SaErrorT NewSimulatorAddIdrAreaById( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1490,7 +1490,7 @@ static SaErrorT NewSimulatorAddIdrAreaBy
+ static SaErrorT NewSimulatorDelIdrArea( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiEntryIdT ) __attribute__((used));
++ SaHpiEntryIdT ) __asm__("NewSimulatorDelIdrArea") __attribute__((used));
+
+ static SaErrorT NewSimulatorDelIdrArea( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1532,7 +1532,7 @@ static SaErrorT NewSimulatorGetIdrField(
+ SaHpiIdrFieldTypeT,
+ SaHpiEntryIdT,
+ SaHpiEntryIdT *,
+- SaHpiIdrFieldT * ) __attribute__((used));
++ SaHpiIdrFieldT * ) __asm__("NewSimulatorGetIdrField") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetIdrField( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1570,7 +1570,7 @@ static SaErrorT NewSimulatorGetIdrField(
+ static SaErrorT NewSimulatorAddIdrField( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiIdrFieldT * ) __attribute__((used));
++ SaHpiIdrFieldT * ) __asm__("NewSimulatorAddIdrField") __attribute__((used));
+
+ static SaErrorT NewSimulatorAddIdrField( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1604,7 +1604,7 @@ static SaErrorT NewSimulatorAddIdrField(
+ static SaErrorT NewSimulatorAddIdrFieldById( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiIdrFieldT * ) __attribute__((used));
++ SaHpiIdrFieldT * ) __asm__("NewSimulatorAddIdrFieldById") __attribute__((used));
+
+ static SaErrorT NewSimulatorAddIdrFieldById( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1637,7 +1637,7 @@ static SaErrorT NewSimulatorAddIdrFieldB
+ static SaErrorT NewSimulatorSetIdrField( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiIdrFieldT * ) __attribute__((used));
++ SaHpiIdrFieldT * ) __asm__("NewSimulatorSetIdrField") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetIdrField( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1672,7 +1672,7 @@ static SaErrorT NewSimulatorDelIdrField(
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+ SaHpiEntryIdT,
+- SaHpiEntryIdT ) __attribute__((used));
++ SaHpiEntryIdT ) __asm__("NewSimulatorDelIdrField") __attribute__((used));
+
+ static SaErrorT NewSimulatorDelIdrField( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1704,7 +1704,7 @@ static SaErrorT NewSimulatorDelIdrField(
+ **/
+ static SaErrorT NewSimulatorGetSelInfo( void *,
+ SaHpiResourceIdT,
+- SaHpiEventLogInfoT * ) __attribute__((used));
++ SaHpiEventLogInfoT * ) __asm__("NewSimulatorGetSelInfo") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSelInfo( void *hnd,
+ SaHpiResourceIdT id,
+@@ -1736,7 +1736,7 @@ static SaErrorT NewSimulatorGetSelInfo(
+ *
+ * @return HPI error code
+ **/
+-static SaErrorT NewSimulatorSetSelTime( void *, SaHpiResourceIdT, SaHpiTimeT ) __attribute__((used));
++static SaErrorT NewSimulatorSetSelTime( void *, SaHpiResourceIdT, SaHpiTimeT ) __asm__("NewSimulatorSetSelTime") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetSelTime( void *hnd, SaHpiResourceIdT id, SaHpiTimeT t ) {
+ SaErrorT rv = SA_ERR_HPI_INTERNAL_ERROR;
+@@ -1766,7 +1766,7 @@ static SaErrorT NewSimulatorSetSelTime(
+ *
+ * @return HPI error code
+ **/
+-static SaErrorT NewSimulatorAddSelEntry( void *, SaHpiResourceIdT, const SaHpiEventT * ) __attribute__((used));
++static SaErrorT NewSimulatorAddSelEntry( void *, SaHpiResourceIdT, const SaHpiEventT * ) __asm__("NewSimulatorAddSelEntry") __attribute__((used));
+
+ static SaErrorT NewSimulatorAddSelEntry( void *hnd, SaHpiResourceIdT id,
+ const SaHpiEventT *Event ) {
+@@ -1809,7 +1809,7 @@ static SaErrorT NewSimulatorGetSelEntry(
+ SaHpiEventLogEntryIdT *,
+ SaHpiEventLogEntryT *,
+ SaHpiRdrT *,
+- SaHpiRptEntryT * ) __attribute__((used));
++ SaHpiRptEntryT * ) __asm__("NewSimulatorGetSelEntry") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSelEntry( void *hnd, SaHpiResourceIdT id,
+ SaHpiEventLogEntryIdT current,
+@@ -1844,7 +1844,7 @@ static SaErrorT NewSimulatorGetSelEntry(
+ *
+ * @return HPI error code
+ **/
+-static SaErrorT NewSimulatorClearSel( void *, SaHpiResourceIdT ) __attribute__((used));
++static SaErrorT NewSimulatorClearSel( void *, SaHpiResourceIdT ) __asm__("NewSimulatorClearSel") __attribute__((used));
+
+ static SaErrorT NewSimulatorClearSel( void *hnd, SaHpiResourceIdT id ) {
+ SaErrorT rv = SA_ERR_HPI_INTERNAL_ERROR;
+@@ -1875,7 +1875,7 @@ static SaErrorT NewSimulatorClearSel( vo
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorSetSelState(void *, SaHpiResourceIdT,
+- SaHpiBoolT) __attribute__((used));
++ SaHpiBoolT) __asm__("NewSimulatorSetSelState") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetSelState( void *hnd, SaHpiResourceIdT id,
+ SaHpiBoolT state ) {
+@@ -1907,7 +1907,7 @@ static SaErrorT NewSimulatorSetSelState(
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorGetSelState(void *, SaHpiResourceIdT,
+- SaHpiBoolT *) __attribute__((used));
++ SaHpiBoolT *) __asm__("NewSimulatorGetSelState") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSelState( void *hnd, SaHpiResourceIdT id,
+ SaHpiBoolT *state ) {
+@@ -1939,7 +1939,7 @@ static SaErrorT NewSimulatorGetSelState(
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorGetSelCapability(void *, SaHpiResourceIdT,
+- SaHpiEventLogCapabilitiesT *) __attribute__((used));
++ SaHpiEventLogCapabilitiesT *) __asm__("NewSimulatorGetSelCapability") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetSelCapability( void *hnd, SaHpiResourceIdT id,
+ SaHpiEventLogCapabilitiesT *caps ) {
+@@ -1970,7 +1970,7 @@ static SaErrorT NewSimulatorGetSelCapabi
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorResetSelOverflow(void *, SaHpiResourceIdT)
+- __attribute__((used));
++ __asm__("NewSimulatorResetSelOverflow") __attribute__((used));
+
+ static SaErrorT NewSimulatorResetSelOverflow( void *hnd, SaHpiResourceIdT id ) {
+
+@@ -2002,7 +2002,7 @@ static SaErrorT NewSimulatorResetSelOver
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorHotswapPolicyCancel( void *, SaHpiResourceIdT,
+- SaHpiTimeoutT ) __attribute__((used));
++ SaHpiTimeoutT ) __asm__("NewSimulatorHotswapPolicyCancel") __attribute__((used));
+
+ static SaErrorT NewSimulatorHotswapPolicyCancel( void *hnd, SaHpiResourceIdT id,
+ SaHpiTimeoutT timeout) {
+@@ -2032,7 +2032,7 @@ static SaErrorT NewSimulatorHotswapPolic
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorGetHotswapState( void *, SaHpiResourceIdT ,
+- SaHpiHsStateT * ) __attribute__((used));
++ SaHpiHsStateT * ) __asm__("NewSimulatorGetHotswapState") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetHotswapState( void *hnd, SaHpiResourceIdT id,
+ SaHpiHsStateT *state ) {
+@@ -2063,7 +2063,7 @@ static SaErrorT NewSimulatorGetHotswapSt
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorSetHotswapState( void *, SaHpiResourceIdT,
+- SaHpiHsStateT ) __attribute__((used));
++ SaHpiHsStateT ) __asm__("NewSimulatorSetHotswapState") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetHotswapState( void *hnd, SaHpiResourceIdT id,
+ SaHpiHsStateT state ) {
+@@ -2105,7 +2105,7 @@ static SaErrorT NewSimulatorSetHotswapSt
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorRequestHotswapAction( void *, SaHpiResourceIdT,
+- SaHpiHsActionT ) __attribute__((used));
++ SaHpiHsActionT ) __asm__("NewSimulatorRequestHotswapAction") __attribute__((used));
+
+ static SaErrorT NewSimulatorRequestHotswapAction( void *hnd, SaHpiResourceIdT id,
+ SaHpiHsActionT act ) {
+@@ -2139,7 +2139,7 @@ static SaErrorT NewSimulatorRequestHotsw
+ static SaErrorT NewSimulatorGetWatchdogInfo(void *,
+ SaHpiResourceIdT,
+ SaHpiWatchdogNumT,
+- SaHpiWatchdogT *) __attribute__((used));
++ SaHpiWatchdogT *) __asm__("NewSimulatorGetWatchdogInfo") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetWatchdogInfo(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2170,7 +2170,7 @@ static SaErrorT NewSimulatorGetWatchdogI
+ static SaErrorT NewSimulatorSetWatchdogInfo(void *,
+ SaHpiResourceIdT,
+ SaHpiWatchdogNumT,
+- SaHpiWatchdogT *) __attribute__((used));
++ SaHpiWatchdogT *) __asm__("NewSimulatorSetWatchdogInfo") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetWatchdogInfo(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2199,7 +2199,7 @@ static SaErrorT NewSimulatorSetWatchdogI
+ **/
+ static SaErrorT NewSimulatorResetWatchdog(void *,
+ SaHpiResourceIdT,
+- SaHpiWatchdogNumT) __attribute__((used));
++ SaHpiWatchdogNumT) __asm__("NewSimulatorResetWatchdog") __attribute__((used));
+
+ static SaErrorT NewSimulatorResetWatchdog(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2229,7 +2229,7 @@ static SaErrorT NewSimulatorResetWatchdo
+ static SaErrorT NewSimulatorGetFumiSpec(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiFumiSpecInfoT *) __attribute__((used));
++ SaHpiFumiSpecInfoT *) __asm__("NewSimulatorGetFumiSpec") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiSpec(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2260,7 +2260,7 @@ static SaErrorT NewSimulatorGetFumiSpec(
+ static SaErrorT NewSimulatorGetFumiServImpact(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiFumiServiceImpactDataT *) __attribute__((used));
++ SaHpiFumiServiceImpactDataT *) __asm__("NewSimulatorGetFumiServImpact") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiServImpact(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2294,7 +2294,7 @@ static SaErrorT NewSimulatorSetFumiSourc
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+ SaHpiBankNumT,
+- SaHpiTextBufferT *) __attribute__((used));
++ SaHpiTextBufferT *) __asm__("NewSimulatorSetFumiSource") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetFumiSource(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2327,7 +2327,7 @@ static SaErrorT NewSimulatorSetFumiSourc
+ static SaErrorT NewSimulatorValidateFumiSource(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiBankNumT) __attribute__((used));
++ SaHpiBankNumT) __asm__("NewSimulatorValidateFumiSource") __attribute__((used));
+
+ static SaErrorT NewSimulatorValidateFumiSource(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2361,7 +2361,7 @@ static SaErrorT NewSimulatorGetFumiSourc
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+ SaHpiBankNumT,
+- SaHpiFumiSourceInfoT *) __attribute__((used));
++ SaHpiFumiSourceInfoT *) __asm__("NewSimulatorGetFumiSource") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiSource(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2400,7 +2400,7 @@ static SaErrorT NewSimulatorGetFumiSourc
+ SaHpiBankNumT,
+ SaHpiEntryIdT,
+ SaHpiEntryIdT *,
+- SaHpiFumiComponentInfoT *) __attribute__((used));
++ SaHpiFumiComponentInfoT *) __asm__("NewSimulatorGetFumiSourceComponent") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiSourceComponent(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2437,7 +2437,7 @@ static SaErrorT NewSimulatorGetFumiTarge
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+ SaHpiBankNumT,
+- SaHpiFumiBankInfoT *) __attribute__((used));
++ SaHpiFumiBankInfoT *) __asm__("NewSimulatorGetFumiTarget") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiTarget(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2476,7 +2476,7 @@ static SaErrorT NewSimulatorGetFumiTarge
+ SaHpiBankNumT,
+ SaHpiEntryIdT,
+ SaHpiEntryIdT *,
+- SaHpiFumiComponentInfoT *) __attribute__((used));
++ SaHpiFumiComponentInfoT *) __asm__("NewSimulatorGetFumiTargetComponent") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiTargetComponent(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2511,7 +2511,7 @@ static SaErrorT NewSimulatorGetFumiTarge
+ static SaErrorT NewSimulatorGetFumiLogicalTarget(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiFumiLogicalBankInfoT *) __attribute__((used));
++ SaHpiFumiLogicalBankInfoT *) __asm__("NewSimulatorGetFumiLogicalTarget") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiLogicalTarget(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2547,7 +2547,7 @@ static SaErrorT NewSimulatorGetFumiLogic
+ SaHpiFumiNumT,
+ SaHpiEntryIdT,
+ SaHpiEntryIdT *,
+- SaHpiFumiLogicalComponentInfoT *) __attribute__((used));
++ SaHpiFumiLogicalComponentInfoT *) __asm__("NewSimulatorGetFumiLogicalTargetComponent") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiLogicalTargetComponent(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2579,7 +2579,7 @@ static SaErrorT NewSimulatorGetFumiLogic
+ **/
+ static SaErrorT NewSimulatorStartFumiBackup(void *,
+ SaHpiResourceIdT,
+- SaHpiFumiNumT) __attribute__((used));
++ SaHpiFumiNumT) __asm__("NewSimulatorStartFumiBackup") __attribute__((used));
+
+ static SaErrorT NewSimulatorStartFumiBackup(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2612,7 +2612,7 @@ static SaErrorT NewSimulatorSetFumiBankO
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+ SaHpiBankNumT,
+- SaHpiUint32T) __attribute__((used));
++ SaHpiUint32T) __asm__("NewSimulatorSetFumiBankOrder") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetFumiBankOrder(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2647,7 +2647,7 @@ static SaErrorT NewSimulatorStartFumiBan
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+ SaHpiBankNumT,
+- SaHpiBankNumT) __attribute__((used));
++ SaHpiBankNumT) __asm__("NewSimulatorStartFumiBankCopy") __attribute__((used));
+
+ static SaErrorT NewSimulatorStartFumiBankCopy(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2680,7 +2680,7 @@ static SaErrorT NewSimulatorStartFumiBan
+ static SaErrorT NewSimulatorStartFumiInstall(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiBankNumT) __attribute__((used));
++ SaHpiBankNumT) __asm__("NewSimulatorStartFumiInstall") __attribute__((used));
+
+ static SaErrorT NewSimulatorStartFumiInstall(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2714,7 +2714,7 @@ static SaErrorT NewSimulatorGetFumiStatu
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+ SaHpiBankNumT,
+- SaHpiFumiUpgradeStatusT *) __attribute__((used));
++ SaHpiFumiUpgradeStatusT *) __asm__("NewSimulatorGetFumiStatus") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiStatus(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2747,7 +2747,7 @@ static SaErrorT NewSimulatorGetFumiStatu
+ static SaErrorT NewSimulatorStartFumiVerification(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiBankNumT) __attribute__((used));
++ SaHpiBankNumT) __asm__("NewSimulatorStartFumiVerification") __attribute__((used));
+
+ static SaErrorT NewSimulatorStartFumiVerification(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2776,7 +2776,7 @@ static SaErrorT NewSimulatorStartFumiVer
+ **/
+ static SaErrorT NewSimulatorStartFumiVerificationMain(void *,
+ SaHpiResourceIdT,
+- SaHpiFumiNumT) __attribute__((used));
++ SaHpiFumiNumT) __asm__("NewSimulatorStartFumiVerificationMain") __attribute__((used));
+
+ static SaErrorT NewSimulatorStartFumiVerificationMain(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2807,7 +2807,7 @@ static SaErrorT NewSimulatorStartFumiVer
+ static SaErrorT NewSimulatorCancelFumiUpgrade(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiBankNumT) __attribute__((used));
++ SaHpiBankNumT) __asm__("NewSimulatorCancelFumiUpgrade") __attribute__((used));
+
+ static SaErrorT NewSimulatorCancelFumiUpgrade(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2838,7 +2838,7 @@ static SaErrorT NewSimulatorCancelFumiUp
+ static SaErrorT NewSimulatorGetFumiRollback(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiBoolT *) __attribute__((used));
++ SaHpiBoolT *) __asm__("NewSimulatorGetFumiRollback") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetFumiRollback(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2870,7 +2870,7 @@ static SaErrorT NewSimulatorGetFumiRollb
+ static SaErrorT NewSimulatorSetFumiRollback(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiBoolT) __attribute__((used));
++ SaHpiBoolT) __asm__("NewSimulatorSetFumiRollback") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetFumiRollback(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2900,7 +2900,7 @@ static SaErrorT NewSimulatorSetFumiRollb
+ **/
+ static SaErrorT NewSimulatorStartFumiRollback(void *,
+ SaHpiResourceIdT,
+- SaHpiFumiNumT) __attribute__((used));
++ SaHpiFumiNumT) __asm__("NewSimulatorStartFumiRollback") __attribute__((used));
+
+ static SaErrorT NewSimulatorStartFumiRollback(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2929,7 +2929,7 @@ static SaErrorT NewSimulatorStartFumiRol
+ **/
+ static SaErrorT NewSimulatorActivateFumi(void *,
+ SaHpiResourceIdT,
+- SaHpiFumiNumT) __attribute__((used));
++ SaHpiFumiNumT) __asm__("NewSimulatorActivateFumi") __attribute__((used));
+
+ static SaErrorT NewSimulatorActivateFumi(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2960,7 +2960,7 @@ static SaErrorT NewSimulatorActivateFumi
+ static SaErrorT NewSimulatorStartFumiActivation(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiBoolT) __attribute__((used));
++ SaHpiBoolT) __asm__("NewSimulatorStartFumiActivation") __attribute__((used));
+
+ static SaErrorT NewSimulatorStartFumiActivation(void *hnd,
+ SaHpiResourceIdT id,
+@@ -2992,7 +2992,7 @@ static SaErrorT NewSimulatorStartFumiAct
+ static SaErrorT NewSimulatorCleanupFumi(void *,
+ SaHpiResourceIdT,
+ SaHpiFumiNumT,
+- SaHpiBankNumT) __attribute__((used));
++ SaHpiBankNumT) __asm__("NewSimulatorCleanupFumi") __attribute__((used));
+
+ static SaErrorT NewSimulatorCleanupFumi(void *hnd,
+ SaHpiResourceIdT id,
+@@ -3023,7 +3023,7 @@ static SaErrorT NewSimulatorCleanupFumi(
+ static SaErrorT NewSimulatorGetDimiInfo( void *,
+ SaHpiResourceIdT,
+ SaHpiDimiNumT,
+- SaHpiDimiInfoT *) __attribute__((used));
++ SaHpiDimiInfoT *) __asm__("NewSimulatorGetDimiInfo") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetDimiInfo( void *hnd,
+ SaHpiResourceIdT id,
+@@ -3057,7 +3057,7 @@ static SaErrorT NewSimulatorGetDimiTestI
+ SaHpiResourceIdT,
+ SaHpiDimiNumT,
+ SaHpiDimiTestNumT,
+- SaHpiDimiTestT *) __attribute__((used));
++ SaHpiDimiTestT *) __asm__("NewSimulatorGetDimiTestInfo") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetDimiTestInfo( void *hnd,
+ SaHpiResourceIdT id,
+@@ -3092,7 +3092,7 @@ static SaErrorT NewSimulatorGetDimiTestR
+ SaHpiResourceIdT,
+ SaHpiDimiNumT,
+ SaHpiDimiTestNumT,
+- SaHpiDimiReadyT *) __attribute__((used));
++ SaHpiDimiReadyT *) __asm__("NewSimulatorGetDimiTestReadiness") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetDimiTestReadiness( void *hnd,
+ SaHpiResourceIdT id,
+@@ -3129,7 +3129,7 @@ static SaErrorT NewSimulatorStartDimiTes
+ SaHpiDimiNumT,
+ SaHpiDimiTestNumT,
+ SaHpiUint8T,
+- SaHpiDimiTestVariableParamsT *) __attribute__((used));
++ SaHpiDimiTestVariableParamsT *) __asm__("NewSimulatorStartDimiTest") __attribute__((used));
+
+ static SaErrorT NewSimulatorStartDimiTest( void *hnd,
+ SaHpiResourceIdT id,
+@@ -3163,7 +3163,7 @@ static SaErrorT NewSimulatorStartDimiTes
+ static SaErrorT NewSimulatorCancelDimiTest( void *,
+ SaHpiResourceIdT,
+ SaHpiDimiNumT,
+- SaHpiDimiTestNumT) __attribute__((used));
++ SaHpiDimiTestNumT) __asm__("NewSimulatorCancelDimiTest") __attribute__((used));
+
+ static SaErrorT NewSimulatorCancelDimiTest( void *hnd,
+ SaHpiResourceIdT id,
+@@ -3199,7 +3199,7 @@ static SaErrorT NewSimulatorGetDimiTestS
+ SaHpiDimiNumT,
+ SaHpiDimiTestNumT,
+ SaHpiDimiTestPercentCompletedT *,
+- SaHpiDimiTestRunStatusT *) __attribute__((used));
++ SaHpiDimiTestRunStatusT *) __asm__("NewSimulatorGetDimiTestStatus") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetDimiTestStatus( void *hnd,
+ SaHpiResourceIdT id,
+@@ -3234,7 +3234,7 @@ static SaErrorT NewSimulatorGetDimiTestR
+ SaHpiResourceIdT,
+ SaHpiDimiNumT,
+ SaHpiDimiTestNumT,
+- SaHpiDimiTestResultsT *) __attribute__((used));
++ SaHpiDimiTestResultsT *) __asm__("NewSimulatorGetDimiTestResults") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetDimiTestResults( void *hnd,
+ SaHpiResourceIdT id,
+@@ -3263,7 +3263,7 @@ static SaErrorT NewSimulatorGetDimiTestR
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorSetAutoInsertTimeout( void *,
+- SaHpiTimeoutT ) __attribute__((used));
++ SaHpiTimeoutT ) __asm__("NewSimulatorSetAutoInsertTimeout") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetAutoInsertTimeout( void *hnd, SaHpiTimeoutT timeout) {
+ NewSimulator *newsim = VerifyNewSimulator( hnd );
+@@ -3289,7 +3289,7 @@ static SaErrorT NewSimulatorSetAutoInser
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorGetAutoExtractTimeout( void *, SaHpiResourceIdT,
+- SaHpiTimeoutT * ) __attribute__((used));
++ SaHpiTimeoutT * ) __asm__("NewSimulatorGetAutoExtractTimeout") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetAutoExtractTimeout( void *hnd, SaHpiResourceIdT id,
+ SaHpiTimeoutT *timeout ) {
+@@ -3319,7 +3319,7 @@ static SaErrorT NewSimulatorGetAutoExtra
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorSetAutoExtractTimeout( void *, SaHpiResourceIdT,
+- SaHpiTimeoutT ) __attribute__((used));
++ SaHpiTimeoutT ) __asm__("NewSimulatorSetAutoExtractTimeout") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetAutoExtractTimeout( void *hnd, SaHpiResourceIdT id,
+ SaHpiTimeoutT timeout ) {
+@@ -3350,7 +3350,7 @@ static SaErrorT NewSimulatorSetAutoExtra
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorGetPowerState( void *, SaHpiResourceIdT,
+- SaHpiPowerStateT * ) __attribute__((used));
++ SaHpiPowerStateT * ) __asm__("NewSimulatorGetPowerState") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetPowerState( void *hnd, SaHpiResourceIdT id,
+ SaHpiPowerStateT *state ) {
+@@ -3382,7 +3382,7 @@ static SaErrorT NewSimulatorGetPowerStat
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorSetPowerState( void *, SaHpiResourceIdT,
+- SaHpiPowerStateT ) __attribute__((used));
++ SaHpiPowerStateT ) __asm__("NewSimulatorSetPowerState") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetPowerState( void *hnd, SaHpiResourceIdT id,
+ SaHpiPowerStateT state ) {
+@@ -3414,7 +3414,7 @@ static SaErrorT NewSimulatorSetPowerStat
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorGetIndicatorState( void *, SaHpiResourceIdT,
+- SaHpiHsIndicatorStateT * ) __attribute__((used));
++ SaHpiHsIndicatorStateT * ) __asm__("NewSimulatorGetIndicatorState") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetIndicatorState( void *hnd, SaHpiResourceIdT id,
+ SaHpiHsIndicatorStateT *state ) {
+@@ -3446,7 +3446,7 @@ static SaErrorT NewSimulatorGetIndicator
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorSetIndicatorState( void *, SaHpiResourceIdT,
+- SaHpiHsIndicatorStateT ) __attribute__((used));
++ SaHpiHsIndicatorStateT ) __asm__("NewSimulatorSetIndicatorState") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetIndicatorState( void *hnd, SaHpiResourceIdT id,
+ SaHpiHsIndicatorStateT state ) {
+@@ -3479,7 +3479,7 @@ static SaErrorT NewSimulatorSetIndicator
+ **/
+ static SaErrorT NewSimulatorControlParm( void *,
+ SaHpiResourceIdT,
+- SaHpiParmActionT ) __attribute__((used));
++ SaHpiParmActionT ) __asm__("NewSimulatorControlParm") __attribute__((used));
+
+ static SaErrorT NewSimulatorControlParm( void *hnd,
+ SaHpiResourceIdT id,
+@@ -3512,7 +3512,7 @@ static SaErrorT NewSimulatorControlParm(
+ * @return HPI error code
+ **/
+ static SaErrorT NewSimulatorGetResetState( void *, SaHpiResourceIdT,
+- SaHpiResetActionT * ) __attribute__((used));
++ SaHpiResetActionT * ) __asm__("NewSimulatorGetResetState") __attribute__((used));
+
+ static SaErrorT NewSimulatorGetResetState( void *hnd, SaHpiResourceIdT id,
+ SaHpiResetActionT *act ) {
+@@ -3545,7 +3545,7 @@ static SaErrorT NewSimulatorGetResetStat
+ **/
+ static SaErrorT NewSimulatorSetResetState( void *,
+ SaHpiResourceIdT,
+- SaHpiResetActionT ) __attribute__((used));
++ SaHpiResetActionT ) __asm__("NewSimulatorSetResetState") __attribute__((used));
+
+ static SaErrorT NewSimulatorSetResetState( void *hnd,
+ SaHpiResourceIdT id,
+Index: openhpi-3.6.1/plugins/dynamic_simulator/new_sim_file.cpp
+===================================================================
+--- openhpi-3.6.1.orig/plugins/dynamic_simulator/new_sim_file.cpp
++++ openhpi-3.6.1/plugins/dynamic_simulator/new_sim_file.cpp
+@@ -44,9 +44,9 @@
+ ///< Global skip characters for oh_scanner_config
+ static gchar skip_characters[] = " \t\n";
+ ///< Global identifier_first for oh_scanner_config
+-static gchar identifier_first[] = G_CSET_a_2_z"_/."G_CSET_A_2_Z;
++static gchar identifier_first[] = G_CSET_a_2_z "_/." G_CSET_A_2_Z;
+ ///< Global identifier_nth for oh_scanner_config
+-static gchar identifier_nth[] = G_CSET_a_2_z"_-0123456789/."G_CSET_A_2_Z;
++static gchar identifier_nth[] = G_CSET_a_2_z "_-0123456789/." G_CSET_A_2_Z;
+ ///< Global comment signs for oh_scanner_config
+ static gchar comment_single[] = "#\n";
+
+Index: openhpi-3.6.1/plugins/ipmidirect/ipmi.cpp
+===================================================================
+--- openhpi-3.6.1.orig/plugins/ipmidirect/ipmi.cpp
++++ openhpi-3.6.1/plugins/ipmidirect/ipmi.cpp
+@@ -279,7 +279,7 @@ extern "C" {
+ // ABI Interface functions
+
+ static void *
+-IpmiOpen( GHashTable *, unsigned int, oh_evt_queue * ) __attribute__((used));
++IpmiOpen( GHashTable *, unsigned int, oh_evt_queue * ) __asm__("IpmiOpen") __attribute__((used));
+
+ static void *
+ IpmiOpen( GHashTable *handler_config, unsigned int hid, oh_evt_queue *eventq )
+@@ -388,7 +388,7 @@ IpmiOpen( GHashTable *handler_config, un
+
+
+ static void
+-IpmiClose( void * ) __attribute__((used));
++IpmiClose( void * ) __asm__("IpmiClose") __attribute__((used));
+
+ static void
+ IpmiClose( void *hnd )
+@@ -436,7 +436,7 @@ IpmiClose( void *hnd )
+
+
+ static SaErrorT
+-IpmiGetEvent( void * ) __attribute__((used));
++IpmiGetEvent( void * ) __asm__("IpmiGetEvent") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetEvent( void *hnd )
+@@ -458,7 +458,7 @@ IpmiGetEvent( void *hnd )
+
+
+ static SaErrorT
+-IpmiDiscoverResources( void * ) __attribute__((used));
++IpmiDiscoverResources( void * ) __asm__("IpmiDiscoverResources") __attribute__((used));
+
+ static SaErrorT
+ IpmiDiscoverResources( void *hnd )
+@@ -479,7 +479,7 @@ IpmiDiscoverResources( void *hnd )
+
+
+ static SaErrorT
+-IpmiSetResourceTag( void *, SaHpiResourceIdT, SaHpiTextBufferT * ) __attribute__((used));
++IpmiSetResourceTag( void *, SaHpiResourceIdT, SaHpiTextBufferT * ) __asm__("IpmiSetResourceTag") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetResourceTag( void *hnd, SaHpiResourceIdT id, SaHpiTextBufferT *tag )
+@@ -499,7 +499,7 @@ IpmiSetResourceTag( void *hnd, SaHpiReso
+
+
+ static SaErrorT
+-IpmiSetResourceSeverity( void *, SaHpiResourceIdT, SaHpiSeverityT ) __attribute__((used));
++IpmiSetResourceSeverity( void *, SaHpiResourceIdT, SaHpiSeverityT ) __asm__("IpmiSetResourceSeverity") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetResourceSeverity( void *hnd, SaHpiResourceIdT id, SaHpiSeverityT sev )
+@@ -523,7 +523,7 @@ IpmiGetSensorReading( void *,
+ SaHpiResourceIdT id,
+ SaHpiSensorNumT num,
+ SaHpiSensorReadingT *data,
+- SaHpiEventStateT *state ) __attribute__((used));
++ SaHpiEventStateT *state ) __asm__("IpmiGetSensorReading") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetSensorReading( void *hnd,
+@@ -550,7 +550,7 @@ static SaErrorT
+ IpmiGetSensorThresholds( void *hnd,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiSensorThresholdsT * ) __attribute__((used));
++ SaHpiSensorThresholdsT * ) __asm__("IpmiGetSensorThresholds") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetSensorThresholds( void *hnd,
+@@ -581,7 +581,7 @@ static SaErrorT
+ IpmiSetSensorThresholds( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- const SaHpiSensorThresholdsT * ) __attribute__((used));
++ const SaHpiSensorThresholdsT * ) __asm__("IpmiSetSensorThresholds") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetSensorThresholds( void *hnd,
+@@ -612,7 +612,7 @@ static SaErrorT
+ IpmiGetSensorEnable( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiBoolT * ) __attribute__((used));
++ SaHpiBoolT * ) __asm__("IpmiGetSensorEnable") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetSensorEnable( void *hnd,
+@@ -638,7 +638,7 @@ static SaErrorT
+ IpmiSetSensorEnable( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiBoolT ) __attribute__((used));
++ SaHpiBoolT ) __asm__("IpmiSetSensorEnable") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetSensorEnable( void *hnd,
+@@ -664,7 +664,7 @@ static SaErrorT
+ IpmiGetSensorEventEnables( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiBoolT * ) __attribute__((used));
++ SaHpiBoolT * ) __asm__("IpmiGetSensorEventEnables") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetSensorEventEnables( void *hnd,
+@@ -690,7 +690,7 @@ static SaErrorT
+ IpmiSetSensorEventEnables( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+- SaHpiBoolT ) __attribute__((used));
++ SaHpiBoolT ) __asm__("IpmiSetSensorEventEnables") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetSensorEventEnables( void *hnd,
+@@ -717,7 +717,7 @@ IpmiGetSensorEventMasks( void *,
+ SaHpiResourceIdT,
+ SaHpiSensorNumT,
+ SaHpiEventStateT *,
+- SaHpiEventStateT * ) __attribute__((used));
++ SaHpiEventStateT * ) __asm__("IpmiGetSensorEventMasks") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetSensorEventMasks( void *hnd,
+@@ -747,7 +747,7 @@ IpmiSetSensorEventMasks( void *,
+ SaHpiSensorNumT,
+ SaHpiSensorEventMaskActionT,
+ SaHpiEventStateT,
+- SaHpiEventStateT ) __attribute__((used));
++ SaHpiEventStateT ) __asm__("IpmiSetSensorEventMasks") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetSensorEventMasks( void *hnd,
+@@ -776,7 +776,7 @@ static SaErrorT
+ IpmiGetControlState( void *, SaHpiResourceIdT,
+ SaHpiCtrlNumT,
+ SaHpiCtrlModeT *,
+- SaHpiCtrlStateT * ) __attribute__((used));
++ SaHpiCtrlStateT * ) __asm__("IpmiGetControlState") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetControlState( void *hnd, SaHpiResourceIdT id,
+@@ -802,7 +802,7 @@ static SaErrorT
+ IpmiSetControlState( void *, SaHpiResourceIdT,
+ SaHpiCtrlNumT,
+ SaHpiCtrlModeT,
+- SaHpiCtrlStateT * ) __attribute__((used));
++ SaHpiCtrlStateT * ) __asm__("IpmiSetControlState") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetControlState( void *hnd, SaHpiResourceIdT id,
+@@ -828,7 +828,7 @@ static SaErrorT
+ IpmiGetIdrInfo( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiIdrInfoT * ) __attribute__((used));
++ SaHpiIdrInfoT * ) __asm__("IpmiGetIdrInfo") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetIdrInfo( void *hnd,
+@@ -857,7 +857,7 @@ IpmiGetIdrAreaHeader( void *,
+ SaHpiIdrAreaTypeT,
+ SaHpiEntryIdT,
+ SaHpiEntryIdT *,
+- SaHpiIdrAreaHeaderT * ) __attribute__((used));
++ SaHpiIdrAreaHeaderT * ) __asm__("IpmiGetIdrAreaHeader") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetIdrAreaHeader( void *hnd,
+@@ -887,7 +887,7 @@ IpmiAddIdrArea( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+ SaHpiIdrAreaTypeT,
+- SaHpiEntryIdT * ) __attribute__((used));
++ SaHpiEntryIdT * ) __asm__("IpmiAddIdrArea") __attribute__((used));
+
+ static SaErrorT
+ IpmiAddIdrArea( void *hnd,
+@@ -914,7 +914,7 @@ static SaErrorT
+ IpmiDelIdrArea( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiEntryIdT ) __attribute__((used));
++ SaHpiEntryIdT ) __asm__("IpmiDelIdrArea") __attribute__((used));
+
+ static SaErrorT
+ IpmiDelIdrArea( void *hnd,
+@@ -944,7 +944,7 @@ IpmiGetIdrField( void *,
+ SaHpiIdrFieldTypeT,
+ SaHpiEntryIdT,
+ SaHpiEntryIdT *,
+- SaHpiIdrFieldT * ) __attribute__((used));
++ SaHpiIdrFieldT * ) __asm__("IpmiGetIdrField") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetIdrField( void *hnd,
+@@ -974,7 +974,7 @@ static SaErrorT
+ IpmiAddIdrField( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiIdrFieldT * ) __attribute__((used));
++ SaHpiIdrFieldT * ) __asm__("IpmiAddIdrField") __attribute__((used));
+
+ static SaErrorT
+ IpmiAddIdrField( void *hnd,
+@@ -1000,7 +1000,7 @@ static SaErrorT
+ IpmiSetIdrField( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+- SaHpiIdrFieldT * ) __attribute__((used));
++ SaHpiIdrFieldT * ) __asm__("IpmiSetIdrField") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetIdrField( void *hnd,
+@@ -1027,7 +1027,7 @@ IpmiDelIdrField( void *,
+ SaHpiResourceIdT,
+ SaHpiIdrIdT,
+ SaHpiEntryIdT,
+- SaHpiEntryIdT ) __attribute__((used));
++ SaHpiEntryIdT ) __asm__("IpmiDelIdrField") __attribute__((used));
+
+ static SaErrorT
+ IpmiDelIdrField( void *hnd,
+@@ -1053,7 +1053,7 @@ IpmiDelIdrField( void *hnd,
+ static SaErrorT
+ IpmiGetSelInfo( void *,
+ SaHpiResourceIdT,
+- SaHpiEventLogInfoT * ) __attribute__((used));
++ SaHpiEventLogInfoT * ) __asm__("IpmiGetSelInfo") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetSelInfo( void *hnd,
+@@ -1075,7 +1075,7 @@ IpmiGetSelInfo( void *hnd,
+
+
+ static SaErrorT
+-IpmiSetSelTime( void *, SaHpiResourceIdT, SaHpiTimeT ) __attribute__((used));
++IpmiSetSelTime( void *, SaHpiResourceIdT, SaHpiTimeT ) __asm__("IpmiSetSelTime") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetSelTime( void *hnd, SaHpiResourceIdT id, SaHpiTimeT t )
+@@ -1096,7 +1096,7 @@ IpmiSetSelTime( void *hnd, SaHpiResource
+
+ static SaErrorT
+ IpmiAddSelEntry( void *, SaHpiResourceIdT,
+- const SaHpiEventT * ) __attribute__((used));
++ const SaHpiEventT * ) __asm__("IpmiAddSelEntry") __attribute__((used));
+
+ static SaErrorT
+ IpmiAddSelEntry( void *hnd, SaHpiResourceIdT id,
+@@ -1118,7 +1118,7 @@ IpmiAddSelEntry( void *hnd, SaHpiResourc
+ #ifdef NOTUSED
+ static SaErrorT
+ IpmiDelSelEntry( void *, SaHpiResourceIdT,
+- SaHpiEventLogEntryIdT ) __attribute__((used));
++ SaHpiEventLogEntryIdT ) __asm__("IpmiDelSelEntry") __attribute__((used));
+
+ static SaErrorT
+ IpmiDelSelEntry( void *hnd, SaHpiResourceIdT id,
+@@ -1145,7 +1145,7 @@ IpmiGetSelEntry( void *hnd, SaHpiResourc
+ SaHpiEventLogEntryIdT *, SaHpiEventLogEntryIdT *,
+ SaHpiEventLogEntryT *,
+ SaHpiRdrT *,
+- SaHpiRptEntryT * ) __attribute__((used));
++ SaHpiRptEntryT * ) __asm__("IpmiGetSelEntry") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetSelEntry( void *hnd, SaHpiResourceIdT id,
+@@ -1170,7 +1170,7 @@ IpmiGetSelEntry( void *hnd, SaHpiResourc
+
+
+ static SaErrorT
+-IpmiClearSel( void *, SaHpiResourceIdT ) __attribute__((used));
++IpmiClearSel( void *, SaHpiResourceIdT ) __asm__("IpmiClearSel") __attribute__((used));
+
+ static SaErrorT
+ IpmiClearSel( void *hnd, SaHpiResourceIdT id )
+@@ -1190,7 +1190,7 @@ IpmiClearSel( void *hnd, SaHpiResourceId
+
+ static SaErrorT
+ IpmiHotswapPolicyCancel( void *, SaHpiResourceIdT,
+- SaHpiTimeoutT ) __attribute__((used));
++ SaHpiTimeoutT ) __asm__("IpmiHotswapPolicyCancel") __attribute__((used));
+
+ static SaErrorT
+ IpmiHotswapPolicyCancel( void *hnd, SaHpiResourceIdT id,
+@@ -1210,7 +1210,7 @@ IpmiHotswapPolicyCancel( void *hnd, SaHp
+ }
+
+ static SaErrorT
+-IpmiSetAutoInsertTimeout( void *, SaHpiTimeoutT ) __attribute__((used));
++IpmiSetAutoInsertTimeout( void *, SaHpiTimeoutT ) __asm__("IpmiSetAutoInsertTimeout") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetAutoInsertTimeout( void *hnd, SaHpiTimeoutT timeout)
+@@ -1229,7 +1229,7 @@ IpmiSetAutoInsertTimeout( void *hnd, SaH
+
+ static SaErrorT
+ IpmiGetAutoExtractTimeout( void *, SaHpiResourceIdT,
+- SaHpiTimeoutT * ) __attribute__((used));
++ SaHpiTimeoutT * ) __asm__("IpmiGetAutoExtractTimeout") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetAutoExtractTimeout( void *hnd, SaHpiResourceIdT id,
+@@ -1250,7 +1250,7 @@ IpmiGetAutoExtractTimeout( void *hnd, Sa
+
+ static SaErrorT
+ IpmiSetAutoExtractTimeout( void *, SaHpiResourceIdT,
+- SaHpiTimeoutT ) __attribute__((used));
++ SaHpiTimeoutT ) __asm__("IpmiSetAutoExtractTimeout") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetAutoExtractTimeout( void *hnd, SaHpiResourceIdT id,
+@@ -1271,7 +1271,7 @@ IpmiSetAutoExtractTimeout( void *hnd, Sa
+
+ static SaErrorT
+ IpmiGetHotswapState( void *, SaHpiResourceIdT ,
+- SaHpiHsStateT * ) __attribute__((used));
++ SaHpiHsStateT * ) __asm__("IpmiGetHotswapState") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetHotswapState( void *hnd, SaHpiResourceIdT id,
+@@ -1293,7 +1293,7 @@ IpmiGetHotswapState( void *hnd, SaHpiRes
+
+ static SaErrorT
+ IpmiSetHotswapState( void *, SaHpiResourceIdT,
+- SaHpiHsStateT ) __attribute__((used));
++ SaHpiHsStateT ) __asm__("IpmiSetHotswapState") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetHotswapState( void *hnd, SaHpiResourceIdT id,
+@@ -1315,7 +1315,7 @@ IpmiSetHotswapState( void *hnd, SaHpiRes
+
+ static SaErrorT
+ IpmiRequestHotswapAction( void *, SaHpiResourceIdT,
+- SaHpiHsActionT ) __attribute__((used));
++ SaHpiHsActionT ) __asm__("IpmiRequestHotswapAction") __attribute__((used));
+
+ static SaErrorT
+ IpmiRequestHotswapAction( void *hnd, SaHpiResourceIdT id,
+@@ -1337,7 +1337,7 @@ IpmiRequestHotswapAction( void *hnd, SaH
+
+ static SaErrorT
+ IpmiGetPowerState( void *, SaHpiResourceIdT,
+- SaHpiPowerStateT * ) __attribute__((used));
++ SaHpiPowerStateT * ) __asm__("IpmiGetPowerState") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetPowerState( void *hnd, SaHpiResourceIdT id,
+@@ -1359,7 +1359,7 @@ IpmiGetPowerState( void *hnd, SaHpiResou
+
+ static SaErrorT
+ IpmiSetPowerState( void *, SaHpiResourceIdT,
+- SaHpiPowerStateT ) __attribute__((used));
++ SaHpiPowerStateT ) __asm__("IpmiSetPowerState") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetPowerState( void *hnd, SaHpiResourceIdT id,
+@@ -1381,7 +1381,7 @@ IpmiSetPowerState( void *hnd, SaHpiResou
+
+ static SaErrorT
+ IpmiGetIndicatorState( void *, SaHpiResourceIdT,
+- SaHpiHsIndicatorStateT * ) __attribute__((used));
++ SaHpiHsIndicatorStateT * ) __asm__("IpmiGetIndicatorState") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetIndicatorState( void *hnd, SaHpiResourceIdT id,
+@@ -1403,7 +1403,7 @@ IpmiGetIndicatorState( void *hnd, SaHpiR
+
+ static SaErrorT
+ IpmiSetIndicatorState( void *, SaHpiResourceIdT,
+- SaHpiHsIndicatorStateT ) __attribute__((used));
++ SaHpiHsIndicatorStateT ) __asm__("IpmiSetIndicatorState") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetIndicatorState( void *hnd, SaHpiResourceIdT id,
+@@ -1426,7 +1426,7 @@ IpmiSetIndicatorState( void *hnd, SaHpiR
+ static SaErrorT
+ IpmiControlParm( void *,
+ SaHpiResourceIdT,
+- SaHpiParmActionT ) __attribute__((used));
++ SaHpiParmActionT ) __asm__("IpmiControlParm") __attribute__((used));
+
+ static SaErrorT
+ IpmiControlParm( void *hnd,
+@@ -1449,7 +1449,7 @@ IpmiControlParm( void *hnd,
+
+ static SaErrorT
+ IpmiGetResetState( void *, SaHpiResourceIdT,
+- SaHpiResetActionT * ) __attribute__((used));
++ SaHpiResetActionT * ) __asm__("IpmiGetResetState") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetResetState( void *hnd, SaHpiResourceIdT id,
+@@ -1472,7 +1472,7 @@ IpmiGetResetState( void *hnd, SaHpiResou
+ static SaErrorT
+ IpmiSetResetState( void *,
+ SaHpiResourceIdT,
+- SaHpiResetActionT ) __attribute__((used));
++ SaHpiResetActionT ) __asm__("IpmiSetResetState") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetResetState( void *hnd,
+@@ -1496,7 +1496,7 @@ static SaErrorT
+ IpmiGetWatchdogInfo(void *,
+ SaHpiResourceIdT,
+ SaHpiWatchdogNumT,
+- SaHpiWatchdogT *) __attribute__((used));
++ SaHpiWatchdogT *) __asm__("IpmiGetWatchdogInfo") __attribute__((used));
+
+ static SaErrorT
+ IpmiGetWatchdogInfo(void *hnd,
+@@ -1517,7 +1517,7 @@ static SaErrorT
+ IpmiSetWatchdogInfo(void *,
+ SaHpiResourceIdT,
+ SaHpiWatchdogNumT,
+- SaHpiWatchdogT *) __attribute__((used));
++ SaHpiWatchdogT *) __asm__("IpmiSetWatchdogInfo") __attribute__((used));
+
+ static SaErrorT
+ IpmiSetWatchdogInfo(void *hnd,
+@@ -1537,7 +1537,7 @@ IpmiSetWatchdogInfo(void *hnd,
+ static SaErrorT
+ IpmiResetWatchdog(void *,
+ SaHpiResourceIdT,
+- SaHpiWatchdogNumT) __attribute__((used));
++ SaHpiWatchdogNumT) __asm__("IpmiResetWatchdog") __attribute__((used));
+
+ 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/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch
new file mode 100644
index 000000000..4c545708f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch
@@ -0,0 +1,20 @@
+Fix
+
+sensor_factors_000.cpp:66:5: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned char' in initializer list [-Wc++11-narrowing]
+((dRExp << 4) & 0xf0) | (dBExp & 0x0f ), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: openhpi-3.6.1/plugins/ipmidirect/t/sensor_factors_000.cpp
+===================================================================
+--- openhpi-3.6.1.orig/plugins/ipmidirect/t/sensor_factors_000.cpp
++++ openhpi-3.6.1/plugins/ipmidirect/t/sensor_factors_000.cpp
+@@ -63,7 +63,7 @@ static cIpmiSdr sdr =
+ dB & 0xff,
+ ((dB >> 2) & 0xc0) | (dAccuracy & 0x3f),
+ ((dAccuracy >> 2) & 0xf0) | ((dAccuracyExp << 2) & 0x0c),
+- ((dRExp << 4) & 0xf0) | (dBExp & 0x0f ),
++ (unsigned char)(((dRExp << 4) & 0xf0) | (dBExp & 0x0f )),
+ 0,
+ 0,
+ }
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
index b9b0437b2..ecf71d70f 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
@@ -20,9 +20,12 @@ SECTION = "net"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4"
-DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs"
+DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs autoconf-archive-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://openhpi.init \
+ file://openhpid.service \
+ file://run-ptest \
file://openhpi-netsnmp-cross-compile.patch \
file://openhpi-sysfs-cross-compile.patch \
file://openhpi-libxml2-cross-compile.patch \
@@ -35,11 +38,13 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
file://openhpi-invalide-session.patch \
file://openhpi-use-serial-tests-config-needed-by-ptest.patch \
file://openhpi-fix-alignment-issue.patch \
- \
- file://openhpi.init \
- file://openhpid.service \
- file://run-ptest \
-"
+ file://0001-Fix-build-failures-with-gcc7.patch \
+ file://c++11.patch \
+ file://clang-c++11.patch \
+ file://fix-narrowing-warning.patch \
+ file://0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch \
+ file://0001-ipmidirect-Replace-__STRING.patch \
+ "
SRC_URI[md5sum] = "4718b16e0f749b5ad214a9b04f45dd23"
SRC_URI[sha256sum] = "e0a810cb401c4bdcfc9551f2e6afd5a8ca4b411f5ee3bc60c19f82fd6e84a3dc"
@@ -53,9 +58,10 @@ FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"
INSANE_SKIP_${PN}-libs = "dev-so"
RDEPENDS_${PN} += "${PN}-libs"
-PACKAGECONFIG ??= "libgcrypt"
+PACKAGECONFIG ??= "libgcrypt non32bit"
PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt,"
+PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,,"
do_install_append () {
install -m 0755 -d ${D}${sysconfdir}/${BPN}
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Remove-unused-variables.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Remove-unused-variables.patch
deleted file mode 100644
index 1c88b81cd..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Remove-unused-variables.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From a441a75fbb8451268a8a57616c7158cddc1823aa Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Apr 2017 12:40:19 -0700
-Subject: [PATCH] Remove unused variables
-
-Fixes build errors with gcc7 e.g.
-
-../opensaf-5.2.0/src/amf/amfd/imm.cc: In member function 'bool ImmObjCreate::immobj_update_required()':
-../opensaf-5.2.0/src/amf/amfd/imm.cc:2174:28: error: unused variable 'pos' [-Werror=unused-variable]
- std::string::size_type pos;
- ^~~
-../opensaf-5.2.0/src/amf/amfd/imm.cc:2215:28: error: unused variable 'pos' [-Werror=unused-variable]
- std::string::size_type pos;
- ^~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/amf/amfd/imm.cc | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/src/amf/amfd/imm.cc b/src/amf/amfd/imm.cc
-index 7932364..4f47b65 100644
---- a/src/amf/amfd/imm.cc
-+++ b/src/amf/amfd/imm.cc
-@@ -2171,7 +2171,6 @@ bool ImmObjCreate::immobj_update_required() {
- if (class_type == AVSV_SA_AMF_SI_ASSIGNMENT) {
- std::string su_name;
- std::string sisu_name;
-- std::string::size_type pos;
- while ((attribute = attrValues_[i++]) != nullptr) {
- if (!strcmp(attribute->attrName, "safSISU")) {
- sisu_name = Amf::to_string(
-@@ -2212,7 +2211,6 @@ bool ImmObjCreate::immobj_update_required() {
- } else if (class_type == AVSV_SA_AMF_CSI_ASSIGNMENT) {
- std::string comp_name;
- std::string csicomp_name;
-- std::string::size_type pos;
- AVD_CSI *csi = nullptr;
- AVD_COMP *comp = nullptr;
- AVD_COMP_CSI_REL *compcsi = nullptr;
---
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch
new file mode 100644
index 000000000..76c47c658
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch
@@ -0,0 +1,34 @@
+From 508ea7c0d67243feb1684eaa83569cb687561d64 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
+
+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
+--- a/src/imm/common/immpbe_dump.cc
++++ b/src/imm/common/immpbe_dump.cc
+@@ -26,12 +26,12 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <time.h>
+-#include <wait.h>
+ #include <unistd.h>
+ #include <iostream>
+ #include <sstream>
+ #include <stdint.h>
+ #include <sys/stat.h>
++#include <sys/wait.h>
+ #include <libgen.h>
+
+ #include <saAis.h>
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch
new file mode 100644
index 000000000..4a2a825f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch
@@ -0,0 +1,122 @@
+From 6442b57a855e273aa5a3d93e8596783cea128073 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
+
+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 -
+ src/mds/mds_dt_tcp_disc.h | 2 +-
+ src/mds/mds_dt_tipc.c | 1 -
+ src/mds/mds_dt_tipc.h | 2 +-
+ src/mds/mds_dt_trans.c | 1 -
+ src/ntf/ntfd/NtfLogger.cc | 2 +-
+ 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
+--- a/src/base/os_defs.h
++++ b/src/base/os_defs.h
+@@ -47,17 +47,18 @@
+ #include <sys/stat.h>
+ #include <sys/msg.h> /* Added for message-queues : PM : 28/10/03 */
+ #include <syslog.h>
+-#ifndef __USE_GNU
++#include <limits.h>
++#ifndef _GNU_SOURCE
+ struct msgbuf {
+ long int mtype;
+ char mtext[1];
+ };
+ #endif /* else defined in <sys/msg.h> */
+ #include <sys/time.h>
+-#include <sys/fcntl.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+
++#include <fcntl.h>
+ #include <signal.h>
+ #include <pthread.h>
+
+diff --git a/src/mds/mds_dt_tcp.c b/src/mds/mds_dt_tcp.c
+index 1407eb1ab..a87c22faa 100644
+--- a/src/mds/mds_dt_tcp.c
++++ b/src/mds/mds_dt_tcp.c
+@@ -27,7 +27,6 @@
+
+ #include <stdlib.h>
+ #include <sched.h>
+-#include <sys/poll.h>
+ #include <poll.h>
+ #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
+--- a/src/mds/mds_dt_tcp_disc.h
++++ b/src/mds/mds_dt_tcp_disc.h
+@@ -24,7 +24,7 @@
+ #include "base/ncssysf_tsk.h"
+ #include "base/ncssysf_mem.h"
+ #include "mds_dt_tcp_disc.h"
+-#include "sys/poll.h"
++#include <poll.h>
+
+ /* 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
+--- a/src/mds/mds_dt_tipc.c
++++ b/src/mds/mds_dt_tipc.c
+@@ -35,7 +35,6 @@
+ #include <stdbool.h>
+ #include <stdlib.h>
+ #include <sched.h>
+-#include <sys/poll.h>
+ #include <poll.h>
+ #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
+--- a/src/mds/mds_dt_tipc.h
++++ b/src/mds/mds_dt_tipc.h
+@@ -32,7 +32,7 @@
+ #include <assert.h>
+ #include <string.h>
+ #include <sys/param.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <netdb.h>
+ #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
+--- a/src/mds/mds_dt_trans.c
++++ b/src/mds/mds_dt_trans.c
+@@ -26,7 +26,6 @@
+ #include "mds_core.h"
+ #include "base/osaf_utility.h"
+
+-#include <sys/poll.h>
+ #include <poll.h>
+
+ #define MDS_PROT_TCP 0xA0
+diff --git a/src/ntf/ntfd/NtfLogger.cc b/src/ntf/ntfd/NtfLogger.cc
+index 84014b578..31b1ccc6c 100644
+--- a/src/ntf/ntfd/NtfLogger.cc
++++ b/src/ntf/ntfd/NtfLogger.cc
+@@ -20,7 +20,7 @@
+ * INCLUDE FILES
+ * ========================================================================
+ */
+-#include <sys/poll.h>
++#include <poll.h>
+
+ #include "base/osaf_utility.h"
+ #include <saAis.h>
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.2.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.17.07.bb
index be79ba8cb..74483d778 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.2.0.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.17.07.bb
@@ -22,10 +22,11 @@ SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
file://0001-configure-Pass-linker-specific-options-with-Wl.patch \
file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \
- file://0001-Remove-unused-variables.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] = "08991fd467ae9dcea3c8747be8e3981e"
-SRC_URI[sha256sum] = "903478244afe37e329be93050f1d48fa18c84ea17862134c4217b920e267a04a"
+SRC_URI[md5sum] = "125bcd9aabd7412aedcbfbf73f4e6196"
+SRC_URI[sha256sum] = "3fb2239bb2c9328c8b45368ff8d8de979ea286a27edc9871d218200e88bb91cc"
inherit autotools useradd systemd pkgconfig
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch
new file mode 100644
index 000000000..6b86e3925
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch
@@ -0,0 +1,26 @@
+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/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch
new file mode 100644
index 000000000..763a4a9b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch
@@ -0,0 +1,64 @@
+From a0d0de10e4c5ab55bc2fa48798079e2876b1211d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 26 Aug 2017 10:29:37 -0700
+Subject: [PATCH] makedefs: Use native compiler to build makedefs.test
+
+Its a binary used during build
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ makedefs | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/makedefs b/makedefs
+index 9fd4bc2..5ee7747 100644
+--- a/makedefs
++++ b/makedefs
+@@ -526,7 +526,7 @@ int main(int argc, char **argv)
+ exit(0);
+ }
+ EOF
+- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+ rm -f makedefs.test makedefs.test.[co]
+ fi;;
+ esac
+@@ -762,7 +762,7 @@ int main(int argc, char **argv)
+ exit(0);
+ }
+ EOF
+- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+ ./makedefs.test 2>/dev/null ||
+ CCARGS="$CCARGS -DNO_SIGSETJMP"
+ rm -f makedefs.test makedefs.test.[co]
+@@ -796,7 +796,7 @@ int main(int argc, char **argv)
+ &error) != 14);
+ }
+ EOF
+- ${CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
+ $icu_ldflags >/dev/null 2>&1
+ if ./makedefs.test 2>/dev/null ; then
+ CCARGS="$CCARGS $icu_cppflags"
+@@ -911,7 +911,7 @@ int main(void)
+ exit(ferror(stdout) ? 1 : 0);
+ }
+ EOF
+- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
++ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
+ ./makedefs.test || exit 1
+ rm -f makedefs.test makedefs.test.[co]
+ }
+@@ -1067,7 +1067,7 @@ int main(void)
+ exit(ferror(stdout) ? 1 : 0);
+ }
+ EOF
+- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
++ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
+ parm_val=`./makedefs.test` || exit 1
+ rm -f makedefs.test makedefs.test.[co]
+ eval ${parm_name}=\""\$parm_val"\"
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/icu-config.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/icu-config.patch
new file mode 100644
index 000000000..9bd9c2f03
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/icu-config.patch
@@ -0,0 +1,21 @@
+do not entertain cppflags from icu, this is because
+icu-config feeds the -I path without sysroot which
+caused native headers to be included and build is
+corrupted in any case its just adding -I/usr/include
+to the CCARGS which we loose nothing if its not
+entertained.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: postfix-3.2.2/makedefs
+===================================================================
+--- postfix-3.2.2.orig/makedefs
++++ postfix-3.2.2/makedefs
+@@ -799,7 +799,6 @@ EOF
+ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
+ $icu_ldflags >/dev/null 2>&1
+ if ./makedefs.test 2>/dev/null ; then
+- CCARGS="$CCARGS $icu_cppflags"
+ SYSLIBS="$SYSLIBS $icu_ldflags"
+ else
+ CCARGS="$CCARGS -DNO_EAI"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix-install.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix-install.patch
new file mode 100644
index 000000000..45479bd52
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix-install.patch
@@ -0,0 +1,26 @@
+Index: postfix-3.2.2/postfix-install
+===================================================================
+--- postfix-3.2.2.orig/postfix-install
++++ postfix-3.2.2/postfix-install
+@@ -843,7 +843,7 @@ IFS="$BACKUP_IFS"
+ # the wrong place when Postfix is being upgraded.
+
+ case "$mail_version" in
+-"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
++"") mail_version="`$POSTCONF -c $CONFIG_DIRECTORY -dhx mail_version`" || exit 1
+ esac
+
+ # Undo MAIL_VERSION expansion at the end of a parameter value. If
+Index: postfix-3.2.2/Makefile.in
+===================================================================
+--- postfix-3.2.2.orig/Makefile.in
++++ postfix-3.2.2/Makefile.in
+@@ -20,7 +20,7 @@ META = meta/main.cf.proto meta/master.cf
+ EXPAND = sed -e "s;\$${LIB_PREFIX};$(LIB_PREFIX);" \
+ -e "s;\$${LIB_SUFFIX};$(LIB_SUFFIX);"
+ SHLIB_DIR_OVERRIDE = \
+- $${shlib_directory:-`$(SHLIB_ENV) bin/postconf -dhx shlib_directory`}
++ $${shlib_directory:-`$(SHLIB_ENV) $(POSTCONF) -dhx shlib_directory`}
+
+ default: update
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
index 4c794ffd6..a588bd347 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
@@ -60,20 +60,24 @@ export AUXLIBS-ldap = "\
export CCARGS-ldap_class-native = ""
export AUXLIBS-ldap_class-native = ""
+export CCARGS-nonis_libc-musl = "-DNO_NIS"
+export CCARGS-nonis = ""
+
# SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH
# current openldap didn't enable SASL
export CCARGS-sasl = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I=/usr/include/sasl', '', d)}"
+ ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${STAGING_INCDIR}/sasl', '', d)}"
export AUXLIBS-sasl = "\
${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}"
export CCARGS-sasl_class-native = ""
export AUXLIBS-sasl_class-native = ""
# PCRE, TLS support default
-export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS ${CCARGS-ldap} ${CCARGS-sasl}"
+export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS -I${STAGING_INCDIR}/openssl ${CCARGS-ldap} ${CCARGS-sasl} ${CCARGS-nonis}"
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= "
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.1.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.1.1.bb
deleted file mode 100644
index dbbe24ca3..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.1.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require postfix.inc
-
-SRC_URI[md5sum] = "40d72ea143af7ab0038c2cee1f483707"
-SRC_URI[sha256sum] = "3deda4c34631970490b1b5fbb559905f93531bf1c7eb00e38b0d0deb1dba9982"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb
new file mode 100644
index 000000000..439ede9b6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb
@@ -0,0 +1,18 @@
+require postfix.inc
+
+SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
+ file://makedefs.patch \
+ file://install.patch \
+ file://main.cf_2.0 \
+ file://postfix \
+ file://internal_recipient \
+ file://postfix.service \
+ file://aliasesdb \
+ file://check_hostname.sh \
+ 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/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
index 19617a6bb..9816d4d22 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
@@ -9,11 +9,11 @@ redefine PR_RUN_DIR as ${localstatedir}/run
Signed-off-By: Armin Kuster <akuster808@gmail.com>
-Index: proftpd-1.3.5/Make.rules.in
+Index: proftpd-1.3.6/Make.rules.in
===================================================================
---- proftpd-1.3.5.orig/Make.rules.in
-+++ proftpd-1.3.5/Make.rules.in
-@@ -29,9 +29,9 @@ INSTALL=@INSTALL@
+--- proftpd-1.3.6.orig/Make.rules.in
++++ proftpd-1.3.6/Make.rules.in
+@@ -30,9 +30,9 @@ INSTALL=@INSTALL@
INSTALL_STRIP=@INSTALL_STRIP@
INSTALL_USER=@install_user@
INSTALL_GROUP=@install_group@
@@ -26,10 +26,10 @@ Index: proftpd-1.3.5/Make.rules.in
RM=rm -f
SHELL=@CONFIG_SHELL@
-Index: proftpd-1.3.5/Makefile.in
+Index: proftpd-1.3.6/Makefile.in
===================================================================
---- proftpd-1.3.5.orig/Makefile.in
-+++ proftpd-1.3.5/Makefile.in
+--- proftpd-1.3.6.orig/Makefile.in
++++ proftpd-1.3.6/Makefile.in
@@ -105,7 +105,6 @@ check: proftpd$(EXEEXT)
$(DESTDIR)$(localedir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(libdir) $(DESTDIR)$(pkgconfigdir) $(DESTDIR)$(libdir)/proftpd $(DESTDIR)$(libexecdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8:
@if [ ! -d $@ ]; then \
@@ -60,11 +60,11 @@ Index: proftpd-1.3.5/Makefile.in
$(top_srcdir)/sample-configurations/basic.conf \
$(DESTDIR)$(sysconfdir)/proftpd.conf ; \
fi
-Index: proftpd-1.3.5/configure
+Index: proftpd-1.3.6/configure
===================================================================
---- proftpd-1.3.5.orig/configure
-+++ proftpd-1.3.5/configure
-@@ -38255,7 +38255,7 @@ _ACEOF
+--- proftpd-1.3.6.orig/configure
++++ proftpd-1.3.6/configure
+@@ -41777,7 +41777,7 @@ _ACEOF
cat >>confdefs.h <<_ACEOF
@@ -72,9 +72,9 @@ Index: proftpd-1.3.5/configure
+#define PR_RUN_DIR "`eval echo "${localstatedir}"/run/`"
_ACEOF
- cat >>confdefs.h <<_ACEOF
-@@ -38263,7 +38263,7 @@ cat >>confdefs.h <<_ACEOF
- _ACEOF
+
+@@ -41787,7 +41787,7 @@ _ACEOF
+
cat >>confdefs.h <<_ACEOF
-#define PR_PID_FILE_PATH "`eval echo "${localstatedir}/proftpd.pid"`"
@@ -82,25 +82,25 @@ Index: proftpd-1.3.5/configure
_ACEOF
-Index: proftpd-1.3.5/configure.in
+Index: proftpd-1.3.6/configure.in
===================================================================
---- proftpd-1.3.5.orig/configure.in
-+++ proftpd-1.3.5/configure.in
-@@ -2971,8 +2971,8 @@ locale_dir="`eval echo ${locale_dir}`"
- AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`")
+--- proftpd-1.3.6.orig/configure.in
++++ proftpd-1.3.6/configure.in
+@@ -3833,8 +3833,8 @@ locale_dir="`eval echo ${locale_dir}`"
+ AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`", [Define the locale directory])
- AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`")
--AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`")
--AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/proftpd.pid"`")
-+AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/run/proftpd.conf"`")
-+AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/run/proftpd.pid"`")
+ AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`", [Define the run directory])
+-AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`", [Define the configuration file path])
+-AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/proftpd.pid"`", [Define the PID file path])
++AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/run/proftpd.conf"`", [Define the configuration file path])
++AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/run/proftpd.pid"`", [Define the PID file path])
prefix="$pr_saved_prefix"
exec_prefix="$pr_saved_exec_prefix"
-Index: proftpd-1.3.5/lib/libcap/Makefile
+Index: proftpd-1.3.6/lib/libcap/Makefile
===================================================================
---- proftpd-1.3.5.orig/lib/libcap/Makefile
-+++ proftpd-1.3.5/lib/libcap/Makefile
+--- proftpd-1.3.6.orig/lib/libcap/Makefile
++++ proftpd-1.3.6/lib/libcap/Makefile
@@ -26,7 +26,7 @@ OBJS=$(addsuffix .o, $(FILES))
all: $(LIBNAME)
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5b.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb
index 73efac2fb..409947265 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5b.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb
@@ -13,9 +13,8 @@ SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz \
file://build_fixup.patch \
file://proftpd.service \
"
-
-SRC_URI[md5sum] = "f7b8e3a383b34a894c2502db74ccccde"
-SRC_URI[sha256sum] = "afc1789f2478acf88dfdc7d70da90a4fa2786d628218e9574273295d044b4fc8"
+iSRC_URI[md5sum] = "13270911c42aac842435f18205546a1b"
+SRC_URI[sha256sum] = "91ef74b143495d5ff97c4d4770c6804072a8c8eb1ad1ecc8cc541b40e152ecaf"
inherit autotools-brokensep useradd update-rc.d systemd
@@ -63,6 +62,8 @@ PACKAGECONFIG[auth] = "--enable-auth-file, --disable-auth-file"
# proftpd uses libltdl which currently makes configuring using
# autotools.bbclass a pain...
do_configure () {
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
oe_runconf
cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S}/libtool
}
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.14.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.14.bb
deleted file mode 100644
index 2525249cb..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.14.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-
-require radvd.inc
-
-SRC_URI[md5sum] = "acd3883dece2c7888d15596b05c9fae4"
-SRC_URI[sha256sum] = "46d31c05daea11c3d1e3dc092997d3631b3bc72b20a4f279b05304b83dbd7aa8"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.17.bb
new file mode 100644
index 000000000..4baea01d0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.17.bb
@@ -0,0 +1,5 @@
+
+require radvd.inc
+
+SRC_URI[md5sum] = "64ee3fdb5544bcddef1c6cd80d77fa0a"
+SRC_URI[sha256sum] = "53757e7f2164899e1145482f1ae91829600a6e2f6fec29cfb3b350a3bb45bd5d"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
new file mode 100644
index 000000000..0c0a3aad1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
@@ -0,0 +1,116 @@
+From 14d469bc82c758116aef7d549abd49c131b4170f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 22 Apr 2017 11:54:57 -0700
+Subject: [PATCH] configure: Check for -Wno-error=format-truncation compiler
+ option
+
+If this option is supported by compiler then disable it ( gcc7+)
+Fixes
+client.c:834:23: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1010 [-Werror=format-truncation=]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 3 +-
+ m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 76 insertions(+), 1 deletion(-)
+ create mode 100644 m4/ax_check_compile_flag.m4
+
+Index: squid-3.5.26/configure.ac
+===================================================================
+--- squid-3.5.26.orig/configure.ac
++++ squid-3.5.26/configure.ac
+@@ -26,6 +26,7 @@ m4_include([acinclude/pkg.m4])
+ m4_include([acinclude/lib-checks.m4])
+ m4_include([acinclude/ax_cxx_compile_stdcxx_11.m4])
+ m4_include([acinclude/ax_cxx_0x_types.m4])
++m4_include([acinclude/ax_check_compile_flag.m4])
+
+ HOSTCXX="$BUILD_CXX"
+ PRESET_CFLAGS="$CFLAGS"
+@@ -44,6 +45,7 @@ AC_PROG_CXX
+ AC_LANG([C++])
+ AC_CANONICAL_HOST
+
++AX_CHECK_COMPILE_FLAG([-Werror=format-truncation],[CFLAGS="$CFLAGS -Wno-error=format-truncation" CXXFLAGS="$CXXFLAGS -Wno-error=format-truncation"])
+ # Clang 3.2 on some CPUs requires -march-native to detect correctly.
+ # GCC 4.3+ can also produce faster executables when its used.
+ # But building inside a virtual machine environment has been found to
+Index: squid-3.5.26/acinclude/ax_check_compile_flag.m4
+===================================================================
+--- /dev/null
++++ squid-3.5.26/acinclude/ax_check_compile_flag.m4
+@@ -0,0 +1,74 @@
++# ===========================================================================
++# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
++#
++# DESCRIPTION
++#
++# Check whether the given FLAG works with the current language's compiler
++# or gives an error. (Warnings, however, are ignored)
++#
++# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
++# success/failure.
++#
++# If EXTRA-FLAGS is defined, it is added to the current language's default
++# flags (e.g. CFLAGS) when the check is done. The check is thus made with
++# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
++# force the compiler to issue an error when a bad flag is given.
++#
++# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
++#
++# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
++# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
++#
++# LICENSE
++#
++# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
++# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
++#
++# This program is free software: you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by the
++# Free Software Foundation, either version 3 of the License, or (at your
++# option) any later version.
++#
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
++# Public License for more details.
++#
++# You should have received a copy of the GNU General Public License along
++# with this program. If not, see <https://www.gnu.org/licenses/>.
++#
++# As a special exception, the respective Autoconf Macro's copyright owner
++# gives unlimited permission to copy, distribute and modify the configure
++# scripts that are the output of Autoconf when processing the Macro. You
++# need not follow the terms of the GNU General Public License when using
++# or distributing such scripts, even though portions of the text of the
++# Macro appear in them. The GNU General Public License (GPL) does govern
++# all other use of the material that constitutes the Autoconf Macro.
++#
++# This special exception to the GPL applies to versions of the Autoconf
++# Macro released by the Autoconf Archive. When you make and distribute a
++# modified version of the Autoconf Macro, you may extend this special
++# exception to the GPL to apply to your modified version as well.
++
++#serial 5
++
++AC_DEFUN([AX_CHECK_COMPILE_FLAG],
++[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
++AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
++AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
++ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
++ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
++ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
++ [AS_VAR_SET(CACHEVAR,[yes])],
++ [AS_VAR_SET(CACHEVAR,[no])])
++ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
++AS_VAR_IF(CACHEVAR,yes,
++ [m4_default([$2], :)],
++ [m4_default([$3], :)])
++AS_VAR_POPDEF([CACHEVAR])dnl
++])dnl AX_CHECK_COMPILE_FLAGS
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch
new file mode 100644
index 000000000..082a1114b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch
@@ -0,0 +1,36 @@
+From a78f2f0feda8f92cb59afe8236bd90726908768f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 25 Jun 2017 00:59:24 -0700
+Subject: [PATCH] tools.cc: fixed unused-result warning
+
+fix
+| ../../squid-3.5.26/src/tools.cc: In function 'void enter_suid()':
+| ../../squid-3.5.26/src/tools.cc:616:11: error: ignoring return value of 'int setuid(__uid_t)', declared with attribute warn_unused_result [-Werror=unused-result]
+| setuid(0);
+| ~~~~~~^~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ src/tools.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tools.cc b/src/tools.cc
+index 8137a03..843e266 100644
+--- a/src/tools.cc
++++ b/src/tools.cc
+@@ -612,8 +612,8 @@ enter_suid(void)
+ if (setresuid((uid_t)-1, 0, (uid_t)-1) < 0)
+ debugs (21, 3, "enter_suid: setresuid failed: " << xstrerror ());
+ #else
+-
+- setuid(0);
++ if (setuid(0) < 0)
++ debugs(50, DBG_IMPORTANT, "WARNING: no_suid: setuid(0): " << xstrerror());
+ #endif
+ #if HAVE_PRCTL && defined(PR_SET_DUMPABLE)
+ /* Set Linux DUMPABLE flag */
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch
new file mode 100644
index 000000000..cc1ea78a5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch
@@ -0,0 +1,17 @@
+../../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
+Index: squid-3.5.26/src/DiskIO/DiskThreads/aiops.cc
+===================================================================
+--- squid-3.5.26.orig/src/DiskIO/DiskThreads/aiops.cc
++++ squid-3.5.26/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/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.25.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb
index 5116383b8..3ee96abb7 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.25.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.26.bb
@@ -22,16 +22,22 @@ SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${P
file://set_sysroot_patch.patch \
file://squid-don-t-do-squid-conf-tests-at-build-time.patch \
file://0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch \
+ file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
+ file://gcc7-fixes.patch \
+ file://0001-tools.cc-fixed-unused-result-warning.patch \
"
-SRC_URI[md5sum] = "c34b228129a755f363367c45c46287ba"
-SRC_URI[sha256sum] = "0bfd6182154b7f29574d71c659f1cfd1b7d9be9356895dac70dc0f3696a0639b"
+
+SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch"
+
+SRC_URI[md5sum] = "dc1830cd361e077814aa39bcc3691d8b"
+SRC_URI[sha256sum] = "41d8845863dcd026c856508cd1599d417c8947ffd96e86e24085f9893cb8b8c2"
LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \
file://errors/COPYRIGHT;md5=8861130fae91400bcf99b66f133172b3 \
"
-DEPENDS = "libtool krb5 openldap db cyrus-sasl"
+DEPENDS = "libtool krb5 openldap db cyrus-sasl openssl expat libxml2"
-inherit autotools useradd ptest
+inherit autotools pkgconfig useradd ptest perlnative
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid"
@@ -46,12 +52,14 @@ PACKAGECONFIG[noatomics] = "squid_cv_gnu_atomics=no,squid_cv_gnu_atomics=yes,,"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
BASIC_AUTH = "DB SASL LDAP"
-BASIC_AUTH_append_libc-glibc = " NIS"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
BASIC_AUTH += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'PAM', '', d)}"
-EXTRA_OECONF += "--with-default-user=squid --enable-auth-basic='${BASIC_AUTH}' --sysconfdir=${sysconfdir}/${BPN} --with-logdir=${localstatedir}/log/${BPN}"
+EXTRA_OECONF += "--with-default-user=squid --enable-auth-basic='${BASIC_AUTH}' \
+ --sysconfdir=${sysconfdir}/${BPN} \
+ --with-logdir=${localstatedir}/log/${BPN} \
+ 'PERL=${USRBINPATH}/env perl'"
export BUILDCXXFLAGS="${BUILD_CXXFLAGS}"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch
new file mode 100644
index 000000000..cead977e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch
@@ -0,0 +1,62 @@
+From 941038fc05be21202cab7a7a9434097fb55ecbe0 Mon Sep 17 00:00:00 2001
+From: Thorsten Glaser <tg@mirbsd.de>
+Date: Thu, 31 Jul 2014 16:29:41 +0930
+Subject: [PATCH] __progname[] is provided by libc
+
+Rename local variable to tftpd_progname to avoid a clash with glibc
+global symbols and work around Debian bug #519006 (Closes: #564052).
+
+[ hpa: specifically, double-underscore symbols in C are reserved for
+ the implementation, i.e. compiler/libc. ]
+
+Signed-off-by: Ron Lee <ron@debian.org>
+Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
+---
+ tftpd/tftpd.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/tftpd/tftpd.c b/tftpd/tftpd.c
+index e247b97..5fec7bf 100644
+--- a/tftpd/tftpd.c
++++ b/tftpd/tftpd.c
+@@ -76,7 +76,7 @@ static int ai_fam = AF_INET;
+ #define TRIES 6 /* Number of attempts to send each packet */
+ #define TIMEOUT_LIMIT ((1 << TRIES)-1)
+
+-const char *__progname;
++const char *tftpd_progname;
+ static int peer;
+ static unsigned long timeout = TIMEOUT; /* Current timeout value */
+ static unsigned long rexmtval = TIMEOUT; /* Basic timeout value */
+@@ -395,9 +395,9 @@ int main(int argc, char **argv)
+ /* basename() is way too much of a pain from a portability standpoint */
+
+ p = strrchr(argv[0], '/');
+- __progname = (p && p[1]) ? p + 1 : argv[0];
++ tftpd_progname = (p && p[1]) ? p + 1 : argv[0];
+
+- openlog(__progname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
++ openlog(tftpd_progname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+
+ srand(time(NULL) ^ getpid());
+
+@@ -946,14 +946,14 @@ int main(int argc, char **argv)
+ syslog daemon gets restarted by the time we get here. */
+ if (secure && standalone) {
+ closelog();
+- openlog(__progname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
++ openlog(tftpd_progname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+ }
+
+ #ifdef HAVE_TCPWRAPPERS
+ /* Verify if this was a legal request for us. This has to be
+ done before the chroot, while /etc is still accessible. */
+ request_init(&wrap_request,
+- RQ_DAEMON, __progname,
++ RQ_DAEMON, tftpd_progname,
+ RQ_FILE, fd,
+ RQ_CLIENT_SIN, &from, RQ_SERVER_SIN, &myaddr, 0);
+ sock_methods(&wrap_request);
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.service
new file mode 100644
index 000000000..97d56586b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Tftp Server
+Requires=tftpd-hpa.socket
+
+[Service]
+ExecStart=@SBINDIR@/in.tftpd-hpa -s /var/lib/tftpboot
+StandardInput=socket
+
+[Install]
+Also=tftpd-hpa.socket
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.socket b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.socket
new file mode 100644
index 000000000..8764c1de3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.socket
@@ -0,0 +1,8 @@
+[Unit]
+Description=Tftp Server Activation Socket
+
+[Socket]
+ListenDatagram=69
+
+[Install]
+WantedBy=sockets.target
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
index 7f567133b..132972b33 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
@@ -7,6 +7,7 @@ remote machine. This program and TFTP provide very little security, \
and should not be enabled unless it is expressly needed."
DEPENDS = "tcp-wrappers readline"
SECTION = "net"
+HOMEPAGE = "http://freecode.com/projects/tftp-hpa"
LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://MCONFIG.in;beginline=1;endline=9;md5=c28ba5adb43041fae4629db05c83cbdd \
file://tftp/tftp.c;beginline=1;endline=32;md5=988c1cba99d70858a26cd877209857f4"
@@ -26,12 +27,15 @@ SRC_URI = "http://kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-${PV}.t
file://add-error-check-for-disk-filled-up.patch \
file://tftp-hpa-bug-fix-on-separated-CR-and-LF.patch \
file://fix-writing-emtpy-file.patch \
+ file://0001-__progname-is-provided-by-libc.patch \
+ file://tftpd-hpa.socket \
+ file://tftpd-hpa.service \
"
SRC_URI[md5sum] = "46c9bd20bbffa62f79c958c7b99aac21"
SRC_URI[sha256sum] = "0a9f88d4c1c02687b4853b02ab5dd8779d4de4ffdb9b2e5c9332841304d1a269"
-inherit autotools-brokensep update-rc.d update-alternatives
+inherit autotools-brokensep update-rc.d update-alternatives systemd
export AR = "${HOST_PREFIX}ar cq"
@@ -60,6 +64,11 @@ do_install() {
install -d ${D}${sysconfdir}/default
install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/tftpd-hpa
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/tftpd-hpa.socket ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/tftpd-hpa.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/tftpd-hpa.service
}
FILES_${PN} = "${bindir}"
@@ -77,3 +86,6 @@ ALTERNATIVE_${PN} = "tftp"
ALTERNATIVE_TARGET[tftp] = "${bindir}/tftp-hpa"
ALTERNATIVE_PRIORITY = "60"
+SYSTEMD_PACKAGES = "tftp-hpa-server"
+SYSTEMD_SERVICE_tftp-hpa-server = "tftpd-hpa.socket tftpd-hpa.service"
+SYSTEMD_AUTO_ENABLE_tftp-hpa-server = "enable"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.conf b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.conf
new file mode 100644
index 000000000..e8b93ec37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.conf
@@ -0,0 +1,2 @@
+# network_device shelf slot file/disk/partition mac[,mac[,mac]]
+#eth0 0 0 /dev/sdb 00:11:22:33:44:55
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.init
new file mode 100644
index 000000000..0298c8001
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.init
@@ -0,0 +1,193 @@
+#!/bin/sh
+#
+# Init script for vblade (ATA over Ethernet daemon)
+#
+# chkconfig: - 30 70
+# description: vblade AoE daemon
+#
+# processname: vblade
+# config: /etc/vblade.conf
+#
+# Shamelessly hacked together from other init scripts (sshd, mostly)
+# integrate vblade.init from Fedora's vblade-14-6.fc12.src.rpm
+#
+
+RETVAL=0
+prog=vblade
+
+spawn_vblade() {
+ ALLOWMACS=""
+ [ -n "$5" ] && ALLOWMACS="-m $5"
+ ID="$1-e$2.$3"
+ if [ ! -d "/var/run/$prog" ]; then
+ mkdir /var/run/$prog
+ fi
+ PID_FILE=/var/run/$prog/${ID}.pid
+ $prog $ALLOWMACS $2 $3 $1 $4 >> /var/log/$prog.log 2>&1 &
+ pid=$!
+ RETVAL=$?
+ echo $pid > $PID_FILE
+ echo -n $"$4 (e$2.$3@$1) [pid $pid]"
+ [ "$RETVAL" = 0 ] && echo "success" || echo "failure"
+ echo
+}
+
+start() {
+ local ret
+
+ echo $"Starting up $prog: "
+
+ #/var/lock/subsys/$prog exists?
+ status $prog 2>&1 > /dev/null
+ ret=$?
+
+ if [ "$ret" = "2" ]; then
+ echo "$prog dead but subsys locked"
+ echo
+ return 2
+ else
+ if [ "$ret" = "0" ]; then
+ #is running
+ echo "already running"
+ return 0
+ fi
+ fi
+
+ if [ 0 -ne `grep -vc '^#\|^$' /etc/$prog.conf` ]
+ then
+ grep -v '^#' /etc/$prog.conf | sed -e 's/ / /g' -e 's/ / /g' | while read line
+ do
+ spawn_vblade $line
+ done
+ touch /var/lock/subsys/$prog
+ else
+ echo -n "empty $prog.conf?"
+ echo " passed"
+ echo
+ fi
+}
+
+stop() {
+ echo -n $"Shutting down $prog: "
+ for pidfile in `ls /var/run/$prog/*.pid 2>/dev/null`
+ do
+ kill -TERM `cat $pidfile`
+ rm -f $pidfile
+ done
+ echo "success"
+ echo
+ rm -f /var/lock/subsys/$prog
+}
+
+__pids_var_run() {
+ local base=${1##*/}
+ local pid_file=${2:-/var/run/$base.pid}
+
+ pid=
+ if [ -f "$pid_file" ] ; then
+ local line p
+
+ while : ; do
+ read line
+ [ -z "$line" ] && break
+ for p in $line ; do
+ [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
+ done
+ done < "$pid_file"
+
+ if [ -n "$pid" ]; then
+ return 0
+ fi
+ return 1 # "Program is dead and /var/run pid file exists"
+ fi
+ return 3 # "Program is not running"
+}
+
+__pids_pidof() {
+ pidof "$1" || pidof "${1##*/}"
+}
+
+status() {
+ local base pid lock_file= pid_file=
+
+ # Test syntax.
+ if [ "$#" = 0 ] ; then
+ echo $"Usage: status [-p pidfile] {program}"
+ return 1
+ fi
+ if [ "$1" = "-p" ]; then
+ pid_file=$2
+ shift 2
+ fi
+ if [ "$1" = "-l" ]; then
+ lock_file=$2
+ shift 2
+ fi
+ base=${1##*/}
+
+ # First try "pidof"
+ __pids_var_run "$1" "$pid_file"
+ RC=$?
+ if [ -z "$pid_file" -a -z "$pid" ]; then
+ pid="$(__pids_pidof "$1")"
+ fi
+ if [ -n "$pid" ]; then
+ echo $"${base} (pid $pid) is running..."
+ return 0
+ fi
+
+ case "$RC" in
+ 0)
+ echo $"${base} (pid $pid) is running..."
+ return 0
+ ;;
+ 1)
+ echo $"${base} dead but pid file exists"
+ return 1
+ ;;
+ esac
+ if [ -z "${lock_file}" ]; then
+ lock_file=${base}
+ fi
+ # See if /var/lock/subsys/${lock_file} exists
+ if [ -f /var/lock/subsys/${lock_file} ]; then
+ echo $"${base} dead but subsys locked"
+ return 2
+ fi
+ echo $"${base} is stopped"
+ return 3
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ reload)
+ # yes, this sucks, but the vblade processes die on SIGHUP
+ stop
+ start
+ ;;
+ condrestart)
+ if [ -f /var/lock/subsys/$prog ]; then
+ stop
+ # avoid race
+ sleep 3
+ start
+ fi
+ ;;
+ status)
+ status $prog
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
+ RETVAL=1
+esac
+exit $RETVAL
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.service
new file mode 100644
index 000000000..83a4d5dcb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/vblade.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Virtual EtherDrive blade AoE target
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=@BINDIR@/vblade.init start
+ExecStop=@BINDIR@/vblade.init stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/volatiles.99_vblade b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/volatiles.99_vblade
new file mode 100644
index 000000000..64a5881c0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/volatiles.99_vblade
@@ -0,0 +1 @@
+d root root 0755 /var/run/vblade none
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_20.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_20.bb
deleted file mode 100644
index 344c7462c..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_20.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Virtual EtherDrive blade AoE target"
-SECTION = "admin"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/aoetools/${BPN}-${PV}.tgz \
- file://cross.patch \
- file://makefile-add-ldflags.patch \
- "
-
-SRC_URI[md5sum] = "3c80e4a6bc7d66ae0c235b88cb44bd59"
-SRC_URI[sha256sum] = "c8fe2fc4f2fba8e07e5cfdf17335982584eef2cd5c78bf8b1db93f2b56e7121d"
-
-inherit autotools-brokensep
-
-do_install() {
- install -D -m 0755 ${S}/vblade ${D}/${sbindir}/vblade
- install -D -m 0755 ${S}/vbladed ${D}/${sbindir}/vbladed
- install -D -m 0644 ${S}/vblade.8 ${D}/${mandir}/man8/vblade.8
-}
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb
new file mode 100644
index 000000000..d7b1dfaad
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_22.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Virtual EtherDrive blade AoE target"
+SECTION = "admin"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/aoetools/${BP}.tar.gz \
+ file://cross.patch \
+ file://makefile-add-ldflags.patch \
+ file://${BPN}.conf \
+ file://${BPN}.init \
+ file://${BPN}.service \
+ file://volatiles.99_vblade \
+ "
+
+SRC_URI[md5sum] = "510d98ba0f231284a5fbe2da11cb2d6e"
+SRC_URI[sha256sum] = "a990378f273f10eb431e42954a871aed52714035bbab28c54cef600c458356bb"
+
+inherit autotools-brokensep update-rc.d systemd
+
+do_install() {
+ install -D -m 0755 ${S}/vblade ${D}/${sbindir}/vblade
+ install -D -m 0755 ${S}/vbladed ${D}/${sbindir}/vbladed
+ install -D -m 0644 ${S}/vblade.8 ${D}/${mandir}/man8/vblade.8
+
+ install -D -m 0644 ${WORKDIR}/${BPN}.conf ${D}/${sysconfdir}/${BPN}.conf
+ install -D -m 0755 ${WORKDIR}/${BPN}.init ${D}/${sysconfdir}/init.d/${BPN}
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}/${sysconfdir}/default/volatiles
+ install -m 0755 ${WORKDIR}/volatiles.99_vblade ${D}/${sysconfdir}/default/volatiles/99_vblade
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/${BPN}.init ${D}/${bindir}/
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /var/run/${BPN} 0755 root root -" > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/vblade.service ${D}${systemd_system_unitdir}
+ sed -e 's,@BINDIR@,${bindir},g' -i ${D}${systemd_system_unitdir}/*.service
+ fi
+
+}
+
+INITSCRIPT_NAME = "vblade"
+INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE_${PN} = "vblade.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
index e52461446..7a2035601 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
@@ -37,6 +37,7 @@ PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}"
PAMLIB = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}"
+WRAPLIB = "${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', '-lwrap', '', d)}"
NOPAM_SRC ="${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}"
inherit update-rc.d useradd systemd
@@ -54,7 +55,7 @@ do_configure() {
}
do_compile() {
- oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} -lwrap"
+ oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} ${WRAPLIB}"
}
do_install() {
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest b/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest
new file mode 100644
index 000000000..f1c833e6c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+
+# prepare testing config
+CONF_USERS=`readlink -f /etc/raddb/users`
+mv ${CONF_USERS} ${CONF_USERS}_orig
+echo "testing Cleartext-Password := \"testpassword\"" > ${CONF_USERS}
+cat ${CONF_USERS}_orig >> ${CONF_USERS}
+
+# restart radiusd server
+systemctl restart radiusd || /etc/init.d/radiusd restart || {
+ echo "FAIL: Start radiusd service."
+ exit 1
+}
+
+# run teests
+perl test.pl
+
+# restore the config and restart
+mv ${CONF_USERS}_orig ${CONF_USERS}
+systemctl restart radiusd || /etc/init.d/radiusd restart
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch b/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch
new file mode 100644
index 000000000..9798af497
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch
@@ -0,0 +1,90 @@
+From 829302792bf0e4935d29efc23ca1f2e9e7ee7dfd Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 7 Jan 2016 03:12:38 -0500
+Subject: [PATCH] test.pl: adjust for ptest
+
+* Don't use interactive inputs, set default test
+ settings instead.
+* Change the test results output to the ptest format
+
+Upstream-Status: Inappropriate [OE ptest specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ test.pl | 31 ++++++++++++++++++-------------
+ 1 file changed, 18 insertions(+), 13 deletions(-)
+
+diff --git a/test.pl b/test.pl
+index cfd1c1e..9b4f10e 100644
+--- a/test.pl
++++ b/test.pl
+@@ -7,11 +7,11 @@
+ # Change 1..1 below to 1..last_test_to_print .
+ # (It may become useful if the test is moved to ./t subdirectory.)
+
+-BEGIN {print "1..5\n";}
+-END {print "not ok 1\n" unless $loaded;}
++BEGIN {print "Start testing for libauthen-radius-perl\n";}
++END {print "\nFAIL: test1\n" unless $loaded;}
+ use Authen::Radius;
+ $loaded = 1;
+-print "ok 1\n";
++print "\nPASS: test1\n";
+
+ ######################### End of black magic.
+
+@@ -19,26 +19,31 @@ print "ok 1\n";
+ # (correspondingly "not ok 13") depending on the success of chunk 13
+ # of the test code):
+
++$host = "127.0.0.1";
++$secret = "testing123";
++$user = "testing";
++$pwd = "testpassword";
++
+ print "Make sure this machine is in your Radius clients file!\n";
+-print "Enter hostname[:port] of your Radius server: "; chomp ($host = <STDIN>);
+-print "Enter shared-secret of your Radius server: "; chomp ($secret = <STDIN>);
+-print "Enter a username to be validated: "; chomp ($user = <STDIN>);
+-print "Enter this user's password: "; chomp ($pwd = <STDIN>);
++print "hostname of your Radius server: $host\n";
++print "shared-secret of your Radius server: $secret\n";
++print "The username to be validated: $user\n";
++print "The user's password: $pwd\n";
+
+ $t = 2;
+ if ($host ne '') {
+ $r = new Authen::Radius(Host => $host, Secret => $secret, Debug => 1);
+- print defined($r) ? "" : "not ", "ok $t\n"; $t++;
++ print defined($r) ? "\nPASS: test$t\n" : "\nFAIL: test$t\n"; $t++;
+ #Authen::Radius->load_dictionary;
+- print $r->check_pwd($user, $pwd) ? "" : "not ", "ok $t\n"; $t++;
++ print $r->check_pwd($user, $pwd) ? "\nPASS: test$t\n" : "\nFAIL: test$t\n"; $t++;
+ @a = $r->get_attributes;
+- print $#a != -1 ? "" : "not ", "ok $t\n"; $t++;
++ print $#a != -1 ? "\nPASS: test$t\n" : "\nFAIL: test$t\n"; $t++;
+ #for $a (@a) {
+ # print "attr: name=$a->{'Name'} value=$a->{'Value'}\n";
+ #}
+ } else {
+ foreach my $t (2..4) {
+- print "skipped $t\n";
++ print "\nSKIP test$t\n";
+ }
+ }
+
+@@ -53,9 +58,9 @@ my $data = "what do ya want for nothing?";
+ my $etalon_digest = hex_to_ascii("750c783e6ab0b503eaa86e310a5db738");
+ my $digest = Authen::Radius::hmac_md5(undef, $data, $key);
+ if ($etalon_digest eq $digest) {
+- print "ok 5\n";
++ print "\nPASS: test5\n";
+ } else {
+- print "not ok 5\n";
++ print "\nFAIL: test5\n";
+ }
+
+ exit;
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb b/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb
new file mode 100644
index 000000000..ea5bb1b0c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Authen::Radius - provide simple Radius client facilities"
+DESCRIPTION = "The Authen::Radius module provides a simple class that \
+ allows you to send/receive Radius requests/responses to/from a \
+ Radius server. \
+"
+
+HOMEPAGE = "http://search.cpan.org/~manowar/RadiusPerl"
+SECTION = "libs"
+
+LICENSE = "Artistic-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=78ab6ea0cba1f1ec1680ebb149e3bc11"
+
+DEPENDS = "perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MANOWAR/RadiusPerl-${PV}.tar.gz \
+ file://test.pl-adjust-for-ptest.patch \
+ file://run-ptest \
+"
+SRC_URI[md5sum] = "d1fe2d6ecf7ea99299e4e3a8f945aad8"
+SRC_URI[sha256sum] = "3b276506986ccaa4949d92b13ce053a0017ad11562a991cc753364923fe81ca7"
+
+S = "${WORKDIR}/Authen-Radius-${PV}"
+
+inherit cpan ptest
+
+do_install_ptest() {
+ install -m 0755 ${S}/test.pl ${D}${PTEST_PATH}
+}
+
+RDEPENDS_${PN} += "\
+ libdata-hexdump-perl \
+ perl-module-digest-md5 \
+ perl-module-data-dumper \
+ perl-module-io-select \
+ perl-module-io-socket \
+"
+RDEPENDS_${PN}-ptest += "${PN} freeradius"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb b/import-layers/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb
new file mode 100644
index 000000000..3dbc8b13e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb
@@ -0,0 +1,29 @@
+#
+# Copyright (C) 2012 Wind River Systems, Inc.
+#
+SUMMARY = "Provides a wrapper in Python to LDAP"
+DESCRIPTION = "This module provides access to the LDAP \
+(Lightweight Directory Access Protocol) through Python operations \
+instead of C API. The module mainly acts as a wrapper for the \
+OpenLDAP 2.x libraries. Errors will appear as exceptions."
+
+LICENSE = "PSF"
+HOMEPAGE = "http://www.python-ldap.org/"
+DEPENDS = "python openldap cyrus-sasl"
+
+PYPI_PACKAGE = "python-ldap"
+inherit pypi setuptools
+
+LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555"
+SRC_URI[md5sum] = "18db2d009150ec1864710fea3ed76173"
+SRC_URI[sha256sum] = "6d430ecf040f2fc704ee316d3390cb1f5419c191371e1e131baef54a0e42cef0"
+
+do_configure_prepend() {
+ sed -i -e 's:^library_dirs =.*::' setup.cfg
+ sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' setup.cfg
+}
+
+RDEPENDS_${PN} = " \
+ ${PYTHON_PN}-pprint \
+ ${PYTHON_PN}-threading \
+"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch
new file mode 100644
index 000000000..fe4b0793f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch
@@ -0,0 +1,28 @@
+From 85ea47fedbc96ed9180e08b0d371d9966e3a88da Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 30 Aug 2017 17:28:55 -0700
+Subject: [PATCH] Include fcntl.h for F_* and O_* defines
+
+Fixes errors like
+utils.c:95:22: error: use of undeclared identifier 'O_WRONLY'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ qdevices/utils.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/qdevices/utils.c b/qdevices/utils.c
+index 41850b8c..87090853 100644
+--- a/qdevices/utils.c
++++ b/qdevices/utils.c
+@@ -39,6 +39,7 @@
+
+ #include <err.h>
+ #include <errno.h>
++#include <fcntl.h>
+ #include <inttypes.h>
+ #include <libgen.h>
+ #include <stdio.h>
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.2.bb
new file mode 100644
index 000000000..33e74e2ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/corosync/corosync_2.4.2.bb
@@ -0,0 +1,80 @@
+SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces"
+DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \
+APIs and libraries, default configuration files, and an init script."
+HOMEPAGE = "http://corosync.github.io/corosync/"
+
+SECTION = "base"
+
+inherit autotools pkgconfig systemd useradd
+
+SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz \
+ file://0001-Include-fcntl.h-for-F_-and-O_-defines.patch \
+ "
+SRC_URI[md5sum] = "547fa78704da53aa35912be58d31035f"
+SRC_URI[sha256sum] = "f26e3011309fe4bcce94b1dc20ea8c462f19483a73f3ca62f13b925d011a4ba9"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
+
+DEPENDS = "groff-native nss libqb"
+
+SYSTEMD_SERVICE_${PN} = "corosync.service corosync-notifyd.service \
+ ${@bb.utils.contains('PACKAGECONFIG', 'qdevice', 'corosync-qdevice.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'corosync-qnetd.service', '', d)} \
+"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_NAME = "corosync-daemon"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ dbus qdevice qnetd snmp \
+"
+
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
+PACKAGECONFIG[qdevice] = "--enable-qdevices,--disable-qdevices"
+PACKAGECONFIG[qnetd] = "--enable-qnetd,--disable-qnetd"
+PACKAGECONFIG[rdma] = "--enable-rdma,--disable-rdma"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_system_unitdir},--disable-systemd --without-systemddir,systemd"
+
+EXTRA_OECONF = "ac_cv_path_BASHPATH=${base_bindir}/bash"
+EXTRA_OEMAKE = "tmpfilesdir_DATA="
+
+do_configure_prepend() {
+ ( cd ${S}
+ ${S}/autogen.sh )
+}
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/sysconfig/
+ install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
+ install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
+
+ rm -rf "${D}${localstatedir}/run"
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'true', 'false', d)}; then
+ chown -R coroqnetd:coroqnetd ${D}${sysconfdir}/${BPN}/qnetd
+ echo "d coroqnetd coroqnetd 0770 /var/run/corosync-qnetd none" >> ${D}${sysconfdir}/default/volatiles/05_corosync
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'true', 'false', d)}; then
+ install -m 0644 ${S}/conf/tmpfiles.d/corosync-qnetd.conf ${D}${sysconfdir}/tmpfiles.d
+ fi
+ fi
+}
+
+RDEPENDS_${PN} += "bash"
+
+FILES_${PN}-dbg += "${libexecdir}/lcrso/.debug"
+FILES_${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system coroqnetd"
+USERADD_PARAM_${PN} = "--system -d / -M -s /bin/nologin -c 'User for corosync-qnetd' -g coroqnetd coroqnetd"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
new file mode 100644
index 000000000..69b2f903c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
@@ -0,0 +1,36 @@
+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 @@
+ BIN_CFLAGS += -fPIE -DPIE
+ BIN_CFLAGS += -I../include -I../libdlm
+
+-BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
++BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie
+ 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 @@
+ BIN_CFLAGS += -fPIE -DPIE
+ BIN_CFLAGS += -I../include -I../libdlm -I../dlm_controld
+
+-BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
++BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie
+ 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) \
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb
new file mode 100644
index 000000000..31e411e86
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb
@@ -0,0 +1,51 @@
+DESCRIPTION = "dlm control daemon and tool"
+
+SECTION = "utils"
+HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SRC_URI = "https://git.fedorahosted.org/cgit/dlm.git/snapshot/${BP}.tar.xz \
+ file://respect-ldflags-also-from-bin_ldflags.patch \
+"
+
+SRC_URI[md5sum] = "efc2ee6093aa6aa0a88aaad83e998a3f"
+SRC_URI[sha256sum] = "b89bc557aaffbab0ac005398025f247718a5589cff6574d902eaffe2b20e683e"
+
+LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
+
+DEPENDS = "corosync systemd"
+
+inherit pkgconfig systemd distro_features_check
+
+SYSTEMD_SERVICE_${PN} = "dlm.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+export EXTRA_OEMAKE = ""
+
+do_compile_prepend() {
+ sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
+}
+
+do_compile () {
+ oe_runmake 'CC=${CC}'
+}
+
+do_install_append (){
+ install -d ${D}${sysconfdir}/sysconfig/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
+ install -m 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm
+
+ # install systemd unit files
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system
+ fi
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
+}
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch
new file mode 100644
index 000000000..4426d3552
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch
@@ -0,0 +1,40 @@
+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/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb
index 5c1e38e17..659366107 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb
@@ -14,7 +14,9 @@ SRC_URI = "http://ftp.heanet.ie/mirrors/ubuntu/pool/universe/i/${BPN}/${BPN}_${P
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://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"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save
new file mode 100755
index 000000000..2d7fc4ed7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+EBTABLES="/sbin/ebtables"
+
+[ -x "$EBTABLES" ] || exit 1
+
+echo "# Generated by ebtables-save v1.0 on $(date)"
+
+cnt=""
+[ "x$EBTABLES_SAVE_COUNTER" = "xyes" ] && cnt="--Lc"
+
+for table_name in $(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//); do
+ table=$($EBTABLES -t $table_name -L $cnt)
+ [ $? -eq 0 ] || { echo "$table"; exit -1; }
+
+ chain=""
+ rules=""
+ while read line; do
+ [ -z "$line" ] && continue
+
+ case "$line" in
+ Bridge\ table:\ *)
+ echo "*${line:14}"
+ ;;
+ Bridge\ chain:\ *)
+ chain="${line:14}"
+ chain="${chain%%,*}"
+ policy="${line##*policy: }"
+ echo ":$chain $policy"
+ ;;
+ *)
+ if [ "$cnt" = "--Lc" ]; then
+ line=${line/, pcnt \=/ -c}
+ line=${line/-- bcnt \=/}
+ fi
+ rules="$rules-A $chain $line\n"
+ ;;
+ esac
+ done <<EOF
+$table
+EOF
+ echo -e $rules
+done
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
index 375423d5d..d5e7341a0 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
@@ -1,17 +1,19 @@
SUMMARY = "Filtering tool for a Linux-based bridging firewall"
+HOMEPAGE = "http://sourceforge.net/projects/ebtables/"
DESCRIPTION = "Utility for basic Ethernet frame filtering on a Linux bridge, \
advanced logging, MAC DNAT/SNAT and brouting."
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=53b4a999993871a28ab1488fdbd2e73e"
SECTION = "net"
-PR = "r3"
+PR = "r4"
-RDEPENDS_${PN} += "perl"
+RDEPENDS_${PN} += "bash"
RRECOMMENDS_${PN} += "kernel-module-ebtables \
"
SRC_URI = "${SOURCEFORGE_MIRROR}/ebtables/ebtables-v${PV}.tar.gz \
+ file://ebtables-save \
file://installnonroot.patch \
file://01debian_defaultconfig.patch \
file://ebtables.init \
@@ -78,12 +80,10 @@ do_install () {
mv ${D}${sysconfdir}/default/ebtables-config ${D}${sysconfdir}/default/ebtables
sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ebtables
- # The script ebtables-save refernces perl in exec_prefix, so
- # move it to sbindir to avoid QA issue
- if ${base_sbindir} != ${sbindir} ; then
- install -d ${D}/${sbindir}
- mv ${D}/${base_sbindir}/ebtables-save ${D}/${sbindir}
- fi
+ # Replace upstream ebtables-save perl script with Fedora bash based rewrite
+ # http://pkgs.fedoraproject.org/cgit/rpms/ebtables.git/tree/ebtables-save
+ install -m 0755 ${WORKDIR}/ebtables-save ${D}${base_sbindir}/ebtables-save
+ sed -i 's!/sbin/!${base_sbindir}/!g' ${D}${base_sbindir}/ebtables-save
# Install systemd service files
install -d ${D}${systemd_unitdir}/system
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libmnl/libmnl_1.0.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libmnl/libmnl_1.0.4.bb
deleted file mode 100644
index b45879980..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libmnl/libmnl_1.0.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Minimalistic user-space Netlink utility library"
-DESCRIPTION = "Minimalistic user-space library oriented to Netlink developers, providing \
- functions for common tasks in parsing, validating, and constructing both the Netlink header and TLVs."
-HOMEPAGE = "http://www.netfilter.org/projects/libmnl/index.html"
-SECTION = "libs"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "http://www.netfilter.org/projects/libmnl/files/libmnl-${PV}.tar.bz2;name=tar"
-SRC_URI[tar.md5sum] = "be9b4b5328c6da1bda565ac5dffadb2d"
-SRC_URI[tar.sha256sum] = "171f89699f286a5854b72b91d06e8f8e3683064c5901fb09d954a9ab6f551f81"
-
-inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch
deleted file mode 100644
index 0453b1b49..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-Taken from
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755956
-
---- ./src/expr_ops.h 2014-06-24 17:07:05.574784704 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr_ops.h 2014-07-25 00:19:28.367694613 +0400
-@@ -28,7 +28,7 @@
- const void *(*get)(const struct nft_rule_expr *e, uint16_t type, uint32_t *data_len);
- int (*parse)(struct nft_rule_expr *e, struct nlattr *attr);
- void (*build)(struct nlmsghdr *nlh, struct nft_rule_expr *e);
-- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e);
-+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e);
- int (*xml_parse)(struct nft_rule_expr *e, mxml_node_t *tree,
- struct nft_parse_err *err);
- int (*json_parse)(struct nft_rule_expr *e, json_t *data,
---- ./src/rule.c 2014-06-24 17:07:05.574784704 +0400
-+++ ../libnftnl-1.0.2-my/./src/rule.c 2014-07-25 00:19:28.355694880 +0400
-@@ -813,7 +813,7 @@
- "{\"type\":\"%s\",", expr->ops->name);
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
-
-- 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);
-
- /*
---- ./src/expr.c 2014-06-24 17:07:05.574784704 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr.c 2014-07-25 00:19:27.367716863 +0400
-@@ -227,7 +227,7 @@
- int ret;
- unsigned int offset = 0, len = size;
-
-- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr);
-+ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr);
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
-
- return offset;
---- ./src/expr/exthdr.c 2014-06-25 18:34:08.174284719 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/exthdr.c 2014-07-25 00:21:48.192583628 +0400
-@@ -362,7 +362,7 @@
- .get = nft_rule_expr_exthdr_get,
- .parse = nft_rule_expr_exthdr_parse,
- .build = nft_rule_expr_exthdr_build,
-- .snprintf = nft_rule_expr_exthdr_snprintf,
-+ .snprintf_ = nft_rule_expr_exthdr_snprintf,
- .xml_parse = nft_rule_expr_exthdr_xml_parse,
- .json_parse = nft_rule_expr_exthdr_json_parse,
- };
---- ./src/expr/log.c 2014-06-25 18:34:08.178284810 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/log.c 2014-07-25 00:21:48.160584340 +0400
-@@ -332,7 +332,7 @@
- .get = nft_rule_expr_log_get,
- .parse = nft_rule_expr_log_parse,
- .build = nft_rule_expr_log_build,
-- .snprintf = nft_rule_expr_log_snprintf,
-+ .snprintf_ = nft_rule_expr_log_snprintf,
- .xml_parse = nft_rule_expr_log_xml_parse,
- .json_parse = nft_rule_expr_log_json_parse,
- };
---- ./src/expr/limit.c 2014-06-25 18:34:08.178284810 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/limit.c 2014-07-25 00:21:48.108585496 +0400
-@@ -250,7 +250,7 @@
- .get = nft_rule_expr_limit_get,
- .parse = nft_rule_expr_limit_parse,
- .build = nft_rule_expr_limit_build,
-- .snprintf = nft_rule_expr_limit_snprintf,
-+ .snprintf_ = nft_rule_expr_limit_snprintf,
- .xml_parse = nft_rule_expr_limit_xml_parse,
- .json_parse = nft_rule_expr_limit_json_parse,
- };
---- ./src/expr/cmp.c 2014-06-25 18:34:08.174284719 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/cmp.c 2014-07-25 00:21:48.172584073 +0400
-@@ -331,7 +331,7 @@
- .get = nft_rule_expr_cmp_get,
- .parse = nft_rule_expr_cmp_parse,
- .build = nft_rule_expr_cmp_build,
-- .snprintf = nft_rule_expr_cmp_snprintf,
-+ .snprintf_ = nft_rule_expr_cmp_snprintf,
- .xml_parse = nft_rule_expr_cmp_xml_parse,
- .json_parse = nft_rule_expr_cmp_json_parse,
- };
---- ./src/expr/target.c 2014-06-25 18:34:08.182284901 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/target.c 2014-07-25 00:21:48.184583806 +0400
-@@ -274,7 +274,7 @@
- .get = nft_rule_expr_target_get,
- .parse = nft_rule_expr_target_parse,
- .build = nft_rule_expr_target_build,
-- .snprintf = nft_rule_expr_target_snprintf,
-+ .snprintf_ = nft_rule_expr_target_snprintf,
- .xml_parse = nft_rule_expr_target_xml_parse,
- .json_parse = nft_rule_expr_target_json_parse,
- };
---- ./src/expr/byteorder.c 2014-06-25 18:34:08.158284356 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/byteorder.c 2014-07-25 00:21:48.148584607 +0400
-@@ -384,7 +384,7 @@
- .get = nft_rule_expr_byteorder_get,
- .parse = nft_rule_expr_byteorder_parse,
- .build = nft_rule_expr_byteorder_build,
-- .snprintf = nft_rule_expr_byteorder_snprintf,
-+ .snprintf_ = nft_rule_expr_byteorder_snprintf,
- .xml_parse = nft_rule_expr_byteorder_xml_parse,
- .json_parse = nft_rule_expr_byteorder_json_parse,
- };
---- ./src/expr/lookup.c 2014-06-25 18:34:08.178284810 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/lookup.c 2014-07-25 00:21:48.136584874 +0400
-@@ -305,7 +305,7 @@
- .get = nft_rule_expr_lookup_get,
- .parse = nft_rule_expr_lookup_parse,
- .build = nft_rule_expr_lookup_build,
-- .snprintf = nft_rule_expr_lookup_snprintf,
-+ .snprintf_ = nft_rule_expr_lookup_snprintf,
- .xml_parse = nft_rule_expr_lookup_xml_parse,
- .json_parse = nft_rule_expr_lookup_json_parse,
- };
---- ./src/expr/immediate.c 2014-06-25 18:34:08.178284810 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/immediate.c 2014-07-25 00:21:48.124585141 +0400
-@@ -365,7 +365,7 @@
- .get = nft_rule_expr_immediate_get,
- .parse = nft_rule_expr_immediate_parse,
- .build = nft_rule_expr_immediate_build,
-- .snprintf = nft_rule_expr_immediate_snprintf,
-+ .snprintf_ = nft_rule_expr_immediate_snprintf,
- .xml_parse = nft_rule_expr_immediate_xml_parse,
- .json_parse = nft_rule_expr_immediate_json_parse,
- };
---- ./src/expr/meta.c 2014-06-25 18:34:08.178284810 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/meta.c 2014-07-25 00:21:48.040587008 +0400
-@@ -340,7 +340,7 @@
- .get = nft_rule_expr_meta_get,
- .parse = nft_rule_expr_meta_parse,
- .build = nft_rule_expr_meta_build,
-- .snprintf = nft_rule_expr_meta_snprintf,
-+ .snprintf_ = nft_rule_expr_meta_snprintf,
- .xml_parse = nft_rule_expr_meta_xml_parse,
- .json_parse = nft_rule_expr_meta_json_parse,
- };
---- ./src/expr/queue.c 2014-06-25 18:34:08.182284901 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/queue.c 2014-07-25 00:21:48.208583272 +0400
-@@ -294,7 +294,7 @@
- .get = nft_rule_expr_queue_get,
- .parse = nft_rule_expr_queue_parse,
- .build = nft_rule_expr_queue_build,
-- .snprintf = nft_rule_expr_queue_snprintf,
-+ .snprintf_ = nft_rule_expr_queue_snprintf,
- .xml_parse = nft_rule_expr_queue_xml_parse,
- .json_parse = nft_rule_expr_queue_json_parse,
- };
---- ./src/expr/nat.c 2014-06-25 18:34:08.182284901 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/nat.c 2014-07-25 00:21:48.084586030 +0400
-@@ -430,7 +430,7 @@
- .get = nft_rule_expr_nat_get,
- .parse = nft_rule_expr_nat_parse,
- .build = nft_rule_expr_nat_build,
-- .snprintf = nft_rule_expr_nat_snprintf,
-+ .snprintf_ = nft_rule_expr_nat_snprintf,
- .xml_parse = nft_rule_expr_nat_xml_parse,
- .json_parse = nft_rule_expr_nat_json_parse,
- };
---- ./src/expr/payload.c 2014-06-25 18:34:08.182284901 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/payload.c 2014-07-25 00:21:48.200583450 +0400
-@@ -337,7 +337,7 @@
- .get = nft_rule_expr_payload_get,
- .parse = nft_rule_expr_payload_parse,
- .build = nft_rule_expr_payload_build,
-- .snprintf = nft_rule_expr_payload_snprintf,
-+ .snprintf_ = nft_rule_expr_payload_snprintf,
- .xml_parse = nft_rule_expr_payload_xml_parse,
- .json_parse = nft_rule_expr_payload_json_parse,
- };
---- ./src/expr/reject.c 2014-06-25 18:34:08.182284901 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/reject.c 2014-07-25 00:21:48.096585762 +0400
-@@ -242,7 +242,7 @@
- .get = nft_rule_expr_reject_get,
- .parse = nft_rule_expr_reject_parse,
- .build = nft_rule_expr_reject_build,
-- .snprintf = nft_rule_expr_reject_snprintf,
-+ .snprintf_ = nft_rule_expr_reject_snprintf,
- .xml_parse = nft_rule_expr_reject_xml_parse,
- .json_parse = nft_rule_expr_reject_json_parse,
- };
---- ./src/expr/counter.c 2014-06-25 18:34:08.174284719 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/counter.c 2014-07-25 00:21:48.056586652 +0400
-@@ -236,7 +236,7 @@
- .get = nft_rule_expr_counter_get,
- .parse = nft_rule_expr_counter_parse,
- .build = nft_rule_expr_counter_build,
-- .snprintf = nft_rule_expr_counter_snprintf,
-+ .snprintf_ = nft_rule_expr_counter_snprintf,
- .xml_parse = nft_rule_expr_counter_xml_parse,
- .json_parse = nft_rule_expr_counter_json_parse,
- };
---- ./src/expr/ct.c 2014-06-25 18:34:08.174284719 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/ct.c 2014-07-25 00:21:48.068586385 +0400
-@@ -428,7 +428,7 @@
- .get = nft_rule_expr_ct_get,
- .parse = nft_rule_expr_ct_parse,
- .build = nft_rule_expr_ct_build,
-- .snprintf = nft_rule_expr_ct_snprintf,
-+ .snprintf_ = nft_rule_expr_ct_snprintf,
- .xml_parse = nft_rule_expr_ct_xml_parse,
- .json_parse = nft_rule_expr_ct_json_parse,
- };
---- ./src/expr/bitwise.c 2014-06-25 18:34:08.158284356 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/bitwise.c 2014-07-25 00:21:49.272559599 +0400
-@@ -403,7 +403,7 @@
- .get = nft_rule_expr_bitwise_get,
- .parse = nft_rule_expr_bitwise_parse,
- .build = nft_rule_expr_bitwise_build,
-- .snprintf = nft_rule_expr_bitwise_snprintf,
-+ .snprintf_ = nft_rule_expr_bitwise_snprintf,
- .xml_parse = nft_rule_expr_bitwise_xml_parse,
- .json_parse = nft_rule_expr_bitwise_json_parse,
- };
---- ./src/expr/match.c 2014-06-25 18:34:08.178284810 +0400
-+++ ../libnftnl-1.0.2-my/./src/expr/match.c 2014-07-25 00:21:48.032587186 +0400
-@@ -273,7 +273,7 @@
- .get = nft_rule_expr_match_get,
- .parse = nft_rule_expr_match_parse,
- .build = nft_rule_expr_match_build,
-- .snprintf = nft_rule_expr_match_snprintf,
-+ .snprintf_ = nft_rule_expr_match_snprintf,
- .xml_parse = nft_rule_expr_match_xml_parse,
- .json_parse = nft_rule_expr_match_json_parse,
- };
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch
deleted file mode 100644
index ea36b1cd9..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream-Status: Pending
-
-From c81bf54d6eb870286662a11d3b4a994717c47696 Mon Sep 17 00:00:00 2001
-From: Armin Kuster <akuster808@gmail.com>
-Date: Tue, 8 Sep 2015 05:36:27 -0700
-Subject: [PATCH] testmmap: fix compile issue with gcc 5.x
-
-this fixes:
-examples/testmmap.c:540:10: error: format '%ld' expects argument of type 'long int', but argument 3 has type 'ssize_t {aka const int}' [-Werror=format=]
-| printf("ring_ofs[%d] %ld\n", i, nifp->ring_ofs[i]);
-| ^
-
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
----
- examples/testmmap.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/examples/testmmap.c b/examples/testmmap.c
-index d7f6acc..934489a 100644
---- a/examples/testmmap.c
-+++ b/examples/testmmap.c
-@@ -537,7 +537,7 @@ do_if()
- for (i = 0; i < 5; i++)
- printf("spare1[%d] %u\n", i, nifp->ni_spare1[i]);
- for (i = 0; i < (nifp->ni_tx_rings + nifp->ni_rx_rings + 2); i++)
-- printf("ring_ofs[%d] %ld\n", i, nifp->ring_ofs[i]);
-+ printf("ring_ofs[%d] %zd\n", i, nifp->ring_ofs[i]);
- }
-
- struct netmap_ring *
---
-2.3.5
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch
deleted file mode 100644
index b050bf001..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-The makefile assumes building locally.
-
-Upstream Status: Inappropriate [Native]
-
-The configure is not auto-make based
-
-Signed-of-by: Armin Kuster <akuster@mvista.com>
-
-Index: LINUX/netmap.mak.in
-===================================================================
---- a/LINUX/netmap.mak.in
-+++ b/LINUX/netmap.mak.in
-@@ -12,10 +12,9 @@ SRCDIR:=@SRCDIR@
- # The following commands are needed to build the modules as out-of-tree,
- # in fact the kernel sources path must be specified.
-
--PWD ?= $(CURDIR)
-
- # Additional compile flags (e.g. header location)
--EXTRA_CFLAGS := -I$(PWD) -I$(SRCDIR) -I$(SRCDIR)/../sys -I$(SRCDIR)/../sys/dev -DCONFIG_NETMAP
-+EXTRA_CFLAGS := -I$(SRCDIR) -I$(SRCDIR)/../sys -I$(SRCDIR)/../sys/dev -DCONFIG_NETMAP
- EXTRA_CFLAGS += -Wno-unused-but-set-variable
- EXTRA_CFLAGS += $(foreach s,$(SUBSYS),-DCONFIG_NETMAP_$(shell echo $s|tr a-z- A-Z_))
-
-Index: LINUX/configure
-===================================================================
---- a/LINUX/configure
-+++ b/LINUX/configure
-@@ -349,52 +349,6 @@ reset_tests() {
- EOF
- }
-
--# run_tests: run all accumulated tests and exec the pertinent
--# success/failure actions for each one.
--run_tests() {
-- local t= # prevent -EOF to eat the make TAB
-- cat > $TMPDIR/Makefile <<-EOF
-- ifneq (\$(KERNELRELEASE),)
-- obj-m := $TESTOBJS
-- else
-- S_DRIVERS := $(drv print)
-- all: \$(S_DRIVERS:%=get-%)
-- $t \$(MAKE) -C $ksrc M=\$\$PWD $kopts
--
-- -include $TOPDIR/drivers.mak
-- EOF
-- for d in $(drv print); do
-- cat >> $TMPDIR/Makefile <<-EOF
-- get-$d:
-- $t [ -z "\$($d-src)" ] || cp -Rp \$($d-src) \$(if \$($d-dst),\$($d-dst),.)
-- $t touch get-$d
-- EOF
-- done
-- echo endif >> $TMPDIR/Makefile
-- {
-- cat <<-EOF
--##############################################################################
--## BEGIN RUNNING TESTS: $(date)
--##############################################################################
--## Makefile:
-- EOF
-- cat $TMPDIR/Makefile
-- cat <<-EOF
--##############################################################################
-- EOF
-- } >> config.log
-- (
-- cd $TMPDIR
-- make -k -j $(grep -c processor /proc/cpuinfo)
-- ) >> config.log
-- eval "$TESTPOSTPROC"
-- cat >> config.log <<-EOF
--##############################################################################
--## END RUNNING TESTS: $(date)
--##############################################################################
-- EOF
--}
--
- configh=netmap_linux_config.h
- # succes/failure actions are expected to write some macros
- # in netma_linux_config.h. The following functions can be
-@@ -619,7 +573,6 @@ configuration. Please check 'config.log'
- reset_tests
- rm -f drivers.mak
- add_test true broken_buildsystem < /dev/null
--run_tests
-
- drvname2config() {
- local name=$1
-@@ -1280,7 +1233,6 @@ cat > $configh <<-EOF
- EOF
-
- # the TESTPOSTPROC script will add macros to $configh
--run_tests
-
- define DRIVER_SUFFIX \"$drvsuffix\"
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
deleted file mode 100644
index 192ece0e9..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
+++ /dev/null
@@ -1,92 +0,0 @@
-require netmap.inc
-
-DEPENDS = "virtual/kernel"
-do_configure[depends] += "virtual/kernel:do_shared_workdir"
-
-inherit module
-
-CLEANBROKEN = "1"
-
-export INSTALL_MOD_DIR="kernel/netmap-modules"
-
-EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \
- --kernel-sources=${STAGING_KERNEL_DIR} \
- --install-mod-path=${D} \
- --driver-suffix="-netmap" \
- "
-
-# The driver builds are optional, but for deterministic builds,
-# we should be able to explicitly enable/disable the builds
-# for them in a proper place (maybe in BSP).
-# But we can't use PACKAGECONFIG since there is no option for
-# each driver, and the options are:
-# --no-drivers do not compile any driver
-# --no-drivers= do not compile the given drivers (comma sep.)
-# --drivers= only compile the given drivers (comma sep.)
-#
-# So use NETMAP_DRIVERS and the following python code to add proper
-# configs to EXTRA_OECONF.
-#
-# The default is no-drivers, and all supported drivers are listed
-# in NETMAP_ALL_DRIVERS.
-NETMAP_DRIVERS ??= ""
-NETMAP_ALL_DRIVERS = "ixgbe igb e1000e e1000 veth.c forcedeth.c virtio_net.c r8169.c"
-
-python __anonymous () {
- drivers_list = d.getVar("NETMAP_DRIVERS").split()
- all_drivers_list = d.getVar("NETMAP_ALL_DRIVERS").split()
- config_drivers = "--drivers=" + ",".join(drivers_list)
-
- extra_oeconf_drivers = bb.utils.contains_any('NETMAP_DRIVERS', all_drivers_list, config_drivers, '--no-drivers', d)
- d.appendVar("EXTRA_OECONF", extra_oeconf_drivers)
-}
-
-LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,-O1', '')}"
-LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,--as-needed', '')}"
-
-do_configure () {
- cd ${S}/LINUX
- ./configure ${EXTRA_OECONF}
-}
-
-do_configure_append () {
- cat >> ${S}/LINUX/netmap_linux_config.h <<EOF
-#define NETMAP_LINUX_HAVE_HRTIMER_MODE_REL
-#define NETMAP_LINUX_HAVE_HRTIMER_FORWARD_NOW
-#define NETMAP_LINUX_HAVE_PHYS_ADDR_T
-#define NETMAP_LINUX_HAVE_ACCESS_ONCE
-#define NETMAP_LINUX_HAVE_NETDEV_OPS
-#define NETMAP_LINUX_HAVE_INIT_NET
-#define NETMAP_LINUX_HAVE_LIVE_ADDR_CHANGE
-#define NETMAP_LINUX_HAVE_TX_SKB_SHARING
-#define NETMAP_LINUX_HAVE_UNLOCKED_IOCTL
-#define NETMAP_LINUX_HAVE_PERNET_OPS_ID
-#define NETMAP_LINUX_VIRTIO_FUNCTIONS
-#define NETMAP_LINUX_VIRTIO_FREE_PAGES
-#define NETMAP_LINUX_VIRTIO_GET_VRSIZE
-#define NETMAP_LINUX_TIMER_RTYPE enum hrtimer_restart
-#define NETMAP_LINUX_VIRTIO_MULTI_QUEUE
-#define NETMAP_LINUX_HAVE_E1000E_EXT_RXDESC
-#define NETMAP_LINUX_HAVE_E1000E_DOWN2
-EOF
-
-if ${@ 'false' if (bb.utils.vercmp_string(d.getVar('KERNEL_VERSION') or "0", '3.17') < 0) else 'true' } ; then
- echo OK
- cat >> ${S}/LINUX/netmap_linux_config.h <<EOF
-#define NETMAP_LINUX_ALLOC_NETDEV_4ARGS
-EOF
-fi
-}
-
-do_compile () {
- cd ${S}/LINUX
- oe_runmake
-}
-
-do_install () {
- cd ${S}/LINUX
- oe_runmake install
-}
-
-# http://errors.yoctoproject.org/Errors/Details/83335/
-PNBLACKLIST[netmap-modules] ?= "BROKEN: not compatible with default kernel version 4.8 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap.inc b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap.inc
deleted file mode 100644
index ab33e765d..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "netmap and VALE - very fast packet I/O from userspace (FreeBSD/Linux)"
-DESCRIPTION= "NETMAP is a framework for very fast packet I/O from userspace. VALE is an equally fast in-kernel software switch using the netmap API. Both are implemented as a single kernel module for FreeBSD and Linux, and can deal with line rate on real or emulated 10 Gbit ports."
-SECTION = "networking"
-HOMEPAGE = "http://code.google.com/p/netmap/"
-LICENSE = "GPLv2+"
-
-LIC_FILES_CHKSUM = "file://README;beginline=13;endline=14;md5=56ae0b9c7ba0476ab9098de94c2714d6"
-
-SRCREV = "da9e19e69b84e4f6f8ae125f8d01b42a4abade6a"
-PV = "master+git${SRCPV}"
-
-SRC_URI = "git://github.com/luigirizzo/netmap.git"
-SRC_URI += "file://makefile_fixup.patch"
-
-S = "${WORKDIR}/git"
-
-COMPATIBLE_HOST = '(x86_64|i.86|mips|arm).*-linux'
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb
deleted file mode 100644
index 2d8509c74..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-require netmap.inc
-
-DEPENDS = "netmap-modules"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \
- --kernel-sources=${STAGING_KERNEL_DIR} \
- --no-drivers \
- --disable-generic \
- --prefix=${prefix} \
- --destdir=${D} \
- --cc='${CC}' \
- --ld='${LD}' \
- "
-SRC_URI += "file://0001-testmmap-fix-compile-issue-with-gcc-5.x.patch"
-
-do_configure () {
- cd ${S}/LINUX
- ./configure ${EXTRA_OECONF}
-}
-
-do_compile () {
- cd ${S}/LINUX
- make apps
-}
-
-do_install () {
- cd ${S}/LINUX
- make install-apps DESTDIR=${D}
-}
-
-FILES_${PN} += "${bindir}"
-RDEPENDS_${PN} = "kernel-module-netmap"
-RRECOMMENDS_${PN} = "kernel-module-netmap"
-
-# http://errors.yoctoproject.org/Errors/Details/69733/
-PNBLACKLIST[netmap] ?= "BROKEN: Tries to build kernel module and fails, either it should be disabled or there should be dependency on kernel like in netmap-modules - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170421.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170810.bb
index 2c69c58f8..2c69c58f8 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170421.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170810.bb
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170421.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170810.bb
index 79d420f1a..c4ddbcb0e 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170421.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170810.bb
@@ -24,4 +24,4 @@ FILES_${PN} = " \
${bindir} \
"
-RDEPENDS_${PN} = "wireguard-module"
+RDEPENDS_${PN} = "wireguard-module bash"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc
index 46a9971f8..f37d52b22 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc
+++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc
@@ -11,8 +11,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "8e559f4fd672b15c38a15eb4d88cc84d"
-SRC_URI[sha256sum] = "03c82af774224cd171d000ee4a519b5e474cc6842ac04967773cf77b26750000"
+SRC_URI[md5sum] = "8dd3e080407b8295c25565a847a4ca27"
+SRC_URI[sha256sum] = "ab96230390625aad6f4816fa23aef6e9f7fee130f083d838919129ff12089bf7"
S = "${WORKDIR}/WireGuard-${PV}/src/"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
index d61636ee8..3990f7b52 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
@@ -70,7 +70,7 @@ do_install () {
install -m 0644 debian/hosts.equiv ${D}/${sysconfdir}
install -m 0644 ${WORKDIR}/rexec.pam ${D}/${sysconfdir}/pam.d/rexec
install -m 0644 ${WORKDIR}/rlogin.pam ${D}/${sysconfdir}/pam.d/rlogin
- install -m 0664 ${WORKDIR}/rsh.pam ${D}/${sysconfdir}/pam.d/rsh
+ install -m 0644 ${WORKDIR}/rsh.pam ${D}/${sysconfdir}/pam.d/rsh
fi
cp ${WORKDIR}/rexec.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rexec
cp ${WORKDIR}/rlogin.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rlogin
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
index 54a58c8a1..807b56644 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
@@ -1,4 +1,5 @@
DESCRIPTION = "netkit-telnet includes the telnet daemon and client."
+HOMEPAGE = "http://www.hcs.harvard.edu/~dholland/computers/netkit.html"
SECTION = "net"
DEPENDS = "ncurses"
LICENSE = "BSD"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb
deleted file mode 100644
index 0a86504c7..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "ACCEL-PPP is a high performance VPN server application for linux"
-HOMEPAGE = "http://sourceforge.net/apps/trac/accel-ppp/wiki"
-SECTION = "net"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
-
-DEPENDS = "openssl libpcre"
-
-inherit cmake
-
-PR = "r1"
-PV = "1.7.3+git"
-
-SRCREV = "4acfa46c321a344b9a6ce4128e72d1e02828d8a0"
-SRC_URI = "git://accel-ppp.git.sourceforge.net/gitroot/accel-ppp/accel-ppp;branch=1.7"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE = " \
- -DBUILD_DRIVER=FALSE \
- -DCMAKE_INSTALL_PREFIX=${prefix} \
- -DCMAKE_BUILD_TYPE=Release \
- -DLOG_PGSQL=FALSE \
- -DRADIUS=FALSE \
- -DNETSNMP=FALSE \
-"
-FILES_${PN}-dbg += "/usr/lib/${BPN}/.debug/*"
-
-PACKAGES =+ "${PN}-libs"
-FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"
-INSANE_SKIP_${PN}-libs = "dev-so"
-RDEPENDS_${PN} += "${PN}-libs"
-
-do_install_prepend() {
- cmlist=`find ${S} -name CMakeLists.txt`
- for file in $cmlist; do
- sed -i -e "s:LIBRARY DESTINATION lib/accel-ppp:LIBRARY DESTINATION ${baselib}/accel-ppp:g" \
- -e "s:\${CMAKE_INSTALL_PREFIX}/lib/accel-ppp:\${CMAKE_INSTALL_PREFIX}/${baselib}/accel-ppp:g" \
- $cmlist
- done
-}
-
-# http://errors.yoctoproject.org/Errors/Details/81003/
-PNBLACKLIST[accel-ppp] ?= "BROKEN: fails to build with new binutils-2.27 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/files/build.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/files/build.patch
new file mode 100644
index 000000000..4ab9d23bf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/files/build.patch
@@ -0,0 +1,167 @@
+From 43b6e98c9c37afd0d914949dcff4eab81f5a995f Mon Sep 17 00:00:00 2001
+From: Brendan Le Foll <brendan.le.foll@intel.com>
+Date: Tue, 3 Mar 2015 11:42:57 +0000
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+---
+ mDNSPosix/Makefile | 54 +++++++++++++++++++++++++-----------------------------
+ 1 file changed, 25 insertions(+), 29 deletions(-)
+
+diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
+index 4f98e90..8ac97ad 100755
+--- a/mDNSPosix/Makefile
++++ b/mDNSPosix/Makefile
+@@ -50,6 +50,7 @@
+
+ LIBVERS = 1
+
++POSIXDIR = ../mDNSPosix
+ COREDIR = ../mDNSCore
+ SHAREDDIR ?= ../mDNSShared
+ JDK = /usr/jdk
+@@ -58,11 +59,11 @@ CC = @cc
+ BISON = @bison
+ FLEX = @flex
+ ST = @strip
+-LD = ld -shared
++LD =@LD
+ CP = cp
+ RM = rm
+ LN = ln -s -f
+-CFLAGS_COMMON = -I$(COREDIR) -I$(SHAREDDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
++CFLAGS_COMMON = -I$(POSIXDIR) -I$(COREDIR) -I$(SHAREDDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
+ CFLAGS_PTHREAD =
+ LINKOPTS =
+ LINKOPTS_PTHREAD = -lpthread
+@@ -70,7 +71,7 @@ LDSUFFIX = so
+ JAVACFLAGS_OS = -fPIC -shared -ldns_sd
+
+ # Set up diverging paths for debug vs. prod builds
+-DEBUG=0
++DEBUG?=1
+ ifeq ($(DEBUG),1)
+ CFLAGS_DEBUG = -g -DMDNS_DEBUGMSGS=2
+ OBJDIR = objects/debug
+@@ -213,7 +214,7 @@ endif
+ endif
+ endif
+
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_OS) $(CFLAGS_DEBUG)
++CFLAGS_BUILD = $(CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_OS) $(CFLAGS_DEBUG)
+
+ #############################################################################
+
+@@ -249,8 +250,7 @@ Daemon: setup $(BUILDDIR)/mdnsd
+ @echo "Responder daemon done"
+
+ $(BUILDDIR)/mdnsd: $(DAEMONOBJS)
+- $(CC) -o $@ $+ $(LINKOPTS)
+- @$(STRIP) $@
++ $(CC) -o $@ $+
+
+ # libdns_sd target builds the client library
+ libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
+@@ -259,22 +259,18 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
+ CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o
+
+ $(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
+- @$(LD) $(LINKOPTS) -o $@ $+
+- @$(STRIP) $@
++ $(LD) -shared $(LINKOPTS) -Wl,-soname,libdns_sd.$(LDSUFFIX).1 -o $@ $+
+
+-Clients: setup libdns_sd ../Clients/build/dns-sd
++Clients: setup libdns_sd
++ @$(MAKE) -C ../Clients DEBUG=${DEBUG}
+ @echo "Clients done"
+
+-../Clients/build/dns-sd:
+- @$(MAKE) -C ../Clients
+-
+ # nss_mdns target builds the Name Service Switch module
+ nss_mdns: setup $(BUILDDIR)/$(NSSLIBFILE)
+ @echo "Name Service Switch module done"
+
+ $(BUILDDIR)/$(NSSLIBFILE): $(CLIENTLIBOBJS) $(OBJDIR)/nss_mdns.c.so.o
+- @$(LD) $(LINKOPTS) -o $@ $+
+- @$(STRIP) $@
++ $(LD) -shared $(LINKOPTS) -o $@ $+
+
+ #############################################################################
+
+@@ -470,55 +466,55 @@ dnsextd: setup $(BUILDDIR)/dnsextd
+ @echo "dnsextd done"
+
+ $(BUILDDIR)/mDNSClientPosix: $(APPOBJ) $(OBJDIR)/Client.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@
+
+ $(BUILDDIR)/mDNSResponderPosix: $(COMMONOBJ) $(OBJDIR)/Responder.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@
+
+ $(BUILDDIR)/mDNSProxyResponderPosix: $(COMMONOBJ) $(OBJDIR)/ProxyResponder.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@
+
+ $(BUILDDIR)/mDNSIdentify: $(SPECIALOBJ) $(OBJDIR)/Identify.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@
+
+ $(OBJDIR)/Identify.c.o: $(COREDIR)/mDNS.c # Note: Identify.c textually imports mDNS.c
+
+ $(BUILDDIR)/mDNSNetMonitor: $(SPECIALOBJ) $(OBJDIR)/NetMonitor.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@
+
+ $(OBJDIR)/NetMonitor.c.o: $(COREDIR)/mDNS.c # Note: NetMonitor.c textually imports mDNS.c
+
+ $(BUILDDIR)/dnsextd: $(DNSEXTDOBJ) $(OBJDIR)/dnsextd.c.threadsafe.o
+- $(CC) $+ -o $@ $(LINKOPTS) $(LINKOPTS_PTHREAD)
++ $(CC) $+ -o $@ $(LINKOPTS_PTHREAD)
+
+ #############################################################################
+
+ # Implicit rules
+ $(OBJDIR)/%.c.o: %.c
+- $(CC) $(CFLAGS) -c -o $@ $<
++ $(CC) $(CFLAGS_BUILD) -c -o $@ $<
+
+ $(OBJDIR)/%.c.o: $(COREDIR)/%.c
+- $(CC) $(CFLAGS) -c -o $@ $<
++ $(CC) $(CFLAGS_BUILD) -c -o $@ $<
+
+ $(OBJDIR)/%.c.o: $(SHAREDDIR)/%.c
+- $(CC) $(CFLAGS) -c -o $@ $<
++ $(CC) $(CFLAGS_BUILD) -c -o $@ $<
+
+ $(OBJDIR)/%.c.threadsafe.o: %.c
+- $(CC) $(CFLAGS) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
++ $(CC) $(CFLAGS_BUILD) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
+
+ $(OBJDIR)/%.c.threadsafe.o: $(SHAREDDIR)/%.c
+- $(CC) $(CFLAGS) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
++ $(CC) $(CFLAGS_BUILD) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
+
+ $(OBJDIR)/%.c.so.o: %.c
+- $(CC) $(CFLAGS) -c -fPIC -o $@ $<
++ $(CC) $(CFLAGS_BUILD) -c -fPIC -o $@ $<
+
+ $(OBJDIR)/%.c.so.o: $(SHAREDDIR)/%.c
+- $(CC) $(CFLAGS) -c -fPIC -o $@ $<
++ $(CC) $(CFLAGS_BUILD) -c -fPIC -o $@ $<
+
+ $(OBJDIR)/%.y.o: $(SHAREDDIR)/%.y
+ $(BISON) -o $(OBJDIR)/$*.c -d $<
+- $(CC) $(CFLAGS) -c -o $@ $(OBJDIR)/$*.c
++ $(CC) $(CFLAGS_BUILD) -c -o $@ $(OBJDIR)/$*.c
+
+ $(OBJDIR)/%.l.o: $(SHAREDDIR)/%.l
+ $(FLEX) $(FLEXFLAGS_OS) -i -o$(OBJDIR)/$*.l.c $<
+- $(CC) $(CFLAGS) -Wno-error -c -o $@ $(OBJDIR)/$*.l.c
++ $(CC) $(CFLAGS_BUILD) -Wno-error -c -o $@ $(OBJDIR)/$*.l.c
+--
+2.9.5
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/files/mdns.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/files/mdns.service
new file mode 100644
index 000000000..531d142dc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/files/mdns.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Zero-configuration networking
+After=network.target
+
+[Service]
+Type=forking
+ExecStartPre=/bin/rm -f /var/run/mdnsd.pid
+ExecStart=/usr/sbin/mdnsd
+ExecReload=/bin/kill -HUP $MAINPID
+PIDFile=/var/run/mdnsd.pid
+Restart=always
+RestartSec=10s
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb
new file mode 100644
index 000000000..1a80f7acb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb
@@ -0,0 +1,89 @@
+SUMMARY = "Publishes & browses available services on a link according to the Zeroconf / Bonjour protocol"
+DESCRIPTION = "Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks."
+HOMEPAGE = "http://developer.apple.com/networking/bonjour/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
+
+RPROVIDES_${PN} += "libdns_sd.so"
+
+SRC_URI = "http://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \
+ file://build.patch;patchdir=.. \
+ file://mdns.service \
+ "
+
+SRC_URI[md5sum] = "4a6bc1628851002634ea3833a4dca317"
+SRC_URI[sha256sum] = "de61dd0034357aa50c60806726fb1f70fa8e953ff9cb62eccfb73efad10dba0a"
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/mDNSResponder-${PV}/mDNSPosix"
+
+EXTRA_OEMAKE += "os=linux DEBUG=0 'CC=${CC}' 'LD=${CCLD} ${LDFLAGS}'"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+ install -d ${D}${sbindir}
+ install -m 0755 build/prod/mdnsd ${D}${sbindir}
+
+ install -d ${D}${libdir}
+ cp build/prod/libdns_sd.so ${D}${libdir}/libdns_sd.so.1
+ chmod 0644 ${D}${libdir}/libdns_sd.so.1
+ ln -s libdns_sd.so.1 ${D}${libdir}/libdns_sd.so
+
+ install -d ${D}${includedir}
+ install -m 0644 ../mDNSShared/dns_sd.h ${D}${includedir}
+
+ install -d ${D}${mandir}/man8
+ install -m 0644 ../mDNSShared/mDNSResponder.8 ${D}${mandir}/man8/mdnsd.8
+
+ install -d ${D}${bindir}
+ install -m 0755 ../Clients/build/dns-sd ${D}${bindir}
+
+ install -d ${D}${libdir}
+ oe_libinstall -C build/prod -so libnss_mdns-0.2 ${D}${libdir}
+ ln -s libnss_mdns-0.2.so ${D}${libdir}/libnss_mdns.so.2
+
+ install -d ${D}${sysconfdir}
+ install -m 0644 nss_mdns.conf ${D}${sysconfdir}
+
+ install -d ${D}${mandir}/man5
+ install -m 0644 nss_mdns.conf.5 ${D}${mandir}/man5
+
+ install -d ${D}${mandir}/man8
+ install -m 0644 libnss_mdns.8 ${D}${mandir}/man8
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/mdns.service ${D}${systemd_unitdir}/system/
+}
+
+pkg_postinst_${PN} () {
+ sed -e '/^hosts:/s/\s*\<mdns\>//' \
+ -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 mdns\3\4\5/' \
+ -i $D/etc/nsswitch.conf
+}
+
+pkg_prerm_${PN} () {
+ sed -e '/^hosts:/s/\s*\<mdns\>//' \
+ -e '/^hosts:/s/\s*mdns//' \
+ -i $D/etc/nsswitch.conf
+}
+
+inherit systemd
+
+SYSTEMD_SERVICE_${PN} = "mdns.service"
+
+FILES_${PN} += "${systemd_unitdir}/system/mdns.service"
+FILES_${PN} += "${libdir}/libdns_sd.so.1 \
+ ${bindir}/dns-sd \
+ ${libdir}/libnss_mdns-0.2.so \
+ ${sysconfdir}/nss_mdns.conf"
+
+FILES_${PN}-dev += "${libdir}/libdns_sd.so \
+ ${includedir}/dns_sd.h "
+
+FILES_${PN}-man += "${mandir}/man8/mdnsd.8 \
+ ${mandir}/man5/nss_mdns.conf.5 \
+ ${mandir}/man8/libnss_mdns.8"
+
+PACKAGES = "${PN} ${PN}-dev ${PN}-man ${PN}-dbg"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init
index 2b8fe18b3..47995466f 100755
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init
@@ -3,9 +3,6 @@
. /etc/init.d/functions
-test -x /usr/sbin/snmpd || exit 0
-test -x /usr/sbin/snmptrapd || exit 0
-
# Defaults
export MIBDIRS=/usr/share/snmp/mibs
SNMPDRUN=yes
@@ -18,6 +15,9 @@ SPIDFILE=/var/run/snmptrapd.pid
# Reads config file if exists (will override defaults above)
[ -r /etc/default/snmpd ] && . /etc/default/snmpd
+[ "$SNMPDRUN" = "yes" ] && { test -x /usr/sbin/snmpd || exit 0; }
+[ "$TRAPDRUN" = "yes" ] && { test -x /usr/sbin/snmptrapd || exit 0; }
+
case "$1" in
start)
echo -n "Starting network management services:"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
new file mode 100644
index 000000000..efe803876
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
@@ -0,0 +1,45 @@
+From e47c60dc7f649959f63e56bc62355de4bdfd73f4 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
+
+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(-)
+
+diff --git a/agent/snmpd.c b/agent/snmpd.c
+index 056048a..12a7ea1 100644
+--- a/agent/snmpd.c
++++ b/agent/snmpd.c
+@@ -1246,6 +1246,7 @@ receive(void)
+ snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n",
+ netsnmp_get_version());
+ update_config();
++ snmp_store(app_name);
+ send_easy_trap(SNMP_TRAP_ENTERPRISESPECIFIC, 3);
+ #if HAVE_SIGHOLD
+ sigrelse(SIGHUP);
+diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c
+index 435cafd..6ad8208 100644
+--- a/snmplib/snmpv3.c
++++ b/snmplib/snmpv3.c
+@@ -984,9 +984,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
+ */
+- if (engineIDLen != oldEngineIDLength ||
++ if (oldEngineIDLength != (size_t)0 && (engineIDLen != oldEngineIDLength ||
+ oldEngineID == NULL || c_engineID == NULL ||
+- memcmp(oldEngineID, c_engineID, engineIDLen) != 0) {
++ memcmp(oldEngineID, c_engineID, engineIDLen) != 0)) {
+ engineBoots = 1;
+ }
+
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
new file mode 100644
index 000000000..25eb9c96f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
@@ -0,0 +1,32 @@
+From 270e952f58a7e5ddeabe5a15e3ddaaadf40017d0 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
+
+Include des.h only if it's found in openssl so that
+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
+--- a/snmplib/scapi.c
++++ b/snmplib/scapi.c
+@@ -79,7 +79,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
+ #include <openssl/hmac.h>
+ #include <openssl/evp.h>
+ #include <openssl/rand.h>
++#ifdef HAVE_OPENSSL_DES_H
+ #include <openssl/des.h>
++#endif
+ #ifdef HAVE_AES
+ #include <openssl/aes.h>
+ #endif
+--
+2.11.0
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
index 2d6887e37..849ae0763 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
@@ -30,6 +30,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \
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 \
"
SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee"
SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e"
@@ -58,7 +60,8 @@ EXTRA_OECONF = "--enable-shared \
--with-defaults \
--with-install-prefix=${D} \
--with-persistent-directory=${localstatedir}/lib/net-snmp \
- ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)}"
+ ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)} \
+"
# net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp
EXTRA_OECONF += "--with-mib-modules=smux"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch
new file mode 100644
index 000000000..a11a97ebd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch
@@ -0,0 +1,31 @@
+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/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch
new file mode 100644
index 000000000..3119425e6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch
@@ -0,0 +1,35 @@
+commit 6ea3125e2bec15004f312814022335d94cdf7e94
+Author: Aws Ismail <aws.ismail@windriver.com>
+Date: Wed Sep 19 11:34:48 2012 -0400
+
+ Fix openl2tp config script location
+
+ Correct the location of the sysconfig
+ script. Use /etc/default/ instead of
+ /etc/sysconfig/
+
+ Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+
+ Upstream-Status: Inappropriate [configuration]
+
+ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+diff --git a/etc/rc.d/init.d/openl2tpd b/etc/rc.d/init.d/openl2tpd
+index 7f27bb7..4194f63 100755
+--- a/etc/rc.d/init.d/openl2tpd
++++ b/etc/rc.d/init.d/openl2tpd
+@@ -8,12 +8,12 @@
+ # can be used to implement L2TP VPNs. As a server, it can handle
+ # hundreds of tunnels and sessions.
+ # processname: openl2tpd
+-# config: /etc/sysconfig/openl2tpd
++# config: /etc/default/openl2tpd
+ # pidfile: /var/run/openl2tpd.pid
+
+ # Source function library.
+ . /etc/init.d/functions
+-. /etc/sysconfig/openl2tpd
++. /etc/default/openl2tpd
+
+ # See how we were called.
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-warning.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-warning.patch
new file mode 100644
index 000000000..15a8c5b08
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-warning.patch
@@ -0,0 +1,32 @@
+openl2tp: eliminate warning from modprobe
+
+modprobe will emit alarming warnings if it cannot
+find a module, but we only care that it find one
+of two possible modules when we start openl2tpd.
+
+Suppress messages from modprobe.
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <jslater@windriver.com>
+
+--- a/etc/rc.d/init.d/openl2tpd
++++ b/etc/rc.d/init.d/openl2tpd
+@@ -29,7 +29,7 @@ start() {
+ return 1
+ fi
+ fi
+- modprobe -s pppol2tp || modprobe -s l2tp_ppp
++ modprobe -sq pppol2tp || modprobe -sq l2tp_ppp
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ start-stop-daemon --start --exec openl2tpd $OPENL2TPDARGS
+@@ -57,7 +57,7 @@ stop() {
+ return 1;
+ fi
+ killproc openl2tpd
+- modprobe -s -r pppol2tp || modprobe -s -r l2tp_ppp
++ modprobe -srq pppol2tp || modprobe -srq l2tp_ppp
+ echo
+ rm -f /var/run/openl2tpd.pid
+ rm -f /var/lock/subsys/openl2tpd
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch
new file mode 100644
index 000000000..9ecd4b072
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch
@@ -0,0 +1,49 @@
+commit 7c58a1e244ea83a9e7bbd51a6d354cee25cdbd33
+Author: Aws Ismail <aws.ismail@windriver.com>
+Date: Wed Sep 12 23:35:40 2012 -0400
+
+ Fix openl2tpd initscript
+
+ - Correct the location of the retval statement.
+ - use start-stop-daemon instead of daemon.
+
+ Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+
+ Upstream-Status: Inappropriate [OE specific]
+
+ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+diff --git a/etc/rc.d/init.d/openl2tpd b/etc/rc.d/init.d/openl2tpd
+index ce21b50..7f27bb7 100755
+--- a/etc/rc.d/init.d/openl2tpd
++++ b/etc/rc.d/init.d/openl2tpd
+@@ -24,7 +24,7 @@ start() {
+ if [ -e /var/lock/subsys/openl2tpd ]; then
+ if [ -e /var/run/openl2tpd.pid ] && [ -e /proc/`cat /var/run/openl2tpd.pid` ]; then
+ echo -n $"cannot start openl2tpd: openl2tpd is already running.";
+- failure $"cannot start openl2tpd: openl2tpd already running.";
++ #failure $"cannot start openl2tpd: openl2tpd already running.";
+ echo
+ return 1
+ fi
+@@ -32,9 +32,9 @@ start() {
+ modprobe -s pppol2tp || modprobe -s l2tp_ppp
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+- daemon openl2tpd $OPENL2TPDARGS
++ start-stop-daemon --start --exec openl2tpd $OPENL2TPDARGS
++ RETVAL=$?
+ fi
+- RETVAL=$?
+ echo
+ if [ $RETVAL -eq 0 ]; then
+ touch /var/lock/subsys/openl2tpd
+@@ -52,7 +52,7 @@ stop() {
+ echo -n $"Stopping $prog: "
+ if [ ! -e /var/lock/subsys/openl2tpd ]; then
+ echo -n $"cannot stop openl2tpd: openl2tpd is not running."
+- failure $"cannot stop openl2tpd: openl2tpd is not running."
++ #failure $"cannot stop openl2tpd: openl2tpd is not running."
+ echo
+ return 1;
+ fi
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service
new file mode 100644
index 000000000..7b3faf672
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=The open L2TP implementation
+After=network.target remote-fs.target nss-lookup.target rpcbind.target
+Requires=rpcbind.service
+
+[Service]
+Type=forking
+PIDFile=@STATEDIR@/run/openl2tpd.pid
+EnvironmentFile=@SYSCONFDIR@/default/openl2tpd
+ExecStartPre=@BASE_BINDIR@/sh -c "@BASE_SBINDIR@/modprobe -sq l2tp_ppp || @BASE_SBINDIR@/modprobe -sq pppol2tp"
+ExecStart=@SBINDIR@/openl2tpd $OPENL2TPDARGS
+ExecStartPost=@BASE_BINDIR@/sh -c 'if [ -n "$OPENL2TPD_CONFIG_FILE" ]; then sleep 1; @BINDIR@/l2tpconfig config restore file=$OPENL2TPD_CONFIG_FILE; fi'
+ExecStopPost=@BASE_BINDIR@/sh -c "@BASE_SBINDIR@/modprobe -rsq l2tp_ppp || @BASE_SBINDIR@/modprobe -rsq pppol2tp"
+SuccessExitStatus=1
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
index e1670b3ae..bbde8a337 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
@@ -7,8 +7,15 @@ different configuration. It is used by several ISPs to provide \
L2TP services and by corporations to implement L2TP VPNs."
HOMEPAGE = "http://www.openl2tp.org/"
SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e9d9259cbbf00945adc25a470c1d3585"
+
+# cli and usl use license LGPL-2.1
+LICENSE = "GPL-2.0 & LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e9d9259cbbf00945adc25a470c1d3585 \
+ file://LICENSE;md5=f8970abd5ea9be701a0deedf5afd77a5 \
+ file://cli/LICENSE;md5=9c1387a3c5213aa40671438af3e00793 \
+ file://usl/LICENSE;md5=9c1387a3c5213aa40671438af3e00793 \
+ "
+
DEPENDS = "popt flex readline"
SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \
@@ -20,16 +27,24 @@ SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \
file://0002-cli-include-fcntl.h-for-O_CREAT-define.patch \
file://0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch \
file://0001-l2tp_api-Included-needed-headers.patch \
+ file://openl2tpd-initscript-fix.patch \
+ file://openl2tpd-initscript-fix-sysconfig.patch \
+ file://openl2tpd-initscript-fix-warning.patch \
+ file://openl2tpd.service \
"
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"
-inherit autotools-brokensep pkgconfig
+inherit autotools-brokensep pkgconfig systemd
+
+SYSTEMD_SERVICE_${PN} = "openl2tpd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
DEPENDS_append_libc-musl = " libtirpc"
CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
@@ -51,3 +66,23 @@ do_compile_prepend() {
-e 's:CPPFLAGS-y:CPPFLAGS:g' \
${S}/Makefile
}
+
+do_install_append () {
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/default
+ install -m 0755 ${S}/etc/rc.d/init.d/openl2tpd ${D}${sysconfdir}/init.d/openl2tpd
+ install -m 0755 ${S}/etc/sysconfig/openl2tpd ${D}${sysconfdir}/default/openl2tpd
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -D -m 0644 ${WORKDIR}/openl2tpd.service ${D}${systemd_system_unitdir}/openl2tpd.service
+ sed -i -e 's,@STATEDIR@,${localstatedir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@BINDIR@,${bindir},g' \
+ -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
+ -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ ${D}${systemd_system_unitdir}/openl2tpd.service
+ fi
+}
+
+RDEPENDS_${PN} = "ppp ppp-l2tp bash"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch
new file mode 100644
index 000000000..804bf1234
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch
@@ -0,0 +1,28 @@
+From f6c4d2468ae0dadd2f35680d61b98b2a59077328 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 10:31:03 -0700
+Subject: [PATCH] include missing sys/types.h
+
+Fixes errors seen on musl
+pqueue.h:21:3: error: unknown type name 'u_int32_t'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ pqueue.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/pqueue.h b/pqueue.h
+index c37ba7b..ae4cc6a 100644
+--- a/pqueue.h
++++ b/pqueue.h
+@@ -3,6 +3,7 @@
+
+ #include <time.h>
+ #include <sys/time.h>
++#include <sys/types.h>
+
+ /* wait this many seconds for missing packets before forgetting about them */
+ #define DEFAULT_PACKET_TIMEOUT 0.3
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.8.0/options.pptp b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux/options.pptp
index f446e22a6..f446e22a6 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.8.0/options.pptp
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux/options.pptp
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb
index bc8b2cb2b..10c9170fb 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb
@@ -9,14 +9,13 @@ SECTION = "net"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-PR = "r1"
-
SRC_URI = "${SOURCEFORGE_MIRROR}/sourceforge/pptpclient/pptp-${PV}.tar.gz \
file://options.pptp \
-"
+ file://0001-include-missing-sys-types.h.patch \
+ "
-SRC_URI[md5sum] = "4efce9f263e2c3f38d79d9df222476de"
-SRC_URI[sha256sum] = "e39c42d933242a8a6dd8600a0fa7f0a5ec8f066d10c4149d8e81a5c68fe4bbda"
+SRC_URI[md5sum] = "b2117b377f65294a9786f80f0235d308"
+SRC_URI[sha256sum] = "0b1e8cbfc578d3f5ab12ee87c5c2c60419abfe9cc445690a8a19c320b11c9201"
S = "${WORKDIR}/pptp-${PV}"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc
index 4fb6723c3..dfd6aa7eb 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc
@@ -7,21 +7,20 @@ Ishiguro. The Quagga tree aims to build a more involved community \
around Quagga than the current centralised model of GNU Zebra."
HOMEPAGE = "http://www.nongnu.org/quagga/"
SECTION = "net"
-LICENSE = "GPL-2.0 & LGPL-2.0"
-DEPENDS = "readline ncurses perl-native"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'snmp', 'net-snmp', '', d)}"
-SNMP_CONF="${@bb.utils.contains('DISTRO_FEATURES', 'snmp', '--enable-snmp', '', d)}"
+
+LICENSE = "GPL-2.0 & LGPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=81bcece21748c91ba9992349a91ec11d \
file://COPYING.LIB;md5=01ef24401ded36cd8e5d18bfe947240c"
+DEPENDS = "readline ncurses perl-native c-ares"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'snmp', 'net-snmp', '', d)}"
+SNMP_CONF="${@bb.utils.contains('DISTRO_FEATURES', 'snmp', '--enable-snmp', '', d)}"
+
# the "ip" command from busybox is not sufficient (flush by protocol flushes all routes)
RDEPENDS_${PN} += "iproute2"
-QUAGGASUBDIR = ""
-# ${QUAGGASUBDIR} is deal with old versions. Set to "/attic" for old
-# versions and leave it empty for recent versions.
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz; \
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga/quagga-${PV}.tar.gz; \
file://quagga.init \
file://quagga.default \
file://watchquagga.init \
@@ -35,7 +34,7 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz; \
file://ripd.service \
file://ripngd.service \
file://zebra.service \
-"
+ "
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap"
@@ -108,10 +107,6 @@ do_install () {
sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/* ${D}${sysconfdir}/default/volatiles/volatiles.03_quagga
sed -i 's!^PATH=.*!PATH=${base_sbindir}:${sbindir}:${base_bindir}:${bindir}!' ${D}${sysconfdir}/init.d/*
- # Remove generated info dir file, it doesn't belong in the generated
- # package.
- rm -f ${D}${infodir}/dir
-
# For PAM
for feature in ${DISTRO_FEATURES}; do
if [ "$feature" = "pam" ]; then
@@ -188,9 +183,6 @@ CONFFILES_${PN}-watchquagga = "${sysconfdir}/default/watchquagga"
DEBIAN_NOAUTONAME_${PN}-ospfd = "1"
DEBIAN_NOAUTONAME_${PN}-ospfclient = "1"
-# the "ip" command from busybox is not sufficient (flush by protocol flushes all routes)
-RDEPENDS_${PN} += "iproute2"
-
# Main init script starts all deamons
# Seperate init script for watchquagga
INITSCRIPT_PACKAGES = "${PN} ${PN}-watchquagga"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb
deleted file mode 100644
index 1b5c34c87..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require quagga.inc
-
-SRC_URI[md5sum] = "daa303871e07ea5856aae6fd79e89722"
-SRC_URI[sha256sum] = "f7a43a9c59bfd3722002210530b2553c8d5cc05bfea5acd56d4f102b9f55dc63"
-
-QUAGGASUBDIR = ""
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.2.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.2.1.bb
new file mode 100644
index 000000000..4d43d7b2a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.2.1.bb
@@ -0,0 +1,4 @@
+require quagga.inc
+
+SRC_URI[md5sum] = "b1546de89062f7070d56e780b30be4b1"
+SRC_URI[sha256sum] = "aaddba5d4f41ed8e4c2f155f4584c993465d122c9096b5b52ada3fc75266fbcd"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc
index 6f7f69330..d037c7cfc 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc
@@ -6,12 +6,9 @@ DEPENDS = "ppp virtual/kernel"
PACKAGE_ARCH = "${MACHINE_ARCH}"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-INC_PR = "r0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/xelerance/xl2tpd.git \
- file://fix-inline-functions-errors-with-gcc-5.x.patch \
"
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd/fix-inline-functions-errors-with-gcc-5.x.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd/fix-inline-functions-errors-with-gcc-5.x.patch
deleted file mode 100644
index b75c9129d..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd/fix-inline-functions-errors-with-gcc-5.x.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-Upstream-Status: Backport
-
-Backport from https://github.com/xelerance/xl2tpd/commit/9098f64950eb22cf049058d40f647bafdb822174
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 9098f64950eb22cf049058d40f647bafdb822174 Mon Sep 17 00:00:00 2001
-From: Kai Kang <kai.kang@windriver.com>
-Date: Wed, 23 Sep 2015 10:41:05 +0800
-Subject: [PATCH] Fix build errors caused by inline function with gcc 5
-
-GCC 5 defaults to -std=gnu11 instead of -std=gnu89. And -std=gnu89
-employs the GNU89 inline semantics, -std=gnu11 uses the C99 inline
-semantics.
-
-For 'inline' fuction, it is NOT exported by C99. So error messages such as:
-
-| control.c:1717: undefined reference to `check_control'
-
-For these functions which is not referred by other compile units, make
-them 'static inline'.
-
-For 'extern inline' function, it fails such as:
-
-| misc.h:68:20: warning: inline function 'swaps' declared but never defined
-| extern inline void swaps (void *, int);
-| ^
-
-Because function swaps() is referred by other compile units, it must be
-exported. The semantics of 'extern inline' are not same between GNU89
-and C99, so remove 'inline' attribute for compatible with GNU89.
-
-Ref:
-https://gcc.gnu.org/gcc-5/porting_to.html
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- control.c | 8 ++++----
- misc.c | 2 +-
- misc.h | 2 +-
- network.c | 4 ++--
- 4 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/control.c b/control.c
-index b2891a9..c4a39b5 100644
---- a/control.c
-+++ b/control.c
-@@ -1140,7 +1140,7 @@ int control_finish (struct tunnel *t, struct call *c)
- return 0;
- }
-
--inline int check_control (const struct buffer *buf, struct tunnel *t,
-+static inline int check_control (const struct buffer *buf, struct tunnel *t,
- struct call *c)
- {
- /*
-@@ -1276,7 +1276,7 @@ inline int check_control (const struct buffer *buf, struct tunnel *t,
- return 0;
- }
-
--inline int check_payload (struct buffer *buf, struct tunnel *t,
-+static inline int check_payload (struct buffer *buf, struct tunnel *t,
- struct call *c)
- {
- /*
-@@ -1382,7 +1382,7 @@ inline int check_payload (struct buffer *buf, struct tunnel *t,
- #endif
- return 0;
- }
--inline int expand_payload (struct buffer *buf, struct tunnel *t,
-+static inline int expand_payload (struct buffer *buf, struct tunnel *t,
- struct call *c)
- {
- /*
-@@ -1562,7 +1562,7 @@ void send_zlb (void *data)
- toss (buf);
- }
-
--inline int write_packet (struct buffer *buf, struct tunnel *t, struct call *c,
-+static inline int write_packet (struct buffer *buf, struct tunnel *t, struct call *c,
- int convert)
- {
- /*
-diff --git a/misc.c b/misc.c
-index 3092401..af90dbf 100644
---- a/misc.c
-+++ b/misc.c
-@@ -170,7 +170,7 @@ void do_packet_dump (struct buffer *buf)
- printf ("}\n");
- }
-
--inline void swaps (void *buf_v, int len)
-+void swaps (void *buf_v, int len)
- {
- #ifdef __alpha
- /* Reverse byte order alpha is little endian so lest save a step.
-diff --git a/misc.h b/misc.h
-index aafdc62..caab7a1 100644
---- a/misc.h
-+++ b/misc.h
-@@ -65,7 +65,7 @@ extern void l2tp_log (int level, const char *fmt, ...);
- extern struct buffer *new_buf (int);
- extern void udppush_handler (int);
- extern int addfcs (struct buffer *buf);
--extern inline void swaps (void *, int);
-+extern void swaps (void *, int);
- extern void do_packet_dump (struct buffer *);
- extern void status (const char *fmt, ...);
- extern void status_handler (int signal);
-diff --git a/network.c b/network.c
-index b1268c6..d324a71 100644
---- a/network.c
-+++ b/network.c
-@@ -135,7 +135,7 @@ int init_network (void)
- return 0;
- }
-
--inline void extract (void *buf, int *tunnel, int *call)
-+static inline void extract (void *buf, int *tunnel, int *call)
- {
- /*
- * Extract the tunnel and call #'s, and fix the order of the
-@@ -155,7 +155,7 @@ inline void extract (void *buf, int *tunnel, int *call)
- }
- }
-
--inline void fix_hdr (void *buf)
-+static inline void fix_hdr (void *buf)
- {
- /*
- * Fix the byte order of the header
---
-2.6.1
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb
index 42bc398a1..88ae5d6f8 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb
@@ -2,7 +2,7 @@ require xl2tpd.inc
# This is v1.3.6 plus some commits. There is no tag for this commit.
#
-PV = "1.3.6+git${SRCPV}"
+PV = "1.3.9+git${SRCPV}"
-SRCREV = "a96b345962622ea58490924130675df6db062d11"
+SRCREV = "f114c10ac532051badeca0132b144a2f1596f047"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb
index 274a55d91..cec1d1f77 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb
@@ -23,7 +23,8 @@ inherit systemd
EXTRA_OEMAKE = "'BINDIR=${sbindir}' 'MANDIR=${mandir}'"
-do_install_append() {
+do_install() {
+ oe_runmake install DESTDIR=${D}
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/arptables.service ${D}${systemd_unitdir}/system
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/0001-configure.ac-don-t-override-passed-cflags.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/0001-configure.ac-don-t-override-passed-cflags.patch
deleted file mode 100644
index 10fad4e94..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/0001-configure.ac-don-t-override-passed-cflags.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2a7236d2a7bb9c3d3c3f44ebf59404bf7134fcb3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
-Date: Tue, 12 Apr 2016 11:37:28 +0100
-Subject: [PATCH] configure.ac: don't override passed cflags
-
-We are controlling debug and optimiser flags from OE
----
- configure.ac | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5c02450..3cf9fcd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -147,8 +147,6 @@ dnl **********************************************************************
-
- CARES_CHECK_COMPILER
- CARES_SET_COMPILER_BASIC_OPTS
--CARES_SET_COMPILER_DEBUG_OPTS
--CARES_SET_COMPILER_OPTIMIZE_OPTS
- CARES_SET_COMPILER_WARNING_OPTS
-
- if test "$compiler_id" = "INTEL_UNIX_C"; then
---
-2.8.0.rc3
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
new file mode 100644
index 000000000..5dd4c7d77
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
@@ -0,0 +1,105 @@
+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
+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>
+---
+ CMakeLists.txt | 21 +++++++++++++++++++++
+ libcares.pc.cmakein | 20 ++++++++++++++++++++
+ 2 files changed, 41 insertions(+)
+ create mode 100644 libcares.pc.cmakein
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 364b6c7..0016b67 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -173,21 +173,29 @@ ADD_DEFINITIONS(${SYSFLAGS})
+
+
+ # Tell C-Ares about libraries to depend on
++# Also pass these libraries to pkg-config file
++SET(CARES_PRIVATE_LIBS_LIST)
+ IF (HAVE_LIBRESOLV)
+ LIST (APPEND CARES_DEPENDENT_LIBS resolv)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lresolv")
+ ENDIF ()
+ IF (HAVE_LIBNSL)
+ LIST (APPEND CARES_DEPENDENT_LIBS nsl)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lnsl")
+ ENDIF ()
+ IF (HAVE_LIBSOCKET)
+ LIST (APPEND CARES_DEPENDENT_LIBS socket)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lsocket")
+ ENDIF ()
+ IF (HAVE_LIBRT)
+ LIST (APPEND CARES_DEPENDENT_LIBS rt)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lrt")
+ ENDIF ()
+ IF (WIN32)
+ LIST (APPEND CARES_DEPENDENT_LIBS ws2_32)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lws2_32")
+ ENDIF ()
++string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}")
+
+
+ # When checking for symbols, we need to make sure we set the proper
+@@ -489,6 +497,13 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h)
+ # 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")
++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})
+ 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})
++ENDIF ()
++
+ # Legacy chain-building variables (provided for compatibility with old code).
+ # Don't use these, external code should be updated to refer to the aliases directly (e.g., Cares::cares).
+ 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
+--- /dev/null
++++ b/libcares.pc.cmakein
+@@ -0,0 +1,20 @@
++#***************************************************************************
++# Project ___ __ _ _ __ ___ ___
++# / __|____ / _` | '__/ _ \/ __|
++# | (_|_____| (_| | | | __/\__ \
++# \___| \__,_|_| \___||___/
++#
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=@CMAKE_INSTALL_PREFIX@
++libdir=@CMAKE_INSTALL_FULL_LIBDIR@
++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
++
++Name: c-ares
++URL: http://daniel.haxx.se/projects/c-ares/
++Description: asynchronous DNS lookup library
++Version: @VERSION@
++Requires:
++Requires.private:
++Cflags: -I${includedir} @CPPFLAG_CARES_STATICLIB@
++Libs: -L${libdir} -lcares
++Libs.private: @CARES_PRIVATE_LIBS@
+--
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.12.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.12.0.bb
deleted file mode 100644
index 4e28d6abc..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.12.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (c) 2012-2014 LG Electronics, Inc.
-
-SUMMARY = "c-ares is a C library that resolves names asynchronously."
-HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f4b026880834eb01c035c5e5cb47ccac"
-
-SRC_URI = "http://c-ares.haxx.se/download/${BP}.tar.gz \
- file://0001-configure.ac-don-t-override-passed-cflags.patch \
-"
-SRC_URI[md5sum] = "2ca44be1715cd2c5666a165d35788424"
-SRC_URI[sha256sum] = "8692f9403cdcdf936130e045c84021665118ee9bfea905d1a76f04d4e6f365fb"
-
-inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb
new file mode 100644
index 000000000..70e497f5f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb
@@ -0,0 +1,24 @@
+# Copyright (c) 2012-2014 LG Electronics, Inc.
+SUMMARY = "c-ares is a C library that resolves names asynchronously."
+HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f4b026880834eb01c035c5e5cb47ccac"
+SRCREV = "3be1924221e1326df520f8498d704a5c4c8d0cce"
+PV = "1.13.0+gitr${SRCPV}"
+
+SRC_URI = "\
+ git://github.com/c-ares/c-ares.git \
+ file://cmake-install-libcares.pc.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+PACKAGES =+ "${PN}-utils"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+FILES_${PN}-utils = "${bindir}"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb
index efda70755..3ca5b780b 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb
@@ -4,12 +4,13 @@ SECTION = "otherosfs"
LICENSE = "GPLv3 & LGPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-PV = "6.6"
+PV = "6.7"
-SRCREV = "7926aaea98cdc96b6544b8e21fb5b0b4422c340d"
+SRCREV = "8101a07871f185c7044fa2ca221b282ab4607c8b"
SRC_URI = "git://git.samba.org/cifs-utils.git"
S = "${WORKDIR}/git"
+DEPENDS += "libtalloc"
PACKAGECONFIG ??= ""
PACKAGECONFIG[cap] = "--with-libcap,--without-libcap,libcap"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch
deleted file mode 100644
index dae583d85..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-example21.cpp: remove deprecated code
-
-The deprecated code was no longer used, so remove it to avoid
-compiling failure with -Werror=unused-function
-...
-| example21.cpp:51:8: error: 'size_t {anonymous}::readData(char*,
-size_t, size_t)' defined but not used [-Werror=unused-function]
-| size_t readData(char *buffer, size_t size, size_t nitems)
-...
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- examples/example21.cpp | 17 -----------------
- 1 file changed, 17 deletions(-)
-
-diff --git a/examples/example21.cpp b/examples/example21.cpp
---- a/examples/example21.cpp
-+++ b/examples/example21.cpp
-@@ -39,23 +39,6 @@
- #include <curlpp/Options.hpp>
- #include <curlpp/Exception.hpp>
-
--/*
-- anonymous namespace to prevent name clash in case other examples using the same global entities
-- would be compiled in the same project
--*/
--namespace
--{
--
--char *data = NULL;
--
--size_t readData(char *buffer, size_t size, size_t nitems)
--{
-- strncpy(buffer, data, size * nitems);
-- return size * nitems;
--}
--
--} // namespace
--
- int main(int argc, char *argv[])
- {
- if(argc != 3) {
---
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
index ef79c5f82..4f4bbf144 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
@@ -6,8 +6,8 @@ LICENSE = "GPLv2 | GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504"
-#at least versions 2.15 and prior are moved to the archive folder on the server
-SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 15]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \
+#at least versions 2.69 and prior are moved to the archive folder on the server
+SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 69]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \
file://init \
file://dnsmasq.conf \
file://dnsmasq-resolvconf.service \
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
index 918c0b6d5..0991dd8b9 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
@@ -1,29 +1,30 @@
-From 1e5be0a0bcf85913d63408030dec038d360a5fa6 Mon Sep 17 00:00:00 2001
+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]
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
- Makefile | 4 ++--
+ Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
-index fc38393..a79f8bf 100644
+index 73ea23e..ed3eeb9 100644
--- a/Makefile
+++ b/Makefile
-@@ -57,8 +57,8 @@ idn_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) -
- idn_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --libs libidn`
+@@ -59,8 +59,8 @@ idn2_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFI
+ idn2_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFIG) --libs libidn2`
ct_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --cflags libnetfilter_conntrack`
ct_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --libs libnetfilter_conntrack`
--lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua5.1`
--lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua5.1`
+-lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua5.2`
+-lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua5.2`
+lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua`
+lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua`
nettle_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --cflags nettle hogweed`
nettle_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --libs nettle hogweed`
- gmp_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --copy -lgmp`
+ gmp_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC NO_GMP --copy -lgmp`
--
-1.7.9.5
+2.9.5
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.76.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.76.bb
deleted file mode 100644
index 41573d9dd..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.76.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require dnsmasq.inc
-
-SRC_URI += "\
- file://lua.patch \
-"
-
-SRC_URI[dnsmasq-2.76.md5sum] = "6610f8233ca89b15a1bb47c788ffb84f"
-SRC_URI[dnsmasq-2.76.sha256sum] = "777c4762d2fee3738a0380401f2d087b47faa41db2317c60660d69ad10a76c32"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb
new file mode 100644
index 000000000..4d1dc6e69
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb
@@ -0,0 +1,8 @@
+require dnsmasq.inc
+
+SRC_URI += "\
+ file://lua.patch \
+"
+
+SRC_URI[dnsmasq-2.78.md5sum] = "3bb97f264c73853f802bf70610150788"
+SRC_URI[dnsmasq-2.78.sha256sum] = "c92e5d78aa6353354d02aabf74590d08980bb1385d8a00b80ef9bc80430aa1dc"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch
new file mode 100644
index 000000000..65ae9bf91
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch
@@ -0,0 +1,38 @@
+From be9b3809b86fe593dbb16f0b981b3d315a27b799 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 22 Oct 2017 22:10:41 -0700
+Subject: [PATCH] doveadm: Fix parallel build
+
+Sometimes dovetail build fails with errors like
+
+doveadm-util.o: file not recognized: File truncated
+collect2: error: ld returned 1 exit status
+make[4]: *** [Makefile:812: test-doveadm-util] Error 1
+
+This is partial backport from
+
+https://github.com/dovecot/core/commit/b200bc3875fa06d42c8619865cc306c3297fcacc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/doveadm/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/doveadm/Makefile.am b/src/doveadm/Makefile.am
+index c644646..6ae9144 100644
+--- a/src/doveadm/Makefile.am
++++ b/src/doveadm/Makefile.am
+@@ -180,8 +180,8 @@ test_libs = \
+ ../lib/liblib.la
+ test_deps = $(noinst_LTLIBRARIES) $(test_libs)
+
+-test_doveadm_util_SOURCES = test-doveadm-util.c
+-test_doveadm_util_LDADD = doveadm-util.o $(test_libs) $(MODULE_LIBS)
++test_doveadm_util_SOURCES = doveadm-util.c test-doveadm-util.c
++test_doveadm_util_LDADD = $(test_libs) $(MODULE_LIBS)
+ test_doveadm_util_DEPENDENCIES = $(test_deps)
+
+ check: check-am check-test
+--
+2.14.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb
index b2a3de394..166340873 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb
@@ -1,4 +1,5 @@
SUMMARY = "Dovecot is an open source IMAP and POP3 email server"
+HOMEPAGE = "https://www.dovecot.org/"
DESCRIPTION = "Dovecot is an open source IMAP and POP3 email server for Linux/UNIX-like systems, written with security primarily in mind. Dovecot is an excellent choice for both small and large installations. It's fast, simple to set up, requires no special administration and it uses very little memory."
SECTION = "mail"
LICENSE = "LGPLv2.1 & MIT"
@@ -7,7 +8,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a981379bd0f1c362f8d1d21515e5b30b"
SRC_URI = "http://dovecot.org/releases/2.2/dovecot-${PV}.tar.gz \
file://0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch \
file://dovecot.service \
- file://dovecot.socket"
+ file://dovecot.socket \
+ file://0001-doveadm-Fix-parallel-build.patch \
+ "
SRC_URI[md5sum] = "ff95486a5c43025a2c3f5a712e7962b9"
SRC_URI[sha256sum] = "d939ea99126eb8a8c6955390b422b6e27ec0fa43a3b59b2b3218cb5ad67139a6"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch
new file mode 100644
index 000000000..6414f7305
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch
@@ -0,0 +1,24 @@
+If CONFIG_BLK_DEV_DRBD kernel config is enabled, then DRBD
+does not build drbd.ko here. Under this circumstance do_install
+task is going to fail with a below error:
+-- snip --
+| install: cannot stat ‘drbd.ko’: No such file or directory
+| make[1]: *** [install] Error 1
+-- snip --
+
+So, check for kernel module existence before installing.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
+--- drbd-9.0.1-1/drbd/Makefile 2016-07-03 06:54:19.421538690 -0700
++++ drbd-9.0.1-1/drbd/Makefile_mod 2016-07-03 06:53:18.938801628 -0700
+@@ -158,7 +158,7 @@ else
+ fi
+ install -d $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR)
+ set -e ; for ko in $(MODOBJS); do \
+- install -m 644 $$ko $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR); \
++ [ -e $$ko ] && install -m 644 $$ko $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR); \
+ done
+ ifeq ($(DESTDIR),/)
+ ifeq ($(shell uname -r),$(KERNELRELEASE))
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb
new file mode 100644
index 000000000..e943f2464
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Distributed block device driver for Linux"
+DESCRIPTION = "DRBD is a block device which is designed to build high \
+ availability clusters. This is done by mirroring a whole \
+ block device via (a dedicated) network. You could see \
+ it as a network raid-1."
+HOMEPAGE = "http://oss.linbit.com/drbd/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
+DEPENDS = "virtual/kernel"
+
+SRC_URI = "http://www.linbit.com/downloads/drbd/9.0/drbd-${PV}.tar.gz \
+ file://check_existence_of_modules_before_installing.patch"
+
+SRC_URI[md5sum] = "c1dd58043f46e9926b579aa65d4ea980"
+SRC_URI[sha256sum] = "87f72d46db9bad926415b3ab9f5f1397de8c581d2e2ec1addbdd5ce2604e6123"
+inherit module
+
+EXTRA_OEMAKE += "KDIR='${STAGING_KERNEL_DIR}'"
+
+do_install () {
+ oe_runmake install DESTDIR="${D}"
+}
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb
index 359911ece..1d78288c8 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb
@@ -1,4 +1,5 @@
SUMMARY = "Fetchmail retrieves mail from remote mail servers and forwards it via SMTP"
+HOMEPAGE = "http://www.fetchmail.info/"
DESCRIPTION = "Fetchmail is a full-featured, robust, well-documented remote-mail retrieval and forwarding utility intended to be used over on-demand TCP/IP links (such as SLIP or PPP connections). It supports every remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC."
SECTION = "mail"
LICENSE = "GPLv2 & MIT"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.2.2/GeoIP.conf b/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.4.0/GeoIP.conf
index 134cfed1f..134cfed1f 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.2.2/GeoIP.conf
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.4.0/GeoIP.conf
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.2.2/geoipupdate.cron b/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.4.0/geoipupdate.cron
index 40597a856..40597a856 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.2.2/geoipupdate.cron
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.4.0/geoipupdate.cron
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate_2.2.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate_2.4.0.bb
index 3bc936a0d..3e045bb27 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate_2.2.2.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate_2.4.0.bb
@@ -6,20 +6,23 @@ SECTION = "net"
DEPENDS = "zlib curl"
-SRC_URI = "https://github.com/maxmind/geoipupdate/releases/download/v2.2.2/geoipupdate-2.2.2.tar.gz \
+SRC_URI = "https://github.com/maxmind/geoipupdate/releases/download/v2.4.0/geoipupdate-2.4.0.tar.gz \
file://GeoIP.conf \
file://geoipupdate.cron \
"
-
-SRC_URI[md5sum] = "06284bd7bcb298d078d794eb630dae55"
-SRC_URI[sha256sum] = "156ab7604255a9c62c4a442c76d48d024ac813c6542639bffa93b28e2a781621"
+SRC_URI[md5sum] = "02f9712fb80e8e979d3d54cda7f7704f"
+SRC_URI[sha256sum] = "8b4e88ce8d84e9c75bc681704d19ec5c63c54f01e945f7669f97fb0df7e13952"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "\
-file://ChangeLog.md;md5=8ebf6f27a39125c3d600c90914b4034a \
+file://ChangeLog.md;md5=334337b6ecbb65093bae66b3ae21c8c2 \
+"
+FILES_${PN} = "/usr/share/GeoIP \
+ /etc/GeoIP.conf \
+ /etc/cron.d/geoipupdate.cron \
+ /usr/bin/geoipupdate \
"
-
inherit autotools
do_install_append() {
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.7.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb
index 50289211b..ea28b34aa 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.7.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb
@@ -3,9 +3,10 @@ HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bon
SECTION = "net"
LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=6807ba81c0744ab50d735c94628c3f64"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=acc89812938cf9ad6b1debc37cea0253"
-SRCREV = "400c490d52acb31f1064e1bf4fc9fcaf3791888f"
+
+SRCREV = "42bfbb9beb924672ca86b86e9679ac3d6b87d992"
SRC_URI = "git://anonscm.debian.org/collab-maint/ifenslave.git"
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch
new file mode 100644
index 000000000..bd0796554
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch
@@ -0,0 +1,207 @@
+Upstream-Status: Backport [https://anonscm.debian.org/cgit/pkg-ipsec-tools/pkg-ipsec-tools.git/plain/debian/patches/CVE-2016-10396.patch?id=62ac12648a4eb7c5ba5dba0f81998d1acf310d8b]
+
+Fix CVE-2016-10396.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+Description: Fix remotely exploitable DoS. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10396
+Source: vendor; https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=51682
+Bug-debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867986
+
+Index: pkg-ipsec-tools/src/racoon/isakmp_frag.c
+===================================================================
+--- pkg-ipsec-tools.orig/src/racoon/isakmp_frag.c
++++ pkg-ipsec-tools/src/racoon/isakmp_frag.c
+@@ -1,4 +1,4 @@
+-/* $NetBSD: isakmp_frag.c,v 1.5 2009/04/22 11:24:20 tteras Exp $ */
++/* $NetBSD: isakmp_frag.c,v 1.5.36.1 2017/04/21 16:50:42 bouyer Exp $ */
+
+ /* Id: isakmp_frag.c,v 1.4 2004/11/13 17:31:36 manubsd Exp */
+
+@@ -173,6 +173,43 @@ vendorid_frag_cap(gen)
+ return ntohl(hp[MD5_DIGEST_LENGTH / sizeof(*hp)]);
+ }
+
++static int
++isakmp_frag_insert(struct ph1handle *iph1, struct isakmp_frag_item *item)
++{
++ struct isakmp_frag_item *pitem = NULL;
++ struct isakmp_frag_item *citem = iph1->frag_chain;
++
++ /* no frag yet, just insert at beginning of list */
++ if (iph1->frag_chain == NULL) {
++ iph1->frag_chain = item;
++ return 0;
++ }
++
++ do {
++ /* duplicate fragment number, abort (CVE-2016-10396) */
++ if (citem->frag_num == item->frag_num)
++ return -1;
++
++ /* need to insert before current item */
++ if (citem->frag_num > item->frag_num) {
++ if (pitem != NULL)
++ pitem->frag_next = item;
++ else
++ /* insert at the beginning of the list */
++ iph1->frag_chain = item;
++ item->frag_next = citem;
++ return 0;
++ }
++
++ pitem = citem;
++ citem = citem->frag_next;
++ } while (citem != NULL);
++
++ /* we reached the end of the list, insert */
++ pitem->frag_next = item;
++ return 0;
++}
++
+ int
+ isakmp_frag_extract(iph1, msg)
+ struct ph1handle *iph1;
+@@ -224,39 +261,43 @@ isakmp_frag_extract(iph1, msg)
+ item->frag_next = NULL;
+ item->frag_packet = buf;
+
+- /* Look for the last frag while inserting the new item in the chain */
+- if (item->frag_last)
+- last_frag = item->frag_num;
++ /* Check for the last frag before inserting the new item in the chain */
++ if (item->frag_last) {
++ /* if we have the last fragment, indices must match */
++ if (iph1->frag_last_index != 0 &&
++ item->frag_last != iph1->frag_last_index) {
++ plog(LLV_ERROR, LOCATION, NULL,
++ "Repeated last fragment index mismatch\n");
++ racoon_free(item);
++ vfree(buf);
++ return -1;
++ }
+
+- if (iph1->frag_chain == NULL) {
+- iph1->frag_chain = item;
+- } else {
+- struct isakmp_frag_item *current;
++ last_frag = iph1->frag_last_index = item->frag_num;
++ }
+
+- current = iph1->frag_chain;
+- while (current->frag_next) {
+- if (current->frag_last)
+- last_frag = item->frag_num;
+- current = current->frag_next;
+- }
+- current->frag_next = item;
++ /* insert fragment into chain */
++ if (isakmp_frag_insert(iph1, item) == -1) {
++ plog(LLV_ERROR, LOCATION, NULL,
++ "Repeated fragment index mismatch\n");
++ racoon_free(item);
++ vfree(buf);
++ return -1;
+ }
+
+- /* If we saw the last frag, check if the chain is complete */
++ /* If we saw the last frag, check if the chain is complete
++ * we have a sorted list now, so just walk through */
+ if (last_frag != 0) {
++ item = iph1->frag_chain;
+ for (i = 1; i <= last_frag; i++) {
+- item = iph1->frag_chain;
+- do {
+- if (item->frag_num == i)
+- break;
+- item = item->frag_next;
+- } while (item != NULL);
+-
++ if (item->frag_num != i)
++ break;
++ item = item->frag_next;
+ if (item == NULL) /* Not found */
+ break;
+ }
+
+- if (item != NULL) /* It is complete */
++ if (i > last_frag) /* It is complete */
+ return 1;
+ }
+
+@@ -291,15 +332,9 @@ isakmp_frag_reassembly(iph1)
+ }
+ data = buf->v;
+
++ item = iph1->frag_chain;
+ for (i = 1; i <= frag_count; i++) {
+- item = iph1->frag_chain;
+- do {
+- if (item->frag_num == i)
+- break;
+- item = item->frag_next;
+- } while (item != NULL);
+-
+- if (item == NULL) {
++ if (item->frag_num != i) {
+ plog(LLV_ERROR, LOCATION, NULL,
+ "Missing fragment #%d\n", i);
+ vfree(buf);
+@@ -308,6 +343,7 @@ isakmp_frag_reassembly(iph1)
+ }
+ memcpy(data, item->frag_packet->v, item->frag_packet->l);
+ data += item->frag_packet->l;
++ item = item->frag_next;
+ }
+
+ out:
+Index: pkg-ipsec-tools/src/racoon/isakmp_inf.c
+===================================================================
+--- pkg-ipsec-tools.orig/src/racoon/isakmp_inf.c
++++ pkg-ipsec-tools/src/racoon/isakmp_inf.c
+@@ -720,6 +720,7 @@ isakmp_info_send_nx(isakmp, remote, loca
+ #endif
+ #ifdef ENABLE_FRAG
+ iph1->frag = 0;
++ iph1->frag_last_index = 0;
+ iph1->frag_chain = NULL;
+ #endif
+
+Index: pkg-ipsec-tools/src/racoon/isakmp.c
+===================================================================
+--- pkg-ipsec-tools.orig/src/racoon/isakmp.c
++++ pkg-ipsec-tools/src/racoon/isakmp.c
+@@ -1072,6 +1072,7 @@ isakmp_ph1begin_i(rmconf, remote, local)
+ iph1->frag = 1;
+ else
+ iph1->frag = 0;
++ iph1->frag_last_index = 0;
+ iph1->frag_chain = NULL;
+ #endif
+ iph1->approval = NULL;
+@@ -1176,6 +1177,7 @@ isakmp_ph1begin_r(msg, remote, local, et
+ #endif
+ #ifdef ENABLE_FRAG
+ iph1->frag = 0;
++ iph1->frag_last_index = 0;
+ iph1->frag_chain = NULL;
+ #endif
+ iph1->approval = NULL;
+Index: pkg-ipsec-tools/src/racoon/handler.h
+===================================================================
+--- pkg-ipsec-tools.orig/src/racoon/handler.h
++++ pkg-ipsec-tools/src/racoon/handler.h
+@@ -1,4 +1,4 @@
+-/* $NetBSD: handler.h,v 1.25 2010/11/17 10:40:41 tteras Exp $ */
++/* $NetBSD: handler.h,v 1.26 2017/01/24 19:23:56 christos Exp $ */
+
+ /* Id: handler.h,v 1.19 2006/02/25 08:25:12 manubsd Exp */
+
+@@ -141,6 +141,7 @@ struct ph1handle {
+ #endif
+ #ifdef ENABLE_FRAG
+ int frag; /* IKE phase 1 fragmentation */
++ int frag_last_index;
+ struct isakmp_frag_item *frag_chain; /* Received fragments */
+ #endif
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb
index d7e8b2596..5cbeb15ad 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb
@@ -24,6 +24,7 @@ SRC_URI = "http://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${P
file://0001-Fix-build-with-clang.patch \
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 \
"
SRC_URI[md5sum] = "d53ec14a0a3ece64e09e5e34b3350b41"
SRC_URI[sha256sum] = "8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
index 8d1b3f015..b35a9f4a4 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
@@ -1,4 +1,5 @@
SUMMARY = "Linux Virtual Server administration Utility"
+HOMEPAGE = "http://www.linux-vs.org/software/index.html"
DESCRIPTION = "Ipvsadm is used to set up, maintain or inspect the virtual server \
table in the Linux kernel. The Linux Virtual Server can be used to \
build scalable network services based on a cluster of two or more nodes. \
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch
new file mode 100644
index 000000000..d0d203ead
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch
@@ -0,0 +1,19 @@
+Use HAVE_WORKING_SNPRINTF to check for snprintf()
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: libesmtp-1.0.6/missing.h
+===================================================================
+--- libesmtp-1.0.6.orig/missing.h
++++ libesmtp-1.0.6/missing.h
+@@ -43,7 +43,7 @@ int strncasecmp (const char *a, const ch
+ void *memrchr (const void *a, int c, size_t len);
+ #endif
+
+-#ifndef HAVE_SNPRINTF
++#ifndef HAVE_WORKING_SNPRINTF
+ #include <sys/types.h>
+ int snprintf(char *s, size_t n, const char *format, ...);
+ #endif
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb
index 7ddf591eb..71c5d940b 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb
@@ -9,7 +9,9 @@ SECTION = "libs"
DEPENDS = "openssl"
SRC_URI = "http://www.stafford.uklinux.net/libesmtp/libesmtp-${PV}.tar.bz2 \
- file://include-topdir.patch"
+ file://include-topdir.patch \
+ file://snprintf.patch \
+ "
SRC_URI[md5sum] = "bf3915e627fd8f35524a8fdfeed979c8"
SRC_URI[sha256sum] = "d0a61a5c52d99fa7ce7d00ed0a07e341dbda67101dbed1ab0cdae3f37db4eb0b"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
index 400055773..272921e56 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
@@ -1,7 +1,10 @@
-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 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
Add configure options for the following packages:
- acl
@@ -14,6 +17,10 @@ Add configure options for the following packages:
Upstream-Status: Inappropriate [oe deterministic build specific]
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>
---
lib/replace/system/wscript_configure | 6 ++-
lib/replace/wscript | 85 ++++++++++++++++++++++++++++--------
@@ -37,7 +44,7 @@ index 2035474..10f9ae7 100644
# solaris varients of getXXent_r
diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 145300d..310048c 100644
+index 7c50e1d..15df5c3 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
@@ -23,6 +23,41 @@ def set_options(opt):
@@ -124,7 +131,7 @@ index 145300d..310048c 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')
-@@ -248,17 +298,18 @@ def configure(conf):
+@@ -251,17 +301,18 @@ def configure(conf):
conf.CHECK_FUNCS('prctl dirname basename')
@@ -155,23 +162,23 @@ index 145300d..310048c 100644
conf.CHECK_CODE('''
struct ucred cred;
diff --git a/wscript b/wscript
-index 50b2286..748eef1 100644
+index 1c9655a..8c20d3b 100644
--- a/wscript
+++ b/wscript
-@@ -64,7 +64,12 @@ def set_options(opt):
- opt.add_option('--disable-python',
- help=("disable the pytdb module"),
- action="store_true", dest='disable_python', default=False)
+@@ -62,7 +62,12 @@ def set_options(opt):
+ help=("Disable the use of pthread robust mutexes"),
+ 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')
-+ opt.add_option('--without-valgrind',
-+ help=("disable use of valgrind"),
-+ action="store_false", dest='enable_valgrind', 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.env.disable_tdb_mutex_locking = getattr(Options.options,
--
-2.8.3
+2.7.4
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.12.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.14.bb
index e256ac9b6..3122b93ba 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.12.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.14.bb
@@ -1,4 +1,5 @@
SUMMARY = "The tdb library"
+HOMEPAGE = "http://tdb.samba.org/"
SECTION = "libs"
LICENSE = "LGPL-3.0+ & GPL-3.0+"
@@ -10,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] = "d9627e7aacd535a8251401f914bb6924"
-SRC_URI[sha256sum] = "60134e32253cac8e2efe5e0185d20123c208bcf6ad15edf2f50d80daadf8c348"
+SRC_URI[md5sum] = "dd23f2ba8ca2bfdcb833bc79d5b5ac6f"
+SRC_URI[sha256sum] = "3a7d4bb79229460df530c7e1c7067ba9fb9d370aa61fff537fdc2bdf918acbe9"
PACKAGECONFIG ??= "\
${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch
deleted file mode 100644
index 1ce4dda1c..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Don't check manpages for xsltproc.
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
-diff -Nurp tevent-0.9.21.orig/lib/talloc/wscript tevent-0.9.21/lib/talloc/wscript
---- tevent-0.9.21.orig/lib/talloc/wscript 2013-09-08 21:24:14.000000000 +0900
-+++ tevent-0.9.21/lib/talloc/wscript 2015-04-24 16:28:04.085000230 +0900
-@@ -55,7 +55,7 @@ def configure(conf):
- if conf.env.standalone_talloc:
- conf.env.TALLOC_COMPAT1 = Options.options.TALLOC_COMPAT1
-
-- conf.CHECK_XSLTPROC_MANPAGES()
-+ conf.find_program('xsltproc', var='XSLTPROC')
-
- if not conf.env.disable_python:
- # also disable if we don't have the python libs installed
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.4.36.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.bb
index 48c3c9ee2..fd3d171f0 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.4.36.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.5.0.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] = "1e028fbab7288911fcaa5ed2a21817fe"
-SRC_URI[sha256sum] = "773b6bb20bf80223ca6a15d75f570fbab346ad11ec98595e5af5e33f54bd82d8"
+SRC_URI[md5sum] = "81326513f60d7ba482f8131975cd55ae"
+SRC_URI[sha256sum] = "c001f812024bb461b5e4d7d0506daab63dff9614eea26f46536c3b7e1e601c32"
# set the same COMPATIBLE_HOST as libhugetlbfs
COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64|arm).*-linux'
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch
new file mode 100644
index 000000000..eeae5326d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch
@@ -0,0 +1,34 @@
+From 1ee2c998933c4a3d7e7b386352cbdb12f270774c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 6 Sep 2017 20:50:48 -0700
+Subject: [PATCH] autogen: Do not symlink gettext.h from build host
+
+This will create a dependency on build host having gettext
+installed which may not always be the case.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Inappropriate [Cross-compile specific]
+ autogen.sh | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index 3371011..bbc7add 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -25,12 +25,6 @@ echo "Running autoreconf ..."
+ autoreconf -sfi
+ unlink po/Makevars.template
+
+-for d in /usr /usr/local /opt/gettext /usr/pkg $HOME ; do
+- if test -f $d/share/gettext/gettext.h ; then
+- ln -sf $d/share/gettext/gettext.h include/gettext.h
+- fi
+-done
+-
+ test -f "include/gettext.h" || {
+ echo "Error: can't find <gettext.h> convenience C header."
+ echo "Please put a link to it by hand as include/gettext.h"
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch
new file mode 100644
index 000000000..dc58b5b79
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch
@@ -0,0 +1,124 @@
+From 3a7d5396e633e6c02a4583be7faf3d79d0d33748 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Aug 2017 11:14:41 -0700
+Subject: [PATCH 1/2] replace VLAIS with malloc/free pair
+
+Makes it compatible with non-gnu compilers
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/trace-icmp.c | 7 +++++--
+ src/trace-tcp.c | 14 ++++++++++----
+ src/trace-udp.c | 7 +++++--
+ 3 files changed, 20 insertions(+), 8 deletions(-)
+
+diff --git a/src/trace-icmp.c b/src/trace-icmp.c
+index 842938e..c76cb54 100644
+--- a/src/trace-icmp.c
++++ b/src/trace-icmp.c
+@@ -43,16 +43,19 @@ send_echo_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ struct
+ {
+ struct icmp6_hdr ih;
+- uint8_t payload[plen - sizeof (struct icmp6_hdr)];
++ uint8_t *payload;
+ } packet;
+ memset (&packet, 0, plen);
++ packet.payload = malloc(plen - sizeof (struct icmp6_hdr));
+
+ packet.ih.icmp6_type = ICMP6_ECHO_REQUEST;
+ packet.ih.icmp6_id = htons (getpid ());
+ packet.ih.icmp6_seq = htons ((ttl << 8) | (n & 0xff));
+ (void)port;
+
+- return send_payload (fd, &packet.ih, plen, ttl);
++ ssize_t ret = send_payload (fd, &packet.ih, plen, ttl);
++ free(packet.payload);
++ return ret;
+ }
+
+
+diff --git a/src/trace-tcp.c b/src/trace-tcp.c
+index 940f918..62d22ff 100644
+--- a/src/trace-tcp.c
++++ b/src/trace-tcp.c
+@@ -54,10 +54,11 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ struct
+ {
+ struct tcphdr th;
+- uint8_t payload[plen - sizeof (struct tcphdr)];
++ uint8_t *payload;
+ } packet;
+
+ memset (&packet, 0, sizeof (packet));
++ packet.payload = malloc(plen - sizeof (struct tcphdr));
+ packet.th.th_sport = sport;
+ packet.th.th_dport = port;
+ packet.th.th_seq = htonl ((ttl << 24) | (n << 16) | (uint16_t)getpid ());
+@@ -65,7 +66,9 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ packet.th.th_flags = TH_SYN | (ecn ? (TH_ECE | TH_CWR) : 0);
+ packet.th.th_win = htons (TCP_WINDOW);
+
+- return send_payload (fd, &packet, plen, ttl);
++ ssize_t ret = send_payload (fd, &packet, plen, ttl);
++ free(packet.payload);
++ return ret;
+ }
+
+
+@@ -131,10 +134,11 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ struct
+ {
+ struct tcphdr th;
+- uint8_t payload[plen - sizeof (struct tcphdr)];
++ uint8_t *payload;
+ } packet;
+
+ memset (&packet, 0, sizeof (packet));
++ packet.payload = malloc(plen - sizeof (struct tcphdr));
+ packet.th.th_sport = sport;
+ packet.th.th_dport = port;
+ packet.th.th_ack = htonl ((ttl << 24) | (n << 16) | (uint16_t)getpid ());
+@@ -142,7 +146,9 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ packet.th.th_flags = TH_ACK;
+ packet.th.th_win = htons (TCP_WINDOW);
+
+- return send_payload (fd, &packet, plen, ttl);
++ ssize_t ret = send_payload (fd, &packet, plen, ttl);
++ free(packet.payload);
++ return ret;
+ }
+
+
+diff --git a/src/trace-udp.c b/src/trace-udp.c
+index 4adde6b..a6cbb07 100644
+--- a/src/trace-udp.c
++++ b/src/trace-udp.c
+@@ -46,9 +46,10 @@ send_udp_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ struct
+ {
+ struct udphdr uh;
+- uint8_t payload[plen - sizeof (struct udphdr)];
++ uint8_t *payload;
+ } packet;
+ memset (&packet, 0, plen);
++ packet.payload = malloc(plen - sizeof (struct udphdr));
+
+ (void)n;
+ packet.uh.uh_sport = sport;
+@@ -61,7 +62,9 @@ send_udp_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ /*if (plen > sizeof (struct udphdr))
+ packet.payload[0] = (uint8_t)ttl;*/
+
+- return send_payload (fd, &packet, plen, ttl);
++ ssize_t ret = send_payload (fd, &packet, plen, ttl);
++ free(packet.payload);
++ return ret;
+ }
+
+
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch
new file mode 100644
index 000000000..3cc2ba80c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch
@@ -0,0 +1,30 @@
+From 2a50154fbce38fd36be7e14f5cd4a8b03c65c72f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Aug 2017 11:15:37 -0700
+Subject: [PATCH 2/2] Do not undef _GNU_SOURCE
+
+There are functions from tcp.h which are under _GNU_SOURCE
+in musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/trace-tcp.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/trace-tcp.c b/src/trace-tcp.c
+index 62d22ff..380008e 100644
+--- a/src/trace-tcp.c
++++ b/src/trace-tcp.c
+@@ -21,7 +21,6 @@
+ # include <config.h>
+ #endif
+
+-#undef _GNU_SOURCE
+ #define _DEFAULT_SOURCE 1
+
+ #include <string.h>
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
index bea5e13f5..48a83b830 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.2.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
@@ -3,22 +3,37 @@ IPv6 networks, including ndisc6, rdisc6, tcptraceroute6 and traceroute6."
SECTION = "net"
HOMEPAGE = "http://www.remlab.net/ndisc6/"
LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-# The tcptraceroute6 and tracert6 commands depend on rltraceroute6 to
-# perform the actual trace operation.
-RDEPENDS_${PN}-tcptraceroute6 = "${PN}-rltraceroute6"
-RDEPENDS_${PN}-tracert6 = "${PN}-rltraceroute6"
-RDEPENDS_${PN}-misc += "perl"
-
-SRC_URI = "http://www.remlab.net/files/ndisc6/ndisc6-${PV}.tar.bz2 \
-"
-SRC_URI[md5sum] = "50cb4c19606cf6ff2b7388e71832f579"
-SRC_URI[sha256sum] = "6acec8a0cb9efa3ac98456f46c3016aeec0598b0c7557c95242b5228ad62ca7a"
+PV = "1.0.4+git${SRCPV}"
+SRCREV = "4c794b5512d23c649def1f94a684225dcbb6ac3e"
+SRC_URI = "git://git.remlab.net/git/ndisc6.git;protocol=http \
+ file://0001-replace-VLAIS-with-malloc-free-pair.patch \
+ file://0002-Do-not-undef-_GNU_SOURCE.patch \
+ file://0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch \
+ "
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+S = "${WORKDIR}/git"
inherit autotools gettext
+EXTRA_OECONF += "PERL=${USRBINPATH}/perl"
+
+LDFLAGS += "-fuse-ld=gold"
+TOOLCHAIN = "gcc"
+
+do_configure_prepend() {
+ cp ${STAGING_DATADIR_NATIVE}/gettext/gettext.h ${S}/include
+ ${S}/autogen.sh
+}
+
+do_install_append () {
+ rm -rf ${D}${localstatedir}
+ # Enable SUID bit for applications that need it
+ chmod 4555 ${D}${bindir}/rltraceroute6
+ chmod 4555 ${D}${bindir}/ndisc6
+ chmod 4555 ${D}${bindir}/rdisc6
+}
ALLOW_EMPTY_${PN} = "1"
# Split into seperate packages since we normal don't want them all
@@ -49,10 +64,9 @@ or IPv4."
DESCRITPION_${PN}-rdnssd = "Daemon to autoconfigure the list of DNS \
servers through slateless IPv6 autoconfiguration."
-do_install_append () {
- rm -rf ${D}${localstatedir}
- # Enable SUID bit for applications that need it
- chmod 4555 ${D}${bindir}/rltraceroute6
- chmod 4555 ${D}${bindir}/ndisc6
- chmod 4555 ${D}${bindir}/rdisc6
-}
+# The tcptraceroute6 and tracert6 commands depend on rltraceroute6 to
+# perform the actual trace operation.
+RDEPENDS_${PN}-tcptraceroute6 = "${PN}-rltraceroute6"
+RDEPENDS_${PN}-tracert6 = "${PN}-rltraceroute6"
+RDEPENDS_${PN}-misc += "perl"
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
index a7a5000e2..9a6f60ea2 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
@@ -1,15 +1,15 @@
SUMMARY = "netcf"
DESCRIPTION = "netcf is a cross-platform network configuration library."
-HOMEPAGE = "https://fedorahosted.org/netcf/"
+HOMEPAGE = "https://pagure.io/netcf"
SECTION = "libs"
LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbb461211a33b134d42ed5ee802b37ff"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb919cc88dbe06ec0b0bd50e001ccf1f"
-SRCREV = "9158278ad35b46ce9a49b2e887483c6d8c287994"
-PV = "0.2.8+git${SRCPV}"
+SRCREV = "2c5d4255857531bc09d91dcd02e86545f29004d4"
+PV .= "+git${SRCPV}"
-SRC_URI = "git://git.fedorahosted.org/netcf.git;protocol=git \
+SRC_URI = "git://pagure.io/netcf.git;protocol=https \
"
DEPENDS += "augeas libnl libxslt libxml2 gnulib"
@@ -23,6 +23,8 @@ EXTRA_OECONF_append_class-target = " --with-driver=redhat"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[systemd] = "--with-sysinit=systemd,--with-sysinit=initscripts,"
+EXTRA_AUTORECONF += "-I ${S}/gnulib/m4"
+
do_configure_prepend() {
currdir=`pwd`
cd ${S}
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/netperf/netperf_2.6.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb
index 650fdaeed..f0e0f9cf1 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/netperf/netperf_2.6.0.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/netperf/netperf_git.bb
@@ -4,20 +4,20 @@ SECTION = "net"
HOMEPAGE = "http://www.netperf.org/"
LICENSE = "netperf"
LICENSE_FLAGS = "non-commercial"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a0ab17253e7a3f318da85382c7d5d5d6"
+PV = "2.7.0+git${SRCPV}"
-SRC_URI="ftp://ftp.netperf.org/netperf/archive/netperf-${PV}.tar.bz2 \
+SRC_URI="git://github.com/HewlettPackard/netperf.git \
file://cpu_set.patch \
file://vfork.patch \
file://init"
-SRC_URI[md5sum] = "9654ffdfd4c4f2c93ce3733cd9ed9236"
-SRC_URI[sha256sum] = "cd8dac710d4273d29f70e8dbd09353a6362ac58a11926e0822233c0cb230323a"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a0ab17253e7a3f318da85382c7d5d5d6"
+SRCREV = "f482bab49fcedee46fc5b755da127f608325cd13"
-inherit update-rc.d autotools
+S = "${WORKDIR}/git"
-S = "${WORKDIR}/netperf-${PV}"
+inherit update-rc.d autotools
# cpu_set.patch plus _GNU_SOURCE makes src/netlib.c compile with CPU_ macros
CFLAGS_append = " -DDO_UNIX -DDO_IPV6 -D_GNU_SOURCE"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch
deleted file mode 100644
index d1d5f9ca7..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 71fdfdfcea2bfa5f522512366bfcdf95f861ecc6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 23 Apr 2017 23:44:37 -0700
-Subject: [PATCH] lib/yp_all_host.c: Fix build with gcc 7
-
-fixes
-
-| ../../../../../../../workspace/sources/yp-tools/lib/yp_all_host.c: In function 'yp_all_host':
-| ../../../../../../../workspace/sources/yp-tools/lib/yp_all_host.c:109:30: error: comparison between pointer and zero character constant [-Werror=pointer-compare]
-| inmap == NULL || inmap == '\0')
-| ^~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/yp_all_host.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/yp_all_host.c b/lib/yp_all_host.c
-index 59cf236..4a07a7e 100644
---- a/lib/yp_all_host.c
-+++ b/lib/yp_all_host.c
-@@ -106,7 +106,7 @@ yp_all_host (const char *indomain, const char *inmap,
-
- if (hostname == NULL || hostname[0] == '\0' ||
- indomain == NULL || indomain[0] == '\0' ||
-- inmap == NULL || inmap == '\0')
-+ inmap == NULL || inmap[0] == '\0')
- return YPERR_BADARGS;
-
- res = YPERR_YPERR;
---
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch
new file mode 100644
index 000000000..3d4d4f278
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch
@@ -0,0 +1,28 @@
+From 420cb6927553bbca5b49b7681cf208e6df6e4d7c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Sep 2017 08:42:45 -0700
+Subject: [PATCH 1/2] ypbind3_binding_dup.c: Include string.h for strdup
+ declaration
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ lib/ypbind3_binding_dup.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/ypbind3_binding_dup.c b/lib/ypbind3_binding_dup.c
+index ce4aadf..8199c0b 100644
+--- a/lib/ypbind3_binding_dup.c
++++ b/lib/ypbind3_binding_dup.c
+@@ -19,6 +19,7 @@
+
+ #if defined(HAVE_YPBIND3)
+
++#include <string.h>
+ #include <rpcsvc/yp_prot.h>
+ #include "internal.h"
+
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0002-yp_dump_bindings.c-Include-string.h-for-memset.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0002-yp_dump_bindings.c-Include-string.h-for-memset.patch
new file mode 100644
index 000000000..0562e58af
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0002-yp_dump_bindings.c-Include-string.h-for-memset.patch
@@ -0,0 +1,30 @@
+From 03ccabb6264c008430c4b1739351df5a63829f8e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Sep 2017 08:52:32 -0700
+Subject: [PATCH 2/2] yp_dump_bindings.c: Include string.h for memset
+
+Fixes
+error: implicitly declaring library function 'memset'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ src/yp_dump_binding.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/yp_dump_binding.c b/src/yp_dump_binding.c
+index a5ab920..d75e2c2 100644
+--- a/src/yp_dump_binding.c
++++ b/src/yp_dump_binding.c
+@@ -26,6 +26,7 @@
+ #include <libintl.h>
+ #include <locale.h>
+ #include <getopt.h>
++#include <string.h>
+ #include <sys/stat.h>
+ #include <arpa/inet.h>
+ #include <rpcsvc/ypclnt.h>
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/alignment-cheat.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/alignment-cheat.patch
deleted file mode 100644
index be9b62b8c..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/alignment-cheat.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-yp-tools: avoid fatal cast warning
-
-The way casting is done, we will get a fatal alignment warning on some
-architectures. This patch cheats our way around this.
-
-We also eliminate an unused constant which causes a fatal warning.
-
-Upstream-status: Inappropriate [code does not exist in version 4.x]
-
-Signed-off-by: Joe Slater <jslater@windriver.com>
-
---- a/lib/do_ypcall.c
-+++ b/lib/do_ypcall.c
-@@ -44,7 +44,6 @@ struct dom_binding
- typedef struct dom_binding dom_binding;
-
- static const struct timeval RPCTIMEOUT = {25, 0};
--static const struct timeval UDPTIMEOUT = {5, 0};
- static int const MAXTRIES = 2;
- static pthread_mutex_t ypbindlist_lock = PTHREAD_MUTEX_INITIALIZER;
- static dom_binding *ypbindlist = NULL;
-@@ -381,7 +380,7 @@ __ypclnt_call (u_long prog, xdrproc_t xa
-
- int
- do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
-- caddr_t req, xdrproc_t xres, caddr_t resp)
-+ caddr_t req, xdrproc_t xres, void *resp)
- {
- dom_binding *ydb;
- int status;
-@@ -450,7 +449,7 @@ do_ypcall (const char *domain, u_long pr
- /* Like do_ypcall, but translate the status value if necessary. */
- int
- do_ypcall_tr (const char *domain, u_long prog, xdrproc_t xargs,
-- caddr_t req, xdrproc_t xres, caddr_t resp)
-+ caddr_t req, xdrproc_t xres, void *resp)
- {
- int status = do_ypcall (domain, prog, xargs, req, xres, resp);
- if (status == YPERR_SUCCESS)
---- a/lib/internal.h
-+++ b/lib/internal.h
-@@ -17,8 +17,8 @@
- #define _INTERNAL_H_
-
- extern int do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
-- caddr_t req, xdrproc_t xres, caddr_t resp);
-+ caddr_t req, xdrproc_t xres, void *resp);
- extern int do_ypcall_tr (const char *domain, u_long prog, xdrproc_t xargs,
-- caddr_t req, xdrproc_t xres, caddr_t resp);
-+ caddr_t req, xdrproc_t xres, void *resp);
- extern int yp_maplist (const char *, struct ypmaplist **);
- #endif
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch
deleted file mode 100644
index 9ef569f15..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From a1ef10d63b0ea34c788d5432e94c72b00ae55e04 Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Fri, 27 Feb 2015 12:04:10 -0500
-Subject: [PATCH] ipv4/ipv6: Provide an in-place version of mapv4v6addr.h
-
-mapv4v6addr.h isn't always available, depending on your build, but
-nis-hosts.c only needs it for a single, inline function. So drop a copy
-here rather than playing games with the include path that would
-potentially lead to cross-compilation issues.
-
-Upstream-status: Inappropriate [embedded specific]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- nss_nis6/mapv4v6addr.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++
- nss_nis6/nis-hosts.c | 2 +-
- 2 files changed, 70 insertions(+), 1 deletion(-)
- create mode 100644 nss_nis6/mapv4v6addr.h
-
-diff --git a/nss_nis6/mapv4v6addr.h b/nss_nis6/mapv4v6addr.h
-new file mode 100644
-index 0000000..7f85f7d
---- /dev/null
-+++ b/nss_nis6/mapv4v6addr.h
-@@ -0,0 +1,69 @@
-+/*
-+ * ++Copyright++ 1985, 1988, 1993
-+ * -
-+ * Copyright (c) 1985, 1988, 1993
-+ * The Regents of the University of California. 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.
-+ * 4. Neither the name of the University nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software
-+ * without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
-+ * -
-+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies, and that
-+ * the name of Digital Equipment Corporation not be used in advertising or
-+ * publicity pertaining to distribution of the document or software without
-+ * specific, written prior permission.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
-+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
-+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ * -
-+ * --Copyright--
-+ */
-+
-+#include <string.h>
-+#include <arpa/nameser.h>
-+
-+static void
-+map_v4v6_address (const char *src, char *dst)
-+{
-+ u_char *p = (u_char *) dst;
-+ int i;
-+
-+ /* Move the IPv4 part to the right position. */
-+ memcpy (dst + 12, src, INADDRSZ);
-+
-+ /* Mark this ipv6 addr as a mapped ipv4. */
-+ for (i = 0; i < 10; i++)
-+ *p++ = 0x00;
-+ *p++ = 0xff;
-+ *p = 0xff;
-+}
-diff --git a/nss_nis6/nis-hosts.c b/nss_nis6/nis-hosts.c
-index af99c74..96d8fa1 100644
---- a/nss_nis6/nis-hosts.c
-+++ b/nss_nis6/nis-hosts.c
-@@ -36,7 +36,7 @@
- #include "nss-nis6.h"
-
- /* Get implementation for some internal functions. */
--#include <resolv/mapv4v6addr.h>
-+#include "mapv4v6addr.h"
-
- #define ENTNAME hostent
- #define DATABASE "hosts"
---
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_3.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.2.bb
index 7bd4630f7..9ac973812 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_3.3.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_4.2.2.bb
@@ -13,14 +13,13 @@ and ypdomainname. \
SRC_URI = "http://www.linux-nis.org/download/yp-tools/${BP}.tar.bz2 \
file://domainname.service \
- file://yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch \
- file://alignment-cheat.patch \
- file://0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch \
+ file://0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch \
+ file://0002-yp_dump_bindings.c-Include-string.h-for-memset.patch \
"
-SRC_URI[md5sum] = "acebeecc11a73fb8097503670344834c"
-SRC_URI[sha256sum] = "812be817df3d4c25813552be336c6c6ad5aedaf65611b81af3ad9f98fb3c2e50"
+SRC_URI[md5sum] = "fb4a8bffb44ae5d3390351d67f320ef3"
+SRC_URI[sha256sum] = "137f19a986382b275bf4a2b1a69eb26689d6f4ac056ddaa21784d6b80eb98faa"
-DEPENDS = "libtirpc"
+DEPENDS = "libtirpc libnsl2"
inherit autotools systemd
SYSTEMD_SERVICE_${PN} = "domainname.service"
@@ -32,10 +31,9 @@ RCONFLICTS_${PN} += "${PN}-systemd"
CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true"
EXTRA_OECONF = " \
- --disable-rpath \
- --libdir=${libdir}/yp-nis/ \
- --includedir=${includedir}/yp-nis/ \
+ --disable-rpath --disable-domainname \
"
+CFLAGS_append_libc-musl = " -Wno-error=cpp"
FILES_${PN} += " ${libdir}/yp-nis/*.so.*.* ${libdir}/yp-nis/pkgconfig/"
FILES_${PN}-dbg += " ${libdir}/yp-nis/.debug"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt/0001-dns_hosts-Fix-build-with-musl.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt/0001-dns_hosts-Fix-build-with-musl.patch
new file mode 100644
index 000000000..643b0a940
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt/0001-dns_hosts-Fix-build-with-musl.patch
@@ -0,0 +1,67 @@
+From 5452961750275b1e3f7c95e9528338f0ee0357ad Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 09:17:35 -0700
+Subject: [PATCH] dns_hosts: Fix build with musl
+
+Add NETDB_* defines which are not available in musl
+remove need for sys/cdefs.h by remove __P
+Add _GNU_SOURCE for missing u_char definition
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ lib/Makefile.am | 2 +-
+ lib/dns_hosts.c | 9 ++++++++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index 977a8db..35cb5b3 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -8,7 +8,7 @@
+ noinst_LIBRARIES = libcompat.a
+ noinst_HEADERS = ypbind3_binding.h
+
+-AM_CFLAGS = -D_REENTRANT=1 @WARNFLAGS@
++AM_CFLAGS = -D_GNU_SOURCE -D_REENTRANT=1 @WARNFLAGS@
+ AM_CPPFLAGS = -I$(srcdir) @TIRPC_CFLAGS@ @NSL_CFLAGS@ -DLOCALEDIR=\"$(localedir)\"
+
+ libcompat_a_SOURCES = dns_hosts.c res_options.h ypbind3_binding_dup.c \
+diff --git a/lib/dns_hosts.c b/lib/dns_hosts.c
+index fd421fd..6067879 100644
+--- a/lib/dns_hosts.c
++++ b/lib/dns_hosts.c
+@@ -64,6 +64,7 @@
+
+ #include <sys/param.h>
+ #include <sys/socket.h>
++#include <sys/types.h>
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <arpa/nameser.h>
+@@ -84,6 +85,12 @@ extern struct hostent *_gethtbyaddr(const char *, int, int);
+ #ifndef LOG_AUTH
+ # define LOG_AUTH 0
+ #endif
++#ifndef NETDB_SUCCESS
++# define NETDB_SUCCESS 0
++#endif
++#ifndef NETDB_INTERNAL
++# define NETDB_INTERNAL -1
++#endif
+
+ #define MULTI_PTRS_ARE_ALIASES 1 /* XXX - experimental */
+
+@@ -101,7 +108,7 @@ static char hostbuf[8*1024];
+ static struct in_addr host_addr;
+
+ #ifdef RESOLVSORT
+-static void addrsort __P((char **, int));
++static void addrsort (char **, int);
+ #endif
+
+ #if PACKETSZ > 1024
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb
deleted file mode 100644
index 0b7e5046b..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-# This package builds the NIS ypbind daemon
-# The source package is utils/net/NIS/ypbind-mt
-#
-require nis.inc
-
-DESCRIPTION = " \
-Multithreaded NIS bind service (ypbind-mt). \
-ypbind-mt is a complete new implementation of a NIS \
-binding daemon for Linux. It has the following \
-features. Supports ypbind protocol V1 and V2. \
-Uses threads for better response. Supports multiple \
-domain bindings. Supports /var/yp/binding/* file \
-for Linux libc 4/5 and glibc 2.x. Supports a list \
-of known secure NIS server (/etc/yp.conf) Binds to \
-the server which answered as first. \
-"
-HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html"
-DEPENDS = "yp-tools ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PROVIDES += "ypbind"
-
-PNBLACKLIST[ypbind-mt] ?= "BROKEN: Depends on broken yp-tools - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \
- file://ypbind.init \
- file://ypbind.service \
-"
-SRC_URI[md5sum] = "54e2040d8266ae7d302d081ca310c8a8"
-SRC_URI[sha256sum] = "dc2f7d97c94dcab0acfdcd115cd8b464eb8c427e4bb0fe68404ae7465f517cd3"
-
-inherit systemd update-rc.d
-
-SYSTEMD_SERVICE_${PN} = "ypbind.service"
-INITSCRIPT_NAME = "ypbind"
-INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ."
-
-CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true"
-
-EXTRA_OECONF = "PKG_CONFIG_PATH='${STAGING_LIBDIR}/yp-nis/pkgconfig/'"
-
-do_install_append () {
- install -d ${D}${sysconfdir}/init.d
- install -d ${D}${sysconfdir}/rcS.d
-
- install -m 0755 ${WORKDIR}/ypbind.init ${D}${sysconfdir}/init.d/ypbind
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system
-}
-
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb
index b9c0aa700..9822f455e 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb
@@ -21,6 +21,7 @@ DEPENDS = " \
yp-tools \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
"
+DEPENDS_append_libc-musl = " bsd-headers nss"
RDEPENDS_${PN} += "yp-tools"
# ypbind-mt now provides all the functionality of ypbind
@@ -30,9 +31,10 @@ PROVIDES += "ypbind"
SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \
file://ypbind.init \
file://ypbind.service \
-"
-SRC_URI[md5sum] = "094088c0e282fa7f3b3dd6cc51d0a4e1"
-SRC_URI[sha256sum] = "1930ce19f6ccfe10400f3497b31867f71690d2bcd3f5b575199fa915559b7746"
+ file://0001-dns_hosts-Fix-build-with-musl.patch \
+ "
+SRC_URI[md5sum] = "1aeccd0d11c064d5d59c56941bca682b"
+SRC_URI[sha256sum] = "a2e1fa8fc992a12b289c229e00e38c20d59070c3bcf08babf40c692515c340e0"
inherit systemd update-rc.d
@@ -42,6 +44,8 @@ INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ."
CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true"
+CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/nss3"
+
do_install_append () {
install -d ${D}${sysconfdir}/init.d
install -d ${D}${sysconfdir}/rcS.d
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch
new file mode 100644
index 000000000..81ffeec21
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch
@@ -0,0 +1,26 @@
+From 6543f3e2d5fe214e2fc6c050289bf1ae73b18724 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 30 Aug 2017 13:56:24 -0700
+Subject: [PATCH] nDPI: Include sys/types.h
+
+Needed for uint_t types
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ nDPI/src/include/ipq_api.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: ntop-5.0.1/nDPI/src/include/ipq_api.h
+===================================================================
+--- ntop-5.0.1.orig/nDPI/src/include/ipq_api.h
++++ ntop-5.0.1/nDPI/src/include/ipq_api.h
+@@ -24,6 +24,7 @@
+ #ifndef __IPOQUE_API_INCLUDE_FILE__
+ #define __IPOQUE_API_INCLUDE_FILE__
+
++#include <sys/types.h>
+
+ #if defined(HAVE_NTOP) && defined(WIN32)
+ #include <winsock2.h>
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop.service b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop.service
new file mode 100644
index 000000000..1ead2a0c5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=A network traffic probe similar to the UNIX top command
+Requires=network.target
+
+ConditionPathExists=@SYSCONFDIR@/ntop.conf
+After=syslog.target network.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@LIBEXECDIR@/ntop-helper start
+ExecStop=@LIBEXECDIR@/ntop-helper stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch
new file mode 100644
index 000000000..392cb082b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch
@@ -0,0 +1,164 @@
+1)add --with-pcap-config option to use libpcap's pcap-config
+2)add AC_CHECK_LIB if user didn't specify PCAP_ROOT and pcap-config
+ put it before host check to make cross-compiling easier.
+ pcap doesn't need extra include and libs so it is fine.
+3)remove old rrd configure code but use pkg-config to config rrd
+ rrdtool should have the pkg-config file installed.
+4)fix python-config
+5)change AC_TRY_RUN to AC_COMPILE_IFELSE for pthread_rwlock_t checking
+6)fix a net-snmp-config bug
+
+Upstream-Status: Pending
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+diff --git a/configure.in b/configure.in
+index 0c7c0a5..cad40be 100644
+--- a/configure.in
++++ b/configure.in
+@@ -230,14 +230,14 @@ dnl>
+ AC_ARG_WITH(void,
+ [ +-External-source-locations:-------------------------------------------------+])
+
+-AC_ARG_WITH( rrd-home,
+- [ --with-rrd-home=DIR Usually /usr/local/rrdtool-1.2.x],
+- RRD_HOME="$withval",
+- RRD_HOME=/usr/local/rrdtool-1.2.19)
+ AC_ARG_WITH( pcap-root,
+ [ --with-pcap-root=DIR LBNL pcap located in DIR],
+ PCAP_ROOT="$withval",
+ PCAP_ROOT=)
++AC_ARG_WITH( pcap-config,
++ [ --with-pcap-config=path/pcap-config where to find pcap-config],
++ PCAP_CONFIG="$withval",
++ PCAP_CONFIG=)
+ AC_ARG_WITH( gdbm-root,
+ [ --with-gdbm-root=DIR gdbm located in DIR],
+ GDBM_DIRECTORY="$withval",
+@@ -556,6 +556,7 @@ if test ".${PCAPRING_DIR}" != .; then
+ else
+
+ TMP_ROOT=${HOME}/PF_RING/userland/libpcap/
++FOUND_PCAP=1
+ if test ".${PCAP_ROOT}" == . &&
+ test -d ${TMP_ROOT} &&
+ test -r ${TMP_ROOT}/libpcap.a; then
+@@ -563,6 +564,18 @@ if test ".${PCAP_ROOT}" == . &&
+ CORELIBS="${CORELIBS} -L${TMP_ROOT} -L${HOME}/PF_RING/userland/lib -lpfring -lpcap "
+ INCS="${INCS} -I ${PCAP_ROOT}"
+ AC_MSG_RESULT([found in $PCAP_ROOT])
++elif test -n "${PCAP_CONFIG}" && test -x "${PCAP_CONFIG}"; then
++ CORELIBS="${CORELIBS} $(${PCAP_CONFIG} --libs)"
++ INCS="${INCS} $(${PCAP_CONFIG} --cflags)"
++ AC_DEFINE_UNQUOTED(HAVE_LIBPCAP, 1, [have libpcap ])
++ AC_MSG_RESULT([found pcap-config: $PCAP_CONFIG, libs:$(${PCAP_CONFIG} --libs) cflags:$(${PCAP_CONFIG} --cflags)])
++else
++ AC_CHECK_LIB(pcap, pcap_lookupdev, ,
++ [FOUND_PCAP=])
++fi
++
++if test -n "$FOUND_PCAP"; then
++ :
+ elif test ".${PCAP_ROOT}" != .; then
+ if test -d $PCAP_ROOT &&
+ test -r $PCAP_ROOT/lib/libpcap.a &&
+@@ -880,44 +893,11 @@ AC_CHECK_LIB([z], [zlibVersion], [], [
+ exit -1
+ ])
+
+-# RRD
+-if test -d "$RRD_HOME"; then
+- AC_MSG_RESULT(checking for RRD home... yes)
+-else
+- RRD_HOME=/usr/local/rrdtool
+- if test -d "$RRD_HOME"; then
+- AC_MSG_RESULT(Checking rrdtool in $RRD_HOME)
+- else
+- RRD_HOME=/usr/local
+- fi
+-fi
+-
+-RRD_LIB="-L${RRD_HOME}/lib -lrrd_th"
+-
+-if test -f "$RRD_HOME/lib/librrd_th.so"; then
+- AC_MSG_RESULT(checking for rrdtool... yes)
+-else
+- if test -f "$RRD_HOME/lib/librrd_th.dylib"; then # OSX
+- AC_MSG_RESULT(checking for rrdtool... yes)
+- else
+- if test -f "$RRD_HOME/lib/librrd_th.a"; then
+- AC_MSG_RESULT(checking for rrdtool... yes)
+- else
+- AC_CHECK_LIB([rrd_th], [main])
+- if test ".${ac_cv_lib_rrd_th_main}" != ".yes"; then
+- AC_MSG_ERROR(Unable to find RRD at $RRD_HOME: please use --with-rrd-home=DIR);
+- AC_MSG_ERROR(RRD source can be downloaded from http://www.rrdtool.org/);
+- else
+- RRD_LIB=
+- fi
+- fi
+- fi
+-fi
+-
+-RRD_INC=
+-if test -d "${RRD_HOME}/include"; then
+- RRD_INC="-I${RRD_HOME}/include"
+-fi
++PKG_CHECK_MODULES( [RRD], [librrd] )
++AC_SUBST(RRD_CFLAGS)
++AC_SUBST(RRD_LIBS)
++RRD_INC=$RRD_FLAGS
++RRD_LIB=$RRD_LIBS
+
+ dnl> The failed recheck stuff below is courtesy of Chris Turbeville [turbo@verio.net]
+ dnl> Chris developed this for Solaris 9, confirming work I had done earlier for FreeBSD
+@@ -1041,7 +1021,7 @@ AC_CHECK_HEADERS([sched.h sys/sched.h])
+ AC_CHECK_HEADERS([pthread.h])
+
+ AC_MSG_CHECKING([if r/w locks are supported])
+-AC_TRY_RUN([
++AC_COMPILE_IFELSE([
+ #include <pthread.h>
+
+ int main()
+@@ -1443,15 +1423,15 @@ dnl> NET-SNMP
+ dnl>
+ if test ".${ac_disable_snmp}" != ".yes"; then
+ AC_CHECK_TOOL(NETSNMP, net-snmp-config)
+- if test "x$ac_cv_prog_ac_ct_NETSNMP" = "xnet-snmp-config"; then
++ if test -n "$NETSNMP"; then
+ AC_DEFINE_UNQUOTED(HAVE_SNMP, 1, [SNMP is supported])
+- SNMPLIBS="`net-snmp-config --libs`"
++ SNMPLIBS="`$NETSNMP --libs`"
+ SNMPLIBS="`echo ${SNMPLIBS}|sed -e s,'-R../lib',,g`"
+ echo "net-snmp libs: ${SNMPLIBS}"
+ LIBS="${LIBS} ${SNMPLIBS}"
+ dnl remove unecessary path
+ LIBS=`echo ${LIBS}|sed -e s,'-R../lib',,g`
+- INCS="${INCS} `net-snmp-config --cflags`"
++ INCS="${INCS} `$NETSNMP --cflags`"
+ else
+ AC_MSG_RESULT(NETSNMP is not present: SNMP support is disabled)
+ fi
+@@ -1464,10 +1444,9 @@ SAVED_LIBS=$LIBS
+ dnl>
+ dnl> PYTHON
+ dnl>
+- AC_CHECK_TOOL(PYTHON, python-config)
+- PYTHON_CONFIG=""
++ AC_CHECK_TOOL(PYTHON_CONFIG, python-config)
+
+- if test "x$ac_cv_prog_ac_ct_PYTHON" != "xpython-config"; then
++ if test -z "$PYTHON_CONFIG"; then
+ if test -f "/etc/debian_version"; then
+ AC_MSG_RESULT(Please install python-dev and rerun configure)
+ exit 1
+@@ -1481,8 +1460,6 @@ dnl>
+ PYTHON_CONFIG="python-config"
+ fi
+ fi
+- else
+- PYTHON_CONFIG="python-config"
+ fi
+
+ if test "x$PYTHON_CONFIG" != "x"; then
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch
new file mode 100644
index 000000000..269138df9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch
@@ -0,0 +1,21 @@
+Check net-snmp-config's existence in case user specified the
+ac_cv_prog_NETSNMP to avoid HAVE_SNMP defined if the specified
+net-snmp-config doesn't exist.
+
+Upstream-Status: Inappropriate [Embedded specific]
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+diff --git a/configure.in b/configure.in
+index 6f3e88f..8ddf017 100755
+--- a/configure.in
++++ b/configure.in
+@@ -1423,7 +1423,7 @@ dnl> NET-SNMP
+ dnl>
+ if test ".${ac_disable_snmp}" != ".yes"; then
+ AC_CHECK_TOOL(NETSNMP, net-snmp-config)
+- if test -n "$NETSNMP"; then
++ if test -n "$NETSNMP" -a -e "$NETSNMP"; then
+ AC_DEFINE_UNQUOTED(HAVE_SNMP, 1, [SNMP is supported])
+ SNMPLIBS="`$NETSNMP --libs`"
+ SNMPLIBS="`echo ${SNMPLIBS}|sed -e s,'-R../lib',,g`"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_init.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_init.patch
new file mode 100644
index 000000000..e7684c1b4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_init.patch
@@ -0,0 +1,228 @@
+Modify ntop.init to WRLinux 5.0 style.
+
+Fix a small problem that when ntop not running,
+/etc/init.d/ntop stop will return 1
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+ packages/RedHat/ntop.init | 102 +++++++++-----------------------------------
+ 1 files changed, 21 insertions(+), 81 deletions(-)
+
+diff --git a/packages/RedHat/ntop.init b/packages/RedHat/ntop.init
+index 40d49f1..a189c59 100755
+--- a/packages/RedHat/ntop.init
++++ b/packages/RedHat/ntop.init
+@@ -10,19 +10,9 @@
+ # You have set the admin password - read docs/1STRUN.txt
+ # You have created /etc/ntop.conf with appropriate parameters.
+
+-# To identify an interface to ntop, use the following flags
+-# in /etc/sysconfig/network-scripts/ifcfg-ethx
+-
+-# NTOP="yes" <--- means for ntop to use this interface
+-# NTOPCONFIG="yes" <--- means for ntop to configure this interface
+-
+ # Note that if you give a -i parameter in either /etc/ntop.conf or
+ # the command line, the scan is NOT performed.
+
+-# However, when it comes to the configuration step, with NTOPCONFIG="yes"
+-# the interface is configured regardless of how the interface list was
+-# specified.
+-
+ #
+ # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+ #
+@@ -107,11 +97,7 @@ ntopusesyslog="local3"
+ invoked=$0
+
+ # Source function library.
+-. /etc/rc.d/init.d/functions
+-
+-# Source networking configuration.
+-. /etc/sysconfig/network
+-
++. /etc/init.d/functions
+
+ # Basic sanity checks...
+ if ! [ -x $prog ]; then
+@@ -124,16 +110,6 @@ if ! [ -x $prog ]; then
+ exit 1
+ fi
+
+-if [ ${NETWORKING} = "no" ]; then
+- echo ""
+- echo "ERROR -"
+- echo " Networking is not up!"
+- echo ""
+- echo "Aborting..."
+- echo ""
+- exit 1
+-fi
+-
+ if ! [ -f ${conf} ]; then
+ echo ""
+ echo "ERROR -"
+@@ -180,8 +156,8 @@ fi
+ if [ "${debug}" = "y" ]; then echo "DEBUG: parm file temp is ${parmfile}"; fi
+
+ cmd=`echo \
+- @${conf} \
+ -i tbd \
++ @${conf} \
+ $extra $@`
+
+ echo ${cmd} | awk ' \
+@@ -305,42 +281,6 @@ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Configuration
+
+ # Build list of interfaces, e.g eth0 eth1 eth1:1
+ # (Yeah, we'll have to convert that to eth0,eth1,eth1:1 later
+-if [ ".${ntopinterface}" = ".tbd" ]; then
+-
+- ntopinterface=""
+- iflist=`ip link show | \
+- awk '/^[0-9]*:\ eth/ { printf("%s ", substr($2, 1, length($2)-1)) }'`
+- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Scanning all interfaces $iflist"
+- if [ "${debug}" = "y" ]; then echo "DEBUG: Interface candidates are ${iflist}"; fi
+-
+- for eth in $iflist; do
+-
+- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp]=['\"]?[Yy][Ee][Ss]['\"]?" \
+- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
+- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntop=yes, skipping"
+- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth not ntop=yes"; fi
+- continue
+- fi
+-
+- ntopinterface="${ntopinterface} $eth"
+-
+- ip=`ip addr show $eth | \
+- awk '/inet/ { printf("%s", substr($2, 1, index($2, "/")-1)) }'`
+-
+- if [ ".$ip" = "." ]; then
+- is="is unnumbered interface"
+- else
+- is="has IP address $ip"
+- fi
+- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is ntop=yes, ${is}"
+- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth ntop=yes, ${is}"; fi
+-
+- done
+-
+-else
+- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Skipping interface scan - list in parms"
+-fi
+-
+ if [ "x${ntopinterface}" = "x" ]; then
+ ntopinterface="none"
+ fi
+@@ -462,12 +402,6 @@ config_interfaces () {
+ if="${if},${eth}"
+ fi
+
+- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp][Cc].*=['\"]?[Yy][Ee][Ss]['\"]?" \
+- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
+- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntopconfigure=yes, skipping"
+- continue
+- fi
+-
+ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Configuring $eth"
+ if [ "${debug}" = "y" ]; then echo "DEBUG: Configuring $eth"; fi
+
+@@ -527,7 +461,7 @@ start () {
+ show_extra
+ config_interfaces
+
+- cmd=`echo $prog \
++ cmd=`echo \
+ @${conf} \
+ -i $if \
+ $extra $@`
+@@ -541,7 +475,7 @@ start () {
+ if [ ".${ldlibpath}" != "." ]; then
+ export LD_LIBRARY_PATH="${ldlibpath}"
+ fi
+- daemon ${cmd}
++ start-stop-daemon --start --quiet --exec $prog -- ${cmd}
+ RETVAL=$?
+
+ [ $RETVAL = 0 ] && touch /var/lock/subsys/${name}${instance}
+@@ -551,6 +485,7 @@ start () {
+ stop () {
+ # stop daemon
+
++ NOT_RUNNING=1
+ RETVAL=1
+ echo -n $"Stopping ${name}${instance}: "
+ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Stopping: ${name}${instance}"
+@@ -563,13 +498,14 @@ stop () {
+ if [ $rc = 0 ]; then
+ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Sending SIGTERM to ${pid}"
+ if [ "${debug}" = "y" ]; then echo "Sending SIGTERM to ${pid}"; fi
+- kill -s SIGTERM ${pid}
++ kill -TERM ${pid} 2>&1 > /dev/null
+ RETVAL=$?
+ rm -f ${ntopdbfilepath}/ntop.pid
+ else
+ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unable to find process ${pid} ... will kill by name"
+ if [ "${debug}" = "y" ]; then echo "Unable to find process ${pid} ... will kill by name"; fi
+ fi
++ NOT_RUNNING=0
+ else
+
+ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unable to find ${ntopdbfilepath}/ntop.pid file ... will kill by name"
+@@ -577,15 +513,16 @@ stop () {
+
+ fi
+
+- echo
+-
+ if [ $RETVAL != 0 ]; then
+ pids=`ps axf | grep '\/usr\/bin\/ntop' | awk '{ printf(" %s", $1) }; END { print "" }'`
+- if [ "${pids}" != " " ]; then
++ if [ "${pids}" != "" ]; then
+ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Sending SIGTERM to ${prog}...${pids}"
+ if [ "${debug}" = "y" ]; then echo "Sending SIGTERM to ${prog}...${pids}"; fi
+- kill -INT ${pids}
++ kill -TERM ${pids} > /dev/null 2>&1
+ RETVAL=$?
++ NOT_RUNNING=0
++ else
++ NOT_RUNNING=1
+ fi
+ fi
+
+@@ -597,13 +534,9 @@ stop () {
+ if [ "${debug}" = "y" ]; then echo "DEBUG: Unconfiguring interfaces"; fi
+
+ for eth in ${ntopinterface}; do
+- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp][Cc].*=['\"]?[Yy][Ee][Ss]['\"]?" \
+- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
+- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntopconfigure=yes, skipping"
+- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth is not ntopconfigure=yes"; fi
+- continue
++ if [ "$eth" = "none" ]; then
++ continue
+ fi
+-
+ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unconfiguring $eth"
+ if [ "${debug}" = "y" ]; then echo "DEBUG: Unconfiguring $eth"; fi
+
+@@ -623,6 +556,13 @@ stop () {
+ if [ "${debug}" = "y" ]; then echo "DEBUG: Interfaces are unconfigured"; fi
+ fi
+
++ if [ $NOT_RUNNING -eq 1 -o $RETVAL -eq 0 ]; then
++ echo " [ OK ]"
++ RETVAL=0
++ else
++ echo " [ FAILED ]"
++ fi
++
+ return $RETVAL
+ }
+
+--
+1.7.5.4
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch
new file mode 100644
index 000000000..9f57ca425
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch
@@ -0,0 +1,19 @@
+change osName to version as it prints out "ntop Version".
+
+Upstream-Status: Pending
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+diff --git a/webInterface.c b/webInterface.c
+index 5622e69..8cb7a67 100644
+--- a/webInterface.c
++++ b/webInterface.c
+@@ -5816,7 +5816,7 @@ static void printNtopConfigInfoData(int textPrintFlag, UserPref *pref) {
+ printInfoSectionTitle(textPrintFlag, "Basic Information");
+
+ safe_snprintf(__FILE__, __LINE__, formatBuf, sizeof(formatBuf), "%s (%d bit)",
+- osName, sizeof(long) == 8 ? 64 : 32);
++ version, sizeof(long) == 8 ? 64 : 32);
+ printFeatureConfigInfo(textPrintFlag, "ntop Version", formatBuf);
+
+ #ifndef WIN32
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch
new file mode 100644
index 000000000..2b001c13e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch
@@ -0,0 +1,32 @@
+[PATCH] replace 'inline' with 'static inline' for gcc 5.x
+
+gcc 5.x defaults to -std=gnu11 instead of -std=gnu89 which change
+the semantics for inline functions and the standalone 'inline'
+causes error with "gcc5 -g -o0"
+
+Replace inline with static inline to be compatible with both gcc 4
+and 5.
+
+Upstream-status: Pending
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ nDPI/src/lib/protocols/ssl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/nDPI/src/lib/protocols/ssl.c b/nDPI/src/lib/protocols/ssl.c
+index 245b8c3..72beda9 100644
+--- a/nDPI/src/lib/protocols/ssl.c
++++ b/nDPI/src/lib/protocols/ssl.c
+@@ -39,7 +39,7 @@ static void ipoque_int_ssl_add_connection(struct ipoque_detection_module_struct
+
+ #ifdef HAVE_NTOP
+ #ifndef WIN32
+-inline int min(int a, int b) { return(a < b ? a : b); }
++static inline int min(int a, int b) { return(a < b ? a : b); }
+ #endif
+
+ static void stripCertificateTrailer(char *buffer, int buffer_len) {
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb
new file mode 100644
index 000000000..298fbec61
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntop/ntop_5.0.1.bb
@@ -0,0 +1,137 @@
+SUMMARY = "ntop is network top"
+DESCRIPTION = "ntop is a network traffic probe that shows the network usage, \
+similar to what the popular top Unix command does."
+
+SECTION = "console/network"
+
+LICENSE = "GPLv2+ & GPLv3 & OpenSSL"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE-OpenSSL.txt;md5=a409f902e447ddd889cffa0c70e7c7c2 \
+ "
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/ntop/ntop-${PV}.tar.gz \
+ file://ntop_configure_in.patch \
+ file://ntop_init.patch \
+ file://ntop_webInterface.patch \
+ file://ntop_configure_in_net_snmp_config_exist.patch \
+ file://ntop.service \
+ file://use-static-inline.patch \
+ file://0001-nDPI-Include-sys-types.h.patch \
+ "
+SRC_URI[md5sum] = "01710b6925a8a5ffe1a41b8b512ebd69"
+SRC_URI[sha256sum] = "7e8e84cb14d2173beaca4d4cb991a14d84a4bef84ec37b2276bc363f45c52ef8"
+
+inherit autotools-brokensep useradd pythonnative pkgconfig systemd
+
+DEPENDS = "geoip rrdtool python zlib libpcap gdbm"
+
+PACKAGECONFIG ??= "openssl snmp plugins"
+PACKAGECONFIG[openssl] = "--with-ssl, --without-ssl, openssl, openssl"
+PACKAGECONFIG[snmp] = "--enable-snmp=yes NETSNMP=${STAGING_BINDIR_CROSS}/net-snmp-config, \
+--disable-snmp,net-snmp,"
+PACKAGECONFIG[plugins] = "--enable-plugins=yes, --disable-plugins, ,"
+
+EXTRA_OECONF += "ac_cv_file_aclocal_m4=yes ac_cv_file_depcomp=no"
+
+do_configure() {
+ cp ${STAGING_DATADIR_NATIVE}/aclocal/libtool.m4 libtool.m4.in
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/nDPI
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/nDPI
+ cat acinclude.m4.in acinclude.m4.ntop libtool.m4.in > acinclude.m4
+ cp 3rd_party/* ./
+
+ # config nDPI
+ cd nDPI
+ ./configure ${CONFIGUREOPTS} --with-pic
+ cd ..
+
+ sed -i -e 's:^CFG_DBFILE_DIR=$localstatedir/ntop:CFG_DBFILE_DIR=$localstatedir/lib/ntop:' ${S}/configure.in
+
+ # fix the CFLAGS, CPPFLAGS, LDFLAGS, remove the host include
+ sed -i \
+ -e 's:\(^CFLAGS="\$.*\) -I/usr/local/include -I/opt/local/include":\1":' \
+ -e 's:\(^CPPFLAGS="\$.*\) -I/usr/local/include -I/opt/local/include":\1":' \
+ -e 's:\(^LDFLAGS="\$.*\) -L/usr/local/lib -L/opt/local/lib":\1":' \
+ ${S}/configure.in
+
+ # replace the DISTRO RELEASE in configure.in which are host's
+ # with our release, although those doesn't affect functionality
+ sed -i -e \
+ '/DEFINEOS="LINUX"/{N;s/DISTRO=.*/DISTRO="${DISTRO}"/;N;s/RELEASE=.*/RELEASE="${DISTRO_VERSION}"/;}' \
+ ${S}/configure.in
+
+ # osName in original configure.in should be ${TARGET_SYS}
+ # which will show in ntop's "show configuration"
+ sed -i -e \
+ 's:^osName=.*:osName=${TARGET_SYS}:' \
+ ${S}/configure.in
+
+ # rename configureextra to configureextra_rename to avoid
+ # configure.in to guess host OS and pull in more configure, non needed
+ # which will cause some cross-compiling failure on specific host
+ # e.g. SUSE(SLED...)
+ test ! -f configureextra || mv -f configureextra configureextra_rename
+
+ # make sure configure finds python includdirs/libs with these envs
+ export BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_LIBDIR=${STAGING_LIBDIR}
+
+ autotools_do_configure
+}
+
+do_compile_prepend() {
+ cd nDPI
+ oe_runmake
+ cd ..
+}
+
+do_install_append() {
+ # remove the empty dirs
+ rm -rf ${D}${libdir}/plugins
+
+ install -D -m 0755 ${S}/packages/RedHat/ntop.init \
+ ${D}${sysconfdir}/init.d/ntop
+ install -D -m 0644 ${S}/packages/RedHat/ntop.conf.sample \
+ ${D}${sysconfdir}/ntop.conf
+
+ # change ntop dir in ntop.conf
+ # don't use the -P as the ntop.init didn't support it
+ sed -i -e "s:^--db-file-path /usr/share/ntop:--db-file-path /var/lib/ntop:" \
+ -e "s:^#? -P /var/ntop:#? -P /var/lib/ntop:" \
+ ${D}${sysconfdir}/ntop.conf
+
+ # For systemd
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -D -m 0755 ${S}/packages/RedHat/ntop.init ${D}${libexecdir}/ntop-helper
+ install -D -m 0644 ${WORKDIR}/ntop.service ${D}${systemd_system_unitdir}/ntop.service
+ sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${systemd_system_unitdir}/ntop.service
+ fi
+
+ # Fix host-user-contaminated issue
+ chown -R root:root ${D}
+
+ chown -R ntop.ntop ${D}${datadir}/ntop
+ chown -R ntop:ntop ${D}${localstatedir}/lib/ntop
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "-M -g ntop -r -d ${localstatedir}/lib/ntop \
+-s /usr/sbin/nologin -c 'ntop' ntop"
+GROUPADD_PARAM_${PN} = "-r ntop"
+
+SYSTEMD_SERVICE_${PN} = "ntop.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+FILES_${PN}_append = "${libdir}/ntop/plugins ${libdir}/libntop-*.so \
+ ${libdir}/libntopreport-*.so ${libdir}/lib*-${PV}.so"
+FILES_${PN}-dev = "${includedir} ${libdir}/libntop.so \
+ ${libdir}/libntopreport.so \
+ ${libdir}/libnetflowPlugin.so ${libdir}/libsflowPlugin.so \
+ ${libdir}/librrdPlugin.so \
+ ${libdir}/*.a ${libdir}/libntopreport.a ${libdir}/*.la"
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
new file mode 100644
index 000000000..825e2bf6a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
@@ -0,0 +1,38 @@
+From e0d86318227a23f00cf0f6639a6685bb9f5771a1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Dec 2017 09:42:19 -0800
+Subject: [PATCH] util.h: endian.h is available on musl on linux
+
+just checking for glibc alone is not enough since
+it excludes musl, therefore check for platform
+being linux as well
+
+Fixes build issues
+
+include/libisns/util.h:114:12: fatal error: sys/endian.h: No such file or directory
+ # include <sys/endian.h>
+ ^~~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ include/libisns/util.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/libisns/util.h b/include/libisns/util.h
+index 9a2bd13..6cc1a1b 100644
+--- a/include/libisns/util.h
++++ b/include/libisns/util.h
+@@ -100,7 +100,7 @@ enum {
+ * There's no htonll yet
+ */
+ #ifndef htonll
+-# ifdef __GLIBC__
++# if defined(__GLIBC__) || defined(__linux__)
+ # include <endian.h>
+ # include <byteswap.h>
+ # if __BYTE_ORDER == __BIG_ENDIAN
+--
+2.15.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
index 420ef5be0..cc2959e2b 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
@@ -13,9 +13,9 @@ SECTION = "net"
DEPENDS = "openssl systemd"
-SRC_URI = " \
- git://github.com/open-iscsi/open-isns \
-"
+SRC_URI = "git://github.com/open-iscsi/open-isns \
+ file://0001-util.h-endian.h-is-available-on-musl-on-linux.patch \
+ "
SRCREV ?= "09954404e948e41eb0fce8e28836018b4ce3d20d"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch
new file mode 100644
index 000000000..25057fbce
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch
@@ -0,0 +1,618 @@
+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/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch
new file mode 100644
index 000000000..d4e02be45
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch
@@ -0,0 +1,25 @@
+Do not install pyc and pyo for python module
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ swig/python/Makefile.am | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/swig/python/Makefile.am b/swig/python/Makefile.am
+index da95a81..97a62bf 100644
+--- a/swig/python/Makefile.am
++++ b/swig/python/Makefile.am
+@@ -33,8 +33,6 @@ CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc
+ install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo
+ $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR)
+ $(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
+- $(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
+- $(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
+ if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \
+ $(INSTALL) -d $(DESTDIR)$(bindir); \
+ $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
new file mode 100644
index 000000000..9a568b2b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
@@ -0,0 +1,22 @@
+Author: Aws Ismail <aws.ismail@windriver.com>
+Date: Thu Jun 7 16:00:13 2012 -0400
+
+ This patch fixes the error during the install stage when
+ creating a symbolic link for opeipmish in openipmi/cmdlang
+
+ Upstream-Status: Pending
+
+ Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+
+diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
+index 92d6e83..f6039f9 100644
+--- a/cmdlang/Makefile.am
++++ b/cmdlang/Makefile.am
+@@ -36,6 +36,7 @@ CLEANFILES = libOpenIPMIcmdlang.map
+ # compatability.
+ install-data-local:
+ rm -f $(DESTDIR)$(bindir)/ipmish
++ mkdir -p $(DESTDIR)$(bindir)/
+ $(LN_S) openipmish $(DESTDIR)$(bindir)/ipmish
+
+ uninstall-local:
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/include_sys_types.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/include_sys_types.patch
new file mode 100644
index 000000000..58ec5d883
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/include_sys_types.patch
@@ -0,0 +1,17 @@
+include sys/types.h for u_int32_t
+
+ui.c:340:5: error: unknown type name 'u_int32_t'; did you mean 'uint32_t'?
+ u_int32_t addr;
+ ^~~~~~~~~
+Index: OpenIPMI-2.0.22/ui/ui.c
+===================================================================
+--- OpenIPMI-2.0.22.orig/ui/ui.c
++++ OpenIPMI-2.0.22/ui/ui.c
+@@ -42,6 +42,7 @@
+ #include <fcntl.h>
+ #include <time.h>
+ #include <sys/time.h>
++#include <sys/types.h>
+ #include <ctype.h>
+
+ #include <OpenIPMI/selector.h>
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
new file mode 100644
index 000000000..51a398ba5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
@@ -0,0 +1,41 @@
+Subject: [PATCH] ipmi-init: fix the arguments
+
+The functions success/failure/warning defined in /etc/init.d/functions
+(provided by initscripts) only accepts numeric argument as return code,
+not a string.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ ipmi.init | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ipmi.init b/ipmi.init
+index 2ebcd94..d8161c5 100644
+--- a/ipmi.init
++++ b/ipmi.init
+@@ -45,17 +45,17 @@ elif [ -r /etc/init.d/functions ]; then
+ case "$ACTION" in
+ success)
+ echo -n $*
+- success "$*"
++ success 0
+ echo
+ ;;
+ failure)
+ echo -n $*
+- failure "$*"
++ failure 1
+ echo
+ ;;
+ warning)
+ echo -n $*
+- warning "$*"
++ warning 0
+ echo
+ ;;
+ *)
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi.service b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi.service
new file mode 100644
index 000000000..6fe137819
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=IPMI Driver
+After=network.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@LIBEXECDIR@/openipmi-helper start
+ExecStop=@LIBEXECDIR@/openipmi-helper stop-all
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-helper b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-helper
new file mode 100755
index 000000000..4cebfb9c6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-helper
@@ -0,0 +1,512 @@
+#!/bin/sh
+#############################################################################
+#
+# ipmi: OpenIPMI Driver helper script
+#
+# Authors: Jan Safranek <jsafrane@redhat.com>
+#
+# Based on IPMI init script by:
+# Matt Domsch <Matt_Domsch@dell.com>
+# Chris Poblete <Chris_Poblete@dell.com>
+#
+# Status return code bits
+# no bits set = no errors
+# bit 0 set = minimum modules aren't loaded
+# bit 1 set = requested feature module isn't loaded
+# bit 2 set = /dev/ipmi0 (or /dev/imb if using that instead) doesn't exist
+# bit 3 set = /dev/watchdog doesn't exist
+# bit 4 set = lockfile doesn't exist
+# bit 5 set = modules are loaded even when asked to be unloaded
+
+CONFIGFILE=/etc/sysconfig/ipmi
+# source config info
+[ -r ${CONFIGFILE} ] && . ${CONFIGFILE}
+
+#############################################################################
+# GLOBALS
+#############################################################################
+MODULE_NAME="ipmi"
+INTF_NUM=0
+
+IPMI_SMB_MODULE_NAME="ipmi_smb"
+IPMI_SI_MODULE_NAME="ipmi_si"
+kernel=`uname -r | cut -d. -f1-2`
+if [ "${kernel}" == "2.4" ]; then
+ IPMI_SMB_MODULE_NAME="ipmi_smb_intf"
+ IPMI_SI_MODULE_NAME="ipmi_si_drv"
+fi
+
+MODULES_INTERFACES=""
+[ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf"
+[ "${IPMI_IMB}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_imb"
+
+MODULES_FEATURES=""
+[ "${IPMI_WATCHDOG}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_watchdog"
+[ "${IPMI_POWEROFF}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_poweroff"
+
+MODULES_HW=""
+[ "${IPMI_SI}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SI_MODULE_NAME}"
+[ "${IPMI_SMB}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SMB_MODULE_NAME}"
+
+MODULES_BASE="ipmi_msghandler"
+MODULES="${MODULES_INTERFACES} ${MODULES_FEATURES} ${MODULES_HW} ${MODULES_BASE}"
+
+RETVAL=0
+LOCKFILE=/var/lock/subsys/ipmi
+DEV_IPMI_TIMEOUT=150
+
+UDEV_EXISTS=0
+if [ -e /sbin/udev -o -e /sbin/udevd ]; then
+ UDEV_EXISTS=1
+fi
+
+#############################################################################
+# NOTES:
+# * /dev/ipmi0 is unconditionally deleted here on ipmi_devintf unload,
+# because SLES9 and RHEL4 kernels don't send a message for udev to delete
+# it for us.
+#
+#############################################################################
+
+modules_loaded_verbose()
+{
+ OnePlusLoaded=0
+ OnePlusUnloaded=0
+ for m in $@; do
+ if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
+ echo "$m module loaded."
+ OnePlusLoaded=1
+ else
+ echo "$m module not loaded."
+ OnePlusUnloaded=1
+ fi
+ done
+}
+
+modules_loaded()
+{
+ OnePlusLoaded=0
+ OnePlusUnloaded=0
+ for m in $@; do
+ if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
+ OnePlusLoaded=1
+ else
+ OnePlusUnloaded=1
+ fi
+ done
+}
+
+device_node_exists ()
+{
+ if [ -e "$1" ]; then
+ echo "$1 exists."
+ return 1
+ fi
+ echo "$1 does not exist."
+ return 0
+}
+
+minimum_modules_loaded()
+{
+ rc_base=1
+ rc_hw=1
+ modules_loaded_verbose "${MODULES_BASE}"
+ [ ${OnePlusLoaded} -eq 0 ] && rc_base=0
+
+ modules_loaded_verbose "${MODULES_HW}"
+ [ ${OnePlusLoaded} -eq 0 ] && rc_hw=0
+
+ return $((rc_base && rc_hw))
+}
+
+#############################################################################
+
+load_si()
+{
+ if [ "${IPMI_SI}" = "yes" ]; then
+ modprobe ${IPMI_SI_MODULE_NAME} > /dev/null 2>&1
+ modules_loaded ${IPMI_SI_MODULE_NAME}
+ [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
+ fi
+}
+
+load_smb()
+{
+ if [ "${IPMI_SMB}" = "yes" ]; then
+ modprobe ${IPMI_SMB_MODULE_NAME} > /dev/null 2>&1
+ modules_loaded ${IPMI_SMB_MODULE_NAME}
+ [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
+ fi
+}
+
+load_hw_modules()
+{
+ load_si
+ load_smb
+}
+
+start_watchdog_common()
+{
+ load_hw_modules
+ modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} > /dev/null 2>&1
+ modules_loaded ipmi_watchdog
+ [ ${OnePlusUnloaded} -ne 0 ] &&
+ RETVAL=$((RETVAL | 2)) &&
+ echo "Watchdog startup failed: cannot load ipmi_watchdog module" &&
+ return
+ if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then
+ mknod -m 0600 /dev/watchdog c 10 130
+ [ $? -ne 0 ] &&
+ RETVAL=$((RETVAL | 8)) &&
+ echo "Watchdog startup failed: cannot create /dev/watchdog" &&
+ return
+ fi
+}
+
+start_watchdog_quiet()
+{
+ [ "${IPMI_WATCHDOG}" != "yes" ] &&
+ return
+ start_watchdog_common
+}
+
+start_watchdog()
+{
+ [ "${IPMI_WATCHDOG}" != "yes" ] &&
+ RETVAL=$((RETVAL | 2)) &&
+ echo "Watchdog not configured" &&
+ return
+ start_watchdog_common
+}
+
+stop_watchdog()
+{
+ modprobe -q -r ipmi_watchdog > /dev/null 2>&1
+ modules_loaded ipmi_watchdog
+ if [ ${OnePlusLoaded} -ne 0 ]; then
+ RETVAL=$((RETVAL | 32))
+ echo "Watchog shutdown failed: cannot unload ipmi_watchdog module"
+ else
+ if [ "${IPMI_WATCHDOG}" = "yes" ]; then
+ [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
+ fi
+ fi
+}
+
+stop_watchdog_quiet()
+{
+ modprobe -q -r ipmi_watchdog > /dev/null 2>&1
+ modules_loaded ipmi_watchdog
+ if [ ${OnePlusLoaded} -ne 0 ]; then
+ RETVAL=$((RETVAL | 32))
+ else
+ if [ "${IPMI_WATCHDOG}" = "yes" ]; then
+ [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
+ fi
+ fi
+}
+
+start_powercontrol_common()
+{
+ local poweroff_opts=""
+ load_hw_modules
+ if [ "${IPMI_POWERCYCLE}" == "yes" ]; then
+ modinfo ipmi_poweroff 2>/dev/null | grep poweroff_control > /dev/null 2>&1 && \
+ poweroff_opts="poweroff_control=2"
+ modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \
+ poweroff_opts="poweroff_powercycle=1"
+ fi
+ modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1
+ modules_loaded ipmi_poweroff
+ [ ${OnePlusUnloaded} -ne 0 ] &&
+ RETVAL=$((RETVAL | 2)) &&
+ echo "Powercontroll startup failed: cannot load ipmi_poweroff module" &&
+ return
+}
+
+start_powercontrol_quiet()
+{
+ [ "${IPMI_POWEROFF}" != "yes" ] &&
+ return
+ start_powercontrol_common
+}
+
+start_powercontrol()
+{
+ [ "${IPMI_POWEROFF}" != "yes" ] &&
+ RETVAL=$((RETVAL | 2)) &&
+ echo "Powercontroll not configured" &&
+ return
+ start_powercontrol_common
+}
+
+stop_powercontrol()
+{
+ modprobe -q -r ipmi_poweroff > /dev/null 2>&1
+ modules_loaded ipmi_poweroff
+ if [ ${OnePlusLoaded} -ne 0 ]; then
+ RETVAL=$((RETVAL | 32))
+ echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module"
+ fi
+}
+
+stop_powercontrol_quiet()
+{
+ modprobe -q -r ipmi_poweroff > /dev/null 2>&1
+ modules_loaded ipmi_poweroff
+ [ ${OnePlusLoaded} -ne 0 ] && RETVAL=$((RETVAL | 32))
+}
+
+#############################################################################
+unload_all_ipmi_modules()
+{
+ stop_watchdog_quiet
+ stop_powercontrol_quiet
+ for m in ${MODULES}; do
+ modprobe -q -r ${m} > /dev/null 2>&1
+ done
+ # delete interface node ONLY if ipmi_devintf is unloaded
+ [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
+ rm -f "/dev/ipmi${INTF_NUM}"
+}
+
+unload_ipmi_modules_leave_features()
+{
+ for m in ${MODULES_INTERFACES}; do
+ modprobe -q -r ${m} > /dev/null 2>&1
+ done
+ # delete interface node ONLY if ipmi_devintf is unloaded
+ [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
+ rm -f "/dev/ipmi${INTF_NUM}"
+ lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1
+ if [ "$?" -ne "0" ]; then
+ stop_watchdog_quiet
+ stop_powercontrol_quiet
+ for m in ${MODULES}; do
+ modprobe -q -r ${m} > /dev/null 2>&1
+ done
+ fi
+}
+
+#############################################################################
+load_ipmi_modules ()
+{
+ local locdelay
+ modprobe ipmi_msghandler > /dev/null 2>&1
+ modules_loaded ipmi_msghandler
+ [ ${OnePlusLoaded} -ne 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
+ load_hw_modules
+ [ $((RETVAL & 1)) -eq 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
+
+ if [ "${DEV_IPMI}" = "yes" ]; then
+ modprobe ipmi_devintf > /dev/null 2>&1
+ modules_loaded ipmi_devintf
+ RETVAL=$((RETVAL & ~2))
+ [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
+ if [ ${OnePlusLoaded} -eq 1 ]; then
+ if [ ${UDEV_EXISTS} -eq 0 ]; then
+ DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'`
+ rm -f /dev/ipmi${INTF_NUM}
+ mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
+ fi
+
+ # udev can take several seconds to create /dev/ipmi0,
+ # but it happens asynchronously, so delay here
+ locdelay=${DEV_IPMI_TIMEOUT}
+ while [ ! -e /dev/ipmi${INTF_NUM} -a ${locdelay} -gt 0 ]; do
+ locdelay=$((locdelay - 1))
+ sleep 0.1
+ done
+ fi
+ fi
+
+ if [ "${IPMI_IMB}" = "yes" ]; then
+ modprobe ipmi_imb > /dev/null 2>&1
+ modules_loaded ipmi_imb
+ RETVAL=$((RETVAL & ~2))
+ [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
+ if [ ${OnePlusLoaded} -eq 1 ]; then
+ DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'`
+ rm -f /dev/imb
+ mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
+ fi
+ fi
+
+ # Per Corey Minyard, essentially no one uses ipmi_radisys
+ # and we don't want to encourage its further use
+ # so it won't be handled here.
+ return
+}
+
+#############################################################################
+start()
+{
+ load_ipmi_modules
+ if [ ${RETVAL} -eq 0 ]; then
+ touch ${LOCKFILE}
+ else
+ if [ $((RETVAL & 1)) -eq 1 ]; then
+ echo "Startup failed."
+ else
+ touch ${LOCKFILE} && echo "Warning!?"
+ fi
+ fi
+ start_watchdog_quiet
+ start_powercontrol_quiet
+}
+
+#############################################################################
+stop()
+{
+ unload_ipmi_modules_leave_features
+ modules_loaded ${MODULES_INTERFACES}
+ if [ ${OnePlusLoaded} -ne 0 ]; then
+ RETVAL=$((RETVAL | 32))
+ echo "Shutdown failed, something may be in use"
+ else
+ rm -f ${LOCKFILE}
+ fi
+}
+
+stop_all()
+{
+ unload_all_ipmi_modules
+ modules_loaded ${MODULES}
+ if [ ${OnePlusLoaded} -ne 0 ]; then
+ RETVAL=$((RETVAL | 32))
+ echo "Shutdown failed, something may be in use"
+ else
+ rm -f ${LOCKFILE}
+ fi
+}
+
+#############################################################################
+restart()
+{
+ stop_all
+ RETVAL=0
+ start
+}
+
+#############################################################################
+
+reload()
+{
+ stop_all
+ RETVAL=0
+ start
+}
+
+#############################################################################
+
+status_all()
+{
+ minimum_modules_loaded
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
+
+ modules_loaded_verbose ${MODULES_FEATURES} ${MODULES_INTERFACES}
+ [ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2))
+
+ if [ "${DEV_IPMI}" = "yes" ]; then
+ device_node_exists /dev/ipmi${INTF_NUM}
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
+ fi
+
+ if [ "${IPMI_IMB}" = "yes" ]; then
+ device_node_exists /dev/imb
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
+ fi
+
+ if [ "${IPMI_WATCHDOG}" = "yes" ]; then
+ device_node_exists /dev/watchdog
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
+ fi
+
+ [ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16))
+}
+
+status()
+{
+ minimum_modules_loaded
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
+
+ if [ "${DEV_IPMI}" = "yes" ]; then
+ modules_loaded_verbose ipmi_devintf
+ [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
+
+ device_node_exists /dev/ipmi${INTF_NUM}
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
+ fi
+
+ if [ "${IPMI_IMB}" = "yes" ]; then
+ device_node_exists /dev/imb
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
+ fi
+}
+
+status_watchdog()
+{
+ minimum_modules_loaded
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
+
+ modules_loaded_verbose ipmi_watchdog
+ [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
+
+ device_node_exists /dev/watchdog
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
+}
+
+status_powercontrol()
+{
+ minimum_modules_loaded
+ [ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
+
+ modules_loaded_verbose ipmi_powercontrol
+ [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
+}
+
+#############################################################################
+usage ()
+{
+ echo $"Usage: $0 {start|stop|status" 1>&2
+ echo $" restart|condrestart|try-restart|reload|force-reload" 1>&2
+ echo $" start-watchdog|stop-watchdog|status-watchdog" 1>&2
+ echo $" start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2
+ echo $" stop-all|status-all}" 1>&2
+ RETVAL=2
+}
+
+condrestart ()
+{
+ [ -e ${LOCKFILE} ] && restart
+}
+
+#############################################################################
+# MAIN
+#############################################################################
+case "$1" in
+ start) start ;;
+ stop) stop ;;
+ restart) restart ;;
+ force-reload) reload ;;
+ reload) reload ;;
+ status) status ;;
+ status-all) status_all ;;
+ condrestart) condrestart ;;
+ try-restart) condrestart ;;
+ start-watchdog) start_watchdog ;;
+ stop-watchdog) stop_watchdog ;;
+ status-watchdog) status_watchdog ;;
+ start-powercontrol) start_powercontrol ;;
+ stop-powercontrol) stop_powercontrol ;;
+ status-powercontrol) status_powercontrol ;;
+ stop-all) stop_all ;;
+ *) usage ;;
+esac
+
+exit ${RETVAL}
+
+#############################################################################
+# end of file
+#############################################################################
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
new file mode 100644
index 000000000..1fa68f9ba
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
@@ -0,0 +1,26 @@
+Author: Aws Ismail <aws.ismail@windriver.com>
+Date: Thu Jun 7 12:28:34 2012 -0400
+
+ This patch was carried over from WRL4.3 (openipmi v2.0.16)
+
+ It was updated for openipmi v2.0.19
+
+ Disable making openipmigui man page since we don't need it
+
+ Upstream-Status: Pending
+
+ Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 632f55b..5ce79f5 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -1,6 +1,6 @@
+
+ man_MANS = ipmi_ui.1 openipmicmd.1 openipmish.1 ipmi_cmdlang.7 \
+- openipmigui.1 openipmi_conparms.7 solterm.1 rmcp_ping.1 \
++ openipmi_conparms.7 solterm.1 rmcp_ping.1 \
+ openipmi_eventd.1
+
+ EXTRA_DIST = $(man_MANS)
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch
new file mode 100644
index 000000000..83485a9e6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch
@@ -0,0 +1,50 @@
+From aa0dc0783a6ff5fb56c914b640836223e3c192bb Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Mon, 29 Dec 2014 18:16:04 +0800
+Subject: [PATCH] remove host path from la_LDFLAGS
+
+Upstream-Status: Inappropriate [ cross compile specific ]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ cmdlang/Makefile.am | 2 +-
+ glib/Makefile.am | 4 ++--
+ tcl/Makefile.am | 2 +-
+ unix/Makefile.am | 4 ++--
+ 4 files changed, 6 insertions(+), 6 deletions(-)
+
+Index: OpenIPMI-2.0.24/cmdlang/Makefile.am
+===================================================================
+--- OpenIPMI-2.0.24.orig/cmdlang/Makefile.am
++++ OpenIPMI-2.0.24/cmdlang/Makefile.am
+@@ -15,8 +15,7 @@ libOpenIPMIcmdlang_la_SOURCES = cmdlang.
+ libOpenIPMIcmdlang_la_LIBADD = -lm \
+ $(top_builddir)/utils/libOpenIPMIutils.la \
+ $(top_builddir)/lib/libOpenIPMI.la
+-libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
+- -L$(libdir)
++libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION)
+
+ bin_PROGRAMS = openipmish
+
+Index: OpenIPMI-2.0.24/unix/Makefile.am
+===================================================================
+--- OpenIPMI-2.0.24.orig/unix/Makefile.am
++++ OpenIPMI-2.0.24/unix/Makefile.am
+@@ -10,14 +10,12 @@ lib_LTLIBRARIES = libOpenIPMIposix.la li
+ libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c
+ libOpenIPMIpthread_la_LIBADD = -lpthread $(GDBM_LIB) \
+ $(top_builddir)/utils/libOpenIPMIutils.la $(RT_LIB)
+-libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
+- -L$(libdir)
++libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION)
+
+ libOpenIPMIposix_la_SOURCES = posix_os_hnd.c selector.c
+ libOpenIPMIposix_la_LIBADD = $(top_builddir)/utils/libOpenIPMIutils.la \
+ $(GDBM_LIB) $(RT_LIB)
+-libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
+- -L$(libdir)
++libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION)
+
+ noinst_HEADERS = heap.h
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb
new file mode 100644
index 000000000..a4f63c5f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb
@@ -0,0 +1,110 @@
+SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
+DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
+to allow full access to all IPMI information on a server \
+and to abstract it to a level that will make it easy to use"
+
+HOMEPAGE = "http://openipmi.sourceforge.net"
+
+DEPENDS = " \
+ glib-2.0 \
+ ncurses \
+ net-snmp \
+ openssl \
+ popt \
+ python \
+ swig-native \
+ "
+
+LICENSE = "GPLv2 & LGPLv2.1 & BSD"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+ file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
+ "
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
+ file://fix-symlink-install-error-in-cmdlang.patch \
+ file://openipmi-no-openipmigui-man.patch \
+ file://openipmi-remove-host-path-from-la_LDFLAGS.patch \
+ file://ipmi-init-fix-the-arguments.patch \
+ file://do-not-install-pyc-and-pyo.patch \
+ file://include_sys_types.patch \
+ file://openipmi-helper \
+ file://ipmi.service \
+ file://0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch \
+ "
+
+S = "${WORKDIR}/OpenIPMI-${PV}"
+SRC_URI[md5sum] = "58f9542cbfcb5fe250b77cf88345e1ec"
+SRC_URI[sha256sum] = "bca39a27071278a8b74610181ede8df51e155e5e9031bc8eaa3699d1720292b4"
+
+inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd
+
+EXTRA_OECONF = "--disable-static \
+ --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
+ --with-python='${STAGING_BINDIR_NATIVE}/python-native/python' \
+ --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \
+ --with-glibver=2.0"
+
+PACKAGECONFIG ??= "gdbm"
+PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
+
+PACKAGES += "${PN}-perl ${PN}-python"
+
+FILES_${PN}-perl = " \
+ ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
+ ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
+ "
+
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
+FILES_${PN}-dbg += " \
+ ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
+ ${PYTHON_SITEPACKAGES_DIR}/.debug \
+ "
+
+do_configure () {
+
+ # Let's perform regular configuration first then handle perl issues.
+ autotools_do_configure
+
+ perl_ver=`perl -V:version | cut -d\' -f 2`
+
+ # Force openipmi perl bindings to be compiled using perl-native instead of
+ # the host's perl. Set the proper install directory for the resulting
+ # openipmi.pm and openipmi.so
+ for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
+ echo "SAL: i = $i"
+ echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
+ echo "SAL: libdir = $libdir"
+ sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
+ sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
+ done
+}
+
+do_install_append () {
+ echo "SAL: D = $D"
+ echo "SAL: libdir = $libdir"
+ install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
+ install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
+ # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
+ # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
+ if [ -d ${D}${libdir}/perl5 ]
+ then
+ mv ${D}${libdir}/perl5 ${D}${libdir}/perl
+ fi
+
+ # for systemd
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
+ sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
+ install -d ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
+}
+
+INITSCRIPT_NAME = "ipmi"
+INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE_${PN} = "ipmi.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.3.bb
index db510deff..90097f32a 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.9.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.3.bb
@@ -2,18 +2,18 @@ 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=5aac200199fde47501876cba7263cb0c"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e9b64491ec98eb6c6493ac5e4118f107"
DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
inherit autotools systemd
-SRC_URI = "http://swupdate.openvpn.org/community/releases/openvpn-${PV}.tar.gz \
+SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \
file://openvpn \
file://openvpn@.service \
file://openvpn-volatile.conf"
-SRC_URI[md5sum] = "265755044ae88f9249d509f6d061f7e5"
-SRC_URI[sha256sum] = "2c12fe9ea641ac1291e70322cc500641c84e5903dd4f40bf2eda7e9f209b2f9c"
+SRC_URI[md5sum] = "e1929f82aff40f3d105e5f72aacff9c1"
+SRC_URI[sha256sum] = "cee3d3ca462960a50a67c0ebd186e01b6d13db70275205663695152c9aca8579"
SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service"
SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch
new file mode 100644
index 000000000..eb549ded9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch
@@ -0,0 +1,28 @@
+From f3e04281bad361249a8dad0cde150a801d720f67 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jul 2017 18:46:52 -0700
+Subject: [PATCH] configure: Dont use uname to determine target OS
+
+Helps with cross-compiling
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 6c35a72..f9714e2 100755
+--- a/configure
++++ b/configure
+@@ -31,7 +31,7 @@
+ #DEFS += -DSCOPED_ACL
+ #
+
+-OS=`uname`
++OS="Linux"
+ CFG=config.mk
+ TMP=`mktemp /tmp/XXXXXX`
+ BUGREPORT_URL="https://github.com/troglobit/pimd/issues"
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.1.8.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.1.8.bb
deleted file mode 100644
index 7edb6422d..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.1.8.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "pimd is a lightweight stand-alone PIM-SM v2 multicast routing daemon."
-HOMEPAGE = "http://troglobit.com/pimd.html"
-SECTION = "net"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=94f108f91fab720d62425770b70dd790"
-
-SRC_URI = "ftp://ftp.troglobit.com/pimd/${BP}.tar.bz2"
-SRC_URI[md5sum] = "a12448bc7c9bfcebf51a13ebf1ffa962"
-SRC_URI[sha256sum] = "01016940543a0a6131d4e6c91b595d47e187012c59a298eec14c3dbc38564b3a"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-CFLAGS += "-I ${S}/include "
-
-do_install() {
- unset datadir
- unset mandir
- oe_runmake 'DESTDIR=${D}' install
-}
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.3.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
new file mode 100644
index 000000000..2faa7cb1c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
@@ -0,0 +1,20 @@
+SUMMARY = "pimd is a lightweight stand-alone PIM-SM v2 multicast routing daemon."
+HOMEPAGE = "http://troglobit.com/pimd.html"
+SECTION = "net"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=94f108f91fab720d62425770b70dd790"
+
+SRC_URI = "ftp://ftp.troglobit.com/pimd/${BP}.tar.gz \
+ file://0001-configure-Dont-use-uname-to-determine-target-OS.patch \
+ "
+SRC_URI[md5sum] = "a3c03e40540980b2c06e265a17988e60"
+SRC_URI[sha256sum] = "c77a9812751f114490a28a6839b16aac8b020c8d9fd6aa22bf3880c054e19f1d"
+
+EXTRA_OECONF_append_libc-musl = " --embedded-libc"
+
+inherit autotools-brokensep
+
+do_configure() {
+ oe_runconf
+}
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch
new file mode 100644
index 000000000..7ebc39818
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch
@@ -0,0 +1,26 @@
+From 2a3ab04bbdc4624792886aa51579eadb427ef99e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 27 Jun 2017 07:42:11 -0700
+Subject: [PATCH] memory.h: Include stdint.h for uintptr_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libstrongswan/utils/utils/memory.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/libstrongswan/utils/utils/memory.h b/src/libstrongswan/utils/utils/memory.h
+index b978e7c..55aaaf5 100644
+--- a/src/libstrongswan/utils/utils/memory.h
++++ b/src/libstrongswan/utils/utils/memory.h
+@@ -22,6 +22,8 @@
+ #ifndef MEMORY_H_
+ #define MEMORY_H_
+
++#include <stdint.h>
++
+ /**
+ * Helper function that compares two binary blobs for equality
+ */
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.3.bb
index d63214ba4..3fb56bcfe 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.3.bb
@@ -8,11 +8,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "gmp openssl flex-native flex bison-native"
SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \
- file://fix-funtion-parameter.patch \
-"
+ file://fix-funtion-parameter.patch \
+ file://0001-memory.h-Include-stdint.h-for-uintptr_t.patch \
+ "
-SRC_URI[md5sum] = "4eba9474f7dc6c8c8d7037261358e68d"
-SRC_URI[sha256sum] = "720b301991f77bdedd8d551a956f52e2d11686a0ec18e832094f86cf2b842ab7"
+SRC_URI[md5sum] = "4afffe3c219bb2e04f09510905af836b"
+SRC_URI[sha256sum] = "c5ea54b199174708de11af9b8f4ecf28b5b0743d4bc0e380e741f25b28c0f8d4"
EXTRA_OECONF = " \
--without-lib-prefix \
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
new file mode 100644
index 000000000..209b0dd40
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
@@ -0,0 +1,54 @@
+Upstream-Status: Pending
+
+When openssl disable des support with configure option 'no-des', it doesn't
+provide des related header file and functions. That causes stunnel compile
+failed. Fix it by checking macro OPENSSL_NO_DES to use openssl des related
+library conditionaly.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/src/common.h b/src/common.h
+index f7d38b0..bf485af 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -471,7 +471,9 @@ extern char *sys_errlist[];
+ #ifndef OPENSSL_NO_MD4
+ #include <openssl/md4.h>
+ #endif /* !defined(OPENSSL_NO_MD4) */
++#ifndef OPENSSL_NO_DES
+ #include <openssl/des.h>
++#endif
+ #ifndef OPENSSL_NO_DH
+ #include <openssl/dh.h>
+ #if OPENSSL_VERSION_NUMBER<0x10100000L
+diff --git a/src/protocol.c b/src/protocol.c
+index 587df09..8198eb6 100644
+--- a/src/protocol.c
++++ b/src/protocol.c
+@@ -66,7 +66,7 @@ NOEXPORT char *imap_server(CLI *, SERVICE_OPTIONS *, const PHASE);
+ NOEXPORT char *nntp_client(CLI *, SERVICE_OPTIONS *, const PHASE);
+ NOEXPORT char *connect_server(CLI *, SERVICE_OPTIONS *, const PHASE);
+ NOEXPORT char *connect_client(CLI *, SERVICE_OPTIONS *, const PHASE);
+-#ifndef OPENSSL_NO_MD4
++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
+ NOEXPORT void ntlm(CLI *, SERVICE_OPTIONS *);
+ NOEXPORT char *ntlm1();
+ NOEXPORT char *ntlm3(char *, char *, char *, char *);
+@@ -1175,7 +1175,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
+ fd_printf(c, c->remote_fd.fd, "Host: %s", opt->protocol_host);
+ if(opt->protocol_username && opt->protocol_password) {
+ if(!strcasecmp(opt->protocol_authentication, "ntlm")) {
+-#ifndef OPENSSL_NO_MD4
++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
+ ntlm(c, opt);
+ #else
+ s_log(LOG_ERR, "NTLM authentication is not available");
+@@ -1216,7 +1216,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
+ return NULL;
+ }
+
+-#ifndef OPENSSL_NO_MD4
++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
+
+ /*
+ * NTLM code is based on the following documentation:
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
index 3e2e2c229..ec8478d6b 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
@@ -1,4 +1,5 @@
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"
@@ -7,7 +8,9 @@ DEPENDS = "openssl zlib tcp-wrappers"
RDEPENDS_${PN} += "perl"
-SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz"
+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"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/tcpdump-configure-dlpi.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/tcpdump-configure-dlpi.patch
deleted file mode 100644
index 50e2d5439..000000000
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/tcpdump-configure-dlpi.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-[PATCH] tcpdump: cross-compiling not check dlpi.
-
-For cross-compiling on Linux platforms, we do not need to check libdlpi
-since it is only placed on Solaris.
-Also, checking libdlpi in native /lib would cause do_qa_configure fail.
-
-Upstream-Status: Pending.
-
-Signed-off-by: Xin Ouyang <Xin.Ouyang@windriver.com>
----
- configure.in | 4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 7f9591c..ca277c0 100644
---- a/configure.in
-+++ b/configure.in
-@@ -716,7 +716,9 @@ don't.])
- fi
-
- # libdlpi is needed for Solaris 11 and later.
--AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi" LDFLAGS="-L/lib $LDFLAGS", ,-L/lib)
-+if test "$cross_compiling" != yes; then
-+ AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi" LDFLAGS="-L/lib $LDFLAGS", ,-L/lib)
-+fi
-
- dnl portability macros for getaddrinfo/getnameinfo
- dnl
---
-1.7.5.4
-
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb
index 85db6936d..d38540e34 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb
@@ -8,7 +8,6 @@ DEPENDS = "libpcap"
SRC_URI = " \
http://www.tcpdump.org/release/${BP}.tar.gz \
file://unnecessary-to-check-libpcap.patch \
- file://tcpdump-configure-dlpi.patch \
file://add-ptest.patch \
file://run-ptest \
"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.1.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb
index 6ee9d7357..681ef02bb 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.1.2.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb
@@ -6,10 +6,10 @@ SECTION = "net"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=890b830b22fd632e9ffd996df20338f8"
-SRC_URI = "http://prdownloads.sourceforge.net/tcpreplay/${PV}/tcpreplay-${PV}.tar.gz"
+SRC_URI = "https://github.com/appneta/tcpreplay/releases/download/v${PV}/tcpreplay-${PV}.tar.gz"
-SRC_URI[md5sum] = "3105b10b07dbc0b07ce2da07a2368359"
-SRC_URI[sha256sum] = "da483347e83a9b5df0e0dbb0f822a2d37236e79dda35f4bc4e6684fa827f25ea"
+SRC_URI[md5sum] = "3e65d5b872e441c6a0038191a3dc7ce9"
+SRC_URI[sha256sum] = "043756c532dab93e2be33a517ef46b1341f7239278a1045ae670041dd8a4531d"
DEPENDS = "libpcap"
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb
index 82c25ffa6..5358ba07f 100644
--- a/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.9.bb
+++ b/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb
@@ -10,8 +10,8 @@ SRC_URI = "https://2.na.dl.wireshark.org/src/all-versions/${BP}.tar.bz2"
PE = "1"
-SRC_URI[md5sum] = "7d5e65efd0714bd6248aa5b36c28320d"
-SRC_URI[sha256sum] = "c8b32c0e7d44a277e737c53d9d142ad3fe4265338f25a7fd8c891f58a7633fc2"
+SRC_URI[md5sum] = "ae3a1a43a6e3687f44a738fd15d78021"
+SRC_URI[sha256sum] = "8574a5e1fdec7affae640924bd46c1aed1bd866e02632fa5625e1450e4a50707"
inherit autotools pkgconfig perlnative
OpenPOWER on IntegriCloud