[cryptopp] fix build with gcc-4.7.0

nucleo nucleo at fedoraproject.org
Thu Jan 5 02:44:16 UTC 2012


commit 9a7cacb59cf1feb7550f5ea698360ef39c43e309
Author: nucleo <nucleo at fedoraproject.org>
Date:   Thu Jan 5 04:44:12 2012 +0200

    fix build with gcc-4.7.0

 cryptopp-5.6.1-gcc-4.7.0.patch |   97 ++++++++++++++++++++++++++++++++++++++++
 cryptopp.spec                  |    8 +++-
 2 files changed, 104 insertions(+), 1 deletions(-)
---
diff --git a/cryptopp-5.6.1-gcc-4.7.0.patch b/cryptopp-5.6.1-gcc-4.7.0.patch
new file mode 100644
index 0000000..968dda1
--- /dev/null
+++ b/cryptopp-5.6.1-gcc-4.7.0.patch
@@ -0,0 +1,97 @@
+--- cryptopp/algebra.cpp	2010-08-06 18:44:32.000000000 +0300
++++ cryptopp/algebra.cpp	2012-01-05 03:32:21.337004210 +0200
+@@ -58,7 +58,7 @@
+ 	Element g[3]={b, a};
+ 	unsigned int i0=0, i1=1, i2=2;
+ 
+-	while (!Equal(g[i1], this->Identity()))
++	while (!this->Equal(g[i1], this->Identity()))
+ 	{
+ 		g[i2] = Mod(g[i0], g[i1]);
+ 		unsigned int t = i0; i0 = i1; i1 = i2; i2 = t;
+--- cryptopp/eccrypto.cpp	2010-08-06 18:44:28.000000000 +0300
++++ cryptopp/eccrypto.cpp	2012-01-05 04:04:08.055499801 +0200
+@@ -435,7 +435,7 @@
+ 	StringSource ssG(param.g, true, new HexDecoder);
+ 	Element G;
+ 	bool result = GetCurve().DecodePoint(G, ssG, (size_t)ssG.MaxRetrievable());
+-	SetSubgroupGenerator(G);
++	this->SetSubgroupGenerator(G);
+ 	assert(result);
+ 
+ 	StringSource ssN(param.n, true, new HexDecoder);
+@@ -591,7 +591,7 @@
+ 	if (level >= 2 && pass)
+ 	{
+ 		const Integer &q = GetSubgroupOrder();
+-		Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : ExponentiateElement(g, q);
++		Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : this->ExponentiateElement(g, q);
+ 		pass = pass && IsIdentity(gq);
+ 	}
+ 	return pass;
+@@ -629,7 +629,7 @@
+ 	typename EC::Point P;
+ 	if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size))
+ 		BERDecodeError();
+-	SetPublicElement(P);
++	this->SetPublicElement(P);
+ }
+ 
+ template <class EC>
+--- cryptopp/eccrypto.h	2010-08-06 18:46:24.000000000 +0300
++++ cryptopp/eccrypto.h	2012-01-05 04:04:54.672022639 +0200
+@@ -43,7 +43,7 @@
+ 	void Initialize(const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k = Integer::Zero())
+ 	{
+ 		this->m_groupPrecomputation.SetCurve(ec);
+-		SetSubgroupGenerator(G);
++		this->SetSubgroupGenerator(G);
+ 		m_n = n;
+ 		m_k = k;
+ 	}
+@@ -145,9 +145,9 @@
+ 	typedef typename EC::Point Element;
+ 
+ 	void Initialize(const DL_GroupParameters_EC<EC> &params, const Element &Q)
+-		{this->AccessGroupParameters() = params; SetPublicElement(Q);}
++		{this->AccessGroupParameters() = params; this->SetPublicElement(Q);}
+ 	void Initialize(const EC &ec, const Element &G, const Integer &n, const Element &Q)
+-		{this->AccessGroupParameters().Initialize(ec, G, n); SetPublicElement(Q);}
++		{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPublicElement(Q);}
+ 
+ 	// X509PublicKey
+ 	void BERDecodePublicKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
+@@ -166,9 +166,9 @@
+ 	void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x)
+ 		{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);}
+ 	void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC<EC> &params)
+-		{GenerateRandom(rng, params);}
++		{this->GenerateRandom(rng, params);}
+ 	void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n)
+-		{GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
++		{this->GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
+ 
+ 	// PKCS8PrivateKey
+ 	void BERDecodePrivateKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
+--- cryptopp/panama.cpp	2010-08-09 14:22:42.000000000 +0300
++++ cryptopp/panama.cpp	2012-01-05 04:10:36.356525599 +0200
+@@ -422,7 +422,7 @@
+ {
+ 	this->ThrowIfInvalidTruncatedSize(size);
+ 
+-	PadLastBlock(this->BLOCKSIZE, 0x01);
++	this->PadLastBlock(this->BLOCKSIZE, 0x01);
+ 	
+ 	HashEndianCorrectedBlock(this->m_data);
+ 
+--- cryptopp/secblock.h	2012-01-03 23:15:48.287022036 +0200
++++ cryptopp/secblock.h	2012-01-05 03:22:06.097299323 +0200
+@@ -89,7 +89,7 @@
+ 
+ 	pointer allocate(size_type n, const void * = NULL)
+ 	{
+-		CheckSize(n);
++		this->CheckSize(n);
+ 		if (n == 0)
+ 			return NULL;
+ 
diff --git a/cryptopp.spec b/cryptopp.spec
index 51caa52..0b618d1 100644
--- a/cryptopp.spec
+++ b/cryptopp.spec
@@ -1,6 +1,6 @@
 Name:           cryptopp
 Version:        5.6.1
-Release:        5%{?dist}
+Release:        6%{?dist}
 Summary:        Public domain C++ class library of cryptographic schemes
 License:        Public Domain
 Group:          System Environment/Libraries
@@ -14,6 +14,8 @@ Patch1:         cryptopp-5.6.1-s390.patch
 Patch2:         cryptopp-data-files-location.patch
 # Enable SSE2 only on x86_64
 Patch3:         cryptopp-x86-disable-sse2.patch
+# fix build with gcc-4.7.0 http://groups.google.com/group/cryptopp-users/browse_thread/thread/abad017df4a83883
+Patch4:         cryptopp-5.6.1-gcc-4.7.0.patch
 BuildRequires:  doxygen, autoconf, libtool
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -64,6 +66,7 @@ rm -f GNUmakefile
 %patch1 -p1 -b .s390
 %patch2 -p1
 %patch3
+%patch4 -p1
 autoreconf --verbose --force --install
 perl -pi -e 's/\r$//g' License.txt Readme.txt
 
@@ -126,6 +129,9 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Thu Jan  5 2012 Alexey Kurov <nucleo at fedoraproject.org> - 5.6.1-6
+- fix build with gcc-4.7.0
+
 * Mon Oct 17 2011 Alexey Kurov <nucleo at fedoraproject.org> - 5.6.1-5
 - remove includedir in cryptopp.pc (rhbz#732208)
 


More information about the scm-commits mailing list