From 5e9e86aced6ae5a113df44a1e7077f7fb11b6104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20F=C3=B6rster?= Date: Fri, 13 Apr 2018 19:27:23 +0200 Subject: [PATCH] [dev-libs/Ice] bump 3.6.4 to ruby24 only, bump live to ruby25 only and drop python34 from live, add a patch from upstream git for php7.2 to 3.6.4 --- dev-libs/Ice/Ice-3.6.4.ebuild | 24 +++--- dev-libs/Ice/Ice-3.6.9999.ebuild | 31 ++++---- dev-libs/Ice/files/Ice-3.6.4-php72.patch | 94 ++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 26 deletions(-) create mode 100644 dev-libs/Ice/files/Ice-3.6.4-php72.patch diff --git a/dev-libs/Ice/Ice-3.6.4.ebuild b/dev-libs/Ice/Ice-3.6.4.ebuild index 1ccf8e6..4ddd2dc 100644 --- a/dev-libs/Ice/Ice-3.6.4.ebuild +++ b/dev-libs/Ice/Ice-3.6.4.ebuild @@ -6,7 +6,7 @@ EAPI=6 PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} pypy ) RUBY_OPTIONAL="yes" -USE_RUBY="ruby23" +USE_RUBY="ruby24" PHP_EXT_NAME="IcePHP" PHP_EXT_INI="yes" @@ -40,7 +40,7 @@ RDEPEND=">=dev-libs/expat-2.0.1 ) dev-cpp/libmcpp python? ( ${PYTHON_DEPS} ) - ruby? ( $(ruby_implementation_depend ruby23) ) + ruby? ( $(ruby_implementation_depend ruby24) ) mono? ( dev-lang/mono ) !dev-python/IcePy !dev-ruby/IceRuby" @@ -61,6 +61,7 @@ PATCHES=( "${FILESDIR}/${PN}-3.6.3-no-arch-opts.patch" "${FILESDIR}/${P}-db6.patch" "${FILESDIR}/${P}-csharp.patch" + "${FILESDIR}/${P}-php72.patch" ) pkg_setup() { @@ -99,11 +100,12 @@ src_prepare() { csharp/Makefile || die "sed failed" # skip udp test due to multicast - # IceGrid/admin fails, no idea why + # 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=IceUtil\/stacktrace|' \ + -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 @@ -153,25 +155,25 @@ src_configure() { fi if use ruby; then - SITERUBY="$(ruby23 -r rbconfig -e 'print RbConfig::CONFIG["sitelibdir"]')" - SITERUBYARCH="$(ruby23 -r rbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')" + SITERUBY="$(ruby24 -r rbconfig -e 'print RbConfig::CONFIG["sitelibdir"]')" + SITERUBYARCH="$(ruby24 -r rbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')" MAKE_RULES_RUBY=( "install_rubydir=\"${ED%/}/${SITERUBY}\"" "install_libdir=\"${ED%/}/${SITERUBYARCH}\"" ) - # make it use ruby23 only + # make it use ruby24 only sed -i \ - -e 's|RUBY = ruby|\023|' \ + -e 's|RUBY = ruby|\024|' \ ruby/config/Make.rules || die "sed failed" sed -i \ - -e 's|env ruby|\023|' \ + -e 's|env ruby|\024|' \ ruby/config/s2rb.rb || die "sed failed" sed -i \ - -e 's|env ruby|\023|' \ + -e 's|env ruby|\024|' \ ruby/scripts/slice2rb || die "sed failed" sed -i \ - -e 's|output.write("ruby|\023|' \ + -e 's|output.write("ruby|\024|' \ scripts/TestUtil.py || die "sed failed" fi diff --git a/dev-libs/Ice/Ice-3.6.9999.ebuild b/dev-libs/Ice/Ice-3.6.9999.ebuild index f89701a..cc12c60 100644 --- a/dev-libs/Ice/Ice-3.6.9999.ebuild +++ b/dev-libs/Ice/Ice-3.6.9999.ebuild @@ -1,12 +1,12 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 -PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} pypy ) +PYTHON_COMPAT=( python{2_7,3_5,3_6} pypy ) RUBY_OPTIONAL="yes" -USE_RUBY="ruby24" +USE_RUBY="ruby25" PHP_EXT_NAME="IcePHP" PHP_EXT_INI="yes" @@ -14,7 +14,7 @@ PHP_EXT_ZENDEXT="no" PHP_EXT_OPTIONAL_USE=php -USE_PHP="php7-1 php7-2" +USE_PHP="php7-2" EGIT_REPO_URI="https://github.com/zeroc-ice/ice.git" EGIT_CHECKOUT_DIR="${WORKDIR}/${PN}" @@ -45,7 +45,7 @@ RDEPEND=">=dev-libs/expat-2.0.1 ) dev-cpp/libmcpp python? ( ${PYTHON_DEPS} ) - ruby? ( $(ruby_implementation_depend ruby23) ) + ruby? ( $(ruby_implementation_depend ruby25) ) mono? ( dev-lang/mono ) !dev-python/IcePy !dev-ruby/IceRuby" @@ -64,7 +64,7 @@ PHP_EXT_S="${S}/php" PATCHES=( "${FILESDIR}/${PN}-3.6.3-no-arch-opts.patch" - "${FILESDIR}/${PN}-3.6.3-db6.patch" + "${FILESDIR}/${PN}-3.6.4-db6.patch" "${FILESDIR}/${PN}-3.6.4-csharp.patch" ) @@ -104,11 +104,12 @@ src_prepare() { csharp/Makefile || die "sed failed" # skip udp test due to multicast - # IceGrid/admin fails, no idea why + # 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=IceUtil\/stacktrace|' \ + -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 @@ -158,25 +159,25 @@ src_configure() { fi if use ruby; then - SITERUBY="$(ruby23 -r rbconfig -e 'print RbConfig::CONFIG["sitelibdir"]')" - SITERUBYARCH="$(ruby23 -r rbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')" + 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 ruby23 only + # make it use ruby25 only sed -i \ - -e 's|RUBY = ruby|\023|' \ + -e 's|RUBY = ruby|\025|' \ ruby/config/Make.rules || die "sed failed" sed -i \ - -e 's|env ruby|\023|' \ + -e 's|env ruby|\025|' \ ruby/config/s2rb.rb || die "sed failed" sed -i \ - -e 's|env ruby|\023|' \ + -e 's|env ruby|\025|' \ ruby/scripts/slice2rb || die "sed failed" sed -i \ - -e 's|output.write("ruby|\023|' \ + -e 's|output.write("ruby|\025|' \ scripts/TestUtil.py || die "sed failed" fi diff --git a/dev-libs/Ice/files/Ice-3.6.4-php72.patch b/dev-libs/Ice/files/Ice-3.6.4-php72.patch new file mode 100644 index 0000000..1c0b1f8 --- /dev/null +++ b/dev-libs/Ice/files/Ice-3.6.4-php72.patch @@ -0,0 +1,94 @@ +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();