Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 413578 Details for
Bug 562122
dev-libs/Ice add libressl support
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
0001-dev-libs-Ice-add-libressl-support.patch
0001-dev-libs-Ice-add-libressl-support.patch (text/plain), 10.77 KB, created by
Julian Ospald
on 2015-10-03 13:45:51 UTC
(
hide
)
Description:
0001-dev-libs-Ice-add-libressl-support.patch
Filename:
MIME Type:
Creator:
Julian Ospald
Created:
2015-10-03 13:45:51 UTC
Size:
10.77 KB
patch
obsolete
>From 797410b254bbb72c11c9d0e9b49e44772892377d Mon Sep 17 00:00:00 2001 >From: Julian Ospald <hasufell@gentoo.org> >Date: Sat, 3 Oct 2015 15:16:33 +0200 >Subject: [PATCH] dev-libs/Ice: add libressl support > >--- > dev-libs/Ice/Ice-3.5.1-r1.ebuild | 287 ++++++++++++++++++++++++++++ > dev-libs/Ice/files/Ice-3.5.1-libressl.patch | 69 +++++++ > 2 files changed, 356 insertions(+) > create mode 100644 dev-libs/Ice/Ice-3.5.1-r1.ebuild > create mode 100644 dev-libs/Ice/files/Ice-3.5.1-libressl.patch > >diff --git a/dev-libs/Ice/Ice-3.5.1-r1.ebuild b/dev-libs/Ice/Ice-3.5.1-r1.ebuild >new file mode 100644 >index 0000000..1d5677b >--- /dev/null >+++ b/dev-libs/Ice/Ice-3.5.1-r1.ebuild >@@ -0,0 +1,287 @@ >+# Copyright 1999-2015 Gentoo Foundation >+# Distributed under the terms of the GNU General Public License v2 >+# $Id$ >+ >+EAPI=5 >+ >+PYTHON_COMPAT=( python2_7 pypy ) >+RUBY_OPTIONAL="yes" >+USE_RUBY="ruby19" >+ >+inherit eutils 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="http://www.zeroc.com/download/Ice/$(get_version_component_range 1-2)/${P}.tar.gz >+ doc? ( http://www.zeroc.com/download/Ice/$(get_version_component_range 1-2)/${P}.pdf )" >+LICENSE="GPL-2" >+SLOT="0" >+KEYWORDS="~amd64 ~arm ~ia64 ~x86 ~x86-linux ~x64-macos" >+IUSE="doc examples libressl +ncurses mono python ruby test debug" >+ >+RDEPEND=">=dev-libs/expat-2.0.1 >+ >=app-arch/bzip2-1.0.5 >+ !libressl? ( >=dev-libs/openssl-0.9.8o:0 ) >+ libressl? ( dev-libs/libressl ) >+ || ( >+ 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="${WORKDIR}/${P}" >+ >+pkg_setup() { >+ # prevent ruby-ng.eclass from messing with src_unpack >+ :; >+} >+ >+src_unpack() { >+ # prevent ruby-ng.eclass from messing with src_unpack >+ default >+} >+ >+src_prepare() { >+ epatch "${FILESDIR}"/${P}-libressl.patch >+ >+ 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?=|' \ >+ {py,rb}/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,cs,php,py,rb}/Makefile || die "sed failed" >+ >+ sed -i \ >+ -e 's|-f -root|-f -gacdir $(GAC_DIR) -root|' \ >+ cs/config/Make.rules.cs || die "sed failed" >+ >+ # skip mono tests, bug #498484 >+ sed -i \ >+ -e 's|^\(SUBDIRS.*\)test|\1|' \ >+ cs/Makefile || die "sed failed" >+ >+ if ! use test ; then >+ sed -i \ >+ -e 's|^\(SUBDIRS.*\)test|\1|' \ >+ {cpp,php,py,rb}/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 && 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" >+ >+ 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} py/config/Make.rules || die "sed failed" >+ >+ if use python ; then >+ S=${S}/py python_copy_sources >+ >+ # make a place for the symlink >+ rm -r py/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|' \ >+ rb/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=py python_foreach_impl building >+ fi >+ >+ if use ruby ; then >+ emake -C rb ${MAKE_RULES} ${MAKE_RULES_RB} || die "emake rb failed" >+ fi >+ >+ if use mono ; then >+ emake -C cs ${MAKE_RULES} ${MAKE_RULES_CS} || die "emake cs failed" >+ fi >+} >+ >+src_install() { >+ dodoc CHANGES README >+ >+ insinto /usr/share/${P} >+ doins -r slice >+ >+ emake -C cpp ${MAKE_RULES} install || die "emake install failed" >+ >+ docinto cpp >+ dodoc CHANGES README >+ >+ 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=py python_foreach_impl installation >+ >+ docinto py >+ dodoc py/CHANGES py/README >+ >+ if use examples ; then >+ insinto /usr/share/doc/${PF}/examples-py >+ doins -r py/demo/* >+ fi >+ fi >+ >+ if use ruby ; then >+ dodir "${SITERUBY}" >+ emake -C rb ${MAKE_RULES} ${MAKE_RULES_RB} install || die "emake rb install failed" >+ >+ docinto rb >+ dodoc rb/CHANGES rb/README >+ >+ if use examples ; then >+ insinto /usr/share/doc/${PF}/examples-rb >+ doins -r rb/demo/* >+ fi >+ fi >+ >+ if use mono ; then >+ emake -C cs ${MAKE_RULES} ${MAKE_RULES_CS} install || die "emake cs install failed" >+ >+ # TODO: anyone has an idea what those are for? >+ rm "${ED}"/usr/bin/*.xml >+ >+ docinto cs >+ dodoc cs/CHANGES cs/README >+ >+ if use examples ; then >+ insinto /usr/share/doc/${PF}/examples-cs >+ doins -r cs/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 'py' >+ ln -f -s ../"${BUILD_DIR}"/python py/python || die >+ run_tests py || die "emake py-${EPYTHON} test failed" >+ } >+ BUILD_DIR=py python_foreach_impl testing >+ fi >+ >+ if use ruby ; then >+ run_tests rb || die "emake rb test failed" >+ fi >+ >+ if use mono ; then >+ # skip mono tests, bug #498484 >+ ewarn "Tests for C# are currently disabled." >+# run_tests cs || die "emake cs test failed" >+ fi >+} >diff --git a/dev-libs/Ice/files/Ice-3.5.1-libressl.patch b/dev-libs/Ice/files/Ice-3.5.1-libressl.patch >new file mode 100644 >index 0000000..b0f916c >--- /dev/null >+++ b/dev-libs/Ice/files/Ice-3.5.1-libressl.patch >@@ -0,0 +1,69 @@ >+From 9f830aef955e9462c186c87d7cb1f8b71aba49d5 Mon Sep 17 00:00:00 2001 >+From: hasufell <hasufell@gentoo.org> >+Date: Sat, 3 Oct 2015 15:15:01 +0200 >+Subject: [PATCH] Add LibreSSL support >+ >+--- >+ cpp/src/Glacier2/CryptPermissionsVerifierI.cpp | 3 ++- >+ cpp/src/IceGrid/RegistryI.cpp | 3 ++- >+ cpp/src/IceSSL/Instance.cpp | 2 +- >+ 3 files changed, 5 insertions(+), 3 deletions(-) >+ >+diff --git a/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp b/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp >+index 1a437a6..e94bbde 100644 >+--- a/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp >++++ b/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp >+@@ -9,6 +9,7 @@ >+ >+ #include <Glacier2/CryptPermissionsVerifierI.h> >+ #include <openssl/des.h> >++#include <openssl/opensslv.h> >+ >+ using namespace std; >+ using namespace Ice; >+@@ -39,7 +40,7 @@ Glacier2::CryptPermissionsVerifierI::checkPermissions( >+ >+ char buff[14]; >+ string salt = p->second.substr(0, 2); >+-#if OPENSSL_VERSION_NUMBER >= 0x0090700fL >++#if OPENSSL_VERSION_NUMBER >= 0x0090700fL || defined (LIBRESSL_VERSION_NUMBER) >+ DES_fcrypt(password.c_str(), salt.c_str(), buff); >+ #else >+ des_fcrypt(password.c_str(), salt.c_str(), buff); >+diff --git a/cpp/src/IceGrid/RegistryI.cpp b/cpp/src/IceGrid/RegistryI.cpp >+index 3c6128e..830d864 100644 >+--- a/cpp/src/IceGrid/RegistryI.cpp >++++ b/cpp/src/IceGrid/RegistryI.cpp >+@@ -41,6 +41,7 @@ >+ #include <fstream> >+ >+ #include <openssl/des.h> // For crypt() passwords >++#include <openssl/opensslv.h> >+ >+ #include <sys/types.h> >+ >+@@ -95,7 +96,7 @@ public: >+ >+ char buff[14]; >+ string salt = p->second.substr(0, 2); >+-#if OPENSSL_VERSION_NUMBER >= 0x0090700fL >++#if OPENSSL_VERSION_NUMBER >= 0x0090700fL || defined (LIBRESSL_VERSION_NUMBER) >+ DES_fcrypt(password.c_str(), salt.c_str(), buff); >+ #else >+ des_fcrypt(password.c_str(), salt.c_str(), buff); >+diff --git a/cpp/src/IceSSL/Instance.cpp b/cpp/src/IceSSL/Instance.cpp >+index eb2ae99..f7f8483 100644 >+--- a/cpp/src/IceSSL/Instance.cpp >++++ b/cpp/src/IceSSL/Instance.cpp >+@@ -266,7 +266,7 @@ IceSSL::Instance::Instance(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. >+-- >+2.5.3 >+ >-- >2.5.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 562122
: 413578