linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ncurses detection for nconfig/menuconfig patches revised
@ 2013-03-01 15:50 jlec
  2013-03-01 15:50 ` [PATCH 1/2] menuconfig: use config scripts to detect ncurses libs jlec
  2013-03-01 15:50 ` [PATCH 2/2] kconfig: " jlec
  0 siblings, 2 replies; 6+ messages in thread
From: jlec @ 2013-03-01 15:50 UTC (permalink / raw)
  To: linux-kbuild, linux-kernel


Hello,

After the discussion I modified the patches to respect following things

1. Don't remove the legacy detection
2. use helpers in following order: 
	pkg-config, ncurses5-config, ncurses6-config, old heuristic
3. only support the wide char implementation for menuconfig


Regards,
justin


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] menuconfig: use config scripts to detect ncurses libs
  2013-03-01 15:50 ncurses detection for nconfig/menuconfig patches revised jlec
@ 2013-03-01 15:50 ` jlec
  2013-03-03 20:36   ` Yann E. MORIN
  2013-03-01 15:50 ` [PATCH 2/2] kconfig: " jlec
  1 sibling, 1 reply; 6+ messages in thread
From: jlec @ 2013-03-01 15:50 UTC (permalink / raw)
  To: linux-kbuild, linux-kernel; +Cc: Justin Lecher

From: Justin Lecher <jlec@gentoo.org>

When building ncurses with --with-termlib several symbols get moved from
libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
additionally needs to link with libtinfo.so. Ncurses provides a config script
(ncurses5-config) or in very recent version even a pkg-config module to assist
finding ncurses.

The old heuristic for detection of ncurses libs will be extended to the
pkg-config and the config scripts.

Signed-off-by: Justin Lecher <jlec@gentoo.org>
---
 scripts/kconfig/lxdialog/check-lxdialog.sh | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
index 8078813..8086874 100644
--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -4,6 +4,12 @@
 # What library to link
 ldflags()
 {
+	pkg-config --libs ncursesw 2>/dev/null && exit
+	pkg-config --libs ncurses 2>/dev/null && exit
+	ncursesw5-config --libs 2>/dev/null && exit
+	ncurses5-config --libs 2>/dev/null && exit
+	ncursesw6-config --libs 2>/dev/null && exit
+	ncurses6-config --libs 2>/dev/null && exit
 	for ext in so a dll.a dylib ; do
 		for lib in ncursesw ncurses curses ; do
 			$cc -print-file-name=lib${lib}.${ext} | grep -q /
-- 
1.8.1.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] kconfig: use config scripts to detect ncurses libs
  2013-03-01 15:50 ncurses detection for nconfig/menuconfig patches revised jlec
  2013-03-01 15:50 ` [PATCH 1/2] menuconfig: use config scripts to detect ncurses libs jlec
@ 2013-03-01 15:50 ` jlec
  2013-03-03 20:38   ` Yann E. MORIN
  1 sibling, 1 reply; 6+ messages in thread
From: jlec @ 2013-03-01 15:50 UTC (permalink / raw)
  To: linux-kbuild, linux-kernel; +Cc: Justin Lecher

From: Justin Lecher <jlec@gentoo.org>

When building ncurses with --with-termlib several symbols get moved from
libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
additionally needs to link with libtinfo.so. Ncurses provides a config script
(ncurses5-config) or in very recent version even a pkg-config module to assist
finding ncurses.

This patch makes use of it to detect the necessary libs for linking of the
ncurses nconfig dialog

Signed-off-by: Justin Lecher <jlec@gentoo.org>
---
 scripts/kconfig/Makefile | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 231b475..cc81db5 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -219,7 +219,11 @@ HOSTCFLAGS_gconf.o	= `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
 
 HOSTLOADLIBES_mconf   = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
 
-HOSTLOADLIBES_nconf	= -lmenu -lpanel -lncurses
+HOSTLOADLIBES_nconf	= -lmenu -lpanel
+HOSTLOADLIBES_nconf	+= $(shell \
+				pkg-config --libs ncurses 2>/dev/null \
+				|| ncurses5-config --libs 2>/dev/null \
+				|| ncurses6-config --libs 2>/dev/null  )
 $(obj)/qconf.o: $(obj)/.tmp_qtcheck
 
 ifeq ($(qconf-target),1)
-- 
1.8.1.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] menuconfig: use config scripts to detect ncurses libs
  2013-03-01 15:50 ` [PATCH 1/2] menuconfig: use config scripts to detect ncurses libs jlec
@ 2013-03-03 20:36   ` Yann E. MORIN
  2013-03-03 21:20     ` Justin
  0 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2013-03-03 20:36 UTC (permalink / raw)
  To: linux-kbuild; +Cc: jlec, linux-kernel

Justin, All,

On Friday 01 March 2013 jlec@gentoo.org wrote:
> When building ncurses with --with-termlib several symbols get moved from
> libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
> additionally needs to link with libtinfo.so. Ncurses provides a config script
> (ncurses5-config) or in very recent version even a pkg-config module to assist
> finding ncurses.
> 
> The old heuristic for detection of ncurses libs will be extended to the
> pkg-config and the config scripts.
> 
> Signed-off-by: Justin Lecher <jlec@gentoo.org>
> ---
>  scripts/kconfig/lxdialog/check-lxdialog.sh | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
> index 8078813..8086874 100644
> --- a/scripts/kconfig/lxdialog/check-lxdialog.sh
> +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
> @@ -4,6 +4,12 @@
>  # What library to link
>  ldflags()
>  {
> +	pkg-config --libs ncursesw 2>/dev/null && exit
> +	pkg-config --libs ncurses 2>/dev/null && exit
> +	ncursesw5-config --libs 2>/dev/null && exit
> +	ncurses5-config --libs 2>/dev/null && exit
> +	ncursesw6-config --libs 2>/dev/null && exit
> +	ncurses6-config --libs 2>/dev/null && exit

In the light of the different mails on the subject, it appears that the
ncurses*-config script are unreliable: at least one major distribution
(Debian) is broken and, for various reasons, is not gonna fix it, and
all its derivatives (eg. Ubuntu) do suffer from the same deficiency.

I think we should stick to:
  - try with pkg-config;
  - fallback to the legacy heuristic.

Does using pkg-config fix your use-case?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] kconfig: use config scripts to detect ncurses libs
  2013-03-01 15:50 ` [PATCH 2/2] kconfig: " jlec
@ 2013-03-03 20:38   ` Yann E. MORIN
  0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2013-03-03 20:38 UTC (permalink / raw)
  To: linux-kbuild; +Cc: jlec, linux-kernel

Justin, All,

On Friday 01 March 2013 jlec@gentoo.org wrote:
> When building ncurses with --with-termlib several symbols get moved from
> libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
> additionally needs to link with libtinfo.so. Ncurses provides a config script
> (ncurses5-config) or in very recent version even a pkg-config module to assist
> finding ncurses.
> 
> This patch makes use of it to detect the necessary libs for linking of the
> ncurses nconfig dialog
> 
> Signed-off-by: Justin Lecher <jlec@gentoo.org>
> ---
>  scripts/kconfig/Makefile | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 231b475..cc81db5 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -219,7 +219,11 @@ HOSTCFLAGS_gconf.o	= `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
>  
>  HOSTLOADLIBES_mconf   = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
>  
> -HOSTLOADLIBES_nconf	= -lmenu -lpanel -lncurses
> +HOSTLOADLIBES_nconf	= -lmenu -lpanel
> +HOSTLOADLIBES_nconf	+= $(shell \
> +				pkg-config --libs ncurses 2>/dev/null \
> +				|| ncurses5-config --libs 2>/dev/null \
> +				|| ncurses6-config --libs 2>/dev/null  )

Ditto as for menuconfig: drop the ncurses*-config scripts, and:
  - try pkg-config;
  - fallback to -lncurses.

HOSTLOADLIBES_nconf	+= $(shell \
				pkg-config --libs ncurses 2>/dev/null \
				|| echo -lncurses )

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] menuconfig: use config scripts to detect ncurses libs
  2013-03-03 20:36   ` Yann E. MORIN
@ 2013-03-03 21:20     ` Justin
  0 siblings, 0 replies; 6+ messages in thread
From: Justin @ 2013-03-03 21:20 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: linux-kbuild, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 888 bytes --]

On 03.03.2013 21:36, Yann E. MORIN wrote:
Hello,
> 
> In the light of the different mails on the subject, it appears that the
> ncurses*-config script are unreliable: at least one major distribution
> (Debian) is broken and, for various reasons, is not gonna fix it, and
> all its derivatives (eg. Ubuntu) do suffer from the same deficiency.

Indeed the config scripts come without the necessary build time deps.
But it ends in the same situation as current version of the Makefile.
The user will be asked to install the devel package.
So I don't see any problem here.

> 
> I think we should stick to:
>   - try with pkg-config;
>   - fallback to the legacy heuristic.
> 
> Does using pkg-config fix your use-case?

It does, nevertheless I would prefer to include the ncurses*-config
script as well to cover most situation we will find on users system.

Justin


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-03-03 21:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-01 15:50 ncurses detection for nconfig/menuconfig patches revised jlec
2013-03-01 15:50 ` [PATCH 1/2] menuconfig: use config scripts to detect ncurses libs jlec
2013-03-03 20:36   ` Yann E. MORIN
2013-03-03 21:20     ` Justin
2013-03-01 15:50 ` [PATCH 2/2] kconfig: " jlec
2013-03-03 20:38   ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).