readline: fix pkgconfig usage
authorRosen Penev <rosenp@gmail.com>
Thu, 4 Jul 2024 19:12:33 +0000 (12:12 -0700)
committerRobert Marko <robimarko@gmail.com>
Mon, 8 Jul 2024 07:44:21 +0000 (09:44 +0200)
ncurses is built with wide support enabled, which enables libncursesw.
The problem is, the ncurses build system only supplies ncursesw or
ncurses.pc but not both. The other problem is, the readline build tests
for libncurses before the w variant, making its pc file unusable as
there is no ncurses.pc file to satisfy the Required: ncurses section.

Just override the library.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15864
Signed-off-by: Robert Marko <robimarko@gmail.com>
package/libs/readline/Makefile
package/libs/readline/patches/010-ncursesw-first.patch [new file with mode: 0644]

index 015a1ae2da952f5f904f40f89cbc057787aae21b..3ab28712af426ed25cced375704db84bc7857174 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=readline
 PKG_VERSION:=8.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/readline
@@ -51,6 +51,7 @@ CONFIGURE_ARGS += --with-curses --disable-install-examples
 CONFIGURE_VARS += \
        bash_cv_wcwidth_broken=no \
        bash_cv_func_sigsetjmp=yes \
+       bash_cv_termcap_lib=libncursesw
 
 TARGET_CFLAGS += $(FPIC)
 HOST_CFLAGS += $(FPIC)
diff --git a/package/libs/readline/patches/010-ncursesw-first.patch b/package/libs/readline/patches/010-ncursesw-first.patch
new file mode 100644 (file)
index 0000000..d66cc04
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/configure
++++ b/configure
+@@ -7305,6 +7305,9 @@ TERMCAP_DEP=
+ elif test $bash_cv_termcap_lib = libncurses; then
+ TERMCAP_LIB=-lncurses
+ TERMCAP_DEP=
++elif test $bash_cv_termcap_lib = libncursesw; then
++TERMCAP_LIB=-lncursesw
++TERMCAP_DEP=
+ elif test $bash_cv_termcap_lib = libc; then
+ TERMCAP_LIB=
+ TERMCAP_DEP=
+@@ -7340,6 +7343,7 @@ case "$TERMCAP_LIB" in
+ -ltinfo)  TERMCAP_PKG_CONFIG_LIB=tinfo ;;
+ -lcurses) TERMCAP_PKG_CONFIG_LIB=ncurses ;;
+ -lncurses) TERMCAP_PKG_CONFIG_LIB=ncurses ;;
++-lncursesw) TERMCAP_PKG_CONFIG_LIB=ncursesw ;;
+ -ltermcap) TERMCAP_PKG_CONFIG_LIB=termcap ;;
+ *) TERMCAP_PKG_CONFIG_LIB=termcap ;;
+ esac