diff --git a/poky/meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch b/poky/meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch
index d48a3b0..478324c 100644
--- a/poky/meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch
+++ b/poky/meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch
@@ -3,7 +3,7 @@
 Date: Mon, 20 Jan 2020 07:45:39 +0200
 Subject: [PATCH] src/global.c: Remove superfluous declaration of program_name
 
-Upstream-Status: Accepted (commit 641d3f4)
+Upstream-Status: Backport (commit 641d3f4)
 Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
 ---
  src/global.c | 3 ---
diff --git a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
index 2f2d04c..8ecfde1 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
+++ b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
@@ -19,7 +19,7 @@
 --- a/configure.ac
 +++ b/configure.ac
 @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
- AC_INIT(ethtool, 5.6, netdev@vger.kernel.org)
+ AC_INIT(ethtool, 5.7, netdev@vger.kernel.org)
  AC_PREREQ(2.52)
  AC_CONFIG_SRCDIR([ethtool.c])
 -AM_INIT_AUTOMAKE([gnu subdir-objects])
diff --git a/poky/meta/recipes-extended/ethtool/ethtool/fix-printf.patch b/poky/meta/recipes-extended/ethtool/ethtool/fix-printf.patch
deleted file mode 100644
index 9effa4f..0000000
--- a/poky/meta/recipes-extended/ethtool/ethtool/fix-printf.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8dcdb3d22a66f18770e5566c0e72e86a0701aeac Mon Sep 17 00:00:00 2001
-From: Robert Scheck <robert@fedoraproject.org>
-Date: Tue, 12 May 2020 20:33:12 +0200
-Subject: Rewrite printf() due to -Werror=format-security
-
-Avoid -Werror=format-security leading to: netlink/settings.c:378:2: error:
-format not a string literal and no format arguments [-Werror=format-security]
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Signed-off-by: Robert Scheck <robert@fedoraproject.org>
-Signed-off-by: John W. Linville <linville@tuxdriver.com>
----
- netlink/settings.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/netlink/settings.c b/netlink/settings.c
-index c8a911d..0212465 100644
---- a/netlink/settings.c
-+++ b/netlink/settings.c
-@@ -375,7 +375,7 @@ static int dump_link_modes(struct nl_context *nlctx,
- after:
- 	if (first && if_none)
- 		printf("%s", if_none);
--	printf(after);
-+	printf("%s", after);
- 
- 	return 0;
- err:
--- 
-cgit 1.2.3-1.el7
-
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.6.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.7.bb
similarity index 90%
rename from poky/meta/recipes-extended/ethtool/ethtool_5.6.bb
rename to poky/meta/recipes-extended/ethtool/ethtool_5.7.bb
index eda32c8..d9fc30c 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool_5.6.bb
+++ b/poky/meta/recipes-extended/ethtool/ethtool_5.7.bb
@@ -9,10 +9,9 @@
 SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \
            file://run-ptest \
            file://avoid_parallel_tests.patch \
-           file://fix-printf.patch \
            "
 
-SRC_URI[sha256sum] = "e904e980294baf5878df410ebcf1d660497ba19bc3a77f798a04dba569f44a7e"
+SRC_URI[sha256sum] = "c2e16f8bf510c5822f8e25061c2533972308a421767c54abcacb1038b08bb782"
 
 UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/"
 
diff --git a/poky/meta/recipes-extended/iptables/iptables/0001-build-resolve-iptables-apply-not-getting-installed.patch b/poky/meta/recipes-extended/iptables/iptables/0001-build-resolve-iptables-apply-not-getting-installed.patch
new file mode 100644
index 0000000..51ed66e
--- /dev/null
+++ b/poky/meta/recipes-extended/iptables/iptables/0001-build-resolve-iptables-apply-not-getting-installed.patch
@@ -0,0 +1,45 @@
+From d4ed0c741fc789bb09d977d74d30875fdd50d08b Mon Sep 17 00:00:00 2001
+From: Jan Engelhardt <jengelh@inai.de>
+Date: Wed, 3 Jun 2020 15:38:48 +0200
+Subject: [PATCH] build: resolve iptables-apply not getting installed
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ip6tables-apply gets installed but iptables-apply does not.
+That is wrong.
+
+» make install DESTDIR=$PWD/r
+» find r -name "*app*"
+r/usr/local/sbin/ip6tables-apply
+r/usr/local/share/man/man8/iptables-apply.8
+r/usr/local/share/man/man8/ip6tables-apply.8
+
+Fixes: v1.8.5~87
+Signed-off-by: Jan Engelhardt <jengelh@inai.de>
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+
+Upstream-Status: Backport
+[https://git.netfilter.org/iptables/commit/?id=d4ed0c741fc789bb09d977d74d30875fdd50d08b]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ iptables/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/iptables/Makefile.am b/iptables/Makefile.am
+index dc66b3cc..2024dbf5 100644
+--- a/iptables/Makefile.am
++++ b/iptables/Makefile.am
+@@ -56,7 +56,7 @@ man_MANS         = iptables.8 iptables-restore.8 iptables-save.8 \
+                    ip6tables-save.8 iptables-extensions.8 \
+                    iptables-apply.8 ip6tables-apply.8
+ 
+-sbin_SCRIPT      = iptables-apply
++sbin_SCRIPTS     = iptables-apply
+ 
+ if ENABLE_NFTABLES
+ man_MANS	+= xtables-nft.8 xtables-translate.8 xtables-legacy.8 \
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-extended/iptables/iptables_1.8.5.bb b/poky/meta/recipes-extended/iptables/iptables_1.8.5.bb
index fa1e5c2..5976128 100644
--- a/poky/meta/recipes-extended/iptables/iptables_1.8.5.bb
+++ b/poky/meta/recipes-extended/iptables/iptables_1.8.5.bb
@@ -11,6 +11,7 @@
 SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2 \
            file://0001-configure-Add-option-to-enable-disable-libnfnetlink.patch \
            file://0002-configure.ac-only-check-conntrack-when-libnfnetlink-enabled.patch \
+           file://0001-build-resolve-iptables-apply-not-getting-installed.patch \
            file://iptables.service \
            file://iptables.rules \
            file://ip6tables.service \
@@ -67,7 +68,7 @@
     fi
 }
 
-PACKAGES += "${PN}-modules"
+PACKAGES =+ "${PN}-modules ${PN}-apply"
 PACKAGES_DYNAMIC += "^${PN}-module-.*"
 
 python populate_packages_prepend() {
@@ -97,6 +98,9 @@
 
 FILES_${PN} += "${datadir}/xtables"
 
+FILES_${PN}-apply = "${sbindir}/ip*-apply"
+RDEPENDS_${PN}-apply = "${PN} bash"
+
 # Include the symlinks as well in respective packages
 FILES_${PN}-module-xt-conntrack += "${libdir}/xtables/libxt_state.so"
 FILES_${PN}-module-xt-ct += "${libdir}/xtables/libxt_NOTRACK.so"
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch
new file mode 100644
index 0000000..09b6f54
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch
@@ -0,0 +1,57 @@
+From 99687ab002f9f750f6f18fa1d70a91f0aa4f8ba2 Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Thu, 18 Jun 2020 17:18:27 +0800
+Subject: [PATCH] syscalls/copy_file_range02: Expect EFBIG in subcase max
+ length on 32-bit architectures
+
+For syscall
+ssize_t copy_file_range(int fd_in, loff_t *off_in,
+                               int fd_out, loff_t *off_out,
+                               size_t len, unsigned int flags);
+off_out is loff_t* that is long long, 64 bits on 32-bit architectures,
+while len is size_t that unsigned int, 32 bits on 32-bit architectures.
+
+In subcase "max length", simplified as below,
+
+dst = tst_max_lfs_filesize();
+TEST(sys_copy_file_range(fd_src, 0, *tc->copy_to_fd, &dst, tc->len, tc->flags));
+
+where dst is 4K*4G and len is 4G, so (4K+1)*4G is always smaller than 4G*4G,
+it can never match the following kernel condition on 32-bit architectures.
+
+if (pos_in + count < pos_in || pos_out + count < pos_out)
+	return -EOVERFLOW;
+
+And thus we would get error like
+copy_file_range02.c:139: FAIL: copy_file_range failed unexpectedly; expected EOVERFLOW, but got: EFBIG (27)
+
+Also correct a typo.
+
+Upstream-Status: Backport [http://lists.linux.it/pipermail/ltp/2020-June/017716.html]
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+Acked-by: Li Wang <liwang@redhat.com>
+---
+ .../kernel/syscalls/copy_file_range/copy_file_range02.c     | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/testcases/kernel/syscalls/copy_file_range/copy_file_range02.c b/testcases/kernel/syscalls/copy_file_range/copy_file_range02.c
+index fa679c4d3..bc27fbe57 100644
+--- a/testcases/kernel/syscalls/copy_file_range/copy_file_range02.c
++++ b/testcases/kernel/syscalls/copy_file_range/copy_file_range02.c
+@@ -78,7 +78,11 @@ static struct tcase {
+ 	{&fd_chrdev,	0,	EINVAL,		CONTSIZE,	"char device",	0},
+ 	{&fd_fifo,	0,	EINVAL,		CONTSIZE,	"fifo", 	0},
+ 	{&fd_pipe[0],	0,	EINVAL,		CONTSIZE,	"pipe", 	0},
+-	{&fd_copy,	0,	EOVERFLOW,	ULLONG_MAX,	"max length lenght", 	1},
++#ifdef TST_ABI64
++	{&fd_copy,	0,	EOVERFLOW,	ULLONG_MAX,	"max length", 	1},
++#else
++	{&fd_copy,	0,	EFBIG,		ULLONG_MAX,	"max length", 	1},
++#endif
+ 	{&fd_copy,	0,	EFBIG,		MIN_OFF,	"max file size", 	1},
+ };
+ 
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-extended/ltp/ltp_20200515.bb b/poky/meta/recipes-extended/ltp/ltp_20200515.bb
index f2510ba..b283add 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20200515.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20200515.bb
@@ -36,6 +36,7 @@
            file://0001-Add-more-musl-exclusions.patch \
            file://0001-ptrace01-Fix-missing-format-string.patch \
            file://0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch \
+           file://0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/man-db/man-db_2.9.2.bb b/poky/meta/recipes-extended/man-db/man-db_2.9.3.bb
similarity index 95%
rename from poky/meta/recipes-extended/man-db/man-db_2.9.2.bb
rename to poky/meta/recipes-extended/man-db/man-db_2.9.3.bb
index 53ebc85..0e6016a 100644
--- a/poky/meta/recipes-extended/man-db/man-db_2.9.2.bb
+++ b/poky/meta/recipes-extended/man-db/man-db_2.9.3.bb
@@ -7,7 +7,7 @@
 SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/man-db/man-db-${PV}.tar.xz \
            file://99_mandb \
            file://man_db.conf-avoid-multilib-install-file-conflict.patch"
-SRC_URI[sha256sum] = "7b383f26c67525205f96a4a3bfb27993396992794adda6fe05ad565f369f047c"
+SRC_URI[sha256sum] = "fa5aa11ab0692daf737e76947f45669225db310b2801a5911bceb7551c5597b8"
 
 DEPENDS = "libpipeline gdbm groff-native base-passwd"
 RDEPENDS_${PN} += "base-passwd"
diff --git a/poky/meta/recipes-extended/man-pages/man-pages_5.06.bb b/poky/meta/recipes-extended/man-pages/man-pages_5.07.bb
similarity index 81%
rename from poky/meta/recipes-extended/man-pages/man-pages_5.06.bb
rename to poky/meta/recipes-extended/man-pages/man-pages_5.07.bb
index 0d632e6..04d0597 100644
--- a/poky/meta/recipes-extended/man-pages/man-pages_5.06.bb
+++ b/poky/meta/recipes-extended/man-pages/man-pages_5.07.bb
@@ -4,11 +4,11 @@
 HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages"
 LICENSE = "GPLv2+"
 
-LIC_FILES_CHKSUM = "file://README;md5=794f701617cc03fe50c53257660d8ec4"
+LIC_FILES_CHKSUM = "file://README;md5=207f70f56526417514ac46b6680e314f"
 SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz"
 
-SRC_URI[md5sum] = "ebddb52ea013c160f07fd0a4a7e9266d"
-SRC_URI[sha256sum] = "da4e939c624bec4bab8ca1702e5f54bbc70505090d90967fd5e12bc1453f19b0"
+SRC_URI[md5sum] = "193d9223e9c6dbe1d928eaaecc1f68db"
+SRC_URI[sha256sum] = "5ba58d7b2b9a8929903b1cf791ed4edf72ab225678d5ea0a6b80dc090080ac33"
 
 inherit manpages
 
diff --git a/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch b/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch
new file mode 100644
index 0000000..523d434
--- /dev/null
+++ b/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch
@@ -0,0 +1,381 @@
+From eb04ef31571f6c707eacaba6846feeebfab518e6 Mon Sep 17 00:00:00 2001
+From: Bernd Eckenfels <net-tools@lina.inka.de>
+Date: Thu, 29 May 2003 02:09:14 +0000
+Subject: [PATCH] added 'ull' prefix to unsigned long long constants to make
+ gcc 3.3 happy
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Backport [https://sourceforge.net/p/net-tools/code/ci/eb04ef31571f6c707eacaba6846feeebfab518e6]
+---
+ lib/interface.c | 299 ++++++++++++++++++++++++++----------------------
+ 1 file changed, 161 insertions(+), 138 deletions(-)
+
+diff -uNr net-tools-1.60.orig/lib/interface.c net-tools-1.60/lib/interface.c
+--- net-tools-1.60.orig/lib/interface.c	2020-06-16 10:04:16.308411879 +0000
++++ net-tools-1.60/lib/interface.c	2020-06-16 10:05:15.697264291 +0000
+@@ -23,7 +23,6 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <ctype.h>
+-#include <string.h>
+ 
+ #if HAVE_AFIPX
+ #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
+@@ -654,6 +653,8 @@
+     const char *Rext = "B";
+     const char *Text = "B";
+ 
++    static char flags[200];
++
+ #if HAVE_AFIPX
+     static struct aftype *ipxtype = NULL;
+ #endif
+@@ -685,32 +686,68 @@
+     if (hw == NULL)
+ 	hw = get_hwntype(-1);
+ 
+-    printf(_("%-9s Link encap:%s  "), ptr->name, hw->title);
+-    /* For some hardware types (eg Ash, ATM) we don't print the 
+-       hardware address if it's null.  */
+-    if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) &&
+-				  hw->suppress_null_addr)))
+-	printf(_("HWaddr %s  "), hw->print(ptr->hwaddr));
+-#ifdef IFF_PORTSEL
+-    if (ptr->flags & IFF_PORTSEL) {
+-	printf(_("Media:%s"), if_port_text[ptr->map.port][0]);
+-	if (ptr->flags & IFF_AUTOMEDIA)
+-	    printf(_("(auto)"));
+-    }
++    sprintf(flags, "flags=%d<", ptr->flags);
++    /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */
++    if (ptr->flags == 0)
++       strcat(flags,">");
++    if (ptr->flags & IFF_UP)
++       strcat(flags,_("UP,"));
++    if (ptr->flags & IFF_BROADCAST)
++       strcat(flags,_("BROADCAST,"));
++    if (ptr->flags & IFF_DEBUG)
++       strcat(flags,_("DEBUG,"));
++    if (ptr->flags & IFF_LOOPBACK)
++       strcat(flags,_("LOOPBACK,"));
++    if (ptr->flags & IFF_POINTOPOINT)
++       strcat(flags,_("POINTOPOINT,"));
++    if (ptr->flags & IFF_NOTRAILERS)
++       strcat(flags,_("NOTRAILERS,"));
++    if (ptr->flags & IFF_RUNNING)
++       strcat(flags,_("RUNNING,"));
++    if (ptr->flags & IFF_NOARP)
++       strcat(flags,_("NOARP,"));
++    if (ptr->flags & IFF_PROMISC)
++       strcat(flags,_("PROMISC,"));
++    if (ptr->flags & IFF_ALLMULTI)
++       strcat(flags,_("ALLMULTI,"));
++    if (ptr->flags & IFF_SLAVE)
++       strcat(flags,_("SLAVE,"));
++    if (ptr->flags & IFF_MASTER)
++       strcat(flags,_("MASTER,"));
++    if (ptr->flags & IFF_MULTICAST)
++       strcat(flags,_("MULTICAST,"));
++#ifdef HAVE_DYNAMIC
++    if (ptr->flags & IFF_DYNAMIC)
++       strcat(flags,_("DYNAMIC,"));
++#endif
++    /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */
++    if (flags[strlen(flags)-1] == ',')
++      flags[strlen(flags)-1] = '>';
++    else
++      flags[strlen(flags)-1] = 0;
++      
++
++    printf(_("%s: %s  mtu %d  metric %d"),
++          ptr->name, flags, ptr->mtu, ptr->metric ? ptr->metric : 1);
++#ifdef SIOCSKEEPALIVE
++    if (ptr->outfill || ptr->keepalive)
++       printf(_("  outfill %d  keepalive %d"),
++              ptr->outfill, ptr->keepalive);
+ #endif
+     printf("\n");
+ 
+ #if HAVE_AFINET
+     if (ptr->has_ip) {
+-	printf(_("          %s addr:%s "), ap->name,
++        printf(_("        %s %s"), ap->name,
+ 	       ap->sprint(&ptr->addr, 1));
+-	if (ptr->flags & IFF_POINTOPOINT) {
+-	    printf(_(" P-t-P:%s "), ap->sprint(&ptr->dstaddr, 1));
+-	}
++        printf(_("  netmask %s"), ap->sprint(&ptr->netmask, 1));
+ 	if (ptr->flags & IFF_BROADCAST) {
+-	    printf(_(" Bcast:%s "), ap->sprint(&ptr->broadaddr, 1));
++            printf(_("  broadcast %s"), ap->sprint(&ptr->broadaddr, 1));
+ 	}
+-	printf(_(" Mask:%s\n"), ap->sprint(&ptr->netmask, 1));
++       if (ptr->flags & IFF_POINTOPOINT) {
++           printf(_("  destination %s"), ap->sprint(&ptr->dstaddr, 1));
++       }
++       printf("\n");
+     }
+ #endif
+ 
+@@ -727,29 +764,30 @@
+ 			addr6p[0], addr6p[1], addr6p[2], addr6p[3],
+ 			addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
+ 		inet6_aftype.input(1, addr6, (struct sockaddr *) &sap);
+-		printf(_("          inet6 addr: %s/%d"),
+-		 inet6_aftype.sprint((struct sockaddr *) &sap, 1), plen);
+-		printf(_(" Scope:"));
+-		switch (scope) {
+-		case 0:
+-		    printf(_("Global"));
+-		    break;
+-		case IPV6_ADDR_LINKLOCAL:
+-		    printf(_("Link"));
+-		    break;
+-		case IPV6_ADDR_SITELOCAL:
+-		    printf(_("Site"));
+-		    break;
+-		case IPV6_ADDR_COMPATv4:
+-		    printf(_("Compat"));
+-		    break;
+-		case IPV6_ADDR_LOOPBACK:
+-		    printf(_("Host"));
+-		    break;
+-		default:
+-		    printf(_("Unknown"));
++		printf(_("        %s %s  prefixlen %d"),
++			inet6_aftype.name, 
++			inet6_aftype.sprint((struct sockaddr *) &sap, 1), 
++			plen);
++		printf(_("  scopeid 0x%x"), scope);
++
++		flags[0] = '<'; flags[1] = 0;
++		if (scope & IPV6_ADDR_COMPATv4) {
++		    	strcat(flags, _("compat,"));
++		    	scope -= IPV6_ADDR_COMPATv4;
+ 		}
+-		printf("\n");
++		if (scope == 0)
++			strcat(flags, _("global,"));
++		if (scope & IPV6_ADDR_LINKLOCAL)
++			strcat(flags, _("link,"));
++		if (scope & IPV6_ADDR_SITELOCAL)
++			strcat(flags, _("site,"));
++		if (scope & IPV6_ADDR_LOOPBACK)
++			strcat(flags, _("host,"));
++		if (flags[strlen(flags)-1] == ',')
++			flags[strlen(flags)-1] = '>';
++		else
++			flags[strlen(flags)-1] = 0;
++		printf("%s\n", flags);
+ 	    }
+ 	}
+ 	fclose(f);
+@@ -762,17 +800,17 @@
+ 
+     if (ipxtype != NULL) {
+ 	if (ptr->has_ipx_bb)
+-	    printf(_("          IPX/Ethernet II addr:%s\n"),
+-		   ipxtype->sprint(&ptr->ipxaddr_bb, 1));
++	    printf(_("        %s Ethernet-II   %s\n"),
++		   ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_bb, 1));
+ 	if (ptr->has_ipx_sn)
+-	    printf(_("          IPX/Ethernet SNAP addr:%s\n"),
+-		   ipxtype->sprint(&ptr->ipxaddr_sn, 1));
++	    printf(_("        %s Ethernet-SNAP %s\n"),
++		   ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_sn, 1));
+ 	if (ptr->has_ipx_e2)
+-	    printf(_("          IPX/Ethernet 802.2 addr:%s\n"),
+-		   ipxtype->sprint(&ptr->ipxaddr_e2, 1));
++	    printf(_("        %s Ethernet802.2 %s\n"),
++		   ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e2, 1));
+ 	if (ptr->has_ipx_e3)
+-	    printf(_("          IPX/Ethernet 802.3 addr:%s\n"),
+-		   ipxtype->sprint(&ptr->ipxaddr_e3, 1));
++	    printf(_("        %s Ethernet802.3 %s\n"),
++		   ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e3, 1));
+     }
+ #endif
+ 
+@@ -781,7 +819,7 @@
+ 	ddptype = get_afntype(AF_APPLETALK);
+     if (ddptype != NULL) {
+ 	if (ptr->has_ddp)
+-	    printf(_("          EtherTalk Phase 2 addr:%s\n"), ddptype->sprint(&ptr->ddpaddr, 1));
++	    printf(_("        %s %s\n"), ddptype->name, ddptype->sprint(&ptr->ddpaddr, 1));
+     }
+ #endif
+ 
+@@ -790,53 +828,30 @@
+ 	ectype = get_afntype(AF_ECONET);
+     if (ectype != NULL) {
+ 	if (ptr->has_econet)
+-	    printf(_("          econet addr:%s\n"), ectype->sprint(&ptr->ecaddr, 1));
++	    printf(_("        %s %s\n"), ectype->name, ectype->sprint(&ptr->ecaddr, 1));
+     }
+ #endif
+ 
+-    printf("          ");
+-    /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */
+-    if (ptr->flags == 0)
+-	printf(_("[NO FLAGS] "));
+-    if (ptr->flags & IFF_UP)
+-	printf(_("UP "));
+-    if (ptr->flags & IFF_BROADCAST)
+-	printf(_("BROADCAST "));
+-    if (ptr->flags & IFF_DEBUG)
+-	printf(_("DEBUG "));
+-    if (ptr->flags & IFF_LOOPBACK)
+-	printf(_("LOOPBACK "));
+-    if (ptr->flags & IFF_POINTOPOINT)
+-	printf(_("POINTOPOINT "));
+-    if (ptr->flags & IFF_NOTRAILERS)
+-	printf(_("NOTRAILERS "));
+-    if (ptr->flags & IFF_RUNNING)
+-	printf(_("RUNNING "));
+-    if (ptr->flags & IFF_NOARP)
+-	printf(_("NOARP "));
+-    if (ptr->flags & IFF_PROMISC)
+-	printf(_("PROMISC "));
+-    if (ptr->flags & IFF_ALLMULTI)
+-	printf(_("ALLMULTI "));
+-    if (ptr->flags & IFF_SLAVE)
+-	printf(_("SLAVE "));
+-    if (ptr->flags & IFF_MASTER)
+-	printf(_("MASTER "));
+-    if (ptr->flags & IFF_MULTICAST)
+-	printf(_("MULTICAST "));
+-#ifdef HAVE_DYNAMIC
+-    if (ptr->flags & IFF_DYNAMIC)
+-	printf(_("DYNAMIC "));
+-#endif
+-    /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */
+-    printf(_(" MTU:%d  Metric:%d"),
+-	   ptr->mtu, ptr->metric ? ptr->metric : 1);
+-#ifdef SIOCSKEEPALIVE
+-    if (ptr->outfill || ptr->keepalive)
+-	printf(_("  Outfill:%d  Keepalive:%d"),
+-	       ptr->outfill, ptr->keepalive);
++    /* For some hardware types (eg Ash, ATM) we don't print the 
++       hardware address if it's null.  */
++    if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) &&
++				  hw->suppress_null_addr)))
++	printf(_("        %s %s"), hw->name, hw->print(ptr->hwaddr));
++    else
++	printf(_("        %s"), hw->name);
++    if (ptr->tx_queue_len != -1)
++    	printf(_("  txqueuelen %d"), ptr->tx_queue_len);
++    printf("  (%s)\n", hw->title);
++
++#ifdef IFF_PORTSEL
++    if (ptr->flags & IFF_PORTSEL) {
++	printf(_("        media %s"), if_port_text[ptr->map.port][0]);
++	if (ptr->flags & IFF_AUTOMEDIA)
++	    printf(_("autoselect"));
++    	printf("\n");
++    }
+ #endif
+-    printf("\n");
++
+ 
+     /* If needed, display the interface statistics. */
+ 
+@@ -845,19 +860,9 @@
+ 	 *      not for the aliases, although strictly speaking they're shared
+ 	 *      by all addresses.
+ 	 */
+-	printf("          ");
+-
+-	printf(_("RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"),
+-	       ptr->stats.rx_packets, ptr->stats.rx_errors,
+-	       ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors,
+-	       ptr->stats.rx_frame_errors);
+-	if (can_compress)
+-	    printf(_("             compressed:%lu\n"), ptr->stats.rx_compressed);
+ 
+ 	rx = ptr->stats.rx_bytes;  
+-	tx = ptr->stats.tx_bytes;
+ 	short_rx = rx * 10;  
+-	short_tx = tx * 10;
+ 	if (rx > 1125899906842624ull) {
+ 	    short_rx /= 1125899906842624ull;
+ 	    Rext = "PiB";
+@@ -874,6 +879,8 @@
+ 	    short_rx /= 1024;
+ 	    Rext = "KiB";
+ 	}
++        tx = ptr->stats.tx_bytes;
++        short_tx = tx * 10;
+ 	if (tx > 1125899906842624ull) {
+ 	    short_tx /= 1125899906842624ull;
+ 	    Text = "PiB";
+@@ -891,37 +898,50 @@
+ 	    Text = "KiB";
+ 	}
+ 
+-	printf("          ");
+-	printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"),
+-	       ptr->stats.tx_packets, ptr->stats.tx_errors,
+-	       ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors,
+-	       ptr->stats.tx_carrier_errors);
+-	printf(_("          collisions:%lu "), ptr->stats.collisions);
+-	if (can_compress)
+-	    printf(_("compressed:%lu "), ptr->stats.tx_compressed);
+-	if (ptr->tx_queue_len != -1)
+-	    printf(_("txqueuelen:%d "), ptr->tx_queue_len);
+-	printf("\n          ");
+-	printf(_("RX bytes:%llu (%lu.%lu %s)  TX bytes:%llu (%lu.%lu %s)\n"),
++	printf("        ");
++	printf(_("RX packets %llu  bytes %llu (%lu.%lu %s)\n"), 
++		ptr->stats.rx_packets, 
+ 	       rx, (unsigned long)(short_rx / 10), 
+-	       (unsigned long)(short_rx % 10), Rext, 
+-	       tx, (unsigned long)(short_tx / 10), 
+-	       (unsigned long)(short_tx % 10), Text);
++	       (unsigned long)(short_rx % 10), Rext);
++	if (can_compress) {
++  	    printf("        ");
++	    printf(_("RX compressed:%lu\n"), ptr->stats.rx_compressed);
++	}
++	printf("        ");
++	printf(_("RX errors %lu  dropped %lu  overruns %lu  frame %lu\n"),
++	       ptr->stats.rx_errors, ptr->stats.rx_dropped, 
++	       ptr->stats.rx_fifo_errors, ptr->stats.rx_frame_errors);
++
++
++	printf("        ");
++	printf(_("TX packets %llu  bytes %llu (%lu.%lu %s)\n"),
++		ptr->stats.tx_packets, 
++	        tx, (unsigned long)(short_tx / 10), 
++	        (unsigned long)(short_tx % 10), Text);
++	if (can_compress) {
++  	    printf("        ");
++	    printf(_("TX compressed %lu\n"), ptr->stats.tx_compressed);
++	}
++	printf("        ");
++	printf(_("TX errors %lu  dropped %lu overruns %lu  carrier %lu  collisions %lu\n"),
++	       ptr->stats.tx_errors,
++	       ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors,
++	       ptr->stats.tx_carrier_errors, ptr->stats.collisions);
+     }
+ 
+     if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma ||
+ 	 ptr->map.base_addr >= 0x100)) {
+-	printf("          ");
++	printf("        device ");
+ 	if (ptr->map.irq)
+-	    printf(_("Interrupt:%d "), ptr->map.irq);
++	    printf(_("interrupt %d  "), ptr->map.irq);
+ 	if (ptr->map.base_addr >= 0x100)	/* Only print devices using it for 
+ 						   I/O maps */
+-	    printf(_("Base address:0x%x "), ptr->map.base_addr);
++	    printf(_("base 0x%x  "), ptr->map.base_addr);
+ 	if (ptr->map.mem_start) {
+-	    printf(_("Memory:%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end);
++	    printf(_("memory 0x%lx-%lx  "), ptr->map.mem_start, ptr->map.mem_end);
+ 	}
+ 	if (ptr->map.dma)
+-	    printf(_("DMA chan:%x "), ptr->map.dma);
++	    printf(_("  dma 0x%x"), ptr->map.dma);
+ 	printf("\n");
+     }
+     printf("\n");
diff --git a/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb b/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
index 5a376e7..8bd30fc 100644
--- a/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
+++ b/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
@@ -17,6 +17,7 @@
            file://net-tools-1.60-sctp3-addrs.patch \
            file://0001-lib-inet6.c-INET6_rresolve-various-fixes.patch \
            file://net-tools-fix-building-with-linux-4.8.patch \
+           file://0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch \
           "
 
 # for this package we're mostly interested in tracking debian patches,
diff --git a/poky/meta/recipes-extended/pam/libpam/pam.d/common-password b/poky/meta/recipes-extended/pam/libpam/pam.d/common-password
index 3896057..52478da 100644
--- a/poky/meta/recipes-extended/pam/libpam/pam.d/common-password
+++ b/poky/meta/recipes-extended/pam/libpam/pam.d/common-password
@@ -10,13 +10,10 @@
 # The "sha512" option enables salted SHA512 passwords.  Without this option,
 # the default is Unix crypt.  Prior releases used the option "md5".
 #
-# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
-# login.defs.
-#
 # See the pam_unix manpage for other options.
 
 # here are the per-package modules (the "Primary" block)
-password	[success=1 default=ignore]	pam_unix.so obscure sha512
+password	[success=1 default=ignore]	pam_unix.so sha512
 # here's the fallback if no module succeeds
 password	requisite			pam_deny.so
 # prime the stack with a positive return value if there isn't one already;
diff --git a/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb b/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
index 79fc8b8..a8c1539 100644
--- a/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
+++ b/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
@@ -14,9 +14,6 @@
 # can add custom users/groups for recipes that use inherit useradd.
 SRC_URI = "file://login.defs_shadow-sysroot"
 
-SRC_URI[md5sum] = "b8608d8294ac88974f27b20f991c0e79"
-SRC_URI[sha256sum] = "633f5bb4ea0c88c55f3642c97f9d25cbef74f82e0b4cf8d54e7ad6f9f9caa778"
-
 S = "${WORKDIR}"
 
 do_install() {
