Fix the inverted leak flag #329537#5 by Arthur Taylor. Fix from upstream for buildin...
authorMike Frysinger <vapier@gentoo.org>
Tue, 31 Mar 2015 04:53:04 +0000 (04:53 +0000)
committerMike Frysinger <vapier@gentoo.org>
Tue, 31 Mar 2015 04:53:04 +0000 (04:53 +0000)
Package-Manager: portage-2.2.18/cvs/Linux x86_64
Manifest-Sign-Key: 0xD2E96200

sys-libs/ncurses/ChangeLog
sys-libs/ncurses/Manifest
sys-libs/ncurses/files/ncurses-5.9-no-I-usr-include.patch [new file with mode: 0644]
sys-libs/ncurses/ncurses-5.9-r4.ebuild [new file with mode: 0644]

index 462e2801fa8717c5c2274868f5b2d3c218499856..38aa2cd63c10dc7c6fc09ab55f5a82306a470c51 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for sys-libs/ncurses
-# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/ncurses/ChangeLog,v 1.231 2014/11/06 19:30:09 mrueg Exp $
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/ncurses/ChangeLog,v 1.232 2015/03/31 04:53:02 vapier Exp $
+
+*ncurses-5.9-r4 (31 Mar 2015)
+
+  31 Mar 2015; Mike Frysinger <vapier@gentoo.org>
+  +files/ncurses-5.9-no-I-usr-include.patch, +ncurses-5.9-r4.ebuild:
+  Fix the inverted leak flag #329537#5 by Arthur Taylor.  Fix from upstream for
+  building with -I/usr/include/ncursesw #522586 by Joakim Tjernlund.
 
   06 Nov 2014; Manuel RĂ¼ger <mrueg@gentoo.org> -files/ncurses-5.6-build.patch,
   -files/ncurses-5.6-gfbsd.patch, -files/ncurses-5.7-emacs.patch,
index a1a49bb520472bf61ae042e224f9800a6f63bbb0..452fe5f3963274f4e0c09799718a841149db8968 100644 (file)
@@ -1,9 +1,31 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
 AUX ncurses-5.7-nongnu.patch 361 SHA256 7efcf3daf57d73e348bea1ea7ee77071aef5338631958fd0db595a011570cec4 SHA512 818a3ac1c68c1a11f23471195a32793c5546c5b37a724989cc58f3fad50fd3c8608762efc5d72e986f3c77ccdfbb72f27224f64ef415a96d71924a9f1d3b1b5f WHIRLPOOL a93e22415092ab51f769e42586813c8fed5b502e1dd86d09844f524876ac025ca81399dde483478087bb6241214f85c29a27f8b4ccadc2aec37be99dc7d6da1b
 AUX ncurses-5.8-gfbsd.patch 695 SHA256 68c405dcd1b2bbad1d4880d906ba9e02ad62691c63edfb363ad767ee01079e82 SHA512 d4c375107415b7eaf5f8e04b697ef16998855b5f1d745766a14a7e9523d12b24d0841e6559217eccf62535f54e0d240eabaa3da1571964f1bb150b0c0cd102a2 WHIRLPOOL 6c2f865bc22a3932f6f973f7b53c5a50254505c4944c656af95c2399933c31acc5d5536d59fe9fe7c59ef537ce0d39ca19c9d0558e4aaacb7122749a575cadac
 AUX ncurses-5.9-fix-clang-build.patch 1291 SHA256 0ffec4dbc7dc4a2356460c2a001b6ffbd8b060ae0afbdf3551a13575c20830d0 SHA512 d911441e2e2e2a752236f1eee42955b43ffabe37e47c337a86562c3708aca1fc2650ce77fe5aa6197eb8e9a67958a4b4db8f4344d22fe15868e25b933b175bb1 WHIRLPOOL d5d363f6d7cdcc350b195066c8183609bd9351a48603acdae2f374af13afb23a7bd05cbac86b13d2162daf5bd895eb5acce4769fce2f0b4b8da2896e00d1f846
+AUX ncurses-5.9-no-I-usr-include.patch 1431 SHA256 496e5dea489d60078344df651c3c2ea06d3dd083d83add0df60dde9104197154 SHA512 a58aec17e4c2edb3f8ed3f414ec6a89afe9f5fcc7cea898774a1fd7e7e892f9b66b1c2bdc74381dd5e8c9cf6968ad922406974f9ece8b38095b29e32d3ff0805 WHIRLPOOL d390ee0439f89dacaa9b5ea5402fc4e6bcf3d48b4bc77c93ff882fcd93f611f99ebd0ae4ce91eea1bec83b4d0191e0ead3361447448a84fc59496e6295116042
 AUX ncurses-5.9-pkg-config.patch 1022 SHA256 8b32d53c4a94eeb78f39c29b1e66813bdb2fd5225f96ab7c26950f96679b58fb SHA512 a5578a4a6c2a334a77084da21d61d4a9edd7b82f027d7f54ed7be194ace5076fe86dc51ada916388feeb970255bf3bfbb09cd33072b1ef21de0dbaa5ee45fdf6 WHIRLPOOL 9056961c1b617ca3286cc4c528a5b5da821a5472da105d82b56c925034454a600e818265627d2f17dbad5184ecf78ea4d14807838bed789ca01a85f39755b656
 AUX ncurses-5.9-rxvt-unicode-9.15.patch 3804 SHA256 ae684be42600ac3bbbf6e7be61e085524f65d86c20da8c453b10c27516e30b27 SHA512 82c0a9600f6ca8f36bbdce6f11a96906983fc9efd6b5f1e17134e12283e29b16d04f5e66c10edbcb7087cc4cb8fc23ddd065f9b6c8b0bf72ca684b68383e5131 WHIRLPOOL 1e2fe441d97671b84f49388555c351b235a93704fb7fcf13c14343db569cc91f21d75b60eb635c4c1c3ad18778bcb50e5aa63d25583224ed644edff35356dd2c
 DIST ncurses-5.9.tar.gz 2826473 SHA256 9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b SHA512 d7c5e54b6d4d8b9211f0006ca8786f7609d180cc1aaebf4f25e7e35e12959779cf66447359a602daed625621ca32b0d910d67aef3eb8b6fdc3c373819a88faa1 WHIRLPOOL 069e98c6392ce9aca960c72a20f1a502387d33a4b237aaeaa95548024ce4d47b129eafbe0288d21c590e725fe71aaca21cacb300f11a660b7234cb39a777672a
 EBUILD ncurses-5.9-r3.ebuild 7079 SHA256 6469e2e8827f6b56e9eec89c4eeb8c27c05896458b3cb5d2e8c0178c4502362f SHA512 7881efb51872705471ba07c9a3b67c1bc2ecec34e54aaa197ee85486a638887a5f64961f824ac4c1cf9da1a18b89ccad6b99d01dd7e213acc135ddb265bec565 WHIRLPOOL 10d50400d41f67c2d8aad059553b7b6f1fc43ec97faa6fbe12d7f9d1b3002fdc466cf2fea84f523a3b70d25c771a02bfb784f93b306c4ca22d5188befbae5089
-MISC ChangeLog 33592 SHA256 aabbcb4927e6474bf72a15a47b2dd4744566046985b4144fa267e3aed958f206 SHA512 f0983eb0486103c40e5dfd350eaaf10a3313855b816bfc61d7015cc51de8d0c4423a61776cb0cdb4780a905de4dbd743adaae97b1e3d172ce688fcd3c82dd745 WHIRLPOOL da98581841d7696527ab21e2a8be1372603fbb589f5c9874cbf3f175baa72d67a2e1d98fd0cd1d5b55511285e53a7e11e0bfd0bbaf9c2ee244e09ec94dead453
+EBUILD ncurses-5.9-r4.ebuild 7148 SHA256 da41ff54909ad719740508bf4fb0efc61cff6ac74d281c7a74a84f3cfed26fe9 SHA512 0519fe87c4fd23ce27f480099a3b41e57b5b3d8a88aa7aef5b1da0bf75ac5910f6bbb4d736bc24c44cddc90344fcd014aae381d2af0c0c8f998affc15350ffcb WHIRLPOOL 42204c64ab87e492fc406606c02fa46af0e902312477ef05c041e13e4c9283a55ad8753510f61fd272da7b4f37e20f3a79fa0cec1e3227de1ded90844bf51a8b
+MISC ChangeLog 33893 SHA256 30bb6ce04962ab99be32a06a31bc20c3d7ac1b6e26b287ee2416ba1ed251c368 SHA512 5756718f9ebd493ba2363844b20974b13cb660760bcd955c676f89ee7aae60315f2e9a5cd32073214f17e63e5b5c39e010d1b8756138799dbf0db1b0fbe65967 WHIRLPOOL 045d0df389982b8bd5c5e9d1f3a4b4343714f9fd328c9277e00eef09138624d9f539dc602eb935face835c3327ef0fdc7dbcd31c6a6864650a6c6949d0d9f4b6
 MISC metadata.xml 530 SHA256 3a0f1bf7ab8ec067416e6535c3270113b53716b12aac504a581acf5b27f8114f SHA512 27d968272c8d184804d9764bb2ec8fb86eb5826bfe14e7f445c7c5f0b89cc7fe4271546a6994d830cb1270fa93f187ded1c96b4f4f1fe1b5c417c78a2082dfd3 WHIRLPOOL 54ff921a2a89b19d6d75830033b7d18c0f7643af248bea029b1a7ebe201eded0eff54dde04858be08903cb6607e7cbcb8ca100712d4992324dbb757184150d44
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAEBCAAGBQJVGigxAAoJEPGu1DbS6WIAQw0QAIayPwTEnTmrjjHsfgxNXLPb
+ZcJHpgy+VuMAGOpipdSPSMjiEDw2/fQIrSliTxYn9rc3plTcvJbrlaoK4Bb+aPeh
+p395PX0vVt6BBj6oliwlsTCzdyj2+2lIwqwgIubj/Erf33KzxAqRhWat9yv4haub
+MX8QIWbBL89Sx1RQJmYqD4coEI4uv9PaGpZ1o6BDYpxPPmhjF+gz2UgN7WlrEeiA
+NHt7RILj4qJxIBvhbFje+Z0JzJY+a1pDQiEOe5fVwN69VxjBm97zFKvXKLRyXj3O
+lzRWN5FroczIdCqbCg6RDjuWigSRV07yl4XaONKcKxyZ8tJSAWlTADdWKkF8eQ5c
+ysO4IuMWqJ6aAZm2Ny7likscfOZ5jKfoBne2jC+DXpjZHe42sM5uiFrgPd+gISXW
+QWpTL/Qhfnj2l53F/BXgcSOwKJeKebkGXoszxQJ+I9JZWOoYPrbKlQva0+hF6iFN
+uCgWEI/WWvhPPagntBGDikEQcZ+mnHE6IwqLndpgLijzC7maidS9PlDk7LJglLAp
+1gT270Aa0lcLrsfUYJTgYds/uOIFXQh00LcgbZW8cPnIaGe2fRENr3aBvitcp+oz
+jq2DkKz0LcUbTSPSvR4vLtcTXSKUftB0CZcfr9qJvNjXrkzbFj7k1gPX3qrLOdaM
+qe9ySJk/1UWymu8Gd15Q
+=/dY1
+-----END PGP SIGNATURE-----
diff --git a/sys-libs/ncurses/files/ncurses-5.9-no-I-usr-include.patch b/sys-libs/ncurses/files/ncurses-5.9-no-I-usr-include.patch
new file mode 100644 (file)
index 0000000..5c968e7
--- /dev/null
@@ -0,0 +1,45 @@
+https://bugs.gentoo.org/522586
+
+delete the -I$includedir paths that get added to CPPFLAGS.  these are never
+needed when building natively or cross-compiling and really get in the way
+in both cases (upgrades/cross-compiling/etc...).
+
+extracted from the upstream change:
+http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff;h=9ee3995474454b7d956885e0fe5c8cac2ae25d42#patch5
+
+--- a/configure
++++ b/configure
+@@ -18596,33 +18596,11 @@ CPPFLAGS="$CPPFLAGS -I. -I../include"
+ if test "$srcdir" != "."; then
+       CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
+ fi
+-if test "$GCC" != yes; then
+-      CPPFLAGS="$CPPFLAGS -I\${includedir}"
+-elif test "$includedir" != "/usr/include"; then
+-      if test "$includedir" = '${prefix}/include' ; then
+-              if test $prefix != /usr ; then
+-                      CPPFLAGS="$CPPFLAGS -I\${includedir}"
+-              fi
+-      else
+-              CPPFLAGS="$CPPFLAGS -I\${includedir}"
+-      fi
+-fi
+ 
+ ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
+ if test "$srcdir" != "."; then
+       ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
+ fi
+-if test "$GCC" != yes; then
+-      ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+-elif test "$includedir" != "/usr/include"; then
+-      if test "$includedir" = '${prefix}/include' ; then
+-              if test $prefix != /usr ; then
+-                      ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+-              fi
+-      else
+-              ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+-      fi
+-fi
+ 
+ ### Build up pieces for makefile rules
+ echo "$as_me:18628: checking default library suffix" >&5
diff --git a/sys-libs/ncurses/ncurses-5.9-r4.ebuild b/sys-libs/ncurses/ncurses-5.9-r4.ebuild
new file mode 100644 (file)
index 0000000..f86fc3b
--- /dev/null
@@ -0,0 +1,225 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/ncurses/ncurses-5.9-r4.ebuild,v 1.1 2015/03/31 04:53:02 vapier Exp $
+
+EAPI="4"
+inherit eutils flag-o-matic toolchain-funcs multilib-minimal
+
+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 ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
+IUSE="ada +cxx debug doc gpm minimal profile static-libs tinfo trace unicode"
+
+DEPEND="gpm? ( sys-libs/gpm )"
+#      berkdb? ( sys-libs/db )"
+RDEPEND="${DEPEND}
+       !<x11-terms/rxvt-unicode-9.06-r3
+       abi_x86_32? (
+               !<=app-emulation/emul-linux-x86-baselibs-20130224-r12
+               !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+       )"
+# Put the MULTILIB_USEDEP on gpm in PDEPEND only to avoid circular deps.
+# We can move it to DEPEND and drop the --with-gpm=libgpm.so.1 from the econf
+# line below once we can assume multilib gpm is available everywhere.
+PDEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
+
+S=${WORKDIR}/${MY_P}
+HOSTTIC_DIR=${WORKDIR}/${P}-host
+
+src_prepare() {
+       [[ -n ${PV_SNAP} ]] && epatch "${WORKDIR}"/${MY_P}-${PV_SNAP}-patch.sh
+       epatch "${FILESDIR}"/${PN}-5.8-gfbsd.patch
+       epatch "${FILESDIR}"/${PN}-5.7-nongnu.patch
+       epatch "${FILESDIR}"/${PN}-5.9-rxvt-unicode-9.15.patch #192083 #383871
+       epatch "${FILESDIR}"/${PN}-5.9-fix-clang-build.patch #417763
+       epatch "${FILESDIR}"/${PN}-5.9-pkg-config.patch
+       epatch "${FILESDIR}"/${P}-no-I-usr-include.patch #522586
+}
+
+src_configure() {
+       unset TERMINFO #115036
+       tc-export_build_env BUILD_{CC,CPP}
+       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 && ! ROOT=/ has_version ~sys-libs/${P} ; then
+               CHOST=${CBUILD} \
+               CFLAGS=${BUILD_CFLAGS} \
+               CXXFLAGS=${BUILD_CXXFLAGS} \
+               CPPFLAGS=${BUILD_CPPFLAGS} \
+               LDFLAGS="${BUILD_LDFLAGS} -static" \
+               BUILD_DIR="${HOSTTIC_DIR}" do_configure cross --without-shared --with-normal
+       fi
+       multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+       do_configure narrowc
+       use unicode && do_configure widec --enable-widec --includedir="${EPREFIX}"/usr/include/ncursesw
+}
+
+do_configure() {
+       ECONF_SOURCE=${S}
+
+       mkdir "${BUILD_DIR}"-$1
+       cd "${BUILD_DIR}"-$1 || die
+       shift
+
+       local conf=(
+               # We need the basic terminfo files in /etc, bug #37026.  We will
+               # add '--with-terminfo-dirs' and then populate /etc/terminfo in
+               # src_install() ...
+               --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
+
+               # Disabled until #245417 is sorted out.
+               #$(use_with berkdb hashed-db)
+
+               # ncurses is dumb and doesn't install .pc files unless pkg-config
+               # is also installed.  Force the tests to go our way.  Note that it
+               # doesn't actually use pkg-config ... it just looks for set vars.
+               --enable-pc-files
+               --with-pkg-config="$(tc-getPKG_CONFIG)"
+               # This path is used to control where the .pc files are installed.
+               PKG_CONFIG_LIBDIR="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
+
+               # Now the rest of the various standard flags.
+               --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)
+               $(multilib_is_native_abi || use_with gpm gpm libgpm.so.1)
+               --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_enable !debug leaks)
+               $(use_with debug expanded)
+               $(use_with !debug macros)
+               $(use_with trace)
+               $(use_with tinfo termlib)
+
+               # The chtype/mmask-t settings below are to retain ABI compat
+               # with ncurses-5.4 so dont change em !
+               --with-chtype=long
+               --with-mmask-t=long
+               --disable-ext-colors
+               --disable-ext-mouse
+               --without-pthread
+               --without-reentrant
+       )
+
+       econf "${conf[@]}" "$@"
+}
+
+src_compile() {
+       # 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 && ! ROOT=/ has_version ~sys-libs/${P} ; then
+               make_flags="-C progs tic"
+               BUILD_DIR="${HOSTTIC_DIR}" do_compile cross
+       fi
+
+       multilib-minimal_src_compile
+}
+
+multilib_src_compile() {
+       make_flags=""
+       multilib_is_native_abi || make_flags="PROGS= "
+       do_compile narrowc
+       use unicode && do_compile widec
+}
+
+do_compile() {
+       cd "${BUILD_DIR}"-$1 || die
+
+       # 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.
+       emake -j1 sources
+       # For some reason, sources depends on pc-files which depends on
+       # compiled libraries which depends on sources which ...
+       # Manually delete the pc-files file so the install step will
+       # create the .pc files we want.
+       rm -f misc/pc-files
+       emake ${make_flags}
+}
+
+multilib_src_install() {
+       # use the cross-compiled tic (if need be) #249363
+       export PATH="${HOSTTIC_DIR}-cross/progs:${PATH}"
+
+       # install unicode version second so that the binaries in /usr/bin
+       # support both wide and narrow
+       cd "${BUILD_DIR}"-narrowc || die
+       emake DESTDIR="${D}" install
+       if use unicode ; then
+               cd "${BUILD_DIR}"-widec || die
+               emake DESTDIR="${D}" install
+       fi
+
+       # Move libncurses{,w} into /lib
+       multilib_is_native_abi && gen_usr_ldscript -a \
+               ncurses \
+               $(usex unicode 'ncursesw' '') \
+               $(use tinfo && usex unicode 'tinfow' '') \
+               $(usev tinfo)
+       if ! tc-is-static-only ; then
+               ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die
+       fi
+       use static-libs || find "${ED}"/usr/ -name '*.a' -a '!' -name '*curses++*.a' -delete
+
+       # Build fails to create this ...
+       dosym ../share/terminfo /usr/$(get_libdir)/terminfo
+}
+
+multilib_src_install_all() {
+#      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 rxvt-unicode screen sun vt{52,100,102,200,220} \
+                                xterm xterm-color xterm-xfree86
+               do
+                       local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
+                       local basedir=$(basename $(dirname "${termfile}"))
+
+                       if [[ -n ${termfile} ]] ; then
+                               dodir /etc/terminfo/${basedir}
+                               mv ${termfile} "${ED}"/etc/terminfo/${basedir}/
+                               dosym ../../../../etc/terminfo/${basedir}/${x} \
+                                       /usr/share/terminfo/${basedir}/${x}
+                       fi
+               done
+#      fi
+
+       echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" > "${T}"/50ncurses
+       doenvd "${T}"/50ncurses
+
+       use minimal && rm -r "${ED}"/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/
+}