diff options
Diffstat (limited to 'meta/recipes-core/ncurses')
8 files changed, 129 insertions, 69 deletions
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 99fc47869e..2a3fd4f2c5 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,10 +13,12 @@ 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" + +CACHED_CONFIGUREVARS = "cf_cv_func_nanosleep=yes" +CACHED_CONFIGUREVARS:append:linux = " cf_cv_working_poll=yes" EXTRASITECONFIG = "CFLAGS='${CFLAGS} -I${SYSROOT_DESTDIR}${includedir}'" @@ -25,23 +27,21 @@ EXTRASITECONFIG = "CFLAGS='${CFLAGS} -I${SYSROOT_DESTDIR}${includedir}'" # 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 +54,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 +87,7 @@ ncurses_configure() { --disable-rpath-hack \ ${EXCONFIG_ARGS} \ --with-manpage-format=normal \ + --without-manpage-renames \ --disable-stripping \ "$@" || return 1 cd .. @@ -96,10 +97,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 +237,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,13 +252,13 @@ 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") - do_split_packages(d, libdir, '^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) + do_split_packages(d, libdir, r'^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) if libdir is not base_libdir: - do_split_packages(d, base_libdir, '^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) + do_split_packages(d, base_libdir, r'^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) } @@ -270,7 +266,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 +281,7 @@ PACKAGES += " \ ${PN}-terminfo \ " -FILES_${PN} = "\ +FILES:${PN} = "\ ${bindir}/tput \ ${bindir}/tset \ ${bindir}/ncurses5-config \ @@ -292,7 +293,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 +306,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+20180630.bb b/meta/recipes-core/ncurses/ncurses_6.1+20180630.bb deleted file mode 100644 index 38faf7af28..0000000000 --- a/meta/recipes-core/ncurses/ncurses_6.1+20180630.bb +++ /dev/null @@ -1,11 +0,0 @@ -require ncurses.inc - -SRC_URI += "file://0001-tic-hang.patch \ - file://0002-configure-reproducible.patch \ - file://config.cache \ -" -# commit id corresponds to the revision in package version -SRCREV = "d3b29180ae4360d7ab7a41a15e963299fdb72e33" -S = "${WORKDIR}/git" -EXTRA_OECONF += "--with-abi-version=5" -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]}" |