diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-08-26 13:41:36 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-08-26 14:19:51 -0400 |
commit | 8cc8ae51e676d082f5c785a7463e54773cf96714 (patch) | |
tree | 9c62932767f082345f2d93dcb4092dbfb6779127 /sys-libs/ncurses | |
parent | profiles: stable mask a few dev-python/PyQt5 USE flags (diff) | |
download | gentoo-8cc8ae51e676d082f5c785a7463e54773cf96714.tar.gz gentoo-8cc8ae51e676d082f5c785a7463e54773cf96714.tar.bz2 gentoo-8cc8ae51e676d082f5c785a7463e54773cf96714.zip |
sys-libs/ncurses: rewrite SLOT=5 ebuild #557472
Delete code that doesn't make sense in an ABI-only ebuild,
and backport changes from the ncurses-6 ebuild.
Diffstat (limited to 'sys-libs/ncurses')
-rw-r--r-- | sys-libs/ncurses/ncurses-5.9-r100.ebuild | 186 | ||||
-rw-r--r-- | sys-libs/ncurses/ncurses-5.9-r101.ebuild | 203 |
2 files changed, 203 insertions, 186 deletions
diff --git a/sys-libs/ncurses/ncurses-5.9-r100.ebuild b/sys-libs/ncurses/ncurses-5.9-r100.ebuild deleted file mode 100644 index f37ebf4b98f8..000000000000 --- a/sys-libs/ncurses/ncurses-5.9-r100.ebuild +++ /dev/null @@ -1,186 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -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="https://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 gpm profile tinfo trace unicode" - -DEPEND="gpm? ( sys-libs/gpm )" -# berkdb? ( sys-libs/db )" -# Block the older ncurses that installed all files w/SLOT=5. #557472 -RDEPEND="${DEPEND} - !<sys-libs/ncurses-6:0 - !<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 - epatch "${FILESDIR}"/${P}-gcc-5.patch #545114 -} - -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) - # The configure script uses ldd to parse the linked output which - # is flaky for cross-compiling/multilib/ldd versions/etc... - $(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 - ) - - # Force bash until upstream rebuilds the configure script with a newer - # version of autotools. #545532 - CONFIG_SHELL=/bin/bash 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() { - local lib - cd "${BUILD_DIR}"-narrowc/lib || die - for lib in *5.9; do - newlib.so ${lib} ${lib%%.9} - done - if use unicode ; then - cd "${BUILD_DIR}"-widec/lib || die - for lib in *5.9; do - newlib.so ${lib} ${lib%%.9} - done - fi -} diff --git a/sys-libs/ncurses/ncurses-5.9-r101.ebuild b/sys-libs/ncurses/ncurses-5.9-r101.ebuild new file mode 100644 index 000000000000..00166f61aca9 --- /dev/null +++ b/sys-libs/ncurses/ncurses-5.9-r101.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# This version is just for the ABI .5 library + +EAPI="5" + +inherit eutils toolchain-funcs multilib-minimal multiprocessing + +MY_PV=${PV:0:3} +MY_P=${PN}-${MY_PV} +DESCRIPTION="console display library" +HOMEPAGE="https://www.gnu.org/software/ncurses/ http://dickey.his.com/ncurses/" +SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz" + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="5/5" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" +IUSE="gpm tinfo unicode" + +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" +# Block the ncurses-5 that installs the same lib. #557472 +RDEPEND="${DEPEND} + !<sys-libs/ncurses-6:0" + +S=${WORKDIR}/${MY_P} + +PATCHES=( + "${FILESDIR}"/${PN}-5.8-gfbsd.patch + "${FILESDIR}"/${PN}-5.7-nongnu.patch + "${FILESDIR}"/${PN}-5.9-rxvt-unicode-9.15.patch #192083 #383871 + "${FILESDIR}"/${PN}-5.9-fix-clang-build.patch #417763 + "${FILESDIR}"/${PN}-5.9-pkg-config.patch + "${FILESDIR}"/${P}-no-I-usr-include.patch #522586 + "${FILESDIR}"/${P}-gcc-5.patch #545114 +) + +src_prepare() { + epatch "${PATCHES[@]}" +} + +src_configure() { + unset TERMINFO #115036 + tc-export_build_env BUILD_{CC,CPP} + BUILD_CPPFLAGS+=" -D_GNU_SOURCE" #214642 + + # Build the various variants of ncurses -- narrow, wide, and threaded. #510440 + # Order matters here -- we want unicode/thread versions to come last so that the + # binaries in /usr/bin support both wide and narrow. + # The naming is also important as we use these directly with filenames and when + # checking configure flags. + NCURSES_TARGETS=( + ncurses + $(usex unicode 'ncursesw' '') + ) + + multijob_init + + # When installing ncurses, we have to use a compatible version of tic. + # This comes up when cross-compiling, doing multilib builds, upgrading, + # or installing for the first time. Build a local copy of tic whenever + # the host version isn't available. #249363 #557598 + if ! ROOT=/ has_version "~sys-libs/${P}" ; then + # We can't re-use the multilib BUILD_DIR because we run outside of it. + BUILD_DIR="${WORKDIR}" \ + CHOST=${CBUILD} \ + CFLAGS=${BUILD_CFLAGS} \ + CXXFLAGS=${BUILD_CXXFLAGS} \ + CPPFLAGS=${BUILD_CPPFLAGS} \ + LDFLAGS="${BUILD_LDFLAGS} -static" \ + multijob_child_init do_configure cross --without-shared --with-normal + fi + multilib-minimal_src_configure + multijob_finish +} + +multilib_src_configure() { + local t + for t in "${NCURSES_TARGETS[@]}" ; do + multijob_child_init do_configure "${t}" + done +} + +do_configure() { + local target=$1 + shift + + mkdir "${BUILD_DIR}/${target}" + cd "${BUILD_DIR}/${target}" || die + + 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" + + # Now the rest of the various standard flags. + --without-hashed-db + --disable-pc-files + --with-shared + --without-hashed-db + --without-ada + --without-cxx + --without-cxx-binding + --without-debug + --without-profile + # The configure script uses ldd to parse the linked output which + # is flaky for cross-compiling/multilib/ldd versions/etc... + $(use_with gpm gpm libgpm.so.1) + --disable-termcap + --enable-symlinks + --with-rcs-ids + --with-manpage-format=normal + --enable-const + --enable-colorfgbg + --enable-echo + --disable-warnings + --without-assertions + --enable-leaks + --without-expanded + --with-macros + --without-progs + --without-tests + --without-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,reentrant} + ) + + if [[ ${target} == ncurses*w ]] ; then + conf+=( --enable-widec ) + else + conf+=( --disable-widec ) + fi + # Make sure each variant goes in a unique location. + if [[ ${target} != "ncurses" ]] ; then + conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) + fi + # See comments in src_configure. + if [[ ${target} != "cross" ]] ; then + local tic_path="${WORKDIR}/cross/progs/tic" + [[ -d ${tic_path} ]] && export TIC_PATH=${tic_path} + else + conf+=( --with-progs ) + fi + + # Force bash until upstream rebuilds the configure script with a newer + # version of autotools. #545532 + CONFIG_SHELL=/bin/bash \ + ECONF_SOURCE=${S} \ + econf "${conf[@]}" "$@" +} + +src_compile() { + # See comments in src_configure. + if ! ROOT=/ has_version "~sys-libs/${P}" ; then + BUILD_DIR="${WORKDIR}" \ + do_compile cross -C progs tic + fi + + multilib-minimal_src_compile +} + + +multilib_src_compile() { + local t + for t in "${NCURSES_TARGETS[@]}" ; do + do_compile "${t}" + done +} + +do_compile() { + local target=$1 + shift + + cd "${BUILD_DIR}/${target}" || 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 + emake "$@" +} + +multilib_src_install() { + local target lib + for target in "${NCURSES_TARGETS[@]}" ; do + cd "${BUILD_DIR}/${target}/lib" || die + for lib in *5.9 ; do + newlib.so "${lib}" "${lib%%.9}" + done + done +} |