summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-libs/Ice/Ice-3.6.2.ebuild1
-rw-r--r--dev-libs/Ice/Ice-3.6.3.ebuild281
-rw-r--r--dev-libs/Ice/Manifest9
-rw-r--r--dev-libs/Ice/files/dont-append-c++11-to-libs-3.6.3.patch12
-rw-r--r--dev-libs/Ice/files/dont-append-c++11-to-libs.patch4
-rw-r--r--dev-libs/Ice/files/dont-separate-c++11-libs.patch4
6 files changed, 304 insertions, 7 deletions
diff --git a/dev-libs/Ice/Ice-3.6.2.ebuild b/dev-libs/Ice/Ice-3.6.2.ebuild
index d9b52c3..2c7a449 100644
--- a/dev-libs/Ice/Ice-3.6.2.ebuild
+++ b/dev-libs/Ice/Ice-3.6.2.ebuild
@@ -56,6 +56,7 @@ pkg_setup() {
src_unpack() {
# prevent ruby-ng.eclass from messing with src_unpack
default
+ cd ${S}
epatch ${FILESDIR}/dont-separate-c++11-libs.patch
epatch ${FILESDIR}/dont-append-c++11-to-libs.patch
}
diff --git a/dev-libs/Ice/Ice-3.6.3.ebuild b/dev-libs/Ice/Ice-3.6.3.ebuild
new file mode 100644
index 0000000..8363be6
--- /dev/null
+++ b/dev-libs/Ice/Ice-3.6.3.ebuild
@@ -0,0 +1,281 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/Ice/Ice-3.5.1.ebuild,v 1.11 2015/04/08 17:51:56 mgorny Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+RUBY_OPTIONAL="yes"
+USE_RUBY="ruby19"
+
+inherit toolchain-funcs versionator python-r1 mono-env ruby-ng db-use
+
+DESCRIPTION="ICE middleware C++ library and generator tools"
+HOMEPAGE="http://www.zeroc.com/"
+SRC_URI="https://github.com/zeroc-ice/ice/archive/v${PV/_/-}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ia64 x86 ~x86-linux ~x64-macos"
+IUSE="doc examples +ncurses mono python ruby test debug c++0x"
+
+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]
+ sys-libs/db:5.1[cxx]
+ sys-libs/db:4.8[cxx]
+ )
+ ~dev-cpp/libmcpp-2.7.2
+ python? ( ${PYTHON_DEPS} )
+ ruby? ( $(ruby_implementation_depend ruby19) )
+ mono? ( dev-lang/mono )
+ !dev-python/IcePy
+ !dev-ruby/IceRuby"
+DEPEND="${RDEPEND}
+ ncurses? ( sys-libs/ncurses sys-libs/readline )
+ test? ( ${PYTHON_DEPS} )"
+
+# 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
+# and they can't be tricked by a symlink. And we also need
+# SUPPORT_PYTHON_ABIS=1 otherwise we can't get pyc/pyo anymore the sane way.
+# TODO: php bindings
+# TODO: java bindings
+
+#overwrite ruby-ng.eclass default
+S="${P,,}"
+S="${WORKDIR}/${S/_/-}"
+
+pkg_setup() {
+ # prevent ruby-ng.eclass from messing with src_unpack
+ :;
+}
+
+src_unpack() {
+ # prevent ruby-ng.eclass from messing with src_unpack
+ default
+ cd ${S}
+ epatch ${FILESDIR}/dont-separate-c++11-libs.patch
+ epatch ${FILESDIR}/dont-append-c++11-to-libs-3.6.3.patch
+}
+
+src_prepare() {
+ sed -i \
+ -e 's|\(install_docdir[[:space:]]*\):=|\1?=|' \
+ -e 's|\(install_configdir[[:space:]]*\):=|\1?=|' \
+ cpp/config/Make.rules || 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"
+
+ sed -i \
+ -e 's|-O2 ||g' \
+ -e 's|-Werror ||g' \
+ cpp/config/Make.rules.Linux || die "sed failed"
+
+ sed -i \
+ -e 's|install-common||' \
+ -e 's|demo||' \
+ {cpp,csharp,php,python,ruby}/Makefile || die "sed failed"
+
+ sed -i \
+ -e 's|-f -root|-f -gacdir $(GAC_DIR) -root|' \
+ csharp/config/Make.rules.cs || die "sed failed"
+
+ # skip mono tests, bug #498484
+ sed -i \
+ -e 's|\(SUBDIRS.*\) test|\1|' \
+ csharp/Makefile || die "sed failed"
+
+ if ! use test ; then
+ sed -i \
+ -e 's|\(SUBDIRS.*\) test|\1|' \
+ {cpp,php,python,ruby}/Makefile || die "sed failed"
+ fi
+}
+
+suitable_db_version() {
+ local tested_slots="5.3 5.1 4.8"
+ for ver in ${tested_slots}; do
+ if [[ -n $(db_findver sys-libs/db:${ver}) ]]; then
+ echo ${ver}
+ return 0
+ fi
+ done
+ die "No suitable BerkDB versions found, aborting"
+}
+
+src_configure() {
+ MAKE_RULES="prefix=\"${ED}/usr\"
+ install_docdir=\"${ED}/usr/share/doc/${PF}\"
+ install_configdir=\"${ED}/usr/share/Ice-${PV}/config\"
+ install_mandir=\"${ED}/usr/share/man\"
+ embedded_runpath_prefix=\"${EPREFIX}/usr\"
+ LP64=yes"
+
+ use ncurses && MAKE_RULES="${MAKE_RULES} USE_READLINE=yes" || MAKE_RULES="${MAKE_RULES} USE_READLINE=no"
+ use debug && MAKE_RULES="${MAKE_RULES} OPTIMIZE=no" || MAKE_RULES="${MAKE_RULES} OPTIMIZE=yes"
+ use c++0x && MAKE_RULES="${MAKE_RULES} CPP11=yes" || MAKE_RULES="${MAKE_RULES} CPP11=no"
+
+ local BERKDB_VERSION="$(suitable_db_version)"
+ MAKE_RULES="${MAKE_RULES} DB_FLAGS=-I$(db_includedir ${BERKDB_VERSION})"
+ sed -i \
+ -e "s|g++|$(tc-getCXX)|" \
+ -e "s|\(CFLAGS[[:space:]]*=\)|\1 ${CFLAGS}|" \
+ -e "s|\(CXXFLAGS[[:space:]]*=\)|\1 ${CXXFLAGS}|" \
+ -e "s|\(LDFLAGS[[:space:]]*=\)|\1 ${LDFLAGS}|" \
+ -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 python ; then
+ S=${S}/python python_copy_sources
+
+ # make a place for the symlink
+ rm -r python/python || die
+ fi
+
+ if use ruby ; then
+ SITERUBY="$(ruby19 -r rbconfig -e 'print Config::CONFIG["sitedir"]')"
+ MAKE_RULES_RB="install_rubydir=\"${ED}/${SITERUBY}\"
+ install_libdir=\"${ED}/${SITERUBY}\""
+
+ # make it use ruby19 only
+ sed -i \
+ -e 's|RUBY = ruby|\019|' \
+ ruby/config/Make.rules || die "sed failed"
+ fi
+
+ MAKE_RULES_CS="GACINSTALL=yes GAC_ROOT=\"${ED}/usr/$(get_libdir)\" GAC_DIR=${EPREFIX}/usr/$(get_libdir)"
+
+ use test && python_export_best
+}
+
+src_compile() {
+ # Do not remove this export or build will break!
+ tc-export CXX
+
+ emake -C cpp ${MAKE_RULES} || die "emake failed"
+
+ if use doc ; then
+ emake -C cpp/doc || die "building docs failed"
+ fi
+
+ if use python ; then
+ building() {
+ emake -C "${BUILD_DIR}" ${MAKE_RULES} || die "emake py-${EPYTHON} failed"
+ }
+ BUILD_DIR=python python_foreach_impl building
+ fi
+
+ if use ruby ; then
+ emake -C ruby ${MAKE_RULES} ${MAKE_RULES_RB} || die "emake ruby failed"
+ fi
+
+ if use mono ; then
+ emake -C csharp ${MAKE_RULES} ${MAKE_RULES_CS} || die "emake csharp failed"
+ fi
+}
+
+src_install() {
+ insinto /usr/share/${P}
+ doins -r slice
+
+ emake -C cpp ${MAKE_RULES} install || die "emake install failed"
+
+ docinto cpp
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples-cpp
+ doins cpp/config/*.cfg
+ doins -r cpp/demo/*
+ fi
+
+ if use doc ; then
+ dohtml -r cpp/doc/reference/*
+ dodoc "${DISTDIR}/${P}.pdf"
+ fi
+
+ if use python ; then
+ installation() {
+ mkdir -p "${D}/$(python_get_sitedir)" || die
+
+ 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"
+ }
+ BUILD_DIR=python python_foreach_impl installation
+
+ docinto python
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples-py
+ doins -r python/demo/*
+ fi
+ fi
+
+ if use ruby ; then
+ dodir "${SITERUBY}"
+ emake -C ruby ${MAKE_RULES} ${MAKE_RULES_RB} install || die "emake ruby install failed"
+
+ docinto ruby
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples-rb
+ doins -r ruby/demo/*
+ fi
+ fi
+
+ if use mono ; then
+ emake -C csharp ${MAKE_RULES} ${MAKE_RULES_CS} install || die "emake csharp install failed"
+
+ # TODO: anyone has an idea what those are for?
+ rm "${ED}"/usr/bin/*.xml
+
+ docinto csharp
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples-cs
+ doins -r csharp/demo/*
+ fi
+ fi
+}
+
+run_tests() {
+ # Run tests through the script interface since Python test runner
+ # fails to exit with non-zero code for some reason.
+
+ pushd "${1}" >/dev/null || die
+ ./allTests.py --script | sh
+ ret=${?}
+ popd >/dev/null || die
+
+ return ${ret}
+}
+
+src_test() {
+ run_tests cpp || die "emake cpp test failed"
+
+ if use python ; then
+ testing() {
+ # tests require that the directory is named 'python'
+ run_tests python || die "emake py-${EPYTHON} test failed"
+ }
+ BUILD_DIR=python python_foreach_impl testing
+ fi
+
+ if use ruby ; then
+ run_tests ruby || die "emake ruby test failed"
+ fi
+
+ if use mono ; then
+ # skip mono tests, bug #498484
+ ewarn "Tests for C# are currently disabled."
+# run_tests csharp || die "emake csharp test failed"
+ fi
+}
diff --git a/dev-libs/Ice/Manifest b/dev-libs/Ice/Manifest
index b98e5b7..72d4a52 100644
--- a/dev-libs/Ice/Manifest
+++ b/dev-libs/Ice/Manifest
@@ -1,4 +1,7 @@
-AUX dont-append-c++11-to-libs.patch 601 SHA256 9848477300fe0fc50a7284e5738792ca985bf5567fab7318fe41ebb9d763f910 SHA512 89dc9c6302e2b3dd1f1fc20c9a7f21a0f3d7be91e05ccc8085278b0f7849e59e82bfa67dfb7e74db7eda9957f96ccd2cdffecf87dd9b94b5df7a421d0095a8da WHIRLPOOL bdd26a1c77186df0ef39859fd93326ed24cb152dc2efa4368baa4b15fb9e05fa8a47b6e110287a4bdc356f308f1e42e620ef10df0d39b5ac247c62f27c3885c1
-AUX dont-separate-c++11-libs.patch 557 SHA256 210d9339611efc642d1071f4f4e8fecf4bd392fa7bab8a1c1617450cea9898b7 SHA512 b20170ef9b670ad5fc7abda68758bd692c49312c0f51c530cfac554c4f365087a7ba4b3e739c6430d34c2486cdb0c473193548e9a84e4c31cb3eb82398335bda WHIRLPOOL 10ef709116afdf9fee7f8a62eed4f4ed3f60cf503e1bcd2889cc9f50303745833d119e963fcbefbeaec3f4ca3a6c4c8e55cd54cd733b65e1c7958fad8a3d330a
+AUX dont-append-c++11-to-libs-3.6.3.patch 353 SHA256 d0413eaacf5f5916eba42d5b05e227814c2b8fdf3a77ec62602da6cfe6c40bb0 SHA512 27a9906ac7689bd457119eb937b255755fec34e32fca2ebfec13e951bce1e9c8bd1135e6158a9bca1a64a55e9a43847d54fee7a302fb0db6c410726a1a345cec WHIRLPOOL b7f487a8153b2e132bef4d9db1ecf525798a70078bac35ce227317485d3317f62326d7f66b41d12ed3e8e55585de9405d1ca5bfa5a8c7be788504de84bbd1255
+AUX dont-append-c++11-to-libs.patch 581 SHA256 8a535e9b7a88f37c13c6f68c935d8f48d996971d6189aa57652ceffc984813b2 SHA512 c542d969dba35eb976ef1a0293fe00597f06db48f2b31a44575beb3961e2d161affa5837ac2003a9db2b59055db4c2db4a28eb989e15224cc56e80e00b8bf68c WHIRLPOOL 4c06a08f71c0c7ecf629a37ac7081220ef148b7d9fd69abe0ecf112ba449e9b84e031611e48502884172570f4f75f14ba9164ceb61df617006c8aacf48a9d7c4
+AUX dont-separate-c++11-libs.patch 537 SHA256 acd69d499f13c743b64113c471e68d0029a9b65c5b032c5cc74f0823e8c9dfeb SHA512 deb33b6819f231a4219e744dc11772ac792b05f41cd887ea00eb92471596563b7cd83973f5013bf0d685be0da77e3d3b6d83012dd08d452a1417b53eb83f0bb2 WHIRLPOOL 3319be0874db00ec4d4cc9d480276e71b0452bd1e652ebcfc6d531a03cdfdb84a9efbb35450a732ea2d39b615d0059d303f73c6ecb423ce6ecfcf4d0e47b6439
DIST Ice-3.6.2.tar.gz 5393239 SHA256 5e9305a5eb6081c8f128d63a5546158594e9f115174fc91208f645dbe2fc02fe SHA512 fb6b70edd551c66ba801a3a0af0d9101206e771e607e2feffa53fdac95215837bedce2f44251f04d1915c02130b1341daf96d3357b13e4b59d4fae01c14d8e5f WHIRLPOOL 84d4991d8d4379242dcdf0ec0b60242c4a72579ce462a40d107a61088deddb7aa703b8a4f342f7c30e8cd35371471ec9e7592fc94132e4917815f111d4ec77a9
-EBUILD Ice-3.6.2.ebuild 7345 SHA256 420c8a38c52fd41b216d24a2c499f318f526bdbba86c4423fdfd437e3b30bba4 SHA512 7afd233e57402a0d4ea3dcbed259e3b5f3ad5cc3436ef20bff343ae6fc64920304e5f027c9f89bbfdbb29d0d2337402f98afabc4f7a638d74d5ed5d694a8f101 WHIRLPOOL f48b5ae1e382d7c022fdece2bbaae9fac9f70e7fd2f6d6751420fce5bd01a8c9f86bcaf192b7e38a370d815be45e350dba39be4da0f9bd36e6d0348982bb9f5e
+DIST Ice-3.6.3.tar.gz 5512741 SHA256 82ff74e6d24d9fa396dbb4d9697dc183b17bc9c3f6f076fecdc05632be80a2dc SHA512 6e17d21f55a8504af87a64c498a0c4d2084ed96a85c7a66d00319324774f671ace6afa03108d8d4e9bedf5fcfc2f3dba247949a27deecacdd0d298bd0bfe0a45 WHIRLPOOL 4e2d50aaf62f805a0c5471ab907c7680607de5fe101c96a740a3bc1b8ddc7ea93d768ba5886b26772647eb173417195bd808399192b2d2c7d5adb40cf38fc95f
+EBUILD Ice-3.6.2.ebuild 7354 SHA256 9e7862faabdf2032560eed8afe9c19a97665dcdc82b673b1db30177732d01878 SHA512 a38bf3ac252179457c09825edcb20602df7e1f4a144263778317eb3cdd2109e9c3d9b2c33ad4348d426fde141b7442137cce8a5bf1ab31683aa3c4f47de0ff28 WHIRLPOOL bef9a08204a1625c90a8d55719ee875f74bcb1bca961ed7d31c58459bc325fb1349dbe17c59c45248efea8fd0e3647e22eb6d4f1fe2e0e9297099058855a3a37
+EBUILD Ice-3.6.3.ebuild 7360 SHA256 9901dae82107ff9f17dfdf173f6ed4f7be77eb6f5e8b8ef81a3a8dcad00b455b SHA512 c127118e80d992173d4fcaa2d34128b74904a0a8c84dc4b0cfc5a476eb04d2ae69cbb8772b9d1577defcd9785796cc4ea6236edf1227eb68c8fea7a406a116dc WHIRLPOOL d42c653f19020bba6117bdea92c1ddcb8643b7f13e88ef6a54cbb70b324cd0580530e519c8cb0270870f4da7592e49a3036e56a5e144677d61f9746f341194ea
diff --git a/dev-libs/Ice/files/dont-append-c++11-to-libs-3.6.3.patch b/dev-libs/Ice/files/dont-append-c++11-to-libs-3.6.3.patch
new file mode 100644
index 0000000..6a469a4
--- /dev/null
+++ b/dev-libs/Ice/files/dont-append-c++11-to-libs-3.6.3.patch
@@ -0,0 +1,12 @@
+diff --git cpp/src/Ice/DynamicLibrary.cpp cpp/src/Ice/DynamicLibrary.cpp
+index d70e14b..721832b 100644
+--- cpp/src/Ice/DynamicLibrary.cpp
++++ cpp/src/Ice/DynamicLibrary.cpp
+@@ -16,7 +16,6 @@
+ #endif
+
+ #if defined(ICE_CPP11) && defined(__GNUC__) && (__GNUC__ < 6) && defined(__GLIBCXX__)
+-# define ICE_LIBSUFFIX "++11"
+ #endif
+
+ using namespace Ice;
diff --git a/dev-libs/Ice/files/dont-append-c++11-to-libs.patch b/dev-libs/Ice/files/dont-append-c++11-to-libs.patch
index 4d9f748..41b3a01 100644
--- a/dev-libs/Ice/files/dont-append-c++11-to-libs.patch
+++ b/dev-libs/Ice/files/dont-append-c++11-to-libs.patch
@@ -1,5 +1,5 @@
---- ice-3.6.2/cpp/src/Ice/DynamicLibrary.cpp
-+++ ice-3.6.2/cpp/src/Ice/DynamicLibrary.cpp
+--- cpp/src/Ice/DynamicLibrary.cpp
++++ cpp/src/Ice/DynamicLibrary.cpp
@@ -89,9 +89,6 @@
if(comma == string::npos)
{
diff --git a/dev-libs/Ice/files/dont-separate-c++11-libs.patch b/dev-libs/Ice/files/dont-separate-c++11-libs.patch
index 2283c0e..4c02df0 100644
--- a/dev-libs/Ice/files/dont-separate-c++11-libs.patch
+++ b/dev-libs/Ice/files/dont-separate-c++11-libs.patch
@@ -1,5 +1,5 @@
---- ice-3.6.2/config/Make.common.rules 2015-06-23 16:30:20.000000000 +0100
-+++ ice-3.6.2/config/Make.common.rules 2015-07-04 17:45:58.061422073 +0100
+--- config/Make.common.rules 2015-06-23 16:30:20.000000000 +0100
++++ config/Make.common.rules 2015-07-04 17:45:58.061422073 +0100
@@ -115,15 +115,6 @@
lp32suffix = /i386-linux-gnu
endif