summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/ncurses
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/ncurses')
-rw-r--r--meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch169
-rw-r--r--meta/recipes-core/ncurses/files/0001-tic-hang.patch11
-rw-r--r--meta/recipes-core/ncurses/files/0002-configure-reproducible.patch25
-rw-r--r--meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch29
-rw-r--r--meta/recipes-core/ncurses/files/config.cache4
-rw-r--r--meta/recipes-core/ncurses/files/exit_prototype.patch31
-rw-r--r--meta/recipes-core/ncurses/ncurses.inc68
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.1+20190803.bb12
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.5.bb15
-rw-r--r--meta/recipes-core/ncurses/site_config/headers5
10 files changed, 126 insertions, 243 deletions
diff --git a/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch b/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch
deleted file mode 100644
index 7870c4ba32..0000000000
--- a/meta/recipes-core/ncurses/files/0001-ncurses-selective-backport-of-20191012-patch.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From 064b77f173337aa790f1cec0d741bfbc61a33d31 Mon Sep 17 00:00:00 2001
-From: Trevor Gamblin <trevor.gamblin@windriver.com>
-Date: Fri, 18 Oct 2019 09:57:43 -0400
-Subject: [PATCH] ncurses: selective backport of 20191012 patch
-
-Upstream-Status: Backport [https://salsa.debian.org/debian/ncurses/commit/243908b1e3d81]
-
-Contents of the upstream patch that are not applied to comp_hash.c,
-parse_entry.c, or dump_entry.c have been omitted.
-
-CVE: CVE-2019-17594
-CVE: CVE-2019-17595
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
----
- ncurses/tinfo/comp_hash.c | 14 ++++++++++----
- ncurses/tinfo/parse_entry.c | 32 ++++++++++++++++----------------
- progs/dump_entry.c | 7 ++++---
- 3 files changed, 30 insertions(+), 23 deletions(-)
-
-diff --git a/ncurses/tinfo/comp_hash.c b/ncurses/tinfo/comp_hash.c
-index 21f165ca..a62d38f9 100644
---- a/ncurses/tinfo/comp_hash.c
-+++ b/ncurses/tinfo/comp_hash.c
-@@ -44,7 +44,7 @@
- #include <tic.h>
- #include <hashsize.h>
-
--MODULE_ID("$Id: comp_hash.c,v 1.49 2019/03/10 00:06:48 tom Exp $")
-+MODULE_ID("$Id: comp_hash.c,v 1.51 2019/10/12 16:32:13 tom Exp $")
-
- /*
- * Finds the entry for the given string in the hash table if present.
-@@ -63,7 +63,9 @@ _nc_find_entry(const char *string,
-
- hashvalue = data->hash_of(string);
-
-- if (data->table_data[hashvalue] >= 0) {
-+ if (hashvalue >= 0
-+ && (unsigned) hashvalue < data->table_size
-+ && data->table_data[hashvalue] >= 0) {
-
- real_table = _nc_get_table(termcap);
- ptr = real_table + data->table_data[hashvalue];
-@@ -96,7 +98,9 @@ _nc_find_type_entry(const char *string,
- const HashData *data = _nc_get_hash_info(termcap);
- int hashvalue = data->hash_of(string);
-
-- if (data->table_data[hashvalue] >= 0) {
-+ if (hashvalue >= 0
-+ && (unsigned) hashvalue < data->table_size
-+ && data->table_data[hashvalue] >= 0) {
- const struct name_table_entry *const table = _nc_get_table(termcap);
-
- ptr = table + data->table_data[hashvalue];
-@@ -124,7 +128,9 @@ _nc_find_user_entry(const char *string)
-
- hashvalue = data->hash_of(string);
-
-- if (data->table_data[hashvalue] >= 0) {
-+ if (hashvalue >= 0
-+ && (unsigned) hashvalue < data->table_size
-+ && data->table_data[hashvalue] >= 0) {
-
- real_table = _nc_get_userdefs_table();
- ptr = real_table + data->table_data[hashvalue];
-diff --git a/ncurses/tinfo/parse_entry.c b/ncurses/tinfo/parse_entry.c
-index f8cca8b5..064376c5 100644
---- a/ncurses/tinfo/parse_entry.c
-+++ b/ncurses/tinfo/parse_entry.c
-@@ -47,7 +47,7 @@
- #include <ctype.h>
- #include <tic.h>
-
--MODULE_ID("$Id: parse_entry.c,v 1.97 2019/08/03 23:10:38 tom Exp $")
-+MODULE_ID("$Id: parse_entry.c,v 1.98 2019/10/12 00:50:31 tom Exp $")
-
- #ifdef LINT
- static short const parametrized[] =
-@@ -654,12 +654,12 @@ _nc_capcmp(const char *s, const char *t)
- }
-
- static void
--append_acs0(string_desc * dst, int code, int src)
-+append_acs0(string_desc * dst, int code, char *src, size_t off)
- {
-- if (src != 0) {
-+ if (src != 0 && off < strlen(src)) {
- char temp[3];
- temp[0] = (char) code;
-- temp[1] = (char) src;
-+ temp[1] = src[off];
- temp[2] = 0;
- _nc_safe_strcat(dst, temp);
- }
-@@ -669,7 +669,7 @@ static void
- append_acs(string_desc * dst, int code, char *src)
- {
- if (VALID_STRING(src) && strlen(src) == 1) {
-- append_acs0(dst, code, *src);
-+ append_acs0(dst, code, src, 0);
- }
- }
-
-@@ -1038,17 +1038,17 @@ postprocess_terminfo(TERMTYPE2 *tp)
- _nc_str_init(&result, buf2, sizeof(buf2));
- _nc_safe_strcat(&result, acs_chars);
-
-- append_acs0(&result, 'l', box_chars_1[0]); /* ACS_ULCORNER */
-- append_acs0(&result, 'q', box_chars_1[1]); /* ACS_HLINE */
-- append_acs0(&result, 'k', box_chars_1[2]); /* ACS_URCORNER */
-- append_acs0(&result, 'x', box_chars_1[3]); /* ACS_VLINE */
-- append_acs0(&result, 'j', box_chars_1[4]); /* ACS_LRCORNER */
-- append_acs0(&result, 'm', box_chars_1[5]); /* ACS_LLCORNER */
-- append_acs0(&result, 'w', box_chars_1[6]); /* ACS_TTEE */
-- append_acs0(&result, 'u', box_chars_1[7]); /* ACS_RTEE */
-- append_acs0(&result, 'v', box_chars_1[8]); /* ACS_BTEE */
-- append_acs0(&result, 't', box_chars_1[9]); /* ACS_LTEE */
-- append_acs0(&result, 'n', box_chars_1[10]); /* ACS_PLUS */
-+ append_acs0(&result, 'l', box_chars_1, 0); /* ACS_ULCORNER */
-+ append_acs0(&result, 'q', box_chars_1, 1); /* ACS_HLINE */
-+ append_acs0(&result, 'k', box_chars_1, 2); /* ACS_URCORNER */
-+ append_acs0(&result, 'x', box_chars_1, 3); /* ACS_VLINE */
-+ append_acs0(&result, 'j', box_chars_1, 4); /* ACS_LRCORNER */
-+ append_acs0(&result, 'm', box_chars_1, 5); /* ACS_LLCORNER */
-+ append_acs0(&result, 'w', box_chars_1, 6); /* ACS_TTEE */
-+ append_acs0(&result, 'u', box_chars_1, 7); /* ACS_RTEE */
-+ append_acs0(&result, 'v', box_chars_1, 8); /* ACS_BTEE */
-+ append_acs0(&result, 't', box_chars_1, 9); /* ACS_LTEE */
-+ append_acs0(&result, 'n', box_chars_1, 10); /* ACS_PLUS */
-
- if (buf2[0]) {
- acs_chars = _nc_save_str(buf2);
-diff --git a/progs/dump_entry.c b/progs/dump_entry.c
-index d0e420ec..8a47084a 100644
---- a/progs/dump_entry.c
-+++ b/progs/dump_entry.c
-@@ -39,7 +39,7 @@
- #include "termsort.c" /* this C file is generated */
- #include <parametrized.h> /* so is this */
-
--MODULE_ID("$Id: dump_entry.c,v 1.173 2019/05/11 21:02:24 tom Exp $")
-+MODULE_ID("$Id: dump_entry.c,v 1.175 2019/10/12 15:59:07 tom Exp $")
-
- #define DISCARD(string) string = ABSENT_STRING
- #define PRINTF (void) printf
-@@ -1136,7 +1136,8 @@ fmt_entry(TERMTYPE2 *tterm,
- *d++ = '\\';
- *d = ':';
- } else if (*d == '\\') {
-- *++d = *s++;
-+ if ((*++d = *s++) == '\0')
-+ break;
- }
- d++;
- *d = '\0';
-@@ -1396,7 +1397,7 @@ one_one_mapping(const char *mapping)
-
- if (VALID_STRING(mapping)) {
- int n = 0;
-- while (mapping[n] != '\0') {
-+ while (mapping[n] != '\0' && mapping[n + 1] != '\0') {
- if (isLine(mapping[n]) &&
- mapping[n] != mapping[n + 1]) {
- result = FALSE;
---
-2.17.1
-
diff --git a/meta/recipes-core/ncurses/files/0001-tic-hang.patch b/meta/recipes-core/ncurses/files/0001-tic-hang.patch
index f98a943e5c..8cb92a3939 100644
--- a/meta/recipes-core/ncurses/files/0001-tic-hang.patch
+++ b/meta/recipes-core/ncurses/files/0001-tic-hang.patch
@@ -1,7 +1,7 @@
-From 168ba7a681be73ac024438e33e14fde1d5aea97d Mon Sep 17 00:00:00 2001
+From a51a53f0eecfd4d083aba8dfcd47c65e93978ff1 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 30 Mar 2018 10:02:24 +0800
-Subject: [PATCH 1/2] tic hang
+Subject: [PATCH] tic hang
Upstream-Status: Inappropriate [configuration]
@@ -17,10 +17,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/misc/terminfo.src b/misc/terminfo.src
-index 84f4810..6b385ec 100644
+index 5d575b8e..f9cc6880 100644
--- a/misc/terminfo.src
+++ b/misc/terminfo.src
-@@ -5562,12 +5562,11 @@ konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
+@@ -6518,12 +6518,11 @@ konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
# The value for kbs (see konsole-vt100) reflects local customization rather
# than the settings used for XFree86 xterm.
konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
@@ -38,6 +38,3 @@ index 84f4810..6b385ec 100644
# Obsolete: vt100.keymap
# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
---
-1.8.3.1
-
diff --git a/meta/recipes-core/ncurses/files/0002-configure-reproducible.patch b/meta/recipes-core/ncurses/files/0002-configure-reproducible.patch
index 572195611e..11ca66c8e8 100644
--- a/meta/recipes-core/ncurses/files/0002-configure-reproducible.patch
+++ b/meta/recipes-core/ncurses/files/0002-configure-reproducible.patch
@@ -1,7 +1,7 @@
-From 2a53c03ffa90f0050a949fc5920f0df3e668ff42 Mon Sep 17 00:00:00 2001
+From 63cf58044f4ab3297c5a2d0e132e87ebfa80c753 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Wed, 16 Aug 2017 14:45:27 +0800
-Subject: [PATCH 2/2] configure: reproducible
+Subject: [PATCH] configure: reproducible
"configure" enforces -U for ar flags, breaking deterministic builds.
The flag was added to fix some vaguely specified "recent POSIX binutil
@@ -18,18 +18,15 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
-index adead92..fa4fdb7 100755
+index 488d93fc..005d44e2 100755
--- a/configure
+++ b/configure
-@@ -4503,7 +4503,7 @@ if test "${cf_cv_ar_flags+set}" = set; then
- else
+@@ -5129,7 +5129,7 @@ else
+ ;;
+ (*)
+ cf_cv_ar_flags=unknown
+- for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
++ for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
+ do
- cf_cv_ar_flags=unknown
-- for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
-+ for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
- do
-
- # check if $ARFLAGS already contains this choice
---
-1.8.3.1
-
+ # check if $ARFLAGS already contains this choice
diff --git a/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch b/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch
new file mode 100644
index 0000000000..d89399bbe5
--- /dev/null
+++ b/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch
@@ -0,0 +1,29 @@
+From 5962a5ee2885f67a396f7e8955ac1bbd7f15d4aa Mon Sep 17 00:00:00 2001
+From: Nathan Rossi <nathan@nathanrossi.com>
+Date: Mon, 14 Dec 2020 13:39:02 +1000
+Subject: [PATCH] gen-pkgconfig.in: Do not include LDFLAGS in generated pc
+ files
+
+Including the LDFLAGS in the pkgconfig output is problematic as OE
+includes build host specific paths and options (e.g. uninative and
+'-Wl,--dynamic-linker=').
+
+Upstream-Status: Inappropriate [OE Specific]
+Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
+---
+ misc/gen-pkgconfig.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
+index 89a5cd4a..07d94d17 100644
+--- a/misc/gen-pkgconfig.in
++++ b/misc/gen-pkgconfig.in
+@@ -83,7 +83,7 @@ if [ "$includedir" != "/usr/include" ]; then
+ fi
+
+ lib_flags=
+-for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@
++for opt in -L$libdir @LIBS@
+ do
+ case $opt in
+ -l*) # LIBS is handled specially below
diff --git a/meta/recipes-core/ncurses/files/config.cache b/meta/recipes-core/ncurses/files/config.cache
deleted file mode 100644
index 6a9217d5bb..0000000000
--- a/meta/recipes-core/ncurses/files/config.cache
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /bin/sh
-
-cf_cv_func_nanosleep=yes
-cf_cv_func_mkstemp=yes
diff --git a/meta/recipes-core/ncurses/files/exit_prototype.patch b/meta/recipes-core/ncurses/files/exit_prototype.patch
new file mode 100644
index 0000000000..299852d2c0
--- /dev/null
+++ b/meta/recipes-core/ncurses/files/exit_prototype.patch
@@ -0,0 +1,31 @@
+From af798dceafec8a9ea3f83fc250d784511ca0a29c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 30 Aug 2022 15:58:32 -0700
+Subject: [PATCH] Add needed headers for including mbstate_t and exit()
+
+Upstream-Status: Inappropriate [Reconfigure will solve it]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure b/configure
+index 005d44e2..72fa6c23 100755
+--- a/configure
++++ b/configure
+@@ -3462,6 +3462,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+ cat >"conftest.$ac_ext" <<_ACEOF
+ #line 3463 "configure"
+ #include "confdefs.h"
++#include <stdlib.h>
+ $ac_declaration
+ int
+ main (void)
+@@ -13533,6 +13534,7 @@ cat >"conftest.$ac_ext" <<_ACEOF
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <stdio.h>
++#include <wchar.h>
+ #ifdef HAVE_LIBUTF8_H
+ #include <libutf8.h>
+ #endif
diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index 5f2cc35823..f5e37b94da 100644
--- a/meta/recipes-core/ncurses/ncurses.inc
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -2,10 +2,10 @@ SUMMARY = "The New Curses library"
DESCRIPTION = "SVr4 and XSI-Curses compatible curses library and terminfo tools including tic, infocmp, captoinfo. Supports color, multiple highlights, forms-drawing characters, and automatic recognition of keypad and function-key sequences. Extensions include resizable windows and mouse support on both xterm and Linux console using the gpm library."
HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=cbc180a8c44ca642e97c35452fab5f66"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6f291ee54551d9d8d992ecd623fe4bc7;endline=27"
SECTION = "libs"
DEPENDS = "ncurses-native"
-DEPENDS_class-native = ""
+DEPENDS:class-native = ""
BINCONFIG = "${bindir}/ncurses5-config ${bindir}/ncursesw5-config \
${bindir}/ncurses6-config ${bindir}/ncursesw6-config"
@@ -13,35 +13,33 @@ BINCONFIG = "${bindir}/ncurses5-config ${bindir}/ncursesw5-config \
inherit autotools binconfig-disabled multilib_header pkgconfig
# Upstream has useful patches at times at ftp://invisible-island.net/ncurses/
-SRC_URI = "git://salsa.debian.org/debian/ncurses.git;protocol=https"
+SRC_URI = "git://github.com/ThomasDickey/ncurses-snapshots.git;protocol=https;branch=master"
EXTRA_AUTORECONF = "-I m4"
-CONFIG_SITE =+ "${WORKDIR}/config.cache"
-EXTRASITECONFIG = "CFLAGS='${CFLAGS} -I${SYSROOT_DESTDIR}${includedir}'"
+CACHED_CONFIGUREVARS = "cf_cv_func_nanosleep=yes"
+CACHED_CONFIGUREVARS:append:linux = " cf_cv_working_poll=yes"
# Whether to enable separate widec libraries; must be 'true' or 'false'
#
# TODO: remove this variable when widec is supported in every setup?
ENABLE_WIDEC ?= "true"
-# _GNU_SOURCE is required for widec stuff and is detected automatically
-# for target objects. But it must be set manually for native and sdk
-# builds.
-BUILD_CPPFLAGS += "-D_GNU_SOURCE"
+# _GNU_SOURCE is required for widec stuff and is not detected automatically
+CPPFLAGS += "-D_GNU_SOURCE"
# natives don't generally look in base_libdir
-base_libdir_class-native = "${libdir}"
+base_libdir:class-native = "${libdir}"
# Display corruption occurs on 64 bit hosts without these settings
# This was derrived from the upstream debian ncurses which uses
# these settings for 32 and 64 bit hosts.
EXCONFIG_ARGS = ""
-EXCONFIG_ARGS_class-native = " \
+EXCONFIG_ARGS:class-native = " \
--disable-lp64 \
--with-chtype='long' \
--with-mmask-t='long'"
-EXCONFIG_ARGS_class-nativesdk = " \
+EXCONFIG_ARGS:class-nativesdk = " \
--disable-lp64 \
--with-chtype='long' \
--with-mmask-t='long'"
@@ -54,11 +52,11 @@ PACKAGES_DYNAMIC = "^${PN}-lib.*"
# because the sstate had a hard coded search path. Until this is fixed
# another way this is deemed good enough.
EX_TERMCAP = ""
-EX_TERMCAP_class-native = ":/etc/termcap:/usr/share/misc/termcap"
-EX_TERMCAP_class-nativesdk = ":/etc/termcap:/usr/share/misc/termcap"
+EX_TERMCAP:class-native = ":/etc/termcap:/usr/share/misc/termcap"
+EX_TERMCAP:class-nativesdk = ":/etc/termcap:/usr/share/misc/termcap"
EX_TERMINFO = ""
-EX_TERMINFO_class-native = ":/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo"
-EX_TERMINFO_class-nativesdk = ":/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo"
+EX_TERMINFO:class-native = ":/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo"
+EX_TERMINFO:class-nativesdk = ":/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo"
EX_TERMLIB ?= "tinfo"
# Helper function for do_configure to allow multiple configurations
@@ -87,6 +85,7 @@ ncurses_configure() {
--disable-rpath-hack \
${EXCONFIG_ARGS} \
--with-manpage-format=normal \
+ --without-manpage-renames \
--disable-stripping \
"$@" || return 1
cd ..
@@ -96,10 +95,6 @@ ncurses_configure() {
# patched autoconf213 to generate the configure script. This autoconf
# is not available so that the shipped script will be used.
do_configure() {
- # check does not work with cross-compiling and is generally
- # broken because it requires stdin to be pollable (which is
- # not the case for /dev/null redirections)
- export cf_cv_working_poll=yes
#Remove ${includedir} from CPPFLAGS, need for cross compile
sed -i 's#-I${cf_includedir}##g' ${S}/configure || die "sed CPPFLAGS"
@@ -240,10 +235,9 @@ do_install() {
mv ${D}${libdir}/libtinfo.so.* ${D}${base_libdir}
rm ${D}${libdir}/libtinfo.so
- # Use lnr to ensure this is a relative link despite absolute paths
+ # Use ln -rs to ensure this is a relative link despite absolute paths
# (as we can't know the relationship between base_libdir and libdir).
- # At some point we can rely on coreutils 8.16 which has ln -r.
- lnr ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
+ ln -rs ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
fi
if [ -d "${D}${includedir}/ncurses" ]; then
for f in `find ${D}${includedir}/ncurses -name "*.h"`
@@ -256,7 +250,7 @@ do_install() {
oe_multilib_header curses.h
}
-python populate_packages_prepend () {
+python populate_packages:prepend () {
libdir = d.expand("${libdir}")
base_libdir = d.expand("${base_libdir}")
pnbase = d.expand("${PN}-lib%s")
@@ -270,7 +264,12 @@ inherit update-alternatives
ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_ncurses-tools_class-target = "clear reset"
+ALTERNATIVE:ncurses-tools:class-target = "clear reset"
+ALTERNATIVE:ncurses-terminfo:class-target = "st st-256color"
+
+ALTERNATIVE_LINK_NAME[st] = "${datadir}/terminfo/s/st"
+
+ALTERNATIVE_LINK_NAME[st-256color] = "${datadir}/terminfo/s/st-256color"
BBCLASSEXTEND = "native nativesdk"
@@ -280,7 +279,7 @@ PACKAGES += " \
${PN}-terminfo \
"
-FILES_${PN} = "\
+FILES:${PN} = "\
${bindir}/tput \
${bindir}/tset \
${bindir}/ncurses5-config \
@@ -292,7 +291,7 @@ FILES_${PN} = "\
# This keeps only tput/tset in ncurses
# clear/reset are in already busybox
-FILES_${PN}-tools = "\
+FILES:${PN}-tools = "\
${bindir}/tic \
${bindir}/toe \
${bindir}/infotocap \
@@ -305,15 +304,20 @@ FILES_${PN}-tools = "\
"
# 'reset' is a symlink to 'tset' which is in the 'ncurses' package
-RDEPENDS_${PN}-tools = "${PN}"
+RDEPENDS:${PN}-tools = "${PN} ${PN}-terminfo-base"
-FILES_${PN}-terminfo = "\
+FILES:${PN}-terminfo = "\
${datadir}/terminfo \
"
-FILES_${PN}-terminfo-base = "\
+FILES:${PN}-terminfo-base = "\
${sysconfdir}/terminfo \
"
-RSUGGESTS_${PN}-libtinfo = "${PN}-terminfo"
-RRECOMMENDS_${PN}-libtinfo = "${PN}-terminfo-base"
+RSUGGESTS:${PN}-libtinfo = "${PN}-terminfo"
+RRECOMMENDS:${PN}-libtinfo = "${PN}-terminfo-base"
+
+# Putting terminfo into the sysroot adds around 2800 files to
+# each recipe specific sysroot. We can live without this, particularly
+# as many recipes may have native and target copies.
+SYSROOT_DIRS:remove = "${datadir}"
diff --git a/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb b/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
deleted file mode 100644
index e638a3737c..0000000000
--- a/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require ncurses.inc
-
-SRC_URI += "file://0001-tic-hang.patch \
- file://0002-configure-reproducible.patch \
- file://config.cache \
- file://0001-ncurses-selective-backport-of-20191012-patch.patch \
-"
-# commit id corresponds to the revision in package version
-SRCREV = "3c9b2677c96c645496997321bf2fe465a5e7e21f"
-S = "${WORKDIR}/git"
-EXTRA_OECONF += "--with-abi-version=5 --cache-file=${B}/config.cache"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+(\+\d+)*)"
diff --git a/meta/recipes-core/ncurses/ncurses_6.5.bb b/meta/recipes-core/ncurses/ncurses_6.5.bb
new file mode 100644
index 0000000000..2e3ee337ea
--- /dev/null
+++ b/meta/recipes-core/ncurses/ncurses_6.5.bb
@@ -0,0 +1,15 @@
+require ncurses.inc
+
+SRC_URI += "file://0001-tic-hang.patch \
+ file://0002-configure-reproducible.patch \
+ file://0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch \
+ file://exit_prototype.patch \
+ "
+# commit id corresponds to the revision in package version
+SRCREV = "1c55d64d9d3e00399a21f04e9cac1e472ab5f70a"
+S = "${WORKDIR}/git"
+EXTRA_OECONF += "--with-abi-version=5"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+_\d+)$"
+
+# This is needed when using patchlevel versions like 6.1+20181013
+#CVE_VERSION = "${@d.getVar("PV").split('+')[0]}.${@d.getVar("PV").split('+')[1]}"
diff --git a/meta/recipes-core/ncurses/site_config/headers b/meta/recipes-core/ncurses/site_config/headers
deleted file mode 100644
index 087b7bfd5e..0000000000
--- a/meta/recipes-core/ncurses/site_config/headers
+++ /dev/null
@@ -1,5 +0,0 @@
-curses.h
-ncurses/curses.h
-ncurses.h
-ncurses/termcap.h
-