diff options
Diffstat (limited to 'poky/meta/recipes-extended')
142 files changed, 3894 insertions, 3930 deletions
diff --git a/poky/meta/recipes-extended/acpica/acpica_20190509.bb b/poky/meta/recipes-extended/acpica/acpica_20190816.bb index cf6db336a..8f7997477 100644 --- a/poky/meta/recipes-extended/acpica/acpica_20190509.bb +++ b/poky/meta/recipes-extended/acpica/acpica_20190816.bb @@ -17,8 +17,8 @@ COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" DEPENDS = "bison flex bison-native" SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix2-${PV}.tar.gz" -SRC_URI[md5sum] = "dd1f8240f924b12b0a0de0c31ab26ab1" -SRC_URI[sha256sum] = "860b5f94a0590b278592acf16a4556b05ff0309c08e8c48aa29827cfa02c8e9d" +SRC_URI[md5sum] = "6a73b1e34715916fa31132dbe11008b0" +SRC_URI[sha256sum] = "888e80f3bb77381620a5ead208e1a1be06f3ea66ddc8cfdfa62811cae5f03752" UPSTREAM_CHECK_URI = "https://acpica.org/downloads" S = "${WORKDIR}/acpica-unix2-${PV}" diff --git a/poky/meta/recipes-extended/at/at/pam.conf.patch b/poky/meta/recipes-extended/at/at/pam.conf.patch index c9f337ede..38e7fc1b7 100644 --- a/poky/meta/recipes-extended/at/at/pam.conf.patch +++ b/poky/meta/recipes-extended/at/at/pam.conf.patch @@ -24,7 +24,7 @@ index 3674c0a..2f8d586 100644 -@include common-auth -@include common-account +auth include common-auth -+acount include common-account ++account include common-account session required pam_loginuid.so -@include common-session-noninteractive +session include common-session-noninteractive diff --git a/poky/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch b/poky/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch new file mode 100644 index 000000000..1ef797dd6 --- /dev/null +++ b/poky/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch @@ -0,0 +1,44 @@ +From e174b6e7d195d5a7465575641b7f68581f162574 Mon Sep 17 00:00:00 2001 +From: Li Zhou <li.zhou@windriver.com> +Date: Thu, 27 Jun 2019 13:10:47 +0800 +Subject: [PATCH] dc: fix exit code of q command + +The exit code for "echo q | dc" is 1 for dc-1.4.1; +while the exit code for "echo q | dc" is 0 for dc-1.4. + +Here is the answer from ken@gnu.org: +dc-1.4 was right. There was a rewrite of a chunk of code for 1.4.1 to +fix a corner case in the Q command, and somehow the placement of the +clean-up label for the 'q' command got misplaced on the error-handling +branch instead of the clean-exit branch. The patch below fixes this +(it is committed for whenever the next bc/dc release gets made). + +Thanks for the report, + --Ken Pizzini + +Upstream-Status: Backport [Got the solution from maintainer] + +Signed-off-by: Li Zhou <li.zhou@windriver.com> +--- + dc/eval.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dc/eval.c b/dc/eval.c +index 05a3d9e..bcab8db 100644 +--- a/dc/eval.c ++++ b/dc/eval.c +@@ -814,10 +814,10 @@ error_fail: + fprintf(stderr, "%s: ", progname); + perror("error reading input"); + return DC_FAIL; +-reset_and_exit_quit: + reset_and_exit_fail: + signal(SIGINT, sigint_default); + return DC_FAIL; ++reset_and_exit_quit: + reset_and_exit_success: + signal(SIGINT, sigint_default); + return DC_SUCCESS; +-- +1.9.1 + diff --git a/poky/meta/recipes-extended/bc/bc_1.07.1.bb b/poky/meta/recipes-extended/bc/bc_1.07.1.bb index 809b864c1..4a5130249 100644 --- a/poky/meta/recipes-extended/bc/bc_1.07.1.bb +++ b/poky/meta/recipes-extended/bc/bc_1.07.1.bb @@ -13,7 +13,8 @@ DEPENDS = "flex-native" SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ file://no-gen-libmath.patch \ - file://libmath.h" + file://libmath.h \ + file://0001-dc-fix-exit-code-of-q-command.patch" SRC_URI[md5sum] = "cda93857418655ea43590736fc3ca9fc" SRC_URI[sha256sum] = "62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a" diff --git a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch b/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch deleted file mode 100644 index 1d0c3a6dd..000000000 --- a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch +++ /dev/null @@ -1,18 +0,0 @@ -Upstream-Status: Backport -https://bugzilla.suse.com/attachment.cgi?id=681334 - -CVE: CVE-2016-3189 -Signed-off-by: Armin Kuster <akuster@mvista.com> - -Index: bzip2-1.0.6/bzip2recover.c -=================================================================== ---- bzip2-1.0.6.orig/bzip2recover.c -+++ bzip2-1.0.6/bzip2recover.c -@@ -457,6 +457,7 @@ Int32 main ( Int32 argc, Char** argv ) - bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 ); - bsPutUInt32 ( bsWr, blockCRC ); - bsClose ( bsWr ); -+ outFile = NULL; - } - if (wrBlock >= rbCtr) break; - wrBlock++; diff --git a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/fix-bunzip2-qt-returns-0-for-corrupt-archives.patch b/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/fix-bunzip2-qt-returns-0-for-corrupt-archives.patch deleted file mode 100644 index ece90d94e..000000000 --- a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/fix-bunzip2-qt-returns-0-for-corrupt-archives.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 8068659388127e8e63f2d2297ba2348c72b20705 Mon Sep 17 00:00:00 2001 -From: Wenzong Fan <wenzong.fan@windriver.com> -Date: Mon, 12 Oct 2015 03:19:51 -0400 -Subject: [PATCH] bzip2: fix bunzip2 -qt returns 0 for corrupt archives - -"bzip2 -t FILE" returns 2 if FILE exists, but is not a valid bzip2 file. -"bzip2 -qt FILE" returns 0 when this happens, although it does print out -an error message as is does so. - -This has been fix by Debian, just port changes from Debian patch file -"20-legacy.patch". - -Debian defect: -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=279025 - -Fix item from changelog: -http://archive.debian.net/changelogs/pool/main/b/bzip2/bzip2_1.0.2-7/changelog - - * Fixed "bunzip2 -qt returns 0 for corrupt archives" (Closes: #279025). - -Upstream-Status: Pending - -Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> ---- - bzip2.c | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -diff --git a/bzip2.c b/bzip2.c -index 6de9d1d..f2ce668 100644 ---- a/bzip2.c -+++ b/bzip2.c -@@ -2003,12 +2003,14 @@ IntNative main ( IntNative argc, Char *argv[] ) - testf ( aa->name ); - } - } -- if (testFailsExist && noisy) { -- fprintf ( stderr, -- "\n" -- "You can use the `bzip2recover' program to attempt to recover\n" -- "data from undamaged sections of corrupted files.\n\n" -- ); -+ if (testFailsExist) { -+ if (noisy) { -+ fprintf ( stderr, -+ "\n" -+ "You can use the `bzip2recover' program to attempt to recover\n" -+ "data from undamaged sections of corrupted files.\n\n" -+ ); -+ } - setExit(2); - exit(exitValue); - } --- -1.9.1 - diff --git a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/Makefile.am b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am index dcf64584d..dcf64584d 100644 --- a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/Makefile.am +++ b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am diff --git a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/configure.ac b/poky/meta/recipes-extended/bzip2/bzip2/configure.ac index e2bf1bf11..b8abade2d 100644 --- a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/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.6/run-ptest b/poky/meta/recipes-extended/bzip2/bzip2/run-ptest index 3b20fce1e..3b20fce1e 100644 --- a/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/run-ptest +++ b/poky/meta/recipes-extended/bzip2/bzip2/run-ptest diff --git a/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb index 15a8e5155..8e9b779e6 100644 --- a/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb +++ b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb @@ -5,22 +5,17 @@ LZ77/LZ78-based compressors, and approaches the performance of the PPM family of HOMEPAGE = "https://sourceware.org/bzip2/" SECTION = "console/utils" LICENSE = "bzip2" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=39406315f540c69bd05b1531daedd2ae" -PR = "r5" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" -SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/${BP}.tar.gz \ - file://fix-bunzip2-qt-returns-0-for-corrupt-archives.patch \ +SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ file://configure.ac;subdir=${BP} \ file://Makefile.am;subdir=${BP} \ file://run-ptest \ - file://CVE-2016-3189.patch \ " +SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" +SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" -SRC_URI[md5sum] = "00b516f4704d4a7cb50a1d97e6e8e15b" -SRC_URI[sha256sum] = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd" - -UPSTREAM_CHECK_URI = "https://www.sourceware.org/bzip2/" -UPSTREAM_VERSION_UNKNOWN = "1" +UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" PACKAGES =+ "libbz2" @@ -34,6 +29,10 @@ ALTERNATIVE_${PN} = "bunzip2 bzcat bzip2" #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 } @@ -44,4 +43,3 @@ RDEPENDS_${PN}-ptest += "make" PROVIDES_append_class-native = " bzip2-replacement-native" BBCLASSEXTEND = "native nativesdk" - diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc index 5010f0861..e303f3424 100644 --- a/poky/meta/recipes-extended/cups/cups.inc +++ b/poky/meta/recipes-extended/cups/cups.inc @@ -2,7 +2,7 @@ SUMMARY = "An Internet printing system for Unix" HOMEPAGE = "https://www.cups.org/" SECTION = "console/utils" LICENSE = "GPLv2 & LGPLv2" -DEPENDS = "gnutls libpng jpeg dbus dbus-glib zlib libusb1" +DEPENDS = "gnutls libpng jpeg dbus zlib libusb1" SRC_URI = "https://github.com/apple/cups/releases/download/v${PV}/${BP}-source.tar.gz \ file://use_echo_only_in_init.patch \ @@ -67,7 +67,7 @@ do_install () { # Remove /var/run from package as cupsd will populate it on startup rm -fr ${D}/${localstatedir}/run - rmdir ${D}/${libdir}/${BPN}/driver + rmdir ${D}/${libexecdir}/${BPN}/driver # Fix the pam configuration file permissions if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then diff --git a/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch b/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch index f7b44a7bc..85c6af107 100644 --- a/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch +++ b/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch @@ -4,6 +4,12 @@ e.g. ppc64 where base libdir is lib64 this does not go well Signed-off-by: Khem Raj <raj.khem@gmail.com> Upstream-Status: Inappropriate [OE config specific] +Update on 20190904: +Redefine CUPS_SERVERBIN to "$libexecdir/cups" which solves file confliction +when multilib is enabled. + +Signed-off-by: Kai Kang <kai.kang@windriver.com> + Index: cups-1.4.6/config-scripts/cups-directories.m4 =================================================================== --- cups-1.4.6.orig/config-scripts/cups-directories.m4 2009-04-12 16:04:51.000000000 -0700 @@ -13,7 +19,7 @@ Index: cups-1.4.6/config-scripts/cups-directories.m4 # All others INSTALL_SYSV="install-sysv" - CUPS_SERVERBIN="$exec_prefix/lib/cups" -+ CUPS_SERVERBIN="$libdir/cups" ++ CUPS_SERVERBIN="$libexecdir/cups" ;; esac @@ -26,7 +32,7 @@ Index: cups-1.4.6/configure # All others INSTALL_SYSV="install-sysv" - CUPS_SERVERBIN="$exec_prefix/lib/cups" -+ CUPS_SERVERBIN="$libdir/cups" ++ CUPS_SERVERBIN="$libexecdir/cups" ;; esac diff --git a/poky/meta/recipes-extended/cups/cups_2.2.11.bb b/poky/meta/recipes-extended/cups/cups_2.2.11.bb deleted file mode 100644 index aeb2e14e3..000000000 --- a/poky/meta/recipes-extended/cups/cups_2.2.11.bb +++ /dev/null @@ -1,6 +0,0 @@ -require cups.inc - -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f212b4338db0da8cb892e94bf2949460" - -SRC_URI[md5sum] = "7afbbcd2497e7d742583c492f6de40cd" -SRC_URI[sha256sum] = "f58010813fd6903f690cdb0c0b91e4d1bc9e5b9570c28734229ba3ed2908b76c" diff --git a/poky/meta/recipes-extended/cups/cups_2.2.12.bb b/poky/meta/recipes-extended/cups/cups_2.2.12.bb new file mode 100644 index 000000000..8e5534a97 --- /dev/null +++ b/poky/meta/recipes-extended/cups/cups_2.2.12.bb @@ -0,0 +1,6 @@ +require cups.inc + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f212b4338db0da8cb892e94bf2949460" + +SRC_URI[md5sum] = "e763689f7735d3fe95a2943397189e40" +SRC_URI[sha256sum] = "0f61ab449e4748a24c6ab355b481ff7691247a140d327b2b7526fce34b7f9aa8" diff --git a/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch b/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch new file mode 100644 index 000000000..aac1c4346 --- /dev/null +++ b/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch @@ -0,0 +1,35 @@ +From bd7fb8be2ae2d75347cf7733302d5093046ffa85 Mon Sep 17 00:00:00 2001 +From: Peiran Hong <peiran.hong@windriver.com> +Date: Thu, 5 Sep 2019 15:42:22 -0400 +Subject: [PATCH] Skip strip-trailing-cr test case + +Skip the test "strip-trailing-cr" since it requires valgrind to +work, but valgrind is considered too heavy-weight for diffutils +package. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Peiran Hong <peiran.hong@windriver.com> +--- + tests/Makefile.am | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 83a7c9d..04d51b5 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -21,8 +21,10 @@ TESTS = \ + stdin \ + strcoll-0-names \ + filename-quoting \ +- strip-trailing-cr \ + colors ++# Skipping this test since it requires valgrind ++# and thus is too heavy for diffutils package ++# strip-trailing-cr + + XFAIL_TESTS = large-subopt + +-- +2.21.0 + diff --git a/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb b/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb index 7daeee351..8111ae606 100644 --- a/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb +++ b/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb @@ -5,6 +5,7 @@ require diffutils.inc SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.xz \ file://run-ptest \ + file://0001-Skip-strip-trailing-cr-test-case.patch \ " SRC_URI[md5sum] = "4824adc0e95dbbf11dfbdfaad6a1e461" @@ -17,7 +18,7 @@ acpaths = "-I ./m4" inherit ptest -RDEPENDS_${PN}-ptest += "make" +RDEPENDS_${PN}-ptest += "make perl" do_install_ptest() { t=${D}${PTEST_PATH} diff --git a/poky/meta/recipes-extended/ed/ed_1.15.bb b/poky/meta/recipes-extended/ed/ed_1.15.bb index c79310325..886c3ddca 100644 --- a/poky/meta/recipes-extended/ed/ed_1.15.bb +++ b/poky/meta/recipes-extended/ed/ed_1.15.bb @@ -9,6 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7 \ SECTION = "base" +CVE_PRODUCT = "gnu:ed" + # LSB states that ed should be in /bin/ bindir = "${base_bindir}" 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 7a0e38a39..7c5d4f956 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 @@ serial-tests is required to generate those targets. 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 @@ index 2941a65..b0a1896 100644 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 index d379d93bc..e9759bd21 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 @@ SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \ 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/gawk/gawk_5.0.0.bb b/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb index 578901355..b3eb39e4e 100644 --- a/poky/meta/recipes-extended/gawk/gawk_5.0.0.bb +++ b/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb @@ -19,8 +19,8 @@ SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \ file://run-ptest \ " -SRC_URI[md5sum] = "45366249c13aae2bfb00e8e97c3f39b7" -SRC_URI[sha256sum] = "2d686c9a5b7ba292bc3fa56bc84a1959d721a9d57970a76413156d4b8f1fc67d" +SRC_URI[md5sum] = "c5441c73cc451764055ee65e9a4292bb" +SRC_URI[sha256sum] = "625bf3718e25a84dc4486135d5cb5388174682362c70107fd13f21572f5603bb" inherit autotools gettext texinfo update-alternatives diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14811-0001.patch b/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14811-0001.patch new file mode 100644 index 000000000..3f28555e8 --- /dev/null +++ b/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14811-0001.patch @@ -0,0 +1,68 @@ +From 885444fcbe10dc42787ecb76686c8ee4dd33bf33 Mon Sep 17 00:00:00 2001 +From: Ken Sharp <ken.sharp@artifex.com> +Date: Tue, 20 Aug 2019 10:10:28 +0100 +Subject: [PATCH] make .forceput inaccessible + +Bug #701343, #701344, #701345 + +More defensive programming. We don't want people to access .forecput +even though it is no longer sufficient to bypass SAFER. The exploit +in #701343 didn't work anyway because of earlier work to stop the error +handler being used, but nevertheless, prevent access to .forceput from +.setuserparams2. + +CVE: CVE-2019-14811 +Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] + +Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com> +--- + Resource/Init/gs_lev2.ps | 6 +++--- + Resource/Init/gs_pdfwr.ps | 4 ++-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Resource/Init/gs_lev2.ps b/Resource/Init/gs_lev2.ps +index 98d55fe..f1b771f 100644 +--- a/Resource/Init/gs_lev2.ps ++++ b/Resource/Init/gs_lev2.ps +@@ -158,7 +158,7 @@ end + { + pop pop + } ifelse +- } forall ++ } executeonly forall + % A context switch might have occurred during the above loop, + % causing the interpreter-level parameters to be reset. + % Set them again to the new values. From here on, we are safe, +@@ -229,9 +229,9 @@ end + { pop pop + } + ifelse +- } ++ } executeonly + forall pop +-} .bind odef ++} .bind executeonly odef + + % Initialize the passwords. + % NOTE: the names StartJobPassword and SystemParamsPassword are known to +diff --git a/Resource/Init/gs_pdfwr.ps b/Resource/Init/gs_pdfwr.ps +index 00c19fa..dfe504d 100644 +--- a/Resource/Init/gs_pdfwr.ps ++++ b/Resource/Init/gs_pdfwr.ps +@@ -652,11 +652,11 @@ currentdict /.pdfmarkparams .undef + systemdict /.pdf_hooked_DSC_Creator //true .forceput + } executeonly if + pop +- } if ++ } executeonly if + } { + pop + } ifelse +- } ++ } executeonly + { + pop + } ifelse +-- +2.20.1 + diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch b/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch new file mode 100644 index 000000000..c76e21caa --- /dev/null +++ b/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch @@ -0,0 +1,270 @@ +From 0bafbd9c1273fab0dc79fd20db0ffc4443683f96 Mon Sep 17 00:00:00 2001 +From: Ken Sharp <ken.sharp@artifex.com> +Date: Mon, 29 Apr 2019 11:14:06 +0100 +Subject: [PATCH 1/2] PDF interpreter - Decode ToUnicode entries of the form + /Identity-H/V + +Bug #701003 "Text searchability broken due to omission of /ToUnicode /Identity-H" + +The PDF references from 1.2 too 2.0 all state that the value associated +with a ToUnicode key in a FontDescriptor must be a stream object. However +this file (and one case seen previously, bug 687351) have FontDescriptor +dictionaries where the value associated with a /ToUnicode key is a +name object, in both cases /Identity-H. + +Although this is clearly not legal, Acrobat not only tolerates it, it +actually uses it for search/copy/paste (see bug 701003 for details). +Without the key Acrobat is unable to successfully search the output file. + +We can't simply preserve the name object as a ToUnicode value; when +handling ToUnicode we actually decode the CMap and build a +GlyphNames2Unicode map (an internal representation of the G2U data +produced by the Microsoft PostScript printer driver). When writing the +output file we use that information to get a Unicode value for each +character we write, and build a new ToUnicode CMap using that. + +This commit tackles the problem by pre-scanning for a name object and +then checking to see if its Identity-H or Identity-V (although we have +not seen an Identity-V, there seems no reason why it wouldn't be +equally valid). If we find either of these then we construct a +GlyphNames2Unicode table for all possible values (0 - 65535) and store +that with the font as normal. When we write the output file we only +write the required entries for the subset font, so we write a now +completely legal ToUnicode CMap, and Acrobat is equally happy with that +as the original name. + +If the ToUnicode value isn't a name object, or isn't one of the +identities then we proceed as before. This means we will print a +warning for non conforming ToUnicode entries and ignore them. + +CVE: CVE-2019-14817 +Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] + +Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com> +--- + Resource/Init/pdf_font.ps | 200 ++++++++++++++++++++++++-------------- + 1 file changed, 129 insertions(+), 71 deletions(-) + +diff --git a/Resource/Init/pdf_font.ps b/Resource/Init/pdf_font.ps +index 9fb85f6..2df3303 100644 +--- a/Resource/Init/pdf_font.ps ++++ b/Resource/Init/pdf_font.ps +@@ -621,86 +621,144 @@ currentdict end readonly def + PDFDEBUG { + (.processToUnicode beg) = + } if +- 2 index /ToUnicode knownoget { +- dup type /dicttype eq { dup /File known not } { //true } ifelse { +- % We undefine wrong /Length and define /File in stream dictionaries. +- % Bug687351.pdf defines /ToUnicode /Identity-H, what is incorrect. +- ( **** Warning: Ignoring bad ToUnicode CMap.\n) pdfformatwarning +- pop ++ ++ 2 index /ToUnicode knownoget ++ { ++ dup type /nametype eq { ++ % This is contrary to the specification but it seems that Acrobat at least will accept ++ % a ToUnicode with a value of Identity-H *and* will use that for search, copy/paste. ++ % We can't pass through a name, so the best we can do is build a GlyphNames2Unicode ++ % map matching that which would have been generated by a full 16-bit Identity CMap ++ % ++ % See bug numbers 701003 and 687351 ++ % ++ dup /Identity-H eq 1 index /Identity-V eq or{ ++ pop ++ 1 index /FontInfo .knownget not { ++ currentglobal 2 index dup gcheck setglobal ++ /FontInfo 5 dict dup 5 1 roll .forceput ++ setglobal ++ } if ++ dup /GlyphNames2Unicode .knownget not { ++ //true % No existing G2U, make one ++ } { ++ dup wcheck { ++ //false % Existing, writeable G2U, don't make new one ++ } { ++ pop //true % Existing read only G2U, make new one ++ } ifelse ++ } ifelse ++ { ++ currentglobal exch dup gcheck setglobal ++ dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput ++ 3 2 roll setglobal ++ } if % font-res font-dict encoding|null font-info g2u ++ ++ 0 1 65535{ ++ % g2u index ++ dup dup 256 mod exch 256 idiv % g2u index lo-byte hi-byte ++ 2 string dup 0 4 -1 roll % g2u index lo-byte () () 0 hi-byte ++ put % g2u index lo-byte (x) ++ dup 1 % g2u index lo-byte (x) (x) 1 ++ 4 -1 roll put % g2u index (x) (x) 1 lo-byte -> dict index (xx) ++ 2 index % g2u index (xx) dict ++ 3 1 roll % g2u g2u index (xx) ++ put % g2u ++ } for ++ pop % font-res font-dict encoding|null font-info ++ pop % font-res font-dict encoding|null ++ //false % We built a GlyphNames2Unicode table, don't need to process further ++ }{ ++ //true % name is not Identity-V or H, fail by falling through ++ }ifelse + } { +- /PDFScanRules .getuserparam dup //null eq { +- pop //PDFScanRules_null +- } { +- 1 dict dup /PDFScanRules 4 -1 roll put +- } ifelse +- //PDFScanRules_true setuserparams +- PDFfile fileposition +- 3 -1 roll +- count 1 sub +- countdictstack +- { //false resolvestream +- % Following Acrobat we ignore everything outside +- % begincodespacerange .. endcmap. +- dup 0 (begincodespacerange) /SubFileDecode filter flushfile +- /CIDInit /ProcSet findresource begin +- //ToUnicodeCMapReader begin +- 12 dict begin +- /CMapType 2 def +- mark exch % emulate 'begincodespacerange' +- 0 (endcmap) /SubFileDecode filter cvx /begincmap cvx exch 2 .execn +- endcmap +- userdict /.lastToUnicode currentdict put +- end end end +- } ++ //true ++ } ifelse % not a name, try as a dictionary (as specified) + +- PDFSTOPONERROR { +- { exec } 0 get +- //false +- 5 -2 roll +- 5 ++ % If the ToUnicode isn't a name, or the name isn't Identity-V or -H then follow the specification ++ % If its not a dictionary type throw an error, otherwise decode it and build a GlyphNames2Unicode ++ % ++ { ++ dup type /dicttype eq { dup /File known not } { //true } ifelse { ++ % We undefine wrong /Length and define /File in stream dictionaries. ++ % Bug687351.pdf defines /ToUnicode /Identity-H, what is incorrect. ++ ( **** Warning: Ignoring bad ToUnicode CMap.\n) pdfformatwarning ++ pop + } { +- { stopped } 0 get +- 4 2 roll +- 4 +- } ifelse +- array astore cvx exec ++ /PDFScanRules .getuserparam dup //null eq { ++ pop //PDFScanRules_null ++ } { ++ 1 dict dup /PDFScanRules 4 -1 roll put ++ } ifelse ++ //PDFScanRules_true setuserparams ++ PDFfile fileposition ++ 3 -1 roll ++ count 1 sub ++ countdictstack ++ { //false resolvestream ++ % Following Acrobat we ignore everything outside ++ % begincodespacerange .. endcmap. ++ dup 0 (begincodespacerange) /SubFileDecode filter flushfile ++ /CIDInit /ProcSet findresource begin ++ //ToUnicodeCMapReader begin ++ 12 dict begin ++ /CMapType 2 def ++ mark exch % emulate 'begincodespacerange' ++ 0 (endcmap) /SubFileDecode filter cvx /begincmap cvx exch 2 .execn ++ endcmap ++ userdict /.lastToUnicode currentdict put ++ end end end ++ } + +- countdictstack exch sub 0 .max { end } repeat +- count exch sub 2 sub 0 .max { exch pop } repeat +- 3 1 roll % Stach the stop flag. +- PDFfile exch setfileposition +- setuserparams +- { +- ( **** Warning: Failed to read ToUnicode CMap.\n) pdfformatwarning +- } { +- 1 index /FontInfo .knownget not { +- currentglobal 2 index dup gcheck setglobal +- /FontInfo 5 dict dup 5 1 roll .forceput +- setglobal +- } if +- dup /GlyphNames2Unicode .knownget not { +- //true % No existing G2U, make one ++ PDFSTOPONERROR { ++ { exec } 0 get ++ //false ++ 5 -2 roll ++ 5 ++ } { ++ { stopped } 0 get ++ 4 2 roll ++ 4 ++ } ifelse ++ array astore cvx exec ++ ++ countdictstack exch sub 0 .max { end } repeat ++ count exch sub 2 sub 0 .max { exch pop } repeat ++ 3 1 roll % Stach the stop flag. ++ PDFfile exch setfileposition ++ setuserparams ++ { ++ ( **** Warning: Failed to read ToUnicode CMap.\n) pdfformatwarning + } { +- dup wcheck { +- //false % Existing, writeable G2U, don't make new one ++ 1 index /FontInfo .knownget not { ++ currentglobal 2 index dup gcheck setglobal ++ /FontInfo 5 dict dup 5 1 roll .forceput ++ setglobal ++ } if ++ dup /GlyphNames2Unicode .knownget not { ++ //true % No existing G2U, make one + } { +- pop //true % Existing read only G2U, make new one ++ dup wcheck { ++ //false % Existing, writeable G2U, don't make new one ++ } { ++ pop //true % Existing read only G2U, make new one ++ } ifelse + } ifelse ++ { ++ currentglobal exch dup gcheck setglobal ++ dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput ++ 3 2 roll setglobal ++ } if % font-res font-dict encoding|null font-info g2u ++ exch pop exch % font-res font-dict g2u encoding|null ++ userdict /.lastToUnicode get % font-res font-dict g2u Encoding|null CMap ++ .convert_ToUnicode-into-g2u % font-res font-dict ++ //null % font-res font-dict //null + } ifelse +- { +- currentglobal exch dup gcheck setglobal +- dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput +- 3 2 roll setglobal +- } if % font-res font-dict encoding|null font-info g2u +- exch pop exch % font-res font-dict g2u encoding|null +- userdict /.lastToUnicode get % font-res font-dict g2u Encoding|null CMap +- .convert_ToUnicode-into-g2u % font-res font-dict +- //null % font-res font-dict //null + } ifelse +- } ifelse +- } if +- PDFDEBUG { +- (.processToUnicode end) = ++ } if ++ PDFDEBUG { ++ (.processToUnicode end) = ++ } if + } if + } if + } stopped +-- +2.20.1 + diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch b/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch new file mode 100644 index 000000000..6348fff2d --- /dev/null +++ b/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch @@ -0,0 +1,236 @@ +From cd1b1cacadac2479e291efe611979bdc1b3bdb19 Mon Sep 17 00:00:00 2001 +From: Ken Sharp <ken.sharp@artifex.com> +Date: Wed, 21 Aug 2019 10:10:51 +0100 +Subject: [PATCH 2/2] PDF interpreter - review .forceput security + +Bug #701450 "Safer Mode Bypass by .forceput Exposure in .pdfexectoken" + +By abusing the error handler it was possible to get the PDFDEBUG portion +of .pdfexectoken, which uses .forceput left readable. + +Add an executeonly appropriately to make sure that clause isn't readable +no mstter what. + +Review all the uses of .forceput searching for similar cases, add +executeonly as required to secure those. All cases in the PostScript +support files seem to be covered already. + +CVE: CVE-2019-14817 +Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] + +Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com> +--- + Resource/Init/pdf_base.ps | 2 +- + Resource/Init/pdf_draw.ps | 14 +++++++------- + Resource/Init/pdf_font.ps | 29 ++++++++++++++++------------- + Resource/Init/pdf_main.ps | 6 +++--- + Resource/Init/pdf_ops.ps | 11 ++++++----- + 5 files changed, 33 insertions(+), 29 deletions(-) + +diff --git a/Resource/Init/pdf_base.ps b/Resource/Init/pdf_base.ps +index 1a218f4..cffde5c 100644 +--- a/Resource/Init/pdf_base.ps ++++ b/Resource/Init/pdf_base.ps +@@ -157,7 +157,7 @@ currentdict /num-chars-dict .undef + { + dup ==only () = flush + } ifelse % PDFSTEP +- } if % PDFDEBUG ++ } executeonly if % PDFDEBUG + 2 copy .knownget { + exch pop exch pop exch pop exec + } { +diff --git a/Resource/Init/pdf_draw.ps b/Resource/Init/pdf_draw.ps +index e18a7c2..0a3924c 100644 +--- a/Resource/Init/pdf_draw.ps ++++ b/Resource/Init/pdf_draw.ps +@@ -501,8 +501,8 @@ end + ( Output may be incorrect.\n) pdfformaterror + //pdfdict /.gs_warning_issued //true .forceput + PDFSTOPONERROR { /gs /undefined signalerror } if +- } if +- } ++ } executeonly if ++ } executeonly + ifelse + } bind executeonly def + +@@ -1142,7 +1142,7 @@ currentdict end readonly def + .setglobal + pdfformaterror + } executeonly ifelse +- } ++ } executeonly + { + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput +@@ -1150,8 +1150,8 @@ currentdict end readonly def + pdfformaterror + } executeonly ifelse + end +- } ifelse +- } loop ++ } executeonly ifelse ++ } executeonly loop + { + (\n **** Error: File has unbalanced q/Q operators \(too many q's\)\n Output may be incorrect.\n) + //pdfdict /.Qqwarning_issued .knownget +@@ -1165,14 +1165,14 @@ currentdict end readonly def + .setglobal + pdfformaterror + } executeonly ifelse +- } ++ } executeonly + { + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput + .setglobal + pdfformaterror + } executeonly ifelse +- } if ++ } executeonly if + pop + + % restore pdfemptycount +diff --git a/Resource/Init/pdf_font.ps b/Resource/Init/pdf_font.ps +index 2df3303..6a6a5fe 100644 +--- a/Resource/Init/pdf_font.ps ++++ b/Resource/Init/pdf_font.ps +@@ -638,7 +638,7 @@ currentdict end readonly def + currentglobal 2 index dup gcheck setglobal + /FontInfo 5 dict dup 5 1 roll .forceput + setglobal +- } if ++ } executeonly if + dup /GlyphNames2Unicode .knownget not { + //true % No existing G2U, make one + } { +@@ -668,10 +668,12 @@ currentdict end readonly def + pop % font-res font-dict encoding|null font-info + pop % font-res font-dict encoding|null + //false % We built a GlyphNames2Unicode table, don't need to process further +- }{ ++ } executeonly ++ { + //true % name is not Identity-V or H, fail by falling through + }ifelse +- } { ++ } executeonly ++ { + //true + } ifelse % not a name, try as a dictionary (as specified) + +@@ -759,9 +761,9 @@ currentdict end readonly def + PDFDEBUG { + (.processToUnicode end) = + } if +- } if +- } if +- } stopped ++ } executeonly if ++ } executeonly if ++ } executeonly stopped + { + .dstackdepth 1 countdictstack 1 sub + {pop end} for +@@ -1291,19 +1293,20 @@ currentdict /eexec_pdf_param_dict .undef + //pdfdict /.Qqwarning_issued //true .forceput + } executeonly if + Q +- } repeat ++ } executeonly repeat + Q +- } PDFfile fileposition 2 .execn % Keep pdfcount valid. ++ } executeonly PDFfile fileposition 2 .execn % Keep pdfcount valid. + PDFfile exch setfileposition +- } ifelse +- } { ++ } executeonly ifelse ++ } executeonly ++ { + % PDF Type 3 fonts don't use .notdef + % d1 implementation adjusts the width as needed + 0 0 0 0 0 0 + pdfopdict /d1 get exec + } ifelse + end end +- } bdef ++ } executeonly bdef + dup currentdict Encoding .processToUnicode + currentdict end .completefont exch pop + } bind executeonly odef +@@ -2103,9 +2106,9 @@ currentdict /CMap_read_dict undef + (Will continue, but content may be missing.) = flush + } ifelse + } if +- } if ++ } executeonly if + /findresource cvx /undefined signalerror +- } loop ++ } executeonly loop + } bind executeonly odef + + /buildCIDType0 { % <CIDFontType0-font-resource> buildCIDType0 <font> +diff --git a/Resource/Init/pdf_main.ps b/Resource/Init/pdf_main.ps +index 5305ea6..a59e63c 100644 +--- a/Resource/Init/pdf_main.ps ++++ b/Resource/Init/pdf_main.ps +@@ -2749,15 +2749,15 @@ currentdict /PDF2PS_matrix_key undef + .setglobal + pdfformaterror + } executeonly ifelse +- } ++ } executeonly + { + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput + .setglobal + pdfformaterror + } executeonly ifelse +- } if +- } if ++ } executeonly if ++ } executeonly if + pop + count PDFexecstackcount sub { pop } repeat + (after exec) VMDEBUG +diff --git a/Resource/Init/pdf_ops.ps b/Resource/Init/pdf_ops.ps +index 285e582..6c1f100 100644 +--- a/Resource/Init/pdf_ops.ps ++++ b/Resource/Init/pdf_ops.ps +@@ -186,14 +186,14 @@ currentdict /gput_always_allow .undef + .setglobal + pdfformaterror + } executeonly ifelse +- } ++ } executeonly + { + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput + .setglobal + pdfformaterror + } executeonly ifelse +- } if ++ } executeonly if + } bind executeonly odef + + % Save PDF gstate +@@ -440,11 +440,12 @@ currentdict /gput_always_allow .undef + dup type /booleantype eq { + .currentSMask type /dicttype eq { + .currentSMask /Processed 2 index .forceput ++ } executeonly ++ { ++ .setSMask ++ }ifelse + } executeonly + { +- .setSMask +- }ifelse +- }{ + .setSMask + }ifelse + +-- +2.20.1 + diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript_9.27.bb b/poky/meta/recipes-extended/ghostscript/ghostscript_9.27.bb index fcc9e0099..349c0c2e8 100644 --- a/poky/meta/recipes-extended/ghostscript/ghostscript_9.27.bb +++ b/poky/meta/recipes-extended/ghostscript/ghostscript_9.27.bb @@ -25,6 +25,9 @@ SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/d file://do-not-check-local-libpng-source.patch \ file://avoid-host-contamination.patch \ file://mkdir-p.patch \ + file://CVE-2019-14811-0001.patch \ + file://CVE-2019-14817-0001.patch \ + file://CVE-2019-14817-0002.patch \ " SRC_URI = "${SRC_URI_BASE} \ 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 000000000..348a61d9d --- /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 a190230b3..082597f69 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 @@ SRC_URI = "${GNU_MIRROR}/groff/groff-${PV}.tar.gz \ 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 6a5b2459e..50dad7bf5 100644 --- a/poky/meta/recipes-extended/gzip/gzip_1.10.bb +++ b/poky/meta/recipes-extended/gzip/gzip_1.10.bb @@ -12,9 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ PROVIDES_append_class-native = " gzip-replacement-native" -RDEPENDS_${PN}-ptest += "make" +RDEPENDS_${PN}-ptest += "make perl perl-ptest grep diffutils" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" inherit ptest diff --git a/poky/meta/recipes-extended/images/core-image-lsb-dev.bb b/poky/meta/recipes-extended/images/core-image-lsb-dev.bb deleted file mode 100644 index d2dc9e2b5..000000000 --- a/poky/meta/recipes-extended/images/core-image-lsb-dev.bb +++ /dev/null @@ -1,7 +0,0 @@ -require core-image-lsb.bb - -DESCRIPTION = "Basic image without X support suitable for development work. It \ -can be used for customization and implementations that conform to Linux \ -Standard Base (LSB)." - -IMAGE_FEATURES += "dev-pkgs" diff --git a/poky/meta/recipes-extended/images/core-image-lsb-sdk.bb b/poky/meta/recipes-extended/images/core-image-lsb-sdk.bb deleted file mode 100644 index a3d602edd..000000000 --- a/poky/meta/recipes-extended/images/core-image-lsb-sdk.bb +++ /dev/null @@ -1,12 +0,0 @@ -require core-image-lsb.bb - -DESCRIPTION = "Basic image without X support suitable for Linux Standard Base \ -(LSB) implementations. It includes the full meta-toolchain, plus development \ -headers and libraries to form a standalone SDK." - -IMAGE_FEATURES += "tools-sdk dev-pkgs tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks" - -IMAGE_INSTALL += "kernel-devsrc" - -# Reduce this to try and keep below the 4GB image size for now -IMAGE_OVERHEAD_FACTOR = "1.2" diff --git a/poky/meta/recipes-extended/images/core-image-lsb.bb b/poky/meta/recipes-extended/images/core-image-lsb.bb deleted file mode 100644 index ab61c6e6d..000000000 --- a/poky/meta/recipes-extended/images/core-image-lsb.bb +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION = "An image containing packages that are required to conform \ -to the Linux Standard Base (LSB) specification." - -IMAGE_FEATURES += "splash ssh-server-openssh hwcodecs package-management" - -IMAGE_INSTALL = "\ - ${CORE_IMAGE_BASE_INSTALL} \ - packagegroup-core-full-cmdline \ - packagegroup-core-lsb \ - " - -inherit core-image distro_features_check - -REQUIRED_DISTRO_FEATURES = "pam" diff --git a/poky/meta/recipes-extended/iptables/iptables/0003-extensions-format-security-fixes-in-libipt_icmp.patch b/poky/meta/recipes-extended/iptables/iptables/0003-extensions-format-security-fixes-in-libipt_icmp.patch deleted file mode 100644 index e26594d19..000000000 --- a/poky/meta/recipes-extended/iptables/iptables/0003-extensions-format-security-fixes-in-libipt_icmp.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 907e429d7548157016cd51aba4adc5d0c7d9f816 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Adam=20Go=C5=82=C4=99biowski?= <adamg@pld-linux.org> -Date: Wed, 14 Nov 2018 07:35:28 +0100 -Subject: extensions: format-security fixes in libip[6]t_icmp -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit 61d6c3834de3 ("xtables: add 'printf' attribute to xlate_add") -introduced support for gcc feature to check format string against passed -argument. This commit adds missing bits to extenstions's libipt_icmp.c -and libip6t_icmp6.c that were causing build to fail. - -Fixes: 61d6c3834de3 ("xtables: add 'printf' attribute to xlate_add") -Signed-off-by: Adam GoÅ‚Ä™biowski <adamg@pld-linux.org> -Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> - -Upstream-Status: Backport ---- - extensions/libip6t_icmp6.c | 4 ++-- - extensions/libipt_icmp.c | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/extensions/libip6t_icmp6.c b/extensions/libip6t_icmp6.c -index 45a71875..cc7bfaeb 100644 ---- a/extensions/libip6t_icmp6.c -+++ b/extensions/libip6t_icmp6.c -@@ -230,7 +230,7 @@ static unsigned int type_xlate_print(struct xt_xlate *xl, unsigned int icmptype, - type_name = icmp6_type_xlate(icmptype); - - if (type_name) { -- xt_xlate_add(xl, type_name); -+ xt_xlate_add(xl, "%s", type_name); - } else { - for (i = 0; i < ARRAY_SIZE(icmpv6_codes); ++i) - if (icmpv6_codes[i].type == icmptype && -@@ -239,7 +239,7 @@ static unsigned int type_xlate_print(struct xt_xlate *xl, unsigned int icmptype, - break; - - if (i != ARRAY_SIZE(icmpv6_codes)) -- xt_xlate_add(xl, icmpv6_codes[i].name); -+ xt_xlate_add(xl, "%s", icmpv6_codes[i].name); - else - return 0; - } -diff --git a/extensions/libipt_icmp.c b/extensions/libipt_icmp.c -index 54189976..e76257c5 100644 ---- a/extensions/libipt_icmp.c -+++ b/extensions/libipt_icmp.c -@@ -236,7 +236,7 @@ static unsigned int type_xlate_print(struct xt_xlate *xl, unsigned int icmptype, - if (icmp_codes[i].type == icmptype && - icmp_codes[i].code_min == code_min && - icmp_codes[i].code_max == code_max) { -- xt_xlate_add(xl, icmp_codes[i].name); -+ xt_xlate_add(xl, "%s", icmp_codes[i].name); - return 1; - } - } --- -cgit v1.2.1 - diff --git a/poky/meta/recipes-extended/iptables/iptables/iptables.rules b/poky/meta/recipes-extended/iptables/iptables/iptables.rules new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/poky/meta/recipes-extended/iptables/iptables/iptables.rules diff --git a/poky/meta/recipes-extended/iptables/iptables/iptables.service b/poky/meta/recipes-extended/iptables/iptables/iptables.service new file mode 100644 index 000000000..041316e45 --- /dev/null +++ b/poky/meta/recipes-extended/iptables/iptables/iptables.service @@ -0,0 +1,13 @@ +[Unit] +Description=Packet Filtering Framework +Before=network-pre.target +Wants=network-pre.target + +[Service] +Type=oneshot +ExecStart=@SBINDIR@/iptables-restore /etc/iptables/iptables.rules +ExecReload=@SBINDIR@/iptables-restore /etc/iptables/iptables.rules +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/poky/meta/recipes-extended/iptables/iptables_1.8.2.bb b/poky/meta/recipes-extended/iptables/iptables_1.8.3.bb index ad2c1a6f8..ff9fcb1b5 100644 --- a/poky/meta/recipes-extended/iptables/iptables_1.8.2.bb +++ b/poky/meta/recipes-extended/iptables/iptables_1.8.3.bb @@ -10,13 +10,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263\ 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://0003-extensions-format-security-fixes-in-libipt_icmp.patch \ + file://iptables.service \ + file://iptables.rules \ " -SRC_URI[md5sum] = "944558e88ddcc3b9b0d9550070fa3599" -SRC_URI[sha256sum] = "a3778b50ed1a3256f9ca975de82c2204e508001fc2471238c8c97f3d1c4c12af" +SRC_URI[md5sum] = "29de711d15c040c402cf3038c69ff513" +SRC_URI[sha256sum] = "a23cac034181206b4545f4e7e730e76e08b5f3dd78771ba9645a6756de9cdd80" -inherit autotools pkgconfig +inherit autotools pkgconfig systemd EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR}" @@ -48,8 +49,28 @@ python populate_packages_prepend() { FILES_${PN} += "${datadir}/xtables" +# 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" + +INSANE_SKIP_${PN}-module-xt-conntrack = "dev-so" +INSANE_SKIP_${PN}-module-xt-ct = "dev-so" + ALLOW_EMPTY_${PN}-modules = "1" +do_install_append() { + + install -d ${D}${sysconfdir}/iptables + install -m 0644 ${WORKDIR}/iptables.rules ${D}${sysconfdir}/iptables + + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/iptables.service ${D}${systemd_system_unitdir} + + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/iptables.service +} + +SYSTEMD_SERVICE_${PN} = "iptables.service" + RDEPENDS_${PN} = "${PN}-module-xt-standard" RRECOMMENDS_${PN} = " \ ${PN}-modules \ diff --git a/poky/meta/recipes-extended/iputils/iputils/ai_canonidn.patch b/poky/meta/recipes-extended/iputils/iputils/ai_canonidn.patch deleted file mode 100644 index cd91267b7..000000000 --- a/poky/meta/recipes-extended/iputils/iputils/ai_canonidn.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 714e2b458c151c5bdfe93647445cd00dd8e36fff Mon Sep 17 00:00:00 2001 -From: Petr Vorel <petr.vorel@gmail.com> -Date: Sat, 21 Jul 2018 17:46:14 +0200 -Subject: [PATCH] ping: Fix AI_CANONIDN usage on some systems - -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -Commit 99f67db used AI_CANONIDN in a way, which broke compilation on -systems where AI_CANONIDN is not defined in netdb.h (e.g. glibc < 2.3.4, -alternative libcs that don't support IDN: e.g. current musl 1.1.19 and -uClibc-ng 1.0.30) when not using the system libidn2. - -Fixes: 99f67db ping: Fix ping name encoded using ACE on C locale - -Reported-by: Nicholas Fish -Signed-off-by: Petr Vorel <petr.vorel@gmail.com> - ---- - ping.c | 2 +- - ping.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ping.c b/ping.c -index 733477f..b241815 100644 ---- a/ping.c -+++ b/ping.c -@@ -207,9 +207,9 @@ main(int argc, char **argv) - - #ifdef USE_IDN - setlocale(LC_ALL, ""); --#endif - if (!strcmp(setlocale(LC_ALL, NULL), "C")) - hints.ai_flags &= ~ AI_CANONIDN; -+#endif - - /* Support being called using `ping4` or `ping6` symlinks */ - if (argv[0][strlen(argv[0])-1] == '4') -diff --git a/ping.h b/ping.h -index 3e09685..8a0c4ef 100644 ---- a/ping.h -+++ b/ping.h -@@ -28,7 +28,6 @@ - #include <netinet/icmp6.h> - #include <linux/filter.h> - #include <resolv.h> --#include <locale.h> - - #ifdef CAPABILITIES - #include <sys/prctl.h> -@@ -36,6 +35,7 @@ - #endif - - #ifdef USE_IDN -+#include <locale.h> - #include <idn2.h> - #define getaddrinfo_flags (AI_CANONNAME | AI_IDN | AI_CANONIDN) - #define getnameinfo_flags NI_IDN diff --git a/poky/meta/recipes-extended/iputils/iputils/install.patch b/poky/meta/recipes-extended/iputils/iputils/install.patch deleted file mode 100644 index abfefd7a5..000000000 --- a/poky/meta/recipes-extended/iputils/iputils/install.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 5c8c3b04d73304679340f893636e87691992053b Mon Sep 17 00:00:00 2001 -From: Ross Burton <ross@burtonini.com> -Date: Mon, 23 Jul 2018 14:21:03 +0100 -Subject: [PATCH] Add install - -Add a simple install rule so that we always install the binaries that were built. - -Upstream-Status: Inappropriate -Signed-off-by: Ross Burton <ross.burton@intel.com> - ---- - Makefile | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/Makefile b/Makefile -index 17fc5c9..e0c2784 100644 ---- a/Makefile -+++ b/Makefile -@@ -231,3 +231,7 @@ rpm: - @$(RPMBUILD) -ta --define 'current yes' $(RPMTMP)/iputils.tar.bz2 - @rm -f $(RPMTMP)/iputils.tar.bz2 - -+install: -+ for t in $(TARGETS); do \ -+ install -D $$t $(DESTDIR)$(bindir)/$$t; \ -+ done diff --git a/poky/meta/recipes-extended/iputils/iputils_s20180629.bb b/poky/meta/recipes-extended/iputils/iputils_s20180629.bb deleted file mode 100644 index eff44be1b..000000000 --- a/poky/meta/recipes-extended/iputils/iputils_s20180629.bb +++ /dev/null @@ -1,61 +0,0 @@ -SUMMARY = "Network monitoring tools" -DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \ -tracepath, tracepath6, ping, ping6 and arping." -HOMEPAGE = "https://github.com/iputils/iputils" -SECTION = "console/network" - -LICENSE = "BSD & GPLv2+" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=b792e38abdc59f766a3153908f23e766 \ - file://LICENSE.BSD3;md5=0f00d99239d922ffd13cabef83b33444 \ - file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -DEPENDS = "gnutls libcap libgcrypt" - -SRC_URI = "git://github.com/iputils/iputils \ - file://ai_canonidn.patch \ - file://install.patch" -SRCREV = "f6aac8dbe3f8c45c53424854a3312bdd8cdd58d3" - -S = "${WORKDIR}/git" - -UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>s\d+)" - -EXTRA_OEMAKE = "-e MAKEFLAGS=" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libidn] = "USE_IDN=yes,USE_IDN=no,libidn2" - -do_compile () { - oe_runmake 'CC=${CC} -D_GNU_SOURCE' VPATH="${STAGING_LIBDIR}:${STAGING_DIR_HOST}/${base_libdir}" ${PACKAGECONFIG_CONFARGS} all -} - -do_install() { - oe_runmake DESTDIR=${D} bindir=${base_bindir} install - for b in ping traceroute6 clockdiff; do - chmod u+s ${D}${base_bindir}/$b - done -} - -inherit update-alternatives - -ALTERNATIVE_PRIORITY = "100" - -ALTERNATIVE_${PN}-ping = "ping" -ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" - -SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-traceroute6 ${PN}-clockdiff ${PN}-tftpd ${PN}-rarpd ${PN}-rdisc" -PACKAGES += "${SPLITPKGS}" - -ALLOW_EMPTY_${PN} = "1" -RDEPENDS_${PN} += "${SPLITPKGS}" - -FILES_${PN} = "" -FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" -FILES_${PN}-arping = "${base_bindir}/arping" -FILES_${PN}-tracepath = "${base_bindir}/tracepath" -FILES_${PN}-traceroute6 = "${base_bindir}/traceroute6" -FILES_${PN}-clockdiff = "${base_bindir}/clockdiff" -FILES_${PN}-tftpd = "${base_bindir}/tftpd" -FILES_${PN}-rarpd = "${base_bindir}/rarpd" -FILES_${PN}-rdisc = "${base_bindir}/rdisc" diff --git a/poky/meta/recipes-extended/iputils/iputils_s20190709.bb b/poky/meta/recipes-extended/iputils/iputils_s20190709.bb new file mode 100644 index 000000000..d8f2470d0 --- /dev/null +++ b/poky/meta/recipes-extended/iputils/iputils_s20190709.bb @@ -0,0 +1,55 @@ +SUMMARY = "Network monitoring tools" +DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \ +tracepath, tracepath6, ping, ping6 and arping." +HOMEPAGE = "https://github.com/iputils/iputils" +SECTION = "console/network" + +LICENSE = "BSD & GPLv2+" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=55aa8c9fcad0691cef0ecd420361e390" + +DEPENDS = "gnutls" + +SRC_URI = "git://github.com/iputils/iputils" +SRCREV = "13e00847176aa23683d68fce1d17ffb523510946" + +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>s\d+)" + +PACKAGECONFIG ??= "libcap libgcrypt rarpd traceroute6" +PACKAGECONFIG[libcap] = "-DUSE_CAP=true, -DUSE_CAP=false, libcap" +PACKAGECONFIG[libgcrypt] = "-DUSE_CRYPTO=gcrypt, -DUSE_CRYPTO=none, libgcrypt" +PACKAGECONFIG[libidn] = "-DUSE_IDN=true, -DUSE_IDN=false, libidn2" +PACKAGECONFIG[gettext] = "-DUSE_GETTEXT=true, -DUSE_GETTEXT=false, gettext" +PACKAGECONFIG[rarpd] = "-DBUILD_RARPD=true,-DBUILD_RARPD=false," +PACKAGECONFIG[traceroute6] = "-DBUILD_TRACEROUTE6=true,-DBUILD_TRACEROUTE6=false," +PACKAGECONFIG[docs] = "-DBUILD_HTML_MANS=true -DBUILD_MANS=true,-DBUILD_HTML_MANS=false -DBUILD_MANS=false, libxslt" + +inherit meson update-alternatives + +EXTRA_OEMESON += "--prefix=${root_prefix}/" + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN}-ping = "ping" +ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" + +SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-traceroute6 ${PN}-clockdiff ${PN}-tftpd ${PN}-rarpd ${PN}-rdisc ${PN}-ninfod" +PACKAGES += "${SPLITPKGS}" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-rarpd = "1" +ALLOW_EMPTY_${PN}-traceroute6 = "1" +RDEPENDS_${PN} += "${SPLITPKGS}" + +FILES_${PN} = "" +FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" +FILES_${PN}-arping = "${base_bindir}/arping" +FILES_${PN}-tracepath = "${base_bindir}/tracepath" +FILES_${PN}-traceroute6 = "${base_bindir}/traceroute6" +FILES_${PN}-clockdiff = "${base_bindir}/clockdiff" +FILES_${PN}-tftpd = "${base_bindir}/tftpd" +FILES_${PN}-rarpd = "${base_sbindir}/rarpd" +FILES_${PN}-rdisc = "${base_sbindir}/rdisc" +FILES_${PN}-ninfod = "${base_sbindir}/ninfod ${sysconfdir}/init.d/ninfod.sh" diff --git a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000877.patch b/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000877.patch deleted file mode 100644 index ce638370b..000000000 --- a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000877.patch +++ /dev/null @@ -1,38 +0,0 @@ -CVE: CVE-2018-1000877 -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 021efa522ad729ff0f5806c4ce53e4a6cc1daa31 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens <dja@axtens.net> -Date: Tue, 20 Nov 2018 17:56:29 +1100 -Subject: [PATCH] Avoid a double-free when a window size of 0 is specified - -new_size can be 0 with a malicious or corrupted RAR archive. - -realloc(area, 0) is equivalent to free(area), so the region would -be free()d here and the free()d again in the cleanup function. - -Found with a setup running AFL, afl-rb, and qsym. ---- - libarchive/archive_read_support_format_rar.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c -index 23452222..6f419c27 100644 ---- a/libarchive/archive_read_support_format_rar.c -+++ b/libarchive/archive_read_support_format_rar.c -@@ -2300,6 +2300,11 @@ parse_codes(struct archive_read *a) - new_size = DICTIONARY_MAX_SIZE; - else - new_size = rar_fls((unsigned int)rar->unp_size) << 1; -+ if (new_size == 0) { -+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, -+ "Zero window size is invalid."); -+ return (ARCHIVE_FATAL); -+ } - new_window = realloc(rar->lzss.window, new_size); - if (new_window == NULL) { - archive_set_error(&a->archive, ENOMEM, --- -2.20.0 - diff --git a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000878.patch b/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000878.patch deleted file mode 100644 index 7468fd3c9..000000000 --- a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000878.patch +++ /dev/null @@ -1,79 +0,0 @@ -CVE: CVE-2018-1000878 -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From bfcfe6f04ed20db2504db8a254d1f40a1d84eb28 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens <dja@axtens.net> -Date: Tue, 4 Dec 2018 00:55:22 +1100 -Subject: [PATCH] rar: file split across multi-part archives must match - -Fuzzing uncovered some UAF and memory overrun bugs where a file in a -single file archive reported that it was split across multiple -volumes. This was caused by ppmd7 operations calling -rar_br_fillup. This would invoke rar_read_ahead, which would in some -situations invoke archive_read_format_rar_read_header. That would -check the new file name against the old file name, and if they didn't -match up it would free the ppmd7 buffer and allocate a new -one. However, because the ppmd7 decoder wasn't actually done with the -buffer, it would continue to used the freed buffer. Both reads and -writes to the freed region can be observed. - -This is quite tricky to solve: once the buffer has been freed it is -too late, as the ppmd7 decoder functions almost universally assume -success - there's no way for ppmd_read to signal error, nor are there -good ways for functions like Range_Normalise to propagate them. So we -can't detect after the fact that we're in an invalid state - e.g. by -checking rar->cursor, we have to prevent ourselves from ever ending up -there. So, when we are in the dangerous part or rar_read_ahead that -assumes a valid split, we set a flag force read_header to either go -down the path for split files or bail. This means that the ppmd7 -decoder keeps a valid buffer and just runs out of data. - -Found with a combination of AFL, afl-rb and qsym. ---- - libarchive/archive_read_support_format_rar.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c -index 6f419c27..a8cc5c94 100644 ---- a/libarchive/archive_read_support_format_rar.c -+++ b/libarchive/archive_read_support_format_rar.c -@@ -258,6 +258,7 @@ struct rar - struct data_block_offsets *dbo; - unsigned int cursor; - unsigned int nodes; -+ char filename_must_match; - - /* LZSS members */ - struct huffman_code maincode; -@@ -1560,6 +1561,12 @@ read_header(struct archive_read *a, struct archive_entry *entry, - } - return ret; - } -+ else if (rar->filename_must_match) -+ { -+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, -+ "Mismatch of file parts split across multi-volume archive"); -+ return (ARCHIVE_FATAL); -+ } - - rar->filename_save = (char*)realloc(rar->filename_save, - filename_size + 1); -@@ -2933,12 +2940,14 @@ rar_read_ahead(struct archive_read *a, size_t min, ssize_t *avail) - else if (*avail == 0 && rar->main_flags & MHD_VOLUME && - rar->file_flags & FHD_SPLIT_AFTER) - { -+ rar->filename_must_match = 1; - ret = archive_read_format_rar_read_header(a, a->entry); - if (ret == (ARCHIVE_EOF)) - { - rar->has_endarc_header = 1; - ret = archive_read_format_rar_read_header(a, a->entry); - } -+ rar->filename_must_match = 0; - if (ret != (ARCHIVE_OK)) - return NULL; - return rar_read_ahead(a, min, avail); --- -2.20.0 - diff --git a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000879.patch b/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000879.patch deleted file mode 100644 index 9f25932a1..000000000 --- a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000879.patch +++ /dev/null @@ -1,50 +0,0 @@ -CVE: CVE-2018-1000879 -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 15bf44fd2c1ad0e3fd87048b3fcc90c4dcff1175 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens <dja@axtens.net> -Date: Tue, 4 Dec 2018 14:29:42 +1100 -Subject: [PATCH] Skip 0-length ACL fields - -Currently, it is possible to create an archive that crashes bsdtar -with a malformed ACL: - -Program received signal SIGSEGV, Segmentation fault. -archive_acl_from_text_l (acl=<optimised out>, text=0x7e2e92 "", want_type=<optimised out>, sc=<optimised out>) at libarchive/archive_acl.c:1726 -1726 switch (*s) { -(gdb) p n -$1 = 1 -(gdb) p field[n] -$2 = {start = 0x0, end = 0x0} - -Stop this by checking that the length is not zero before beginning -the switch statement. - -I am pretty sure this is the bug mentioned in the qsym paper [1], -and I was able to replicate it with a qsym + AFL + afl-rb setup. - -[1] https://www.usenix.org/conference/usenixsecurity18/presentation/yun ---- - libarchive/archive_acl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/libarchive/archive_acl.c b/libarchive/archive_acl.c -index 512beee1..7beeee86 100644 ---- a/libarchive/archive_acl.c -+++ b/libarchive/archive_acl.c -@@ -1723,6 +1723,11 @@ archive_acl_from_text_l(struct archive_acl *acl, const char *text, - st = field[n].start + 1; - len = field[n].end - field[n].start; - -+ if (len == 0) { -+ ret = ARCHIVE_WARN; -+ continue; -+ } -+ - switch (*s) { - case 'u': - if (len == 1 || (len == 4 --- -2.20.0 - diff --git a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000880.patch b/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000880.patch deleted file mode 100644 index bc264a124..000000000 --- a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000880.patch +++ /dev/null @@ -1,44 +0,0 @@ -CVE: CVE-2018-1000880 -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 9c84b7426660c09c18cc349f6d70b5f8168b5680 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens <dja@axtens.net> -Date: Tue, 4 Dec 2018 16:33:42 +1100 -Subject: [PATCH] warc: consume data once read - -The warc decoder only used read ahead, it wouldn't actually consume -data that had previously been printed. This means that if you specify -an invalid content length, it will just reprint the same data over -and over and over again until it hits the desired length. - -This means that a WARC resource with e.g. -Content-Length: 666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666665 -but only a few hundred bytes of data, causes a quasi-infinite loop. - -Consume data in subsequent calls to _warc_read. - -Found with an AFL + afl-rb + qsym setup. ---- - libarchive/archive_read_support_format_warc.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/libarchive/archive_read_support_format_warc.c b/libarchive/archive_read_support_format_warc.c -index e8753853..e8fc8428 100644 ---- a/libarchive/archive_read_support_format_warc.c -+++ b/libarchive/archive_read_support_format_warc.c -@@ -386,6 +386,11 @@ _warc_read(struct archive_read *a, const void **buf, size_t *bsz, int64_t *off) - return (ARCHIVE_EOF); - } - -+ if (w->unconsumed) { -+ __archive_read_consume(a, w->unconsumed); -+ w->unconsumed = 0U; -+ } -+ - rab = __archive_read_ahead(a, 1U, &nrd); - if (nrd < 0) { - *bsz = 0U; --- -2.20.0 - diff --git a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000019.patch b/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000019.patch deleted file mode 100644 index 7f39893c2..000000000 --- a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000019.patch +++ /dev/null @@ -1,59 +0,0 @@ -CVE: CVE-2019-1000019 -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 65a23f5dbee4497064e9bb467f81138a62b0dae1 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens <dja@axtens.net> -Date: Tue, 1 Jan 2019 16:01:40 +1100 -Subject: [PATCH 2/2] 7zip: fix crash when parsing certain archives - -Fuzzing with CRCs disabled revealed that a call to get_uncompressed_data() -would sometimes fail to return at least 'minimum' bytes. This can cause -the crc32() invocation in header_bytes to read off into invalid memory. - -A specially crafted archive can use this to cause a crash. - -An ASAN trace is below, but ASAN is not required - an uninstrumented -binary will also crash. - -==7719==ERROR: AddressSanitizer: SEGV on unknown address 0x631000040000 (pc 0x7fbdb3b3ec1d bp 0x7ffe77a51310 sp 0x7ffe77a51150 T0) -==7719==The signal is caused by a READ memory access. - #0 0x7fbdb3b3ec1c in crc32_z (/lib/x86_64-linux-gnu/libz.so.1+0x2c1c) - #1 0x84f5eb in header_bytes (/tmp/libarchive/bsdtar+0x84f5eb) - #2 0x856156 in read_Header (/tmp/libarchive/bsdtar+0x856156) - #3 0x84e134 in slurp_central_directory (/tmp/libarchive/bsdtar+0x84e134) - #4 0x849690 in archive_read_format_7zip_read_header (/tmp/libarchive/bsdtar+0x849690) - #5 0x5713b7 in _archive_read_next_header2 (/tmp/libarchive/bsdtar+0x5713b7) - #6 0x570e63 in _archive_read_next_header (/tmp/libarchive/bsdtar+0x570e63) - #7 0x6f08bd in archive_read_next_header (/tmp/libarchive/bsdtar+0x6f08bd) - #8 0x52373f in read_archive (/tmp/libarchive/bsdtar+0x52373f) - #9 0x5257be in tar_mode_x (/tmp/libarchive/bsdtar+0x5257be) - #10 0x51daeb in main (/tmp/libarchive/bsdtar+0x51daeb) - #11 0x7fbdb27cab96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 - #12 0x41dd09 in _start (/tmp/libarchive/bsdtar+0x41dd09) - -This was primarly done with afl and FairFuzz. Some early corpus entries -may have been generated by qsym. ---- - libarchive/archive_read_support_format_7zip.c | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) - -diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c -index bccbf8966..b6d1505d3 100644 ---- a/libarchive/archive_read_support_format_7zip.c -+++ b/libarchive/archive_read_support_format_7zip.c -@@ -2964,13 +2964,7 @@ get_uncompressed_data(struct archive_read *a, const void **buff, size_t size, - if (zip->codec == _7Z_COPY && zip->codec2 == (unsigned long)-1) { - /* Copy mode. */ - -- /* -- * Note: '1' here is a performance optimization. -- * Recall that the decompression layer returns a count of -- * available bytes; asking for more than that forces the -- * decompressor to combine reads by copying data. -- */ -- *buff = __archive_read_ahead(a, 1, &bytes_avail); -+ *buff = __archive_read_ahead(a, minimum, &bytes_avail); - if (bytes_avail <= 0) { - archive_set_error(&a->archive, - ARCHIVE_ERRNO_FILE_FORMAT, diff --git a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000020.patch b/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000020.patch deleted file mode 100644 index 25a76fdcd..000000000 --- a/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000020.patch +++ /dev/null @@ -1,61 +0,0 @@ -CVE: CVE-2019-1000020 -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 8312eaa576014cd9b965012af51bc1f967b12423 Mon Sep 17 00:00:00 2001 -From: Daniel Axtens <dja@axtens.net> -Date: Tue, 1 Jan 2019 17:10:49 +1100 -Subject: [PATCH 1/2] iso9660: Fail when expected Rockridge extensions is - missing - -A corrupted or malicious ISO9660 image can cause read_CE() to loop -forever. - -read_CE() calls parse_rockridge(), expecting a Rockridge extension -to be read. However, parse_rockridge() is structured as a while -loop starting with a sanity check, and if the sanity check fails -before the loop has run, the function returns ARCHIVE_OK without -advancing the position in the file. This causes read_CE() to retry -indefinitely. - -Make parse_rockridge() return ARCHIVE_WARN if it didn't read an -extension. As someone with no real knowledge of the format, this -seems more apt than ARCHIVE_FATAL, but both the call-sites escalate -it to a fatal error immediately anyway. - -Found with a combination of AFL, afl-rb (FairFuzz) and qsym. ---- - libarchive/archive_read_support_format_iso9660.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c -index 28acfefbb..bad8f1dfe 100644 ---- a/libarchive/archive_read_support_format_iso9660.c -+++ b/libarchive/archive_read_support_format_iso9660.c -@@ -2102,6 +2102,7 @@ parse_rockridge(struct archive_read *a, struct file_info *file, - const unsigned char *p, const unsigned char *end) - { - struct iso9660 *iso9660; -+ int entry_seen = 0; - - iso9660 = (struct iso9660 *)(a->format->data); - -@@ -2257,8 +2258,16 @@ parse_rockridge(struct archive_read *a, struct file_info *file, - } - - p += p[2]; -+ entry_seen = 1; -+ } -+ -+ if (entry_seen) -+ return (ARCHIVE_OK); -+ else { -+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, -+ "Tried to parse Rockridge extensions, but none found"); -+ return (ARCHIVE_WARN); - } -- return (ARCHIVE_OK); - } - - static int - diff --git a/poky/meta/recipes-extended/libarchive/libarchive/bug1066.patch b/poky/meta/recipes-extended/libarchive/libarchive/bug1066.patch deleted file mode 100644 index 0a662b57b..000000000 --- a/poky/meta/recipes-extended/libarchive/libarchive/bug1066.patch +++ /dev/null @@ -1,54 +0,0 @@ -libarchive-3.3.3: Fix bug1066 - -[No upstream tracking] -- https://github.com/libarchive/libarchive/pull/1066 - -archive_write_set_format_*.c: fix out of bounds read on empty string () filename -for guntar, pax and v7tar - -There is an out of bounds read flaw in the archive_write_gnutar_header, -archive_write_pax_header and archive_write_v7tar_header functions which -could leds to cause a denial of service. - -Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/c246ec5d058a3f70a2d3fb765f92fe9db77b25df] -Bug: 1066 -Signed-off-by: Andrej Valek <andrej.valek@siemens.com> - -diff --git a/libarchive/archive_write_set_format_gnutar.c b/libarchive/archive_write_set_format_gnutar.c -index 2d858c9..1966c53 100644 ---- a/libarchive/archive_write_set_format_gnutar.c -+++ b/libarchive/archive_write_set_format_gnutar.c -@@ -339,7 +339,7 @@ archive_write_gnutar_header(struct archive_write *a, - * case getting WCS failed. On POSIX, this is a - * normal operation. - */ -- if (p != NULL && p[strlen(p) - 1] != '/') { -+ if (p != NULL && p[0] != '\0' && p[strlen(p) - 1] != '/') { - struct archive_string as; - - archive_string_init(&as); -diff --git a/libarchive/archive_write_set_format_pax.c b/libarchive/archive_write_set_format_pax.c -index 6a301ac..4cfa8ff 100644 ---- a/libarchive/archive_write_set_format_pax.c -+++ b/libarchive/archive_write_set_format_pax.c -@@ -660,7 +660,7 @@ archive_write_pax_header(struct archive_write *a, - * case getting WCS failed. On POSIX, this is a - * normal operation. - */ -- if (p != NULL && p[strlen(p) - 1] != '/') { -+ if (p != NULL && p[0] != '\0' && p[strlen(p) - 1] != '/') { - struct archive_string as; - - archive_string_init(&as); -diff --git a/libarchive/archive_write_set_format_v7tar.c b/libarchive/archive_write_set_format_v7tar.c -index 62b1522..53c0db0 100644 ---- a/libarchive/archive_write_set_format_v7tar.c -+++ b/libarchive/archive_write_set_format_v7tar.c -@@ -284,7 +284,7 @@ archive_write_v7tar_header(struct archive_write *a, struct archive_entry *entry) - * case getting WCS failed. On POSIX, this is a - * normal operation. - */ -- if (p != NULL && p[strlen(p) - 1] != '/') { -+ if (p != NULL && p[0] != '\0' && p[strlen(p) - 1] != '/') { - struct archive_string as; - - archive_string_init(&as); diff --git a/poky/meta/recipes-extended/libarchive/libarchive/non-recursive-extract-and-list.patch b/poky/meta/recipes-extended/libarchive/libarchive/non-recursive-extract-and-list.patch deleted file mode 100644 index cd7be5127..000000000 --- a/poky/meta/recipes-extended/libarchive/libarchive/non-recursive-extract-and-list.patch +++ /dev/null @@ -1,153 +0,0 @@ -From 47f7566f6829c2b14e21bbbba699916de4998c72 Mon Sep 17 00:00:00 2001 -From: Patrick Ohly <patrick.ohly@intel.com> -Date: Mon, 24 Oct 2016 12:54:48 +0200 -Subject: [PATCH 1/1] non-recursive extract and list - -Sometimes it makes sense to extract or list a directory contained in -an archive without also doing the same for the content of the -directory, i.e. allowing -n (= --no-recursion) in combination with the -x and t modes. - -bsdtar uses the match functionality in libarchive to track include -matches. A new libarchive API call -archive_match_include_directories_recursively() gets introduced to -influence the matching behavior, with the default behavior as before. - -Non-recursive matching can be achieved by anchoring the path match at -both start and end. Asking for a directory which itself isn't in the -archive when in non-recursive mode is an error and handled by the -existing mechanism for tracking unused inclusion entries. - -Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/812] - -Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> - ---- - libarchive/archive.h | 2 ++ - libarchive/archive_match.c | 30 +++++++++++++++++++++++++++++- - tar/bsdtar.1 | 3 +-- - tar/bsdtar.c | 12 ++++++++++-- - 4 files changed, 42 insertions(+), 5 deletions(-) - -diff --git a/libarchive/archive.h b/libarchive/archive.h -index 32710201..59fb4aa6 100644 ---- a/libarchive/archive.h -+++ b/libarchive/archive.h -@@ -1093,6 +1093,8 @@ __LA_DECL int archive_match_excluded(struct archive *, - */ - __LA_DECL int archive_match_path_excluded(struct archive *, - struct archive_entry *); -+/* Control recursive inclusion of directory content when directory is included. Default on. */ -+__LA_DECL int archive_match_include_directories_recursively(struct archive *, int _enabled); - /* Add exclusion pathname pattern. */ - __LA_DECL int archive_match_exclude_pattern(struct archive *, const char *); - __LA_DECL int archive_match_exclude_pattern_w(struct archive *, -diff --git a/libarchive/archive_match.c b/libarchive/archive_match.c -index be72066e..bb6a3407 100644 ---- a/libarchive/archive_match.c -+++ b/libarchive/archive_match.c -@@ -93,6 +93,9 @@ struct archive_match { - /* exclusion/inclusion set flag. */ - int setflag; - -+ /* Recursively include directory content? */ -+ int recursive_include; -+ - /* - * Matching filename patterns. - */ -@@ -223,6 +226,7 @@ archive_match_new(void) - return (NULL); - a->archive.magic = ARCHIVE_MATCH_MAGIC; - a->archive.state = ARCHIVE_STATE_NEW; -+ a->recursive_include = 1; - match_list_init(&(a->inclusions)); - match_list_init(&(a->exclusions)); - __archive_rb_tree_init(&(a->exclusion_tree), &rb_ops_mbs); -@@ -471,6 +475,28 @@ archive_match_path_excluded(struct archive *_a, - } - - /* -+ * When recursive inclusion of directory content is enabled, -+ * an inclusion pattern that matches a directory will also -+ * include everything beneath that directory. Enabled by default. -+ * -+ * For compatibility with GNU tar, exclusion patterns always -+ * match if a subset of the full patch matches (i.e., they are -+ * are not rooted at the beginning of the path) and thus there -+ * is no corresponding non-recursive exclusion mode. -+ */ -+int -+archive_match_include_directories_recursively(struct archive *_a, int _enabled) -+{ -+ struct archive_match *a; -+ -+ archive_check_magic(_a, ARCHIVE_MATCH_MAGIC, -+ ARCHIVE_STATE_NEW, "archive_match_include_directories_recursively"); -+ a = (struct archive_match *)_a; -+ a->recursive_include = _enabled; -+ return (ARCHIVE_OK); -+} -+ -+/* - * Utility functions to get statistic information for inclusion patterns. - */ - int -@@ -781,7 +807,9 @@ static int - match_path_inclusion(struct archive_match *a, struct match *m, - int mbs, const void *pn) - { -- int flag = PATHMATCH_NO_ANCHOR_END; -+ int flag = a->recursive_include ? -+ PATHMATCH_NO_ANCHOR_END : /* Prefix match is good enough. */ -+ 0; /* Full match required. */ - int r; - - if (mbs) { -diff --git a/tar/bsdtar.1 b/tar/bsdtar.1 -index 132e1145..1dd2a847 100644 ---- a/tar/bsdtar.1 -+++ b/tar/bsdtar.1 -@@ -386,8 +386,7 @@ and the default behavior in c, r, and u modes or if - .Nm - is run in x mode as root. - .It Fl n , Fl Fl norecurse , Fl Fl no-recursion --(c, r, u modes only) --Do not recursively archive the contents of directories. -+Do not recursively archive (c, r, u), extract (x) or list (t) the contents of directories. - .It Fl Fl newer Ar date - (c, r, u modes only) - Only include files and directories newer than the specified date. -diff --git a/tar/bsdtar.c b/tar/bsdtar.c -index 11dedbf9..d014cc3e 100644 ---- a/tar/bsdtar.c -+++ b/tar/bsdtar.c -@@ -794,8 +794,6 @@ main(int argc, char **argv) - break; - } - } -- if (bsdtar->flags & OPTFLAG_NO_SUBDIRS) -- only_mode(bsdtar, "-n", "cru"); - if (bsdtar->flags & OPTFLAG_STDOUT) - only_mode(bsdtar, "-O", "xt"); - if (bsdtar->flags & OPTFLAG_UNLINK_FIRST) -@@ -845,6 +843,16 @@ main(int argc, char **argv) - only_mode(bsdtar, buff, "cru"); - } - -+ /* -+ * When creating an archive from a directory tree, the directory -+ * walking code will already avoid entering directories when -+ * recursive inclusion of directory content is disabled, therefore -+ * changing the matching behavior has no effect for creation modes. -+ * It is relevant for extraction or listing. -+ */ -+ archive_match_include_directories_recursively(bsdtar->matching, -+ !(bsdtar->flags & OPTFLAG_NO_SUBDIRS)); -+ - /* Filename "-" implies stdio. */ - if (strcmp(bsdtar->filename, "-") == 0) - bsdtar->filename = NULL; --- -2.11.0 - diff --git a/poky/meta/recipes-extended/libarchive/libarchive_3.3.3.bb b/poky/meta/recipes-extended/libarchive/libarchive_3.4.0.bb index af5ca6529..c789cd44d 100644 --- a/poky/meta/recipes-extended/libarchive/libarchive_3.3.3.bb +++ b/poky/meta/recipes-extended/libarchive/libarchive_3.4.0.bb @@ -3,7 +3,7 @@ DESCRIPTION = "C library and command-line tools for reading and writing tar, cpi HOMEPAGE = "http://www.libarchive.org/" SECTION = "devel" LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=ed99aca006bc346974bb745a35336425" +LIC_FILES_CHKSUM = "file://COPYING;md5=fe01f5e02b1f0cc934d593a7b0ddceb6" DEPENDS = "e2fsprogs-native" @@ -32,18 +32,10 @@ PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4," EXTRA_OECONF += "--enable-largefile" SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \ - file://non-recursive-extract-and-list.patch \ - file://bug1066.patch \ - file://CVE-2018-1000877.patch \ - file://CVE-2018-1000878.patch \ - file://CVE-2018-1000879.patch \ - file://CVE-2018-1000880.patch \ - file://CVE-2019-1000019.patch \ - file://CVE-2019-1000020.patch \ " -SRC_URI[md5sum] = "4038e366ca5b659dae3efcc744e72120" -SRC_URI[sha256sum] = "ba7eb1781c9fbbae178c4c6bad1c6eb08edab9a1496c64833d1715d022b30e2e" +SRC_URI[md5sum] = "6046396255bd7cf6d0f6603a9bda39ac" +SRC_URI[sha256sum] = "8643d50ed40c759f5412a3af4e353cffbce4fdf3b5cf321cb72cacf06b2d825e" inherit autotools update-alternatives pkgconfig 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 d7fec89fb..bcbfdd85b 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 @@ EXTRA_OECONF += "--disable-rpath \ --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 47447acd6..a1d914e87 100644 --- a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb +++ b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb @@ -13,9 +13,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" SECTION = "libs" DEPENDS += "libtirpc libnsl2" -PV = "3.0+git${SRCPV}" +PV = "3.1+git${SRCPV}" -SRCREV = "d4aea48657a8e90d7922574b8021ee03915a36cb" +SRCREV = "062f31999b35393abf7595cb89dfc9590d5a42ad" SRC_URI = "git://github.com/thkukuk/libnss_nis \ " diff --git a/poky/meta/recipes-extended/libsolv/libsolv/0001-build-use-GNUInstallDirs.patch b/poky/meta/recipes-extended/libsolv/libsolv/0001-build-use-GNUInstallDirs.patch deleted file mode 100644 index 75ef15005..000000000 --- a/poky/meta/recipes-extended/libsolv/libsolv/0001-build-use-GNUInstallDirs.patch +++ /dev/null @@ -1,188 +0,0 @@ -Backport a patch from upstream to use GNUInstallDirs instead of -hand-coded path logic, so we have proper control over where files end up. - -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From b6c9df4c686975ce5009d09dac706a4e83f02a31 Mon Sep 17 00:00:00 2001 -From: Igor Gnatenko <i.gnatenko.brain@gmail.com> -Date: Mon, 2 Jul 2018 12:56:41 +0100 -Subject: [PATCH] build: use GNUInstallDirs - -Fixes: #128 -Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com> ---- - CMakeLists.txt | 34 +++++++--------------------------- - README | 2 +- - doc/CMakeLists.txt | 4 ++-- - examples/solv/CMakeLists.txt | 2 +- - ext/CMakeLists.txt | 8 ++++---- - libsolv.pc.in | 4 ++-- - libsolvext.pc.in | 4 ++-- - src/CMakeLists.txt | 8 ++++---- - tools/CMakeLists.txt | 3 +-- - 9 files changed, 24 insertions(+), 45 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1deef57d..7e9ffa9b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,6 +1,6 @@ - PROJECT (libsolv) - --CMAKE_MINIMUM_REQUIRED (VERSION 2.4) -+CMAKE_MINIMUM_REQUIRED (VERSION 2.8.5) - - OPTION (ENABLE_STATIC "Build a static version of the libraries?" OFF) - OPTION (DISABLE_SHARED "Do not build a shared version of the libraries?" OFF) -@@ -38,34 +38,14 @@ OPTION (ENABLE_ZCHUNK_COMPRESSION "Build with zchunk compression support?" OFF) - OPTION (WITH_SYSTEM_ZCHUNK "Use system zchunk library?" OFF) - OPTION (WITH_LIBXML2 "Build with libxml2 instead of libexpat?" OFF) - --# Library --IF (DEFINED LIB) -- SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}") --ELSE (DEFINED LIB) -- IF (CMAKE_SIZEOF_VOID_P MATCHES "8") -- SET (LIB_SUFFIX "64") -- ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") -- SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") --ENDIF (DEFINED LIB) --MESSAGE (STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}") --# Library --IF (DEFINED INCLUDE) -- SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${INCLUDE}") --else (DEFINED INCLUDE) -- SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include") --ENDIF (DEFINED INCLUDE) --MESSAGE (STATUS "Header files will be installed in ${INCLUDE_INSTALL_DIR}") --SET (BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin") --IF (NOT MAN_INSTALL_DIR) --SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/man") --IF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man") -- SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/man") --ENDIF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man") --ENDIF (NOT MAN_INSTALL_DIR) --MESSAGE(STATUS "Man pages will be installed in ${MAN_INSTALL_DIR}") -+include (GNUInstallDirs) -+message (STATUS "Libraries will be installed in ${CMAKE_INSTALL_FULL_LIBDIR}") -+message (STATUS "Header files will be installed in ${CMAKE_INSTALL_FULL_INCLUDEDIR}") -+message (STATUS "Binaries will be installed in ${CMAKE_INSTALL_FULL_BINDIR}") -+message (STATUS "Man pages will be installed in ${CMAKE_INSTALL_FULL_MANDIR}") - - IF (NOT PKGCONFIG_INSTALL_DIR) -- SET (PKGCONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/pkgconfig) -+ SET (PKGCONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - ENDIF (NOT PKGCONFIG_INSTALL_DIR) - #################################################################### - # CONFIGURATION # -diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt -index 66011b48..ed38274e 100644 ---- a/doc/CMakeLists.txt -+++ b/doc/CMakeLists.txt -@@ -48,8 +48,8 @@ STRING(REGEX REPLACE "([^;]+)" "gen/\\1" libsolv_MANPAGES3 "${libsolv_MANPAGES3} - - INSTALL(FILES - ${libsolv_MANPAGES3} -- DESTINATION "${MAN_INSTALL_DIR}/man3") -+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") - - INSTALL(FILES - ${libsolv_MANPAGES1} -- DESTINATION "${MAN_INSTALL_DIR}/man1") -+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") -diff --git a/examples/solv/CMakeLists.txt b/examples/solv/CMakeLists.txt -index 41f45f74..0f3bd477 100644 ---- a/examples/solv/CMakeLists.txt -+++ b/examples/solv/CMakeLists.txt -@@ -25,5 +25,5 @@ TARGET_LINK_LIBRARIES (solv libsolvext libsolv ${SYSTEM_LIBRARIES}) - - INSTALL(TARGETS - solv -- DESTINATION ${BIN_INSTALL_DIR}) -+ DESTINATION ${CMAKE_INSTALL_BINDIR}) - -diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt -index edc2b9f9..6dd28b1a 100644 ---- a/ext/CMakeLists.txt -+++ b/ext/CMakeLists.txt -@@ -145,14 +145,14 @@ ENDIF (DISABLE_SHARED) - - SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext") - SET_TARGET_PROPERTIES(libsolvext PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) --SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) -+SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) - --INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/solv") --INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION bin) -+INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") -+INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - IF (ENABLE_STATIC AND NOT DISABLE_SHARED) - ADD_LIBRARY (libsolvext_static STATIC ${libsolvext_SRCS}) - SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES OUTPUT_NAME "solvext") - SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) --INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) -+INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED) -diff --git a/libsolv.pc.in b/libsolv.pc.in -index 40a86230..766146c5 100644 ---- a/libsolv.pc.in -+++ b/libsolv.pc.in -@@ -1,5 +1,5 @@ --libdir=@LIB_INSTALL_DIR@ --includedir=@INCLUDE_INSTALL_DIR@ -+libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - - Name: libsolv - Description: Library for solving packages -diff --git a/libsolvext.pc.in b/libsolvext.pc.in -index d48b6fab..d0078461 100644 ---- a/libsolvext.pc.in -+++ b/libsolvext.pc.in -@@ -1,5 +1,5 @@ --libdir=@LIB_INSTALL_DIR@ --includedir=@INCLUDE_INSTALL_DIR@ -+libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - - Name: libsolvext - Description: Library for reading repositories -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 2e32968e..03ea9119 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -42,14 +42,14 @@ ENDIF (DISABLE_SHARED) - - SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv") - SET_TARGET_PROPERTIES(libsolv PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) --SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) -+SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) - --INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/solv") --INSTALL (TARGETS libsolv LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION bin) -+INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") -+INSTALL (TARGETS libsolv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - - IF (ENABLE_STATIC AND NOT DISABLE_SHARED) - ADD_LIBRARY (libsolv_static STATIC ${libsolv_SRCS}) - SET_TARGET_PROPERTIES(libsolv_static PROPERTIES OUTPUT_NAME "solv") - SET_TARGET_PROPERTIES(libsolv_static PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) --INSTALL (TARGETS libsolv_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) -+INSTALL (TARGETS libsolv_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED) -diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt -index 802dc500..0d677f69 100644 ---- a/tools/CMakeLists.txt -+++ b/tools/CMakeLists.txt -@@ -110,5 +110,4 @@ TARGET_LINK_LIBRARIES (testsolv libsolvext libsolv ${SYSTEM_LIBRARIES}) - ADD_EXECUTABLE (repo2solv repo2solv.c ) - TARGET_LINK_LIBRARIES (repo2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES}) - --INSTALL (TARGETS ${tools_list} DESTINATION ${BIN_INSTALL_DIR}) -- -+INSTALL (TARGETS ${tools_list} DESTINATION ${CMAKE_INSTALL_BINDIR}) --- -2.11.0 - diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.4.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.6.bb index b8653adc0..3df899308 100644 --- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.4.bb +++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.6.bb @@ -8,10 +8,9 @@ LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8" DEPENDS = "expat zlib" SRC_URI = "git://github.com/openSUSE/libsolv.git \ - file://0001-build-use-GNUInstallDirs.patch \ " -SRCREV = "51fc3b1214aa9677e972712fa1ce6916e438751f" +SRCREV = "17ce4bc4fb52a0b32964f3b7d491c18177980be1" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb index ba1a2c54b..2e83c821a 100644 --- a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb +++ b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb @@ -39,14 +39,13 @@ PACKAGECONFIG[krb5] = "--with-krb5,--without-krb5,krb5" PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre" PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" -PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin" PACKAGECONFIG[webdav-props] = "--with-webdav-props,--without-webdav-props,libxml2 sqlite3" PACKAGECONFIG[webdav-locks] = "--with-webdav-locks,--without-webdav-locks,util-linux" PACKAGECONFIG[gdbm] = "--with-gdbm,--without-gdbm,gdbm" PACKAGECONFIG[memcache] = "--with-memcached,--without-memcached,libmemcached" -PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua5.1" +PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua" -EXTRA_OECONF += "--enable-lfs" +EXTRA_OECONF += "--enable-lfs --without-fam" inherit autotools pkgconfig update-rc.d gettext systemd diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.15.0.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.15.1.bb index 0f3da2b94..7c7d51b39 100644 --- a/poky/meta/recipes-extended/logrotate/logrotate_3.15.0.bb +++ b/poky/meta/recipes-extended/logrotate/logrotate_3.15.1.bb @@ -25,8 +25,8 @@ SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz file://disable-check-different-filesystems.patch \ " -SRC_URI[md5sum] = "320046f0b9fc38337e8827d4c5a866a0" -SRC_URI[sha256sum] = "313612c4776a305393454c874ef590d8acf84c9ffa648717731dfe902284ff8f" +SRC_URI[md5sum] = "afe109afea749c306ff489203fde6beb" +SRC_URI[sha256sum] = "491fec9e89f1372f02a0ab66579aa2e9d63cac5178dfa672c204c88e693a908b" PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}" diff --git a/poky/meta/recipes-extended/lsb/lsb/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch b/poky/meta/recipes-extended/lsb/lsb-release/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch index 017575206..017575206 100644 --- a/poky/meta/recipes-extended/lsb/lsb/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch +++ b/poky/meta/recipes-extended/lsb/lsb-release/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch diff --git a/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb b/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb new file mode 100644 index 000000000..52e30267f --- /dev/null +++ b/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb @@ -0,0 +1,36 @@ +SUMMARY = "lsb_release support for OpenEmbedded" +SECTION = "console/utils" +HOMEPAGE = "http://prdownloads.sourceforge.net/lsb" +LICENSE = "GPLv2+" + +# lsb_release needs getopt +RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_getopt}" + +LIC_FILES_CHKSUM = "file://README;md5=12da544b1a3a5a1795a21160b49471cf" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/lsb/lsb_release/1.4/lsb-release-1.4.tar.gz \ + file://0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch \ + " + +SRC_URI[md5sum] = "30537ef5a01e0ca94b7b8eb6a36bb1e4" +SRC_URI[sha256sum] = "99321288f8d62e7a1d485b7c6bdccf06766fb8ca603c6195806e4457fdf17172" + +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/lsb/files/lsb_release/" +UPSTREAM_CHECK_REGEX = "/lsb_release/(?P<pver>(\d+[\.\-_]*)+)/" + +CLEANBROKEN = "1" + +do_install() { + oe_runmake install prefix=${D}${root_prefix} mandir=${D}${datadir}/man/ DESTDIR=${D} + + mkdir -p ${D}${sysconfdir}/lsb-release.d + + echo "DISTRIB_ID=${DISTRO}" >> ${D}${sysconfdir}/lsb-release + echo "DISTRIB_RELEASE=${DISTRO_VERSION}" >> ${D}${sysconfdir}/lsb-release + if [ -n "${DISTRO_CODENAME}" ]; then + echo "DISTRIB_CODENAME=${DISTRO_CODENAME}" >> ${D}${sysconfdir}/lsb-release + fi + echo "DISTRIB_DESCRIPTION=\"${DISTRO_NAME} ${DISTRO_VERSION}\"" >> ${D}${sysconfdir}/lsb-release +} + +FILES_${PN} += "${base_libdir}" diff --git a/poky/meta/recipes-extended/lsb/lsb/init-functions b/poky/meta/recipes-extended/lsb/lsb/init-functions deleted file mode 100755 index 7c1dce24c..000000000 --- a/poky/meta/recipes-extended/lsb/lsb/init-functions +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -# LSB initscript functions, as defined in the LSB Spec 1.1.0 -# -# Lawrence Lim <llim@core.com> - Tue, 26 June 2007 -# Updated to the latest LSB 3.1 spec -# http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic_lines.txt - -start_daemon () { - /etc/core-lsb/lsb_start_daemon "$@" -} - -killproc () { - /etc/core-lsb/lsb_killproc "$@" -} - -pidofproc () { - /etc/core-lsb/lsb_pidofproc "$@" -} - -log_success_msg () { - /etc/core-lsb/lsb_log_message success "$@" -} - -log_failure_msg () { - /etc/core-lsb/lsb_log_message failure "$@" -} - -log_warning_msg () { - /etc/core-lsb/lsb_log_message warning "$@" -} - -# int log_begin_message (char *message) -log_begin_msg () { - if [ -z "$1" ]; then - return 1 - fi - echo " * $@" -} - - -log_end_msg () { - /etc/core-lsb/lsb_log_message end "$@" -} diff --git a/poky/meta/recipes-extended/lsb/lsb/lsb_killproc b/poky/meta/recipes-extended/lsb/lsb/lsb_killproc deleted file mode 100755 index 866c1a9c6..000000000 --- a/poky/meta/recipes-extended/lsb/lsb/lsb_killproc +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -. /etc/init.d/functions - -LSB=LSB-1.1 killproc $* -exit $? diff --git a/poky/meta/recipes-extended/lsb/lsb/lsb_log_message b/poky/meta/recipes-extended/lsb/lsb/lsb_log_message deleted file mode 100755 index 10343b081..000000000 --- a/poky/meta/recipes-extended/lsb/lsb/lsb_log_message +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -. /etc/init.d/functions - -ACTION=$1 -shift - -case "$ACTION" in - success) - echo -n $* - success "$*" - echo - ;; - failure) - echo -n $* - failure "$*" - echo - ;; - warning) - echo -n $* - warning "$*" - echo - ;; - *) - ;; -esac -exit 0 diff --git a/poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc b/poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc deleted file mode 100755 index 6d1fd0f24..000000000 --- a/poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -. /etc/init.d/functions - -pidofproc $* -exit $? diff --git a/poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon b/poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon deleted file mode 100755 index de62c2344..000000000 --- a/poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -. /etc/init.d/functions - -nice= -force= -pidfile= -user= -check= -RETVAL= -while [ "$1" != "${1##[-+]}" ]; do - case $1 in - -f) - force="--force" - shift - ;; - -n) - nice=$2 - shift 2 - ;; - -p) - pidfile="--pidfile $2" - shift 2 - ;; - -u) - user="--user $2" - shift 2 - ;; - -c) - check="--check $2" - shift 2 - ;; - *) - echo "Unknown Option $1" - echo "Options are:" - echo "-f" - echo "-p {pidfile}" - echo "-n [+/-nicelevel]" - echo "-u {user}" - echo "-c {base}" - exit 1;; - esac -done -LSB=LSB-1.1 daemon ${force:-} ${nice:-} ${pidfile:-} ${user:-} ${check:-} $* -exit $? diff --git a/poky/meta/recipes-extended/lsb/lsb_5.0.bb b/poky/meta/recipes-extended/lsb/lsb_5.0.bb deleted file mode 100644 index d1de33400..000000000 --- a/poky/meta/recipes-extended/lsb/lsb_5.0.bb +++ /dev/null @@ -1,136 +0,0 @@ -SUMMARY = "LSB support for OpenEmbedded" -SECTION = "console/utils" -HOMEPAGE = "http://prdownloads.sourceforge.net/lsb" -LICENSE = "GPLv2+" - -LSB_CORE = "lsb-core-${TARGET_ARCH}" -LSB_CORE_x86 = "lsb-core-ia32" -LSB_CORE_x86-64 = "lsb-core-amd64" -RPROVIDES_${PN} += "${LSB_CORE}" - -# lsb_release needs getopt, lsbinitscripts -RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_getopt} lsbinitscripts" - -LIC_FILES_CHKSUM = "file://README;md5=12da544b1a3a5a1795a21160b49471cf" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/lsb/lsb_release/1.4/lsb-release-1.4.tar.gz \ - file://0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch \ - file://init-functions \ - file://lsb_killproc \ - file://lsb_log_message \ - file://lsb_pidofproc \ - file://lsb_start_daemon \ - " -UPSTREAM_VERSION_UNKNOWN = "1" - -SRC_URI[md5sum] = "30537ef5a01e0ca94b7b8eb6a36bb1e4" -SRC_URI[sha256sum] = "99321288f8d62e7a1d485b7c6bdccf06766fb8ca603c6195806e4457fdf17172" - -UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/lsb/files/lsb_release/" -UPSTREAM_CHECK_REGEX = "/lsb_release/(?P<pver>(\d+[\.\-_]*)+)/" - -S = "${WORKDIR}/lsb-release-1.4" - -CLEANBROKEN = "1" - -do_install() { - oe_runmake install prefix=${D}${root_prefix} mandir=${D}${datadir}/man/ DESTDIR=${D} - - # these two dirs are needed by package lsb-dist-checker - mkdir -p ${D}${sysconfdir}/opt - mkdir -p ${D}${localstatedir}/opt - - mkdir -p ${D}${base_libdir} - mkdir -p ${D}${sysconfdir}/lsb-release.d - printf "LSB_VERSION=\"core-5.0-noarch:" > ${D}${sysconfdir}/lsb-release - - if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ]; then - printf "core-5.0-ia32" >> ${D}${sysconfdir}/lsb-release - else - printf "core-5.0-${TARGET_ARCH}" >> ${D}${sysconfdir}/lsb-release - fi - echo "\"" >> ${D}${sysconfdir}/lsb-release - echo "DISTRIB_ID=${DISTRO}" >> ${D}${sysconfdir}/lsb-release - echo "DISTRIB_RELEASE=${DISTRO_VERSION}" >> ${D}${sysconfdir}/lsb-release - if [ -n "${DISTRO_CODENAME}" ]; then - echo "DISTRIB_CODENAME=${DISTRO_CODENAME}" >> ${D}${sysconfdir}/lsb-release - fi - echo "DISTRIB_DESCRIPTION=\"${DISTRO_NAME} ${DISTRO_VERSION}\"" >> ${D}${sysconfdir}/lsb-release - - if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ]; then - mkdir -p ${D}${sysconfdir}/lsb-release.d - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ia32 - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ia32 - elif [ "${TARGET_ARCH}" = "x86_64" ]; then - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-amd64 - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-amd64 - fi - if [ "${TARGET_ARCH}" = "powerpc" ]; then - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ppc32 - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ppc32 - elif [ "${TARGET_ARCH}" = "powerpc64" ]; then - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch - touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ppc64 - touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ppc64 - fi -} - -do_install_append() { - install -d ${D}${sysconfdir}/core-lsb - for i in lsb_killproc lsb_log_message lsb_pidofproc lsb_start_daemon - do - install -m 0755 ${WORKDIR}/$i ${D}${sysconfdir}/core-lsb - done - - install -d ${D}${nonarch_base_libdir}/lsb - install -m 0755 ${WORKDIR}/init-functions ${D}${nonarch_base_libdir}/lsb - - # create links for LSB test - if [ -e ${sbindir}/chkconfig ]; then - if [ "${nonarch_base_libdir}" != "${nonarch_libdir}" ] ; then - install -d ${D}${nonarch_libdir}/lsb - fi - ln -sf ${sbindir}/chkconfig ${D}${nonarch_libdir}/lsb/install_initd - ln -sf ${sbindir}/chkconfig ${D}${nonarch_libdir}/lsb/remove_initd - fi - - if [ "${TARGET_ARCH}" = "x86_64" ]; then - # don't symlink if usrmerge is in DISTRO_FEATURES as it manages the symlink - if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','false','true',d)} && \ - [ "${base_libdir}" != "${base_prefix}/lib64" ]; then - lnr ${D}${base_libdir} ${D}${base_prefix}/lib64 - fi - cd ${D}${base_libdir} - ln -sf ld-linux-x86-64.so.2 ld-lsb-x86-64.so.2 - ln -sf ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 - fi - if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ]; then - cd ${D}${base_libdir} - ln -sf ld-linux.so.2 ld-lsb.so.2 - ln -sf ld-linux.so.2 ld-lsb.so.3 - fi - - if [ "${TARGET_ARCH}" = "powerpc64" ]; then - if [ "${base_libdir}" != "${base_prefix}/lib64" ]; then - lnr ${D}${base_libdir} ${D}${base_prefix}/lib64 - fi - cd ${D}${base_libdir} - ln -sf ld64.so.1 ld-lsb-ppc64.so.2 - ln -sf ld64.so.1 ld-lsb-ppc64.so.3 - fi - if [ "${TARGET_ARCH}" = "powerpc" ]; then - cd ${D}${base_libdir} - ln -sf ld.so.1 ld-lsb-ppc32.so.2 - ln -sf ld.so.1 ld-lsb-ppc32.so.3 - fi -} - -FILES_${PN} += "${@'${base_prefix}/lib64' if d.getVar('TARGET_ARCH') == ('x86_64' or 'powerpc64') and '${base_libdir}' != '${base_prefix}/lib64' else ''} \ - ${base_libdir} \ - ${nonarch_libdir}/lsb \ - ${nonarch_base_libdir}/lsb/* \ - " diff --git a/poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch b/poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch deleted file mode 100644 index c0076453f..000000000 --- a/poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch +++ /dev/null @@ -1,21 +0,0 @@ -Upstream-Status: Pending - -Subject: functions: avoid exit 1 which causes init scripts to fail - -Signed-off-by: Chen Qi <Qi.Chen@windriver.com> ---- - rc.d/init.d/functions | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: initscripts-9.72/rc.d/init.d/functions -=================================================================== ---- initscripts-9.72.orig/rc.d/init.d/functions -+++ initscripts-9.72/rc.d/init.d/functions -@@ -686,6 +686,6 @@ if [ "$_use_systemctl" = "1" ]; then - fi - fi - --strstr "$(cat /proc/cmdline)" "rc.debug" && set -x -+strstr "$(cat /proc/cmdline)" "rc.debug" && set -x || true - return 0 - diff --git a/poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch b/poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch deleted file mode 100644 index e912daa70..000000000 --- a/poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e46b056282c8420f096d5c34d78c00f816788784 Mon Sep 17 00:00:00 2001 -From: Fan Xin <fan.xin@jp.fujitsu.com> -Date: Mon, 5 Jun 2017 16:26:47 +0900 -Subject: [PATCH 1/2] Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> -Signed-off-by: Saul Wold <sgw@linux.intel.com> - -Rebase on 9.72 - -Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com> -Upstream-Status: Pending - ---- - rc.d/init.d/functions | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions -index 2e3da964..1a204dec 100644 ---- a/rc.d/init.d/functions -+++ b/rc.d/init.d/functions -@@ -59,7 +59,7 @@ systemctl_redirect () { - [ -z "${COLUMNS:-}" ] && COLUMNS=80 - - if [ -z "${CONSOLETYPE:-}" ]; then -- if [ -c "/dev/stderr" ] && [ -r "/dev/stderr" ]; then -+ if [ -c "/dev/stderr" ] && [ -r "/dev/stderr" ] && [ -e /sbin/consoletype ]; then - CONSOLETYPE="$(/sbin/consoletype < /dev/stderr 2>/dev/null)" - else - CONSOLETYPE="serial" --- -2.15.1 - diff --git a/poky/meta/recipes-extended/lsb/lsbinitscripts_9.79.bb b/poky/meta/recipes-extended/lsb/lsbinitscripts_9.79.bb deleted file mode 100644 index 6d3fcf13d..000000000 --- a/poky/meta/recipes-extended/lsb/lsbinitscripts_9.79.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "SysV init scripts which are only used in an LSB image" -HOMEPAGE = "https://wiki.debian.org/LSBInitScripts" -SECTION = "base" -LICENSE = "GPLv2" - -RPROVIDES_${PN} += "initd-functions" -RDEPENDS_${PN} += "util-linux" -RCONFLICTS_${PN} = "initscripts-functions" - -LIC_FILES_CHKSUM = "file://COPYING;md5=ebf4e8b49780ab187d51bd26aaa022c6" - -S = "${WORKDIR}/git" -SRC_URI = "git://github.com/fedora-sysv/initscripts \ - file://functions.patch \ - file://0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch \ - " -SRCREV = "a51c1b4f7dcf55b568b2ee4c2b18078849943469" -UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+(\.\d+)+)" - -SRC_URI[md5sum] = "d6c798f40dceb117e12126d94cb25a9a" -SRC_URI[sha256sum] = "1793677bdd1f7ee4cb00878ce43346196374f848a4c8e4559e086040fc7487db" - -# Since we are only taking the patched version of functions, no need to -# configure or compile anything so do not execute these -do_configure[noexec] = "1" -do_compile[noexec] = "1" - -do_install(){ - install -d ${D}${sysconfdir}/init.d/ - install -m 0644 ${S}/rc.d/init.d/functions ${D}${sysconfdir}/init.d/functions -} diff --git a/poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh b/poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh deleted file mode 100644 index 073e247a5..000000000 --- a/poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh +++ /dev/null @@ -1,525 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2012 Wind River Systems, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -WORK_DIR="/opt/lsb-test" - -if [ `id -u` -ne 0 ] -then - cat << EOF - In order to install and run LSB testsuite, you need administrator privileges. - You are currently running this script as an unprivileged user. - -EOF - exit 1 -fi - -ARCH=`uname -m` -if [ ${ARCH} != "i686" ] && [ ${ARCH} != "x86_64" ] && [ ${ARCH} != "ppc" ] && [ ${ARCH} != "ppc64" ] -then - echo "Error: Unsupported architecture" - exit 1 -fi - -which rpm -if [ $? -ne 0 ] -then - echo "No rpm command found" - exit 1 -fi - -RET=0 - -cd ${WORK_DIR} || exit 1 -# Step 1: Download the LSB Packages -echo "" -echo "Download LSB packages..." -echo "" - -if [ ! -e ./packages_list ] -then - echo "Error: Could not find packages list" >&2 - exit 1 -fi - -. ./packages_list - -PACKAGES_DIR="/var/opt/lsb/test/manager/packages/ftp.linuxfoundation.org/pub/lsb" - -BASE_PACKAGES_DIR="${PACKAGES_DIR}/base/released-all/binary" -RUNTIME_BASE_PACKAGES_DIR="${PACKAGES_DIR}/test_suites/released-all/binary/runtime" -RUNTIME_PACKAGES_DIR="${PACKAGES_DIR}/test_suites/${LSB_RELEASE}/binary/runtime" -APP_PACKAGES_DIR="${PACKAGES_DIR}/app-battery/${LSB_RELEASE}/${LSB_ARCH}" -APP_TESTFILES_DIR="${PACKAGES_DIR}/app-battery/tests" -SNAPSHOTS_TESTFILES_DIR="${PACKAGES_DIR}/snapshots/appbat/tests" - -if [ ! -d ${PACKAGES_DIR} ] -then - mkdir -p ${PACKAGES_DIR} -fi - -if [ ! -d ${BASE_PACKAGES_DIR} ] -then - mkdir -p ${BASE_PACKAGES_DIR} -fi - -if [ ! -d ${RUNTIME_BASE_PACKAGES_DIR} ] -then - mkdir -p ${RUNTIME_BASE_PACKAGES_DIR} -fi - -if [ ! -d ${RUNTIME_PACKAGES_DIR} ] -then - mkdir -p ${RUNTIME_PACKAGES_DIR} -fi - -if [ ! -d ${APP_PACKAGES_DIR} ] -then - mkdir -p ${APP_PACKAGES_DIR} -fi - -if [ ! -d ${APP_TESTFILES_DIR} ] -then - mkdir -p ${APP_TESTFILES_DIR} -fi - -# Official download server list. You can replace them with your own server. -SERVER_IPADDR="140.211.169.28" -SERVER_NAME="ftp.linuxfoundation.org" - -if ! `grep -F -q "${SERVER_NAME}" /etc/hosts`; then - echo "${SERVER_IPADDR} ${SERVER_NAME} ${SERVER_NAME}" >> /etc/hosts -fi - -#ping -c 5 ${SERVER_NAME} -#if [ $? -ne 0 ] -#then -# echo "The server: ${SERVER_NAME} is unreachable" -# exit 1 -#fi - -SERVER1="\ - http://${SERVER_NAME}/pub/lsb/base/released-all/binary" -SERVER2="\ - http://${SERVER_NAME}/pub/lsb/test_suites/released-all/binary/runtime" -SERVER3="\ - http://${SERVER_NAME}/pub/lsb/test_suites/${LSB_RELEASE}/binary/runtime" -SERVER4="\ - http://${SERVER_NAME}/pub/lsb/app-battery/${LSB_RELEASE}/${LSB_ARCH}" -SERVER5="\ - http://${SERVER_NAME}/pub/lsb/app-battery/tests" - -# We using "curl" as a download tool, "wget" is an alternative. -CURL=`which curl` -WGET=`which wget` -if [ ! -z ${CURL} ] -then - DOWNLOAD_CMD="${CURL} -R -L -f --retry 3 --retry-delay 4 --connect-timeout 180 --compressed -C - -o" -elif [ ! -z ${WGET} ] -then - DOWNLOAD_CMD="${WGET} -c -t 5 -O" -else - echo "Can not find a download tool, please install curl or wget." - exit 1 -fi - -cd ${BASE_PACKAGES_DIR} -for pkg in ${BASE_PACKAGES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER1}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER1}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -cd ${RUNTIME_BASE_PACKAGES_DIR} -for pkg in ${RUNTIME_BASE_PACKAGES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER2}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER2}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -cd ${RUNTIME_PACKAGES_DIR} -for pkg in ${RUNTIME_PACKAGES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER3}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER3}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -cd ${APP_PACKAGES_DIR} -for pkg in ${APP_PACKAGES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER4}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER4}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -cd ${APP_TESTFILES_DIR} -for pkg in ${APP_TESTFILES_LIST}; do - if [ ! -f ${pkg} ] - then - #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER5}/${pkg} > /dev/null 2>&1 - ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER5}/${pkg} - if [ $? -eq 0 ] - then - mv -f ${pkg}".#part" ${pkg} - echo "Download ${pkg} successfully." - else - echo "Download ${pkg} failed." - RET=1 - fi - fi -done - -if [ ${RET} -ne 0 ] -then - echo "Download some packages failed. Please download them again." - exit 1 -fi - -# Step 2: Install the LSB Packages -echo "" -echo "Install LSB packages..." -echo "" - -# Kill lighttpd -ps aux | grep "lighttpd" | grep -v -q "grep" -if [ $? -eq 0 ] -then - killall lighttpd >/dev/null 2>&1 -fi - -# Start avahi-daemon -ps aux | grep "avahi-daemon" | grep -v -q "grep" -if [ $? -ne 0 ] -then - /etc/init.d/avahi-daemon start >/dev/null 2>&1 -fi - -LSB_START_CMD="/opt/lsb/test/manager/bin/dist-checker-start.pl" -LSB_STOP_CMD="/opt/lsb/test/manager/bin/dist-checker-stop.pl" - -PLATFORM_FILE="/etc/rpm/platform" - -RPM_INSTALL_CMD="rpm --quiet --nodeps --replacepkgs --nosignature -i --ignoreos" -RPM_INSTALL_CMD_NOSCRIPTS="rpm --quiet --nodeps --replacepkgs --noscripts --nosignature -i --ignoreos" - -# If the lsb has been started, stop it first. -if [ -x ${LSB_STOP_CMD} ] -then - ${LSB_STOP_CMD} -fi - -if [ ! -d /etc/rpm ] -then - mkdir -p /etc/rpm -fi - -if [ ! -f ${PLATFORM_FILE} ] -then - touch ${PLATFORM_FILE} -fi - -if ! `grep -F -q "noarch-suse" ${PLATFORM_FILE}`; then - if [ ${ARCH} = i686 ];then - echo "i486-suse" >> ${PLATFORM_FILE} - echo "i486-noarch" >> ${PLATFORM_FILE} - echo "i486-pc" >> ${PLATFORM_FILE} - echo "noarch-suse" >> ${PLATFORM_FILE} - elif [ ${ARCH} = x86_64 ]; then - echo "i486-suse" >> ${PLATFORM_FILE} - echo "i486-noarch" >> ${PLATFORM_FILE} - echo "i486-pc" >> ${PLATFORM_FILE} - echo "i486-.*-linux.*" >> ${PLATFORM_FILE} - echo "noarch-suse" >> ${PLATFORM_FILE} - echo "${ARCH}-suse" >> ${PLATFORM_FILE} - echo "${ARCH}-noarch" >> ${PLATFORM_FILE} - echo "${ARCH}-pc" >> ${PLATFORM_FILE} - else - echo "${ARCH}-suse" >> ${PLATFORM_FILE} - echo "${ARCH}-noarch" >> ${PLATFORM_FILE} - echo "${ARCH}-pc" >> ${PLATFORM_FILE} - echo "noarch-suse" >> ${PLATFORM_FILE} - fi -fi - -if [ -d ${BASE_PACKAGES_DIR} ] -then - cd ${BASE_PACKAGES_DIR} - for pkg in ${BASE_PACKAGES_LIST} - do - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD ${pkg} - fi - done -fi - -if [ -d ${RUNTIME_BASE_PACKAGES_DIR} ] -then - cd ${RUNTIME_BASE_PACKAGES_DIR} - for pkg in ${RUNTIME_BASE_PACKAGES_LIST} - do - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD ${pkg} - fi - done -fi - -if [ -d ${RUNTIME_PACKAGES_DIR} ] -then - cd ${RUNTIME_PACKAGES_DIR} - for pkg in ${RUNTIME_PACKAGES_LIST} - do - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD ${pkg} - fi - done -fi - -if [ -d ${APP_PACKAGES_DIR} ] -then - cd ${APP_PACKAGES_DIR} - for pkg in ${APP_PACKAGES_LIST} - do - echo "${pkg}" | grep -q "apache\|xpdf" - if [ $? -eq 0 ] - then - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD_NOSCRIPTS ${pkg} - fi - else - rpm --quiet -q ${pkg%\.*} - if [ $? -ne 0 ]; then - $RPM_INSTALL_CMD ${pkg} - fi - fi - done -fi - -if [ ! -d ${SNAPSHOTS_TESTFILES_DIR} ] -then - mkdir -p ${SNAPSHOTS_TESTFILES_DIR} -fi - -if [ -d ${APP_TESTFILES_DIR} ] -then - cd ${APP_TESTFILES_DIR} - for pkg in ${APP_TESTFILES_LIST} - do - cp -f ${pkg} ${SNAPSHOTS_TESTFILES_DIR} - done -fi - -cd ${WORK_DIR} - -# Step 3: Set environment -echo "" -echo "Set environment..." -echo "" - -check () -{ - if [ $? -eq 0 ] - then - echo "PASS" - else - echo "FAIL" - exit 1 - fi -} - -echo "" -echo "---------------------------------" -echo "Create the Dirnames on target" - -if [ ! -d /etc/rpm/sysinfo ] -then - mkdir -p /etc/rpm/sysinfo -fi - -cat > /etc/rpm/sysinfo/Dirnames << EOF -/etc/opt/lsb -/home/tet/LSB.tools -/opt/lsb-tet3-lite/lib/ksh -/opt/lsb-tet3-lite/lib/perl -/opt/lsb-tet3-lite/lib/posix_sh -/opt/lsb-tet3-lite/lib/tet3 -/opt/lsb-tet3-lite/lib/xpg3sh -/opt/lsb/appbat/lib/python2.4/site-packages/qm -/opt/lsb/appbat/lib/python2.4/site-packages/qm/external -/opt/lsb/appbat/lib/python2.4/site-packages/qm/external/DocumentTemplate -/opt/lsb/appbat/lib/python2.4/site-packages/qm/test -/opt/lsb/appbat/lib/python2.4/site-packages/qm/test/classes -/opt/lsb/appbat/lib/python2.4/site-packages/qm/test/web -/opt/lsb/test/doc -/opt/lsb/test/lib -/opt/lsb/test/qm/diagnostics -/opt/lsb/test/qm/doc -/opt/lsb/test/qm/doc/test/html -/opt/lsb/test/qm/doc/test/print -/opt/lsb/test/qm/dtml -/opt/lsb/test/qm/dtml/test -/opt/lsb/test/qm/messages/test -/opt/lsb/test/qm/tutorial/test/tdb -/opt/lsb/test/qm/tutorial/test/tdb/QMTest -/opt/lsb/test/qm/web -/opt/lsb/test/qm/web/images -/opt/lsb/test/qm/web/stylesheets -/opt/lsb/test/qm/xml -/opt/lsb/test/share -/usr/share/doc/lsb-runtime-test -/var/opt/lsb -/opt/lsb/test/desktop -/opt/lsb/test/desktop/fontconfig -/opt/lsb/test/desktop/freetype -/opt/lsb/test/desktop/gtkvts -/opt/lsb/test/desktop/libpng -/opt/lsb/test/desktop/xft -/opt/lsb/test/desktop/xml -/opt/lsb/test/desktop/xrender - - -EOF - -if [ -f /etc/rpm/sysinfo/Dirnames ] -then - echo "Success to creat Dirnames file" -else - echo "Fail to creat Dirnames file" -fi - -[ -x /sbin/ldconfig ] && { -echo "" -echo "---------------------------------" -echo "Update cache" -/sbin/ldconfig -check; -} - -# Check loop device -if [ ! -b /dev/loop0 ] -then - insmod /lib/modules/`uname -r`/kernel/drivers/block/loop.ko - if [ $? != 0 ];then - echo "Insmod loop.ko failed." - fi -fi - -# Resolve localhost -LOCALHOST=`hostname` -if ! `grep -F -q "$LOCALHOST" /etc/hosts`; then - echo "127.0.0.1 $LOCALHOST" >> /etc/hosts -fi - -# Workaround to add part of locales for LSB test -localedef -i de_DE -f ISO-8859-1 de_DE -localedef -i de_DE -f ISO-8859-15 de_DE.ISO-8859-15 -localedef -i de_DE -f UTF-8 de_DE.UTF-8 -localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro -localedef -i en_HK -f ISO-8859-1 en_HK -localedef -i en_PH -f ISO-8859-1 en_PH -localedef -i en_US -f ISO-8859-15 en_US.ISO-8859-15 -localedef -i en_US -f ISO-8859-1 en_US.ISO-8859-1 -localedef -i en_US -f ISO-8859-1 en_US -localedef -i en_US -f UTF-8 en_US.UTF-8 -localedef -i en_US -f ISO-8859-1 en_US.ISO8859-1 -localedef -i es_MX -f ISO-8859-1 es_MX -localedef -i fr_FR -f ISO-8859-1 fr_FR -localedef -i it_IT -f ISO-8859-1 it_IT -localedef -i ja_JP -f EUC-JP ja_JP.eucjp -localedef -i se_NO -f UTF-8 se_NO.UTF-8 -localedef -i ta_IN -f UTF-8 ta_IN -localedef -i es_ES -f ISO-8859-1 es_ES -localedef -i fr_FR@euro -f ISO-8859-1 fr_FR@euro -localedef -i is_IS -f UTF-8 is_IS.UTF-8 -localedef -i zh_TW -f BIG5 zh_TW.BIG5 -localedef -i en_US -f ISO-8859-15 en_US.ISO-8859-15 - -echo "" -echo "Installation done!" -echo "" - -# Step 4: Start LSB test -if [ -x ${LSB_START_CMD} ] -then - ${LSB_START_CMD} -fi - -echo "---------------------------------" -echo "Run all the certification version of LSB Tests" -echo "---------------------------------" - -LSB_DIST_CHECKER="/opt/lsb/test/manager/utils/dist-checker.pl" -SESSION="${WORK_DIR}/session" -if [ ! -e ${SESSION} ] -then - echo "Error: Could not find session file." - echo "You must run LSB test from webbrower." - exit 1 -fi - -if [ -x ${LSB_DIST_CHECKER} ] -then - ${LSB_DIST_CHECKER} -v2 -f ${SESSION} - check -fi - -echo "" -echo "LSB test complete. Please check the log file in /var/opt/lsb/test/manager/results/" -echo "" - diff --git a/poky/meta/recipes-extended/lsb/lsbtest/packages_list b/poky/meta/recipes-extended/lsb/lsbtest/packages_list deleted file mode 100644 index 1a6c11699..000000000 --- a/poky/meta/recipes-extended/lsb/lsbtest/packages_list +++ /dev/null @@ -1,49 +0,0 @@ -LSB_RELEASE="released-5.0" -LSB_ARCH="lsbarch" - -BASE_PACKAGES_LIST="lsb-setup-5.0.0-2.noarch.rpm" - -RUNTIME_BASE_PACKAGES_LIST="lsb-dist-checker-5.0.0.1-1.targetarch.rpm \ - lsb-tet3-lite-3.7-27.lsb5.targetarch.rpm \ - lsb-tet3-lite-devel-3.7-27.lsb5.targetarch.rpm \ - lsb-xvfb-1.2.0-22.targetarch.rpm \ - " - -RUNTIME_PACKAGES_LIST="lsb-cmdchk-5.0.3-1.targetarch.rpm \ - lsb-libchk-5.0.3-1.targetarch.rpm \ - lsb-qm-2.2-1.lsb5.targetarch.rpm \ - lsb-task-dist-testkit-5.0.0-2.noarch.rpm \ - lsb-test-core-5.0.1-1.targetarch.rpm \ - lsb-test-cpp-t2c-5.0.0-1.targetarch.rpm \ - lsb-test-desktop-5.0.0-1.targetarch.rpm \ - lsb-test-desktop-t2c-5.0.0-1.targetarch.rpm \ - lsb-test-libstdcpp-4.1.0-22.lsb1.targetarch.rpm \ - lsb-test-olver-core-5.0.0-1.targetarch.rpm \ - lsb-test-perl-5.0.2-1.noarch.rpm \ - lsb-test-printing-5.0.1-1.targetarch.rpm \ - lsb-test-python-5.0.0-1.targetarch.rpm \ - lsb-test-qt4-azov-5.0.0-1.targetarch.rpm \ - lsb-test-xts5-5.1.5-47.lsb5.targetarch.rpm \ - lsb-test-alsa-t2c-5.1.91-4.targetarch.rpm \ - lsb-test-core-t2c-5.0.1-1.targetarch.rpm \ - lsb-test-xml2-azov-5.0.0-1.targetarch.rpm \ - " - -APP_PACKAGES_LIST="lsb-python-2.4.6-10.lsb5.targetarch.rpm \ - lsb-apache-2.2.19-5.lsb5.targetarch.rpm \ - lsb-tcl-8.5.9-21.lsb5.targetarch.rpm \ - lsb-expect-5.43.0-21.lsb5.targetarch.rpm \ - lsb-groff-1.20.1-9.lsb5.targetarch.rpm \ - lsb-raptor-1.4.21-4.lsb5.targetarch.rpm \ - lsb-xpdf-1.01-17.lsb5.targetarch.rpm \ - lsb-samba-3.5.9-5.lsb5.targetarch.rpm \ - lsb-rsync-3.0.8-3.lsb5.targetarch.rpm \ - " - -APP_TESTFILES_LIST="expect-tests.tar \ - tcl-tests.tar \ - raptor-tests.tar \ - test1.pdf \ - test2.pdf \ - " - diff --git a/poky/meta/recipes-extended/lsb/lsbtest/session b/poky/meta/recipes-extended/lsb/lsbtest/session deleted file mode 100644 index 4d47e40f7..000000000 --- a/poky/meta/recipes-extended/lsb/lsbtest/session +++ /dev/null @@ -1,176 +0,0 @@ -[GENERAL] -VERBOSE_LEVEL: 1 -ARCHITECTURE: targetarch -USE_INTERNET: 1 -STD_VERSION: LSB 5.0 -STD_PROFILE: no -[cmdchk] -RUN: 1 -VERSION: local|* - -[libchk] -RUN: 1 -VERSION: local|* - -[alsa-t2c] -RUN: 1 -VERSION: local|* - -[alsa-t2c|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/alsa-t2c -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/alsa-t2c/results - -[core] -RUN: 1 -VERSION: local|* - -[core|local|*] -AUTOREPLY_PROVIDES_BASH: n -AUTOREPLY_TESTRUN_PATH: /home/tet/test_sets -AUTOREPLY_PERSON: Automated -AUTOREPLY_KERNEL_NAME: vmlinuz -AUTOREPLY_INSTALL_LSBPAM_CONF: y -AUTOREPLY_PROVIDES_C_SHELL: n -AUTOREPLY_ORGANISATION: N/A -AUTOREPLY_SET_PASS_MIN_DAYS: y -AUTOREPLY_PROVIDES_SYSV_INIT: -AUTOREPLY_ISNTALL_DEVS: y -AUTOREPLY_SUPPORTS_FILE_CMD: y -AUTOREPLY_TEST_SYSTEM: Distribution Checker -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/core/tet/test_sets -AUTOREPLY_SUPPORTS_NLS: n -AUTOREPLY_SUPPORTS_PROCESS_ACCOUNTING: n -AUTOREPLY_PATH_TO_RC.D: -AUTOREPLY_ALLOWS_MAKEDEV: n -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/core/tet/test_sets/results - -[core-t2c] -RUN: 1 -VERSION: local|* - -[core-t2c|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/core-t2c -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/core-t2c/results - -[cpp-t2c] -RUN: 1 -VERSION: local|* - -[cpp-t2c|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/cpp-t2c -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/cpp-t2c/results - -[desktop] -RUN: 1 -VERSION: local|* - -[desktop|local|*] -AUTOREPLY_DESKTOP_ENVIRONMENT: [default] -AUTOREPLY_PERSON: Automated -AUTOREPLY_X_CLIENT_HOSTNAME: -AUTOREPLY_TEST_SYSTEM: Distribution Checker -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/desktop -AUTOREPLY_X11_FONT_PATH: [default] -AUTOREPLY_SHOW_SUMMARY_REPORT: -AUTOREPLY_ORGANISATION: N/A -AUTOREPLY_XVFB_DISPLAY: [default] - -[desktop-t2c] -RUN: 1 -VERSION: local|* - -[desktop-t2c|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/desktop-t2c -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/desktop-t2c/results - -[libstdcpp] -RUN: 1 -VERSION: local|* - -[libstdcpp|local|*] -AUTOREPLY_TEST_SYSTEM: Distribution Checker -AUTOREPLY_PERSON: Automated -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/libstdcpp_4.1.0 -AUTOREPLY_ORGANISATION: N/A -AUTOREPLY_GNU_TRIPLET: - -[olver] -RUN: 1 -VERSION: local|* - -[olver|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/olver-core -AUTOREPLY_RESULTS_DIR: /var/opt/lsb/test/olver-core - -[perl] -RUN: 1 -VERSION: local|* - -[perl|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/perl -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/perl/results - -[printing] -RUN: 1 -VERSION: local|* - -[printing|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/printing -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/printing/results - -[python] -RUN: 1 -VERSION: local|* - -[python|local|*] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/python -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/python/results - -[xml2-azov] -RUN: 1 -VERSION: local|* - -[xts5] -RUN: 1 -VERSION: local|* - -[xts5|local|*] -AUTOREPLY_XT_FONTPATH_GOOD: [default] -AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/xts5 -AUTOREPLY_XVFB_DISPLAY: [default] -AUTOREPLY_RESULTS_DIR: /opt/lsb/test/xts5/xts5/results -AUTOREPLY_XT_FONTPATH: [default] -AUTOREPLY_X_CLIENT_HOSTNAME: - -[apache] -RUN: 1 -VERSION: local|* - -[expect] -RUN: 1 -VERSION: local|* - -[groff] -RUN: 1 -VERSION: local|* - -[raptor] -RUN: 1 -VERSION: local|* - -[rsync] -RUN: 1 -VERSION: local|* - -[samba] -RUN: 1 -VERSION: local|* - -[tcl] -RUN: 1 -VERSION: local|* - -[xpdf] -RUN: 1 -VERSION: local|* - diff --git a/poky/meta/recipes-extended/lsb/lsbtest_1.0.bb b/poky/meta/recipes-extended/lsb/lsbtest_1.0.bb deleted file mode 100644 index a90c023d5..000000000 --- a/poky/meta/recipes-extended/lsb/lsbtest_1.0.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Automates Linux Standard Base (LSB) tests" -HOMEPAGE = "https://wiki.debian.org/LSBInitScripts" -SECTION = "console/utils" -LICENSE = "GPLv2" -PR = "r3" - -LIC_FILES_CHKSUM = "file://LSB_Test.sh;beginline=3;endline=16;md5=7063bb54b04719df0716b513447f4fc0" - -SRC_URI = "file://LSB_Test.sh \ - file://packages_list \ - file://session \ - " -RDEPENDS_${PN} = "lsb rpm" - -S = "${WORKDIR}" - -do_install() { - install -d ${D}/opt/lsb-test - install -m 0755 ${S}/LSB_Test.sh ${D}/opt/lsb-test/LSB_Test.sh - install -m 0644 ${S}/packages_list ${D}/opt/lsb-test/packages_list - install -m 0644 ${S}/session ${D}/opt/lsb-test/session - if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ];then - sed -i -e 's/lsbarch/ia32/g' -e 's/targetarch/i486/g' ${D}/opt/lsb-test/packages_list - sed -i -e 's/targetarch/x86/g' ${D}/opt/lsb-test/session - fi - if [ "${TARGET_ARCH}" = "x86_64" ];then - sed -i -e 's/lsbarch/amd64/g' -e 's/targetarch/x86_64/g' ${D}/opt/lsb-test/packages_list - sed -i -e 's/targetarch/x86-64/g' ${D}/opt/lsb-test/session - fi - if [ "${TARGET_ARCH}" = "powerpc" ];then - sed -i -e 's/lsbarch/ppc32/g' -e 's/targetarch/ppc/g' ${D}/opt/lsb-test/packages_list - sed -i -e 's/targetarch/PPC32/g' ${D}/opt/lsb-test/session - fi - - # For a ppc64 target. the default userspace is 32b. - # Therefore, only change the lsbarch and targetarch - # in the package_list when MLIB=lib64 is being used. - # Otherwise, by default, the ppc32 LSB packages - # will be downloaded by LSB_Test.sh - if [ "${TARGET_ARCH}" = "powerpc64" ];then - if [ "${PN}" != "${BPN}" ];then - sed -i -e 's/lsbarch/ppc64/g' -e 's/targetarch/ppc64/g' ${D}/opt/lsb-test/packages_list - sed -i -e 's/targetarch/PPC64/g' ${D}/opt/lsb-test/session - fi - fi -} - -FILES_${PN} += "/opt/lsb-test/* \ - " 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 000000000..bfceadb19 --- /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/0004-build-Add-option-to-select-libc-implementation.patch b/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch index 3c66c9436..b5c25c56a 100644 --- a/poky/meta/recipes-extended/ltp/ltp/0004-build-Add-option-to-select-libc-implementation.patch +++ b/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch @@ -1,7 +1,7 @@ -From 53acddddf1b324e06af886ee4639b774e5c8c8bc Mon Sep 17 00:00:00 2001 +From ec282980e6eee96f5b74aba464141f86049263e6 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Thu, 7 Jan 2016 18:19:03 +0000 -Subject: [PATCH 04/32] build: Add option to select libc implementation +Subject: [PATCH] build: Add option to select libc implementation There are more than glibc for C library implementation available on linux now a days, uclibc cloaked like glibc but musl e.g. is very @@ -9,8 +9,9 @@ different and does not implement all GNU extentions Disable tests specifically not building _yet_ on musl based systems -Signed-off-by: Khem Raj <raj.khem@gmail.com> Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> --- Makefile | 5 +++++ testcases/kernel/Makefile | 5 ++++- @@ -23,10 +24,10 @@ Upstream-Status: Pending 8 files changed, 35 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile -index 297f8e7..906b280 100644 +index 768ca46..e9d679a 100644 --- a/Makefile +++ b/Makefile -@@ -49,6 +49,11 @@ SKIP_IDCHECK ?= 0 +@@ -41,6 +41,11 @@ vpath %.mk $(top_srcdir)/mk:$(top_srcdir)/mk/include UCLINUX ?= 0 export UCLINUX @@ -39,7 +40,7 @@ index 297f8e7..906b280 100644 # COMMON_TARGETS: Targets which exist in all, clean, and install. # INSTALL_TARGETS: Targets which exist in clean and install (contains diff --git a/testcases/kernel/Makefile b/testcases/kernel/Makefile -index 50a12fa..4f1987f 100644 +index 39d79c7..24a57d9 100644 --- a/testcases/kernel/Makefile +++ b/testcases/kernel/Makefile @@ -49,12 +49,15 @@ SUBDIRS += connectors \ @@ -60,7 +61,7 @@ index 50a12fa..4f1987f 100644 SUBDIRS += power_management endif diff --git a/testcases/kernel/sched/Makefile b/testcases/kernel/sched/Makefile -index 6245ed0..aa4eb7f 100644 +index 6a57d79..74bb933 100644 --- a/testcases/kernel/sched/Makefile +++ b/testcases/kernel/sched/Makefile @@ -23,5 +23,7 @@ @@ -73,7 +74,7 @@ index 6245ed0..aa4eb7f 100644 +endif include $(top_srcdir)/include/mk/generic_trunk_target.mk diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile -index 8acb395..b749126 100644 +index 45a00cf..d1becd0 100644 --- a/testcases/kernel/syscalls/Makefile +++ b/testcases/kernel/syscalls/Makefile @@ -28,6 +28,11 @@ ifeq ($(UCLINUX),1) @@ -89,7 +90,7 @@ index 8acb395..b749126 100644 ifeq ($(UCLIBC),1) FILTER_OUT_DIRS += profil diff --git a/testcases/network/nfsv4/acl/Makefile b/testcases/network/nfsv4/acl/Makefile -index 8bc78c2..c36cf50 100644 +index 8c55a6b..f7cda62 100644 --- a/testcases/network/nfsv4/acl/Makefile +++ b/testcases/network/nfsv4/acl/Makefile @@ -26,4 +26,8 @@ include $(top_srcdir)/include/mk/env_pre.mk @@ -102,7 +103,7 @@ index 8bc78c2..c36cf50 100644 + include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/testcases/network/rpc/basic_tests/Makefile b/testcases/network/rpc/basic_tests/Makefile -index 3160813..9bdf5d0 100644 +index 66e9d56..ea8eb8a 100644 --- a/testcases/network/rpc/basic_tests/Makefile +++ b/testcases/network/rpc/basic_tests/Makefile @@ -23,4 +23,9 @@ @@ -116,7 +117,7 @@ index 3160813..9bdf5d0 100644 + include $(top_srcdir)/include/mk/generic_trunk_target.mk diff --git a/testcases/realtime/func/pi-tests/Makefile b/testcases/realtime/func/pi-tests/Makefile -index 7a7a57a..5808866 100644 +index 68616a7..748754b 100644 --- a/testcases/realtime/func/pi-tests/Makefile +++ b/testcases/realtime/func/pi-tests/Makefile @@ -27,5 +27,9 @@ include $(top_srcdir)/include/mk/env_pre.mk @@ -130,7 +131,7 @@ index 7a7a57a..5808866 100644 include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/testcases/realtime/stress/pi-tests/Makefile b/testcases/realtime/stress/pi-tests/Makefile -index 5edc3b4..aa5987a 100644 +index 1881f75..266e0b8 100644 --- a/testcases/realtime/stress/pi-tests/Makefile +++ b/testcases/realtime/stress/pi-tests/Makefile @@ -24,4 +24,9 @@ top_srcdir ?= ../../../.. @@ -144,5 +145,5 @@ index 5edc3b4..aa5987a 100644 + include $(top_srcdir)/include/mk/generic_leaf_target.mk -- -2.7.0 +2.7.4 diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch b/poky/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch new file mode 100644 index 000000000..cc4008130 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch @@ -0,0 +1,64 @@ +From e3a8502d0a4f8a44ddd02ca4b2efc097133fb9f7 Mon Sep 17 00:00:00 2001 +From: Mathias Fiedler <mathias.fiedler@aox-tech.de> +Date: Fri, 23 Aug 2019 12:46:48 +0200 +Subject: [PATCH] cve-2017-17052: Avoid unsafe exits in threads + +According to manpage exit(3) calling exit is not thread-safe. +And with glibc 2.28 (and probably also with glibc >=2.27) sometimes +child processes created in fork_thread can get stuck on process exit in +glibc's __run_exit_handlers trying to acquire some lock which was in +locked state while the fork was created. This can happen when exit is +called in mmap_thread concurrently to the fork. +While the main process will still return with PASSED some of its +children are left behind. + +Comparing the source code with the original program as described in the +commit 2b7e8665b4ff51c034c55df3cff76518d1a9ee3a of linux kernel >=4.13 +the exits in mmap_thread and fork_thread should not be necessary to +trigger the original bug. + +Therefore those exit calls are removed. The mmap_thread and fork_thread +should still exit when their corresponding main thread in do_test_fork +calls exit_group. The remaining exit in do_test_fork will be called in +the main thread without any concurrent thread in the same process. + +Signed-off-by: Mathias Fiedler <mathias.fiedler@aox-tech.de> +Acked-by: Cyril Hrubis <chrubis@suse.cz> +Acked-by: Jan Stancek <jstancek@redhat.com> + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/9f0b452c1af4bcb54da35711eb3fa77334a350b4] + +CVE: CVE-2017-17052 + +Signed-off-by: He Zhe <zhe.he@windriver.com> +--- + testcases/cve/cve-2017-17052.c | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/testcases/cve/cve-2017-17052.c b/testcases/cve/cve-2017-17052.c +index d7da7e919..18cd2a6d7 100644 +--- a/testcases/cve/cve-2017-17052.c ++++ b/testcases/cve/cve-2017-17052.c +@@ -58,8 +58,6 @@ static void *mmap_thread(void *arg) + for (;;) { + SAFE_MMAP(NULL, 0x1000000, PROT_READ, + MAP_POPULATE|MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); +- if (*do_exit) +- exit(0); + } + + return arg; +@@ -67,9 +65,6 @@ static void *mmap_thread(void *arg) + + static void *fork_thread(void *arg) + { +- if (*do_exit) +- exit(0); +- + usleep(rand() % 10000); + SAFE_FORK(); + +-- +2.17.1 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch b/poky/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch new file mode 100644 index 000000000..94f6f5a15 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch @@ -0,0 +1,81 @@ +From fbeda82f440a0098be42dd668cbc47212a86ab48 Mon Sep 17 00:00:00 2001 +From: He Zhe <zhe.he@windriver.com> +Date: Wed, 21 Aug 2019 16:27:24 +0800 +Subject: [PATCH] cve/meltdown.c: Fix kernel symbol finding + +meltdown case fails as below. +safe_file_ops.c:219: BROK: Expected 3 conversions got 2 at meltdown.c:272 + +find_kernel_symbol is defined to try twice with each of /proc/kallsyms and +/boot/System.map-%s. Currently if the symbol is not found in /proc/kallsyms, +when kernel option CONFIG_KALLSYMS_ALL is disabled, it would stop the case +immediately due to SAFE_FILE_LINES_SCANF. + +This patch turns to use FILE_LINES_SCANF to give find_kernel_symbol second +chance. + +[jstancek] Fix also condition introduced in 7709d2ae92ea, even if + /proc/kallsyms is disabled, we still want to try System.map. + +Signed-off-by: He Zhe <zhe.he@windriver.com> +Signed-off-by: Jan Stancek <jstancek@redhat.com> + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/c2049b5c874bc071f8185bffb5fd7dcb042d9ec8] + +Remove the hunk for upstream 7709d2ae92ea ("cve/meltdown.c: abort the test if kallsyms was not enabled") +that has been covered by this patch. + +Signed-off-by: He Zhe <zhe.he@windriver.com> +--- + testcases/cve/meltdown.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/testcases/cve/meltdown.c b/testcases/cve/meltdown.c +index a53ea9b..22651a6 100644 +--- a/testcases/cve/meltdown.c ++++ b/testcases/cve/meltdown.c +@@ -267,9 +267,15 @@ find_symbol_in_file(const char *filename, const char *symname) + int ret, read; + char fmt[strlen(symname) + 64]; + ++ tst_res(TINFO, "Looking for %s in %s", symname, filename); ++ if (access(filename, F_OK) == -1) { ++ tst_res(TINFO, "%s not available", filename); ++ return 0; ++ } ++ + sprintf(fmt, "%%lx %%c %s%%c", symname); + +- ret = SAFE_FILE_LINES_SCANF(filename, fmt, &addr, &type, &read); ++ ret = FILE_LINES_SCANF(filename, fmt, &addr, &type, &read); + if (ret) + return 0; + +@@ -287,13 +293,11 @@ find_kernel_symbol(const char *name) + if (addr) + return addr; + +- tst_res(TINFO, "not found '%s' in /proc/kallsyms", name); + if (uname(&utsname) < 0) + tst_brk(TBROK | TERRNO, "uname"); + + sprintf(systemmap, "/boot/System.map-%s", utsname.release); + +- tst_res(TINFO, "looking in '%s'\n", systemmap); + addr = find_symbol_in_file(systemmap, name); + return addr; + } +@@ -308,6 +312,9 @@ static void setup(void) + saved_cmdline_addr = find_kernel_symbol("saved_command_line"); + tst_res(TINFO, "&saved_command_line == 0x%lx", saved_cmdline_addr); + ++ if (!saved_cmdline_addr) ++ tst_brk(TCONF, "saved_command_line not found"); ++ + spec_fd = SAFE_OPEN("/proc/cmdline", O_RDONLY); + + memset(target_array, 1, sizeof(target_array)); +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch b/poky/meta/recipes-extended/ltp/ltp/0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch new file mode 100644 index 000000000..0e56c0825 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch @@ -0,0 +1,46 @@ +From a5046625eaeed2d3fba456c3ba84c6c141c2ad7c Mon Sep 17 00:00:00 2001 +From: He Zhe <zhe.he@windriver.com> +Date: Thu, 29 Aug 2019 21:09:46 +0800 +Subject: [PATCH] syscall/rt_sigtimedwait01: Fix wrong sigset length for MIPS + +rt_sigtimedwait01 fails as follow on MIPS arches +rt_sigtimedwait01 1 TFAIL : .../sigwaitinfo01.c:58: test_empty_set +(.../sigwaitinfo01.c: 148): Unexpected failure: +TEST_ERRNO=EINVAL(22): Invalid argument + +As this case purposely bypasses glibc, it should align with the size of kernel +definition of sigset_t which is different from other arches. +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/mips/include/uapi/asm/signal.h#n15 + +This patch turns to use _NSIG which is always right for all arches. + +Upstream-Status: Backport [a5046625eaeed2d3fba456c3ba84c6c141c2ad7c] + +Suggested-by: Jan Stancek <jstancek@redhat.com> +Acked-by: Jan Stancek <jstancek@redhat.com> +Acked-by: Cyril Hrubis <chrubis@suse.cz> +Signed-off-by: He Zhe <zhe.he@windriver.com> +Signed-off-by: Petr Vorel <pvorel@suse.cz> +--- + testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c +index 5a32ce1..6a30c27 100644 +--- a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c ++++ b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c +@@ -128,9 +128,8 @@ static int my_sigtimedwait(const sigset_t * set, siginfo_t * info, + static int my_rt_sigtimedwait(const sigset_t * set, siginfo_t * info, + struct timespec *timeout) + { +- +- /* The last argument is (number_of_signals)/(bits_per_byte), which are 64 and 8, resp. */ +- return ltp_syscall(__NR_rt_sigtimedwait, set, info, timeout, 8); ++ /* _NSIG is always the right number of bits of signal map for all arches */ ++ return ltp_syscall(__NR_rt_sigtimedwait, set, info, timeout, _NSIG/8); + } + #endif + +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-setrlimit03.c-read-proc-sys-fs-nr_open-for-.patch b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-setrlimit03.c-read-proc-sys-fs-nr_open-for-.patch deleted file mode 100644 index 39623c37d..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-setrlimit03.c-read-proc-sys-fs-nr_open-for-.patch +++ /dev/null @@ -1,70 +0,0 @@ -From db57ddc1497e72947da2b14f471ab521478ef99d Mon Sep 17 00:00:00 2001 -From: Tommi Rantala <tommi.t.rantala@nokia.com> -Date: Thu, 31 Jan 2019 19:49:00 +0200 -Subject: [PATCH] syscalls/setrlimit03.c: read /proc/sys/fs/nr_open for - RLIMIT_NOFILE limit - -Since kernel v2.6.25 RLIMIT_NOFILE limit is no longer hardcoded to -NR_OPEN, but can be set via /proc/sys/fs/nr_open, see kernel commit -9cfe015aa424b3c003baba3841a60dd9b5ad319b ("get rid of NR_OPEN and -introduce a sysctl_nr_open"). - -nr_open default value is 1024*1024, so setrlimit03 has been passing fine -on new kernels, only "unexpectedly succeeding" if nr_open is set to some -larger value. - -Signed-off-by: Tommi Rantala <tommi.t.rantala@nokia.com> -Reviewed-by: Cyril Hrubis <chrubis@suse.cz> - -Upstream-Status: Backport [db57ddc1497e ("syscalls/setrlimit03.c: read /proc/sys/fs/nr_open for RLIMIT_NOFILE limit")] - -Signed-off-by: He Zhe <zhe.he@windriver.com> ---- - testcases/kernel/syscalls/setrlimit/setrlimit03.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/testcases/kernel/syscalls/setrlimit/setrlimit03.c b/testcases/kernel/syscalls/setrlimit/setrlimit03.c -index 29b52aa..12455fe 100644 ---- a/testcases/kernel/syscalls/setrlimit/setrlimit03.c -+++ b/testcases/kernel/syscalls/setrlimit/setrlimit03.c -@@ -35,7 +35,10 @@ - # define NR_OPEN (1024*1024) - #endif - -+#define NR_OPEN_PATH "/proc/sys/fs/nr_open" -+ - static struct rlimit rlim1, rlim2; -+static unsigned int nr_open = NR_OPEN; - - static struct tcase { - struct rlimit *rlimt; -@@ -51,7 +54,10 @@ static void verify_setrlimit(unsigned int n) - - TEST(setrlimit(RLIMIT_NOFILE, tc->rlimt)); - if (TST_RET != -1) { -- tst_res(TFAIL, "call succeeded unexpectedly"); -+ tst_res(TFAIL, "call succeeded unexpectedly " -+ "(nr_open=%u rlim_cur=%lu rlim_max=%lu)", nr_open, -+ (unsigned long)(tc->rlimt->rlim_cur), -+ (unsigned long)(tc->rlimt->rlim_max)); - return; - } - -@@ -65,10 +71,13 @@ static void verify_setrlimit(unsigned int n) - - static void setup(void) - { -+ if (!access(NR_OPEN_PATH, F_OK)) -+ SAFE_FILE_SCANF(NR_OPEN_PATH, "%u", &nr_open); -+ - SAFE_GETRLIMIT(RLIMIT_NOFILE, &rlim1); - rlim2.rlim_max = rlim1.rlim_cur; - rlim2.rlim_cur = rlim1.rlim_max + 1; -- rlim1.rlim_max = NR_OPEN + 1; -+ rlim1.rlim_max = nr_open + 1; - } - - static struct tst_test test = { --- -2.7.4 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch new file mode 100644 index 000000000..6ea26150f --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch @@ -0,0 +1,75 @@ +From e747d0456adc080a1d31fb653bda9dc491795c80 Mon Sep 17 00:00:00 2001 +From: Jan Stancek <jstancek@redhat.com> +Date: Sun, 16 Jun 2019 11:14:16 +0200 +Subject: [PATCH] syscalls/tgkill03: wait for defunct tid to get detached + +Case where defunct tid is used has been observed to sporadically fail: + tgkill03.c:96: FAIL: Defunct tid should have failed with ESRCH: SUCCESS + +glibc __pthread_timedjoin_ex() waits for CLONE_CHILD_CLEARTID to clear tid, +and then resumes. Kernel clears it (glibc pd->tid) at: + do_exit + exit_mm + mm_release + put_user(0, tsk->clear_child_tid); + +but kernel tid is still valid, presumably until: + release_task + __exit_signal + __unhash_process + detach_pid + +To avoid race wait until /proc/<pid>/task/<tid> disappears. + +Signed-off-by: Jan Stancek <jstancek@redhat.com> +Reviewed-by: Li Wang <liwang@redhat.com> +Acked-by: Sumit Garg <sumit.garg@linaro.org> + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/e747d0456adc080a1d31fb653bda9dc491795c80] + +Signed-off-by: He Zhe <zhe.he@windriver.com> +--- + testcases/kernel/syscalls/tgkill/tgkill03.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/tgkill/tgkill03.c b/testcases/kernel/syscalls/tgkill/tgkill03.c +index f5bbdc5..593a217 100644 +--- a/testcases/kernel/syscalls/tgkill/tgkill03.c ++++ b/testcases/kernel/syscalls/tgkill/tgkill03.c +@@ -7,6 +7,7 @@ + + #include <pthread.h> + #include <pwd.h> ++#include <stdio.h> + #include <sys/types.h> + + #include "tst_safe_pthread.h" +@@ -42,6 +43,7 @@ static void setup(void) + { + sigset_t sigusr1; + pthread_t defunct_thread; ++ char defunct_tid_path[PATH_MAX]; + + sigemptyset(&sigusr1); + sigaddset(&sigusr1, SIGUSR1); +@@ -55,8 +57,9 @@ static void setup(void) + TST_CHECKPOINT_WAIT(0); + + SAFE_PTHREAD_CREATE(&defunct_thread, NULL, defunct_thread_func, NULL); +- + SAFE_PTHREAD_JOIN(defunct_thread, NULL); ++ sprintf(defunct_tid_path, "/proc/%d/task/%d", getpid(), defunct_tid); ++ TST_RETRY_FN_EXP_BACKOFF(access(defunct_tid_path, R_OK), -1, 15); + } + + static void cleanup(void) +@@ -108,4 +111,5 @@ static struct tst_test test = { + .setup = setup, + .cleanup = cleanup, + .test = run, ++ .timeout = 20, + }; +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch b/poky/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch new file mode 100644 index 000000000..f4f87f38a --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch @@ -0,0 +1,161 @@ +From 0463d793566772a606255957915f99d166d5740c Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 28 Aug 2019 18:30:23 +0200 +Subject: [PATCH] testcases: use python3 everywhere to run python scripts + +The scripts themselves have #!/usr/bin/python3 in them, +so I trust they are already py3-compatible. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + testcases/kernel/power_management/runpwtests05.sh | 2 +- + .../power_management/runpwtests_exclusive01.sh | 2 +- + .../power_management/runpwtests_exclusive02.sh | 2 +- + .../power_management/runpwtests_exclusive03.sh | 2 +- + .../power_management/runpwtests_exclusive04.sh | 2 +- + .../power_management/runpwtests_exclusive05.sh | 2 +- + testcases/network/nfsv4/acl/runtest | 14 +++++++------- + testcases/realtime/func/pi-tests/run_auto.sh | 6 +++--- + 8 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/testcases/kernel/power_management/runpwtests05.sh b/testcases/kernel/power_management/runpwtests05.sh +index 8a7d0f6e0..43e234d01 100755 +--- a/testcases/kernel/power_management/runpwtests05.sh ++++ b/testcases/kernel/power_management/runpwtests05.sh +@@ -35,7 +35,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + if ! grep sched_debug -qw /proc/cmdline ; then + tst_brkm TCONF "Kernel cmdline parameter 'sched_debug' needed," \ +diff --git a/testcases/kernel/power_management/runpwtests_exclusive01.sh b/testcases/kernel/power_management/runpwtests_exclusive01.sh +index ec78319e2..9fefcbf6e 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive01.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive01.sh +@@ -35,7 +35,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/kernel/power_management/runpwtests_exclusive02.sh b/testcases/kernel/power_management/runpwtests_exclusive02.sh +index e107fce35..2cd0ecb05 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive02.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive02.sh +@@ -33,7 +33,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/kernel/power_management/runpwtests_exclusive03.sh b/testcases/kernel/power_management/runpwtests_exclusive03.sh +index 490344bb3..ab3a5d11d 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive03.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive03.sh +@@ -35,7 +35,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/kernel/power_management/runpwtests_exclusive04.sh b/testcases/kernel/power_management/runpwtests_exclusive04.sh +index 978ca02ae..438ef603f 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive04.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive04.sh +@@ -27,7 +27,7 @@ export TST_TOTAL=2 + # Checking test environment + check_kervel_arch + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/kernel/power_management/runpwtests_exclusive05.sh b/testcases/kernel/power_management/runpwtests_exclusive05.sh +index a0dad5834..3a9afdbf2 100755 +--- a/testcases/kernel/power_management/runpwtests_exclusive05.sh ++++ b/testcases/kernel/power_management/runpwtests_exclusive05.sh +@@ -35,7 +35,7 @@ else + max_sched_smt=1 + fi + +-tst_test_cmds python ++tst_test_cmds python3 + + hyper_threaded=$(is_hyper_threaded) + multi_socket=$(is_multi_socket) +diff --git a/testcases/network/nfsv4/acl/runtest b/testcases/network/nfsv4/acl/runtest +index d2e1b4c49..a859e85bc 100755 +--- a/testcases/network/nfsv4/acl/runtest ++++ b/testcases/network/nfsv4/acl/runtest +@@ -22,7 +22,7 @@ do + done + + # creation of users on the remote machine (removed only at the end of the tests) +-rsh -n $REMOTEHOST python $PWD/create_users.py -u 50 -g 50 ++rsh -n $REMOTEHOST python3 $PWD/create_users.py -u 50 -g 50 + + echo "Starting ACL testing" + +@@ -51,19 +51,19 @@ echo "Basic tests finished" + + echo "LONG ACL TEST" + echo "creating necessary users and groups" +-python create_users.py -u 50 -g 50 ++python3 create_users.py -u 50 -g 50 + echo "creating necessary users and groups on the remote host" + mkdir $NFSMNTDIR/lacl-testdir +-python test_long_acl.py -l $MAXLENGTH -p $NFSMNTDIR/lacl-testdir ++python3 test_long_acl.py -l $MAXLENGTH -p $NFSMNTDIR/lacl-testdir + rm -rf $NFSMNTDIR/lacl-testdir + echo "Long ACL test OK with $MAXLENGTH entries" + echo "ACL STRESSING TEST" +-python setacl_stress.py -n 100 -u $USER_NB -g $GRP_NB -f $FILE_NB -p $NFSMNTDIR ++python3 setacl_stress.py -n 100 -u $USER_NB -g $GRP_NB -f $FILE_NB -p $NFSMNTDIR + + # remove local an remote users +-python cleanusers.py +-python cleangroups.py +-rsh -n $REMOTEHOST python $PWD/cleanusers.py ++python3 cleanusers.py ++python3 cleangroups.py ++rsh -n $REMOTEHOST python3 $PWD/cleanusers.py + + echo "Test OK" + +diff --git a/testcases/realtime/func/pi-tests/run_auto.sh b/testcases/realtime/func/pi-tests/run_auto.sh +index d13026049..277988568 100755 +--- a/testcases/realtime/func/pi-tests/run_auto.sh ++++ b/testcases/realtime/func/pi-tests/run_auto.sh +@@ -15,15 +15,15 @@ $SCRIPTS_DIR/run_c_files.sh $profile testpi-0 + + export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-1.log" + $SCRIPTS_DIR/run_c_files.sh $profile testpi-1 +-PYTHONPATH=../../ python parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE ++PYTHONPATH=../../ python3 parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE + + export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-2.log" + $SCRIPTS_DIR/run_c_files.sh $profile testpi-2 +-PYTHONPATH=../../ python parse-testpi2.py $LOG_FILE 2>&1 | tee -a $LOG_FILE ++PYTHONPATH=../../ python3 parse-testpi2.py $LOG_FILE 2>&1 | tee -a $LOG_FILE + + export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-4.log" + $SCRIPTS_DIR/run_c_files.sh $profile testpi-4 +-PYTHONPATH=../../ python parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE ++PYTHONPATH=../../ python3 parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE + + + export LOG_FILE="" diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch b/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch new file mode 100644 index 000000000..c936b788f --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch @@ -0,0 +1,36 @@ +From 156776a3e29491b363fdc9811912e1298655d060 Mon Sep 17 00:00:00 2001 +From: Steven Price <steven.price@arm.com> +Date: Fri, 19 Jul 2019 13:48:17 +0100 +Subject: [PATCH] ustat02: Fix EFAULT in 32bit compatibility mode + +The size of dev_t is larger than 32 bits which causes the dev argument +to be passed incorrectly. On Arm this means that the EFAULT test case +actually returns EINVAL because the device number isn't recognised. + +Signed-off-by: Steven Price <steven.price@arm.com> +Acked-by: Li Wang <liwang@redhat.com> + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/156776a3e29491b363fdc9811912e1298655d060] + +Signed-off-by: He Zhe <zhe.he@windriver.com> +--- + testcases/kernel/syscalls/ustat/ustat02.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/ustat/ustat02.c b/testcases/kernel/syscalls/ustat/ustat02.c +index 9bbe4f3..1a0e9e0 100644 +--- a/testcases/kernel/syscalls/ustat/ustat02.c ++++ b/testcases/kernel/syscalls/ustat/ustat02.c +@@ -36,7 +36,7 @@ int TST_TOTAL = ARRAY_SIZE(tc); + + void run(unsigned int test) + { +- TEST(tst_syscall(__NR_ustat, *tc[test].dev, tc[test].buf)); ++ TEST(tst_syscall(__NR_ustat, (unsigned int)*tc[test].dev, tc[test].buf)); + + if ((TST_RET == -1) && (TST_ERR == tc[test].exp_errno)) + tst_res(TPASS | TTERRNO, "ustat(2) expected failure"); +-- +2.7.4 + 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 000000000..12e47eb2b --- /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-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch b/poky/meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch index b9390e2c8..eff9ed074 100644 --- a/poky/meta/recipes-extended/ltp/ltp/0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch +++ b/poky/meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch @@ -1,20 +1,21 @@ -From 6e3058521b50d91d4b0569c4d491c5af5ff798b2 Mon Sep 17 00:00:00 2001 +From 81e5bd5442337a4a648a0dbbff47eaac0d351287 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Thu, 7 Jan 2016 18:22:38 +0000 -Subject: [PATCH 05/32] kernel/controllers: Link with libfts explicitly on musl +Subject: [PATCH] kernel/controllers: Link with libfts explicitly on musl musl does not implement fts like glibc and therefore it depends on external implementation for all fts APIs -Signed-off-by: Khem Raj <raj.khem@gmail.com> Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> --- testcases/kernel/controllers/Makefile.inc | 3 +++ testcases/kernel/controllers/cpuset/Makefile.inc | 3 +++ 2 files changed, 6 insertions(+) diff --git a/testcases/kernel/controllers/Makefile.inc b/testcases/kernel/controllers/Makefile.inc -index b106283..ef5fc0c 100644 +index 4ca0b5a..1d85e4d 100644 --- a/testcases/kernel/controllers/Makefile.inc +++ b/testcases/kernel/controllers/Makefile.inc @@ -36,6 +36,9 @@ MAKE_DEPS := $(LIB) @@ -28,7 +29,7 @@ index b106283..ef5fc0c 100644 INSTALL_TARGETS ?= *.sh diff --git a/testcases/kernel/controllers/cpuset/Makefile.inc b/testcases/kernel/controllers/cpuset/Makefile.inc -index 9e002f4..e0fcb9c 100644 +index db6a843..86dd2a8 100644 --- a/testcases/kernel/controllers/cpuset/Makefile.inc +++ b/testcases/kernel/controllers/cpuset/Makefile.inc @@ -42,6 +42,9 @@ MAKE_DEPS := $(LIBCONTROLLERS) $(LIBCPUSET) @@ -42,5 +43,5 @@ index 9e002f4..e0fcb9c 100644 INSTALL_TARGETS ?= *.sh -- -2.7.0 +2.7.4 diff --git a/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch b/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch new file mode 100644 index 000000000..c0f69ecf5 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch @@ -0,0 +1,58 @@ +From 29ce9fdab3bd34e69d73b5b890795559c06553f7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 7 Jan 2016 19:40:08 +0000 +Subject: [PATCH] Check if __GLIBC_PREREQ is defined before using it + +__GLIBC_PREREQ is specific to glibc so it should be checked if it is +defined or not. + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + testcases/kernel/syscalls/accept4/accept4_01.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c +index dd289cf..76aa969 100644 +--- a/testcases/kernel/syscalls/accept4/accept4_01.c ++++ b/testcases/kernel/syscalls/accept4/accept4_01.c +@@ -38,6 +38,7 @@ + static struct sockaddr_in conn_addr; + static int listening_fd; + ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if !(__GLIBC_PREREQ(2, 10)) + static int + accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) +@@ -56,6 +57,7 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) + #endif + } + #endif ++#endif + + static int create_listening_socket(void) + { +@@ -115,6 +117,7 @@ static void verify_accept4(unsigned int nr) + SAFE_CONNECT(connfd, (struct sockaddr *)&conn_addr, sizeof(conn_addr)); + addrlen = sizeof(claddr); + ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if !(__GLIBC_PREREQ(2, 10)) + TEST(accept4_01(listening_fd, (struct sockaddr *)&claddr, &addrlen, + tcase->cloexec | tcase->nonblock)); +@@ -122,6 +125,10 @@ static void verify_accept4(unsigned int nr) + TEST(accept4(listening_fd, (struct sockaddr *)&claddr, &addrlen, + tcase->cloexec | tcase->nonblock)); + #endif ++#else ++ TEST(accept4(listening_fd, (struct sockaddr *)&claddr, &addrlen, ++ tcase->cloexec | tcase->nonblock)); ++#endif + if (TST_RET == -1) { + if (TST_ERR == ENOSYS) + tst_brk(TCONF, "syscall __NR_accept4 not supported"); +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch b/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch index a79763d00..5622a64d4 100644 --- a/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch +++ b/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch @@ -1,12 +1,13 @@ -From f42b060e80c9f40627c712d4d56d45221bd7d9fa Mon Sep 17 00:00:00 2001 +From d0fc9ca5d3366f9b8907e463222403cd2327be10 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 8 Jan 2016 06:51:20 +0000 -Subject: [PATCH 18/32] guard mallocopt() with __GLIBC__ +Subject: [PATCH] guard mallocopt() with __GLIBC__ mallocopt is not available on non glibc implementations -Signed-off-by: Khem Raj <raj.khem@gmail.com> Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> --- utils/benchmark/ebizzy-0.3/ebizzy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -29,5 +30,5 @@ index 5bb8eff..934d951 100644 fprintf(stderr, "Chunk size %u smaller than record size %u\n", chunk_size, record_size); -- -2.7.0 +2.7.4 diff --git a/poky/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch b/poky/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch new file mode 100644 index 000000000..804edfa1b --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch @@ -0,0 +1,35 @@ +From 60054686e2c1a4bedf1d507af97ebbb7ff491e77 Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Thu, 18 Jul 2019 15:23:15 +0800 +Subject: [PATCH] rt_tgsigqueueinfo: disable test on musl + +Fix build error with musl: +rt_tgsigqueueinfo01.c: In function 'sigusr1_handler': +rt_tgsigqueueinfo01.c:42:22: error: 'siginfo_t' {aka 'struct <anonymous>'} has no member named '_sifields'; did you mean '__si_fields'? + 42 | sigval_rcv = uinfo->_sifields._rt.SI_SIGVAL.sival_ptr; + | ^~~~~~~~~ + | __si_fields + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + testcases/kernel/syscalls/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile +index d1becd0..1f3ff34 100644 +--- a/testcases/kernel/syscalls/Makefile ++++ b/testcases/kernel/syscalls/Makefile +@@ -31,7 +31,7 @@ endif + ifeq ($(LIBC),musl) + FILTER_OUT_DIRS += confstr fmtmsg getcontext ioctl mallopt profil \ + rt_sigsuspend setdomainname sethostname sigsuspend \ +- ustat ++ ustat rt_tgsigqueueinfo + endif + + ifeq ($(UCLIBC),1) +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch b/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch index 665da3bef..0e7264574 100644 --- a/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch +++ b/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch @@ -1,22 +1,22 @@ -From f7c602b639db0d118e07d3fa7b6deead0be0c72b Mon Sep 17 00:00:00 2001 +From f4fafbdffae3a63c81f65cef98c72dda26283e06 Mon Sep 17 00:00:00 2001 From: Dengke Du <dengke.du@windriver.com> Date: Wed, 8 Feb 2017 16:17:17 +0800 -Subject: [PATCH 3/5] Fix test_proc_kill hanging +Subject: [PATCH] Fix test_proc_kill hanging Sometimes the signal is delivered to memcg_process before the framework took into consideration its pid entered in the tasks. Fixed by delaying the signal send command. +Upstream-Status: Pending + Signed-off-by: George Nita <george.nita@enea.com> Signed-off-by: Dengke Du <dengke.du@windriver.com> - -Upstream-Status: Pending --- testcases/kernel/controllers/memcg/functional/memcg_lib.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh -index b785fe3..2918cc5 100755 +index aadaae4..deea5d6 100755 --- a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh +++ b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh @@ -291,6 +291,7 @@ test_proc_kill() diff --git a/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch b/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch deleted file mode 100644 index 6e6dbf398..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d1a27570457fb6e1d6bafe81bfa0f3507b137e32 Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke.du@windriver.com> -Date: Thu, 9 Feb 2017 18:20:58 +0800 -Subject: [PATCH] fix __WORDSIZE undeclared when building with musl - -fix __WORDSIZE undeclared when building with musl. - -Upstream-Status: Submitted [https://github.com/linux-test-project/ltp/pull/177] - -Signed-off-by: Dengke Du <dengke.du@windriver.com> ---- - include/old/test.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/include/old/test.h b/include/old/test.h -index b36764d83..cc6f1b551 100644 ---- a/include/old/test.h -+++ b/include/old/test.h -@@ -17,6 +17,9 @@ - #include <string.h> - #include <stdlib.h> - #include <stdint.h> -+#ifndef __GLIBC__ -+#include <bits/reg.h> -+#endif - - #include "usctest.h" - --- -2.11.0 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch b/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch deleted file mode 100644 index 7311ee2e4..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch +++ /dev/null @@ -1,151 +0,0 @@ -From fc2b47ad979a87bfbd11aeea3f67c26e7fb39e30 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 7 Jan 2016 19:40:08 +0000 -Subject: [PATCH] Check if __GLIBC_PREREQ is defined before using it - -__GLIBC_PREREQ is specific to glibc so it should be checked if it is -defined or not. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending ---- - .../kernel/syscalls/accept4/accept4_01.c | 9 ++++++- - .../sched_getaffinity/sched_getaffinity01.c | 26 +++++++++++++++++++ - 2 files changed, 34 insertions(+), 1 deletion(-) - -diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c -index dec4ef93b..c5d74b07f 100644 ---- a/testcases/kernel/syscalls/accept4/accept4_01.c -+++ b/testcases/kernel/syscalls/accept4/accept4_01.c -@@ -64,6 +64,7 @@ static void cleanup(void) - tst_rmdir(); - } - -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if !(__GLIBC_PREREQ(2, 10)) - static int - accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) -@@ -82,7 +83,6 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) - } - tst_resm(TINFO, "\n"); - #endif -- - #if USE_SOCKETCALL - long args[6]; - -@@ -97,6 +97,7 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) - #endif - } - #endif -+#endif - - static void - do_test(int lfd, struct sockaddr_in *conn_addr, -@@ -119,9 +120,15 @@ do_test(int lfd, struct sockaddr_in *conn_addr, - die("Connect Error"); - - addrlen = sizeof(struct sockaddr_in); -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if !(__GLIBC_PREREQ(2, 10)) - acceptfd = accept4_01(lfd, (struct sockaddr *)&claddr, &addrlen, - closeonexec_flag | nonblock_flag); -+ -+#else -+ acceptfd = accept4(lfd, (struct sockaddr *)&claddr, &addrlen, -+ closeonexec_flag | nonblock_flag); -+#endif - #else - acceptfd = accept4(lfd, (struct sockaddr *)&claddr, &addrlen, - closeonexec_flag | nonblock_flag); -diff --git a/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c b/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c -index 02f04b909..d906d7e09 100644 ---- a/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c -+++ b/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c -@@ -67,9 +67,11 @@ do { \ - tst_resm((TEST_RETURN == -1 ? TPASS : TFAIL) | TTERRNO, #t); \ - } while (0) - -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if !(__GLIBC_PREREQ(2, 7)) - #define CPU_FREE(ptr) free(ptr) - #endif -+#endif - - int main(int ac, char **av) - { -@@ -96,17 +98,26 @@ static void do_test(void) - pid_t unused_pid; - unsigned len; - -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - realloc: - mask = CPU_ALLOC(nrcpus); -+#else -+ mask = malloc(sizeof(cpu_set_t)); -+#endif - #else - mask = malloc(sizeof(cpu_set_t)); - #endif - if (mask == NULL) - tst_brkm(TFAIL | TTERRNO, cleanup, "fail to get enough memory"); -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - len = CPU_ALLOC_SIZE(nrcpus); - CPU_ZERO_S(len, mask); -+#else -+ len = sizeof(cpu_set_t); -+ CPU_ZERO(mask); -+#endif - #else - len = sizeof(cpu_set_t); - CPU_ZERO(mask); -@@ -115,11 +126,18 @@ realloc: - TEST(sched_getaffinity(0, len, mask)); - if (TEST_RETURN == -1) { - CPU_FREE(mask); -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - if (errno == EINVAL && nrcpus < (1024 << 8)) { - nrcpus = nrcpus << 2; - goto realloc; - } -+#else -+ if (errno == EINVAL) -+ tst_resm(TFAIL, "NR_CPUS > 1024, we'd better use a " -+ "newer glibc(>= 2.7)"); -+ else -+#endif - #else - if (errno == EINVAL) - tst_resm(TFAIL, "NR_CPUS > 1024, we'd better use a " -@@ -132,8 +150,12 @@ realloc: - tst_resm(TINFO, "cpusetsize is %d", len); - tst_resm(TINFO, "mask.__bits[0] = %lu ", mask->__bits[0]); - for (i = 0; i < num; i++) { -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - TEST(CPU_ISSET_S(i, len, mask)); -+#else -+ TEST(CPU_ISSET(i, mask)); -+#endif - #else - TEST(CPU_ISSET(i, mask)); - #endif -@@ -144,8 +166,12 @@ realloc: - } - } - -+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 7) - CPU_ZERO_S(len, mask); -+#else -+ CPU_ZERO(mask); -+#endif - #else - CPU_ZERO(mask); - #endif --- -2.17.1 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch b/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch index e826d48e3..b46325eaf 100644 --- a/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch +++ b/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch @@ -1,8 +1,8 @@ -From 672a56be14426eae44864673c6c2afca0ab89d46 Mon Sep 17 00:00:00 2001 +From aa7a9185a037ad59012bd46713ac340458e95209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com> Date: Fri, 13 May 2016 11:11:28 -0500 -Subject: [PATCH] testcases/network/nfsv4/acl/acl1.c: Security fix on string - printf +Subject: [PATCH] testcases/network/nfsv4/acl/acl1.c: Security fix on + string printf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -16,15 +16,15 @@ acl1.c:317:2: error: format not a string literal and no format arguments [YOCTO #9548] -Signed-off-by: AnÃbal Limón <anibal.limon@linux.intel.com> - Upstream-Status: Pending + +Signed-off-by: AnÃbal Limón <anibal.limon@linux.intel.com> --- testcases/network/nfsv4/acl/acl1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testcases/network/nfsv4/acl/acl1.c b/testcases/network/nfsv4/acl/acl1.c -index b8b67b4..7c7c506 100644 +index bdf0180..898b7ca 100644 --- a/testcases/network/nfsv4/acl/acl1.c +++ b/testcases/network/nfsv4/acl/acl1.c @@ -303,7 +303,7 @@ void test_acl_default(char *dir, acl_t acl) @@ -37,5 +37,5 @@ index b8b67b4..7c7c506 100644 system(cmd); acl2 = acl_get_file(path, ACL_TYPE_ACCESS); -- -2.1.4 +2.7.4 diff --git a/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch b/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch deleted file mode 100644 index dd7d28319..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch +++ /dev/null @@ -1,36 +0,0 @@ -From bf5dd2932200e0199a38f3028d3bef2253f32e38 Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke.du@windriver.com> -Date: Thu, 9 Feb 2017 17:17:37 +0800 -Subject: [PATCH] fix redefinition of 'struct msgbuf' error building with musl - -When building with musl the file "sys/msg.h" already contain 'struct msgbuf' - -Upstream-Status: Submitted [https://github.com/linux-test-project/ltp/pull/177] - -Signed-off-by: Dengke Du <dengke.du@windriver.com> ---- - testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c -index a757c0d18..e023114d2 100644 ---- a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c -+++ b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c -@@ -47,11 +47,13 @@ const char *TCID = "msgrcv08"; - const int TST_TOTAL = 1; - - #if __WORDSIZE == 32 -- -+#ifdef __GLIBC__ - struct msgbuf { - long mtype; /* message type, must be > 0 */ - char mtext[16]; /* message data */ - }; -+#else -+#endif - - static void msr(int msqid) - { --- -2.11.0 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch b/poky/meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch index 84736053b..d32ac1dd7 100644 --- a/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch +++ b/poky/meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch @@ -1,4 +1,4 @@ -From 85c972f730e8efe891a06ea3a2dfb5cbbdfbfbf4 Mon Sep 17 00:00:00 2001 +From a8715a1446305ffd76406f63c7f160c13a5b2e72 Mon Sep 17 00:00:00 2001 From: "Hongzhi.Song" <hongzhi.song@windriver.com> Date: Wed, 10 Oct 2018 22:07:05 -0400 Subject: [PATCH] open_posix_testsuite/mmap24-2: Relax condition a bit @@ -23,7 +23,7 @@ Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com> 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c b/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c -index de51d43..810e5c8 100644 +index 9cf83d9..55090a6 100644 --- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c +++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c @@ -7,7 +7,7 @@ @@ -64,5 +64,5 @@ index de51d43..810e5c8 100644 return PTS_FAIL; } -- -2.8.1 +2.7.4 diff --git a/poky/meta/recipes-extended/ltp/ltp/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch b/poky/meta/recipes-extended/ltp/ltp/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch new file mode 100644 index 000000000..8704e5ffe --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch @@ -0,0 +1,82 @@ +From 794933b38354a2612cf2c471f11798b306f35315 Mon Sep 17 00:00:00 2001 +From: Jan Stancek <jstancek@redhat.com> +Date: Mon, 20 May 2019 20:47:20 +0200 +Subject: [PATCH] shmctl01: don't use hardcoded index == 0 for SHM_STAT test + +Test fails on SHM_STAT testcase: + shmctl01 5 TFAIL : shmctl01.c:173: shmctl01 call failed + errno = 22 : Invalid argument + shmctl(0, SHM_STAT, 0x601060) = -EINVAL + +since following commit: + commit 99db46ea292780cd978d56932d9445b1e8bdafe8 + Author: Manfred Spraul <manfred@colorfullife.com> + Date: Tue May 14 15:46:36 2019 -0700 + ipc: do cyclic id allocation for the ipc object. + +Don't rely on index 0 being always available, but instead +use (maximum) index returned by SHM_INFO. + +Signed-off-by: Jan Stancek <jstancek@redhat.com> +Reviewed-by: Petr Vorel <pvorel@suse.cz> +Acked-by: Cyril Hrubis <chrubis@suse.cz> + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/db0a43d9388be2c347a8306751bbe6bec086d062] + +Signed-off-by: Hongzhi Song <hongzhi.song@windriver.com> +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + testcases/kernel/syscalls/ipc/shmctl/shmctl01.c | 21 ++++++++++++++++++--- + 1 file changed, 18 insertions(+), 3 deletions(-) + +diff --git a/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c b/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c +index 1b46977..52bf23a 100644 +--- a/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c ++++ b/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c +@@ -79,6 +79,7 @@ static void func_info(int ret); + + /* Check routine for SHM_STAT */ + static void func_sstat(int ret); ++static void func_sstat_setup(void); + + /* Check routine for SHM_LOCK */ + static void func_lock(int ret); +@@ -110,7 +111,7 @@ static struct test_case_t { + #endif + {&shm_id_1, IPC_SET, &buf, func_set, set_setup}, + {&shm_id_1, IPC_INFO, (struct shmid_ds *) &info, func_info, NULL}, +- {&shm_index, SHM_STAT, &buf, func_sstat, NULL}, ++ {&shm_index, SHM_STAT, &buf, func_sstat, func_sstat_setup}, + {&shm_id_1, SHM_LOCK, NULL, func_lock, NULL}, + {&shm_id_1, SHM_UNLOCK, NULL, func_unlock, NULL}, + {&shm_id_1, IPC_RMID, NULL, func_rmid, NULL}, +@@ -407,9 +408,23 @@ static void func_info(int ret) + static void func_sstat(int ret) + { + if (ret >= 0) +- tst_resm(TPASS, "get correct shared memory id"); ++ tst_resm(TPASS, "get correct shared memory id for index: %d", ++ shm_index); + else +- tst_resm(TFAIL, "shared memory id is incorrect"); ++ tst_resm(TFAIL, "shared memory id is incorrect, index: %d", ++ shm_index); ++} ++ ++static void func_sstat_setup(void) ++{ ++ struct shm_info tmp; ++ int ret; ++ ++ ret = shmctl(shm_id_1, SHM_INFO, (void *)&tmp); ++ if (ret < 0) ++ tst_resm(TFAIL|TERRNO, "shmctl(SHM_INFO)"); ++ else ++ shm_index = ret; + } + + static void func_lock(int ret) +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch b/poky/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch new file mode 100644 index 000000000..9cd188f65 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch @@ -0,0 +1,56 @@ +From f210d7e19b721041f31b7f258a169f89dc850303 Mon Sep 17 00:00:00 2001 +From: Jan Stancek <jstancek@redhat.com> +Date: Thu, 4 Jul 2019 16:45:23 +0200 +Subject: [PATCH] direct_io/diotest4: drop MAP_FIXED + +Hongzhi reports that this test is failing on mips64 with 5.1+: + diotest4 10 TBROK : diotest4.c:368: can't mmap file: Invalid argument + diotest4 11 TBROK : diotest4.c:368: Remaining cases broken +I could reproduce it on emulated 5kc-malta, running 5.2.0-rc7. + +Test is trying to map into area immediately following heap as MAP_SHARED, +but it used wrong alignment (fixed by 'lapi/mmap.h: include config.h'). + +Usage of MAP_FIXED seems unnecessary, so drop that too and let the kernel +pick an address. + +Reported-by: Hongzhi.Song <hongzhi.song@windriver.com> +Signed-off-by: Jan Stancek <jstancek@redhat.com> +Acked-by: Cyril Hrubis <chrubis@suse.cz> + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/f5444eeeabf252b8884b9465d277b6af853819e3] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + testcases/kernel/io/direct_io/diotest4.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/testcases/kernel/io/direct_io/diotest4.c b/testcases/kernel/io/direct_io/diotest4.c +index e4616e4..bf200cd 100644 +--- a/testcases/kernel/io/direct_io/diotest4.c ++++ b/testcases/kernel/io/direct_io/diotest4.c +@@ -352,18 +352,14 @@ int main(int argc, char *argv[]) + total++; + + /* Test-10: read, write to a mmaped file */ +- shm_base = (char *)(((long)sbrk(0) + (shmsz - 1)) & ~(shmsz - 1)); +- if (shm_base == NULL) { +- tst_brkm(TBROK, cleanup, "sbrk failed: %s", strerror(errno)); +- } + offset = 4096; + count = bufsize; + if ((fd = open(filename, O_DIRECT | O_RDWR)) < 0) { + tst_brkm(TBROK, cleanup, "can't open %s: %s", + filename, strerror(errno)); + } +- shm_base = mmap(shm_base, 0x100000, PROT_READ | PROT_WRITE, +- MAP_SHARED | MAP_FIXED, fd, 0); ++ shm_base = mmap(0, 0x100000, PROT_READ | PROT_WRITE, ++ MAP_SHARED, fd, 0); + if (shm_base == (caddr_t) - 1) { + tst_brkm(TBROK, cleanup, "can't mmap file: %s", + strerror(errno)); +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch b/poky/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch new file mode 100644 index 000000000..aecbc80e9 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch @@ -0,0 +1,64 @@ +From 4ac747c1f7ff8e2ec2567d6672822e95a9b56e55 Mon Sep 17 00:00:00 2001 +From: "Hongzhi.Song" <hongzhi.song@windriver.com> +Date: Mon, 15 Jul 2019 03:39:06 -0400 +Subject: [PATCH] getrlimit03: adjust a bit of code to compatiable with mips32 + +Error info: +getrlimit03.c:104: FAIL: __NR_prlimit64(0) had rlim_cur = +ffffffffffffffff but __NR_getrlimit(0) had rlim_cur = 7fffffff + +According to kernel code: [arch/mips/include/uapi/asm/resource.h] +RLIM_INFINITY is set to 0x7fffffffUL instead of ULONG_MAX on mips32. + + /* + * SuS says limits have to be unsigned. + * Which makes a ton more sense anyway, + * but we keep the old value on MIPS32, + * for compatibility: + */ + #ifndef __mips64 + # define RLIM_INFINITY 0x7fffffffUL + #endif + +Adding conditional statement about mips to fix this. + +Signed-off-by: Jan Stancek <jstancek@redhat.com> +Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com> + +Upstream-Status: Backport +[https://github.com/linux-test-project/ltp/commit/7a3bca63cd7f059d490b6274f0fdf3247be93fde] + +Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com> +--- + testcases/kernel/syscalls/getrlimit/getrlimit03.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/getrlimit/getrlimit03.c b/testcases/kernel/syscalls/getrlimit/getrlimit03.c +index e4d56c4..319bc49 100644 +--- a/testcases/kernel/syscalls/getrlimit/getrlimit03.c ++++ b/testcases/kernel/syscalls/getrlimit/getrlimit03.c +@@ -26,6 +26,7 @@ + + #include "tst_test.h" + #include "lapi/syscalls.h" ++#include "lapi/abisize.h" + + /** + * Linux provides an "old" getrlimit syscall handler that uses signed long, +@@ -61,7 +62,12 @@ struct rlimit_ulong { + unsigned long rlim_cur; + unsigned long rlim_max; + }; +-const unsigned long RLIM_INFINITY_UL = ULONG_MAX; ++ ++#if defined(__mips__) && defined(TST_ABI32) ++ const unsigned long RLIM_INFINITY_UL = 0x7fffffffUL; ++#else ++ const unsigned long RLIM_INFINITY_UL = ULONG_MAX; ++#endif + + static int getrlimit_ulong(int resource, struct rlimit_ulong *rlim) + { +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch b/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch deleted file mode 100644 index 7060a64b1..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch +++ /dev/null @@ -1,50 +0,0 @@ -From aa3568e6ac28f377e75ce16b11e3c7738a373e53 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 20/32] 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. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending ---- - 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 abea655..db63d89 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.0 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch b/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch deleted file mode 100644 index 6c5f36035..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch +++ /dev/null @@ -1,73 +0,0 @@ -From b216435bb362df10c45f544b78d8c884eaa901fd Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 8 Jan 2016 07:01:02 +0000 -Subject: [PATCH 21/32] Define _GNU_SOURCE for MREMAP_MAYMOVE definition - -musl guards MREMAP_MAYMOVE with _GNU_SOURCE unlike glibc which uses -__USE_GNU - -Fixes errors like -error: 'MREMAP_MAYMOVE' undeclared (first use in this function) - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending ---- - testcases/kernel/syscalls/mremap/mremap01.c | 4 +++- - testcases/kernel/syscalls/mremap/mremap02.c | 2 ++ - testcases/kernel/syscalls/mremap/mremap03.c | 2 ++ - 3 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/testcases/kernel/syscalls/mremap/mremap01.c b/testcases/kernel/syscalls/mremap/mremap01.c -index d63d1e4..24ca174 100644 ---- a/testcases/kernel/syscalls/mremap/mremap01.c -+++ b/testcases/kernel/syscalls/mremap/mremap01.c -@@ -76,10 +76,12 @@ - */ - #include <unistd.h> - #include <errno.h> -+#include <fcntl.h> -+#define _GNU_SOURCE - #define __USE_GNU - #include <sys/mman.h> - #undef __USE_GNU --#include <fcntl.h> -+#undef _GNU_SOURCE - - #include "test.h" - #include "safe_macros.h" -diff --git a/testcases/kernel/syscalls/mremap/mremap02.c b/testcases/kernel/syscalls/mremap/mremap02.c -index 5a51b9a..a530a6b 100644 ---- a/testcases/kernel/syscalls/mremap/mremap02.c -+++ b/testcases/kernel/syscalls/mremap/mremap02.c -@@ -75,9 +75,11 @@ - #include <errno.h> - #include <unistd.h> - #include <fcntl.h> -+#define _GNU_SOURCE - #define __USE_GNU - #include <sys/mman.h> - #undef __USE_GNU -+#undef _GNU_SOURCE - - #include "test.h" - -diff --git a/testcases/kernel/syscalls/mremap/mremap03.c b/testcases/kernel/syscalls/mremap/mremap03.c -index 12e3829..9b39f8b 100644 ---- a/testcases/kernel/syscalls/mremap/mremap03.c -+++ b/testcases/kernel/syscalls/mremap/mremap03.c -@@ -76,9 +76,11 @@ - #include <errno.h> - #include <unistd.h> - #include <fcntl.h> -+#define _GNU_SOURCE - #define __USE_GNU - #include <sys/mman.h> - #undef __USE_GNU -+#undef _GNU_SOURCE - - #include "test.h" - --- -2.7.0 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch b/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch deleted file mode 100644 index 529f4ed30..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 560347f77236616a635b4a997a0596b8da4d0799 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 8 Jan 2016 07:08:25 +0000 -Subject: [PATCH 23/32] ptrace: Use int instead of enum __ptrace_request - -__ptrace_request is only available with glibc - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending ---- - testcases/kernel/syscalls/ptrace/ptrace03.c | 4 ++++ - testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/testcases/kernel/syscalls/ptrace/ptrace03.c b/testcases/kernel/syscalls/ptrace/ptrace03.c -index a4028fc..f1880cd 100644 ---- a/testcases/kernel/syscalls/ptrace/ptrace03.c -+++ b/testcases/kernel/syscalls/ptrace/ptrace03.c -@@ -102,7 +102,11 @@ static pid_t unused_pid; - static pid_t zero_pid; - - struct test_case_t { -+#ifdef __GLIBC__ - enum __ptrace_request request; -+#else -+ int request; -+#endif - pid_t *pid; - int exp_errno; - } test_cases[] = { -diff --git a/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h b/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h -index ae538e9..85aa89d 100644 ---- a/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h -+++ b/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h -@@ -130,7 +130,11 @@ static char *strings[] = { - SPT(KILL) - SPT(SINGLESTEP) - }; -+#ifdef __GLIBC__ - static inline char *strptrace(enum __ptrace_request request) -+#else -+static inline char *strptrace(int request) -+#endif - { - return strings[request]; - } --- -2.7.0 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch b/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch deleted file mode 100644 index 03aa45df8..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch +++ /dev/null @@ -1,70 +0,0 @@ -From e01e9862c248dc90a8ec6f2d06f8469d7a50cd8e Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 8 Jan 2016 07:14:58 +0000 -Subject: [PATCH 24/32] rt_sigaction/rt_sigprocmark: Define _GNU_SOURCE - -Fixes musl build failure e.g. -error: 'SA_NOMASK' undeclared here (not in a function) - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending ---- - testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c | 1 + - testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c | 2 +- - testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c | 1 + - testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c | 1 + - 4 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c -index 5cf89cc..bdcb91a 100644 ---- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c -+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c -@@ -28,6 +28,7 @@ - /* sigset_t type. */ - /******************************************************************************/ - -+#define _GNU_SOURCE - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> -diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c -index a1da743..8a27a0f 100644 ---- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c -+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c -@@ -23,7 +23,7 @@ - /* Description: This tests the rt_sigaction() syscall */ - /* rt_sigaction Expected EFAULT error check */ - /******************************************************************************/ -- -+#define _GNU_SOURCE - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> -diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c -index 175d220..e7627cd 100644 ---- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c -+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c -@@ -24,6 +24,7 @@ - /* rt_sigaction Expected EINVAL error check */ - /******************************************************************************/ - -+#define _GNU_SOURCE - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> -diff --git a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c -index 74e5a61..75c57fc 100644 ---- a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c -+++ b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c -@@ -39,6 +39,7 @@ - /* sigsetsize should indicate the size of a sigset_t type. */ - /******************************************************************************/ - -+#define _GNU_SOURCE - #include <stdio.h> - #include <signal.h> - #include <errno.h> --- -2.7.0 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch b/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch deleted file mode 100644 index f65fad12d..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0133a2b29d6f48d8e2bba6a3be581cdfa91311a6 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 8 Jan 2016 07:21:05 +0000 -Subject: [PATCH 26/32] crash01: Define _GNU_SOURCE - -Fixes musl build errors like -error: 'SA_NOMASK' undeclared (first use in this function) - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending ---- - testcases/misc/crash/crash01.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/testcases/misc/crash/crash01.c b/testcases/misc/crash/crash01.c -index 0574521..08a02e7 100644 ---- a/testcases/misc/crash/crash01.c -+++ b/testcases/misc/crash/crash01.c -@@ -49,7 +49,7 @@ stress test at the same time you run other tests, like a multi-user - benchmark. - - */ -- -+#define _GNU_SOURCE - #include <stdio.h> - #include <stdlib.h> - #include <string.h> --- -2.7.0 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch b/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch deleted file mode 100644 index 40ee89414..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 94557fb7e1293c61145c959b8c5ffecf4a2b1069 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 8 Jan 2016 07:24:44 +0000 -Subject: [PATCH 28/32] rt_sigaction.h: Use sighandler_t instead of - __sighandler_t - -When _GNU_SOURCE is used then both typedefs are same and using -sighandler_t makes it work on musl too - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending ---- - include/lapi/rt_sigaction.h | 4 ++-- - testcases/kernel/syscalls/rt_sigsuspend/Makefile | 3 +++ - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/include/lapi/rt_sigaction.h b/include/lapi/rt_sigaction.h -index 18236db..15facda 100644 ---- a/include/lapi/rt_sigaction.h -+++ b/include/lapi/rt_sigaction.h -@@ -36,12 +36,12 @@ - #if defined(__mips__) - struct kernel_sigaction { - unsigned int sa_flags; -- __sighandler_t k_sa_handler; -+ sighandler_t k_sa_handler; - sigset_t sa_mask; - }; - #else - struct kernel_sigaction { -- __sighandler_t k_sa_handler; -+ sighandler_t k_sa_handler; - unsigned long sa_flags; - void (*sa_restorer) (void); - sigset_t sa_mask; -diff --git a/testcases/kernel/syscalls/rt_sigsuspend/Makefile b/testcases/kernel/syscalls/rt_sigsuspend/Makefile -index 37bc3a9..2ca7f7c 100644 ---- a/testcases/kernel/syscalls/rt_sigsuspend/Makefile -+++ b/testcases/kernel/syscalls/rt_sigsuspend/Makefile -@@ -19,4 +19,7 @@ - top_srcdir ?= ../../../.. - - include $(top_srcdir)/include/mk/testcases.mk -+ -+CFLAGS += -D_GNU_SOURCE -+ - include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch b/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch deleted file mode 100644 index c2ef899cc..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 5a77e2bdc083f4f842a8ba7c2db1a7ac6e5f0664 Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke.du@windriver.com> -Date: Wed, 31 May 2017 21:26:05 -0400 -Subject: [PATCH] Add periodic output for long time test. - -This is needed in context of having scripts running ltp tests and -waiting with a timeout for the output of the tests. - -Signed-off-by: Tudor Florea <tudor.florea@enea.com> -Upstream-Status: Pending - -Signed-off-by: Dengke Du <dengke.du@windriver.com> ---- - .../kernel/controllers/memcg/stress/memcg_stress_test.sh | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh -index af1a708..084e628 100755 ---- a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh -+++ b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh -@@ -37,7 +37,8 @@ if [ "x$(grep -w memory /proc/cgroups | cut -f4)" != "x1" ]; then - exit 0 - fi - --RUN_TIME=$(( 15 * 60 )) -+ONE_MINUTE=60 -+RUN_TIME=15 - - cleanup() - { -@@ -62,7 +63,7 @@ do_mount() - # $1 - Number of cgroups - # $2 - Allocated how much memory in one process? in MB - # $3 - The interval to touch memory in a process --# $4 - How long does this test run ? in second -+# $4 - How long does this test run ? in minutes - run_stress() - { - do_mount; -@@ -81,7 +82,11 @@ run_stress() - eval /bin/kill -s SIGUSR1 \$pid$i 2> /dev/null - done - -- sleep $4 -+ for i in $(seq 0 $(($4-1))) -+ do -+ eval echo "Started $i min ago. Still alive... " -+ sleep $ONE_MINUTE -+ done - - for i in $(seq 0 $(($1-1))) - do --- -2.8.1 - diff --git a/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch b/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch deleted file mode 100644 index ec5e2ef95..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 04da9478887e705ea38e4f097492da20e651686c Mon Sep 17 00:00:00 2001 -From: Guangwen Feng <fenggw-fnst@cn.fujitsu.com> -Date: Wed, 13 Sep 2017 15:48:42 +0800 -Subject: [PATCH] commands/ar01: Fix for test in deterministic mode - -If binutils was configured with --enable-deterministic-archives, -ar will run in deterministic mode by default, and use zero for -timestamps and uids/gids, which makes the test case abnormal. - -Fix this by add the "U" modifier when deterministic mode is default. - -Signed-off-by: Guangwen Feng <fenggw-fnst@cn.fujitsu.com> -Signed-off-by: Fei Jie <feij.fnst@cn.fujitsu.com> - -Upstream-Status: Backport -[http://lists.linux.it/pipermail/ltp/2017-September/005668.html] - -Signed-off-by: Yi Zhao <yi.zhao@windriver.com> ---- - testcases/commands/ar/ar01 | 92 ++++++++++++++++++++++++++-------------------- - 1 file changed, 52 insertions(+), 40 deletions(-) - -diff --git a/testcases/commands/ar/ar01 b/testcases/commands/ar/ar01 -index be105f6da..813a51d9c 100644 ---- a/testcases/commands/ar/ar01 -+++ b/testcases/commands/ar/ar01 -@@ -24,16 +24,28 @@ - # - AR="${AR:=ar}" - TST_CNT=17 -+TST_SETUP=setup - TST_TESTFUNC=test - TST_NEEDS_TMPDIR=1 - TST_NEEDS_CMDS="$AR" - - . tst_test.sh - -+setup() -+{ -+ ar --help | grep "use zero for timestamps and uids/gids (default)" \ -+ >/dev/null -+ if [ $? -eq 0 ]; then -+ MOD="U" -+ else -+ MOD="" -+ fi -+} -+ - test1() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -- ROD ar -ra file1.in lib.a $TST_DATAROOT/file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -+ ROD ar -ra"$MOD" file1.in lib.a $TST_DATAROOT/file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -50,9 +62,9 @@ test1() - - test2() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in $TST_DATAROOT/file4.in -- ROD ar -ma file1.in lib.a file4.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in $TST_DATAROOT/file4.in -+ ROD ar -ma"$MOD" file1.in lib.a file4.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile4.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -69,8 +81,8 @@ test2() - - test3() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -- ROD ar -rb file3.in lib.a $TST_DATAROOT/file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -+ ROD ar -rb"$MOD" file3.in lib.a $TST_DATAROOT/file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -87,9 +99,9 @@ test3() - - test4() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -- $TST_DATAROOT/file2.in -- ROD ar -mb file3.in lib.a file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -+ $TST_DATAROOT/file2.in -+ ROD ar -mb"$MOD" file3.in lib.a file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -106,7 +118,7 @@ test4() - - test5() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in \> ar.out -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in \> ar.out - - if [ -s ar.out ]; then - tst_res TFAIL "ar produced output unexpectedly (-c)" -@@ -120,7 +132,7 @@ test5() - - test6() - { -- ROD ar -qc lib.a $TST_DATAROOT/file1.in \> ar.out -+ ROD ar -qc"$MOD" lib.a $TST_DATAROOT/file1.in \> ar.out - - if [ -s ar.out ]; then - tst_res TFAIL "ar produced output unexpectedly (-qc)" -@@ -134,9 +146,9 @@ test6() - - test7() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -d lib.a file1.in file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -d"$MOD" lib.a file1.in file2.in - ROD ar -t lib.a \> ar.out - - printf "file3.in\n" > ar.exp -@@ -153,9 +165,9 @@ test7() - - test8() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -d lib.a -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -d"$MOD" lib.a - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -172,8 +184,8 @@ test8() - - test9() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -- ROD ar -ri file3.in lib.a $TST_DATAROOT/file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in -+ ROD ar -ri"$MOD" file3.in lib.a $TST_DATAROOT/file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -190,9 +202,9 @@ test9() - - test10() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -- $TST_DATAROOT/file2.in -- ROD ar -mi file3.in lib.a file2.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -+ $TST_DATAROOT/file2.in -+ ROD ar -mi"$MOD" file3.in lib.a file2.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -209,9 +221,9 @@ test10() - - test11() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -- $TST_DATAROOT/file2.in -- ROD ar -m lib.a file3.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ -+ $TST_DATAROOT/file2.in -+ ROD ar -m"$MOD" lib.a file3.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp -@@ -228,9 +240,9 @@ test11() - - test12() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -p lib.a \> ar.out -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -p"$MOD" lib.a \> ar.out - - printf "This is file one\nThis is file two\nThis is file three\n" > ar.exp - -@@ -247,9 +259,9 @@ test12() - test13() - { - -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -q lib.a $TST_DATAROOT/file4.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -q"$MOD" lib.a $TST_DATAROOT/file4.in - ROD ar -t lib.a \> ar.out - - printf "file1.in\nfile2.in\nfile3.in\nfile4.in\n" > ar.exp -@@ -267,14 +279,14 @@ test13() - test14() - { - ROD touch file0.in -- ROD ar -cr lib.a file0.in $TST_DATAROOT/file1.in -+ ROD ar -cr"$MOD" lib.a file0.in $TST_DATAROOT/file1.in - - file0_mtime1=$(ar -tv lib.a | grep file0.in) - file1_mtime1=$(ar -tv lib.a | grep file1.in) - - touch -c -t $(date --date='next day' +"%Y%m%d%H%M") file0.in - -- ROD ar -ru lib.a file0.in $TST_DATAROOT/file1.in -+ ROD ar -ru"$MOD" lib.a file0.in $TST_DATAROOT/file1.in - - file0_mtime2=$(ar -tv lib.a | grep file0.in) - file1_mtime2=$(ar -tv lib.a | grep file1.in) -@@ -296,7 +308,7 @@ test14() - - test15() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in - ROD ar -tv lib.a \> ar.out - - if grep -q '[rwx-]\{9\} [0-9].*/[0-9].*\s*[0-9].*.*file1.in' ar.out; then -@@ -311,9 +323,9 @@ test15() - - test16() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -- $TST_DATAROOT/file3.in -- ROD ar -xv lib.a \> ar.out -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ -+ $TST_DATAROOT/file3.in -+ ROD ar -xv"$MOD" lib.a \> ar.out - - printf "x - file1.in\nx - file2.in\nx - file3.in\n" > ar.exp - -@@ -335,8 +347,8 @@ test16() - - test17() - { -- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in -- ROD ar -xv lib.a file2.in \> ar.out -+ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in -+ ROD ar -xv"$MOD" lib.a file2.in \> ar.out - - printf "x - file2.in\n" > ar.exp - --- -2.19.0.rc2 - diff --git a/poky/meta/recipes-extended/ltp/ltp/define-sigrtmin-and-sigrtmax-for-musl.patch b/poky/meta/recipes-extended/ltp/ltp/define-sigrtmin-and-sigrtmax-for-musl.patch deleted file mode 100644 index c324463e6..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/define-sigrtmin-and-sigrtmax-for-musl.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 34b91edc70709f32b44f6b3a32c8f18db393e36c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20D=C3=ADaz?= <daniel.diaz@linaro.org> -Date: Wed, 20 Feb 2019 08:07:27 -0600 -Subject: [PATCH] Define __SIGRTMIN and __SIGRTMAX for MUSL -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Some libc implementations might differ in the definitions they -include. Exempli gratia: MUSL does not define __SIGRTMAX nor -__SIGRTMIN. - -These two tests fail to build because of the missing -definitions: - testcases/kernel/syscalls/ptrace/ptrace05.c - testcases/kernel/syscalls/sighold/sighold02.c - -Out of precaution, these two also include this header: - lib/tst_sig.c - testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c - -Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-February/010916.html] - -Signed-off-by: Daniel DÃaz <daniel.diaz@linaro.org> ---- - include/lapi/signal.h | 24 +++++++++++++++++++ - lib/tst_sig.c | 1 + - testcases/kernel/syscalls/ptrace/ptrace05.c | 1 + - .../syscalls/rt_sigsuspend/rt_sigsuspend01.c | 1 + - testcases/kernel/syscalls/sighold/sighold02.c | 1 + - 5 files changed, 28 insertions(+) - create mode 100644 include/lapi/signal.h - -diff --git a/include/lapi/signal.h b/include/lapi/signal.h -new file mode 100644 -index 000000000..d22965a94 ---- /dev/null -+++ b/include/lapi/signal.h -@@ -0,0 +1,24 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * Copyright (c) 2019 Linaro Limited. All rights reserved. -+ * Author: Daniel DÃaz <daniel.diaz@linaro.org> -+ */ -+ -+#ifndef LAPI_SIGNAL_H -+#define LAPI_SIGNAL_H -+ -+#include <signal.h> -+ -+/* -+ * Some libc implementations might differ in the definitions they include. This -+ * covers those differences for all tests to successfully build. -+ */ -+ -+#ifndef __SIGRTMIN -+# define __SIGRTMIN 32 -+#endif -+#ifndef __SIGRTMAX -+# define __SIGRTMAX (_NSIG - 1) -+#endif -+ -+#endif -diff --git a/lib/tst_sig.c b/lib/tst_sig.c -index 36565e13d..6d77aeafd 100644 ---- a/lib/tst_sig.c -+++ b/lib/tst_sig.c -@@ -72,6 +72,7 @@ - #include <signal.h> - #include <unistd.h> - #include "test.h" -+#include "lapi/signal.h" - - #define MAXMESG 150 /* size of mesg string sent to tst_res */ - -diff --git a/testcases/kernel/syscalls/ptrace/ptrace05.c b/testcases/kernel/syscalls/ptrace/ptrace05.c -index 420330029..54cfa4d7b 100644 ---- a/testcases/kernel/syscalls/ptrace/ptrace05.c -+++ b/testcases/kernel/syscalls/ptrace/ptrace05.c -@@ -38,6 +38,7 @@ - #include "ptrace.h" - - #include "test.h" -+#include "lapi/signal.h" - - char *TCID = "ptrace05"; - int TST_TOTAL = 0; -diff --git a/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c b/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c -index f17a9aae6..e577cf227 100644 ---- a/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c -+++ b/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c -@@ -18,6 +18,7 @@ - #include "tst_test.h" - #include "lapi/syscalls.h" - #include "lapi/safe_rt_signal.h" -+#include "lapi/signal.h" - - static void sig_handler(int sig) - { -diff --git a/testcases/kernel/syscalls/sighold/sighold02.c b/testcases/kernel/syscalls/sighold/sighold02.c -index d1d4b0b06..b763142df 100644 ---- a/testcases/kernel/syscalls/sighold/sighold02.c -+++ b/testcases/kernel/syscalls/sighold/sighold02.c -@@ -49,6 +49,7 @@ - #include <sys/wait.h> - #include "test.h" - #include "safe_macros.h" -+#include "lapi/signal.h" - - /* _XOPEN_SOURCE disables NSIG */ - #ifndef NSIG --- -2.17.1 - diff --git a/poky/meta/recipes-extended/ltp/ltp/setregid01-security-string-formatting.patch b/poky/meta/recipes-extended/ltp/ltp/setregid01-security-string-formatting.patch deleted file mode 100644 index 24449148f..000000000 --- a/poky/meta/recipes-extended/ltp/ltp/setregid01-security-string-formatting.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 430e05c2169ed15aaa6d7f9459edd607603cee02 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20D=C3=ADaz?= <daniel.diaz@linaro.org> -Date: Mon, 25 Feb 2019 10:44:33 -0600 -Subject: [PATCH] setregid01: Fix security warning for string formatting -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -GCC 8.2.0 complains with the following: - setregid01.c: In function 'run': - setregid01.c:47:3: error: format not a string literal and no format arguments [-Werror=format-security] - tst_res(TFAIL | TTERRNO, tc->msg); - ^~~~~~~ -because there is no string formatting in the message. This can -be seen with CFLAGS set to: - -Wformat -Wformat-security -Werror=format-security -as Yocto Project's Poky does, e.g.: - http://errors.yoctoproject.org/Errors/Details/230043/ - -Upstream-Status: Backport [46e1eda55f188810e6bf3a939b92d604321807ae] - -Signed-off-by: Daniel DÃaz <daniel.diaz@linaro.org> -Reviewed-by: Enji Cooper <yaneurabeya@gmail.com> ---- - testcases/kernel/syscalls/setregid/setregid01.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/testcases/kernel/syscalls/setregid/setregid01.c b/testcases/kernel/syscalls/setregid/setregid01.c -index f2e41e134..8c9e11918 100644 ---- a/testcases/kernel/syscalls/setregid/setregid01.c -+++ b/testcases/kernel/syscalls/setregid/setregid01.c -@@ -44,9 +44,9 @@ static void run(unsigned int n) - TEST(SETREGID(*tc->arg1, *tc->arg2)); - - if (TST_RET == -1) -- tst_res(TFAIL | TTERRNO, tc->msg); -+ tst_res(TFAIL | TTERRNO, "%s", tc->msg); - else -- tst_res(TPASS, tc->msg); -+ tst_res(TPASS, "%s", tc->msg); - } - - static void setup(void) --- -2.17.1 - diff --git a/poky/meta/recipes-extended/ltp/ltp_20190115.bb b/poky/meta/recipes-extended/ltp/ltp_20190517.bb index 1d0c00b64..465071560 100644 --- a/poky/meta/recipes-extended/ltp/ltp_20190115.bb +++ b/poky/meta/recipes-extended/ltp/ltp_20190517.bb @@ -27,29 +27,28 @@ CFLAGS_append_x86-64 = " -fomit-frame-pointer" CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__" CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__" -SRCREV = "a6a5caef13632e669dda27b0461726eba546a2f3" +SRCREV = "ac33ef87f0b9dc56533026435be3ea8c67ce86d2" SRC_URI = "git://github.com/linux-test-project/ltp.git \ - file://0004-build-Add-option-to-select-libc-implementation.patch \ - file://0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch \ - file://0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch \ - file://0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \ - file://0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch \ - file://0018-guard-mallocopt-with-__GLIBC__.patch \ - file://0020-getdents-define-getdents-getdents64-only-for-glibc.patch \ - file://0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch \ - file://0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch \ - file://0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch \ - file://0026-crash01-Define-_GNU_SOURCE.patch \ - file://0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch \ - file://0034-periodic_output.patch \ - file://0035-fix-test_proc_kill-hang.patch \ - file://0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \ - file://0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch \ - file://0001-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch \ - file://define-sigrtmin-and-sigrtmax-for-musl.patch \ - file://setregid01-security-string-formatting.patch \ - file://0001-syscalls-setrlimit03.c-read-proc-sys-fs-nr_open-for-.patch \ + file://0001-build-Add-option-to-select-libc-implementation.patch \ + 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://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 \ + file://0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch \ + 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 \ + file://0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch \ + file://0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch \ + file://0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch \ + file://0001-testcases-use-python3-everywhere-to-run-python-scrip.patch \ + file://0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch \ + file://0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch \ " S = "${WORKDIR}/git" @@ -101,7 +100,7 @@ RDEPENDS_${PN} = "\ libaio \ logrotate \ perl \ - python-core \ + python3-core \ procps \ quota \ unzip \ 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.7.bb index 441e2f411..083b2374a 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.7.bb @@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://docs/COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 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] = "ec0b23c8314a1654c4d059b2c18ce43d" +SRC_URI[sha256sum] = "b9cd5bb996305d08bfe9e1114edc30b4c97be807093b88af8033ed1cf9beb326" DEPENDS = "libpipeline gdbm groff-native base-passwd" RDEPENDS_${PN} += "base-passwd" @@ -18,7 +18,7 @@ USE_NLS_libc-musl = "no" inherit gettext pkgconfig autotools systemd -EXTRA_OECONF = "--with-pager=less" +EXTRA_OECONF = "--with-pager=less --with-systemdsystemunitdir=${systemd_unitdir}/system" EXTRA_AUTORECONF += "-I ${S}/gl/m4" do_install() { diff --git a/poky/meta/recipes-extended/mc/mc_4.8.22.bb b/poky/meta/recipes-extended/mc/mc_4.8.23.bb index f64effbce..83de8dbb2 100644 --- a/poky/meta/recipes-extended/mc/mc_4.8.22.bb +++ b/poky/meta/recipes-extended/mc/mc_4.8.23.bb @@ -9,8 +9,8 @@ RDEPENDS_${PN} = "ncurses-terminfo" SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \ file://0001-mc-replace-perl-w-with-use-warnings.patch \ " -SRC_URI[md5sum] = "29983a215c96030f06d5b112088ec5dc" -SRC_URI[sha256sum] = "8d9f1c75369967adfd317a05fef9861444ed049b033e4debaeaafc6df218b431" +SRC_URI[md5sum] = "152927ac29cf0e61d7d019f261bb7d89" +SRC_URI[sha256sum] = "238c4552545dcf3065359bd50753abbb150c1b22ec5a36eaa02c82808293267d" inherit autotools gettext pkgconfig diff --git a/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch b/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch new file mode 100644 index 000000000..b196084a5 --- /dev/null +++ b/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch @@ -0,0 +1,53 @@ +From 02a41c3fd560fb5250186dd6b3cff6b21daa2e2b Mon Sep 17 00:00:00 2001 +From: Mingli Yu <Mingli.Yu@windriver.com> +Date: Mon, 15 Jul 2019 14:12:24 +0800 +Subject: [PATCH] Revert "tests: wait for complete rebuild in integrity checks" + +This reverts commit e2a8e9dcf67a28bc722fa5ab2c49b0bc452d4d74 +as the logic "check state 'U*'" will make the test enters +infinite loop especially in qemu env, so revert it to +use the previous logic "check wait" which also used +commonly by other tests such as tests/02r5grow, tests/07revert-grow +and etc. + +Upstream-Status: Submitted[https://marc.info/?l=linux-raid&m=156317157314030&w=2] + +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> +--- + tests/01r5integ | 2 +- + tests/01raid6integ | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/01r5integ b/tests/01r5integ +index 48676a2..ffb30ce 100644 +--- a/tests/01r5integ ++++ b/tests/01r5integ +@@ -27,7 +27,7 @@ do + exit 1 + fi + mdadm $md0 -a $i +- while ! (check state 'U*'); do check wait; sleep 0.2; done ++ check wait + done + mdadm -S $md0 + done +diff --git a/tests/01raid6integ b/tests/01raid6integ +index 12f4d81..c6fcdae 100644 +--- a/tests/01raid6integ ++++ b/tests/01raid6integ +@@ -47,10 +47,10 @@ do + exit 1 + fi + mdadm $md0 -a $first +- while ! (check state 'U*_U*'); do check wait; sleep 0.2; done ++ check wait + done + mdadm $md0 -a $second +- while ! (check state 'U*'); do check wait; sleep 0.2; done ++ check wait + totest="$totest $second" + done + mdadm -S $md0 +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch b/poky/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch new file mode 100644 index 000000000..e00287cab --- /dev/null +++ b/poky/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch @@ -0,0 +1,28 @@ +From 5fdc0173cb4fcf8656f0889ad364d2549795607f Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Mon, 1 Jul 2019 11:34:49 +0800 +Subject: [PATCH] mdadm: add option -y for use syslog to recive event report + +fix service startup failed when there is +No mail address or alert command + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + systemd/mdmonitor.service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/systemd/mdmonitor.service b/systemd/mdmonitor.service +index 46f7b88..3fc4687 100644 +--- a/systemd/mdmonitor.service ++++ b/systemd/mdmonitor.service +@@ -13,4 +13,4 @@ DefaultDependencies=no + Environment= MDADM_MONITOR_ARGS=--scan + EnvironmentFile=-/run/sysconfig/mdadm + ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh +-ExecStart=BINDIR/mdadm --monitor $MDADM_MONITOR_ARGS ++ExecStart=BINDIR/mdadm --monitor -y $MDADM_MONITOR_ARGS +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch b/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch new file mode 100644 index 000000000..3a192cc95 --- /dev/null +++ b/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch @@ -0,0 +1,43 @@ +From 1b83afa7c3121f819e72ea74883f8b6d61d6548e Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Fri, 6 Sep 2019 10:59:02 +0800 +Subject: [PATCH] mdadm: skip test 11spare-migration + +11spare-migration is a test series to check mdadm Monitor migrates spares +according to rules in /etc/mdadm.conf defined by POLICY lines. + +[snip] +for scan in no yes; do + for platform in 1.2 imsm; do + try + done +done +[snip] + +"try" includes near 20 sub testcase, so there are nearly 80 subcases need to run, +so it will take long time than ptest-runner timeout limit, skip it as workaround. + +Upstream-Status: Inappropriate[oe-specific] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + test | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/test b/test +index 711a3c7..880dd1d 100755 +--- a/test ++++ b/test +@@ -272,6 +272,9 @@ main() { + else + for script in $testdir/$prefix $testdir/$prefix*[^~] + do ++ if [ $script == "$testdir/11spare-migration" ];then ++ continue ++ fi + do_test $script + done + fi +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/mdadm/files/include_sysmacros.patch b/poky/meta/recipes-extended/mdadm/files/include_sysmacros.patch new file mode 100644 index 000000000..8a1d8342d --- /dev/null +++ b/poky/meta/recipes-extended/mdadm/files/include_sysmacros.patch @@ -0,0 +1,14 @@ +include sys/sysmacros.h for major/minor macro definitions + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/mdadm.h ++++ b/mdadm.h +@@ -35,6 +35,7 @@ extern __off64_t lseek64 __P ((int __fd, + + #include <sys/types.h> + #include <sys/stat.h> ++#include <sys/sysmacros.h> + #include <stdint.h> + #include <stdlib.h> + #include <time.h> diff --git a/poky/meta/recipes-extended/mdadm/files/mdmonitor.service b/poky/meta/recipes-extended/mdadm/files/mdmonitor.service deleted file mode 100644 index bd243b449..000000000 --- a/poky/meta/recipes-extended/mdadm/files/mdmonitor.service +++ /dev/null @@ -1,19 +0,0 @@ -# This file is part of mdadm. -# -# mdadm is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. - -[Unit] -Description=Software RAID monitoring and management -ConditionPathExists=/etc/mdadm.conf - -[Service] -Type=forking -PIDFile=/var/run/mdadm/mdadm.pid -EnvironmentFile=-/etc/sysconfig/mdmonitor -ExecStart=/sbin/mdadm --monitor --scan -f --pid-file=/var/run/mdadm/mdadm.pid - -[Install] -WantedBy=multi-user.target diff --git a/poky/meta/recipes-extended/mdadm/files/run-ptest b/poky/meta/recipes-extended/mdadm/files/run-ptest index 234f97376..e4a9c2b08 100644 --- a/poky/meta/recipes-extended/mdadm/files/run-ptest +++ b/poky/meta/recipes-extended/mdadm/files/run-ptest @@ -1,19 +1,4 @@ #!/bin/sh -LOG="$(pwd)/test.log" # make the test continue to execute even one fail -./test --keep-going 2>&1|tee ${LOG} -# translate the test report -# "tests/18imsm-r10_4d-takeover-r0_2d... succeeded" -> "PASS: tests/18imsm-r10_4d-takeover-r0_2d" -# "tests/19raid6repair... FAILED - see //log for details" -> "FAIL: tests/19raid6repair" -sed -i -e '/succeeded/ s/^/PASS: /' -e '/FAILED/ s/^/FAIL: /' ${LOG} -sed -i -e 's/... FAILED//g' -e 's/... succeeded//g' ${LOG} -passed=`grep PASS: ${LOG}|wc -l` -failed=`grep FAIL: ${LOG}|wc -l` -all=$((passed + failed)) - -( echo "=== Test Summary ===" - echo "TOTAL: ${all}" - echo "PASSED: ${passed}" - echo "FAILED: ${failed}" -) | tee -a /${LOG} +./test --keep-going diff --git a/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb b/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb index 494b81b5e..639382e13 100644 --- a/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb +++ b/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb @@ -18,9 +18,13 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \ file://0001-Compute-abs-diff-in-a-standard-compliant-way.patch \ file://0001-fix-gcc-8-format-truncation-warning.patch \ file://debian-no-Werror.patch \ + file://0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch \ file://mdadm.init \ - file://mdmonitor.service \ + file://0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch \ + file://include_sysmacros.patch \ + file://0001-mdadm-skip-test-11spare-migration.patch \ " + SRC_URI[md5sum] = "51bf3651bd73a06c413a2f964f299598" SRC_URI[sha256sum] = "ab7688842908d3583a704d491956f31324c3a5fc9f6a04653cb75d19f1934f4a" @@ -65,7 +69,6 @@ do_install_append() { oe_runmake install-systemd DESTDIR=${D} } - do_compile_ptest() { oe_runmake test } @@ -74,6 +77,14 @@ do_install_ptest() { cp -R --no-dereference --preserve=mode,links -v ${S}/tests ${D}${PTEST_PATH}/tests cp ${S}/test ${D}${PTEST_PATH} sed -e 's!sleep 0.*!sleep 1!g; s!/var/tmp!/!g' -i ${D}${PTEST_PATH}/test + sed -i -e '/echo -ne "$_script... "/d' \ + -e 's/echo "succeeded"/echo -e "PASS: $_script"/g' \ + -e '/save_log fail/N; /_fail=1/i\\t\t\techo -ne "FAIL: $_script"' \ + -e '/die "dmesg prints errors when testing $_basename!"/i\\t\t\t\techo -ne "FAIL: $_script" &&' \ + ${D}${PTEST_PATH}/test + + chmod +x ${D}${PTEST_PATH}/test + ln -s ${base_sbindir}/mdadm ${D}${PTEST_PATH}/mdadm for prg in test_stripe swap_super raid6check do diff --git a/poky/meta/recipes-extended/msmtp/msmtp_1.8.4.bb b/poky/meta/recipes-extended/msmtp/msmtp_1.8.5.bb index 888c1bbb5..4f6b66f22 100644 --- a/poky/meta/recipes-extended/msmtp/msmtp_1.8.4.bb +++ b/poky/meta/recipes-extended/msmtp/msmtp_1.8.5.bb @@ -11,19 +11,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" 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 EXTRA_OECONF += "--without-libsecret --without-libgsasl --without-libidn" ALTERNATIVE_${PN} = "sendmail" +# /usr/lib/sendmial is required by LSB core test +ALTERNATIVE_${PN}_linuxstdbase = "sendmail usr-lib-sendmail" ALTERNATIVE_TARGET[sendmail] = "${bindir}/msmtp" ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" +ALTERNATIVE_TARGET[usr-lib-sendmail] = "${bindir}/msmtp" +ALTERNATIVE_LINK_NAME[usr-lib-sendmail] = "/usr/lib/sendmail" ALTERNATIVE_PRIORITY = "100" - -pkg_postinst_${PN}_linuxstdbase () { - # /usr/lib/sendmial is required by LSB core test - [ ! -L $D/usr/lib/sendmail ] && ln -sf ${sbindir}/sendmail $D/usr/lib/ -} 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 b565fd093..5a376e72f 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 @@ -95,7 +95,7 @@ do_compile() { do_install() { # We don't need COPTS or LOPTS, but let's be consistent. - oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" 'BASEDIR=${D}' install + oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install if [ "${base_bindir}" != "/bin" ]; then mkdir -p ${D}/${base_bindir} 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 b0a1e8c10..000000000 --- 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 8883e26ad..92f5b2503 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 @@ Fixes errors like 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 @@ Index: newt-0.52.18/Makefile.in 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 index dc07a1809..09b61be61 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 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" 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 611e0cafc..750183793 100644 --- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb +++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb @@ -5,10 +5,14 @@ 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" +PACKAGE_ARCH = "${MACHINE_ARCH}" + RDEPENDS_${PN} = "\ base-passwd \ bash \ diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb index d38f545e0..2d96d1ba3 100644 --- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb +++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb @@ -111,9 +111,6 @@ RDEPENDS_packagegroup-core-full-cmdline-dev-utils = "\ patch \ " -VIRTUAL-RUNTIME_initscripts ?= "initscripts" -VIRTUAL-RUNTIME_init_manager ?= "sysvinit" -VIRTUAL-RUNTIME_login_manager ?= "busybox" VIRTUAL-RUNTIME_syslog ?= "sysklogd" RDEPENDS_packagegroup-core-full-cmdline-initscripts = "\ ${VIRTUAL-RUNTIME_initscripts} \ diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb deleted file mode 100644 index e8dc42159..000000000 --- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb +++ /dev/null @@ -1,242 +0,0 @@ -# -# Copyright (C) 2010 Intel Corporation -# - -SUMMARY = "Linux Standard Base (LSB)" -DESCRIPTION = "Packages required to satisfy the Linux Standard Base (LSB) specification" -PR = "r10" - -inherit packagegroup distro_features_check - -# The libxt, libxtst and others require x11 in DISTRO_FEATURES -REQUIRED_DISTRO_FEATURES = "x11" - -# libglu needs virtual/libgl, which requires opengl in DISTRO_FEATURES -REQUIRED_DISTRO_FEATURES += "opengl" - -# libpam, pam-plugin-wheel requires pam in DISTRO_FEATURES -REQUIRED_DISTRO_FEATURES += "pam" - -# -# We will skip parsing this packagegeoup for non-glibc systems -# -python __anonymous () { - if d.getVar('TCLIBC') != "glibc": - raise bb.parse.SkipRecipe("incompatible with %s C library" % - d.getVar('TCLIBC')) -} - -PACKAGES = "\ - packagegroup-core-lsb \ - packagegroup-core-sys-extended \ - packagegroup-core-db \ - packagegroup-core-perl \ - packagegroup-core-python \ - packagegroup-core-tcl \ - packagegroup-core-lsb-misc \ - packagegroup-core-lsb-core \ - packagegroup-core-lsb-perl \ - packagegroup-core-lsb-python \ - packagegroup-core-lsb-desktop \ - packagegroup-core-lsb-runtime-add \ - " - - -RDEPENDS_packagegroup-core-lsb = "\ - packagegroup-core-sys-extended \ - packagegroup-core-db \ - packagegroup-core-perl \ - packagegroup-core-python \ - packagegroup-core-tcl \ - packagegroup-core-lsb-misc \ - packagegroup-core-lsb-core \ - packagegroup-core-lsb-perl \ - packagegroup-core-lsb-python \ - packagegroup-core-lsb-desktop \ - packagegroup-core-lsb-runtime-add \ - " - - -RDEPENDS_packagegroup-core-sys-extended = "\ - curl \ - dhcp-client \ - hdparm \ - lighttpd \ - libaio \ - lrzsz \ - lzo \ - mc \ - mc-fish \ - mc-helpers \ - mc-helpers-perl \ - mdadm \ - minicom \ - parted \ - quota \ - screen \ - setserial \ - sysstat \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'udev-extraconf', d)} \ - unzip \ - watchdog \ - wget \ - which \ - xinetd \ - zip \ - " - -RDEPENDS_packagegroup-core-db = "\ - db \ - sqlite3 \ - " - -RDEPENDS_packagegroup-core-perl = "\ - gdbm \ - perl \ - zlib \ - " - - -RDEPENDS_packagegroup-core-python = "\ - expat \ - gdbm \ - gmp \ - ncurses \ - openssl \ - python \ - readline \ - zip \ - " - -RDEPENDS_packagegroup-core-tcl = "\ - tcl \ - " - -# Miscellaneous packages required by LSB (or LSB tests) -RDEPENDS_packagegroup-core-lsb-misc = "\ - chkconfig \ - gettext \ - gettext-runtime \ - groff \ - lsbinitscripts \ - lsbtest \ - lsof \ - strace \ - libusb1 \ - usbutils \ - rpm \ - " - -SUMMARY_packagegroup-core-lsb-core = "LSB Core" -DESCRIPTION_packagegroup-core-lsb-core = "Packages required to support commands/libraries \ - specified in the LSB Core specification" -RDEPENDS_packagegroup-core-lsb-core = "\ - at \ - bash \ - bc \ - binutils \ - binutils-symlinks \ - bzip2 \ - coreutils \ - cpio \ - cronie \ - cups \ - diffutils \ - ed \ - glibc-utils \ - elfutils \ - file \ - findutils \ - fontconfig-utils \ - foomatic-filters \ - gawk \ - ghostscript \ - grep \ - gzip \ - localedef \ - lsb \ - m4 \ - make \ - man \ - man-pages \ - msmtp \ - patch \ - procps \ - psmisc \ - sed \ - shadow \ - tar \ - time \ - util-linux \ - xdg-utils \ - \ - glibc \ - libgcc \ - libpam \ - libxml2 \ - ncurses \ - zlib \ - nspr \ - nss \ -" - -SUMMARY_packagegroup-core-lsb-perl = "LSB Runtime Languages (Perl)" -DESCRIPTION_packagegroup-core-lsb-perl = "Packages required to support libraries \ - specified in the LSB Runtime languages specification (Perl parts)" -RDEPENDS_packagegroup-core-lsb-perl = "\ - perl \ - perl-modules \ - perl-misc \ - perl-pod \ - perl-dev \ - perl-doc \ -" - -SUMMARY_packagegroup-core-lsb-python = "LSB Runtime Languages (Python)" -DESCRIPTION_packagegroup-core-lsb-python = "Packages required to support libraries \ - specified in the LSB Runtime languages specification (Python parts)" -RDEPENDS_packagegroup-core-lsb-python = "\ - python \ - python-modules \ - python-misc \ -" - -SUMMARY_packagegroup-core-lsb-desktop = "LSB Desktop" -DESCRIPTION_packagegroup-core-lsb-desktop = "Packages required to support libraries \ - specified in the LSB Desktop specification" -RDEPENDS_packagegroup-core-lsb-desktop = "\ - libxt \ - libxxf86vm \ - libdrm \ - libglu \ - libxi \ - libxtst \ - libx11-locale \ - xorg-minimal-fonts \ - gdk-pixbuf-loader-ico \ - gdk-pixbuf-loader-bmp \ - gdk-pixbuf-loader-ani \ - gdk-pixbuf-xlib \ - liberation-fonts \ - gtk+ \ - atk \ - alsa-lib \ -" - -RDEPENDS_packagegroup-core-lsb-runtime-add = "\ - ldd \ - pam-plugin-wheel \ - e2fsprogs-mke2fs \ - mkfontdir \ - liburi-perl \ - libxml-parser-perl \ - libxml-perl \ - libxml-sax-perl \ - glibc-localedatas \ - glibc-gconvs \ - glibc-charmaps \ - glibc-binaries \ - glibc-localedata-posix \ - glibc-extra-nss \ - glibc-pcprofile \ -" diff --git a/poky/meta/recipes-extended/psmisc/psmisc.inc b/poky/meta/recipes-extended/psmisc/psmisc.inc index 82ef94770..594a10cf2 100644 --- a/poky/meta/recipes-extended/psmisc/psmisc.inc +++ b/poky/meta/recipes-extended/psmisc/psmisc.inc @@ -7,7 +7,7 @@ command sends a specified signal (SIGTERM if nothing is specified) to \ processes identified by name. The fuser command identifies the PIDs \ of processes that are using specified files or filesystems." SECTION = "base" -DEPENDS = "ncurses virtual/libintl" +DEPENDS = "ncurses virtual/libintl gettext-native" LICENSE = "GPLv2" SRC_URI = "${SOURCEFORGE_MIRROR}/psmisc/psmisc-${PV}.tar.gz" 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 000000000..1413724d0 --- /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 375dce949..21b476ddb 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 @@ SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \ 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" @@ -34,10 +35,11 @@ inherit autotools texinfo PACKAGECONFIG ??= "" PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter," -EXTRA_OECONF = "--with-pty-mode=0620 --with-pty-group=5 \ +EXTRA_OECONF = "--with-pty-mode=0620 --with-pty-group=5 --with-sys-screenrc=${sysconfdir}/screenrc \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}" do_install_append () { + install -D -m 644 ${S}/etc/etcscreenrc ${D}/${sysconfdir}/screenrc if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then install -D -m 644 ${WORKDIR}/screen.pam ${D}/${sysconfdir}/pam.d/screen fi diff --git a/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch b/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch deleted file mode 100644 index 8c8234d03..000000000 --- a/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 3d921155e0a761f61c8f1ec37328724aee1e2eda Mon Sep 17 00:00:00 2001 -From: Chris Lamb <chris@chris-lamb.co.uk> -Date: Sun, 31 Mar 2019 15:59:45 +0100 -Subject: [PATCH 2/2] gettime: Use secure_getenv over getenv. - -Upstream-Status: Backport -Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> ---- - README | 1 + - configure.ac | 3 +++ - lib/defines.h | 6 ++++++ - libmisc/gettime.c | 2 +- - 4 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/README b/README -index 952ac5787f06..26cfff1e8fa8 100644 ---- a/README -+++ b/README -@@ -51,6 +51,7 @@ Brian R. Gaeke <brg@dgate.org> - Calle Karlsson <ckn@kash.se> - Chip Rosenthal <chip@unicom.com> - Chris Evans <lady0110@sable.ox.ac.uk> -+Chris Lamb <chris@chris-lamb.co.uk> - Cristian Gafton <gafton@sorosis.ro> - Dan Walsh <dwalsh@redhat.com> - Darcy Boese <possum@chardonnay.niagara.com> -diff --git a/configure.ac b/configure.ac -index da236722766b..a738ad662cc3 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -110,6 +110,9 @@ AC_REPLACE_FUNCS(sgetgrent sgetpwent sgetspent) - AC_REPLACE_FUNCS(snprintf strcasecmp strdup strerror strstr) - - AC_CHECK_FUNC(setpgrp) -+AC_CHECK_FUNC(secure_getenv, [AC_DEFINE(HAS_SECURE_GETENV, -+ 1, -+ [Defined to 1 if you have the declaration of 'secure_getenv'])]) - - if test "$ac_cv_header_shadow_h" = "yes"; then - AC_CACHE_CHECK(for working shadow group support, -diff --git a/lib/defines.h b/lib/defines.h -index cded1417fd12..2fb1b56eca6b 100644 ---- a/lib/defines.h -+++ b/lib/defines.h -@@ -382,4 +382,10 @@ extern char *strerror (); - # endif - #endif - -+#ifdef HAVE_SECURE_GETENV -+# define shadow_getenv(name) secure_getenv(name) -+# else -+# define shadow_getenv(name) getenv(name) -+#endif -+ - #endif /* _DEFINES_H_ */ -diff --git a/libmisc/gettime.c b/libmisc/gettime.c -index 53eaf51670bb..0e25a4b75061 100644 ---- a/libmisc/gettime.c -+++ b/libmisc/gettime.c -@@ -52,7 +52,7 @@ - unsigned long long epoch; - - fallback = time (NULL); -- source_date_epoch = getenv ("SOURCE_DATE_EPOCH"); -+ source_date_epoch = shadow_getenv ("SOURCE_DATE_EPOCH"); - - if (!source_date_epoch) - return fallback; --- -2.17.1 - diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc index 7f82d2082..af38b911d 100644 --- a/poky/meta/recipes-extended/shadow/shadow.inc +++ b/poky/meta/recipes-extended/shadow/shadow.inc @@ -4,7 +4,7 @@ BUGTRACKER = "https://alioth.debian.org/tracker/?group_id=30580" SECTION = "base/utils" LICENSE = "BSD | Artistic-1.0" LIC_FILES_CHKSUM = "file://COPYING;md5=ed80ff1c2b40843cf5768e5229cf16e5 \ - file://src/passwd.c;beginline=8;endline=30;md5=d83888ea14ae61951982d77125947661" + file://src/passwd.c;beginline=2;endline=30;md5=5720ff729a6ff39ecc9f64555d75f4af" DEPENDS = "virtual/crypt" @@ -12,15 +12,14 @@ UPSTREAM_CHECK_URI = "https://github.com/shadow-maint/shadow/releases" SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/${PV}/${BP}.tar.gz \ file://shadow-4.1.3-dots-in-usernames.patch \ file://0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch \ - file://0002-gettime-Use-secure_getenv-over-getenv.patch \ file://0001-configure.ac-fix-configure-error-with-dash.patch \ ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \ + file://shadow-relaxed-usernames.patch \ " SRC_URI_append_class-target = " \ file://login_defs_pam.sed \ file://shadow-update-pam-conf.patch \ - file://shadow-relaxed-usernames.patch \ " SRC_URI_append_class-native = " \ 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 000000000..c860c717a --- /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 000000000..66d99dd88 --- /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 000000000..7d194b305 --- /dev/null +++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb @@ -0,0 +1,26 @@ +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" + +PROVIDES = "stress" +RPROVIDES_${PN} = "stress" +RREPLACES_${PN} = "stress" +RCONFLICTS_${PN} = "stress" + +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 f23a1f69c..000000000 --- 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 e9179d3e1..000000000 --- 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.inc b/poky/meta/recipes-extended/sudo/sudo.inc index 90f2039bb..15075bcef 100644 --- a/poky/meta/recipes-extended/sudo/sudo.inc +++ b/poky/meta/recipes-extended/sudo/sudo.inc @@ -6,12 +6,12 @@ SECTION = "admin" LICENSE = "ISC & BSD & Zlib" LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=6c76b73603ac7763ab0516ebfbe67b42 \ file://plugins/sudoers/redblack.c;beginline=1;endline=46;md5=4a162fc04b86b03f5632180fe6076cda \ - file://lib/util/reallocarray.c;beginline=3;endline=16;md5=85b0905b795d4d58bf2e00635649eec6 \ + file://lib/util/reallocarray.c;beginline=3;endline=15;md5=b47f1f85a12f05a0744cd8b1b6f41a0d \ file://lib/util/fnmatch.c;beginline=3;endline=27;md5=67f83ee9bd456557397082f8f1be0efd \ - file://lib/util/getcwd.c;beginline=5;endline=27;md5=449af4cc57fc7d46f42090608ba3e681 \ - file://lib/util/glob.c;beginline=6;endline=31;md5=5872733146b9eb0deb79e1f664815b85 \ - file://lib/util/snprintf.c;beginline=6;endline=34;md5=c82c1b3a5c32e08545c9ec5d71e41e50 \ - file://include/sudo_queue.h;beginline=5;endline=27;md5=449af4cc57fc7d46f42090608ba3e681 \ + file://lib/util/getcwd.c;beginline=2;endline=27;md5=09068a19b4f6b6f0a0958655bfe98b63 \ + file://lib/util/glob.c;beginline=2;endline=31;md5=1f2f771c35fb0658d567a7824007e56d \ + file://lib/util/snprintf.c;beginline=3;endline=33;md5=63e48e1b992bce749a19dd9b2256e9a0 \ + file://include/sudo_queue.h;beginline=2;endline=27;md5=082b138b72ba3e568a13a25c3bf254dc \ file://lib/util/inet_pton.c;beginline=3;endline=17;md5=3970ab0518ab79cbd0bafb697f10b33a \ file://lib/util/arc4random.c;beginline=3;endline=20;md5=15bdc89c1b003fa4d7353e6296ebfd68 \ file://lib/util/arc4random_uniform.c;beginline=3;endline=17;md5=31e630ac814d692fd0ab7a942659b46f \ 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 4a3439302..9d2d6bd42 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 @@ RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-l 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 @@ do_install_append () { 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/sysklogd/files/sysklogd b/poky/meta/recipes-extended/sysklogd/files/sysklogd index 258f88280..73424840b 100755 --- a/poky/meta/recipes-extended/sysklogd/files/sysklogd +++ b/poky/meta/recipes-extended/sysklogd/files/sysklogd @@ -90,6 +90,22 @@ running() return 0 } +waitpid () +{ + pid=$1 + # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals + if [ -z "$pid" ]; then + return + fi + timeout=5; + while [ $timeout -gt 0 ] + do + timeout=$(( $timeout-1 )) + kill -0 $pid 2> /dev/null || break + sleep 1 + done +} + case "$1" in start) log_begin_msg "Starting system log daemon..." @@ -113,17 +129,23 @@ case "$1" in start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile_syslogd --name syslogd log_end_msg $? log_begin_msg "Reloading kernel log daemon..." + pid=`cat $pidfile_klogd 2> /dev/null` start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd + waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD log_end_msg $? ;; restart) log_begin_msg "Restarting system log daemon..." + pid=`cat $pidfile_syslogd 2> /dev/null` start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile_syslogd --name syslogd + waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD log_end_msg $? log_begin_msg "Reloading kernel log daemon..." + pid=`cat $pidfile_klogd 2> /dev/null` start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd + waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD log_end_msg $? ;; diff --git a/poky/meta/recipes-extended/sysstat/sysstat.inc b/poky/meta/recipes-extended/sysstat/sysstat.inc index 4e2972166..5a7d2114c 100644 --- a/poky/meta/recipes-extended/sysstat/sysstat.inc +++ b/poky/meta/recipes-extended/sysstat/sysstat.inc @@ -4,7 +4,7 @@ HOMEPAGE = "http://sebastien.godard.pagesperso-orange.fr/" LICENSE = "GPLv2+" SECTION = "console/utils" -SRC_URI = "http://pagesperso-orange.fr/sebastien.godard/sysstat-${PV}.tar.xz \ +SRC_URI = "http://pagesperso-orange.fr/sebastien.godard/${BP}.tar.xz \ file://99_sysstat \ file://sysstat.service \ " @@ -20,6 +20,7 @@ inherit autotools-brokensep gettext systemd upstream-version-is-even PACKAGECONFIG ??= "" PACKAGECONFIG[lm-sensors] = "--enable-sensors,--disable-sensors,lmsensors,lmsensors-libsensors" PACKAGECONFIG[cron] = "--enable-install-cron --enable-copy-only,--disable-install-cron --disable-copy-only" +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}" EXTRA_OECONF += "--disable-stripping" @@ -28,7 +29,7 @@ SYSTEMD_SERVICE_${PN} = "sysstat.service" SYSTEMD_AUTO_ENABLE = "enable" do_configure_prepend() { - export sa_lib_dir=${libdir}/sa + export sa_lib_dir=${libexecdir}/sa } do_install() { @@ -44,11 +45,13 @@ do_install() { install -d ${D}${sysconfdir}/tmpfiles.d echo "d ${localstatedir}/log/sa - - - -" \ > ${D}${sysconfdir}/tmpfiles.d/sysstat.conf - fi - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/sysstat.service ${D}${systemd_unitdir}/system - sed -i -e 's#@LIBDIR@#${libdir}#g' ${D}${systemd_unitdir}/system/sysstat.service + if ${@bb.utils.contains('PACKAGECONFIG', 'cron', 'false', 'true', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/sysstat.service ${D}${systemd_unitdir}/system + sed -i -e 's#@LIBDIR@#${libdir}#g' ${D}${systemd_unitdir}/system/sysstat.service + fi + fi } pkg_postinst_${PN} () { diff --git a/poky/meta/recipes-extended/sysstat/sysstat_12.1.3.bb b/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb index 5daf3f45f..8cf8c36d9 100644 --- a/poky/meta/recipes-extended/sysstat/sysstat_12.1.3.bb +++ b/poky/meta/recipes-extended/sysstat/sysstat_12.1.6.bb @@ -4,5 +4,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb" SRC_URI += "file://0001-Include-needed-headers-explicitly.patch" -SRC_URI[md5sum] = "0f9b73f60aba6fd49de346bc384902c3" -SRC_URI[sha256sum] = "55498bf82755ba9fed3e7df61fd26f8f50dd3e7b3b229c731029a4c8ab51a1aa" +SRC_URI[md5sum] = "d8e3bbb9c873dd370f6d33664e326570" +SRC_URI[sha256sum] = "f752f3c406153a6fc446496f1102872505ace3f0931d975c1d664c81ec09f129" 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 6d232a50e..dd945c970 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_libwrap-staticdev = "${libdir}/lib*.a" 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 \ diff --git a/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb b/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb index f966457f8..50eae77ad 100644 --- a/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb +++ b/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb @@ -42,7 +42,9 @@ SRC_URI[sha256sum] = "d34272e4042c46186ddcd66bd5d980c0ca14ff734444686ccf8131f6ec tex_texinfo = "texmf/tex/texinfo" -inherit gettext autotools +inherit gettext autotools multilib_script + +MULTILIB_SCRIPTS = "${PN}:${bindir}/texi2any" EXTRA_AUTORECONF += "-I ${S}/gnulib/m4" diff --git a/poky/meta/recipes-extended/timezone/timezone.inc b/poky/meta/recipes-extended/timezone/timezone.inc index 1ade0075e..f6bab1acb 100644 --- a/poky/meta/recipes-extended/timezone/timezone.inc +++ b/poky/meta/recipes-extended/timezone/timezone.inc @@ -4,7 +4,7 @@ SECTION = "base" LICENSE = "PD & BSD & BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba" -PV = "2019a" +PV = "2019c" SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \ http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata \ @@ -12,7 +12,7 @@ SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones" -SRC_URI[tzcode.md5sum] = "27585a20bc5401324f42c8deb6e4677f" -SRC_URI[tzcode.sha256sum] = "8739f162bc30cdfb482435697f969253abea49595541a0afd5f443fbae433ff5" -SRC_URI[tzdata.md5sum] = "288f7b1e43018c633da108f13b27cf91" -SRC_URI[tzdata.sha256sum] = "90366ddf4aa03e37a16cd49255af77f801822310b213f195e2206ead48c59772" +SRC_URI[tzcode.md5sum] = "195a17454c5db05cab96595380650391" +SRC_URI[tzcode.sha256sum] = "f6ebd3668e02d5ed223d3b7b1947561bf2d2da2f4bd1db61efefd9e06c167ed4" +SRC_URI[tzdata.md5sum] = "f6987e6dfdb2eb83a1b5076a50b80894" +SRC_URI[tzdata.sha256sum] = "79c7806dab09072308da0e3d22c37d3b245015a591891ea147d3b133b60ffc7c" diff --git a/poky/meta/recipes-extended/timezone/tzdata.bb b/poky/meta/recipes-extended/timezone/tzdata.bb index 82fe369ba..1e2d9bd1b 100644 --- a/poky/meta/recipes-extended/timezone/tzdata.bb +++ b/poky/meta/recipes-extended/timezone/tzdata.bb @@ -147,6 +147,8 @@ FILES_tzdata-misc += "${datadir}/zoneinfo/Cuba \ RPROVIDES_tzdata-misc = "tzdata-misc" FILES_tzdata-core += " \ + ${sysconfdir}/localtime \ + ${sysconfdir}/timezone \ ${datadir}/zoneinfo/Pacific/Honolulu \ ${datadir}/zoneinfo/America/Anchorage \ ${datadir}/zoneinfo/America/Los_Angeles \ @@ -202,8 +204,7 @@ FILES_tzdata-core += " \ ${datadir}/zoneinfo/iso3166.tab \ ${datadir}/zoneinfo/Etc/*" -CONFFILES_tzdata-core += "${@ "${sysconfdir}/timezone" if bb.utils.to_boolean(d.getVar('INSTALL_TIMEZONE_FILE')) else "" }" -CONFFILES_tzdata-core += "${sysconfdir}/localtime" +CONFFILES_tzdata-core = "${sysconfdir}/localtime ${sysconfdir}/timezone" ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} = "${TZ_PACKAGES}" diff --git a/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p1.patch b/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p1.patch new file mode 100644 index 000000000..d485a1bd6 --- /dev/null +++ b/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p1.patch @@ -0,0 +1,33 @@ +From 080d52c3c9416c731f637f9c6e003961ef43f079 Mon Sep 17 00:00:00 2001 +From: Mark Adler <madler@alumni.caltech.edu> +Date: Mon, 27 May 2019 08:20:32 -0700 +Subject: [PATCH 1/3] Fix bug in undefer_input() that misplaced the input + state. + +CVE: CVE-2019-13232 +Upstream-Status: Backport +[https://github.com/madler/unzip/commit/41beb477c5744bc396fa1162ee0c14218ec12213] + +Signed-off-by: Dan Tran <dantran@microsoft.com> +--- + fileio.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/fileio.c b/fileio.c +index 7605a29..14460f3 100644 +--- a/fileio.c ++++ b/fileio.c +@@ -532,8 +532,10 @@ void undefer_input(__G) + * This condition was checked when G.incnt_leftover was set > 0 in + * defer_leftover_input(), and it is NOT allowed to touch G.csize + * before calling undefer_input() when (G.incnt_leftover > 0) +- * (single exception: see read_byte()'s "G.csize <= 0" handling) !! ++ * (single exception: see readbyte()'s "G.csize <= 0" handling) !! + */ ++ if (G.csize < 0L) ++ G.csize = 0L; + G.incnt = G.incnt_leftover + (int)G.csize; + G.inptr = G.inptr_leftover - (int)G.csize; + G.incnt_leftover = 0; +-- +2.22.0.vfs.1.1.57.gbaf16c8 diff --git a/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p2.patch b/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p2.patch new file mode 100644 index 000000000..41037a8e2 --- /dev/null +++ b/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p2.patch @@ -0,0 +1,356 @@ +From 1aae47fa8935654a84403768f32c03ecbb1be470 Mon Sep 17 00:00:00 2001 +From: Mark Adler <madler@alumni.caltech.edu> +Date: Tue, 11 Jun 2019 22:01:18 -0700 +Subject: [PATCH 2/3] Detect and reject a zip bomb using overlapped entries. + +This detects an invalid zip file that has at least one entry that +overlaps with another entry or with the central directory to the +end of the file. A Fifield zip bomb uses overlapped local entries +to vastly increase the potential inflation ratio. Such an invalid +zip file is rejected. + +See https://www.bamsoftware.com/hacks/zipbomb/ for David Fifield's +analysis, construction, and examples of such zip bombs. + +The detection maintains a list of covered spans of the zip files +so far, where the central directory to the end of the file and any +bytes preceding the first entry at zip file offset zero are +considered covered initially. Then as each entry is decompressed +or tested, it is considered covered. When a new entry is about to +be processed, its initial offset is checked to see if it is +contained by a covered span. If so, the zip file is rejected as +invalid. + +This commit depends on a preceding commit: "Fix bug in +undefer_input() that misplaced the input state." + +CVE: CVE-2019-13232 +Upstream-Status: Backport +[https://github.com/madler/unzip/commit/47b3ceae397d21bf822bc2ac73052a4b1daf8e1c] + +Signed-off-by: Dan Tran <dantran@microsoft.com> +--- + extract.c | 190 +++++++++++++++++++++++++++++++++++++++++++++++++++++- + globals.c | 1 + + globals.h | 3 + + process.c | 10 +++ + unzip.h | 1 + + 5 files changed, 204 insertions(+), 1 deletion(-) + +diff --git a/extract.c b/extract.c +index 24db2a8..2bb72ba 100644 +--- a/extract.c ++++ b/extract.c +@@ -321,6 +321,125 @@ static ZCONST char Far UnsupportedExtraField[] = + "\nerror: unsupported extra-field compression type (%u)--skipping\n"; + static ZCONST char Far BadExtraFieldCRC[] = + "error [%s]: bad extra-field CRC %08lx (should be %08lx)\n"; ++static ZCONST char Far NotEnoughMemCover[] = ++ "error: not enough memory for bomb detection\n"; ++static ZCONST char Far OverlappedComponents[] = ++ "error: invalid zip file with overlapped components (possible zip bomb)\n"; ++ ++ ++ ++ ++ ++/* A growable list of spans. */ ++typedef zoff_t bound_t; ++typedef struct { ++ bound_t beg; /* start of the span */ ++ bound_t end; /* one past the end of the span */ ++} span_t; ++typedef struct { ++ span_t *span; /* allocated, distinct, and sorted list of spans */ ++ size_t num; /* number of spans in the list */ ++ size_t max; /* allocated number of spans (num <= max) */ ++} cover_t; ++ ++/* ++ * Return the index of the first span in cover whose beg is greater than val. ++ * If there is no such span, then cover->num is returned. ++ */ ++static size_t cover_find(cover, val) ++ cover_t *cover; ++ bound_t val; ++{ ++ size_t lo = 0, hi = cover->num; ++ while (lo < hi) { ++ size_t mid = (lo + hi) >> 1; ++ if (val < cover->span[mid].beg) ++ hi = mid; ++ else ++ lo = mid + 1; ++ } ++ return hi; ++} ++ ++/* Return true if val lies within any one of the spans in cover. */ ++static int cover_within(cover, val) ++ cover_t *cover; ++ bound_t val; ++{ ++ size_t pos = cover_find(cover, val); ++ return pos > 0 && val < cover->span[pos - 1].end; ++} ++ ++/* ++ * Add a new span to the list, but only if the new span does not overlap any ++ * spans already in the list. The new span covers the values beg..end-1. beg ++ * must be less than end. ++ * ++ * Keep the list sorted and merge adjacent spans. Grow the allocated space for ++ * the list as needed. On success, 0 is returned. If the new span overlaps any ++ * existing spans, then 1 is returned and the new span is not added to the ++ * list. If the new span is invalid because beg is greater than or equal to ++ * end, then -1 is returned. If the list needs to be grown but the memory ++ * allocation fails, then -2 is returned. ++ */ ++static int cover_add(cover, beg, end) ++ cover_t *cover; ++ bound_t beg; ++ bound_t end; ++{ ++ size_t pos; ++ int prec, foll; ++ ++ if (beg >= end) ++ /* The new span is invalid. */ ++ return -1; ++ ++ /* Find where the new span should go, and make sure that it does not ++ overlap with any existing spans. */ ++ pos = cover_find(cover, beg); ++ if ((pos > 0 && beg < cover->span[pos - 1].end) || ++ (pos < cover->num && end > cover->span[pos].beg)) ++ return 1; ++ ++ /* Check for adjacencies. */ ++ prec = pos > 0 && beg == cover->span[pos - 1].end; ++ foll = pos < cover->num && end == cover->span[pos].beg; ++ if (prec && foll) { ++ /* The new span connects the preceding and following spans. Merge the ++ following span into the preceding span, and delete the following ++ span. */ ++ cover->span[pos - 1].end = cover->span[pos].end; ++ cover->num--; ++ memmove(cover->span + pos, cover->span + pos + 1, ++ (cover->num - pos) * sizeof(span_t)); ++ } ++ else if (prec) ++ /* The new span is adjacent only to the preceding span. Extend the end ++ of the preceding span. */ ++ cover->span[pos - 1].end = end; ++ else if (foll) ++ /* The new span is adjacent only to the following span. Extend the ++ beginning of the following span. */ ++ cover->span[pos].beg = beg; ++ else { ++ /* The new span has gaps between both the preceding and the following ++ spans. Assure that there is room and insert the span. */ ++ if (cover->num == cover->max) { ++ size_t max = cover->max == 0 ? 16 : cover->max << 1; ++ span_t *span = realloc(cover->span, max * sizeof(span_t)); ++ if (span == NULL) ++ return -2; ++ cover->span = span; ++ cover->max = max; ++ } ++ memmove(cover->span + pos + 1, cover->span + pos, ++ (cover->num - pos) * sizeof(span_t)); ++ cover->num++; ++ cover->span[pos].beg = beg; ++ cover->span[pos].end = end; ++ } ++ return 0; ++} + + + +@@ -376,6 +495,29 @@ int extract_or_test_files(__G) /* return PK-type error code */ + } + #endif /* !SFX || SFX_EXDIR */ + ++ /* One more: initialize cover structure for bomb detection. Start with a ++ span that covers the central directory though the end of the file. */ ++ if (G.cover == NULL) { ++ G.cover = malloc(sizeof(cover_t)); ++ if (G.cover == NULL) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(NotEnoughMemCover))); ++ return PK_MEM; ++ } ++ ((cover_t *)G.cover)->span = NULL; ++ ((cover_t *)G.cover)->max = 0; ++ } ++ ((cover_t *)G.cover)->num = 0; ++ if ((G.extra_bytes != 0 && ++ cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) || ++ cover_add((cover_t *)G.cover, ++ G.extra_bytes + G.ecrec.offset_start_central_directory, ++ G.ziplen) != 0) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(NotEnoughMemCover))); ++ return PK_MEM; ++ } ++ + /*--------------------------------------------------------------------------- + The basic idea of this function is as follows. Since the central di- + rectory lies at the end of the zipfile and the member files lie at the +@@ -593,7 +735,8 @@ int extract_or_test_files(__G) /* return PK-type error code */ + if (error > error_in_archive) + error_in_archive = error; + /* ...and keep going (unless disk full or user break) */ +- if (G.disk_full > 1 || error_in_archive == IZ_CTRLC) { ++ if (G.disk_full > 1 || error_in_archive == IZ_CTRLC || ++ error == PK_BOMB) { + /* clear reached_end to signal premature stop ... */ + reached_end = FALSE; + /* ... and cancel scanning the central directory */ +@@ -1062,6 +1205,11 @@ static int extract_or_test_entrylist(__G__ numchunk, + + /* seek_zipf(__G__ pInfo->offset); */ + request = G.pInfo->offset + G.extra_bytes; ++ if (cover_within((cover_t *)G.cover, request)) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(OverlappedComponents))); ++ return PK_BOMB; ++ } + inbuf_offset = request % INBUFSIZ; + bufstart = request - inbuf_offset; + +@@ -1593,6 +1741,18 @@ reprompt: + return IZ_CTRLC; /* cancel operation by user request */ + } + #endif ++ error = cover_add((cover_t *)G.cover, request, ++ G.cur_zipfile_bufstart + (G.inptr - G.inbuf)); ++ if (error < 0) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(NotEnoughMemCover))); ++ return PK_MEM; ++ } ++ if (error != 0) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(OverlappedComponents))); ++ return PK_BOMB; ++ } + #ifdef MACOS /* MacOS is no preemptive OS, thus call event-handling by hand */ + UserStop(); + #endif +@@ -1994,6 +2154,34 @@ static int extract_or_test_member(__G) /* return PK-type error code */ + } + + undefer_input(__G); ++ ++ if ((G.lrec.general_purpose_bit_flag & 8) != 0) { ++ /* skip over data descriptor (harder than it sounds, due to signature ++ * ambiguity) ++ */ ++# define SIG 0x08074b50 ++# define LOW 0xffffffff ++ uch buf[12]; ++ unsigned shy = 12 - readbuf((char *)buf, 12); ++ ulg crc = shy ? 0 : makelong(buf); ++ ulg clen = shy ? 0 : makelong(buf + 4); ++ ulg ulen = shy ? 0 : makelong(buf + 8); /* or high clen if ZIP64 */ ++ if (crc == SIG && /* if not SIG, no signature */ ++ (G.lrec.crc32 != SIG || /* if not SIG, have signature */ ++ (clen == SIG && /* if not SIG, no signature */ ++ ((G.lrec.csize & LOW) != SIG || /* if not SIG, have signature */ ++ (ulen == SIG && /* if not SIG, no signature */ ++ (G.zip64 ? G.lrec.csize >> 32 : G.lrec.ucsize) != SIG ++ /* if not SIG, have signature */ ++ ))))) ++ /* skip four more bytes to account for signature */ ++ shy += 4 - readbuf((char *)buf, 4); ++ if (G.zip64) ++ shy += 8 - readbuf((char *)buf, 8); /* skip eight more for ZIP64 */ ++ if (shy) ++ error = PK_ERR; ++ } ++ + return error; + + } /* end function extract_or_test_member() */ +diff --git a/globals.c b/globals.c +index fa8cca5..1e0f608 100644 +--- a/globals.c ++++ b/globals.c +@@ -181,6 +181,7 @@ Uz_Globs *globalsCtor() + # if (!defined(NO_TIMESTAMPS)) + uO.D_flag=1; /* default to '-D', no restoration of dir timestamps */ + # endif ++ G.cover = NULL; /* not allocated yet */ + #endif + + uO.lflag=(-1); +diff --git a/globals.h b/globals.h +index 11b7215..2bdcdeb 100644 +--- a/globals.h ++++ b/globals.h +@@ -260,12 +260,15 @@ typedef struct Globals { + ecdir_rec ecrec; /* used in unzip.c, extract.c */ + z_stat statbuf; /* used by main, mapname, check_for_newer */ + ++ int zip64; /* true if Zip64 info in extra field */ ++ + int mem_mode; + uch *outbufptr; /* extract.c static */ + ulg outsize; /* extract.c static */ + int reported_backslash; /* extract.c static */ + int disk_full; + int newfile; ++ void **cover; /* used in extract.c for bomb detection */ + + int didCRlast; /* fileio static */ + ulg numlines; /* fileio static: number of lines printed */ +diff --git a/process.c b/process.c +index a3c1a4d..208619c 100644 +--- a/process.c ++++ b/process.c +@@ -637,6 +637,13 @@ void free_G_buffers(__G) /* releases all memory allocated in global vars */ + } + #endif + ++ /* Free the cover span list and the cover structure. */ ++ if (G.cover != NULL) { ++ free(*(G.cover)); ++ free(G.cover); ++ G.cover = NULL; ++ } ++ + } /* end function free_G_buffers() */ + + +@@ -1905,6 +1912,7 @@ int getZip64Data(__G__ ef_buf, ef_len) + + #define Z64FLGS 0xffff + #define Z64FLGL 0xffffffff ++ G.zip64 = FALSE; + + if (ef_len == 0 || ef_buf == NULL) + return PK_COOL; +@@ -1964,6 +1972,8 @@ int getZip64Data(__G__ ef_buf, ef_len) + G.crec.disk_number_start = (zuvl_t)makelong(offset + ef_buf); + offset += 4; + } ++ ++ G.zip64 = TRUE; + #if 0 + break; /* Expect only one EF_PKSZ64 block. */ + #endif /* 0 */ +diff --git a/unzip.h b/unzip.h +index 5b2a326..ed24a5b 100644 +--- a/unzip.h ++++ b/unzip.h +@@ -645,6 +645,7 @@ typedef struct _Uzp_cdir_Rec { + #define PK_NOZIP 9 /* zipfile not found */ + #define PK_PARAM 10 /* bad or illegal parameters specified */ + #define PK_FIND 11 /* no files found */ ++#define PK_BOMB 12 /* likely zip bomb */ + #define PK_DISK 50 /* disk full */ + #define PK_EOF 51 /* unexpected EOF */ + +-- +2.22.0.vfs.1.1.57.gbaf16c8 diff --git a/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p3.patch b/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p3.patch new file mode 100644 index 000000000..fd26fdd83 --- /dev/null +++ b/poky/meta/recipes-extended/unzip/unzip/CVE-2019-13232_p3.patch @@ -0,0 +1,121 @@ +From be88aa4811af47ca06d8b7dcda294f899eba70ea Mon Sep 17 00:00:00 2001 +From: Mark Adler <madler@alumni.caltech.edu> +Date: Thu, 25 Jul 2019 20:43:17 -0700 +Subject: [PATCH 3/3] Do not raise a zip bomb alert for a misplaced central + directory. + +There is a zip-like file in the Firefox distribution, omni.ja, +which is a zip container with the central directory placed at the +start of the file instead of after the local entries as required +by the zip standard. This commit marks the actual location of the +central directory, as well as the end of central directory records, +as disallowed locations. This now permits such containers to not +raise a zip bomb alert, where in fact there are no overlaps. + +CVE: CVE-2019-13232 +Upstream-Status: Backport +[https://github.com/madler/unzip/commit/6d351831be705cc26d897db44f878a978f4138fc] + +Signed-off-by: Dan Tran <dantran@microsoft.com> +--- + extract.c | 25 +++++++++++++++++++------ + process.c | 6 ++++++ + unzpriv.h | 10 ++++++++++ + 3 files changed, 35 insertions(+), 6 deletions(-) + +diff --git a/extract.c b/extract.c +index 2bb72ba..a9dcca8 100644 +--- a/extract.c ++++ b/extract.c +@@ -495,8 +495,11 @@ int extract_or_test_files(__G) /* return PK-type error code */ + } + #endif /* !SFX || SFX_EXDIR */ + +- /* One more: initialize cover structure for bomb detection. Start with a +- span that covers the central directory though the end of the file. */ ++ /* One more: initialize cover structure for bomb detection. Start with ++ spans that cover any extra bytes at the start, the central directory, ++ the end of central directory record (including the Zip64 end of central ++ directory locator, if present), and the Zip64 end of central directory ++ record, if present. */ + if (G.cover == NULL) { + G.cover = malloc(sizeof(cover_t)); + if (G.cover == NULL) { +@@ -508,15 +511,25 @@ int extract_or_test_files(__G) /* return PK-type error code */ + ((cover_t *)G.cover)->max = 0; + } + ((cover_t *)G.cover)->num = 0; +- if ((G.extra_bytes != 0 && +- cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) || +- cover_add((cover_t *)G.cover, ++ if (cover_add((cover_t *)G.cover, + G.extra_bytes + G.ecrec.offset_start_central_directory, +- G.ziplen) != 0) { ++ G.extra_bytes + G.ecrec.offset_start_central_directory + ++ G.ecrec.size_central_directory) != 0) { + Info(slide, 0x401, ((char *)slide, + LoadFarString(NotEnoughMemCover))); + return PK_MEM; + } ++ if ((G.extra_bytes != 0 && ++ cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) || ++ (G.ecrec.have_ecr64 && ++ cover_add((cover_t *)G.cover, G.ecrec.ec64_start, ++ G.ecrec.ec64_end) != 0) || ++ cover_add((cover_t *)G.cover, G.ecrec.ec_start, ++ G.ecrec.ec_end) != 0) { ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarString(OverlappedComponents))); ++ return PK_BOMB; ++ } + + /*--------------------------------------------------------------------------- + The basic idea of this function is as follows. Since the central di- +diff --git a/process.c b/process.c +index 208619c..5f8f6c6 100644 +--- a/process.c ++++ b/process.c +@@ -1408,6 +1408,10 @@ static int find_ecrec64(__G__ searchlen) /* return PK-class error */ + + /* Now, we are (almost) sure that we have a Zip64 archive. */ + G.ecrec.have_ecr64 = 1; ++ G.ecrec.ec_start -= ECLOC64_SIZE+4; ++ G.ecrec.ec64_start = ecrec64_start_offset; ++ G.ecrec.ec64_end = ecrec64_start_offset + ++ 12 + makeint64(&byterec[ECREC64_LENGTH]); + + /* Update the "end-of-central-dir offset" for later checks. */ + G.real_ecrec_offset = ecrec64_start_offset; +@@ -1542,6 +1546,8 @@ static int find_ecrec(__G__ searchlen) /* return PK-class error */ + makelong(&byterec[OFFSET_START_CENTRAL_DIRECTORY]); + G.ecrec.zipfile_comment_length = + makeword(&byterec[ZIPFILE_COMMENT_LENGTH]); ++ G.ecrec.ec_start = G.real_ecrec_offset; ++ G.ecrec.ec_end = G.ecrec.ec_start + 22 + G.ecrec.zipfile_comment_length; + + /* Now, we have to read the archive comment, BEFORE the file pointer + is moved away backwards to seek for a Zip64 ECLOC64 structure. +diff --git a/unzpriv.h b/unzpriv.h +index c8d3eab..5e177c7 100644 +--- a/unzpriv.h ++++ b/unzpriv.h +@@ -2185,6 +2185,16 @@ typedef struct VMStimbuf { + int have_ecr64; /* valid Zip64 ecdir-record exists */ + int is_zip64_archive; /* Zip64 ecdir-record is mandatory */ + ush zipfile_comment_length; ++ zusz_t ec_start, ec_end; /* offsets of start and end of the ++ end of central directory record, ++ including if present the Zip64 ++ end of central directory locator, ++ which immediately precedes the ++ end of central directory record */ ++ zusz_t ec64_start, ec64_end; /* if have_ecr64 is true, then these ++ are the offsets of the start and ++ end of the Zip64 end of central ++ directory record */ + } ecdir_rec; + + +-- +2.22.0.vfs.1.1.57.gbaf16c8 + diff --git a/poky/meta/recipes-extended/unzip/unzip_6.0.bb b/poky/meta/recipes-extended/unzip/unzip_6.0.bb index daba72272..c1ea0a9a2 100644 --- a/poky/meta/recipes-extended/unzip/unzip_6.0.bb +++ b/poky/meta/recipes-extended/unzip/unzip_6.0.bb @@ -22,6 +22,9 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/ file://symlink.patch \ file://0001-unzip-fix-CVE-2018-1000035.patch \ file://CVE-2018-18384.patch \ + file://CVE-2019-13232_p1.patch \ + file://CVE-2019-13232_p2.patch \ + file://CVE-2019-13232_p3.patch \ " UPSTREAM_VERSION_UNKNOWN = "1" |