diff options
-rw-r--r-- | dev-libs/crypto++/ChangeLog | 8 | ||||
-rw-r--r-- | dev-libs/crypto++/crypto++-5.6.1-r2.ebuild | 55 | ||||
-rw-r--r-- | dev-libs/crypto++/files/crypto++-5.6.1-rijndael.patch | 14 |
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; |