[dev-libs/Ice] sync with bug 555586

This commit is contained in:
Robert Förster 2016-01-25 20:55:03 +01:00
parent 510a583686
commit 234be834f0
1 changed files with 33 additions and 38 deletions

View File

@ -2,10 +2,9 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
EAPI=6
PYTHON_COMPAT=( python{2_7,3_4} pypy )
MY_S="${WORKDIR}/ice-${PV}"
RUBY_OPTIONAL="yes"
USE_RUBY="ruby22"
@ -14,7 +13,7 @@ PHP_EXT_NAME="IcePHP"
PHP_EXT_INI="yes"
PHP_EXT_ZENDEXT="no"
PHP_EXT_S="${MY_S}/php"
PHP_EXT_S="${S}/php"
PHP_EXT_OPTIONAL_USE=php
USE_PHP="php5-6"
@ -34,17 +33,19 @@ RDEPEND=">=dev-libs/expat-2.0.1
>=app-arch/bzip2-1.0.5
>=dev-libs/openssl-0.9.8o:0
sys-libs/db:5.3[cxx]
~dev-cpp/libmcpp-2.7.2
dev-cpp/libmcpp
python? ( ${PYTHON_DEPS} )
ruby? ( $(ruby_implementation_depend ruby22) )
mono? ( dev-lang/mono )
php? ( >=dev-lang/php-5.3.1 )
php? ( dev-lang/php:5.6 )
!dev-python/IcePy
!dev-ruby/IceRuby"
DEPEND="${RDEPEND}
ncurses? ( sys-libs/ncurses sys-libs/readline )
test? ( ${PYTHON_DEPS} )"
REQUIRED_USE="php_namespaces? ( php )"
# Maintainer notes:
# - yes, we have to do the trickery with the move for the python functions
# since the build and test frameworks deduce various settings from the path
@ -53,11 +54,14 @@ DEPEND="${RDEPEND}
# TODO: java bindings
#overwrite ruby-ng.eclass default
S="${MY_S}"
S="${WORKDIR}/${P/I/i}"
pkg_setup() {
# prevent ruby-ng.eclass from messing with src_unpack
:;
if use ruby && [[ $RUBY_TARGETS != *$( eselect ruby show | awk 'NR==2' | tr -d ' ' )* ]]; then
eerror "/usr/bin/ruby is currently not included in Ice's ruby targets: ${RUBY_TARGETS}."
eerror "Please update it via `eselect ruby`"
die
fi
}
src_unpack() {
@ -67,7 +71,6 @@ src_unpack() {
src_prepare() {
sed -i \
-e 's|\(install_docdir[[:space:]]*\):=|\1?=|' \
-e 's|\(install_configdir[[:space:]]*\):=|\1?=|' \
cpp/config/Make.rules || die "sed failed"
@ -77,8 +80,12 @@ src_prepare() {
php/config/Make.rules.php || die "sed failed"
sed -i \
-e 's|\(install_pythondir[[:space:]]*\):=|\1?=|' \
-e 's|\(install_rubydir[[:space:]]*\):=|\1?=|' \
-e "s|php-config|$(PHPCONFIG)|" \
php/src/IcePHP/Makefile || die "sed failed"
sed -i \
-e 's|\(install_pythondir[[:space:]]*\)=|\1?=|' \
-e 's|\(install_rubydir[[:space:]]*\)=|\1?=|' \
-e 's|\(install_libdir[[:space:]]*\):=|\1?=|' \
{python,ruby}/config/Make.rules || die "sed failed"
@ -110,14 +117,14 @@ src_prepare() {
src_configure() {
MAKE_RULES="prefix=\"${ED}/usr\"
install_docdir=\"${ED}/usr/share/doc/${PF}\"
install_configdir=\"${ED}/usr/share/Ice-${PV}/config\"
install_configdir=\"${ED}/usr/share/${P}/config\"
install_mandir=\"${ED}/usr/share/man\"
embedded_runpath_prefix=\"${EPREFIX}/usr\"
LP64=yes
new_dtags=yes"
use ncurses && OPTIONS="${MAKE_RULES} USE_READLINE=yes" || MAKE_RULES="${MAKE_RULES} USE_READLINE=no"
use debug && OPTIONS"${MAKE_RULES} OPTIMIZE=no" || MAKE_RULES="${MAKE_RULES} OPTIMIZE=yes"
use debug && OPTIONS="${MAKE_RULES} OPTIMIZE=no" || MAKE_RULES="${MAKE_RULES} OPTIMIZE=yes"
local BERKDB_VERSION="5.3"
MAKE_RULES="${MAKE_RULES} DB_FLAGS=-I$(db_includedir ${BERKDB_VERSION})"
@ -129,12 +136,6 @@ src_configure() {
-e "s|\(DB_LIBS[[:space:]]*=\) \-ldb_cxx|\1 -ldb_cxx-$(db_findver sys-libs/db:${BERKDB_VERSION})|" \
cpp/config/Make.rules{,.Linux} python/config/Make.rules || die "sed failed"
if use php ; then
sed -i \
-e "s|php-config|${EPREFIX}/usr/$(get_libdir)/php5.6/bin/php-config|" \
php/src/IcePHP/Makefile || die "sed failed"
fi
if use python ; then
S=${S}/python python_copy_sources
@ -173,12 +174,15 @@ src_compile() {
fi
if use php; then
if use php_namespaces ; then
MAKE_RULES_PHP="${MAKE_RULES_PHP} USE_NAMESPACES=yes"
fi
emake -C php ${MAKE_RULES} ${MAKE_RULES_PHP} || die "emake php failed"
fi
if use python ; then
building() {
emake -C "${BUILD_DIR}" ${MAKE_RULES} || die "emake py-${EPYTHON} failed"
emake -C "${BUILD_DIR}" ${MAKE_RULES} || die "emake python-${EPYTHON} failed"
}
BUILD_DIR=python python_foreach_impl building
fi
@ -188,12 +192,12 @@ src_compile() {
fi
if use mono ; then
emake -C csharp ${MAKE_RULES} ${MAKE_RULES_CS} || die "emake cs failed"
emake -C csharp ${MAKE_RULES} ${MAKE_RULES_CS} || die "emake csharp failed"
fi
}
src_install() {
dodoc README.md
dodoc CHANGELOG*.md README.md
insinto /usr/share/${P}
doins -r slice
@ -215,7 +219,7 @@ src_install() {
doins $(cd php/lib; find ${S}/php/lib/ -name '*.php' -print)
for dir in $( cd ${D}/usr/share/${P}/slice ; ls -1 ); do
mkdir -p ${D}/usr/share/php/${dir}
${D}/usr/bin/slice2php -I${D}/usr/share/${P}/slice/ --all --output-dir ${D}/usr/share/php/${dir} --ice ${D}/usr/share/${P}/slice/${dir}/*
LD_LIBRARY_PATH="${D}/usr/$(get_libdir):${LD_LIBRARY_PATH}" ${D}/usr/bin/slice2php -I${D}/usr/share/${P}/slice/ --all --output-dir ${D}/usr/share/php/${dir} --ice ${D}/usr/share/${P}/slice/${dir}/*
done
local slot
@ -234,27 +238,18 @@ src_install() {
emake -C "${BUILD_DIR}" ${MAKE_RULES} \
install_pythondir="\"${D}/$(python_get_sitedir)\"" \
install_libdir="\"${D}/$(python_get_sitedir)\"" \
install || die "emake py-${EPYTHON} install failed"
install || die "emake python-${EPYTHON} install failed"
}
BUILD_DIR=python python_foreach_impl installation
docinto python
dodoc python/CHANGES python/README
fi
if use ruby ; then
dodir "${SITERUBY}"
emake -C ruby ${MAKE_RULES} ${MAKE_RULES_RB} install || die "emake rb install failed"
docinto ruby
dodoc ruby/CHANGES ruby/README
emake -C ruby ${MAKE_RULES} ${MAKE_RULES_RB} install || die "emake ruyb install failed"
fi
if use mono ; then
emake -C csharp ${MAKE_RULES} ${MAKE_RULES_CS} install || die "emake cs install failed"
docinto csharp
dodoc csharp/CHANGES csharp/README
emake -C csharp ${MAKE_RULES} ${MAKE_RULES_CS} install || die "emake csharp install failed"
fi
}
@ -277,15 +272,15 @@ src_test() {
if use python ; then
testing() {
# tests require that the directory is named 'py'
# tests require that the directory is named 'python'
ln -f -s ../"${BUILD_DIR}"/python python/python || die
run_tests python || die "emake py-${EPYTHON} test failed"
run_tests python || die "emake python-${EPYTHON} test failed"
}
BUILD_DIR=python python_foreach_impl testing
fi
if use ruby ; then
run_tests ruby || die "emake rb test failed"
run_tests ruby || die "emake ruby test failed"
fi
if use mono ; then