[PATCH 3/4] Better recognition of ncurses header files
Cyril Bur
cyrilbur at gmail.com
Thu Nov 16 14:58:48 AEDT 2017
On Thu, 2017-11-16 at 14:49 +1100, Cyril Bur wrote:
> This patch was lifted directly from:
> https://github.com/Tlf/tlf/commit/a21513254ce8bf66d0b019f6075eea918958741a
>
> The commit message reads:
> If ax_with_ncurses finds a ncursesw instance the former code checks
> only for <ncursesw/panelh>. If not there the search fails.
> That let to problems at least in Arch Linux which has only <panel.h>
> installed.
> The patched version here checks first for <ncursesw/panel.h> and if
> not found also for <panel.h>.
>
> Tested for the following distributions:
>
> Gentoo, Debian 7..9, Linux Mint 17 and 18.1, Arch Linux, Ubuntu
>
> ARCH Linux builds ncurses with wide character support but does not add
> any ncurses specific headers. nurses its self (by default) adds almost
> no ncurses specific headers. No {prefix}/include/ncurses directory. In
> fact the only ncurses specific file is the ncurses.h symlink to
> curses.h, other than that there are no ncurses headers.
>
> The ax_with_curses.m4 script detects if the installed ncurses has wide
> character support. It checks using code snippets against all possible
> ncurses header files.
>
> If the ax_with_curses.m4 script detects wide character support the
> ax_with_curses_extra.m4 will only look for extra curses features (in
> the case of petitboot, form.h and menu.h) inside the
> {prefix}/include/ncurses directory, when they could simply be in
> {prefix}/include.
>
Sorry I forgot to mention that I did test this both on my ARCH laptop
which fails to detect ncurses correctly without patch applied and in
op-build using both PETITBOOT_OVERRIDE_SRCDIR and changing the
petitboot.mk and changing the github repo it points to. No change
observed in op-build.
> Signed-off-by: Cyril Bur <cyrilbur at gmail.com>
> ---
> As an added side note: carrying these is an extremely good idea, it
> appears upstream is subtly broken (I really didn't go that much into
> it), just know that pulling upstream doesn't work.
> Confirmed here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=840974
>
> m4/ax_with_curses_extra.m4 | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/m4/ax_with_curses_extra.m4 b/m4/ax_with_curses_extra.m4
> index e0de4a6..67a1a68 100644
> --- a/m4/ax_with_curses_extra.m4
> +++ b/m4/ax_with_curses_extra.m4
> @@ -200,6 +200,11 @@ AC_DEFUN([_AX_WITH_CURSES_EXTRA], [
> ], [
> AS_IF([test "x$ax_cv_curses_which" = xncursesw], [
> _AX_WITH_CURSES_CHECKEXTRA([$1], [$2], [$3], [ncursesw/$4], [$5])
> + dnl This fixes problem building on distos with 'odd'
> + dnl ncurses header file setups
> + AS_IF([test x$[]ax_cv_[]m4_tolower($1) != "xyes"], [
> + _AX_WITH_CURSES_CHECKEXTRA([$1], [$2], [$3], [$4], [$5])
> + ])
> ], [test "x$ax_cv_curses_which" = xncurses], [
> _AX_WITH_CURSES_CHECKEXTRA([$1], [$2], [$3], [ncurses/$4], [$6])
> _AX_WITH_CURSES_CHECKEXTRA([$1], [$2], [$3], [$4], [$6])
More information about the Petitboot
mailing list