summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-10-11 07:30:29 +0000
committerMike Frysinger <vapier@gentoo.org>2009-10-11 07:30:29 +0000
commit82af2b564dd0460e3d81e635709ebeae8fbdc2d6 (patch)
tree00da213dd400b64f91ec454f04f3b240d776b018 /sys-libs/ncurses
parentversion bump (diff)
downloadhistorical-82af2b564dd0460e3d81e635709ebeae8fbdc2d6.tar.gz
historical-82af2b564dd0460e3d81e635709ebeae8fbdc2d6.tar.bz2
historical-82af2b564dd0460e3d81e635709ebeae8fbdc2d6.zip
Add fix from upstream for db issues #245370 by Graham Murray. Fix cross-compiling hang with tic and older ncurses #249363.
Package-Manager: portage-2.2_rc42/cvs/Linux x86_64
Diffstat (limited to 'sys-libs/ncurses')
-rw-r--r--sys-libs/ncurses/ChangeLog9
-rw-r--r--sys-libs/ncurses/Manifest10
-rw-r--r--sys-libs/ncurses/files/ncurses-5.7-hashdb-open.patch88
-rw-r--r--sys-libs/ncurses/ncurses-5.7-r2.ebuild169
4 files changed, 271 insertions, 5 deletions
diff --git a/sys-libs/ncurses/ChangeLog b/sys-libs/ncurses/ChangeLog
index d3d29ed96559..8fbcdd462235 100644
--- a/sys-libs/ncurses/ChangeLog
+++ b/sys-libs/ncurses/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for sys-libs/ncurses
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/ncurses/ChangeLog,v 1.164 2009/10/11 05:38:15 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/ncurses/ChangeLog,v 1.165 2009/10/11 07:30:28 vapier Exp $
+
+*ncurses-5.7-r2 (11 Oct 2009)
+
+ 11 Oct 2009; Mike Frysinger <vapier@gentoo.org> +ncurses-5.7-r2.ebuild,
+ +files/ncurses-5.7-hashdb-open.patch:
+ Add fix from upstream for db issues #245370 by Graham Murray. Fix
+ cross-compiling hang with tic and older ncurses #249363.
11 Oct 2009; Mike Frysinger <vapier@gentoo.org> ncurses-5.6-r2.ebuild:
Force gawk #259510 by Linubie.
diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest
index ee7b6bc67f0c..892e7fcca771 100644
--- a/sys-libs/ncurses/Manifest
+++ b/sys-libs/ncurses/Manifest
@@ -4,18 +4,20 @@ Hash: SHA1
AUX ncurses-5.6-build.patch 265 RMD160 9958f375f7b305f1b8d52b27d9da746be9175263 SHA1 16990ca2cef127711074d70f9d40d256458969e9 SHA256 51cc2319ad1f854500d76ec978897f6af92d31cebb7f454c1fd649568ad4a251
AUX ncurses-5.6-gfbsd.patch 817 RMD160 2d5a96174730a93320e391cb057880df4996854e SHA1 b6798815c44059a00a2bcd4f9f28bbf74dfc0e2d SHA256 d9e94c5068a22d32f52c5db6aadc3793af11bb0c08b006e375921726931e0065
AUX ncurses-5.7-emacs.patch 1934 RMD160 07b7cdb8f0975441e9823959533285f35f31e35c SHA1 c6e4259c455e83e0c166cf89d8c7d23ee77effde SHA256 daf300b7ba0bef6fc685b63f657dc4d864b53da77454129783d767522f1374b0
+AUX ncurses-5.7-hashdb-open.patch 1893 RMD160 4dbe84dc24cd727f17ff591b73b96bc4322bcf1f SHA1 585f0a2512f2ada00ee364b3336e521234c46083 SHA256 f9ab706816b270e06629ace613fcffb8ad78532075dc7ae52e27c77071b2aa66
AUX ncurses-5.7-nongnu.patch 490 RMD160 fc755ed90de37c6492c346c4630d0fd92f720c45 SHA1 1e843d97e0f2640f6eeb2a874ad019e61aa06328 SHA256 d6fbf11c63aa872bf9553f832c8071a161b2c7bc106f0f76c4471b01025c9422
DIST ncurses-5.6-coverity.patch.gz 6196 RMD160 b11682ae9e043be8d6c50f040d8531f80fc26ce8 SHA1 fee27bdd55c1c316248643e168865b55235d79c7 SHA256 3deeef017c739116c17574e7fd235b1b05053f5c50c7bfeeee2e3f8e4332380e
DIST ncurses-5.6.tar.gz 2402592 RMD160 1a878819c43e6426500fd74ccedf0a032ef399d8 SHA1 4d54d8ad0b90fffa2780a0a45edb6fcb027ef18d SHA256 f9cac2b31683a37d65bc37119599752198a0691e462d0d1a252cf9815f5724d5
DIST ncurses-5.7.tar.gz 2445052 RMD160 a19ca026d32255f5a4d22eb006d65182041e0234 SHA1 8233ee56ed84ae05421e4e6d6db6c1fe72ee6797 SHA256 0a9bdea5c7de8ded5c9327ed642915f2cc380753f12d4ad120ef7da3ea3498f4
EBUILD ncurses-5.6-r2.ebuild 4746 RMD160 2d0c4b141d8bc51c7bbe0745817e2d5b4b51147b SHA1 ed1e10beb9f436b298b9f59e6b0b7fdfd3ae144c SHA256 57d0c3a8058ddbb1bbed9d3d65be56b7947aa1e3459fe847de3cce456fa7a61e
EBUILD ncurses-5.7-r1.ebuild 4511 RMD160 337ebf710ea03791b4a13aa52615cd03ccf9c7b4 SHA1 4c4e091d14dd481011d7911c1e5ec6bb41d33848 SHA256 8e771b299a6b87e6fb8597fcf3756b5890aeb92d002f18fe9eafd04b0f9ed40b
-MISC ChangeLog 23889 RMD160 fa1432f5526fa93c412d0407269a58eed40fafde SHA1 0290695c73cc26c4cd92d1e7fdd559663d734272 SHA256 95b0a6a642e111ac0d9553861f4735180f11497301a47746aaad0f1b6b4c2b89
+EBUILD ncurses-5.7-r2.ebuild 5090 RMD160 f53727b590b388731b4dd537e5f59518e9813f9e SHA1 b6f71906cb2826efaa01798e33f8b0843d2bcd88 SHA256 ebc3ab1232246f541835f061185a7a104fd4944260895afe3a04b2b7928f1b5e
+MISC ChangeLog 24162 RMD160 9fed28d97358969c01287bde2d6b8e4e07440692 SHA1 91fecacfeb400b8e207fb8cd41e82f82e36577c3 SHA256 0867c1b052d49ac4ad0be20bb00705af274455b24cea00f848468f59977f4a16
MISC metadata.xml 320 RMD160 cd60b146f09101932293157c33ac98f273c92783 SHA1 47c720e1ec7ce4a1c4de36edeac9cfd10004bbae SHA256 906f778ea6ad65cad63404d3bd4126d32dcaef8fa0dd81d0108fd20630594779
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (GNU/Linux)
-iEYEARECAAYFAkrRb00ACgkQlPl3HsVfCDoBHwCcDI2ryKzv4wnzY0e8dhPahCVJ
-/lMAn0aMY/JX9sRRyqyNE6HT4ykbhzX+
-=00qC
+iEYEARECAAYFAkrRiZoACgkQlPl3HsVfCDrQoQCdGaAzkRwdxaEpVdPVoQlqC0MZ
+aiAAnjAyc0aQOFTV7g54AiGsmcsmClJf
+=4nu2
-----END PGP SIGNATURE-----
diff --git a/sys-libs/ncurses/files/ncurses-5.7-hashdb-open.patch b/sys-libs/ncurses/files/ncurses-5.7-hashdb-open.patch
new file mode 100644
index 000000000000..d2575fd45cce
--- /dev/null
+++ b/sys-libs/ncurses/files/ncurses-5.7-hashdb-open.patch
@@ -0,0 +1,88 @@
+http://bugs.gentoo.org/245370
+
+ripped from ncurses-5.7-20081213.patch
+
+20081213
+ + add check for failure to open hashed-database needed for db4.6
+ (GenToo #245370).
+
+--- ncurses-5.7-20081206+/ncurses/tinfo/hashed_db.c 2006-08-19 19:48:38.000000000 +0000
++++ ncurses-5.7-20081213/ncurses/tinfo/hashed_db.c 2008-12-13 20:59:02.000000000 +0000
+@@ -49,27 +49,30 @@
+ _nc_db_open(const char *path, bool modify)
+ {
+ DB *result = 0;
++ int code;
+
+ #if HASHED_DB_API >= 4
+ db_create(&result, NULL, 0);
+- result->open(result,
+- NULL,
+- path,
+- NULL,
+- DB_HASH,
+- modify ? DB_CREATE : DB_RDONLY,
+- 0644);
++ if ((code = result->open(result,
++ NULL,
++ path,
++ NULL,
++ DB_HASH,
++ modify ? DB_CREATE : DB_RDONLY,
++ 0644)) != 0) {
++ result = 0;
++ }
+ #elif HASHED_DB_API >= 3
+ db_create(&result, NULL, 0);
+- result->open(result,
+- path,
+- NULL,
+- DB_HASH,
+- modify ? DB_CREATE : DB_RDONLY,
+- 0644);
++ if ((code = result->open(result,
++ path,
++ NULL,
++ DB_HASH,
++ modify ? DB_CREATE : DB_RDONLY,
++ 0644)) != 0) {
++ result = 0;
++ }
+ #elif HASHED_DB_API >= 2
+- int code;
+-
+ if ((code = db_open(path,
+ DB_HASH,
+ modify ? DB_CREATE : DB_RDONLY,
+@@ -77,21 +80,22 @@
+ (DB_ENV *) 0,
+ (DB_INFO *) 0,
+ &result)) != 0) {
+- T(("cannot open %s: %s", path, strerror(code)));
+ result = 0;
+- } else {
+- T(("opened %s", path));
+ }
+ #else
+- result = dbopen(path,
+- modify ? (O_CREAT | O_RDWR) : O_RDONLY,
+- 0644,
+- DB_HASH,
+- NULL);
++ if ((result = dbopen(path,
++ modify ? (O_CREAT | O_RDWR) : O_RDONLY,
++ 0644,
++ DB_HASH,
++ NULL)) == 0) {
++ code = errno;
++ }
++#endif
+ if (result != 0) {
+ T(("opened %s", path));
++ } else {
++ T(("cannot open %s: %s", path, strerror(code)));
+ }
+-#endif
+ return result;
+ }
+
diff --git a/sys-libs/ncurses/ncurses-5.7-r2.ebuild b/sys-libs/ncurses/ncurses-5.7-r2.ebuild
new file mode 100644
index 000000000000..519ced50af3a
--- /dev/null
+++ b/sys-libs/ncurses/ncurses-5.7-r2.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/ncurses/ncurses-5.7-r2.ebuild,v 1.1 2009/10/11 07:30:28 vapier Exp $
+
+EAPI="1"
+inherit eutils flag-o-matic toolchain-funcs
+
+MY_PV=${PV:0:3}
+PV_SNAP=${PV:4}
+MY_P=${PN}-${MY_PV}
+DESCRIPTION="console display library"
+HOMEPAGE="http://www.gnu.org/software/ncurses/ http://dickey.his.com/ncurses/"
+SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="5"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
+IUSE="ada +cxx debug doc gpm minimal profile trace unicode"
+
+DEPEND="gpm? ( sys-libs/gpm )"
+# berkdb? ( sys-libs/db )"
+
+S=${WORKDIR}/${MY_P}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ [[ -n ${PV_SNAP} ]] && epatch "${WORKDIR}"/${MY_P}-${PV_SNAP}-patch.sh
+ epatch "${FILESDIR}"/${PN}-5.6-gfbsd.patch
+ epatch "${FILESDIR}"/${PN}-5.7-emacs.patch #270527
+ epatch "${FILESDIR}"/${PN}-5.7-nongnu.patch
+ epatch "${FILESDIR}"/${P}-hashdb-open.patch #245370
+}
+
+src_compile() {
+ unset TERMINFO #115036
+ tc-export BUILD_CC
+ export BUILD_CPPFLAGS+=" -D_GNU_SOURCE" #214642
+
+ # when cross-compiling, we need to build up our own tic
+ # because people often don't keep matching host/target
+ # ncurses versions #249363
+ if tc-is-cross-compiler ; then
+ make_flags="-C progs tic"
+ CHOST=${CBUILD} \
+ CFLAGS=${BUILD_CFLAGS} \
+ CXXFLAGS=${BUILD_CXXFLAGS} \
+ CPPFLAGS=${BUILD_CPPFLAGS} \
+ LDFLAGS="${BUILD_LDFLAGS} -static" \
+ do_compile cross --without-shared
+ fi
+
+ make_flags=""
+ do_compile narrowc
+ use unicode && do_compile widec --enable-widec --includedir=/usr/include/ncursesw
+}
+do_compile() {
+ ECONF_SOURCE=${S}
+
+ mkdir "${WORKDIR}"/$1
+ cd "${WORKDIR}"/$1
+ shift
+
+ # The chtype/mmask-t settings below are to retain ABI compat
+ # with ncurses-5.4 so dont change em !
+ local conf_abi="
+ --with-chtype=long \
+ --with-mmask-t=long \
+ --disable-ext-colors \
+ --disable-ext-mouse \
+ --without-pthread \
+ --without-reentrant \
+ "
+ # We need the basic terminfo files in /etc, bug #37026. We will
+ # add '--with-terminfo-dirs' and then populate /etc/terminfo in
+ # src_install() ...
+# $(use_with berkdb hashed-db)
+ econf \
+ --libdir="/$(get_libdir)" \
+ --with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo" \
+ --with-shared \
+ --without-hashed-db \
+ $(use_with ada) \
+ $(use_with cxx) \
+ $(use_with cxx cxx-binding) \
+ $(use_with debug) \
+ $(use_with profile) \
+ $(use_with gpm) \
+ --disable-termcap \
+ --enable-symlinks \
+ --with-rcs-ids \
+ --with-manpage-format=normal \
+ --enable-const \
+ --enable-colorfgbg \
+ --enable-echo \
+ $(use_enable !ada warnings) \
+ $(use_with debug assertions) \
+ $(use_with !debug leaks) \
+ $(use_with debug expanded) \
+ $(use_with !debug macros) \
+ $(use_with trace) \
+ ${conf_abi} \
+ "$@" \
+ || die "configure failed"
+
+ # A little hack to fix parallel builds ... they break when
+ # generating sources so if we generate the sources first (in
+ # non-parallel), we can then build the rest of the package
+ # in parallel. This is not really a perf hit since the source
+ # generation is quite small. -vapier
+ emake -j1 sources || die "make sources failed"
+ emake ${make_flags} || die "make ${make_flags} failed"
+}
+
+src_install() {
+ # use the cross-compiled tic (if need be) #249363
+ export PATH=${WORKDIR}/cross/progs:${PATH}
+
+ # install unicode version second so that the binaries in /usr/bin
+ # support both wide and narrow
+ cd "${WORKDIR}"/narrowc
+ emake DESTDIR="${D}" install || die "make narrowc install failed"
+ if use unicode ; then
+ cd "${WORKDIR}"/widec
+ emake DESTDIR="${D}" install || die "make widec install failed"
+ fi
+
+ # Move static and extraneous ncurses libraries out of /lib
+ dodir /usr/$(get_libdir)
+ cd "${D}"/$(get_libdir)
+ mv lib{form,menu,panel}.so* *.a "${D}"/usr/$(get_libdir)/
+ gen_usr_ldscript lib{,n}curses.so
+ if use unicode ; then
+ mv lib{form,menu,panel}w.so* "${D}"/usr/$(get_libdir)/
+ gen_usr_ldscript libncursesw.so
+ fi
+
+# if ! use berkdb ; then
+ # We need the basic terminfo files in /etc, bug #37026
+ einfo "Installing basic terminfo files in /etc..."
+ for x in ansi console dumb linux rxvt screen sun vt{52,100,102,200,220} \
+ xterm xterm-color xterm-xfree86
+ do
+ local termfile=$(find "${D}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
+ local basedir=$(basename $(dirname "${termfile}"))
+
+ if [[ -n ${termfile} ]] ; then
+ dodir /etc/terminfo/${basedir}
+ mv ${termfile} "${D}"/etc/terminfo/${basedir}/
+ dosym ../../../../etc/terminfo/${basedir}/${x} \
+ /usr/share/terminfo/${basedir}/${x}
+ fi
+ done
+
+ # Build fails to create this ...
+ dosym ../share/terminfo /usr/$(get_libdir)/terminfo
+# fi
+
+ echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" > "${T}"/50ncurses
+ doenvd "${T}"/50ncurses
+
+ use minimal && rm -r "${D}"/usr/share/terminfo*
+ # Because ncurses5-config --terminfo returns the directory we keep it
+ keepdir /usr/share/terminfo #245374
+
+ cd "${S}"
+ dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
+ use doc && dohtml -r doc/html/
+}