summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/util-linux/0001-build-sys-prefer-pkg-config-for-ncurses.patch76
-rw-r--r--package/util-linux/0002-build-sys-cleanup-UL_NCURSES_CHECK.patch91
-rw-r--r--package/util-linux/Config.in4
-rw-r--r--package/util-linux/util-linux.mk18
4 files changed, 184 insertions, 5 deletions
diff --git a/package/util-linux/0001-build-sys-prefer-pkg-config-for-ncurses.patch b/package/util-linux/0001-build-sys-prefer-pkg-config-for-ncurses.patch
new file mode 100644
index 0000000000..ca22ee2f54
--- /dev/null
+++ b/package/util-linux/0001-build-sys-prefer-pkg-config-for-ncurses.patch
@@ -0,0 +1,76 @@
+From 3f7429fd2d539c7f948f72bd829404b55ac19d9f Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Mon, 12 Dec 2016 15:23:53 +0100
+Subject: [PATCH] build-sys: prefer pkg-config for ncurses
+
+and use ncurses{5,6}-config as fallback only.
+
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ m4/ul.m4 | 48 ++++++++++++++++++++++++++++--------------------
+ 1 file changed, 28 insertions(+), 20 deletions(-)
+
+diff --git a/m4/ul.m4 b/m4/ul.m4
+index c569c36..44c721e 100644
+--- a/m4/ul.m4
++++ b/m4/ul.m4
+@@ -438,28 +438,36 @@ dnl The expected <name> is ncurses or ncursesw.
+ dnl
+ AC_DEFUN([UL_NCURSES_CHECK], [
+ m4_define([suffix], $1)
++ m4_define([suffixup], m4_toupper($1))
++
++ # pkg-config
++ PKG_CHECK_MODULES(suffixup, [$1], [
++ have_[]suffix=yes
++ NCURSES_LIBS=${suffixup[]_LIBS}
++ NCURSES_CFLAGS=${suffixup[]_CFLAGS}
++ ],[have_[]suffix=no])
+
+ # ncurses-config should be everywhere, pkg-config is not supported by default
+ # by ncurses upstream
+ #
+- AC_MSG_CHECKING([$1])
+- if AC_RUN_LOG([suffix[]6-config --version >/dev/null]); then
+- have_[]suffix=yes
+- NCURSES_LIBS=`suffix[]6-config --libs`
+- NCURSES_CFLAGS=`suffix[]6-config --cflags`
+- AC_MSG_RESULT([(v6) yes])
+- elif AC_RUN_LOG([suffix[]5-config --version >/dev/null]); then
+- have_[]suffix=yes
+- NCURSES_LIBS=`suffix[]5-config --libs`
+- NCURSES_CFLAGS=`suffix[]5-config --cflags`
+- AC_MSG_RESULT([(v5) yes])
+- else
+- AC_MSG_RESULT([no])
+-
+- # fallback
+- AC_CHECK_LIB([$1], [initscr], [have_[]suffix=yes], [have_[]suffix=no])
+- AS_IF([test "x$have_[]suffix" = xyes], [
+- NCURSES_LIBS="-l[]suffix"
+- ])
+- fi
++ AS_IF([test "x$have_[]suffix" = xno], [
++ AC_MSG_CHECKING([$1 config])
++ if AC_RUN_LOG([suffix[]6-config --version >/dev/null]); then
++ have_[]suffix=yes
++ NCURSES_LIBS=`suffix[]6-config --libs`
++ NCURSES_CFLAGS=`suffix[]6-config --cflags`
++ AC_MSG_RESULT([(v6) yes])
++ elif AC_RUN_LOG([suffix[]5-config --version >/dev/null]); then
++ have_[]suffix=yes
++ NCURSES_LIBS=`suffix[]5-config --libs`
++ NCURSES_CFLAGS=`suffix[]5-config --cflags`
++ AC_MSG_RESULT([(v5) yes])
++ else
++ AC_MSG_RESULT([no])
++ AS_IF([test "x$have_[]suffix" = xno], [
++ AC_CHECK_LIB([$1], [initscr], [have_[]suffix=yes], [have_[]suffix=no])
++ AS_IF([test "x$have_[]suffix" = xyes], [NCURSES_LIBS="-l[]suffix"])
++ ])
++ fi
++ ])
+ ])
+--
+2.6.2
+
diff --git a/package/util-linux/0002-build-sys-cleanup-UL_NCURSES_CHECK.patch b/package/util-linux/0002-build-sys-cleanup-UL_NCURSES_CHECK.patch
new file mode 100644
index 0000000000..40810b23ea
--- /dev/null
+++ b/package/util-linux/0002-build-sys-cleanup-UL_NCURSES_CHECK.patch
@@ -0,0 +1,91 @@
+From 862326451184bb0fe9c2b2b110fcfc986f9b1734 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Tue, 13 Dec 2016 12:41:18 +0100
+Subject: [PATCH] build-sys: cleanup UL_NCURSES_CHECK
+
+* use SUFFIX for upper-case suffix
+* use AC_CHECK_TOOL() to search for ncurses-config (thanks to Mike Frysinger)
+* separate checks by AS_IF()
+
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ m4/ul.m4 | 54 +++++++++++++++++++++++++++++++++---------------------
+ 1 file changed, 33 insertions(+), 21 deletions(-)
+
+diff --git a/m4/ul.m4 b/m4/ul.m4
+index 44c721e..f8a0dd7 100644
+--- a/m4/ul.m4
++++ b/m4/ul.m4
+@@ -438,36 +438,48 @@ dnl The expected <name> is ncurses or ncursesw.
+ dnl
+ AC_DEFUN([UL_NCURSES_CHECK], [
+ m4_define([suffix], $1)
+- m4_define([suffixup], m4_toupper($1))
++ m4_define([SUFFIX], m4_toupper($1))
+
+- # pkg-config
+- PKG_CHECK_MODULES(suffixup, [$1], [
++ # pkg-config (not supported by ncurses upstream by default)
++ #
++ PKG_CHECK_MODULES(SUFFIX, [$1], [
+ have_[]suffix=yes
+- NCURSES_LIBS=${suffixup[]_LIBS}
+- NCURSES_CFLAGS=${suffixup[]_CFLAGS}
++ NCURSES_LIBS=${SUFFIX[]_LIBS}
++ NCURSES_CFLAGS=${SUFFIX[]_CFLAGS}
+ ],[have_[]suffix=no])
+
+- # ncurses-config should be everywhere, pkg-config is not supported by default
+- # by ncurses upstream
++ # ncurses6-config
+ #
+ AS_IF([test "x$have_[]suffix" = xno], [
+- AC_MSG_CHECKING([$1 config])
+- if AC_RUN_LOG([suffix[]6-config --version >/dev/null]); then
++ AC_CHECK_TOOL(SUFFIX[]6_CONFIG, suffix[]6-config)
++ if AC_RUN_LOG([$SUFFIX[]6_CONFIG --version >/dev/null]); then
+ have_[]suffix=yes
+- NCURSES_LIBS=`suffix[]6-config --libs`
+- NCURSES_CFLAGS=`suffix[]6-config --cflags`
+- AC_MSG_RESULT([(v6) yes])
+- elif AC_RUN_LOG([suffix[]5-config --version >/dev/null]); then
++ NCURSES_LIBS=`$SUFFIX[]6_CONFIG --libs`
++ NCURSES_CFLAGS=`$SUFFIX[]6_CONFIG --cflags`
++ else
++ have_[]suffix=no
++ fi
++ ])
++
++ # ncurses5-config
++ #
++ AS_IF([test "x$have_[]suffix" = xno], [
++ AC_CHECK_TOOL(SUFFIX[]5_CONFIG, suffix[]5-config)
++ if AC_RUN_LOG([$SUFFIX[]5_CONFIG --version >/dev/null]); then
+ have_[]suffix=yes
+- NCURSES_LIBS=`suffix[]5-config --libs`
+- NCURSES_CFLAGS=`suffix[]5-config --cflags`
+- AC_MSG_RESULT([(v5) yes])
++ NCURSES_LIBS=`$SUFFIX[]5_CONFIG --libs`
++ NCURSES_CFLAGS=`$SUFFIX[]5_CONFIG --cflags`
+ else
+- AC_MSG_RESULT([no])
+- AS_IF([test "x$have_[]suffix" = xno], [
+- AC_CHECK_LIB([$1], [initscr], [have_[]suffix=yes], [have_[]suffix=no])
+- AS_IF([test "x$have_[]suffix" = xyes], [NCURSES_LIBS="-l[]suffix"])
+- ])
++ have_[]suffix=no
+ fi
+ ])
++
++ # classic autoconf way
++ #
++ AS_IF([test "x$have_[]suffix" = xno], [
++ AS_IF([test "x$have_[]suffix" = xno], [
++ AC_CHECK_LIB([$1], [initscr], [have_[]suffix=yes], [have_[]suffix=no])
++ AS_IF([test "x$have_[]suffix" = xyes], [NCURSES_LIBS="-l[]suffix"])
++ ])
++ ])
+ ])
+--
+2.6.2
+
diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in
index 9b70f9f58d..e957f848bb 100644
--- a/package/util-linux/Config.in
+++ b/package/util-linux/Config.in
@@ -1,6 +1,5 @@
menuconfig BR2_PACKAGE_UTIL_LINUX
bool "util-linux"
- depends on BR2_USE_WCHAR
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
help
Various useful/essential linux libraries and utilities.
@@ -370,6 +369,3 @@ config BR2_PACKAGE_UTIL_LINUX_ZRAMCTL
Set up and control zram devices
endif
-
-comment "util-linux needs a toolchain w/ wchar"
- depends on !BR2_USE_WCHAR
diff --git a/package/util-linux/util-linux.mk b/package/util-linux/util-linux.mk
index 1bf2046974..bec69933a1 100644
--- a/package/util-linux/util-linux.mk
+++ b/package/util-linux/util-linux.mk
@@ -9,6 +9,10 @@ UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR)
UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.xz
UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR)
+# For 0001-build-sys-prefer-pkg-config-for-ncurses.patch and
+# 0002-build-sys-cleanup-UL_NCURSES_CHECK.patch
+UTIL_LINUX_AUTORECONF = YES
+
# README.licensing claims that some files are GPLv2-only, but this is not true.
# Some files are GPLv3+ but only in tests.
UTIL_LINUX_LICENSE = GPLv2+, BSD-4c, LGPLv2.1+ (libblkid, libfdisk, libmount), BSD-3c (libuuid)
@@ -43,8 +47,20 @@ endif
ifeq ($(BR2_PACKAGE_NCURSES),y)
UTIL_LINUX_DEPENDENCIES += ncurses
+ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y)
+UTIL_LINUX_CONF_OPTS += --with-ncursesw
+UTIL_LINUX_CONF_ENV += NCURSESW5_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS)
+else
+UTIL_LINUX_CONF_OPTS += --without-ncursesw --with-ncurses --disable-widechar
+UTIL_LINUX_CONF_ENV += NCURSES5_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS)
+endif
else
-UTIL_LINUX_CONF_OPTS += --without-ncurses
+ifeq ($(BR2_USE_WCHAR),y)
+UTIL_LINUX_CONF_OPTS += --enable-widechar
+else
+UTIL_LINUX_CONF_OPTS += --disable-widechar
+endif
+UTIL_LINUX_CONF_OPTS += --without-ncursesw --without-ncurses
endif
ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
OpenPOWER on IntegriCloud