net-libs/libvncserver: reorganize ssl/crypto deps
authorAlexander Tsoy <alexander@tsoy.me>
Thu, 20 Jun 2019 22:36:01 +0000 (01:36 +0300)
committerMichał Górny <mgorny@gentoo.org>
Sat, 6 Jul 2019 07:02:54 +0000 (09:02 +0200)
* no longer depend on libgcrypt when gnutls USE-flag is enabled
* put gnutls dependency behind ssl USE-flag

openssl/libressl also provides crypto (if gcrypt is not enabled), but
lets leave them behind ssl USE-flag anyway.

Package-Manager: Portage-2.3.66, Repoman-2.3.11
Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
Signed-off-by: Michał Górny <mgorny@gentoo.org>
net-libs/libvncserver/files/libvncserver-0.9.12-libgcrypt.patch [new file with mode: 0644]
net-libs/libvncserver/libvncserver-0.9.12-r1.ebuild

diff --git a/net-libs/libvncserver/files/libvncserver-0.9.12-libgcrypt.patch b/net-libs/libvncserver/files/libvncserver-0.9.12-libgcrypt.patch
new file mode 100644 (file)
index 0000000..a031356
--- /dev/null
@@ -0,0 +1,40 @@
+From 57be637006a95091119f7a49b4232e461116520f Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Sat, 25 May 2019 02:02:47 +0300
+Subject: [PATCH] crypto: rfbcrypto_gnutls is actually libgcrypt-based
+
+Long time ago gnutls used libgcrypt as a cryptographic backend. Perhaps
+that was what caused the confusion.
+---
+ CMakeLists.txt                                       | 9 ++++-----
+ common/{rfbcrypto_gnutls.c => rfbcrypto_libgcrypt.c} | 0
+ 2 files changed, 4 insertions(+), 5 deletions(-)
+ rename common/{rfbcrypto_gnutls.c => rfbcrypto_libgcrypt.c} (100%)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b9ca4ba..0d3b4dc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -226,11 +226,10 @@ if(SYSTEMD_FOUND)
+ endif(SYSTEMD_FOUND)
+ if(LIBVNCSERVER_HAVE_SYS_UIO_H)
+-  if(GNUTLS_FOUND)
+-    message(STATUS "Building crypto with GnuTLS")
+-    set(CRYPTO_LIBRARIES ${GNUTLS_LIBRARIES})
+-    set(CRYPTO_SOURCES ${COMMON_DIR}/rfbcrypto_gnutls)
+-    include_directories(${GNUTLS_INCLUDE_DIR})
++  if(WITH_GCRYPT AND LIBGCRYPT_LIBRARIES)
++    message(STATUS "Building crypto with Libgcrypt")
++    set(CRYPTO_LIBRARIES ${LIBGCRYPT_LIBRARIES})
++    set(CRYPTO_SOURCES ${COMMON_DIR}/rfbcrypto_libgcrypt)
+   elseif(OPENSSL_FOUND)
+     message(STATUS "Building crypto with OpenSSL")
+     set(CRYPTO_LIBRARIES ${OPENSSL_LIBRARIES})
+diff --git a/common/rfbcrypto_gnutls.c b/common/rfbcrypto_libgcrypt.c
+similarity index 100%
+rename from common/rfbcrypto_gnutls.c
+rename to common/rfbcrypto_libgcrypt.c
+-- 
+2.21.0
+
index c8c0be485e315b9559d7107cbfdc96d55ecef225..8f97ef15b984ce27fe92bf8db1fef4377fca4414 100644 (file)
@@ -17,19 +17,16 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~spa
 IUSE="+24bpp gcrypt gnutls ipv6 +jpeg libressl lzo +png sasl ssl systemd +threads +zlib"
 # https://bugs.gentoo.org/435326
 # https://bugs.gentoo.org/550916
-REQUIRED_USE="!gnutls? ( ssl? ( threads ) ) png? ( zlib )"
+REQUIRED_USE="ssl? ( !gnutls? ( threads ) ) png? ( zlib )"
 
 DEPEND="
        gcrypt? ( >=dev-libs/libgcrypt-1.5.3:0= )
-       gnutls? (
-               >=net-libs/gnutls-2.12.23-r6:0=
-               >=dev-libs/libgcrypt-1.5.3:0=
-       )
-       !gnutls? (
-               ssl? (
+       ssl? (
+               !gnutls? (
                        !libressl? ( >=dev-libs/openssl-1.0.2:0= )
                        libressl? ( >=dev-libs/libressl-2.7.0:0= )
                )
+               gnutls? ( >=net-libs/gnutls-2.12.23-r6:0= )
        )
        jpeg? ( >=virtual/jpeg-0-r2:0 )
        lzo? ( dev-libs/lzo )
@@ -45,6 +42,7 @@ DOCS=( AUTHORS ChangeLog NEWS README.md TODO )
 
 PATCHES=(
        "${FILESDIR}"/${P}-cmake-libdir.patch
+       "${FILESDIR}"/${P}-libgcrypt.patch
 )
 
 src_configure() {
@@ -54,9 +52,9 @@ src_configure() {
                -DWITH_JPEG=$(usex jpeg ON OFF)
                -DWITH_PNG=$(usex png ON OFF)
                -DWITH_THREADS=$(usex threads ON OFF)
-               -DWITH_GNUTLS=$(usex gnutls ON OFF)
+               -DWITH_GNUTLS=$(usex gnutls $(usex ssl ON OFF) OFF)
                -DWITH_OPENSSL=$(usex gnutls OFF $(usex ssl ON OFF))
-               -DWITH_GCRYPT=$(usex gnutls ON $(usex gcrypt ON OFF))
+               -DWITH_GCRYPT=$(usex gcrypt ON OFF)
                -DWITH_SYSTEMD=$(usex systemd ON OFF)
                -DWITH_FFMPEG=OFF
                -DWITH_24BPP=$(usex 24bpp ON OFF)