From 98a6dfa42aaea9370b72c6ea2e3151badb6bfa37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20F=C3=B6rster?= Date: Fri, 12 Feb 2016 23:54:02 +0100 Subject: [PATCH] [dev-libs/Ice] put back db 5.1 support since that is stable, no idea if 5.3 gets stable anytime soon, add libressl support, apply patch from PLD which maybe can fix bug 552702 --- dev-libs/Ice/Ice-3.6.1.ebuild | 29 ++++++++++++++--- dev-libs/Ice/files/Ice-3.6.1-libressl.patch | 23 ++++++++++++++ .../Ice/files/Ice-3.6.1-no-arch-opts.patch | 31 +++++++++++++++++++ 3 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 dev-libs/Ice/files/Ice-3.6.1-libressl.patch create mode 100644 dev-libs/Ice/files/Ice-3.6.1-no-arch-opts.patch diff --git a/dev-libs/Ice/Ice-3.6.1.ebuild b/dev-libs/Ice/Ice-3.6.1.ebuild index a37d08c..8e9bb8b 100644 --- a/dev-libs/Ice/Ice-3.6.1.ebuild +++ b/dev-libs/Ice/Ice-3.6.1.ebuild @@ -26,12 +26,16 @@ SRC_URI="https://github.com/zeroc-ice/ice/archive/v${PV}.tar.gz -> ${P}.tar.gz LICENSE="GPL-2" SLOT="0/${PV}" KEYWORDS="~amd64 ~arm ~ia64 ~x86 ~x86-linux ~x64-macos" -IUSE="doc examples +ncurses mono php php_namespaces python ruby test debug" +IUSE="doc examples libressl +ncurses mono php php_namespaces python ruby test debug" 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] + !libressl? ( >=dev-libs/openssl-0.9.8o:0 ) + libressl? ( dev-libs/libressl ) + || ( + sys-libs/db:5.3[cxx] + sys-libs/db:5.1[cxx] + ) dev-cpp/libmcpp python? ( ${PYTHON_DEPS} ) ruby? ( $(ruby_implementation_depend ruby22) ) @@ -71,6 +75,8 @@ src_unpack() { } src_prepare() { + epatch "${FILESDIR}/${P}-libressl.patch" + epatch "${FILESDIR}/${P}-no-arch-opts.patch" epatch "${FILESDIR}/${P}-csharp.patch" sed -i \ -e 's|\(install_configdir[[:space:]]*\):=|\1?=|' \ @@ -114,6 +120,18 @@ src_prepare() { fi } +suitable_db_version() { + local tested_slots="5.3 5.1" + 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}\" @@ -126,13 +144,14 @@ src_configure() { 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" - MAKE_RULES="${MAKE_RULES} DB_FLAGS=-I$(db_includedir 5.3)" + 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:5.3)|" \ + -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 diff --git a/dev-libs/Ice/files/Ice-3.6.1-libressl.patch b/dev-libs/Ice/files/Ice-3.6.1-libressl.patch new file mode 100644 index 0000000..2ed5594 --- /dev/null +++ b/dev-libs/Ice/files/Ice-3.6.1-libressl.patch @@ -0,0 +1,23 @@ +From 5974de7290be5097960a117321fc87fa8fb607d4 Mon Sep 17 00:00:00 2001 +From: hasufell +Date: Sat, 3 Oct 2015 15:40:56 +0200 +Subject: [PATCH] Fix compilation with LibreSSL + +Signed-off-by: Joe George +--- + cpp/src/IceSSL/OpenSSLEngine.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cpp/src/IceSSL/OpenSSLEngine.cpp b/cpp/src/IceSSL/OpenSSLEngine.cpp +index 5ec9186..a5e857c 100644 +--- a/cpp/src/IceSSL/OpenSSLEngine.cpp ++++ b/cpp/src/IceSSL/OpenSSLEngine.cpp +@@ -259,7 +259,7 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) : + } + } + } +-# ifndef _WIN32 ++# if !defined (_WIN32) && !defined (OPENSSL_NO_EGD) + // + // The Entropy Gathering Daemon (EGD) is not available on Windows. + // The file should be a Unix domain socket for the daemon. diff --git a/dev-libs/Ice/files/Ice-3.6.1-no-arch-opts.patch b/dev-libs/Ice/files/Ice-3.6.1-no-arch-opts.patch new file mode 100644 index 0000000..46fd912 --- /dev/null +++ b/dev-libs/Ice/files/Ice-3.6.1-no-arch-opts.patch @@ -0,0 +1,31 @@ +--- ice-3.6.0/cpp/config/Make.rules.Linux~ 2015-06-27 16:56:56.000000000 +0200 ++++ ice-3.6.0/cpp/config/Make.rules.Linux 2015-06-27 17:23:45.810591931 +0200 +@@ -71,14 +71,6 @@ + CXXARCHFLAGS += -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED + endif + +- ifeq ($(MACHINE),x86_64) +- ifeq ($(LP64),yes) +- CXXARCHFLAGS += -m64 +- else +- CXXARCHFLAGS += -m32 +- endif +- endif +- + CXXFLAGS += $(CXXARCHFLAGS) -fvisibility=hidden -Wall -Werror -pthread + + # If MAXWARN is set then enable extra warnings +--- ice-3.6.0/config/Make.common.rules~ 2015-06-23 17:30:20.000000000 +0200 ++++ ice-3.6.0/config/Make.common.rules 2015-06-28 01:53:57.149666595 +0200 +@@ -104,11 +104,6 @@ + LP64 = yes + endif + endif +- ifneq ($(STATICLIBS),yes) +- ifneq ($(LP64),yes) +- binsuffix = 32 +- endif +- endif + endif + + ifeq ($(shell test -d $(usr_dir)/lib/i386-linux-gnu && echo 0),0)