summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-libs/crypto++/ChangeLog8
-rw-r--r--dev-libs/crypto++/crypto++-5.6.1-r2.ebuild55
-rw-r--r--dev-libs/crypto++/files/crypto++-5.6.1-rijndael.patch14
3 files changed, 76 insertions, 1 deletions
diff --git a/dev-libs/crypto++/ChangeLog b/dev-libs/crypto++/ChangeLog
index f3f041b39fbb..cf7ee454266a 100644
--- a/dev-libs/crypto++/ChangeLog
+++ b/dev-libs/crypto++/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-libs/crypto++
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/crypto++/ChangeLog,v 1.72 2011/02/27 13:56:36 arfrever Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/crypto++/ChangeLog,v 1.73 2011/12/28 07:02:03 patrick Exp $
+
+*crypto++-5.6.1-r2 (28 Dec 2011)
+
+ 28 Dec 2011; Patrick Lauer <patrick@gentoo.org> +crypto++-5.6.1-r2.ebuild,
+ +files/crypto++-5.6.1-rijndael.patch:
+ Fixing #322713 again, this time with upstream patch
27 Feb 2011; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
-crypto++-5.5.2-r1.ebuild, -crypto++-5.6.0.ebuild, -crypto++-5.6.0-r1.ebuild,
diff --git a/dev-libs/crypto++/crypto++-5.6.1-r2.ebuild b/dev-libs/crypto++/crypto++-5.6.1-r2.ebuild
new file mode 100644
index 000000000000..2891f858eb5d
--- /dev/null
+++ b/dev-libs/crypto++/crypto++-5.6.1-r2.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/crypto++/crypto++-5.6.1-r2.ebuild,v 1.1 2011/12/28 07:02:02 patrick Exp $
+
+EAPI="3"
+
+inherit eutils flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="Crypto++ is a C++ class library of cryptographic schemes"
+HOMEPAGE="http://cryptopp.com"
+SRC_URI="mirror://sourceforge/cryptopp/cryptopp${PV//.}.zip"
+
+LICENSE="cryptopp"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-fix_build_system.patch" \
+ "${FILESDIR}/${P}-sunos.patch" \
+ "${FILESDIR}/${P}-rijndael.patch"
+}
+
+src_compile() {
+ # Higher optimizations cause problems.
+ replace-flags -O? -O1
+ filter-flags -fomit-frame-pointer
+
+ emake -f GNUmakefile CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}" \
+ LIBDIR="$(get_libdir)" || die "emake failed"
+}
+
+src_test() {
+ # Ensure that all test vectors have Unix line endings.
+ local file
+ for file in TestVectors/*; do
+ edos2unix ${file}
+ done
+
+ if ! emake CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}" test; then
+ eerror "Crypto++ self-tests failed."
+ eerror "Try to remove some optimization flags and reemerge Crypto++."
+ die "emake test failed"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" LIBDIR="$(get_libdir)" install \
+ || die "emake install failed"
+}
diff --git a/dev-libs/crypto++/files/crypto++-5.6.1-rijndael.patch b/dev-libs/crypto++/files/crypto++-5.6.1-rijndael.patch
new file mode 100644
index 000000000000..153fa44b913f
--- /dev/null
+++ b/dev-libs/crypto++/files/crypto++-5.6.1-rijndael.patch
@@ -0,0 +1,14 @@
+--- rijndael.cpp 2010-08-06 18:46:22.000000000 +0200
++++ rijndael.cpp2 2011-12-27 16:10:52.606933355 +0100
+@@ -349,7 +349,11 @@
+ void Rijndael::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
+ {
+ #if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE) || CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE
++#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)
+ if (HasSSE2())
++#else
++ if (HasAESNI())
++#endif
+ {
+ Rijndael::Enc::AdvancedProcessBlocks(inBlock, xorBlock, outBlock, 16, 0);
+ return;