summaryrefslogtreecommitdiff
path: root/x11-misc/virtualgl/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-01-12 16:58:08 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-01-12 16:58:08 +0000
commitc8a77dfe4d3d307c1d5dd2650b7297447d8b609d (patch)
tree9ea78393bc3ecd6ab4de449383d4e97e5f3648ae /x11-misc/virtualgl/files
parent2891d29af8907ce881662f4a02844926d7a293c7 (diff)
gentoo resync : 12.01.2019
Diffstat (limited to 'x11-misc/virtualgl/files')
-rw-r--r--x11-misc/virtualgl/files/virtualgl-2.5.2-openssl-1.1-compat-a974c22141d0ded9ff60a0b903f81e6b484d6ba4.patch168
1 files changed, 168 insertions, 0 deletions
diff --git a/x11-misc/virtualgl/files/virtualgl-2.5.2-openssl-1.1-compat-a974c22141d0ded9ff60a0b903f81e6b484d6ba4.patch b/x11-misc/virtualgl/files/virtualgl-2.5.2-openssl-1.1-compat-a974c22141d0ded9ff60a0b903f81e6b484d6ba4.patch
new file mode 100644
index 000000000000..d5d923f89d1b
--- /dev/null
+++ b/x11-misc/virtualgl/files/virtualgl-2.5.2-openssl-1.1-compat-a974c22141d0ded9ff60a0b903f81e6b484d6ba4.patch
@@ -0,0 +1,168 @@
+Patch modified to apply to VirtualGL 2.5.2, before
+1b82bceb3723b24ea5dc32edffbe019a8a37ab39 reformatted whitespace
+
+
+From a974c22141d0ded9ff60a0b903f81e6b484d6ba4 Mon Sep 17 00:00:00 2001
+From: DRC <information@virtualgl.org>
+Date: Mon, 16 Apr 2018 15:06:07 -0500
+Subject: [PATCH] OpenSSL improvements
+
+- Fix build issues with OpenSSL 1.1 (OpenSSL 1.1 and later no longer
+ provides CRYPTO_set_locking_callback(), since locking is now performed
+ internally.)
+- Detect whether the platform has /dev/urandom at compile time, rather
+ than assuming that all Sun and SGI machines don't have it (Solaris 10
+ and later supports /dev/urandom.)
+---
+ ChangeLog.md | 2 ++
+ include/Socket.h | 8 ++++++--
+ util/CMakeLists.txt | 5 +++++
+ util/Socket.cpp | 25 ++++++++++++++++---------
+ 4 files changed, 29 insertions(+), 11 deletions(-)
+
+diff --git a/ChangeLog.md b/ChangeLog.md
+index 3632c1d8..5c9bff84 100644
+--- a/ChangeLog.md
++++ b/ChangeLog.md
+@@ -52,6 +52,8 @@ a subsequent segfault when VTK tried to call `glBlendFuncSeparate()`.
+ VirtualGL's implementation of `glXGetVisualFromFBConfig()` now returns NULL
+ unless the FB config has a corresponding visual on the 3D X server.
+
++6. VirtualGL can now be built and run with OpenSSL 1.1.
++
+
+ 2.5.2
+ =====
+diff --git a/include/Socket.h b/include/Socket.h
+index dfe45e3a..f7409956 100644
+--- a/include/Socket.h
++++ b/include/Socket.h
+@@ -1,6 +1,6 @@
+ /* Copyright (C)2004 Landmark Graphics Corporation
+ * Copyright (C)2005 Sun Microsystems, Inc.
+- * Copyright (C)2014, 2016 D. R. Commander
++ * Copyright (C)2014, 2016, 2018 D. R. Commander
+ *
+ * This library is free software and may be redistributed and/or modified under
+ * the terms of the wxWindows Library License, Version 3.1 or (at your option)
+@@ -23,7 +23,7 @@
+ #endif
+ #include <openssl/ssl.h>
+ #include <openssl/err.h>
+-#if defined(sun) || defined(sgi)
++#if !defined(HAVE_DEVURANDOM) && !defined(_WIN32)
+ #include <openssl/rand.h>
+ #endif
+ #endif
+@@ -161,15 +161,19 @@ namespace vglutil
+
+ #ifdef USESSL
+
++ #if OPENSSL_VERSION_NUMBER < 0x10100000L
+ static void lockingCallback(int mode, int type, const char *file,
+ int line)
+ {
+ if(mode&CRYPTO_LOCK) cryptoLock[type].lock();
+ else cryptoLock[type].unlock();
+ }
++ #endif
+
+ static bool sslInit;
++ #if OPENSSL_VERSION_NUMBER < 0x10100000L
+ static CriticalSection cryptoLock[CRYPTO_NUM_LOCKS];
++ #endif
+ bool doSSL; SSL_CTX *sslctx; SSL *ssl;
+
+ #endif
+diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt
+index 65ef59e7..ed1dfb39 100644
+--- a/util/CMakeLists.txt
++++ b/util/CMakeLists.txt
+@@ -13,6 +13,11 @@ target_link_libraries(bmptest vglutil)
+ add_executable(pftest pftest.c)
+ target_link_libraries(pftest vglutil)
+
++if(EXISTS /dev/urandom)
++ message(STATUS "Using /dev/urandom for random number generation")
++ add_definitions(-DHAVE_DEVURANDOM)
++endif()
++
+ add_library(vglsocket STATIC Socket.cpp)
+ target_link_libraries(vglsocket vglutil)
+ if(WIN32)
+diff --git a/util/Socket.cpp b/util/Socket.cpp
+index 0d230841..b41c25e9 100644
+--- a/util/Socket.cpp
++++ b/util/Socket.cpp
+@@ -1,6 +1,6 @@
+ /* Copyright (C)2004 Landmark Graphics Corporation
+ * Copyright (C)2005 Sun Microsystems, Inc.
+- * Copyright (C)2014, 2016 D. R. Commander
++ * Copyright (C)2014, 2016, 2018 D. R. Commander
+ *
+ * This library is free software and may be redistributed and/or modified under
+ * the terms of the wxWindows Library License, Version 3.1 or (at your option)
+@@ -43,32 +43,37 @@ typedef socklen_t SOCKLEN_T;
+
+ #ifdef USESSL
+ bool Socket::sslInit=false;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ CriticalSection Socket::cryptoLock[CRYPTO_NUM_LOCKS];
+ #endif
++#endif
+ CriticalSection Socket::mutex;
+ int Socket::instanceCount=0;
+
+
+ #ifdef USESSL
+
+-static void progressCallback(int p, int n, void *arg)
+-{
+-}
+-
+-
+ static EVP_PKEY *newPrivateKey(int bits)
+ {
++ BIGNUM *bn = NULL;
++ RSA *rsa = NULL;
+ EVP_PKEY *pk=NULL;
+
+ try
+ {
++ if(!(bn = BN_new())) _throwssl();
++ if(!BN_set_word(bn, RSA_F4)) _throwssl();
++ if(!(rsa = RSA_new())) _throwssl();
++ if(!RSA_generate_key_ex(rsa, bits, bn, NULL)) _throwssl();
+ if(!(pk=EVP_PKEY_new())) _throwssl();
+- if(!EVP_PKEY_assign_RSA(pk, RSA_generate_key(bits, 0x10001,
+- progressCallback, NULL))) _throwssl();
++ if(!EVP_PKEY_assign_RSA(pk, rsa)) _throwssl();
++ BN_free(bn);
+ return pk;
+ }
+ catch (...)
+ {
++ if(bn) BN_free(bn);
++ if(rsa) RSA_free(rsa);
+ if(pk) EVP_PKEY_free(pk);
+ throw;
+ }
+@@ -147,7 +152,7 @@ Socket::Socket(bool doSSL_)
+ #ifdef USESSL
+ if(!sslInit && doSSL)
+ {
+- #if defined(sun) || defined(sgi)
++ #if !defined(HAVE_DEVURANDOM) && !defined(_WIN32)
+ char buf[128]; int i;
+ srandom(getpid());
+ for(i = 0; i < 128; i++)
+@@ -158,7 +163,9 @@ Socket::Socket(bool doSSL_)
+ SSL_load_error_strings();
+ ERR_load_crypto_strings();
+ CRYPTO_set_id_callback(Thread::threadID);
++ #if OPENSSL_VERSION_NUMBER < 0x10100000L
+ CRYPTO_set_locking_callback(lockingCallback);
++ #endif
+ SSL_library_init();
+ sslInit = true;
+ char *env = NULL;