Fix bug 313571 - openssl-1 support, it also removes MD2 support
authorMaciej Mrozowski <reavertm@gentoo.org>
Sun, 18 Apr 2010 02:28:43 +0000 (02:28 +0000)
committerMaciej Mrozowski <reavertm@gentoo.org>
Sun, 18 Apr 2010 02:28:43 +0000 (02:28 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64

app-crypt/qca-ossl/ChangeLog
app-crypt/qca-ossl/Manifest
app-crypt/qca-ossl/files/qca-ossl-openssl-1.0.0.patch [new file with mode: 0644]
app-crypt/qca-ossl/qca-ossl-2.0.0_beta3-r2.ebuild [new file with mode: 0644]

index 09f13b966ff1a6c666888e2ef53619dc1247ea0d..ae96608a47dfef2a79697124a22b00f60cf1a747 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for app-crypt/qca-ossl
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-crypt/qca-ossl/ChangeLog,v 1.24 2010/03/26 23:54:21 yngwin Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-crypt/qca-ossl/ChangeLog,v 1.25 2010/04/18 02:28:42 reavertm Exp $
+
+*qca-ossl-2.0.0_beta3-r2 (18 Apr 2010)
+
+  18 Apr 2010; Maciej Mrozowski <reavertm@gentoo.org>
+  +files/qca-ossl-openssl-1.0.0.patch, +qca-ossl-2.0.0_beta3-r2.ebuild:
+  Fix bug 313571 - openssl-1 support
 
   26 Mar 2010; Ben de Groot <yngwin@gentoo.org>
   qca-ossl-2.0.0_beta3-r1.ebuild:
index 123d6a84e7dd6b93513ee0fc02bf26230eb10ede..a8df3faad4f0ab5ca9cb23c2cad31bbfcead6cd0 100644 (file)
@@ -1,5 +1,7 @@
 AUX qca-ossl-openssl-0.9.8i.patch 774 RMD160 711598d6c52f03abe234058867ecbe66206d42b8 SHA1 2cad3a7c536ab20b94d988ed7265ea002e0e08b9 SHA256 1fff9870c295a5634e203f836ad6c201fed8eb8fc10ab4c0643a2ec464422e4f
+AUX qca-ossl-openssl-1.0.0.patch 4278 RMD160 06d689b2b5e6ed3409c6de791f5bb841ba06c759 SHA1 a7ef3960fc58df733655e90ab11a3c8d6c3b0c85 SHA256 e459f04e6bbe9f145f7e59f67973739da63f2edca96a75d611031ed19e7b7a2d
 DIST qca-ossl-2.0.0-beta3.tar.bz2 49188 RMD160 c979c3c3427eb45e8866e28746f83966e8bcf3c2 SHA1 dd925e8732ff76f24f9f90f4094abaf2f0ac27bf SHA256 08e09ff586b184d5fb53b88f0b48eed0a7bf0a5f210a9f97a76cf4cd5446c67b
 EBUILD qca-ossl-2.0.0_beta3-r1.ebuild 1191 RMD160 8ba859302f728cb2910133b1aa5d573cea3b0d9b SHA1 e4215e5b8f06c7252aea1c13e86b1290f3be4906 SHA256 59db724936907f9d9b72f4d83f33e529a28134cbda8a233b33afeda8ee6a8f44
-MISC ChangeLog 4243 RMD160 88d9184a6950b215ad08cb18768606c3555bc93b SHA1 91ea0fee35950f6cc82d16dd59f4461f17d4c741 SHA256 90cb11128ae9247f5fdca9aec3fe95aac7c0f9f7b95d8ce01642d89996abab13
+EBUILD qca-ossl-2.0.0_beta3-r2.ebuild 1199 RMD160 989ee06672bb1850f8096e86bdce191658db3e94 SHA1 ce985e04da19e3e6432ec3754540056d20678e72 SHA256 097861e66a013a08a5c697076598383ed94a34d49f968e991925f4962ff63e78
+MISC ChangeLog 4449 RMD160 f534091d75856c34a9fe866ac8de38afca42dc43 SHA1 2fe869924616760c23520fb7414da9c5f033611f SHA256 0a4c38273482b9e3cdbc706f961d03bd8f3d1c8824029d29a3d88783e99d6c8b
 MISC metadata.xml 192 RMD160 745ecce4d913885d0c5794b96fafd63a29a6e19e SHA1 fe4c3a2accae45b2ade98c5b45a3bd4533aac681 SHA256 2f70cf009da734f5a0166d90a267b186b6a4148cec4778a7f27ca8ef38709096
diff --git a/app-crypt/qca-ossl/files/qca-ossl-openssl-1.0.0.patch b/app-crypt/qca-ossl/files/qca-ossl-openssl-1.0.0.patch
new file mode 100644 (file)
index 0000000..7c6fa5b
--- /dev/null
@@ -0,0 +1,155 @@
+diff -ru ../qca-ossl-2.0.0-beta3/CMakeLists.txt ./CMakeLists.txt
+--- ../qca-ossl-2.0.0-beta3/CMakeLists.txt     2007-06-29 23:10:53.000000000 +0200
++++ ./CMakeLists.txt   2010-04-18 04:05:09.000000000 +0200
+@@ -1,5 +1,12 @@
+ # QCA OSSL
+ 
++INCLUDE(CheckFunctionExists)
++SET(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
++CHECK_FUNCTION_EXISTS(EVP_md2 HAVE_OPENSSL_MD2)
++IF (HAVE_OPENSSL_MD2)
++  ADD_DEFINITIONS(-DHAVE_OPENSSL_MD2)
++ENDIF (HAVE_OPENSSL_MD2)
++
+ SET(QCA_OSSL_SOURCES qca-ossl.cpp)
+ 
+ MY_AUTOMOC( QCA_OSSL_SOURCES )
+diff -ru ../qca-ossl-2.0.0-beta3/qca-ossl.cpp ./qca-ossl.cpp
+--- ../qca-ossl-2.0.0-beta3/qca-ossl.cpp       2007-12-11 07:34:57.000000000 +0100
++++ ./qca-ossl.cpp     2010-04-18 04:08:46.000000000 +0200
+@@ -42,6 +42,15 @@
+ #define OSSL_097
+ #endif
+ 
++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10000000L
++// OpenSSL 1.0.0 makes a few changes that aren't very C++ friendly...
++// Among other things, CHECKED_PTR_OF returns a void*, but is used in
++// contexts requiring STACK pointers.
++#undef CHECKED_PTR_OF
++#define CHECKED_PTR_OF(type, p) \
++                  ((_STACK*) (1 ? p : (type*)0))
++#endif
++
+ using namespace QCA;
+ 
+ namespace opensslQCAPlugin {
+@@ -1771,8 +1780,10 @@
+                       md = EVP_sha1();
+               else if(alg == EMSA3_MD5)
+                       md = EVP_md5();
++#ifdef HAVE_OPENSSL_MD2
+               else if(alg == EMSA3_MD2)
+                       md = EVP_md2();
++#endif
+               else if(alg == EMSA3_RIPEMD160)
+                       md = EVP_ripemd160();
+               else if(alg == EMSA3_Raw)
+@@ -1789,8 +1800,10 @@
+                       md = EVP_sha1();
+               else if(alg == EMSA3_MD5)
+                       md = EVP_md5();
++#ifdef HAVE_OPENSSL_MD2
+               else if(alg == EMSA3_MD2)
+                       md = EVP_md2();
++#endif
+               else if(alg == EMSA3_RIPEMD160)
+                       md = EVP_ripemd160();
+               else if(alg == EMSA3_Raw)
+@@ -3385,9 +3398,11 @@
+               case NID_md5WithRSAEncryption:
+                   p.sigalgo = QCA::EMSA3_MD5;
+                   break;
++#ifdef HAVE_OPENSSL_MD2
+               case NID_md2WithRSAEncryption:
+                   p.sigalgo = QCA::EMSA3_MD2;
+                   break;
++#endif
+               case NID_ripemd160WithRSA:
+                   p.sigalgo = QCA::EMSA3_RIPEMD160;
+                   break;
+@@ -3871,9 +3886,11 @@
+               case NID_md5WithRSAEncryption:
+                   p.sigalgo = QCA::EMSA3_MD5;
+                   break;
++#ifdef HAVE_OPENSSL_MD2
+               case NID_md2WithRSAEncryption:
+                   p.sigalgo = QCA::EMSA3_MD2;
+                   break;
++#endif
+               case NID_ripemd160WithRSA:
+                   p.sigalgo = QCA::EMSA3_RIPEMD160;
+                   break;
+@@ -4061,9 +4078,11 @@
+               case NID_md5WithRSAEncryption:
+                   p.sigalgo = QCA::EMSA3_MD5;
+                   break;
++#ifdef HAVE_OPENSSL_MD2
+               case NID_md2WithRSAEncryption:
+                   p.sigalgo = QCA::EMSA3_MD2;
+                   break;
++#endif
+               case NID_ripemd160WithRSA:
+                   p.sigalgo = QCA::EMSA3_RIPEMD160;
+                   break;
+@@ -6582,7 +6601,9 @@
+       list += "sha1";
+       list += "sha0";
+       list += "ripemd160";
++#ifdef HAVE_OPENSSL_MD2
+       list += "md2";
++#endif
+       list += "md4";
+       list += "md5";
+ #ifdef SHA224_DIGEST_LENGTH
+@@ -6597,9 +6618,11 @@
+ #ifdef SHA512_DIGEST_LENGTH
+       list += "sha512";
+ #endif
++/*
+ #ifdef OBJ_whirlpool
+       list += "whirlpool";
+ #endif
++*/
+       return list;
+ }
+ 
+@@ -6757,7 +6780,9 @@
+               list += all_hash_types();
+               list += all_mac_types();
+               list += all_cipher_types();
++#ifdef HAVE_OPENSSL_MD2
+               list += "pbkdf1(md2)";
++#endif
+               list += "pbkdf1(sha1)";
+               list += "pbkdf2(sha1)";
+               list += "pkey";
+@@ -6788,8 +6813,10 @@
+                       return new opensslHashContext( EVP_sha(), this, type);
+               else if ( type == "ripemd160" )
+                       return new opensslHashContext( EVP_ripemd160(), this, type);
++#ifdef HAVE_OPENSSL_MD2
+               else if ( type == "md2" )
+                       return new opensslHashContext( EVP_md2(), this, type);
++#endif
+               else if ( type == "md4" )
+                       return new opensslHashContext( EVP_md4(), this, type);
+               else if ( type == "md5" )
+@@ -6810,14 +6837,18 @@
+               else if ( type == "sha512" )
+                       return new opensslHashContext( EVP_sha512(), this, type);
+ #endif
++/*
+ #ifdef OBJ_whirlpool
+               else if ( type == "whirlpool" )
+                       return new opensslHashContext( EVP_whirlpool(), this, type);
+ #endif
++*/
+               else if ( type == "pbkdf1(sha1)" )
+                       return new opensslPbkdf1Context( EVP_sha1(), this, type );
++#ifdef HAVE_OPENSSL_MD2
+               else if ( type == "pbkdf1(md2)" )
+                       return new opensslPbkdf1Context( EVP_md2(), this, type );
++#endif
+               else if ( type == "pbkdf2(sha1)" )
+                       return new opensslPbkdf2Context( this, type );
+               else if ( type == "hmac(md5)" )
diff --git a/app-crypt/qca-ossl/qca-ossl-2.0.0_beta3-r2.ebuild b/app-crypt/qca-ossl/qca-ossl-2.0.0_beta3-r2.ebuild
new file mode 100644 (file)
index 0000000..814541f
--- /dev/null
@@ -0,0 +1,42 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-crypt/qca-ossl/qca-ossl-2.0.0_beta3-r2.ebuild,v 1.1 2010/04/18 02:28:42 reavertm Exp $
+
+EAPI="2"
+inherit eutils qt4-r2
+
+MY_P="${P/_/-}"
+QCA_VER="${PV%.*}"
+
+DESCRIPTION="TLS, S/MIME, PKCS#12, crypto algorithms plugin for QCA"
+HOMEPAGE="http://delta.affinix.com/qca/"
+SRC_URI="http://delta.affinix.com/download/qca/${QCA_VER}/plugins/${MY_P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="debug"
+
+DEPEND=">=app-crypt/qca-${QCA_VER}[debug?]
+       >=dev-libs/openssl-0.9.6"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=( "${FILESDIR}/${PN}-openssl-1.0.0.patch" )
+
+src_configure() {
+       use prefix || EPREFIX=
+       # Fix some locations
+       sed -e "s|/usr/|${EPREFIX}/usr/|g" -e "s|usr/local|usr/|g" -i configure
+
+       # cannot use econf because of non-standard configure script
+       ./configure --qtdir="${EPREFIX}"/usr --no-separate-debug-info \
+               $(use debug && echo "--debug" || echo "--release") || die
+
+       eqmake4
+}
+
+src_install() {
+       emake INSTALL_ROOT="${D}" install || die
+}