diff --git a/poky/meta/recipes-extended/bzip2/bzip2/configure.ac b/poky/meta/recipes-extended/bzip2/bzip2/configure.ac
index e2bf1bf..b8abade 100644
--- a/poky/meta/recipes-extended/bzip2/bzip2/configure.ac
+++ b/poky/meta/recipes-extended/bzip2/bzip2/configure.ac
@@ -1,6 +1,6 @@
 AC_PREREQ([2.57])
 
-AC_INIT(bzip2, 1.0.6)
+AC_INIT(bzip2, %BZIP2_VERSION%)
 AM_INIT_AUTOMAKE(foreign)
 AM_MAINTAINER_MODE
 
diff --git a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
index 73d933a..8e9b779 100644
--- a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
+++ b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
@@ -16,7 +16,6 @@
 SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269"
 
 UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/"
-UPSTREAM_VERSION_UNKNOWN = "1"
 
 PACKAGES =+ "libbz2"
 
@@ -30,6 +29,10 @@
 #install binaries to bzip2-native under sysroot for replacement-native
 EXTRA_OECONF_append_class-native = " --bindir=${STAGING_BINDIR_NATIVE}/${PN}"
 
+do_configure_prepend () {
+    sed -i -e "s|%BZIP2_VERSION%|${PV}|" ${S}/configure.ac
+}
+
 do_install_ptest () {
 	sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile
 }
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 7a0e38a..7c5d4f9 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
+++ b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
@@ -1,4 +1,4 @@
-From 2ca4c2492c4a06b28012e3e1033d10aa48f153b4 Mon Sep 17 00:00:00 2001
+From f8333f7759717b4d163cfe8e3ef8861c5a667324 Mon Sep 17 00:00:00 2001
 From: Tudor Florea <tudor.florea@enea.com>
 Date: Wed, 28 May 2014 18:59:54 +0200
 Subject: [PATCH] ethtool: use serial-tests config needed by ptest.
@@ -9,16 +9,17 @@
 Signed-off-by: Tudor Florea <tudor.florea@enea.com>
 Upstream-Status: Inappropriate
 (default automake behavior incompatible with ptest)
+
 ---
  configure.ac | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 2941a65..b0a1896 100644
+index 2127fdb..4910e6f 100644
 --- 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.1, netdev@vger.kernel.org)
+ AC_INIT(ethtool, 5.2, netdev@vger.kernel.org)
  AC_PREREQ(2.52)
  AC_CONFIG_SRCDIR([ethtool.c])
 -AM_INIT_AUTOMAKE([gnu])
@@ -26,6 +27,3 @@
  AC_CONFIG_HEADERS([ethtool-config.h])
  
  AM_MAINTAINER_MODE
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.1.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.2.bb
similarity index 87%
rename from poky/meta/recipes-extended/ethtool/ethtool_5.1.bb
rename to poky/meta/recipes-extended/ethtool/ethtool_5.2.bb
index d379d93..e9759bd 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool_5.1.bb
+++ b/poky/meta/recipes-extended/ethtool/ethtool_5.2.bb
@@ -11,8 +11,8 @@
            file://avoid_parallel_tests.patch \
            "
 
-SRC_URI[md5sum] = "5d3aad86aec055348a37e867695a744a"
-SRC_URI[sha256sum] = "4edb1fa4d7cf5667a5958d4213f61609f96d02cda90d2b6ec440561f8f8ffbf2"
+SRC_URI[md5sum] = "79cff0d4af62b030ad28be90414b5c4a"
+SRC_URI[sha256sum] = "8ad6cb30f6e1767d9d23a5cb5f606f3b51f83e85ebf0153c1506194f6709e90b"
 
 inherit autotools ptest bash-completion
 
diff --git a/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch b/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch
new file mode 100644
index 0000000..348a61d
--- /dev/null
+++ b/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch
@@ -0,0 +1,1228 @@
+From 6cfa9f8126c1d6ec26f120d273e714fb19108873 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 4 Aug 2019 16:32:41 -0700
+Subject: [PATCH] Include config.h
+
+This helps avoid the include conflicts where <stdlib.h> is including
+<math.h> and since -I./lib is used and a local math.h wrapper is
+residing in there, the build breaks since stdlib.h really wants the
+standard system math.h to be included, this ensures that right macros
+are predefined and included before stdlib.h is included
+
+fixes
+In file included from src/libs/libgroff/assert.cpp:20:
+In file included from TOPDIR/build/tmp/work/aarch64-yoe-linux-musl/groff/1.22.4-r0/recipe-sysroot/usr/include/c++/v1/stdlib.h:100:
+./lib/math.h:38:3: error: "Please include config.h first."
+ #error "Please include config.h first."
+  ^
+./lib/math.h:40:1: error: unknown type name '_GL_INLINE_HEADER_BEGIN'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libs/libgroff/assert.cpp  |   4 +
+ src/libs/libgroff/curtime.cpp |   4 +
+ src/libs/libgroff/device.cpp  |   4 +
+ src/libs/libgroff/error.cpp   |   4 +
+ src/libs/libgroff/fatal.cpp   |   4 +
+ src/libs/libgroff/string.cpp  |   4 +
+ src/libs/libgroff/strsave.cpp |   4 +
+ src/preproc/eqn/eqn.cpp       | 450 ++++++++++++++++++----------------
+ src/preproc/eqn/eqn.hpp       |  12 +-
+ src/preproc/eqn/eqn.ypp       |   4 +
+ src/preproc/eqn/other.cpp     |   4 +
+ src/preproc/eqn/text.cpp      |   4 +
+ src/preproc/pic/object.cpp    |   4 +
+ 13 files changed, 285 insertions(+), 221 deletions(-)
+
+diff --git a/src/libs/libgroff/assert.cpp b/src/libs/libgroff/assert.cpp
+index aceed05..97780d6 100644
+--- a/src/libs/libgroff/assert.cpp
++++ b/src/libs/libgroff/assert.cpp
+@@ -16,6 +16,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "assert.h"
+diff --git a/src/libs/libgroff/curtime.cpp b/src/libs/libgroff/curtime.cpp
+index 72fe067..9ddba08 100644
+--- a/src/libs/libgroff/curtime.cpp
++++ b/src/libs/libgroff/curtime.cpp
+@@ -15,6 +15,10 @@ for more details.
+ The GNU General Public License version 2 (GPL2) is available in the
+ internet at <http://www.gnu.org/licenses/gpl-2.0.txt>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <errno.h>
+ #include <limits.h>
+ #include <stdlib.h>
+diff --git a/src/libs/libgroff/device.cpp b/src/libs/libgroff/device.cpp
+index 0d28b85..c211f85 100644
+--- a/src/libs/libgroff/device.cpp
++++ b/src/libs/libgroff/device.cpp
+@@ -17,6 +17,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <stdlib.h>
+ #include "device.h"
+ #include "defs.h"
+diff --git a/src/libs/libgroff/error.cpp b/src/libs/libgroff/error.cpp
+index 9a18803..7b63d3d 100644
+--- a/src/libs/libgroff/error.cpp
++++ b/src/libs/libgroff/error.cpp
+@@ -17,6 +17,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/src/libs/libgroff/fatal.cpp b/src/libs/libgroff/fatal.cpp
+index c0dcb35..fd6003e 100644
+--- a/src/libs/libgroff/fatal.cpp
++++ b/src/libs/libgroff/fatal.cpp
+@@ -16,6 +16,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <stdlib.h>
+ 
+ #define FATAL_ERROR_EXIT_CODE 3
+diff --git a/src/libs/libgroff/string.cpp b/src/libs/libgroff/string.cpp
+index 46c015c..449f3a6 100644
+--- a/src/libs/libgroff/string.cpp
++++ b/src/libs/libgroff/string.cpp
+@@ -17,6 +17,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <stdlib.h>
+ 
+ #include "lib.h"
+diff --git a/src/libs/libgroff/strsave.cpp b/src/libs/libgroff/strsave.cpp
+index f95c05e..d875045 100644
+--- a/src/libs/libgroff/strsave.cpp
++++ b/src/libs/libgroff/strsave.cpp
+@@ -17,6 +17,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <string.h>
+ #include <stdlib.h>
+ 
+diff --git a/src/preproc/eqn/eqn.cpp b/src/preproc/eqn/eqn.cpp
+index 4ede465..fdd9484 100644
+--- a/src/preproc/eqn/eqn.cpp
++++ b/src/preproc/eqn/eqn.cpp
+@@ -1,8 +1,9 @@
+-/* A Bison parser, made by GNU Bison 3.2.  */
++/* A Bison parser, made by GNU Bison 3.4.1.  */
+ 
+ /* Bison implementation for Yacc-like parsers in C
+ 
+-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
++   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
++   Inc.
+ 
+    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
+@@ -47,7 +48,7 @@
+ #define YYBISON 1
+ 
+ /* Bison version.  */
+-#define YYBISON_VERSION "3.2"
++#define YYBISON_VERSION "3.4.1"
+ 
+ /* Skeleton name.  */
+ #define YYSKELETON_NAME "yacc.c"
+@@ -65,7 +66,11 @@
+ 
+ 
+ /* First part of user prologue.  */
+-#line 18 "../src/preproc/eqn/eqn.ypp" /* yacc.c:338  */
++#line 18 "src/preproc/eqn/eqn.ypp"
++
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
+ 
+ #include <stdio.h>
+ #include <string.h>
+@@ -77,7 +82,8 @@ extern int non_empty_flag;
+ int yylex();
+ void yyerror(const char *);
+ 
+-#line 81 "src/preproc/eqn/eqn.cpp" /* yacc.c:338  */
++#line 86 "src/preproc/eqn/eqn.cpp"
++
+ # ifndef YY_NULLPTR
+ #  if defined __cplusplus
+ #   if 201103L <= __cplusplus
+@@ -98,8 +104,8 @@ void yyerror(const char *);
+ # define YYERROR_VERBOSE 0
+ #endif
+ 
+-/* In a future release of Bison, this section will be replaced
+-   by #include "y.tab.h".  */
++/* Use api.header.include to #include this header
++   instead of duplicating it here.  */
+ #ifndef YY_YY_SRC_PREPROC_EQN_EQN_HPP_INCLUDED
+ # define YY_YY_SRC_PREPROC_EQN_EQN_HPP_INCLUDED
+ /* Debug traces.  */
+@@ -237,10 +243,9 @@ extern int yydebug;
+ 
+ /* Value type.  */
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+-
+ union YYSTYPE
+ {
+-#line 30 "../src/preproc/eqn/eqn.ypp" /* yacc.c:353  */
++#line 34 "src/preproc/eqn/eqn.ypp"
+ 
+ 	char *str;
+ 	box *b;
+@@ -249,9 +254,9 @@ union YYSTYPE
+ 	int n;
+ 	column *col;
+ 
+-#line 253 "src/preproc/eqn/eqn.cpp" /* yacc.c:353  */
+-};
++#line 258 "src/preproc/eqn/eqn.cpp"
+ 
++};
+ typedef union YYSTYPE YYSTYPE;
+ # define YYSTYPE_IS_TRIVIAL 1
+ # define YYSTYPE_IS_DECLARED 1
+@@ -366,6 +371,8 @@ typedef short yytype_int16;
+ #endif
+ 
+ 
++#define YY_ASSERT(E) ((void) (0 && (E)))
++
+ #if ! defined yyoverflow || YYERROR_VERBOSE
+ 
+ /* The parser invokes alloca or malloc; define the necessary symbols.  */
+@@ -508,16 +515,16 @@ union yyalloc
+ /* YYNSTATES -- Number of states.  */
+ #define YYNSTATES  142
+ 
+-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+-   by yylex, with out-of-bounds checking.  */
+ #define YYUNDEFTOK  2
+ #define YYMAXUTOK   315
+ 
++/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
++   as returned by yylex, with out-of-bounds checking.  */
+ #define YYTRANSLATE(YYX)                                                \
+   ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+ 
+ /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+-   as returned by yylex, without out-of-bounds checking.  */
++   as returned by yylex.  */
+ static const yytype_uint8 yytranslate[] =
+ {
+        0,     2,     2,     2,     2,     2,     2,     2,     2,    63,
+@@ -558,14 +565,14 @@ static const yytype_uint8 yytranslate[] =
+   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+ static const yytype_uint16 yyrline[] =
+ {
+-       0,   121,   121,   123,   128,   130,   141,   143,   145,   150,
+-     152,   154,   156,   158,   163,   165,   167,   169,   174,   176,
+-     181,   183,   185,   190,   192,   194,   196,   198,   200,   202,
+-     204,   206,   208,   210,   212,   214,   216,   218,   220,   222,
+-     224,   226,   228,   230,   232,   234,   236,   238,   240,   242,
+-     244,   246,   248,   250,   252,   254,   259,   269,   271,   276,
+-     278,   283,   285,   290,   292,   297,   299,   304,   306,   308,
+-     310,   314,   316,   321,   323,   325
++       0,   125,   125,   127,   132,   134,   145,   147,   149,   154,
++     156,   158,   160,   162,   167,   169,   171,   173,   178,   180,
++     185,   187,   189,   194,   196,   198,   200,   202,   204,   206,
++     208,   210,   212,   214,   216,   218,   220,   222,   224,   226,
++     228,   230,   232,   234,   236,   238,   240,   242,   244,   246,
++     248,   250,   252,   254,   256,   258,   263,   273,   275,   280,
++     282,   287,   289,   294,   296,   301,   303,   308,   310,   312,
++     314,   318,   320,   325,   327,   329
+ };
+ #endif
+ 
+@@ -818,22 +825,22 @@ static const yytype_uint8 yyr2[] =
+ 
+ #define YYRECOVERING()  (!!yyerrstatus)
+ 
+-#define YYBACKUP(Token, Value)                                  \
+-do                                                              \
+-  if (yychar == YYEMPTY)                                        \
+-    {                                                           \
+-      yychar = (Token);                                         \
+-      yylval = (Value);                                         \
+-      YYPOPSTACK (yylen);                                       \
+-      yystate = *yyssp;                                         \
+-      goto yybackup;                                            \
+-    }                                                           \
+-  else                                                          \
+-    {                                                           \
+-      yyerror (YY_("syntax error: cannot back up")); \
+-      YYERROR;                                                  \
+-    }                                                           \
+-while (0)
++#define YYBACKUP(Token, Value)                                    \
++  do                                                              \
++    if (yychar == YYEMPTY)                                        \
++      {                                                           \
++        yychar = (Token);                                         \
++        yylval = (Value);                                         \
++        YYPOPSTACK (yylen);                                       \
++        yystate = *yyssp;                                         \
++        goto yybackup;                                            \
++      }                                                           \
++    else                                                          \
++      {                                                           \
++        yyerror (YY_("syntax error: cannot back up")); \
++        YYERROR;                                                  \
++      }                                                           \
++  while (0)
+ 
+ /* Error token number */
+ #define YYTERROR        1
+@@ -948,7 +955,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
+       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
+       yy_symbol_print (stderr,
+                        yystos[yyssp[yyi + 1 - yynrhs]],
+-                       &(yyvsp[(yyi + 1) - (yynrhs)])
++                       &yyvsp[(yyi + 1) - (yynrhs)]
+                                               );
+       YYFPRINTF (stderr, "\n");
+     }
+@@ -1052,7 +1059,10 @@ yytnamerr (char *yyres, const char *yystr)
+           case '\\':
+             if (*++yyp != '\\')
+               goto do_not_strip_quotes;
+-            /* Fall through.  */
++            else
++              goto append;
++
++          append:
+           default:
+             if (yyres)
+               yyres[yyn] = *yyp;
+@@ -1148,10 +1158,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+                 yyarg[yycount++] = yytname[yyx];
+                 {
+                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+-                  if (! (yysize <= yysize1
+-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
++                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
++                    yysize = yysize1;
++                  else
+                     return 2;
+-                  yysize = yysize1;
+                 }
+               }
+         }
+@@ -1175,9 +1185,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ 
+   {
+     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
++    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
++      yysize = yysize1;
++    else
+       return 2;
+-    yysize = yysize1;
+   }
+ 
+   if (*yymsg_alloc < yysize)
+@@ -1303,23 +1314,33 @@ yyparse (void)
+   yychar = YYEMPTY; /* Cause a token to be read.  */
+   goto yysetstate;
+ 
++
+ /*------------------------------------------------------------.
+-| yynewstate -- Push a new state, which is found in yystate.  |
++| yynewstate -- push a new state, which is found in yystate.  |
+ `------------------------------------------------------------*/
+- yynewstate:
++yynewstate:
+   /* In all cases, when you get here, the value and location stacks
+      have just been pushed.  So pushing a state here evens the stacks.  */
+   yyssp++;
+ 
+- yysetstate:
++
++/*--------------------------------------------------------------------.
++| yynewstate -- set current state (the top of the stack) to yystate.  |
++`--------------------------------------------------------------------*/
++yysetstate:
++  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
++  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
+   *yyssp = (yytype_int16) yystate;
+ 
+   if (yyss + yystacksize - 1 <= yyssp)
++#if !defined yyoverflow && !defined YYSTACK_RELOCATE
++    goto yyexhaustedlab;
++#else
+     {
+       /* Get the current used size of the three stacks, in elements.  */
+       YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
+ 
+-#ifdef yyoverflow
++# if defined yyoverflow
+       {
+         /* Give user a chance to reallocate the stack.  Use copies of
+            these so that the &'s don't force the real ones into
+@@ -1338,10 +1359,7 @@ yyparse (void)
+         yyss = yyss1;
+         yyvs = yyvs1;
+       }
+-#else /* no yyoverflow */
+-# ifndef YYSTACK_RELOCATE
+-      goto yyexhaustedlab;
+-# else
++# else /* defined YYSTACK_RELOCATE */
+       /* Extend the stack our own way.  */
+       if (YYMAXDEPTH <= yystacksize)
+         goto yyexhaustedlab;
+@@ -1357,12 +1375,11 @@ yyparse (void)
+           goto yyexhaustedlab;
+         YYSTACK_RELOCATE (yyss_alloc, yyss);
+         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+-#  undef YYSTACK_RELOCATE
++# undef YYSTACK_RELOCATE
+         if (yyss1 != yyssa)
+           YYSTACK_FREE (yyss1);
+       }
+ # endif
+-#endif /* no yyoverflow */
+ 
+       yyssp = yyss + yysize - 1;
+       yyvsp = yyvs + yysize - 1;
+@@ -1373,19 +1390,18 @@ yyparse (void)
+       if (yyss + yystacksize - 1 <= yyssp)
+         YYABORT;
+     }
+-
+-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
++#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
+ 
+   if (yystate == YYFINAL)
+     YYACCEPT;
+ 
+   goto yybackup;
+ 
++
+ /*-----------.
+ | yybackup.  |
+ `-----------*/
+ yybackup:
+-
+   /* Do appropriate processing given the current state.  Read a
+      lookahead token if we need one and don't already have one.  */
+ 
+@@ -1443,7 +1459,6 @@ yybackup:
+   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+   *++yyvsp = yylval;
+   YY_IGNORE_MAYBE_UNINITIALIZED_END
+-
+   goto yynewstate;
+ 
+ 
+@@ -1458,7 +1473,7 @@ yydefault:
+ 
+ 
+ /*-----------------------------.
+-| yyreduce -- Do a reduction.  |
++| yyreduce -- do a reduction.  |
+ `-----------------------------*/
+ yyreduce:
+   /* yyn is the number of a rule to reduce with.  */
+@@ -1478,20 +1493,20 @@ yyreduce:
+   YY_REDUCE_PRINT (yyn);
+   switch (yyn)
+     {
+-        case 3:
+-#line 124 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++  case 3:
++#line 128 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].b)->top_level(); non_empty_flag = 1; }
+-#line 1485 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1500 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 4:
+-#line 129 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 133 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = (yyvsp[0].b); }
+-#line 1491 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1506 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 5:
+-#line 131 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 135 "src/preproc/eqn/eqn.ypp"
+     {
+ 		  list_box *lb = (yyvsp[-1].b)->to_list_box();
+ 		  if (!lb)
+@@ -1499,436 +1514,437 @@ yyreduce:
+ 		  lb->append((yyvsp[0].b));
+ 		  (yyval.b) = lb;
+ 		}
+-#line 1503 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1518 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 6:
+-#line 142 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 146 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = (yyvsp[0].b); }
+-#line 1509 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1524 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 7:
+-#line 144 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 148 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_mark_box((yyvsp[0].b)); }
+-#line 1515 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1530 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 8:
+-#line 146 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 150 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_lineup_box((yyvsp[0].b)); }
+-#line 1521 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1536 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 9:
+-#line 151 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 155 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = (yyvsp[0].b); }
+-#line 1527 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1542 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 10:
+-#line 153 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 157 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_limit_box((yyvsp[-2].b), 0, (yyvsp[0].b)); }
+-#line 1533 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1548 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 11:
+-#line 155 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 159 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_limit_box((yyvsp[-2].b), (yyvsp[0].b), 0); }
+-#line 1539 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1554 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 12:
+-#line 157 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 161 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_limit_box((yyvsp[-4].b), (yyvsp[-2].b), (yyvsp[0].b)); }
+-#line 1545 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1560 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 13:
+-#line 159 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 163 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_limit_box((yyvsp[-4].b), make_limit_box((yyvsp[-2].b), (yyvsp[0].b), 0), 0); }
+-#line 1551 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1566 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 14:
+-#line 164 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 168 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = (yyvsp[0].b); }
+-#line 1557 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1572 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 15:
+-#line 166 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 170 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_sqrt_box((yyvsp[0].b)); }
+-#line 1563 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1578 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 16:
+-#line 168 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 172 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_over_box((yyvsp[-2].b), (yyvsp[0].b)); }
+-#line 1569 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1584 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 17:
+-#line 170 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 174 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_small_over_box((yyvsp[-2].b), (yyvsp[0].b)); }
+-#line 1575 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1590 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 18:
+-#line 175 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 179 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = (yyvsp[0].b); }
+-#line 1581 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1596 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 19:
+-#line 177 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 181 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_script_box((yyvsp[-2].b), 0, (yyvsp[0].b)); }
+-#line 1587 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1602 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 20:
+-#line 182 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 186 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = (yyvsp[0].b); }
+-#line 1593 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1608 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 21:
+-#line 184 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 188 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_script_box((yyvsp[-2].b), (yyvsp[0].b), 0); }
+-#line 1599 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1614 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 22:
+-#line 186 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 190 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_script_box((yyvsp[-4].b), (yyvsp[-2].b), (yyvsp[0].b)); }
+-#line 1605 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1620 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 23:
+-#line 191 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 195 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = split_text((yyvsp[0].str)); }
+-#line 1611 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1626 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 24:
+-#line 193 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 197 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new quoted_text_box((yyvsp[0].str)); }
+-#line 1617 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1632 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 25:
+-#line 195 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 199 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = split_text((yyvsp[0].str)); }
+-#line 1623 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1638 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 26:
+-#line 197 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 201 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new quoted_text_box((yyvsp[0].str)); }
+-#line 1629 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1644 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 27:
+-#line 199 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 203 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new half_space_box; }
+-#line 1635 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1650 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 28:
+-#line 201 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 205 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new space_box; }
+-#line 1641 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1656 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 29:
+-#line 203 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 207 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new tab_box; }
+-#line 1647 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1662 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 30:
+-#line 205 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 209 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = (yyvsp[-1].b); }
+-#line 1653 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1668 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 31:
+-#line 207 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 211 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].pb)->set_alignment(CENTER_ALIGN); (yyval.b) = (yyvsp[0].pb); }
+-#line 1659 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1674 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 32:
+-#line 209 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 213 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].pb)->set_alignment(LEFT_ALIGN); (yyval.b) = (yyvsp[0].pb); }
+-#line 1665 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1680 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 33:
+-#line 211 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 215 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].pb)->set_alignment(RIGHT_ALIGN); (yyval.b) = (yyvsp[0].pb); }
+-#line 1671 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1686 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 34:
+-#line 213 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 217 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].pb)->set_alignment(CENTER_ALIGN); (yyval.b) = (yyvsp[0].pb); }
+-#line 1677 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1692 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 35:
+-#line 215 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 219 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = (yyvsp[-1].mb); }
+-#line 1683 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1698 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 36:
+-#line 217 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 221 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_delim_box((yyvsp[-3].str), (yyvsp[-2].b), (yyvsp[0].str)); }
+-#line 1689 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1704 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 37:
+-#line 219 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 223 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_delim_box((yyvsp[-1].str), (yyvsp[0].b), 0); }
+-#line 1695 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1710 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 38:
+-#line 221 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 225 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_overline_box((yyvsp[-1].b)); }
+-#line 1701 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1716 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 39:
+-#line 223 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 227 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_underline_box((yyvsp[-1].b)); }
+-#line 1707 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1722 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 40:
+-#line 225 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 229 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_prime_box((yyvsp[-1].b)); }
+-#line 1713 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1728 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 41:
+-#line 227 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 231 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_accent_box((yyvsp[-2].b), (yyvsp[0].b)); }
+-#line 1719 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1734 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 42:
+-#line 229 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 233 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_uaccent_box((yyvsp[-2].b), (yyvsp[0].b)); }
+-#line 1725 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1740 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 43:
+-#line 231 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 235 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new font_box(strsave(get_grfont()), (yyvsp[0].b)); }
+-#line 1731 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1746 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 44:
+-#line 233 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 237 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new font_box(strsave(get_gbfont()), (yyvsp[0].b)); }
+-#line 1737 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1752 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 45:
+-#line 235 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 239 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new font_box(strsave(get_gfont()), (yyvsp[0].b)); }
+-#line 1743 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1758 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 46:
+-#line 237 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 241 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new fat_box((yyvsp[0].b)); }
+-#line 1749 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1764 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 47:
+-#line 239 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 243 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new font_box((yyvsp[-1].str), (yyvsp[0].b)); }
+-#line 1755 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1770 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 48:
+-#line 241 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 245 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new size_box((yyvsp[-1].str), (yyvsp[0].b)); }
+-#line 1761 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1776 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 49:
+-#line 243 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 247 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new hmotion_box((yyvsp[-1].n), (yyvsp[0].b)); }
+-#line 1767 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1782 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 50:
+-#line 245 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 249 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new hmotion_box(-(yyvsp[-1].n), (yyvsp[0].b)); }
+-#line 1773 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1788 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 51:
+-#line 247 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 251 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new vmotion_box((yyvsp[-1].n), (yyvsp[0].b)); }
+-#line 1779 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1794 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 52:
+-#line 249 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 253 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new vmotion_box(-(yyvsp[-1].n), (yyvsp[0].b)); }
+-#line 1785 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1800 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 53:
+-#line 251 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 255 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].b)->set_spacing_type((yyvsp[-1].str)); (yyval.b) = (yyvsp[0].b); }
+-#line 1791 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1806 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 54:
+-#line 253 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 257 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = new vcenter_box((yyvsp[0].b)); }
+-#line 1797 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1812 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 55:
+-#line 255 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 259 "src/preproc/eqn/eqn.ypp"
+     { (yyval.b) = make_special_box((yyvsp[-1].str), (yyvsp[0].b)); }
+-#line 1803 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1818 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 56:
+-#line 260 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 264 "src/preproc/eqn/eqn.ypp"
+     {
+ 		  int n;
+ 		  if (sscanf((yyvsp[0].str), "%d", &n) == 1)
+ 		    (yyval.n) = n;
+ 		  a_delete (yyvsp[0].str);
+ 		}
+-#line 1814 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1829 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 57:
+-#line 270 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 274 "src/preproc/eqn/eqn.ypp"
+     { (yyval.pb) = new pile_box((yyvsp[0].b)); }
+-#line 1820 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1835 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 58:
+-#line 272 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 276 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[-2].pb)->append((yyvsp[0].b)); (yyval.pb) = (yyvsp[-2].pb); }
+-#line 1826 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1841 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 59:
+-#line 277 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 281 "src/preproc/eqn/eqn.ypp"
+     { (yyval.pb) = (yyvsp[-1].pb); }
+-#line 1832 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1847 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 60:
+-#line 279 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 283 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[-1].pb)->set_space((yyvsp[-3].n)); (yyval.pb) = (yyvsp[-1].pb); }
+-#line 1838 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1853 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 61:
+-#line 284 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 288 "src/preproc/eqn/eqn.ypp"
+     { (yyval.mb) = new matrix_box((yyvsp[0].col)); }
+-#line 1844 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1859 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 62:
+-#line 286 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 290 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[-1].mb)->append((yyvsp[0].col)); (yyval.mb) = (yyvsp[-1].mb); }
+-#line 1850 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1865 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 63:
+-#line 291 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 295 "src/preproc/eqn/eqn.ypp"
+     { (yyval.col) = new column((yyvsp[0].b)); }
+-#line 1856 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1871 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 64:
+-#line 293 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 297 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[-2].col)->append((yyvsp[0].b)); (yyval.col) = (yyvsp[-2].col); }
+-#line 1862 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1877 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 65:
+-#line 298 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 302 "src/preproc/eqn/eqn.ypp"
+     { (yyval.col) = (yyvsp[-1].col); }
+-#line 1868 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1883 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 66:
+-#line 300 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 304 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[-1].col)->set_space((yyvsp[-3].n)); (yyval.col) = (yyvsp[-1].col); }
+-#line 1874 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1889 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 67:
+-#line 305 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 309 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].col)->set_alignment(CENTER_ALIGN); (yyval.col) = (yyvsp[0].col); }
+-#line 1880 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1895 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 68:
+-#line 307 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 311 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].col)->set_alignment(LEFT_ALIGN); (yyval.col) = (yyvsp[0].col); }
+-#line 1886 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1901 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 69:
+-#line 309 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 313 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].col)->set_alignment(RIGHT_ALIGN); (yyval.col) = (yyvsp[0].col); }
+-#line 1892 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1907 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 70:
+-#line 311 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 315 "src/preproc/eqn/eqn.ypp"
+     { (yyvsp[0].col)->set_alignment(CENTER_ALIGN); (yyval.col) = (yyvsp[0].col); }
+-#line 1898 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1913 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 71:
+-#line 315 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 319 "src/preproc/eqn/eqn.ypp"
+     { (yyval.str) = (yyvsp[0].str); }
+-#line 1904 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1919 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 72:
+-#line 317 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 321 "src/preproc/eqn/eqn.ypp"
+     { (yyval.str) = (yyvsp[0].str); }
+-#line 1910 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1925 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 73:
+-#line 322 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 326 "src/preproc/eqn/eqn.ypp"
+     { (yyval.str) = (yyvsp[0].str); }
+-#line 1916 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1931 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 74:
+-#line 324 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 328 "src/preproc/eqn/eqn.ypp"
+     { (yyval.str) = strsave("{"); }
+-#line 1922 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1937 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+   case 75:
+-#line 326 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1645  */
++#line 330 "src/preproc/eqn/eqn.ypp"
+     { (yyval.str) = strsave("}"); }
+-#line 1928 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1943 "src/preproc/eqn/eqn.cpp"
+     break;
+ 
+ 
+-#line 1932 "src/preproc/eqn/eqn.cpp" /* yacc.c:1645  */
++#line 1947 "src/preproc/eqn/eqn.cpp"
++
+       default: break;
+     }
+   /* User semantic actions sometimes alter yychar, and that requires
+@@ -2042,12 +2058,10 @@ yyerrlab:
+ | yyerrorlab -- error raised explicitly by YYERROR.  |
+ `---------------------------------------------------*/
+ yyerrorlab:
+-
+-  /* Pacify compilers like GCC when the user code never invokes
+-     YYERROR and the label yyerrorlab therefore never appears in user
+-     code.  */
+-  if (/*CONSTCOND*/ 0)
+-     goto yyerrorlab;
++  /* Pacify compilers when the user code never invokes YYERROR and the
++     label yyerrorlab therefore never appears in user code.  */
++  if (0)
++    YYERROR;
+ 
+   /* Do not reclaim the symbols of the rule whose action triggered
+      this YYERROR.  */
+@@ -2109,6 +2123,7 @@ yyacceptlab:
+   yyresult = 0;
+   goto yyreturn;
+ 
++
+ /*-----------------------------------.
+ | yyabortlab -- YYABORT comes here.  |
+ `-----------------------------------*/
+@@ -2116,6 +2131,7 @@ yyabortlab:
+   yyresult = 1;
+   goto yyreturn;
+ 
++
+ #if !defined yyoverflow || YYERROR_VERBOSE
+ /*-------------------------------------------------.
+ | yyexhaustedlab -- memory exhaustion comes here.  |
+@@ -2126,6 +2142,10 @@ yyexhaustedlab:
+   /* Fall through.  */
+ #endif
+ 
++
++/*-----------------------------------------------------.
++| yyreturn -- parsing is finished, return the result.  |
++`-----------------------------------------------------*/
+ yyreturn:
+   if (yychar != YYEMPTY)
+     {
+@@ -2155,5 +2175,5 @@ yyreturn:
+ #endif
+   return yyresult;
+ }
+-#line 329 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1903  */
++#line 333 "src/preproc/eqn/eqn.ypp"
+ 
+diff --git a/src/preproc/eqn/eqn.hpp b/src/preproc/eqn/eqn.hpp
+index 32a32a5..9a092c1 100644
+--- a/src/preproc/eqn/eqn.hpp
++++ b/src/preproc/eqn/eqn.hpp
+@@ -1,8 +1,9 @@
+-/* A Bison parser, made by GNU Bison 3.2.  */
++/* A Bison parser, made by GNU Bison 3.4.1.  */
+ 
+ /* Bison interface for Yacc-like parsers in C
+ 
+-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
++   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
++   Inc.
+ 
+    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
+@@ -170,10 +171,9 @@ extern int yydebug;
+ 
+ /* Value type.  */
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+-
+ union YYSTYPE
+ {
+-#line 30 "../src/preproc/eqn/eqn.ypp" /* yacc.c:1906  */
++#line 34 "src/preproc/eqn/eqn.ypp"
+ 
+ 	char *str;
+ 	box *b;
+@@ -182,9 +182,9 @@ union YYSTYPE
+ 	int n;
+ 	column *col;
+ 
+-#line 186 "src/preproc/eqn/eqn.hpp" /* yacc.c:1906  */
+-};
++#line 186 "src/preproc/eqn/eqn.hpp"
+ 
++};
+ typedef union YYSTYPE YYSTYPE;
+ # define YYSTYPE_IS_TRIVIAL 1
+ # define YYSTYPE_IS_DECLARED 1
+diff --git a/src/preproc/eqn/eqn.ypp b/src/preproc/eqn/eqn.ypp
+index fb318c3..b7b647e 100644
+--- a/src/preproc/eqn/eqn.ypp
++++ b/src/preproc/eqn/eqn.ypp
+@@ -16,6 +16,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ %{
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
+diff --git a/src/preproc/eqn/other.cpp b/src/preproc/eqn/other.cpp
+index 8db993f..38db396 100644
+--- a/src/preproc/eqn/other.cpp
++++ b/src/preproc/eqn/other.cpp
+@@ -17,6 +17,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <stdlib.h>
+ 
+ #include "eqn.h"
+diff --git a/src/preproc/eqn/text.cpp b/src/preproc/eqn/text.cpp
+index f3d06f9..3b244d5 100644
+--- a/src/preproc/eqn/text.cpp
++++ b/src/preproc/eqn/text.cpp
+@@ -17,6 +17,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <ctype.h>
+ #include <stdlib.h>
+ #include "eqn.h"
+diff --git a/src/preproc/pic/object.cpp b/src/preproc/pic/object.cpp
+index d8ba610..f26a831 100644
+--- a/src/preproc/pic/object.cpp
++++ b/src/preproc/pic/object.cpp
+@@ -17,6 +17,10 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+ 
++#if HAVE_CONFIG_H
++# include <config.h>
++#endif
++
+ #include <stdlib.h>
+ 
+ #include "pic.h"
+-- 
+2.22.0
+
diff --git a/poky/meta/recipes-extended/groff/groff_1.22.4.bb b/poky/meta/recipes-extended/groff/groff_1.22.4.bb
index a190230..082597f 100644
--- a/poky/meta/recipes-extended/groff/groff_1.22.4.bb
+++ b/poky/meta/recipes-extended/groff/groff_1.22.4.bb
@@ -11,6 +11,7 @@
 	file://0001-replace-perl-w-with-use-warnings.patch \
 	file://groff-not-search-fonts-on-build-host.patch \
 	file://0001-support-musl.patch \
+	file://0001-Include-config.h.patch \
 "
 
 SRC_URI[md5sum] = "08fb04335e2f5e73f23ea4c3adbf0c5f"
diff --git a/poky/meta/recipes-extended/gzip/gzip_1.10.bb b/poky/meta/recipes-extended/gzip/gzip_1.10.bb
index 6a5b245..5ab99d0 100644
--- a/poky/meta/recipes-extended/gzip/gzip_1.10.bb
+++ b/poky/meta/recipes-extended/gzip/gzip_1.10.bb
@@ -12,7 +12,7 @@
 
 PROVIDES_append_class-native = " gzip-replacement-native"
 
-RDEPENDS_${PN}-ptest += "make"
+RDEPENDS_${PN}-ptest += "make perl perl-ptest grep diffutils"
 
 BBCLASSEXTEND = "native"
 
diff --git a/poky/meta/recipes-extended/libidn/libidn2_2.2.0.bb b/poky/meta/recipes-extended/libidn/libidn2_2.2.0.bb
index d7fec89..bcbfdd8 100644
--- a/poky/meta/recipes-extended/libidn/libidn2_2.2.0.bb
+++ b/poky/meta/recipes-extended/libidn/libidn2_2.2.0.bb
@@ -21,6 +21,10 @@
                  --with-libunistring-prefix=${STAGING_EXECPREFIXDIR} \
                  "
 
+do_install_append() {
+	sed -i -e 's|-L${STAGING_LIBDIR}||' ${D}${libdir}/pkgconfig/libidn2.pc
+}
+
 LICENSE_${PN} = "(GPLv2+ | LGPLv3)"
 LICENSE_${PN}-bin = "GPLv3+"
 
diff --git a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
index 47447ac..4fbd4b1 100644
--- a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
+++ b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
@@ -18,6 +18,7 @@
 SRCREV = "d4aea48657a8e90d7922574b8021ee03915a36cb"
 
 SRC_URI = "git://github.com/thkukuk/libnss_nis \
+           file://0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch \
           "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/libnss-nis/libnss-nis/0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch b/poky/meta/recipes-extended/libnss-nis/libnss-nis/0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch
new file mode 100644
index 0000000..348c8c9
--- /dev/null
+++ b/poky/meta/recipes-extended/libnss-nis/libnss-nis/0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch
@@ -0,0 +1,162 @@
+From e41ddbd89a4bb042ac00469fa5880ba584c25c05 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 25 Jul 2019 12:10:56 -0700
+Subject: [PATCH] nis-hosts: Remove use of RES_USE_INET6
+
+Upstream glibc dropped it starting glibc 2.30
+see
+https://sourceware.org/git/?p=glibc.git;a=commit;h=3f8b44be0a658266adff5ece1e4bc3ce097a5dbe
+
+Fixes issue #6
+
+Upstream-Status: Submitted [https://github.com/thkukuk/libnss_nis/pull/7]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/nis-hosts.c | 55 ++++++++++++-------------------------------------
+ 1 file changed, 13 insertions(+), 42 deletions(-)
+
+diff --git a/src/nis-hosts.c b/src/nis-hosts.c
+index 307b46e..bd3c4ad 100644
+--- a/src/nis-hosts.c
++++ b/src/nis-hosts.c
+@@ -35,15 +35,12 @@
+ #include "libc-lock.h"
+ #include "nss-nis.h"
+ 
+-/* Get implementation for some internal functions. */
+-#include "mapv4v6addr.h"
+-
+ #define ENTNAME         hostent
+ #define DATABASE        "hosts"
+ #define NEED_H_ERRNO
+ 
+-#define EXTRA_ARGS      , af, flags
+-#define EXTRA_ARGS_DECL , int af, int flags
++#define EXTRA_ARGS      , af
++#define EXTRA_ARGS_DECL , int af
+ 
+ #define ENTDATA hostent_data
+ struct hostent_data
+@@ -67,19 +64,8 @@ LINE_PARSER
+    /* Parse address.  */
+    if (af != AF_INET6 && inet_pton (AF_INET, addr, entdata->host_addr) > 0)
+      {
+-       assert ((flags & AI_V4MAPPED) == 0 || af != AF_UNSPEC);
+-       if (flags & AI_V4MAPPED)
+-	 {
+-	   map_v4v6_address ((char *) entdata->host_addr,
+-			     (char *) entdata->host_addr);
+-	   result->h_addrtype = AF_INET6;
+-	   result->h_length = IN6ADDRSZ;
+-	 }
+-       else
+-	 {
+-	   result->h_addrtype = AF_INET;
+-	   result->h_length = INADDRSZ;
+-	 }
++       result->h_addrtype = AF_INET;
++       result->h_length = INADDRSZ;
+      }
+    else if (af != AF_INET
+ 	    && inet_pton (AF_INET6, addr, entdata->host_addr) > 0)
+@@ -134,7 +120,7 @@ strong_alias (_nss_nis_sethostent, _nss_nis_endhostent)
+ static enum nss_status
+ internal_nis_gethostent_r (struct hostent *host, char *buffer,
+ 			   size_t buflen, int *errnop, int *h_errnop,
+-			   int af, int flags)
++			   int af)
+ {
+   char *domain;
+   if (yp_get_default_domain (&domain))
+@@ -203,7 +189,7 @@ internal_nis_gethostent_r (struct hostent *host, char *buffer,
+ 	++p;
+       free (result);
+ 
+-      parse_res = parse_line (p, host, data, buflen, errnop, af, flags);
++      parse_res = parse_line (p, host, data, buflen, errnop, af);
+       if (parse_res == -1)
+ 	{
+ 	  free (outkey);
+@@ -232,8 +218,7 @@ _nss_nis_gethostent_r (struct hostent *host, char *buffer, size_t buflen,
+   __libc_lock_lock (lock);
+ 
+   status = internal_nis_gethostent_r (host, buffer, buflen, errnop, h_errnop,
+-			((_res.options & RES_USE_INET6) ? AF_INET6 : AF_INET),
+-			((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0 ));
++			AF_INET);
+ 
+   __libc_lock_unlock (lock);
+ 
+@@ -244,7 +229,7 @@ _nss_nis_gethostent_r (struct hostent *host, char *buffer, size_t buflen,
+ static enum nss_status
+ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
+ 			   char *buffer, size_t buflen, int *errnop,
+-			   int *h_errnop, int flags)
++			   int *h_errnop)
+ {
+   uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct parser_data);
+   buffer += pad;
+@@ -318,7 +303,7 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
+     ++p;
+   free (result);
+ 
+-  int parse_res = parse_line (p, host, data, buflen, errnop, af, flags);
++  int parse_res = parse_line (p, host, data, buflen, errnop, af);
+ 
+   if (parse_res < 1 || host->h_addrtype != af)
+     {
+@@ -351,8 +336,7 @@ _nss_nis_gethostbyname2_r (const char *name, int af, struct hostent *host,
+     }
+ 
+   return internal_gethostbyname2_r (name, af, host, buffer, buflen, errnop,
+-				    h_errnop,
+-			((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0));
++				    h_errnop);
+ }
+ 
+ 
+@@ -360,18 +344,8 @@ enum nss_status
+ _nss_nis_gethostbyname_r (const char *name, struct hostent *host, char *buffer,
+ 			  size_t buflen, int *errnop, int *h_errnop)
+ {
+-  if (_res.options & RES_USE_INET6)
+-    {
+-      enum nss_status status;
+-
+-      status = internal_gethostbyname2_r (name, AF_INET6, host, buffer, buflen,
+-					  errnop, h_errnop, AI_V4MAPPED);
+-      if (status == NSS_STATUS_SUCCESS)
+-	return status;
+-    }
+-
+   return internal_gethostbyname2_r (name, AF_INET, host, buffer, buflen,
+-				    errnop, h_errnop, 0);
++				    errnop, h_errnop);
+ }
+ 
+ 
+@@ -433,9 +407,7 @@ _nss_nis_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
+     ++p;
+   free (result);
+ 
+-  int parse_res = parse_line (p, host, data, buflen, errnop, af,
+-			      ((_res.options & RES_USE_INET6)
+-			       ? AI_V4MAPPED : 0));
++  int parse_res = parse_line (p, host, data, buflen, errnop, af);
+   if (parse_res < 1)
+     {
+       if (parse_res == -1)
+@@ -532,8 +504,7 @@ _nss_nis_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
+   buflen -= pad;
+ 
+   struct hostent host;
+-  int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC,
+-			      0);
++  int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC);
+   if (parse_res < 1)
+     {
+       if (parse_res == -1)
+-- 
+2.22.0
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-Add-configure-time-check-for-getdents-getdents64-API.patch b/poky/meta/recipes-extended/ltp/ltp/0001-Add-configure-time-check-for-getdents-getdents64-API.patch
new file mode 100644
index 0000000..bfceadb
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-Add-configure-time-check-for-getdents-getdents64-API.patch
@@ -0,0 +1,72 @@
+From 404dfeb4faef213b0450f173b60cd7080edec349 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 26 Jul 2019 10:32:29 -0700
+Subject: [PATCH 1/2] Add configure time check for getdents/getdents64 APIs
+
+glibc 2.30 has added wrapper for getdents64 this will help in detecting
+right condition to use fallback
+
+Check for getdents API as well while here
+
+Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-July/012954.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac                                  | 2 ++
+ testcases/kernel/syscalls/getdents/getdents.h | 8 ++++++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -65,6 +65,8 @@ AC_CHECK_FUNCS([ \
+     fallocate \
+     fchownat \
+     fstatat \
++    getdents \
++    getdents64 \
+     kcmp \
+     mkdirat \
+     mknodat \
+--- a/testcases/kernel/syscalls/getdents/getdents.h
++++ b/testcases/kernel/syscalls/getdents/getdents.h
+@@ -23,7 +23,7 @@
+ #include <stdint.h>
+ #include "test.h"
+ #include "lapi/syscalls.h"
+-
++#include "config.h"
+ /*
+  * See fs/compat.c struct compat_linux_dirent
+  */
+@@ -34,12 +34,17 @@ struct linux_dirent {
+ 	char            d_name[];
+ };
+ 
++#if HAVE_GETDENTS
++#include <unistd.h>
++#else
+ static inline int
+ getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int size)
+ {
+ 	return ltp_syscall(__NR_getdents, fd, dirp, size);
+ }
+ 
++#endif /* HAVE_GETDENTS */
++
+ struct linux_dirent64 {
+ 	uint64_t	d_ino;
+ 	int64_t		d_off;
+@@ -48,10 +53,13 @@ struct linux_dirent64 {
+ 	char		d_name[];
+ };
+ 
++#if HAVE_GETDENTS64
++#include <unistd.h>
++#else
+ static inline int
+ getdents64(unsigned int fd, struct linux_dirent64 *dirp64, unsigned int size)
+ {
+ 	return ltp_syscall(__NR_getdents64, fd, dirp64, size);
+ }
+-
++#endif /* HAVE_GETDENTS64 */
+ #endif /* GETDENTS_H */
diff --git a/poky/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch b/poky/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch
new file mode 100644
index 0000000..12e47eb
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch
@@ -0,0 +1,68 @@
+From 7bc134545b7beb09717a60541530c20a1a5740d3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 26 Jul 2019 10:55:28 -0700
+Subject: [PATCH 2/2] check for RES_USE_INET6 during configure
+
+glibc 2.30 has remove RES_USE_INET6 define which has been on its way out
+since 2.26 release, this check ensures that we detect it before using it
+
+Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-July/012955.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac                                        | 13 +++++++++++++
+ testcases/network/multicast/mc_gethost/mc_gethost.c |  6 ++++++
+ 2 files changed, 19 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 2255b5c181..ed7acccb01 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -91,6 +91,19 @@ AC_CHECK_FUNCS([ \
+     vmsplice \
+ ])
+ 
++#check defines
++AC_MSG_CHECKING([for RES_USE_INET6])
++AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <resolv.h>]],
++  [[char dummy[RES_USE_INET6];]])],
++  [
++    AC_MSG_RESULT([yes])
++    AC_DEFINE_UNQUOTED([HAVE_RES_USE_INET6], 1, [Define to 1 if you have the RES_USE_INET6 macro.])
++  ],
++  [
++    AC_MSG_RESULT([no])
++    AC_DEFINE_UNQUOTED([HAVE_RES_USE_INET6], 0, [Define to 1 if you have the RES_USE_INET6 macro.])
++  ]
++)
+ # Tools knobs
+ 
+ # Expect
+diff --git a/testcases/network/multicast/mc_gethost/mc_gethost.c b/testcases/network/multicast/mc_gethost/mc_gethost.c
+index 9cc15d086b..d1cae5441a 100644
+--- a/testcases/network/multicast/mc_gethost/mc_gethost.c
++++ b/testcases/network/multicast/mc_gethost/mc_gethost.c
+@@ -17,6 +17,8 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
++#include "config.h"
++
+ #ifndef LOG_PERROR
+ #define LOG_PERROR 0
+ #endif
+@@ -50,8 +52,12 @@ usage:
+ 		argv++, argc--;
+ 	}
+ 	if (argc >= 1 && !strcmp(*argv, "-6")) {
++#if HAVE_RES_USE_INET6
+ 		af = AF_INET6, size = IN6ADDRSZ;
+ 		_res.options |= RES_USE_INET6;
++#else
++		af = AF_INET, size = INADDRSZ;
++#endif
+ 		argv++, argc--;
+ 	}
+ 	if (argc >= 1 && !strcmp(*argv, "-f")) {
+-- 
+2.22.0
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0005-getdents-define-getdents-getdents64-only-for-glibc.patch b/poky/meta/recipes-extended/ltp/ltp/0005-getdents-define-getdents-getdents64-only-for-glibc.patch
deleted file mode 100644
index d1f7b07..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/0005-getdents-define-getdents-getdents64-only-for-glibc.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From b996b2480fe3a800ffbdc4a0fdc5e8775c575449 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 8 Jan 2016 06:57:04 +0000
-Subject: [PATCH] getdents: define getdents/getdents64 only for glibc
-
-getdents/getdents64 are implemented in musl and when we define static
-functions with same name, it errors out.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- testcases/kernel/syscalls/getdents/getdents.h | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/testcases/kernel/syscalls/getdents/getdents.h b/testcases/kernel/syscalls/getdents/getdents.h
-index 702b0bd..860b22e 100644
---- a/testcases/kernel/syscalls/getdents/getdents.h
-+++ b/testcases/kernel/syscalls/getdents/getdents.h
-@@ -34,12 +34,13 @@ struct linux_dirent {
- 	char            d_name[];
- };
- 
-+#ifdef __GLIBC__
- static inline int
- getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int size)
- {
- 	return ltp_syscall(__NR_getdents, fd, dirp, size);
- }
--
-+#endif
- struct linux_dirent64 {
- 	uint64_t	d_ino;
- 	int64_t		d_off;
-@@ -48,10 +49,11 @@ struct linux_dirent64 {
- 	char		d_name[];
- };
- 
-+#ifdef __GLIBC__
- static inline int
- getdents64(unsigned int fd, struct linux_dirent64 *dirp64, unsigned int size)
- {
- 	return ltp_syscall(__NR_getdents64, fd, dirp64, size);
- }
--
-+#endif
- #endif /* GETDENTS_H */
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-extended/ltp/ltp_20190517.bb b/poky/meta/recipes-extended/ltp/ltp_20190517.bb
index 1f3a94b..c62f261 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20190517.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20190517.bb
@@ -34,7 +34,6 @@
            file://0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch \
            file://0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \
            file://0004-guard-mallocopt-with-__GLIBC__.patch \
-           file://0005-getdents-define-getdents-getdents64-only-for-glibc.patch \
            file://0006-rt_tgsigqueueinfo-disable-test-on-musl.patch \
            file://0007-Fix-test_proc_kill-hanging.patch \
            file://0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \
@@ -42,6 +41,8 @@
            file://0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch \
            file://0011-direct_io-diotest4-drop-MAP_FIXED.patch \
            file://0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch \
+           file://0001-Add-configure-time-check-for-getdents-getdents64-API.patch \
+           file://0002-check-for-RES_USE_INET6-during-configure.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/man-db/man-db_2.8.5.bb b/poky/meta/recipes-extended/man-db/man-db_2.8.6.1.bb
similarity index 92%
rename from poky/meta/recipes-extended/man-db/man-db_2.8.5.bb
rename to poky/meta/recipes-extended/man-db/man-db_2.8.6.1.bb
index 441e2f4..ec9eb83 100644
--- a/poky/meta/recipes-extended/man-db/man-db_2.8.5.bb
+++ b/poky/meta/recipes-extended/man-db/man-db_2.8.6.1.bb
@@ -7,8 +7,8 @@
 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[md5sum] = "c5c6c3434be14a5527d43b5ad0f09a13"
-SRC_URI[sha256sum] = "b64d52747534f1fe873b2876eb7f01319985309d5d7da319d2bc52ba1e73f6c1"
+SRC_URI[md5sum] = "22e82fe1127f4ca95de7100168a927d1"
+SRC_URI[sha256sum] = "2c77a2bb9dbf06f72417a6f63063e204888a22a5020ff77334d304d55f813a28"
 
 DEPENDS = "libpipeline gdbm groff-native base-passwd"
 RDEPENDS_${PN} += "base-passwd"
diff --git a/poky/meta/recipes-extended/msmtp/msmtp_1.8.4.bb b/poky/meta/recipes-extended/msmtp/msmtp_1.8.5.bb
similarity index 86%
rename from poky/meta/recipes-extended/msmtp/msmtp_1.8.4.bb
rename to poky/meta/recipes-extended/msmtp/msmtp_1.8.5.bb
index 0f10500..4f6b66f 100644
--- a/poky/meta/recipes-extended/msmtp/msmtp_1.8.4.bb
+++ b/poky/meta/recipes-extended/msmtp/msmtp_1.8.5.bb
@@ -11,8 +11,8 @@
 UPSTREAM_CHECK_URI = "https://marlam.de/msmtp/download/"
 
 SRC_URI = "https://marlam.de/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[md5sum] = "abfabb92f0461137f3c09cd16d98fc9b"
-SRC_URI[sha256sum] = "e5dd7fe95bc8e2f5eea3e4894ec9628252f30bd700a7fd1a568b10efa91129f7"
+SRC_URI[md5sum] = "5d7bb10606fbceeb2e0687379c75234b"
+SRC_URI[sha256sum] = "1613daced9c47b8c028224fc076799c2a4d72923e242be4e9e5c984cbbbb9f39"
 
 inherit gettext autotools update-alternatives pkgconfig
 
diff --git a/poky/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch b/poky/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch
deleted file mode 100644
index b0a1e8c..0000000
--- a/poky/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Upstream-Status: Pending
-
-Author: dexuan.cui@intel.com
-Date: Fri Apr 15 16:17:39 CST 2011
-
-The patch fixes a parallel-make issue: when generating $(SHAREDDIR)/%.o, we should
-ensure the directory ${SHAREDDIR} exists.
-
-We need to push the patch to upstream.
-
-Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -128,12 +128,12 @@ $(SHAREDDIR):
- 
- sharedlib: $(LIBNEWTSH)
- 
--$(LIBNEWTSH): $(SHAREDDIR) $(SHAREDOBJS)
-+$(LIBNEWTSH): $(SHAREDOBJS)
- 	$(CC) -shared -o $(LIBNEWTSH) $(SHLIBFLAGS) $(SHAREDOBJS) $(LDFLAGS) $(LIBS)
- 	ln -fs $(LIBNEWTSONAME) libnewt.$(SOEXT)
- 	ln -fs $(LIBNEWTSH) $(LIBNEWTSONAME)
- 
--$(SHAREDDIR)/%.o : %.c
-+$(SHAREDDIR)/%.o : %.c $(SHAREDDIR)
- 	$(CC) $(SHCFLAGS) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
- 
- install: $(LIBNEWT) install-sh whiptail
--- 
-1.8.1.2
-
diff --git a/poky/meta/recipes-extended/newt/files/pie-flags.patch b/poky/meta/recipes-extended/newt/files/pie-flags.patch
index 8883e26..92f5b25 100644
--- a/poky/meta/recipes-extended/newt/files/pie-flags.patch
+++ b/poky/meta/recipes-extended/newt/files/pie-flags.patch
@@ -1,7 +1,4 @@
-specify -fPIC after CFLAGS so it can override the CFLAGS containing -pie and -fpie
-this makes sure the objects that go into shared objects are compiled with -fPIC
-and not with -fpie. We can not use -fpie on objects which will go into .so files
-Fixes errors like
+specify -fPIC after CFLAGS so it can override the CFLAGS containing -pie and -fpie this makes sure the objects that go into shared objects are compiled with -fPIC and not with -fpie. We can not use -fpie on objects which will go into .so files Fixes errors like
 
 | /mnt/oe/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/5.3.0/ld: shared/newt.o: relocation R_X86_64_PC32 against undefined symbol `SLtt_Screen_Rows@@SLANG2' can not be used when making a shared object; recompile with -fPIC
 | /mnt/oe/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/5.3.0/ld: final link failed: Bad value
@@ -10,10 +7,15 @@
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Upstream-Status: Pending
-Index: newt-0.52.18/Makefile.in
-===================================================================
---- newt-0.52.18.orig/Makefile.in
-+++ newt-0.52.18/Makefile.in
+
+---
+ Makefile.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index be5f87b..88ee0b7 100644
+--- a/Makefile.in
++++ b/Makefile.in
 @@ -96,8 +96,8 @@ _snack.$(SOEXT):   snack.c $(LIBNEWTSH)
  		PIFLAGS=`$$pyconfig --includes`; \
  		PLDFLAGS=`$$pyconfig --ldflags`; \
@@ -25,12 +27,15 @@
  		echo $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snack.$(SOEXT) $$ver/snack.o -L.  -lnewt $(LIBS); \
  		$(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snack.$(SOEXT) $$ver/snack.o -L.  -lnewt $(LIBS); \
  	done || :
-@@ -135,7 +135,7 @@ $(LIBNEWTSH): $(SHAREDOBJS)
- 	ln -fs $(LIBNEWTSH) $(LIBNEWTSONAME)
+@@ -133,7 +133,7 @@ $(LIBNEWTSH): $(SHAREDOBJS)
  
- $(SHAREDDIR)/%.o : %.c $(SHAREDDIR)
+ $(SHAREDDIR)/%.o : %.c
+ 	@mkdir -p $(SHAREDDIR)
 -	$(CC) $(SHCFLAGS) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
 +	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(SHCFLAGS) -o $@ $<
  
  install: $(LIBNEWT) install-sh whiptail
  	[ -d $(instroot)/$(bindir) ] || install -m 755 -d $(instroot)/$(bindir)
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb b/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb
similarity index 89%
rename from poky/meta/recipes-extended/newt/libnewt_0.52.20.bb
rename to poky/meta/recipes-extended/newt/libnewt_0.52.21.bb
index dc07a18..09b61be 100644
--- a/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb
+++ b/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb
@@ -18,15 +18,14 @@
 DEPENDS = "slang popt python3"
 
 SRC_URI = "https://releases.pagure.org/newt/newt-${PV}.tar.gz \
-           file://fix_SHAREDDIR.patch \
            file://cross_ar.patch \
            file://Makefile.in-Add-tinfo-library-to-the-linking-librari.patch \
            file://pie-flags.patch \
            file://0001-detect-gold-as-GNU-linker-too.patch \
 "
 
-SRC_URI[md5sum] = "70b288f821234593a8e7920e435b259b"
-SRC_URI[sha256sum] = "8d66ba6beffc3f786d4ccfee9d2b43d93484680ef8db9397a4fb70b5adbb6dbc"
+SRC_URI[md5sum] = "a0a5fd6b53bb167a65e15996b249ebb5"
+SRC_URI[sha256sum] = "265eb46b55d7eaeb887fca7a1d51fe115658882dfe148164b6c49fccac5abb31"
 
 S = "${WORKDIR}/newt-${PV}"
 
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
index 611e0ca..18e2271 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
@@ -5,6 +5,8 @@
 SUMMARY = "Full-featured set of base utils"
 DESCRIPTION = "Package group bringing in packages needed to provide much of the base utils type functionality found in busybox"
 
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
 inherit packagegroup
 
 VIRTUAL-RUNTIME_vim ?= "vim-tiny"
diff --git a/poky/meta/recipes-extended/screen/screen/0001-Remove-more-compatibility-stuff.patch b/poky/meta/recipes-extended/screen/screen/0001-Remove-more-compatibility-stuff.patch
new file mode 100644
index 0000000..1413724
--- /dev/null
+++ b/poky/meta/recipes-extended/screen/screen/0001-Remove-more-compatibility-stuff.patch
@@ -0,0 +1,31 @@
+This fixes
+../screen-4.6.2/pty.c: In function 'OpenPTY':
+../screen-4.6.2/pty.c:328:7: warning: implicit declaration of function 'openpty'; did you mean 'openat'? [-Wimplicit-function-declaration]
+   if (openpty(&f, &s, TtyName, NULL, NULL) != 0)
+       ^~~~~~~
+
+Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Upstream-Status: Backport
+
+---
+ pty.c | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/pty.c b/pty.c
+index 1c0660e..502338f 100644
+--- a/pty.c
++++ b/pty.c
+@@ -47,11 +47,7 @@
+ # include <sys/ttold.h>
+ #endif
+ 
+-#ifdef ISC
+-# include <sys/tty.h>
+-# include <sys/sioctl.h>
+-# include <sys/pty.h>
+-#endif
++#include <pty.h>
+ 
+ #ifdef sgi
+ # include <sys/sysmacros.h>
diff --git a/poky/meta/recipes-extended/screen/screen_4.6.2.bb b/poky/meta/recipes-extended/screen/screen_4.6.2.bb
index 375dce9..24ec751 100644
--- a/poky/meta/recipes-extended/screen/screen_4.6.2.bb
+++ b/poky/meta/recipes-extended/screen/screen_4.6.2.bb
@@ -24,6 +24,7 @@
            file://0002-comm.h-now-depends-on-term.h.patch \
            file://0001-fix-for-multijob-build.patch \
            file://0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch \
+           file://0001-Remove-more-compatibility-stuff.patch \
           "
 
 SRC_URI[md5sum] = "a0f529d3333b128dfaa324d978ba73a8"
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch
new file mode 100644
index 0000000..c860c71
--- /dev/null
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch
@@ -0,0 +1,23 @@
+From bbc85a439672120fa1d36be79e959b28fe840919 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 30 Jul 2019 18:38:03 +0200
+Subject: [PATCH] Do not preserve ownership when installing example jobs
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index f36e57e..20488af 100644
+--- a/Makefile
++++ b/Makefile
+@@ -452,6 +452,6 @@ install: stress-ng stress-ng.1.gz
+ 	mkdir -p ${DESTDIR}${MANDIR}
+ 	cp stress-ng.1.gz ${DESTDIR}${MANDIR}
+ 	mkdir -p ${DESTDIR}${JOBDIR}
+-	cp -rp example-jobs/*.job ${DESTDIR}${JOBDIR}
++	cp -r example-jobs/*.job ${DESTDIR}${JOBDIR}
+ 	mkdir -p ${DESTDIR}${BASHDIR}
+ 	cp bash-completion/stress-ng ${DESTDIR}${BASHDIR}
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch
new file mode 100644
index 0000000..66d99dd
--- /dev/null
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch
@@ -0,0 +1,23 @@
+From 042147675c7c2ea7dd65b2597f2e350376a710aa Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 6 Aug 2019 17:28:56 +0200
+Subject: [PATCH] bash-completion: remove the shebang at the start
+
+bash completion files do not need to specify that.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ bash-completion/stress-ng | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/bash-completion/stress-ng b/bash-completion/stress-ng
+index 8b1421c..7f195be 100755
+--- a/bash-completion/stress-ng
++++ b/bash-completion/stress-ng
+@@ -1,5 +1,3 @@
+-#!/bin/bash
+-#
+ # stress-ng tab completion for bash.
+ #
+ # Copyright (C) 2019 Canonical
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb
new file mode 100644
index 0000000..e800040
--- /dev/null
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb
@@ -0,0 +1,21 @@
+SUMMARY = "System load testing utility"
+DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \
+imposes a configurable amount of CPU, memory, I/O, and disk stress on the system."
+HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \
+           file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \
+           file://0001-bash-completion-remove-the-shebang-at-the-start.patch \
+           "
+SRC_URI[md5sum] = "46aa41d37690324ceab4febfcc549018"
+SRC_URI[sha256sum] = "d09dd2a1aea549e478995bf9be90b38906a4cdf33ea7b245ef9d46aa5213c074"
+
+DEPENDS = "coreutils-native"
+
+inherit bash-completion
+
+do_install() {
+    oe_runmake DESTDIR=${D} install
+}
diff --git a/poky/meta/recipes-extended/stress/files/texinfo.patch b/poky/meta/recipes-extended/stress/files/texinfo.patch
deleted file mode 100644
index f23a1f6..0000000
--- a/poky/meta/recipes-extended/stress/files/texinfo.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-Upstream-Status: Pending
---- a/doc/stress.texi
-+++ b/doc/stress.texi
-@@ -62,47 +62,47 @@
- 
- @table @samp
- @item -?
--@itemx --help
-+@item --help
- Show help information.
- 
--@itemx --version
-+@item --version
- Show version information.
- 
- @item -v
--@itemx --verbose
-+@item --verbose
- Turn up verbosity.
- 
- @item -q
--@itemx --quiet
-+@item --quiet
- Turn down verbosity.
- 
- @item -n
--@itemx --dry-run
-+@item --dry-run
- Show what would have been done.
- 
- @item -t @var{secs}
--@itemx --timeout @var{secs}
-+@item --timeout @var{secs}
- Time out after @var{secs} seconds.
- 
--@itemx --backoff @var{usecs}
-+@item --backoff @var{usecs}
- Wait for factor of @var{usecs} microseconds before starting work.
- 
- @item -c @var{forks}
--@itemx --cpu @var{forks}
-+@item --cpu @var{forks}
- Spawn @var{forks} processes each spinning on @samp{sqrt()}.
- 
- @item -i @var{forks}
--@itemx --io @var{forks}
-+@item --io @var{forks}
- Spawn @var{forks} processes each spinning on @samp{sync()}.
- 
- @item -m @var{forks}
--@itemx --vm @var{forks}
-+@item --vm @var{forks}
- Spawn @var{forks} processes each spinning on @samp{malloc()}.
- 
--@itemx --vm-bytes @var{bytes}
-+@item --vm-bytes @var{bytes}
- Allocate @var{bytes} number of bytes.  The default is 1.
- 
--@itemx --vm-hang
-+@item --vm-hang
- Instruct each vm hog process to go to sleep after allocating memory.  This
- contrasts with their normal behavior, which is to free the memory and
- reallocate @emph{ad infinitum}.  This is useful for simulating low memory
-@@ -114,13 +114,13 @@
- @end example
- 
- @item -d @var{forks}
--@itemx --hdd @var{forks}
-+@item --hdd @var{forks}
- Spawn @var{forks} processes each spinning on @samp{write()}.
- 
--@itemx --hdd-bytes @var{bytes}
-+@item --hdd-bytes @var{bytes}
- Write @var{bytes} number of bytes.  The default is 1GB.
- 
--@itemx --hdd-noclean
-+@item --hdd-noclean
- Do not unlink file(s) to which random ASCII data is written.
- 
- @end table
diff --git a/poky/meta/recipes-extended/stress/stress_1.0.4.bb b/poky/meta/recipes-extended/stress/stress_1.0.4.bb
deleted file mode 100644
index e9179d3..0000000
--- a/poky/meta/recipes-extended/stress/stress_1.0.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "System load testing utility"
-DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \
-imposes a configurable amount of CPU, memory, I/O, and disk stress on the system."
-HOMEPAGE = "http://people.seas.harvard.edu/~apw/stress/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://people.seas.harvard.edu/~apw/${BPN}/${BP}.tar.gz \
-           file://texinfo.patch \
-           "
-
-SRC_URI[md5sum] = "890a4236dd1656792f3ef9a190cf99ef"
-SRC_URI[sha256sum] = "057e4fc2a7706411e1014bf172e4f94b63a12f18412378fca8684ca92408825b"
-
-inherit autotools
diff --git a/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb b/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb
index 4a34393..9d2d6bd 100644
--- a/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb
+++ b/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb
@@ -1,6 +1,6 @@
 require sudo.inc
 
-SRC_URI = "http://ftp.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \
+SRC_URI = "http://www.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \
            ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
            file://0001-Include-sys-types.h-for-id_t-definition.patch \
            "
@@ -16,7 +16,7 @@
 EXTRA_OECONF += " \
              ac_cv_type_rsize_t=no \
              ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
-             ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \
+             ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \
              "
 
 do_install_append () {
@@ -35,6 +35,6 @@
 	rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo
 }
 
-FILES_${PN} += "${libdir}/tmpfiles.d"
+FILES_${PN} += "${nonarch_libdir}/tmpfiles.d"
 FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \
                     ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la"
diff --git a/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb b/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
index 6d232a5..dd945c9 100644
--- a/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -18,7 +18,7 @@
 FILES_${PN} = "${sbindir}"
 FILES_${PN}-doc = "${mandir}/man8"
 
-SRC_URI = "ftp://ftp.porcupine.org/pub/security/tcp_wrappers_${PV}.tar.gz \
+SRC_URI = "http://ftp.porcupine.org/pub/security/tcp_wrappers_${PV}.tar.gz \
            file://00_man_quoting.diff \
            file://01_man_portability.patch \
            file://05_wildcard_matching.patch \
