mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
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
This commit is contained in:
48
app-crypt/qca/files/qca-2.1.1-libressl-230-sha0.patch
Normal file
48
app-crypt/qca/files/qca-2.1.1-libressl-230-sha0.patch
Normal file
@@ -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
|
||||
28
app-crypt/qca/files/qca-2.1.1-libressl-230-sslv3.patch
Normal file
28
app-crypt/qca/files/qca-2.1.1-libressl-230-sslv3.patch
Normal file
@@ -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;
|
||||
124
app-crypt/qca/qca-2.1.1-r1.ebuild
Normal file
124
app-crypt/qca/qca-2.1.1-r1.ebuild
Normal file
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user