On Sun, Oct 03, 2010 at 02:44:36PM +0200, Dorian Büttner wrote:
> ok tryin what i found here https://trac.macports.org/ticket/25628 , 'll 
> let you know...

Seems to work. I removed the #ifdef's, we really don't need them...

ok?


Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/kde/libs3/Makefile,v
retrieving revision 1.109
diff -u -p -r1.109 Makefile
--- Makefile    10 Jul 2010 12:44:30 -0000      1.109
+++ Makefile    3 Oct 2010 18:28:49 -0000
@@ -93,7 +93,7 @@ LIB_DEPENDS-cups = \
 
 WANTLIB-cups = ${WANTLIB}
 
-REVISION-main = 10
+REVISION-main = 11
 REVISION-cups = 6
 WANTLIB-main += Half Iex IlmImf.>=4 IlmThread Imath artsflow.>=1.0 \
        artsflow_idl aspell audiofile bz2 glib-2.0 gmodule-2.0 gthread-2.0 \
Index: patches/patch-kio_kssl_kopenssl_cc
===================================================================
RCS file: patches/patch-kio_kssl_kopenssl_cc
diff -N patches/patch-kio_kssl_kopenssl_cc
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-kio_kssl_kopenssl_cc  3 Oct 2010 18:28:49 -0000
@@ -0,0 +1,58 @@
+$OpenBSD$
+--- kio/kssl/kopenssl.cc.orig  Sat Jul 22 10:16:39 2006
++++ kio/kssl/kopenssl.cc       Sun Oct  3 19:52:18 2010
+@@ -96,9 +96,8 @@ static int  (*K_BIO_write) (BIO *b, const void *data, 
+ static int (*K_PEM_ASN1_write_bio) (int (*)(),const char *,BIO *,char *,
+                                    const EVP_CIPHER *,unsigned char *,int ,
+                                             pem_password_cb *, void *) = 0L;
+-static ASN1_METHOD* (*K_X509_asn1_meth) (void) = 0L;
+-static int (*K_ASN1_i2d_fp)(int (*)(),FILE *,unsigned char *) = 0L;
+-static int (*K_i2d_ASN1_HEADER)(ASN1_HEADER *, unsigned char **) = 0L;
++static int (*K_ASN1_item_i2d_fp)(ASN1_ITEM *,FILE *,unsigned char *) = 0L;
++static ASN1_ITEM *K_NETSCAPE_X509_it = 0L;
+ static int (*K_X509_print_fp)  (FILE *, X509*) = 0L;
+ static int (*K_i2d_PKCS12)  (PKCS12*, unsigned char**) = 0L;
+ static int (*K_i2d_PKCS12_fp)  (FILE *, PKCS12*) = 0L;
+@@ -404,9 +403,8 @@ KConfig *cfg;
+       K_BIO_ctrl = (long (*) (BIO *,int,long,void *)) 
_cryptoLib->symbol("BIO_ctrl");
+       K_BIO_write = (int (*) (BIO *b, const void *data, int len)) 
_cryptoLib->symbol("BIO_write");
+       K_PEM_ASN1_write_bio = (int (*)(int (*)(), const char *,BIO*, char*, 
const EVP_CIPHER *, unsigned char *, int, pem_password_cb *, void *)) 
_cryptoLib->symbol("PEM_ASN1_write_bio");
+-      K_X509_asn1_meth = (ASN1_METHOD* (*)(void)) 
_cryptoLib->symbol("X509_asn1_meth");
+-      K_ASN1_i2d_fp = (int (*)(int (*)(), FILE*, unsigned char *)) 
_cryptoLib->symbol("ASN1_i2d_fp");
+-      K_i2d_ASN1_HEADER = (int (*)(ASN1_HEADER *, unsigned char **)) 
_cryptoLib->symbol("i2d_ASN1_HEADER");
++      K_ASN1_item_i2d_fp = (int (*)(ASN1_ITEM *, FILE*, unsigned char *)) 
_cryptoLib->symbol("ASN1_item_i2d_fp");
++      K_NETSCAPE_X509_it = (ASN1_ITEM *) 
_cryptoLib->symbol("NETSCAPE_X509_it");
+       K_X509_print_fp = (int (*)(FILE*, X509*)) 
_cryptoLib->symbol("X509_print_fp");
+       K_i2d_PKCS12 = (int (*)(PKCS12*, unsigned char**)) 
_cryptoLib->symbol("i2d_PKCS12");
+       K_i2d_PKCS12_fp = (int (*)(FILE *, PKCS12*)) 
_cryptoLib->symbol("i2d_PKCS12_fp");
+@@ -568,7 +566,7 @@ KConfig *cfg;
+       K_SSL_set_session = (int (*)(SSL*,SSL_SESSION*)) 
_sslLib->symbol("SSL_set_session");
+       K_d2i_SSL_SESSION = (SSL_SESSION* (*)(SSL_SESSION**,unsigned char**, 
long)) _sslLib->symbol("d2i_SSL_SESSION");
+       K_i2d_SSL_SESSION = (int (*)(SSL_SESSION*,unsigned char**)) 
_sslLib->symbol("i2d_SSL_SESSION");
+-      K_SSL_get_ciphers = (STACK *(*)(const SSL*)) 
_sslLib->symbol("SSL_get_ciphers");
++      K_SSL_get_ciphers = (STACK_OF(SSL_CIPHER) *(*)(const SSL*)) 
_sslLib->symbol("SSL_get_ciphers");
+ #endif
+ 
+ 
+@@ -956,19 +954,11 @@ int KOpenSSLProxy::PEM_write_bio_X509(BIO *bp, X509 *x
+    else return -1;
+ }
+ 
+-
+-ASN1_METHOD *KOpenSSLProxy::X509_asn1_meth(void) {
+-   if (K_X509_asn1_meth) return (K_X509_asn1_meth)();
+-   else return 0L;
+-}
+-
+-
+ int KOpenSSLProxy::ASN1_i2d_fp(FILE *out,unsigned char *x) {
+-   if (K_ASN1_i2d_fp && K_i2d_ASN1_HEADER)
+-        return (K_ASN1_i2d_fp)((int (*)())K_i2d_ASN1_HEADER, out, x);
++   if (K_ASN1_item_i2d_fp && K_NETSCAPE_X509_it)
++        return (K_ASN1_item_i2d_fp)(K_NETSCAPE_X509_it, out, x);
+    else return -1;
+ }
+-
+ 
+ int KOpenSSLProxy::X509_print(FILE *fp, X509 *x) {
+    if (K_X509_print_fp) return (K_X509_print_fp)(fp, x);
Index: patches/patch-kio_kssl_kopenssl_h
===================================================================
RCS file: patches/patch-kio_kssl_kopenssl_h
diff -N patches/patch-kio_kssl_kopenssl_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-kio_kssl_kopenssl_h   3 Oct 2010 18:28:49 -0000
@@ -0,0 +1,48 @@
+$OpenBSD$
+--- kio/kssl/kopenssl.h.orig   Sat Jul 22 10:16:39 2006
++++ kio/kssl/kopenssl.h        Sun Oct  3 19:53:42 2010
+@@ -48,6 +48,7 @@ class KOpenSSLProxyPrivate;
+ #include <openssl/stack.h>
+ #include <openssl/bn.h>
+ #undef crypt
++#define STACK _STACK
+ #endif
+ 
+ #include <kstaticdeleter.h>
+@@ -448,12 +449,6 @@ friend class KStaticDeleter<KOpenSSLProxy>; (public)
+ 
+ 
+    /*
+-    *   X509_asn1_meth - used for netscape output
+-    */
+-   ASN1_METHOD *X509_asn1_meth();
+-
+-
+-   /*
+     *   ASN1_i2d_fp - used for netscape output
+     */
+    int ASN1_i2d_fp(FILE *out, unsigned char *x);
+@@ -531,6 +526,7 @@ friend class KStaticDeleter<KOpenSSLProxy>; (public)
+     */
+    void sk_free(STACK *s);
+ 
++   void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); }
+ 
+    /* 
+     *  Number of elements in the stack
+@@ -543,6 +539,7 @@ friend class KStaticDeleter<KOpenSSLProxy>; (public)
+     */
+    char *sk_value(STACK *s, int n);
+ 
++   char *sk_value(void *s, int n) { return 
sk_value(reinterpret_cast<STACK*>(s), n); }
+ 
+    /* 
+     *  Create a new stack
+@@ -555,6 +552,7 @@ friend class KStaticDeleter<KOpenSSLProxy>; (public)
+     */
+    int sk_push(STACK *s, char *d);
+ 
++   int sk_push(void *s, void *d) { return 
sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); }
+ 
+    /* 
+     *  Duplicate the stack
Index: patches/patch-kio_kssl_ksmimecrypto_cc
===================================================================
RCS file: patches/patch-kio_kssl_ksmimecrypto_cc
diff -N patches/patch-kio_kssl_ksmimecrypto_cc
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-kio_kssl_ksmimecrypto_cc      3 Oct 2010 18:28:49 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- kio/kssl/ksmimecrypto.cc.orig      Mon Oct 10 17:05:44 2005
++++ kio/kssl/ksmimecrypto.cc   Sun Oct  3 19:44:11 2010
+@@ -87,7 +87,7 @@ KSMIMECryptoPrivate::KSMIMECryptoPrivate(KOpenSSLProxy
+ 
+ 
+ STACK_OF(X509) *KSMIMECryptoPrivate::certsToX509(QPtrList<KSSLCertificate> 
&certs) {
+-    STACK_OF(X509) *x509 = sk_new(NULL);
++    STACK_OF(X509) *x509 = reinterpret_cast<STACK_OF(X509)*>(sk_new(NULL));
+     KSSLCertificate *cert = certs.first();
+     while(cert) {
+       sk_X509_push(x509, cert->getCert());
Index: patches/patch-kio_kssl_ksslcertificate_cc
===================================================================
RCS file: patches/patch-kio_kssl_ksslcertificate_cc
diff -N patches/patch-kio_kssl_ksslcertificate_cc
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-kio_kssl_ksslcertificate_cc   3 Oct 2010 18:28:49 -0000
@@ -0,0 +1,29 @@
+$OpenBSD$
+--- kio/kssl/ksslcertificate.cc.orig   Thu Jan 19 18:06:12 2006
++++ kio/kssl/ksslcertificate.cc        Sun Oct  3 19:54:38 2010
+@@ -1003,17 +1003,16 @@ return qba;
+ QByteArray KSSLCertificate::toNetscape() {
+ QByteArray qba;
+ #ifdef KSSL_HAVE_SSL
+-ASN1_HEADER ah;
+-ASN1_OCTET_STRING os;
+-KTempFile ktf;
++      NETSCAPE_X509 nx;
++      ASN1_OCTET_STRING hdr;
++      KTempFile ktf;
+ 
+-      os.data = (unsigned char *)NETSCAPE_CERT_HDR;
+-      os.length = strlen(NETSCAPE_CERT_HDR);
+-      ah.header = &os;
+-      ah.data = (char *)getCert();
+-      ah.meth = d->kossl->X509_asn1_meth();
++      hdr.data = (unsigned char *)NETSCAPE_CERT_HDR;
++      hdr.length = strlen(NETSCAPE_CERT_HDR);
++      nx.header = &hdr;
++      nx.cert = getCert();
+ 
+-      d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah);
++      d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&nx);
+ 
+       ktf.close();
+ 

Reply via email to