From 13e756ec8b582e168a5efdd3abfaaf3d419a961e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20F=C3=B6rster?= Date: Tue, 13 Aug 2019 11:01:19 +0200 Subject: [PATCH] [dev-libs/Ice] prepare for 3.6.5 --- dev-libs/Ice/Ice-3.6.4.ebuild | 327 ------------------ dev-libs/Ice/Ice-3.6.9999.ebuild | 4 +- dev-libs/Ice/files/Ice-3.6.4-php72.patch | 94 ----- ....4-csharp.patch => Ice-3.6.5-csharp.patch} | 16 +- ...ce-3.6.4-db6.patch => Ice-3.6.5-db6.patch} | 0 5 files changed, 10 insertions(+), 431 deletions(-) delete mode 100644 dev-libs/Ice/Ice-3.6.4.ebuild delete mode 100644 dev-libs/Ice/files/Ice-3.6.4-php72.patch rename dev-libs/Ice/files/{Ice-3.6.4-csharp.patch => Ice-3.6.5-csharp.patch} (76%) rename dev-libs/Ice/files/{Ice-3.6.4-db6.patch => Ice-3.6.5-db6.patch} (100%) diff --git a/dev-libs/Ice/Ice-3.6.4.ebuild b/dev-libs/Ice/Ice-3.6.4.ebuild deleted file mode 100644 index 751a254..0000000 --- a/dev-libs/Ice/Ice-3.6.4.ebuild +++ /dev/null @@ -1,327 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python{2_7,3_5,3_6} pypy ) - -RUBY_OPTIONAL="yes" -USE_RUBY="ruby25" - -PHP_EXT_NAME="IcePHP" -PHP_EXT_INI="yes" -PHP_EXT_ZENDEXT="no" - -PHP_EXT_OPTIONAL_USE=php - -USE_PHP="php7-2" - -# This variable does not belong to any eclass. It is solely used in this ebuild -BERKDB_SLOTS=( 6.2 6.1 5.3 5.1 4.8 ) - -inherit db-use eapi7-ver mono-env php-ext-source-r3 python-r1 ruby-ng toolchain-funcs - -DESCRIPTION="ICE middleware C++ library and generator tools" -HOMEPAGE="https://zeroc.com/products/ice" -LICENSE="GPL-2" -SLOT="0/36" -KEYWORDS="~amd64 ~arm ~x86" -IUSE="debug doc examples libressl +readline mono php python ruby test" -RESTRICT="test" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -RDEPEND=">=dev-libs/expat-2.0.1 - >=app-arch/bzip2-1.0.5 - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - || ( - $(for slot in ${BERKDB_SLOTS[@]} ; do printf '%s\n' "sys-libs/db:${slot}[cxx]" ; done) - ) - dev-cpp/libmcpp - python? ( ${PYTHON_DEPS} ) - ruby? ( $(ruby_implementation_depend ruby25) ) - mono? ( dev-lang/mono )" -DEPEND="${RDEPEND} - readline? ( sys-libs/readline:0= ) - test? ( - ${PYTHON_DEPS} - dev-python/passlib[${PYTHON_USEDEP}] - )" - -# Maintainer notes: -# TODO: java bindings - -S="${WORKDIR}/${P/I/i}" -PHP_EXT_S="${S}/php" - -PATCHES=( - "${FILESDIR}/${PN}-3.6.3-no-arch-opts.patch" - "${FILESDIR}/${P}-db6.patch" - "${FILESDIR}/${P}-csharp.patch" - "${FILESDIR}/${P}-php72.patch" -) - -pkg_setup() { - # prevent ruby-ng.eclass from messing with pkg_setup - return -} - -src_unpack() { - # prevent ruby-ng.eclass from messing with src_unpack - default -} - -src_prepare() { - default - - sed -i \ - -e 's|-L\$\(libdir\)||' \ - cpp/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||' \ - {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 '/SUBDIRS/s|\ test||' \ - csharp/Makefile || die "sed failed" - - # skip udp test due to multicast - # skip IceGrid/admin bug #649850 - # skip IceSSL tests due to requirement of internet connection - # skip IceStorm/single bug #636834 - # IceUtil/stacktrace fails with USE=debug - sed -i \ - -e 's|allTests.py|allTests.py --rfilter=udp --rfilter=IceGrid\/admin --rfilter=IceSSL --rfilter=IceStorm\/single --rfilter=IceUtil\/stacktrace|' \ - cpp/Makefile || die "sed failed" - - # mainly broken .ice files - sed -i \ - -e 's|allTests.py|allTests.py --rfilter=operations --rfilter=slicing\/objects|' \ - python/Makefile || die "sed failed" -} - -src_configure() { - suitable_db_version() { - local ver - for ver in "${BERKDB_SLOTS[@]}"; do - if [[ -n $(db_findver sys-libs/db:${ver}) ]]; then - echo "${ver}" - return 0 - fi - done - die "No suitable BerkDB versions found, aborting" - } - - MAKE_RULES=( - "prefix=\"${ED%/}/usr\"" - "install_docdir=\"${ED%/}/usr/share/doc/${PF}\"" - "install_configdir=\"${ED%/}/usr/share/${P}/config\"" - "install_mandir=\"${ED%/}/usr/share/man/man1\"" - "embedded_runpath_prefix=\"${EPREFIX}/usr\"" - "LP64=yes" - "new_dtags=yes" - "NOTEST=$(usex !test)" - "USE_READLINE=$(usex readline)" - "OPTIMIZE=$(usex !debug)" - ) - - local BERKDB_VERSION="$(suitable_db_version)" - 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 - local S="${S}/python" - python_copy_sources - fi - - if use ruby; then - SITERUBY="$(ruby25 -r rbconfig -e 'print RbConfig::CONFIG["sitelibdir"]')" - SITERUBYARCH="$(ruby25 -r rbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')" - MAKE_RULES_RUBY=( - "install_rubydir=\"${ED%/}/${SITERUBY}\"" - "install_libdir=\"${ED%/}/${SITERUBYARCH}\"" - ) - - # make it use ruby25 only - sed -i \ - -e 's|RUBY = ruby|\025|' \ - ruby/config/Make.rules || die "sed failed" - sed -i \ - -e 's|env ruby|\025|' \ - ruby/config/s2rb.rb || die "sed failed" - sed -i \ - -e 's|env ruby|\025|' \ - ruby/scripts/slice2rb || die "sed failed" - sed -i \ - -e 's|output.write("ruby|\025|' \ - scripts/TestUtil.py || die "sed failed" - fi - - MAKE_RULES_MONO=( - "GACINSTALL=yes" - "GAC_ROOT=\"${ED%/}/usr/$(get_libdir)\"" - "GAC_DIR=\"${EPREFIX}/usr/$(get_libdir)\"" - "install_libdir=\"${ED%/}/usr/$(get_libdir)\"" - "install_pkgconfigdir=\"${ED%/}/usr/$(get_libdir)/pkgconfig\"" - ) - - if has_version ">dev-lang/mono-4"; then - MAKE_RULES_MONO+=("MCS=mcs") - fi - - use test && python_setup -} - -src_compile() { - # Do not remove this export or build will break! - tc-export CXX - - emake -C cpp "${MAKE_RULES[@]}" - - if use php; then - local i - for i in $(php_get_slots); do - mkdir -p "${WORKDIR}/${i}" || die - cp -r "${PHP_EXT_S}" "${WORKDIR}/${i}/" || die "Failed to copy source ${PHP_EXT_S} to PHP target directory" - - pushd "${WORKDIR}/${i}" >/dev/null || die - ln -s "${S}/cpp" || die - ln -s "${S}/config" || die - ln -s "${S}/slice" || die - ln -s "${S}/Makefile" || die - - emake -C php "${MAKE_RULES[@]}" USE_NAMESPACES=yes "PHP_CONFIG=\"${EPREFIX}/usr/$(get_libdir)/${i}/bin/php-config\"" - popd >/dev/null || die - done - fi - - if use python; then - building() { - emake -C "${BUILD_DIR}" "${MAKE_RULES[@]}" PYTHON="${EPYTHON}" - } - local S="${S}/python" - python_foreach_impl building - fi - - if use ruby; then - emake -C ruby "${MAKE_RULES[@]}" "${MAKE_RULES_RUBY[@]}" - fi - - if use mono; then - emake -C csharp "${MAKE_RULES[@]}" "${MAKE_RULES_MONO[@]}" - fi -} - -src_test() { - local -x LD_LIBRARY_PATH="${S}/cpp/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake -C cpp "${MAKE_RULES[@]}" test - - # php tests require the extension loaded and are therefore skipped - - if use python; then - testing() { - PYTHONPATH="${BUILD_DIR}"/python emake -C "${BUILD_DIR}" \ - "${MAKE_RULES[@]}" \ - PYTHON="${EPYTHON}" \ - install_pythondir="\"${D%/}/$(python_get_sitedir)\"" \ - install_libdir="\"${D%/}/$(python_get_sitedir)\"" test - } - local S="${S}/python" - python_foreach_impl testing - fi - - if use ruby; then - emake -C ruby "${MAKE_RULES[@]}" "${MAKE_RULES_RUBY[@]}" test - fi - - if use mono; then - # skip mono tests, bug #498484 - ewarn "Tests for C# are currently disabled." - #emake -C csharp "${MAKE_RULES[@]}" "${MAKE_RULES_MONO[@]}" test - fi -} - -src_install() { - local DOCS=( CHANGELOG*.md README.md ) - einstalldocs - - insinto /usr/share/${P} - doins -r slice - - emake -C cpp "${MAKE_RULES[@]}" install - - if use examples; then - docinto examples-cpp - dodoc cpp/config/*.cfg - docompress -x /usr/share/doc/${PF}/examples-cpp - fi - - if use php; then - insinto "/usr/share/php/${PN}" - - local i - while IFS="" read -d $'\0' -r i; do - doins "${i}" - done < <(find "${S}/php/lib/" -name '*.php' -print0) - - pushd "${ED%/}/usr/share/${P}/slice" >/dev/null || die - - local -x LD_LIBRARY_PATH="${ED%/}/usr/$(get_libdir):${LD_LIBRARY_PATH}" - for i in *; do - mkdir -p "${ED%/}/usr/share/php/${i}" || die - "${ED%/}"/usr/bin/slice2php \ - -I"${ED%/}/usr/share/${P}/slice/" --all \ - --output-dir "${ED%/}/usr/share/php/${i}" \ - --ice "${ED%/}/usr/share/${P}/slice/${i}"/* - done - - for i in $(php_get_slots); do - php_init_slot_env "${i}" - insinto "${EXT_DIR}" - newins "php/lib/${PHP_EXT_NAME}.so" "${PHP_EXT_NAME}.so" - done - php-ext-source-r3_createinifiles - - popd >/dev/null || die - 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 - } - local S="${S}/python" - python_foreach_impl installation - fi - - if use ruby; then - dodir "${SITERUBY}" - emake -C ruby "${MAKE_RULES[@]}" "${MAKE_RULES_RUBY[@]}" install - fi - - if use mono; then - emake -C csharp "${MAKE_RULES[@]}" "${MAKE_RULES_MONO[@]}" install - fi -} diff --git a/dev-libs/Ice/Ice-3.6.9999.ebuild b/dev-libs/Ice/Ice-3.6.9999.ebuild index 350ce52..6ffb44e 100644 --- a/dev-libs/Ice/Ice-3.6.9999.ebuild +++ b/dev-libs/Ice/Ice-3.6.9999.ebuild @@ -63,8 +63,8 @@ PHP_EXT_S="${S}/php" PATCHES=( "${FILESDIR}/${PN}-3.6.3-no-arch-opts.patch" - "${FILESDIR}/${PN}-3.6.4-db6.patch" - "${FILESDIR}/${PN}-3.6.4-csharp.patch" + "${FILESDIR}/${PN}-3.6.5-db6.patch" + "${FILESDIR}/${PN}-3.6.5-csharp.patch" ) pkg_setup() { diff --git a/dev-libs/Ice/files/Ice-3.6.4-php72.patch b/dev-libs/Ice/files/Ice-3.6.4-php72.patch deleted file mode 100644 index 1c0b1f8..0000000 --- a/dev-libs/Ice/files/Ice-3.6.4-php72.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 8d39266c45d5384a5744d97897ed01b4170120ec Mon Sep 17 00:00:00 2001 -From: Mark Spruiell -Date: Fri, 9 Feb 2018 08:11:29 -0800 -Subject: [PATCH] ICE-8636 - fixes for PHP 7.2 compatibility - ---- - php/src/php7/Operation.cpp | 24 +++++++++++++----------- - php/src/php7/Types.cpp | 12 ++++++++++++ - 2 files changed, 25 insertions(+), 11 deletions(-) - -diff --git a/php/src/php7/Operation.cpp b/php/src/php7/Operation.cpp -index 1c1d2a44ab..05625d0037 100644 ---- a/php/src/php7/Operation.cpp -+++ b/php/src/php7/Operation.cpp -@@ -384,22 +384,24 @@ IcePHP::OperationI::convertParam(zval* p, int pos) - void - IcePHP::OperationI::getArgInfo(zend_internal_arg_info& arg, const ParamInfoPtr& info, bool out) - { -- arg.name = 0; -- arg.class_name = 0; -- arg.allow_null = 1; -- -- if(!info->optional) -+ const zend_uchar pass_by_ref = out ? 1 : 0; -+ const zend_bool allow_null = 1; -+ if(!info->optional && (SequenceInfoPtr::dynamicCast(info->type) || DictionaryInfoPtr::dynamicCast(info->type))) - { -- const bool isArray = SequenceInfoPtr::dynamicCast(info->type) || DictionaryInfoPtr::dynamicCast(info->type); -- arg.type_hint = isArray ? IS_ARRAY : 0; -- -+ zend_internal_arg_info ai[] = -+ { -+ ZEND_ARG_ARRAY_INFO(pass_by_ref, 0, allow_null) -+ }; -+ arg = ai[0]; - } - else - { -- arg.type_hint = 0; -+ zend_internal_arg_info ai[] = -+ { -+ ZEND_ARG_CALLABLE_INFO(pass_by_ref, 0, allow_null) -+ }; -+ arg = ai[0]; - } -- -- arg.pass_by_reference = out ? 1 : 0; - } - - // -diff --git a/php/src/php7/Types.cpp b/php/src/php7/Types.cpp -index 0dc3093fa5..f08f8447a6 100644 ---- a/php/src/php7/Types.cpp -+++ b/php/src/php7/Types.cpp -@@ -323,6 +323,9 @@ IcePHP::SlicedDataUtil::setMember(zval* obj, const Ice::SlicedDataPtr& slicedDat - - zval slices; - array_init(&slices); -+#ifdef HT_ALLOW_COW_VIOLATION -+ HT_ALLOW_COW_VIOLATION(Z_ARRVAL(slices)); // Allow circular references. -+#endif - AutoDestroy slicesDestroyer(&slices); - - if(add_property_zval(&sd, STRCAST("slices"), &slices) != SUCCESS) -@@ -388,6 +391,9 @@ IcePHP::SlicedDataUtil::setMember(zval* obj, const Ice::SlicedDataPtr& slicedDat - // - zval objects; - array_init(&objects); -+#ifdef HT_ALLOW_COW_VIOLATION -+ HT_ALLOW_COW_VIOLATION(Z_ARRVAL(objects)); // Allow circular references. -+#endif - AutoDestroy objectsDestroyer(&objects); - if(add_property_zval(&slice, STRCAST("objects"), &objects) != SUCCESS) - { -@@ -1615,6 +1621,9 @@ IcePHP::SequenceInfo::unmarshal(const Ice::InputStreamPtr& is, const UnmarshalCa - - zval zv; - array_init(&zv); -+#ifdef HT_ALLOW_COW_VIOLATION -+ HT_ALLOW_COW_VIOLATION(Z_ARRVAL(zv)); // Allow circular references. -+#endif - AutoDestroy destroy(&zv); - - Ice::Int sz = is->readSize(); -@@ -2256,6 +2265,9 @@ IcePHP::DictionaryInfo::unmarshal(const Ice::InputStreamPtr& is, const Unmarshal - - zval zv; - array_init(&zv); -+#ifdef HT_ALLOW_COW_VIOLATION -+ HT_ALLOW_COW_VIOLATION(Z_ARRVAL(zv)); // Allow circular references. -+#endif - AutoDestroy destroy(&zv); - - Ice::Int sz = is->readSize(); diff --git a/dev-libs/Ice/files/Ice-3.6.4-csharp.patch b/dev-libs/Ice/files/Ice-3.6.5-csharp.patch similarity index 76% rename from dev-libs/Ice/files/Ice-3.6.4-csharp.patch rename to dev-libs/Ice/files/Ice-3.6.5-csharp.patch index 671241b..cfdc1f6 100644 --- a/dev-libs/Ice/files/Ice-3.6.4-csharp.patch +++ b/dev-libs/Ice/files/Ice-3.6.5-csharp.patch @@ -1,5 +1,5 @@ ---- ice-3.6.4/csharp/src/Makefile~ 2015-06-23 17:30:20.000000000 +0200 -+++ ice-3.6.4/csharp/src/Makefile 2015-06-27 20:07:04.217188211 +0200 +--- ice-3.6.5/csharp/src/Makefile~ 2015-06-23 17:30:20.000000000 +0200 ++++ ice-3.6.5/csharp/src/Makefile 2015-06-27 20:07:04.217188211 +0200 @@ -11,7 +11,7 @@ include $(top_srcdir)/config/Make.rules.cs @@ -10,9 +10,9 @@ $(EVERYTHING):: @for subdir in $(SUBDIRS); \ --- /dev/null 2015-06-27 16:44:15.733558105 +0200 -+++ ice-3.6.4/csharp/lib/pkgconfig/IceSSL.pc 2015-06-27 20:19:30.731894653 +0200 ++++ ice-3.6.5/csharp/lib/pkgconfig/IceSSL.pc 2015-06-27 20:19:30.731894653 +0200 @@ -0,0 +1,10 @@ -+version = 3.6.4 ++version = 3.6.5 +mono_root = /usr + +name = IceSSL @@ -23,9 +23,9 @@ +Libs: -r:${mono_root}/lib/mono/${name}/${name}.dll +Requires: Ice = ${version} --- /dev/null 2015-06-27 16:44:15.733558105 +0200 -+++ ice-3.6.4/csharp/lib/pkgconfig/IceDiscovery.pc 2015-06-27 20:20:44.312515987 +0200 ++++ ice-3.6.5/csharp/lib/pkgconfig/IceDiscovery.pc 2015-06-27 20:20:44.312515987 +0200 @@ -0,0 +1,10 @@ -+version = 3.6.4 ++version = 3.6.5 +mono_root = /usr + +name = IceDiscovery @@ -36,9 +36,9 @@ +Libs: -r:${mono_root}/lib/mono/${name}/${name}.dll +Requires: Ice = ${version} --- /dev/null 2015-06-27 16:44:15.733558105 +0200 -+++ ice-3.6.4/csharp/lib/pkgconfig/IceLocatorDiscovery.pc 2015-06-27 20:21:22.206185123 +0200 ++++ ice-3.6.5/csharp/lib/pkgconfig/IceLocatorDiscovery.pc 2015-06-27 20:21:22.206185123 +0200 @@ -0,0 +1,10 @@ -+version = 3.6.4 ++version = 3.6.5 +mono_root = /usr + +name = IceLocatorDiscovery diff --git a/dev-libs/Ice/files/Ice-3.6.4-db6.patch b/dev-libs/Ice/files/Ice-3.6.5-db6.patch similarity index 100% rename from dev-libs/Ice/files/Ice-3.6.4-db6.patch rename to dev-libs/Ice/files/Ice-3.6.5-db6.patch