From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 56CB8138334 for ; Fri, 11 Jan 2019 21:31:12 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 57295E09C0; Fri, 11 Jan 2019 21:31:10 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 12652E09C0 for ; Fri, 11 Jan 2019 21:31:08 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id CFFFF335CD2 for ; Fri, 11 Jan 2019 21:31:06 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 74B0B4D3 for ; Fri, 11 Jan 2019 21:31:04 +0000 (UTC) From: "Craig Andrews" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Craig Andrews" Message-ID: <1547242251.74eced9102a1189d33f113ac5b0ad3149930b048.candrews@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: x11-misc/virtualgl/, x11-misc/virtualgl/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: x11-misc/virtualgl/files/virtualgl-2.5.2-openssl-1.1-compat-a974c22141d0ded9ff60a0b903f81e6b484d6ba4.patch x11-misc/virtualgl/virtualgl-2.5.2-r1.ebuild X-VCS-Directories: x11-misc/virtualgl/files/ x11-misc/virtualgl/ X-VCS-Committer: candrews X-VCS-Committer-Name: Craig Andrews X-VCS-Revision: 74eced9102a1189d33f113ac5b0ad3149930b048 X-VCS-Branch: master Date: Fri, 11 Jan 2019 21:31:04 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 0976e574-77cf-459b-bd09-f885db70e89d X-Archives-Hash: 8c387006509792ddd59dfc242cc550fe commit: 74eced9102a1189d33f113ac5b0ad3149930b048 Author: Craig Andrews gentoo org> AuthorDate: Wed Jan 9 16:08:31 2019 +0000 Commit: Craig Andrews gentoo org> CommitDate: Fri Jan 11 21:30:51 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74eced91 x11-misc/virtualgl: OpenSSL 1.1 compatibility Closes: https://bugs.gentoo.org/673988 Package-Manager: Portage-2.3.54, Repoman-2.3.12 Signed-off-by: Craig Andrews gentoo.org> ...-a974c22141d0ded9ff60a0b903f81e6b484d6ba4.patch | 168 +++++++++++++++++++++ x11-misc/virtualgl/virtualgl-2.5.2-r1.ebuild | 91 +++++++++++ 2 files changed, 259 insertions(+) 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 00000000000..d5d923f89d1 --- /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 +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 + #include +-#if defined(sun) || defined(sgi) ++#if !defined(HAVE_DEVURANDOM) && !defined(_WIN32) + #include + #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; diff --git a/x11-misc/virtualgl/virtualgl-2.5.2-r1.ebuild b/x11-misc/virtualgl/virtualgl-2.5.2-r1.ebuild new file mode 100644 index 00000000000..aa35612ba1b --- /dev/null +++ b/x11-misc/virtualgl/virtualgl-2.5.2-r1.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit cmake-multilib flag-o-matic multilib systemd + +DESCRIPTION="Run OpenGL applications remotely with full 3D hardware acceleration" +HOMEPAGE="https://www.virtualgl.org/" + +MY_PN="VirtualGL" +MY_P="${MY_PN}-${PV}" +S="${WORKDIR}/${MY_P}" +SRC_URI="mirror://sourceforge/${PN}/files/${PV}/${MY_P}.tar.gz" + +SLOT="0" +LICENSE="LGPL-2.1 wxWinLL-3.1 FLTK" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="libressl ssl" + +RDEPEND=" + ssl? ( + !libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] ) + libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] ) + ) + media-libs/libjpeg-turbo[${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + x11-libs/libXv[${MULTILIB_USEDEP}] + virtual/glu[${MULTILIB_USEDEP}] + virtual/opengl[${MULTILIB_USEDEP}] + amd64? ( abi_x86_32? ( + >=media-libs/libjpeg-turbo-1.3.0-r3[abi_x86_32] + >=x11-libs/libX11-1.6.2[abi_x86_32] + >=x11-libs/libXext-1.3.2[abi_x86_32] + >=x11-libs/libXv-1.0.10[abi_x86_32] + >=virtual/glu-9.0-r1[abi_x86_32] + >=virtual/opengl-7.0-r1[abi_x86_32] + ) ) +" +DEPEND="${RDEPEND}" +PATCHES=( + "${FILESDIR}/virtualgl-2.5.2-openssl-1.1-compat-a974c22141d0ded9ff60a0b903f81e6b484d6ba4.patch" +) + +src_prepare() { + # Use /var/lib, bug #428122 + sed -e "s#/etc/opt#/var/lib#g" -i doc/unixconfig.txt doc/index.html doc/advancedopengl.txt \ + server/vglrun.in server/vglgenkey server/vglserver_config || die + + cmake-utils_src_prepare +} + +src_configure() { + # Completely breaks steam/wine for discrete graphics otherwise + # see https://github.com/VirtualGL/virtualgl/issues/16 + append-ldflags "-Wl,--no-as-needed" + + abi_configure() { + local mycmakeargs=( + -DVGL_USESSL="$(usex ssl)" + -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/"${PF}" + -DTJPEG_INCLUDE_DIR=/usr/include + -DCMAKE_INSTALL_LIBDIR=/usr/$(get_libdir) + -DTJPEG_LIBRARY=/usr/$(get_libdir)/libturbojpeg.so + -DCMAKE_LIBRARY_PATH=/usr/$(get_libdir) + ) + cmake-utils_src_configure + } + multilib_parallel_foreach_abi abi_configure +} + +src_install() { + cmake-multilib_src_install + + # Make config dir + dodir /var/lib/VirtualGL + fowners root:video /var/lib/VirtualGL + fperms 0750 /var/lib/VirtualGL + newinitd "${FILESDIR}/vgl.initd-r3" vgl + newconfd "${FILESDIR}/vgl.confd-r2" vgl + + exeinto /usr/libexec + doexe "${FILESDIR}/vgl-helper.sh" + systemd_dounit "${FILESDIR}/vgl.service" + + # Rename glxinfo to vglxinfo to avoid conflict with x11-apps/mesa-progs + mv "${D}"/usr/bin/{,v}glxinfo || die + + # Remove license files, bug 536284 + rm "${D}"/usr/share/doc/${PF}/{LGPL.txt*,LICENSE*} || die +}