Pārlūkot izejas kodu

ncurses: fix hanging installation due to old version of tic

Closes #3685

During installation of ncurses, the 'tic' program from the host is used. In
some cases, this version of tic is too old for the data to be processed, and
the installation hangs indefinitely (already reported in July 2010, see [1])

With this patch, a static version of tic is built and used during the
installation step of target ncurses. This method is based on a similar fix
in Gentoo Linux (see [2] for the report and [3] for the solution).

[1] http://lists.busybox.net/pipermail/buildroot/2010-July/036100.html
[2] http://bugs.gentoo.org/show_bug.cgi?id=249363#c25
[3] http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-libs/ncurses/ncurses-5.7-r2.ebuild

[Peter: Install into host, don't tweak path]
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Thomas De Schampheleire 14 gadi atpakaļ
vecāks
revīzija
bf446513e7
2 mainītis faili ar 18 papildinājumiem un 2 dzēšanām
  1. 3 2
      CHANGES
  2. 15 0
      package/ncurses/ncurses.mk

+ 3 - 2
CHANGES

@@ -7,11 +7,12 @@
 	(broken).
 
 	Updated/fixed packages: barebox, directfb, libsoup,
-	libxml-parser-perl, mtd, python, ti-utils, udev, usbmount,
-	util-linux, xfont_font-misc-misc
+	libxml-parser-perl, mtd, ncurses, python, ti-utils, udev,
+	usbmount, util-linux, xfont_font-misc-misc
 
 	Issues resolved (http://bugs.uclibc.org):
 
+	#3685: ncurses installation hangs due to old version of tic
 	#4093: Grub fails to install bz2 patch after conversion to...
 
 2011.08-rc1, Released August 4th, 2011:

+ 15 - 0
package/ncurses/ncurses.mk

@@ -26,6 +26,7 @@
 NCURSES_VERSION = 5.7
 NCURSES_SITE = $(BR2_GNU_MIRROR)/ncurses
 NCURSES_INSTALL_STAGING = YES
+NCURSES_DEPENDENCIES = host-ncurses
 
 NCURSES_CONF_OPT = \
 	--with-shared \
@@ -120,4 +121,18 @@ define NCURSES_INSTALL_TARGET_CMDS
 	$(NCURSES_INSTALL_TARGET_DEVFILES)
 endef # NCURSES_INSTALL_TARGET_CMDS
 
+#
+# On systems with an older version of tic, the installation of ncurses hangs
+# forever. To resolve the problem, build a static version of tic on host
+# ourselves, and use that during installation.
+#
+define HOST_NCURSES_BUILD_CMDS
+	$(MAKE1) -C $(@D) sources
+	$(MAKE) -C $(@D)/progs tic
+endef
+
+HOST_NCURSES_CONF_OPT = \
+	--without-shared
+
 $(eval $(call AUTOTARGETS,package,ncurses))
+$(eval $(call AUTOTARGETS,package,ncurses,host))