procps-ng: fix/patch wrong ncursesw headers assumption
PATCH 1/1 procps-ng: fix/patch wrong ncursesw headers assumption
The configure script/code assumes ncursesw headers live in /usr/include/ncursesw.
That's a distribution-ism where they want to have both versions for ABI/API compatibility, but not the case for embedded where that's not a concern.
Hence kill the hard-coding and use pkg-config to find this out instead of the half-made effort about it.
Fixes:
http://autobuild.buildroot.net/results/97d/97dc7f238457609c861c24f81b556973f5dec9c1/
--- .../0002-use-pkgconfig-for-ncursesw-cflags.patch | 56 ++++++++++++++++++++++ package/procps-ng/procps-ng.mk | 3 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 package/procps-ng/0002-use-pkgconfig-for-ncursesw-cflags.patch
package/procps-ng/0002-use-pkgconfig-for-ncursesw-cflags.patch new file +56 -0
@@ -0,0 +1,56 @@ +Don't assume ncursesw headers are in ../usr/include/ncursesw/.. +On a pure build/system without legacy ncurses that may not be true. +Since we're using pkg-config let it provide the correct include path. + +Status: contacted one of the maintainers on sf.net +(ticket submission closed to the public, no other way of contacting them). + +Signed-off-by: Gustavo Zacarias <[email protected]> + +diff -Nura procps-ng-3.3.10.orig/configure.ac procps-ng-3.3.10/configure.ac +--- procps-ng-3.3.10.orig/configure.ac 2015-04-07 19:21:55.729819952 -0300 ++++ procps-ng-3.3.10/configure.ac 2015-04-07 19:32:09.511706653 -0300 +@@ -138,7 +138,8 @@ + ]) + AM_CONDITIONAL(WITH_NCURSES, true) + if test "$enable_watch8bit" = yes; then +- PKG_CHECK_MODULES([NCURSESW], [ncursesw], [WATCH_NCURSES_LIBS="$NCURSESW_LIBS"], [ ++ PKG_CHECK_MODULES([NCURSESW], [ncursesw], [WATCH_NCURSES_LIBS="$NCURSESW_LIBS"] ++ [WATCH_NCURSES_CFLAGS="$NCURSESW_CFLAGS"], [ + AC_CHECK_LIB([ncursesw], [addwstr], [WATCH_NCURSES_LIBS=-lncursesw], + [AC_MSG_ERROR([Cannot find ncurses wide library ncursesw with --enable-watch8bit])]) + ]) +@@ -148,6 +149,7 @@ + fi + AC_SUBST([NCURSES_LIBS]) + AC_SUBST([WATCH_NCURSES_LIBS]) ++AC_SUBST([WATCH_NCURSES_CFLAGS]) + + AC_ARG_WITH([systemd], + [AS_HELP_STRING([--with-systemd], [enable systemd support])], +diff -Nura procps-ng-3.3.10.orig/Makefile.am procps-ng-3.3.10/Makefile.am +--- procps-ng-3.3.10.orig/Makefile.am 2015-04-07 19:21:55.655817434 -0300 ++++ procps-ng-3.3.10/Makefile.am 2015-04-07 19:32:54.516238136 -0300 +@@ -83,6 +83,7 @@ + slabtop_LDADD = @NCURSES_LIBS@ + watch_SOURCES = watch.c $(top_srcdir)/lib/strutils.c $(top_srcdir)/lib/fileutils.c + watch_LDADD = @WATCH_NCURSES_LIBS@ ++watch_CFLAGS = @WATCH_NCURSES_CFLAGS@ + endif + + if BUILD_SKILL +diff -Nura procps-ng-3.3.10.orig/watch.c procps-ng-3.3.10/watch.c +--- procps-ng-3.3.10.orig/watch.c 2015-04-07 19:21:55.707819203 -0300 ++++ procps-ng-3.3.10/watch.c 2015-04-07 19:22:27.323895083 -0300 +@@ -51,10 +51,8 @@ + #ifdef WITH_WATCH8BIT + # include <wchar.h> + # include <wctype.h> +-# include <ncursesw/ncurses.h> +-#else +-# include <ncurses.h> + #endif /* WITH_WATCH8BIT */ ++#include <ncurses.h> + + #ifdef FORCE_8BIT + # undef isprint
package/procps-ng/procps-ng.mk +2 -1
@@ -10,8 +10,9 @@ PROCPS_NG_SITE = http://downloads.sourceforge.net/project/procps-ng/Production PROCPS_NG_LICENSE = GPLv2+, libproc and libps LGPLv2+ PROCPS_NG_LICENSE_FILES = COPYING COPYING.LIB PROCPS_NG_INSTALL_STAGING = YES - PROCPS_NG_DEPENDENCIES = ncurses host-pkgconf +# For 0002-use-pkgconfig-for-ncursesw-cflags.patch +PROCPS_NG_AUTORECONF = YES # If both procps-ng and busybox are selected, make certain procps-ng # wins the fight over who gets to have their utils actually installed.
Signature · 1 line
2.0.5
PATCH 1/1 procps-ng: fix/patch wrong ncursesw headers assumption
Hi Gustavo,
Quoted 11 lines · Gustavo Zacarias
The configure script/code assumes ncursesw headers live in
/usr/include/ncursesw.
That's a distribution-ism where they want to have both versions for ABI/API compatibility, but not the case for embedded where that's not a concern.
Hence kill the hard-coding and use pkg-config to find this out instead of the half-made effort about it.
Fixes:
http://autobuild.buildroot.net/results/97d/97dc7f238457609c861c24f81b556973f5dec9c1/Signed-off-by Gustavo Zacarias <[email protected]>
Thanks. This supersedes my patch http://patchwork.ozlabs.org/patch/458254/.
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -Thomas Petazzoni
AppliedPATCH 1/1 procps-ng: fix/patch wrong ncursesw headers assumption
In reply to Gustavo ZacariasDear Gustavo Zacarias,
Quoted 11 lines · Gustavo Zacarias
The configure script/code assumes ncursesw headers live in
/usr/include/ncursesw.
That's a distribution-ism where they want to have both versions for ABI/API compatibility, but not the case for embedded where that's not a concern.
Hence kill the hard-coding and use pkg-config to find this out instead of the half-made effort about it.
Fixes:
http://autobuild.buildroot.net/results/97d/97dc7f238457609c861c24f81b556973f5dec9c1/Signed-off-by Gustavo Zacarias <[email protected]>
Applied, thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com