summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-08-17 09:41:54 -0400
committerMike Frysinger <vapier@gentoo.org>2015-08-17 09:50:49 -0400
commitbadf9b730721ec3c0781588cb7614721db3a045a (patch)
treea849b3c8b7d14faa8f0bb4fa1eaee8c6a4670399 /sys-libs
parentsys-libs/ncurses: block older x11-terms/st #557454 (diff)
downloadgentoo-badf9b730721ec3c0781588cb7614721db3a045a.tar.gz
gentoo-badf9b730721ec3c0781588cb7614721db3a045a.tar.bz2
gentoo-badf9b730721ec3c0781588cb7614721db3a045a.zip
sys-libs/ncurses: rework handling of build-time tic #557834
There are more cases where a version of tic is needed that matches the current version of source beyond cross-compiling. New installs, multilib, and upgrades also run into this case. Drop the cross-compile test and run the code whenever the host version isn't in sync.
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/ncurses/ncurses-6.0.ebuild33
1 files changed, 19 insertions, 14 deletions
diff --git a/sys-libs/ncurses/ncurses-6.0.ebuild b/sys-libs/ncurses/ncurses-6.0.ebuild
index 81c87de9764..39ebaaf6db3 100644
--- a/sys-libs/ncurses/ncurses-6.0.ebuild
+++ b/sys-libs/ncurses/ncurses-6.0.ebuild
@@ -60,27 +60,31 @@ src_configure() {
$(use unicode && usex threads 'ncursestw' '')
)
- # 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
+ 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" \
- do_configure cross --without-shared --with-normal
+ multijob_child_init do_configure cross --without-shared --with-normal
fi
multilib-minimal_src_configure
+ multijob_finish
}
multilib_src_configure() {
local t
- multijob_init
for t in "${NCURSES_TARGETS[@]}" ; do
multijob_child_init do_configure "${t}"
done
- multijob_finish
}
do_configure() {
@@ -152,6 +156,11 @@ do_configure() {
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}
+ fi
# Force bash until upstream rebuilds the configure script with a newer
# version of autotools. #545532
@@ -161,10 +170,9 @@ do_configure() {
}
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
+ # See comments in src_configure.
+ if ! ROOT=/ has_version "~sys-libs/${P}" ; then
+ BUILD_DIR="${WORKDIR}" \
do_compile cross -C progs tic
fi
@@ -199,9 +207,6 @@ do_compile() {
}
multilib_src_install() {
- # use the cross-compiled tic (if need be) #249363
- export PATH="${BUILD_DIR}/cross/progs:${PATH}"
-
local target
for target in "${NCURSES_TARGETS[@]}" ; do
emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install