See attachments. Builds and works for me.
Index: xca.spec
===================================================================
RCS file: /cvsroot/SPECS/xca.spec,v
retrieving revision 1.18
diff -u -r1.18 xca.spec
--- xca.spec	26 Oct 2004 13:13:43 -0000	1.18
+++ xca.spec	16 Oct 2006 03:05:13 -0000
@@ -4,7 +4,7 @@
 Summary(pl):	GUI do obsługi certyfikatów X509, kluczy RSA, żądań PKCS#10
 Name:		xca
 Version:	0.5.1
-Release:	0.1
+Release:	0.2
 Epoch:		1
 License:	BSD
 Group:		Applications/Communications
@@ -13,6 +13,9 @@
 Patch0:		%{name}-misc.patch
 Patch1:		%{name}-desktop.patch
 Patch2:		%{name}-qfont.patch
+Patch3:		%{name}-gcc4.patch
+Patch4:		%{name}-openssl.patch
+Patch5:		%{name}-db4.5.patch
 URL:		http://www.hohnstaedt.de/xca.html
 BuildRequires:	db-cxx-devel
 BuildRequires:	openssl-devel >= 0.9.7d
@@ -41,6 +44,9 @@
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 
diff -urNp xca-0.5.1.org/lib/asn1time.h xca-0.5.1/lib/asn1time.h
--- xca-0.5.1.org/lib/asn1time.h	2003-08-06 11:15:37.000000000 +0300
+++ xca-0.5.1/lib/asn1time.h	2006-09-24 21:56:09.000000000 +0300
@@ -75,7 +75,7 @@ class a1time
 	QString toPlain() const;
 	QString toSortable() const;
 	int ymdg(int *y, int *m, int *d, int *g) const;
-	int a1time::ymdg(int *y, int *m, int *d, int *h, int *M, int *s, int *g) const;
+	int ymdg(int *y, int *m, int *d, int *h, int *M, int *s, int *g) const;
 	ASN1_TIME *get() const;
 	ASN1_TIME *get_utc() const;
 	a1time &now(int delta = 0);
diff -urNp xca-0.5.1.org/lib/db_crl.h xca-0.5.1/lib/db_crl.h
--- xca-0.5.1.org/lib/db_crl.h	2004-04-16 01:31:31.000000000 +0300
+++ xca-0.5.1/lib/db_crl.h	2006-09-24 21:56:19.000000000 +0300
@@ -69,7 +69,7 @@ class db_crl: public db_base
 	void preprocess();
 	void inToCont(pki_base *pki);
 	pki_base *insert(pki_base *item);
-	void db_crl::deletePKI(pki_base *pki);
+	void deletePKI(pki_base *pki);
     signals:
 	void updateCertView();
 };
diff -urNp xca-0.5.1.org/lib/db_x509.h xca-0.5.1/lib/db_x509.h
--- xca-0.5.1.org/lib/db_x509.h	2004-02-18 02:03:05.000000000 +0200
+++ xca-0.5.1/lib/db_x509.h	2006-09-24 21:57:08.000000000 +0300
@@ -84,7 +84,7 @@ class db_x509: public db_x509super
 	void writeAllCerts(const QString fname, bool onlyTrusted);
 	pki_x509 *getByIssSerial(const pki_x509 *issuer, const a1int &a);
 	pki_x509 *getBySubject(const x509name &xname, pki_x509 *last = NULL);
-	pki_base *db_x509::insert(pki_base *item);
+	pki_base *insert(pki_base *item);
     public slots:
 	void revokeCert(const x509rev &revok, const pki_x509 *issuer);
     
diff -urNp xca-0.5.1.org/lib/pki_key.h xca-0.5.1/lib/pki_key.h
--- xca-0.5.1.org/lib/pki_key.h	2003-12-10 08:43:05.000000000 +0200
+++ xca-0.5.1/lib/pki_key.h	2006-09-24 21:56:30.000000000 +0300
@@ -83,7 +83,7 @@ class pki_key: public pki_base
 	pki_key(const QString name = "", int type = EVP_PKEY_RSA);
 	pki_key(EVP_PKEY *pkey);
 	// copy constructor
-	pki_key::pki_key(const pki_key *pk);
+	pki_key(const pki_key *pk);
 	/* destructor */
 	~pki_key();
 	
diff -urNp xca-0.5.1.org/lib/asn1time.cpp xca-0.5.1/lib/asn1time.cpp
--- xca-0.5.1.org/lib/asn1time.cpp	2003-12-14 21:11:33.000000000 +0200
+++ xca-0.5.1/lib/asn1time.cpp	2006-09-24 22:22:29.000000000 +0300
@@ -250,7 +250,7 @@ unsigned char *a1time::d2i(unsigned char
 	unsigned char *mp = p;
 	if (time)
 		ASN1_TIME_free(time);
-	time = d2i_ASN1_TIME(NULL, &mp, size);
+	time = d2i_ASN1_TIME(NULL, (const unsigned char **)&mp, size);
 	return mp;
 }
 
diff -urNp xca-0.5.1.org/lib/pki_crl.cpp xca-0.5.1/lib/pki_crl.cpp
--- xca-0.5.1.org/lib/pki_crl.cpp	2004-04-20 00:19:35.000000000 +0300
+++ xca-0.5.1/lib/pki_crl.cpp	2006-09-24 22:49:05.000000000 +0300
@@ -131,7 +131,7 @@ pki_crl::~pki_crl()
 void pki_crl::fromData(unsigned char *p, int size)
 {
 	X509_CRL *crl_sik = crl;
-	crl = d2i_X509_CRL(NULL, &p, size);
+	crl = d2i_X509_CRL(NULL, (const unsigned char **)&p, size);
 	if (crl)
 		X509_CRL_free(crl_sik);
 	else
diff -urNp xca-0.5.1.org/lib/pki_key.cpp xca-0.5.1/lib/pki_key.cpp
--- xca-0.5.1.org/lib/pki_key.cpp	2004-02-18 02:03:06.000000000 +0200
+++ xca-0.5.1/lib/pki_key.cpp	2006-09-24 22:58:03.000000000 +0300
@@ -107,7 +107,7 @@ pki_key::pki_key(const pki_key *pk) 
 	if (pk == NULL) return;
 	key->type = pk->key->type;
 	if (key->type == EVP_PKEY_RSA) {
-		key->pkey.rsa=((RSA *)ASN1_dup( (int (*)())i2d_RSAPrivateKey, (char *(*)())d2i_RSAPrivateKey,(char *)pk->key->pkey.rsa));
+		key->pkey.rsa=ASN1_dup_of_const(RSA, i2d_RSAPrivateKey, d2i_RSAPrivateKey, pk->key->pkey.rsa);
 	}
 	// TODO add DSA support.....	
 	openssl_error();
@@ -216,7 +216,7 @@ void pki_key::fromData(unsigned char *p,
 		rsakey = d2i_RSAPrivateKey(NULL, &pdec, decsize);
 #endif
 		if (ign_openssl_error()) {
-			rsakey = d2i_RSA_PUBKEY(NULL, &sik, decsize);
+			rsakey = d2i_RSA_PUBKEY(NULL, (const unsigned char **)&sik, decsize);
 		}
 		openssl_error(); 
 		if (rsakey) EVP_PKEY_assign_RSA(key, rsakey);
diff -urNp xca-0.5.1.org/lib/pki_x509.cpp xca-0.5.1/lib/pki_x509.cpp
--- xca-0.5.1.org/lib/pki_x509.cpp	2004-02-18 02:03:06.000000000 +0200
+++ xca-0.5.1/lib/pki_x509.cpp	2006-09-24 22:24:30.000000000 +0300
@@ -276,7 +276,7 @@ void pki_x509::fromData(unsigned char *p
 	version = intFromData(&p1);
 	if (version >=1 || version <= 4) {
 		sCert = intFromData(&p1);
-		cert = d2i_X509(NULL, &p1, sCert);
+		cert = d2i_X509(NULL, (const unsigned char **)&p1, sCert);
 		trust = intFromData(&p1);
 		sRev = intFromData(&p1);
 		if (sRev) {
@@ -314,7 +314,7 @@ void pki_x509::fromData(unsigned char *p
 		// version 3 did save a recent date :-((
 	}
 	else { // old version
-		cert = d2i_X509(NULL, &p, size);
+		cert = d2i_X509(NULL, (const unsigned char **)&p, size);
 		revoked = NULL;
 		trust = 1;
 		efftrust = 1;
diff -urNp xca-0.5.1.org/lib/pki_x509req.cpp xca-0.5.1/lib/pki_x509req.cpp
--- xca-0.5.1.org/lib/pki_x509req.cpp	2004-02-05 22:17:55.000000000 +0200
+++ xca-0.5.1/lib/pki_x509req.cpp	2006-09-24 22:51:19.000000000 +0300
@@ -134,9 +134,9 @@ void pki_x509req::fromData(unsigned char
 {
 	unsigned char *ps = p;
 	privkey = NULL;
-	request = d2i_X509_REQ(&request, &ps, size);
+	request = d2i_X509_REQ(&request, (const unsigned char **)&ps, size);
 	if (ps - p < size)
-		spki = d2i_NETSCAPE_SPKI(NULL, &ps , size + p - ps); 
+		spki = d2i_NETSCAPE_SPKI(NULL, (const unsigned char **)&ps , size + p - ps); 
 	openssl_error();
 }
 
@@ -257,7 +257,7 @@ void pki_x509req::setSPKIFromData(unsign
 {
 	NETSCAPE_SPKI *spki = NULL;
 
-	spki = d2i_NETSCAPE_SPKI(NULL,&p,size);
+	spki = d2i_NETSCAPE_SPKI(NULL,(const unsigned char **)&p,size);
 	if (spki == NULL) goto err;
 
 	set_spki (spki);
diff -urNp xca-0.5.1.org/lib/x509name.cpp xca-0.5.1/lib/x509name.cpp
--- xca-0.5.1.org/lib/x509name.cpp	2003-12-12 01:41:09.000000000 +0200
+++ xca-0.5.1/lib/x509name.cpp	2006-09-24 22:58:52.000000000 +0300
@@ -149,7 +149,7 @@ unsigned char *x509name::d2i(unsigned ch
 {
 	unsigned char *mp = p;
 	X509_NAME *xn_sik = xn;
-	xn = d2i_X509_NAME(NULL, &mp, size);
+	xn = d2i_X509_NAME(NULL, (const unsigned char **)&mp, size);
 	if (xn == NULL)
 		xn = xn_sik;
 	else
diff -urNp xca-0.5.1.org/lib/x509rev.cpp xca-0.5.1/lib/x509rev.cpp
--- xca-0.5.1.org/lib/x509rev.cpp	2003-11-24 15:42:44.000000000 +0200
+++ xca-0.5.1/lib/x509rev.cpp	2006-09-24 22:20:09.000000000 +0300
@@ -50,9 +50,8 @@
 
 #include "x509rev.h"
 
-#define X509_REVOKED_dup(x5r) (X509_REVOKED *)ASN1_dup((int (*)())i2d_X509_REVOKED, \
-		(char *(*)())d2i_X509_REVOKED,(char *)x5r)
-	
+#define X509_REVOKED_dup(x5r) ASN1_dup_of (X509_REVOKED, i2d_X509_REVOKED, d2i_X509_REVOKED, x5r)
+
 x509rev::x509rev()
 {
 	rev = X509_REVOKED_new();
diff -urNp xca-0.5.1.org/widgets/MainWindow.cpp xca-0.5.1/widgets/MainWindow.cpp
--- xca-0.5.1.org/widgets/MainWindow.cpp	2004-06-13 23:22:37.000000000 +0200
+++ xca-0.5.1/widgets/MainWindow.cpp	2006-10-16 04:50:07.000000000 +0200
@@ -445,7 +445,7 @@ void MainWindow::Error(errorEx &err)
 	}
 }
 
-void MainWindow::dberr(const char *errpfx, char *msg)
+void MainWindow::dberr(const DbEnv *dbenv, const char *errpfx, const char *msg)
 {
 	errorEx e(QString(errpfx) + "\n" + msg);
 	Error(e);
diff -urNp xca-0.5.1.org/widgets/MainWindow.h xca-0.5.1/widgets/MainWindow.h
--- xca-0.5.1.org/widgets/MainWindow.h	2004-04-15 01:36:56.000000000 +0200
+++ xca-0.5.1/widgets/MainWindow.h	2006-10-16 04:49:48.000000000 +0200
@@ -104,7 +104,7 @@ class MainWindow: public MainWindow_UI
 	int initPass();
 	static int passRead(char *buf, int size, int rwflag, void *userdata);
 	static int passWrite(char *buf, int size, int rwflag, void *userdata);
-	static void dberr(const char *errpfx, char *msg);
+	static void dberr(const DbEnv *dbenv, const char *errpfx, const char *msg);
 	static NewX509 *newX509();
 	static QString md5passwd(const char *pass);
 	static void Error(errorEx &err);
_______________________________________________
pld-devel-en mailing list
pld-devel-en@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-en

Reply via email to