Gentoo Archives: gentoo-commits

From: David Seifert <soap@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/Ice/files/, dev-libs/Ice/
Date: Wed, 15 Feb 2017 07:58:10
Message-Id: 1487145472.662c191da77e8402291de8c8474da7f483e276ee.soap@gentoo
1 commit: 662c191da77e8402291de8c8474da7f483e276ee
2 Author: Robert Förster <Dessa <AT> gmake <DOT> de>
3 AuthorDate: Tue Feb 14 21:49:09 2017 +0000
4 Commit: David Seifert <soap <AT> gentoo <DOT> org>
5 CommitDate: Wed Feb 15 07:57:52 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=662c191d
7
8 dev-libs/Ice: fix installation with USE=ruby, bug 605942, fix building with libressl bug 597810, add myself to maintainers
9
10 Package-Manager: Portage-2.3.3, Repoman-2.3.1
11 Closes: https://github.com/gentoo/gentoo/pull/3975
12
13 dev-libs/Ice/Ice-3.6.3-r1.ebuild | 349 ++++++++++++++++++++++++++++
14 dev-libs/Ice/files/Ice-3.6.3-libressl.patch | 164 +++++++++++++
15 dev-libs/Ice/metadata.xml | 4 +
16 3 files changed, 517 insertions(+)
17
18 diff --git a/dev-libs/Ice/Ice-3.6.3-r1.ebuild b/dev-libs/Ice/Ice-3.6.3-r1.ebuild
19 new file mode 100644
20 index 0000000000..50e7d8683c
21 --- /dev/null
22 +++ b/dev-libs/Ice/Ice-3.6.3-r1.ebuild
23 @@ -0,0 +1,349 @@
24 +# Copyright 1999-2017 Gentoo Foundation
25 +# Distributed under the terms of the GNU General Public License v2
26 +# $Id$
27 +
28 +EAPI=5
29 +
30 +PYTHON_COMPAT=( python{2_7,3_4,3_5} pypy )
31 +
32 +RUBY_OPTIONAL="yes"
33 +USE_RUBY="ruby22"
34 +
35 +PHP_EXT_NAME="IcePHP"
36 +PHP_EXT_INI="yes"
37 +PHP_EXT_ZENDEXT="no"
38 +
39 +PHP_EXT_OPTIONAL_USE=php
40 +
41 +USE_PHP="php7-0"
42 +
43 +# This variable does not belong to any eclass. It is solely used in this ebuild
44 +# db:6.2 breaks the build process
45 +BERKDB_SLOTS=( 6.1 5.3 5.1 4.8 )
46 +
47 +inherit db-use eutils mono-env php-ext-source-r2 python-r1 ruby-ng toolchain-funcs versionator
48 +
49 +DESCRIPTION="ICE middleware C++ library and generator tools"
50 +HOMEPAGE="http://www.zeroc.com/"
51 +SRC_URI="https://github.com/zeroc-ice/ice/archive/v${PV}.tar.gz -> ${P}.tar.gz
52 + doc? ( http://download.zeroc.com/Ice/$(get_version_component_range 1-2)/${P}.pdf )"
53 +LICENSE="GPL-2"
54 +SLOT="0/36"
55 +KEYWORDS="~amd64 ~x86"
56 +IUSE="doc examples libressl +ncurses mono php python ruby test debug"
57 +
58 +RDEPEND=">=dev-libs/expat-2.0.1
59 + >=app-arch/bzip2-1.0.5
60 + !libressl? ( dev-libs/openssl:0= )
61 + libressl? ( dev-libs/libressl:0= )
62 + || (
63 + $(for slot in ${BERKDB_SLOTS[@]} ; do printf '%s\n' "sys-libs/db:${slot}[cxx]" ; done)
64 + )
65 + dev-cpp/libmcpp
66 + python? ( ${PYTHON_DEPS} )
67 + ruby? ( $(ruby_implementation_depend ruby22) )
68 + mono? ( dev-lang/mono )
69 + php? ( dev-lang/php:7.0 )
70 + !dev-python/IcePy
71 + !dev-ruby/IceRuby"
72 +DEPEND="${RDEPEND}
73 + ncurses? ( sys-libs/ncurses:0= sys-libs/readline:0= )
74 + test? (
75 + ${PYTHON_DEPS}
76 + dev-python/passlib[${PYTHON_USEDEP}]
77 + )"
78 +
79 +# Maintainer notes:
80 +# TODO: java bindings, multiple ruby versions (supports 2.{1,2,3})
81 +
82 +S="${WORKDIR}/${P/I/i}"
83 +PHP_EXT_S="${S}/php"
84 +
85 +PATCHES=(
86 + "${FILESDIR}/${P}-no-arch-opts.patch"
87 + "${FILESDIR}/${P}-csharp.patch"
88 + "${FILESDIR}/${P}-libressl.patch"
89 +)
90 +
91 +pkg_setup() {
92 + # prevent ruby-ng.eclass from messing with pkg_setup
93 + return
94 +}
95 +
96 +src_unpack() {
97 + # prevent ruby-ng.eclass from messing with src_unpack
98 + default
99 +}
100 +
101 +src_prepare() {
102 + epatch -p1 "${PATCHES[@]}"
103 +
104 + sed -i \
105 + -e 's|\(install_configdir[[:space:]]*\):=|\1?=|' \
106 + -e 's|-L\$\(libdir\)||' \
107 + cpp/config/Make.rules || die "sed failed"
108 +
109 + sed -i \
110 + -e 's|\(install_phpdir[[:space:]]*\):=|\1?=|' \
111 + -e 's|\(install_libdir[[:space:]]*\):=|\1?=|' \
112 + php/config/Make.rules.php || die "sed failed"
113 +
114 + sed -i \
115 + -e 's|\(install_pythondir[[:space:]]*\)=|\1?=|' \
116 + -e 's|\(install_rubydir[[:space:]]*\)=|\1?=|' \
117 + -e 's|\(install_libdir[[:space:]]*\):=|\1?=|' \
118 + {python,ruby}/config/Make.rules || die "sed failed"
119 +
120 + sed -i \
121 + -e 's|-O2 ||g' \
122 + -e 's|-Werror ||g' \
123 + cpp/config/Make.rules.Linux || die "sed failed"
124 +
125 + sed -i \
126 + -e 's|install-common||' \
127 + {cpp,csharp,php,python,ruby}/Makefile || die "sed failed"
128 +
129 + sed -i \
130 + -e 's|-f -root|-f -gacdir $(GAC_DIR) -root|' \
131 + -e 's|\(install_libdir[[:space:]]*\):=|\1?=|' \
132 + -e 's|\(install_pkgconfigdir[[:space:]]*\):=|\1?=|' \
133 + csharp/config/Make.rules.cs || die "sed failed"
134 +
135 + # skip mono tests, bug #498484
136 + sed -i \
137 + -e '/SUBDIRS/s|\ test||' \
138 + csharp/Makefile || die "sed failed"
139 +
140 + # IceUtil/stacktrace fails with USE=debug
141 + # skip udp test due to multicast
142 + # skip IceSSL tests due to requirement of internet connection
143 + # IceStorm/stress fails without USE=debug
144 + sed -i \
145 + -e 's|allTests.py|allTests.py --rfilter=IceUtil\/stacktrace --rfilter=udp --rfilter=IceSSL --rfilter=IceStorm\/stress|' \
146 + cpp/Makefile || die "sed failed"
147 +
148 + # mainly broken .ice files
149 + sed -i \
150 + -e 's|allTests.py|allTests.py --rfilter=operations --rfilter=slicing\/objects|' \
151 + python/Makefile || die "sed failed"
152 +
153 + # fails even on unicode locale
154 + sed -i \
155 + -e 's|allTests.py|allTests.py --rfilter=Slice\/unicodePaths|' \
156 + ruby/Makefile || die "sed failed"
157 +}
158 +
159 +src_configure() {
160 + suitable_db_version() {
161 + local ver
162 + for ver in "${BERKDB_SLOTS[@]}"; do
163 + if [[ -n $(db_findver sys-libs/db:${ver}) ]]; then
164 + echo "${ver}"
165 + return 0
166 + fi
167 + done
168 + die "No suitable BerkDB versions found, aborting"
169 + }
170 +
171 + MAKE_RULES=(
172 + "prefix=\"${ED%/}/usr\""
173 + "install_docdir=\"${ED%/}/usr/share/doc/${PF}\""
174 + "install_configdir=\"${ED%/}/usr/share/${P}/config\""
175 + "install_mandir=\"${ED%/}/usr/share/man\""
176 + "embedded_runpath_prefix=\"${EPREFIX}/usr\""
177 + "LP64=yes"
178 + "new_dtags=yes"
179 + "NOTEST=$(usex !test)"
180 + "USE_READLINE=$(usex ncurses)"
181 + "OPTIMIZE=$(usex !debug)"
182 + )
183 +
184 + local BERKDB_VERSION="$(suitable_db_version)"
185 + MAKE_RULES+=("DB_FLAGS=-I$(db_includedir ${BERKDB_VERSION})")
186 + sed -i \
187 + -e "s|g++|$(tc-getCXX)|" \
188 + -e "s|\(CFLAGS[[:space:]]*=\)|\1 ${CFLAGS}|" \
189 + -e "s|\(CXXFLAGS[[:space:]]*=\)|\1 ${CXXFLAGS}|" \
190 + -e "s|\(LDFLAGS[[:space:]]*=\)|\1 ${LDFLAGS}|" \
191 + -e "s|\(DB_LIBS[[:space:]]*=\) \-ldb_cxx|\1 -ldb_cxx-$(db_findver sys-libs/db:${BERKDB_VERSION})|" \
192 + cpp/config/Make.rules{,.Linux} python/config/Make.rules || die "sed failed"
193 +
194 + if use python; then
195 + local S="${S}/python"
196 + python_copy_sources
197 + fi
198 +
199 + if use ruby; then
200 + SITERUBY="$(ruby22 -r rbconfig -e 'print RbConfig::CONFIG["sitelibdir"]')"
201 + MAKE_RULES_RUBY=(
202 + "install_rubydir=\"${ED%/}/${SITERUBY}\""
203 + "install_libdir=\"${ED%/}/${SITERUBY}\""
204 + )
205 +
206 + # make it use ruby22 only
207 + sed -i \
208 + -e 's|RUBY = ruby|\022|' \
209 + ruby/config/Make.rules || die "sed failed"
210 + sed -i \
211 + -e 's|env ruby|\022|' \
212 + ruby/config/s2rb.rb || die "sed failed"
213 + sed -i \
214 + -e 's|env ruby|\022|' \
215 + ruby/scripts/slice2rb || die "sed failed"
216 + sed -i \
217 + -e 's|output.write("ruby|\022|' \
218 + scripts/TestUtil.py || die "sed failed"
219 + fi
220 +
221 + MAKE_RULES_MONO=(
222 + "GACINSTALL=yes"
223 + "GAC_ROOT=\"${ED%/}/usr/$(get_libdir)\""
224 + "GAC_DIR=\"${EPREFIX}/usr/$(get_libdir)\""
225 + "install_libdir=\"${ED%/}/usr/$(get_libdir)\""
226 + "install_pkgconfigdir=\"${ED%/}/usr/$(get_libdir)/pkgconfig\""
227 + )
228 +
229 + if has_version ">dev-lang/mono-4"; then
230 + MAKE_RULES_MONO+=("MCS=mcs")
231 + fi
232 +
233 + use test && python_setup
234 +}
235 +
236 +src_compile() {
237 + # Do not remove this export or build will break!
238 + tc-export CXX
239 +
240 + emake -C cpp "${MAKE_RULES[@]}"
241 +
242 + if use php; then
243 + local i
244 + for i in $(php_get_slots); do
245 + mkdir -p "${WORKDIR}/${i}" || die
246 + cp -r "${PHP_EXT_S}" "${WORKDIR}/${i}/" || die "Failed to copy source ${PHP_EXT_S} to PHP target directory"
247 +
248 + pushd "${WORKDIR}/${i}" >/dev/null || die
249 + ln -s "${S}/cpp" || die
250 + ln -s "${S}/config" || die
251 + ln -s "${S}/slice" || die
252 + ln -s "${S}/Makefile" || die
253 +
254 + emake -C php "${MAKE_RULES[@]}" USE_NAMESPACES=yes "PHP_CONFIG=\"${EPREFIX}/usr/$(get_libdir)/${i}/bin/php-config\""
255 + popd >/dev/null || die
256 + done
257 + fi
258 +
259 + if use python; then
260 + building() {
261 + emake -C "${BUILD_DIR}" "${MAKE_RULES[@]}" PYTHON="${EPYTHON}"
262 + }
263 + local S="${S}/python"
264 + python_foreach_impl building
265 + fi
266 +
267 + if use ruby; then
268 + emake -C ruby "${MAKE_RULES[@]}" "${MAKE_RULES_RUBY[@]}"
269 + fi
270 +
271 + if use mono; then
272 + emake -C csharp "${MAKE_RULES[@]}" "${MAKE_RULES_MONO[@]}"
273 + fi
274 +}
275 +
276 +src_test() {
277 + local -x LD_LIBRARY_PATH="${S}/cpp/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
278 + emake -C cpp "${MAKE_RULES[@]}" test
279 +
280 + # php tests require the extension loaded and are therefore skipped
281 +
282 + if use python; then
283 + testing() {
284 + emake -C "${BUILD_DIR}" \
285 + "${MAKE_RULES[@]}" \
286 + PYTHON="${EPYTHON}" \
287 + install_pythondir="\"${D%/}/$(python_get_sitedir)\"" \
288 + install_libdir="\"${D%/}/$(python_get_sitedir)\"" test
289 + }
290 + local S="${S}/python"
291 + python_foreach_impl testing
292 + fi
293 +
294 + if use ruby; then
295 + emake -C ruby "${MAKE_RULES[@]}" "${MAKE_RULES_RUBY[@]}" test
296 + fi
297 +
298 + if use mono; then
299 + # skip mono tests, bug #498484
300 + ewarn "Tests for C# are currently disabled."
301 + #emake -C csharp "${MAKE_RULES[@]}" "${MAKE_RULES_MONO[@]}" test
302 + fi
303 +}
304 +
305 +src_install() {
306 + local DOCS=( CHANGELOG*.md README.md )
307 + use doc && DOCS+=( "${DISTDIR}/${P}.pdf" )
308 + einstalldocs
309 +
310 + insinto /usr/share/${P}
311 + doins -r slice
312 +
313 + emake -C cpp "${MAKE_RULES[@]}" install
314 +
315 + if use examples; then
316 + docinto examples-cpp
317 + dodoc cpp/config/*.cfg
318 + docompress -x /usr/share/doc/${PF}/examples-cpp
319 + fi
320 +
321 + if use php; then
322 + insinto "/usr/share/php/${PN}"
323 +
324 + local i
325 + while IFS="" read -d $'\0' -r i; do
326 + doins "${i}"
327 + done < <(find "${S}/php/lib/" -name '*.php' -print0)
328 +
329 + pushd "${ED%/}/usr/share/${P}/slice" >/dev/null || die
330 +
331 + local -x LD_LIBRARY_PATH="${ED%/}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
332 + for i in *; do
333 + mkdir -p "${ED%/}/usr/share/php/${i}" || die
334 + "${ED%/}"/usr/bin/slice2php \
335 + -I"${ED%/}/usr/share/${P}/slice/" --all \
336 + --output-dir "${ED%/}/usr/share/php/${i}" \
337 + --ice "${ED%/}/usr/share/${P}/slice/${i}"/*
338 + done
339 +
340 + for i in $(php_get_slots); do
341 + php_init_slot_env "${i}"
342 + insinto "${EXT_DIR}"
343 + newins "php/lib/${PHP_EXT_NAME}.so" "${PHP_EXT_NAME}.so"
344 + done
345 + php-ext-source-r2_createinifiles
346 +
347 + popd >/dev/null || die
348 + fi
349 +
350 + if use python; then
351 + installation() {
352 + mkdir -p "${D%/}/$(python_get_sitedir)" || die
353 +
354 + emake -C "${BUILD_DIR}" \
355 + "${MAKE_RULES[@]}" \
356 + install_pythondir="\"${D%/}/$(python_get_sitedir)\"" \
357 + install_libdir="\"${D%/}/$(python_get_sitedir)\"" \
358 + install
359 + }
360 + local S="${S}/python"
361 + python_foreach_impl installation
362 + fi
363 +
364 + if use ruby; then
365 + dodir "${SITERUBY}"
366 + emake -C ruby "${MAKE_RULES[@]}" "${MAKE_RULES_RUBY[@]}" install
367 + fi
368 +
369 + if use mono; then
370 + emake -C csharp "${MAKE_RULES[@]}" "${MAKE_RULES_MONO[@]}" install
371 + fi
372 +}
373
374 diff --git a/dev-libs/Ice/files/Ice-3.6.3-libressl.patch b/dev-libs/Ice/files/Ice-3.6.3-libressl.patch
375 new file mode 100644
376 index 0000000000..e7d42e3f0d
377 --- /dev/null
378 +++ b/dev-libs/Ice/files/Ice-3.6.3-libressl.patch
379 @@ -0,0 +1,164 @@
380 +From cbbac2c31a04e956261489ce75c962be7e2454ae Mon Sep 17 00:00:00 2001
381 +From: Joe George <joe@×××××.com>
382 +Date: Mon, 12 Dec 2016 11:51:41 -0500
383 +Subject: [PATCH] ICE-7445 - Add libressl build support
384 +
385 +---
386 + cpp/src/IceSSL/OpenSSLEngine.cpp | 20 ++++++++++----------
387 + cpp/src/IceSSL/OpenSSLTransceiverI.cpp | 6 +++---
388 + cpp/src/IceSSL/Util.cpp | 8 ++++----
389 + 3 files changed, 17 insertions(+), 17 deletions(-)
390 +
391 +diff --git a/cpp/src/IceSSL/OpenSSLEngine.cpp b/cpp/src/IceSSL/OpenSSLEngine.cpp
392 +index 8c45950..7360d06 100644
393 +--- a/cpp/src/IceSSL/OpenSSLEngine.cpp
394 ++++ b/cpp/src/IceSSL/OpenSSLEngine.cpp
395 +@@ -43,7 +43,7 @@ IceUtil::Mutex* staticMutex = 0;
396 + int instanceCount = 0;
397 + bool initOpenSSL = false;
398 +
399 +-#if OPENSSL_VERSION_NUMBER < 0x10100000L
400 ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
401 + IceUtil::Mutex* locks = 0;
402 + #endif
403 +
404 +@@ -59,10 +59,10 @@ class Init
405 + ~Init()
406 + {
407 + //
408 +- // OpenSSL 1.1.0 introduces a new thread API and removes
409 ++ // OpenSSL 1.1.0 introduces a new thread API and removes
410 + // the need to use a custom thread callback.
411 + //
412 +-#if OPENSSL_VERSION_NUMBER < 0x10100000L
413 ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
414 + CRYPTO_set_locking_callback(0);
415 + CRYPTO_set_id_callback(0);
416 +
417 +@@ -84,10 +84,10 @@ extern "C"
418 + {
419 +
420 + //
421 +-// OpenSSL 1.1.0 introduces a new thread API and removes
422 ++// OpenSSL 1.1.0 introduces a new thread API and removes
423 + // the need to use a custom thread callback.
424 + //
425 +-#if OPENSSL_VERSION_NUMBER < 0x10100000L
426 ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
427 + //
428 + // OpenSSL mutex callback.
429 + //
430 +@@ -158,7 +158,7 @@ IceSSL_opensslPasswordCallback(char* buf, int size, int flag, void* userData)
431 + DH*
432 + IceSSL_opensslDHCallback(SSL* ssl, int /*isExport*/, int keyLength)
433 + {
434 +-# if OPENSSL_VERSION_NUMBER >= 0x10100000L
435 ++# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
436 + SSL_CTX* ctx = SSL_get_SSL_CTX(ssl);
437 + # else
438 + SSL_CTX* ctx = ssl->ctx;
439 +@@ -219,7 +219,7 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) :
440 + //
441 + // OpenSSL 1.1.0 remove the need for library initialization and cleanup.
442 + //
443 +-#if OPENSSL_VERSION_NUMBER < 0x10100000L
444 ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
445 + //
446 + // Create the mutexes and set the callbacks.
447 + //
448 +@@ -326,7 +326,7 @@ OpenSSLEngine::~OpenSSLEngine()
449 + //
450 + // OpenSSL 1.1.0 remove the need for library initialization and cleanup.
451 + //
452 +-#if OPENSSL_VERSION_NUMBER < 0x10100000L
453 ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
454 + //
455 + // Clean up OpenSSL resources.
456 + //
457 +@@ -399,7 +399,7 @@ OpenSSLEngine::initialize()
458 + "IceSSL: unable to create SSL context:\n" + sslErrors());
459 + }
460 +
461 +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
462 ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
463 + int securityLevel = properties->getPropertyAsIntWithDefault(propPrefix + "SecurityLevel", -1);
464 + if(securityLevel != -1)
465 + {
466 +@@ -954,7 +954,7 @@ OpenSSLEngine::parseProtocols(const StringSeq& protocols) const
467 + SSL_METHOD*
468 + OpenSSLEngine::getMethod(int /*protocols*/)
469 + {
470 +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
471 ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
472 + SSL_METHOD* meth = const_cast<SSL_METHOD*>(TLS_method());
473 + #else
474 + //
475 +diff --git a/cpp/src/IceSSL/OpenSSLTransceiverI.cpp b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp
476 +index d66c5eb..9f07044 100644
477 +--- a/cpp/src/IceSSL/OpenSSLTransceiverI.cpp
478 ++++ b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp
479 +@@ -36,7 +36,7 @@ using namespace IceSSL;
480 + //
481 + // See: http://cvs.openssl.org/chngview?cn=22569
482 + //
483 +-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL
484 ++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL && !defined(LIBRESSL_VERSION_NUMBER)
485 + namespace
486 + {
487 +
488 +@@ -156,13 +156,13 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B
489 + //
490 + // See: http://cvs.openssl.org/chngview?cn=22569
491 + //
492 +-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL
493 ++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL && !defined(LIBRESSL_VERSION_NUMBER)
494 + IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(sslMutex);
495 + #endif
496 +
497 + int ret = _incoming ? SSL_accept(_ssl) : SSL_connect(_ssl);
498 +
499 +-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL
500 ++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL && !defined(LIBRESSL_VERSION_NUMBER)
501 + sync.release();
502 + #endif
503 + if(ret <= 0)
504 +diff --git a/cpp/src/IceSSL/Util.cpp b/cpp/src/IceSSL/Util.cpp
505 +index a60ee4c..50c47f3 100644
506 +--- a/cpp/src/IceSSL/Util.cpp
507 ++++ b/cpp/src/IceSSL/Util.cpp
508 +@@ -110,7 +110,7 @@ namespace
509 + {
510 +
511 + # ifndef OPENSSL_NO_DH
512 +-# if OPENSSL_VERSION_NUMBER < 0x10100000L
513 ++# if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
514 +
515 + // The following arrays are predefined Diffie Hellman group parameters.
516 + // These are known strong primes, distributed with the OpenSSL library
517 +@@ -228,7 +228,7 @@ unsigned char dh4096_g[] = { 0x02 };
518 + //
519 + // With OpenSSL 1.1.0 is no longer possible to acess the DH p and g
520 + // data members to set the DH params. We still use the same default
521 +-// parameters but they were converted to DER format using
522 ++// parameters but they were converted to DER format using
523 + // i2d_DHparams and can be restored using d2i_DHparams
524 +
525 + unsigned char dh512[] =
526 +@@ -338,7 +338,7 @@ unsigned char dh4096[] =
527 + //
528 + // Convert a predefined parameter set into a DH value.
529 + //
530 +-# if OPENSSL_VERSION_NUMBER >= 0x10100000L
531 ++# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
532 + static DH*
533 + convertDH(const unsigned char* buf, int len)
534 + {
535 +@@ -428,7 +428,7 @@ IceSSL::DHParams::get(int keyLength)
536 + // No match found. Use one of the predefined parameter sets instead.
537 + //
538 + IceUtil::Mutex::Lock sync(*this);
539 +-# if OPENSSL_VERSION_NUMBER >= 0x10100000L
540 ++# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
541 + if(keyLength >= 4096)
542 + {
543 + if(!_dh4096)
544
545 diff --git a/dev-libs/Ice/metadata.xml b/dev-libs/Ice/metadata.xml
546 index 1fe1aba18e..e351593036 100644
547 --- a/dev-libs/Ice/metadata.xml
548 +++ b/dev-libs/Ice/metadata.xml
549 @@ -1,6 +1,10 @@
550 <?xml version="1.0" encoding="UTF-8"?>
551 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
552 <pkgmetadata>
553 + <maintainer type="person">
554 + <email>Dessa@×××××.de</email>
555 + <name>Robert Förster</name>
556 + </maintainer>
557 <maintainer type="project">
558 <email>cpp@g.o</email>
559 </maintainer>