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