This commit is contained in:
parent
2cc9b83c51
commit
3495fdf026
276
openssl-gcc42.patch
Normal file
276
openssl-gcc42.patch
Normal file
@ -0,0 +1,276 @@
|
||||
From: Peter Hartley <pdh@utter.chaos.org.uk>
|
||||
Subject: [PATCH] OpenSSL vs GCC 4.2.0
|
||||
To: openssl-dev@openssl.org
|
||||
Date: Tue, 22 May 2007 11:59:13 +0100
|
||||
Reply-To: openssl-dev@openssl.org
|
||||
|
||||
Hi there,
|
||||
|
||||
Having just downloaded GCC 4.2.0 and discovered that it can't build
|
||||
OpenSSL (not even in the snapshots AFAICT), I'd like to offer a possible
|
||||
solution.
|
||||
|
||||
The earlier thread on openssl-dev explains that OpenSSL chooses to cast
|
||||
the function pointers, not the parameters, to achieve type-safety; i.e.
|
||||
to ensure that errors occur if the wrong types are passed to the
|
||||
XYZ_of() functions.
|
||||
|
||||
So how about using expressions of the form
|
||||
(void*)(1 ? x : ((T*)NULL))
|
||||
instead? That way, if x isn't of the right type, GCC will warn because
|
||||
the ?: gets different types in the two branches. Meanwhile the function
|
||||
itself is getting called with the correct types, and while OpenSSL is
|
||||
still "deceiving" the type system, it's doing so only via function
|
||||
pointers (so there's no way that the compiler, examining any one
|
||||
translation unit, can "tell" that deception is being attempted). And the
|
||||
compiler should easily spot that the condition ("1") is always true, and
|
||||
so generate no extra code compared to the direct, non-typesafe call.
|
||||
|
||||
--- crypto/asn1/asn1.h~ 2007-04-14 19:00:19.000000000 +0100
|
||||
+++ crypto/asn1/asn1.h 2007-05-16 14:48:27.000000000 +0100
|
||||
@@ -329,6 +329,17 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;
|
||||
#define I2D_OF(type) int (*)(type *,unsigned char **)
|
||||
#define I2D_OF_const(type) int (*)(const type *,unsigned char **)
|
||||
|
||||
+#define CHECKED_D2I_OF(type, d2i) \
|
||||
+ ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0)))
|
||||
+#define CHECKED_I2D_OF(type, i2d) \
|
||||
+ ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0)))
|
||||
+#define CHECKED_NEW_OF(type, xnew) \
|
||||
+ ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0)))
|
||||
+#define CHECKED_PTR_OF(type, p) \
|
||||
+ ((void*) (1 ? p : (type*)0))
|
||||
+#define CHECKED_PPTR_OF(type, p) \
|
||||
+ ((void**) (1 ? p : (type**)0))
|
||||
+
|
||||
#define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long)
|
||||
#define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **)
|
||||
#define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type)
|
||||
@@ -914,23 +925,41 @@ int ASN1_object_size(int constructed, in
|
||||
|
||||
/* Used to implement other functions */
|
||||
void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x);
|
||||
+
|
||||
#define ASN1_dup_of(type,i2d,d2i,x) \
|
||||
- ((type *(*)(I2D_OF(type),D2I_OF(type),type *))openssl_fcast(ASN1_dup))(i2d,d2i,x)
|
||||
+ ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \
|
||||
+ CHECKED_D2I_OF(type, d2i), \
|
||||
+ CHECKED_PTR_OF(type, x)))
|
||||
+
|
||||
#define ASN1_dup_of_const(type,i2d,d2i,x) \
|
||||
- ((type *(*)(I2D_OF_const(type),D2I_OF(type),type *))openssl_fcast(ASN1_dup))(i2d,d2i,x)
|
||||
+ ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \
|
||||
+ CHECKED_D2I_OF(type, d2i), \
|
||||
+ CHECKED_PTR_OF(const type, x)))
|
||||
|
||||
void *ASN1_item_dup(const ASN1_ITEM *it, void *x);
|
||||
|
||||
#ifndef OPENSSL_NO_FP_API
|
||||
void *ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void **x);
|
||||
+
|
||||
#define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \
|
||||
- ((type *(*)(type *(*)(void),D2I_OF(type),FILE *,type **))openssl_fcast(ASN1_d2i_fp))(xnew,d2i,in,x)
|
||||
+ ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \
|
||||
+ CHECKED_D2I_OF(type, d2i), \
|
||||
+ in, \
|
||||
+ CHECKED_PPTR_OF(type, x)))
|
||||
+
|
||||
void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
|
||||
int ASN1_i2d_fp(i2d_of_void *i2d,FILE *out,void *x);
|
||||
+
|
||||
#define ASN1_i2d_fp_of(type,i2d,out,x) \
|
||||
- ((int (*)(I2D_OF(type),FILE *,type *))openssl_fcast(ASN1_i2d_fp))(i2d,out,x)
|
||||
+ (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \
|
||||
+ out, \
|
||||
+ CHECKED_PTR_OF(type, x)))
|
||||
+
|
||||
#define ASN1_i2d_fp_of_const(type,i2d,out,x) \
|
||||
- ((int (*)(I2D_OF_const(type),FILE *,type *))openssl_fcast(ASN1_i2d_fp))(i2d,out,x)
|
||||
+ (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \
|
||||
+ out, \
|
||||
+ CHECKED_PTR_OF(const type, x)))
|
||||
+
|
||||
int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x);
|
||||
int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
|
||||
#endif
|
||||
@@ -939,14 +968,26 @@ int ASN1_STRING_to_UTF8(unsigned char **
|
||||
|
||||
#ifndef OPENSSL_NO_BIO
|
||||
void *ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x);
|
||||
+
|
||||
#define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \
|
||||
- ((type *(*)(type *(*)(void),D2I_OF(type),BIO *,type **))openssl_fcast(ASN1_d2i_bio))(xnew,d2i,in,x)
|
||||
+ ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \
|
||||
+ CHECKED_D2I_OF(type, d2i), \
|
||||
+ in, \
|
||||
+ CHECKED_PPTR_OF(type, x)))
|
||||
+
|
||||
void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
|
||||
int ASN1_i2d_bio(i2d_of_void *i2d,BIO *out, unsigned char *x);
|
||||
+
|
||||
#define ASN1_i2d_bio_of(type,i2d,out,x) \
|
||||
- ((int (*)(I2D_OF(type),BIO *,type *))openssl_fcast(ASN1_i2d_bio))(i2d,out,x)
|
||||
+ (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \
|
||||
+ out, \
|
||||
+ CHECKED_PTR_OF(type, x)))
|
||||
+
|
||||
#define ASN1_i2d_bio_of_const(type,i2d,out,x) \
|
||||
- ((int (*)(I2D_OF_const(type),BIO *,const type *))openssl_fcast(ASN1_i2d_bio))(i2d,out,x)
|
||||
+ (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \
|
||||
+ out, \
|
||||
+ CHECKED_PTR_OF(const type, x)))
|
||||
+
|
||||
int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x);
|
||||
int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a);
|
||||
int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a);
|
||||
@@ -983,8 +1024,12 @@ void *ASN1_unpack_string(ASN1_STRING *oc
|
||||
void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
|
||||
ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d,
|
||||
ASN1_OCTET_STRING **oct);
|
||||
+
|
||||
#define ASN1_pack_string_of(type,obj,i2d,oct) \
|
||||
- ((ASN1_STRING *(*)(type *,I2D_OF(type),ASN1_OCTET_STRING **))openssl_fcast(ASN1_pack_string))(obj,i2d,oct)
|
||||
+ (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \
|
||||
+ CHECKED_I2D_OF(type, i2d), \
|
||||
+ oct))
|
||||
+
|
||||
ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
|
||||
|
||||
void ASN1_STRING_set_default_mask(unsigned long mask);
|
||||
--- crypto/pem/pem.h~ 2007-04-05 18:00:52.000000000 +0100
|
||||
+++ crypto/pem/pem.h 2007-05-16 14:48:42.000000000 +0100
|
||||
@@ -221,19 +221,28 @@ typedef struct pem_ctx_st
|
||||
#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \
|
||||
type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\
|
||||
{ \
|
||||
-return(((type *(*)(D2I_OF(type),char *,FILE *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read))(d2i_##asn1, str,fp,x,cb,u)); \
|
||||
+ return (type*)PEM_ASN1_read(CHECKED_D2I_OF(type, d2i_##asn1), \
|
||||
+ str, fp, \
|
||||
+ CHECKED_PPTR_OF(type, x), \
|
||||
+ cb, u); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \
|
||||
int PEM_write_##name(FILE *fp, type *x) \
|
||||
{ \
|
||||
-return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
|
||||
+ return PEM_ASN1_write(CHECKED_I2D_OF(type, i2d_##asn1), \
|
||||
+ str, fp, \
|
||||
+ CHECKED_PTR_OF(type, x), \
|
||||
+ NULL, NULL, 0, NULL, NULL); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \
|
||||
int PEM_write_##name(FILE *fp, const type *x) \
|
||||
{ \
|
||||
-return(((int (*)(I2D_OF_const(type),const char *,FILE *, const type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
|
||||
+ return PEM_ASN1_write(CHECKED_I2D_OF(const type, i2d_##asn1), \
|
||||
+ str, fp, \
|
||||
+ CHECKED_PTR_OF(const type, x), \
|
||||
+ NULL, NULL, 0, NULL, NULL); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \
|
||||
@@ -241,7 +250,10 @@ int PEM_write_##name(FILE *fp, type *x,
|
||||
unsigned char *kstr, int klen, pem_password_cb *cb, \
|
||||
void *u) \
|
||||
{ \
|
||||
- return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
|
||||
+ return PEM_ASN1_write(CHECKED_I2D_OF(type, i2d_##asn1), \
|
||||
+ str, fp, \
|
||||
+ CHECKED_PTR_OF(type, x), \
|
||||
+ enc, kstr, klen, cb, u); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \
|
||||
@@ -249,7 +261,10 @@ int PEM_write_##name(FILE *fp, type *x,
|
||||
unsigned char *kstr, int klen, pem_password_cb *cb, \
|
||||
void *u) \
|
||||
{ \
|
||||
- return(((int (*)(I2D_OF_const(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
|
||||
+ return PEM_ASN1_write(CHECKED_I2D_OF(const type, i2d_##asn1), \
|
||||
+ str, fp, \
|
||||
+ CHECKED_PTR_OF(const type, x), \
|
||||
+ enc, kstr, klen, cb, u); \
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -257,33 +272,48 @@ int PEM_write_##name(FILE *fp, type *x,
|
||||
#define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
|
||||
type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\
|
||||
{ \
|
||||
-return(((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read_bio))(d2i_##asn1, str,bp,x,cb,u)); \
|
||||
+ return (type*)PEM_ASN1_read_bio(CHECKED_D2I_OF(type, d2i_##asn1), \
|
||||
+ str, bp, \
|
||||
+ CHECKED_PPTR_OF(type, x), \
|
||||
+ cb, u); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
|
||||
int PEM_write_bio_##name(BIO *bp, type *x) \
|
||||
{ \
|
||||
-return(((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
|
||||
+ return PEM_ASN1_write_bio(CHECKED_I2D_OF(type, i2d_##asn1), \
|
||||
+ str, bp, \
|
||||
+ CHECKED_PTR_OF(type, x), \
|
||||
+ NULL, NULL, 0, NULL, NULL); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
|
||||
int PEM_write_bio_##name(BIO *bp, const type *x) \
|
||||
{ \
|
||||
-return(((int (*)(I2D_OF_const(type),const char *,BIO *,const type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
|
||||
+ return PEM_ASN1_write_bio(CHECKED_I2D_OF(const type, i2d_##asn1), \
|
||||
+ str, bp, \
|
||||
+ CHECKED_PTR_OF(const type, x), \
|
||||
+ NULL, NULL, 0, NULL, NULL); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
|
||||
int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
|
||||
unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
|
||||
{ \
|
||||
- return(((int (*)(I2D_OF(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
|
||||
+ return PEM_ASN1_write_bio(CHECKED_I2D_OF(type, i2d_##asn1), \
|
||||
+ str, bp, \
|
||||
+ CHECKED_PTR_OF(type, x), \
|
||||
+ enc, kstr, klen, cb, u); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
|
||||
int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
|
||||
unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
|
||||
{ \
|
||||
- return(((int (*)(I2D_OF_const(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
|
||||
+ return PEM_ASN1_write_bio(CHECKED_I2D_OF(const type, i2d_##asn1), \
|
||||
+ str, bp, \
|
||||
+ CHECKED_PTR_OF(const type, x), \
|
||||
+ enc, kstr, klen, cb, u); \
|
||||
}
|
||||
|
||||
#define IMPLEMENT_PEM_write(name, type, str, asn1) \
|
||||
@@ -414,13 +444,22 @@ int PEM_bytes_read_bio(unsigned char **p
|
||||
pem_password_cb *cb, void *u);
|
||||
void * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp,
|
||||
void **x, pem_password_cb *cb, void *u);
|
||||
+
|
||||
#define PEM_ASN1_read_bio_of(type,d2i,name,bp,x,cb,u) \
|
||||
-((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read_bio))(d2i,name,bp,x,cb,u)
|
||||
+ ((type*)PEM_ASN1_read_bio(CHECKED_D2I_OF(type, d2i), \
|
||||
+ name, bp, \
|
||||
+ CHECKED_PPTR_OF(type, x), \
|
||||
+ cb, u))
|
||||
+
|
||||
int PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp,char *x,
|
||||
const EVP_CIPHER *enc,unsigned char *kstr,int klen,
|
||||
pem_password_cb *cb, void *u);
|
||||
+
|
||||
#define PEM_ASN1_write_bio_of(type,i2d,name,bp,x,enc,kstr,klen,cb,u) \
|
||||
- ((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d,name,bp,x,enc,kstr,klen,cb,u)
|
||||
+ (PEM_ASN1_write_bio(CHECKED_I2D_OF(type, i2d), \
|
||||
+ name, bp, \
|
||||
+ CHECKED_PTR_OF(type, x), \
|
||||
+ enc, kstr, klen, cb, u))
|
||||
|
||||
STACK_OF(X509_INFO) * PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u);
|
||||
int PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc,
|
@ -1,3 +1,22 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu May 24 16:18:50 CEST 2007 - mkoenig@suse.de
|
||||
|
||||
- fix build with gcc-4.2
|
||||
openssl-gcc42.patch
|
||||
- do not install example scripts with executable permissions
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 30 01:32:44 CEST 2007 - ro@suse.de
|
||||
|
||||
- adapt requires
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 27 15:25:13 CEST 2007 - mkoenig@suse.de
|
||||
|
||||
- Do not use dots in package name
|
||||
- explicitly build with gcc-4.1 because of currently unresolved
|
||||
failures with gcc-4.2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 25 12:32:44 CEST 2007 - mkoenig@suse.de
|
||||
|
||||
|
18
openssl.spec
18
openssl.spec
@ -19,7 +19,7 @@ Group: Productivity/Networking/Security
|
||||
Provides: ssl
|
||||
Autoreqprov: on
|
||||
Version: 0.9.8e
|
||||
Release: 12
|
||||
Release: 25
|
||||
Summary: Secure Sockets and Transport Layer Security
|
||||
URL: http://www.openssl.org/
|
||||
Source: http://www.%{name}.org/source/%{name}-%{version}.tar.bz2
|
||||
@ -38,6 +38,7 @@ Patch11: openssl-s390-config.diff
|
||||
Patch20: openssl-0.9.8a.ca-app-segfault.bug128655.dif
|
||||
Patch21: bswap.diff
|
||||
Patch22: openssl-0.9.8-key_length.patch
|
||||
Patch23: openssl-gcc42.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Requires: libopenssl0_9_8
|
||||
|
||||
@ -196,6 +197,7 @@ Authors:
|
||||
%patch20 -p1
|
||||
%patch21
|
||||
%patch22 -p1
|
||||
%patch23
|
||||
cp -p %{S:10} .
|
||||
cp -p %{S:20} certs/
|
||||
cp -p %{S:21} certs/
|
||||
@ -359,6 +361,8 @@ gcc $RPM_OPT_FLAGS -I${RPM_BUILD_ROOT}%{_includedir} -c showciphers.c
|
||||
gcc -o showciphers showciphers.o -L${RPM_BUILD_ROOT}%{_libdir} -lssl -lcrypto
|
||||
LD_LIBRARY_PATH=${RPM_BUILD_ROOT}%{_libdir} ./showciphers > AVAILABLE_CIPHERS || true
|
||||
cat AVAILABLE_CIPHERS
|
||||
# Do not install demo scripts executable under /usr/share/doc
|
||||
find demos -type f -perm /111 -exec chmod 644 {} \;
|
||||
|
||||
%clean
|
||||
if ! test -f /.buildenv; then rm -rf $RPM_BUILD_ROOT; fi
|
||||
@ -390,7 +394,7 @@ if ! test -f /.buildenv; then rm -rf $RPM_BUILD_ROOT; fi
|
||||
%files doc -f filelist.doc
|
||||
%defattr(-, root, root)
|
||||
%doc doc/* demos
|
||||
%doc showciphers showciphers.c
|
||||
%doc showciphers.c
|
||||
|
||||
%files -f filelist
|
||||
%defattr(-, root, root)
|
||||
@ -409,6 +413,16 @@ if ! test -f /.buildenv; then rm -rf $RPM_BUILD_ROOT; fi
|
||||
%{ssletcdir}/certs
|
||||
|
||||
%changelog
|
||||
* Thu May 24 2007 - mkoenig@suse.de
|
||||
- fix build with gcc-4.2
|
||||
openssl-gcc42.patch
|
||||
- do not install example scripts with executable permissions
|
||||
* Mon Apr 30 2007 - ro@suse.de
|
||||
- adapt requires
|
||||
* Fri Apr 27 2007 - mkoenig@suse.de
|
||||
- Do not use dots in package name
|
||||
- explicitly build with gcc-4.1 because of currently unresolved
|
||||
failures with gcc-4.2
|
||||
* Wed Apr 25 2007 - mkoenig@suse.de
|
||||
- Split/rename package to follow library packaging policy [#260219]
|
||||
New package libopenssl0.9.8 containing shared libs
|
||||
|
Loading…
Reference in New Issue
Block a user