--- SWIG/_bio.i.orig +++ SWIG/_bio.i @@ -293,8 +293,12 @@ int bio_should_write(BIO* a) { } /* Macros for things not defined before 1.1.0 */ -#if OPENSSL_VERSION_NUMBER < 0x10100000L -static BIO_METHOD * +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + +#if !defined(LIBRESSL_VERSION_NUMBER) +static +#endif +BIO_METHOD * BIO_meth_new( int type, const char *name ) { BIO_METHOD *method = malloc( sizeof(BIO_METHOD) ); @@ -306,7 +310,10 @@ BIO_meth_new( int type, const char *name ) return method; } -static void +#if !defined(LIBRESSL_VERSION_NUMBER) +static +#endif +void BIO_meth_free( BIO_METHOD *meth ) { if ( meth == NULL ) { --- SWIG/_evp.i.orig +++ SWIG/_evp.i @@ -19,7 +19,7 @@ Copyright (c) 2009-2010 Heikki Toivonen. All rights re #include #include -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) HMAC_CTX *HMAC_CTX_new(void) { HMAC_CTX *ret = PyMem_Malloc(sizeof(HMAC_CTX)); --- SWIG/_lib11_compat.i.orig +++ SWIG/_lib11_compat.i @@ -8,7 +8,7 @@ */ %{ -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) #include #include --- SWIG/_lib.i.orig +++ SWIG/_lib.i @@ -21,7 +21,7 @@ %{ /* OpenSSL 1.0.2 copmatbility shim */ -#if OPENSSL_VERSION_NUMBER < 0x10002000L +#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined(LIBRESSL_VERSION_NUMBER) typedef void (*OPENSSL_sk_freefunc)(void *); typedef void *(*OPENSSL_sk_copyfunc)(const void *); typedef struct stack_st OPENSSL_STACK; @@ -499,7 +499,7 @@ int passphrase_callback(char *buf, int num, int v, voi %inline %{ void lib_init() { -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) SSLeay_add_all_algorithms(); ERR_load_ERR_strings(); #endif --- SWIG/_ssl.i.orig +++ SWIG/_ssl.i @@ -275,7 +275,7 @@ const SSL_METHOD *sslv3_method(void) { #endif const SSL_METHOD *tlsv1_method(void) { -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) PyErr_WarnEx(PyExc_DeprecationWarning, "Function TLSv1_method has been deprecated.", 1); #endif --- SWIG/_threads.i.orig +++ SWIG/_threads.i @@ -5,7 +5,7 @@ #include #include -#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L +#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) #define CRYPTO_num_locks() (CRYPTO_NUM_LOCKS) static PyThread_type_lock lock_cs[CRYPTO_num_locks()]; static long lock_count[CRYPTO_num_locks()]; @@ -13,7 +13,7 @@ static int thread_mode = 0; #endif void threading_locking_callback(int mode, int type, const char *file, int line) { -#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L +#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) if (mode & CRYPTO_LOCK) { PyThread_acquire_lock(lock_cs[type], WAIT_LOCK); lock_count[type]++; @@ -25,7 +25,7 @@ void threading_locking_callback(int mode, int type, co } unsigned long threading_id_callback(void) { -#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L +#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) return (unsigned long)PyThread_get_thread_ident(); #else return (unsigned long)0; @@ -35,7 +35,7 @@ unsigned long threading_id_callback(void) { %inline %{ void threading_init(void) { -#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L +#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) int i; if (!thread_mode) { for (i=0; i #include