diff options
author | Johannes Huber <johu@gentoo.org> | 2016-04-19 16:18:48 +0200 |
---|---|---|
committer | Johannes Huber <johu@gentoo.org> | 2016-04-19 16:21:11 +0200 |
commit | 48dfd5bed3c6b04af0752d085f0e852a1dd1d13f (patch) | |
tree | c8b24e5d48d56b10efc5f5c8b961b6cd97d59ba1 /app-crypt | |
parent | app-text/cherrytree: bump revision + delete the old one (diff) | |
download | gentoo-48dfd5bed3c6b04af0752d085f0e852a1dd1d13f.tar.gz gentoo-48dfd5bed3c6b04af0752d085f0e852a1dd1d13f.tar.bz2 gentoo-48dfd5bed3c6b04af0752d085f0e852a1dd1d13f.zip |
app-crypt/qca: Fix build with libressl 2.3.0
Revision bump adds two upstream patch to fix build with
>=dev-libs/libressl-2.3.0.
Gentoo-bug: 573278
Reported-by: maurerpe <junk4me46806@yahoo.com>
Package-Manager: portage-2.2.28
Diffstat (limited to 'app-crypt')
-rw-r--r-- | app-crypt/qca/files/qca-2.1.1-libressl-230-sha0.patch | 48 | ||||
-rw-r--r-- | app-crypt/qca/files/qca-2.1.1-libressl-230-sslv3.patch | 28 | ||||
-rw-r--r-- | app-crypt/qca/qca-2.1.1-r1.ebuild | 124 |
3 files changed, 200 insertions, 0 deletions
diff --git a/app-crypt/qca/files/qca-2.1.1-libressl-230-sha0.patch b/app-crypt/qca/files/qca-2.1.1-libressl-230-sha0.patch new file mode 100644 index 000000000000..3e112c622a50 --- /dev/null +++ b/app-crypt/qca/files/qca-2.1.1-libressl-230-sha0.patch @@ -0,0 +1,48 @@ +commit 0dbed8eb38afd1561907a52283091c37e7b85156 +Author: Heiko Becker <heirecka@exherbo.org> +Date: Thu Sep 24 23:05:21 2015 +0200 + + qca-ossl: Fix build without support for SHA-0 + + LibreSSL >= 2.3.0 removed support for SHA-0, so there's no EVP_sha + anymore. + Wikipedia says about SHA-0: "160-bit hash function published in 1993 + under the name SHA. It was withdrawn shortly after publication due to + an undisclosed "significant flaw" and replaced by the slightly revised + version SHA-1.' + + REVIEW: 125387 + +diff --git a/plugins/qca-ossl/CMakeLists.txt b/plugins/qca-ossl/CMakeLists.txt +index 3124f02..cdeaeca 100644 +--- a/plugins/qca-ossl/CMakeLists.txt ++++ b/plugins/qca-ossl/CMakeLists.txt +@@ -25,6 +25,13 @@ if(OPENSSL_FOUND) + message(WARNING "qca-ossl will be compiled without AES CTR mode encryption support") + endif(HAVE_OPENSSL_AES_CTR) + ++ check_function_exists(EVP_sha HAVE_OPENSSL_SHA0) ++ if(HAVE_OPENSSL_SHA0) ++ add_definitions(-DHAVE_OPENSSL_SHA0) ++ else(HAVE_OPENSSL_SHA0) ++ message(WARNING "qca-ossl will be compiled without SHA-0 digest algorithm support") ++ endif(HAVE_OPENSSL_SHA0) ++ + set(QCA_OSSL_SOURCES qca-ossl.cpp) + + my_automoc( QCA_OSSL_SOURCES ) +diff --git a/plugins/qca-ossl/qca-ossl.cpp b/plugins/qca-ossl/qca-ossl.cpp +index b34ecc1..61d9e43 100644 +--- a/plugins/qca-ossl/qca-ossl.cpp ++++ b/plugins/qca-ossl/qca-ossl.cpp +@@ -7135,8 +7135,10 @@ public: + return new opensslInfoContext(this); + else if ( type == "sha1" ) + return new opensslHashContext( EVP_sha1(), this, type); ++#ifdef HAVE_OPENSSL_SHA0 + else if ( type == "sha0" ) + return new opensslHashContext( EVP_sha(), this, type); ++#endif + else if ( type == "ripemd160" ) + return new opensslHashContext( EVP_ripemd160(), this, type); + #ifdef HAVE_OPENSSL_MD2 diff --git a/app-crypt/qca/files/qca-2.1.1-libressl-230-sslv3.patch b/app-crypt/qca/files/qca-2.1.1-libressl-230-sslv3.patch new file mode 100644 index 000000000000..accefc49c3d3 --- /dev/null +++ b/app-crypt/qca/files/qca-2.1.1-libressl-230-sslv3.patch @@ -0,0 +1,28 @@ +commit 20a587d77636186edb044cd2b71d6d90fe98d232 +Author: Heiko Becker <heirecka@exherbo.org> +Date: Thu Sep 24 22:54:41 2015 +0200 + + qca-ossl: Fix build without SSLv3 + + This fixes building with LibreSSL >= 2.3.0 which has removed support + for SSLv3 completely. As far as I know OpenSSL can be configured to + build without it, so it might be helpful there as well. + + REVIEW: 125386 + +diff --git a/plugins/qca-ossl/qca-ossl.cpp b/plugins/qca-ossl/qca-ossl.cpp +index cfb1e9f..b34ecc1 100644 +--- a/plugins/qca-ossl/qca-ossl.cpp ++++ b/plugins/qca-ossl/qca-ossl.cpp +@@ -5403,9 +5403,11 @@ public: + ctx = SSL_CTX_new(SSLv2_client_method()); + break; + #endif ++#ifndef OPENSSL_NO_SSL3_METHOD + case TLS::SSL_v3: + ctx = SSL_CTX_new(SSLv3_client_method()); + break; ++#endif + case TLS::TLS_v1: + ctx = SSL_CTX_new(TLSv1_client_method()); + break; diff --git a/app-crypt/qca/qca-2.1.1-r1.ebuild b/app-crypt/qca/qca-2.1.1-r1.ebuild new file mode 100644 index 000000000000..158e45af25d5 --- /dev/null +++ b/app-crypt/qca/qca-2.1.1-r1.ebuild @@ -0,0 +1,124 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit cmake-utils multibuild qmake-utils + +DESCRIPTION="Qt Cryptographic Architecture (QCA)" +HOMEPAGE="http://delta.affinix.com/qca/" +SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz" + +LICENSE="LGPL-2.1" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris" + +IUSE="botan debug doc examples gcrypt gpg libressl logger nss +openssl pkcs11 +qt4 qt5 sasl softstore test" +REQUIRED_USE="|| ( qt4 qt5 )" + +RDEPEND=" + !app-crypt/qca-cyrus-sasl + !app-crypt/qca-gnupg + !app-crypt/qca-logger + !app-crypt/qca-ossl + !app-crypt/qca-pkcs11 + botan? ( dev-libs/botan ) + gcrypt? ( dev-libs/libgcrypt:= ) + gpg? ( app-crypt/gnupg ) + nss? ( dev-libs/nss ) + openssl? ( + !libressl? ( >=dev-libs/openssl-1.0.1:0 ) + libressl? ( dev-libs/libressl ) + ) + pkcs11? ( + !libressl? ( dev-libs/openssl:0 ) + libressl? ( dev-libs/libressl ) + dev-libs/pkcs11-helper + ) + qt4? ( dev-qt/qtcore:4 ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtconcurrent:5 + dev-qt/qtnetwork:5 + ) + sasl? ( dev-libs/cyrus-sasl:2 ) +" +DEPEND="${RDEPEND} + doc? ( app-doc/doxygen ) + test? ( + qt4? ( dev-qt/qttest:4 ) + qt5? ( dev-qt/qttest:5 ) + ) +" + +DOCS=( README TODO ) + +PATCHES=( + "${FILESDIR}/${PN}-disable-pgp-test.patch" + "${FILESDIR}/${P}-libressl-230-sslv3.patch" + "${FILESDIR}/${P}-libressl-230-sha0.patch" +) + +qca_plugin_use() { + echo -DWITH_${2:-$1}_PLUGIN=$(usex "$1") +} + +pkg_setup() { + MULTIBUILD_VARIANTS=( $(usev qt4) $(usev qt5) ) +} + +src_configure() { + myconfigure() { + local mycmakeargs=( + -DQCA_FEATURE_INSTALL_DIR="${EPREFIX}$(${MULTIBUILD_VARIANT}_get_mkspecsdir)/features" + -DQCA_PLUGINS_INSTALL_DIR="${EPREFIX}$(${MULTIBUILD_VARIANT}_get_plugindir)" + $(qca_plugin_use botan) + $(qca_plugin_use gcrypt) + $(qca_plugin_use gpg gnupg) + $(qca_plugin_use logger) + $(qca_plugin_use nss) + $(qca_plugin_use openssl ossl) + $(qca_plugin_use pkcs11) + $(qca_plugin_use sasl cyrus-sasl) + $(qca_plugin_use softstore) + -DBUILD_TESTS=$(usex test) + ) + + if [[ ${MULTIBUILD_VARIANT} == qt4 ]]; then + mycmakeargs+=(-DQT4_BUILD=ON) + fi + + cmake-utils_src_configure + } + + multibuild_foreach_variant myconfigure +} + +src_compile() { + multibuild_foreach_variant cmake-utils_src_compile +} + +src_test() { + mytest() { + local -x QCA_PLUGIN_PATH="${BUILD_DIR}/lib/qca" + cmake-utils_src_test + } + + multibuild_foreach_variant mytest +} + +src_install() { + multibuild_foreach_variant cmake-utils_src_install + + if use doc; then + pushd "${BUILD_DIR}" >/dev/null || die + doxygen Doxyfile.in || die + dodoc -r apidocs/html + popd >/dev/null || die + fi + + if use examples; then + dodoc -r "${S}"/examples + fi +} |