commit:     8b853a8081e1c2ce0c4966203bdf0f928d782ce3
Author:     Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Tue May 21 19:29:59 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun  1 08:15:07 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b853a80

x11-misc/x11vnc: fix building with libressl

Closes: https://bugs.gentoo.org/675610
Package-Manager: Portage-2.3.62, Repoman-2.3.11
Signed-off-by: Alexander Tsoy <alexander <AT> tsoy.me>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 x11-misc/x11vnc/files/x11vnc-0.9.16-libressl.patch | 93 ++++++++++++++++++++++
 x11-misc/x11vnc/x11vnc-0.9.16-r3.ebuild            |  1 +
 2 files changed, 94 insertions(+)

diff --git a/x11-misc/x11vnc/files/x11vnc-0.9.16-libressl.patch 
b/x11-misc/x11vnc/files/x11vnc-0.9.16-libressl.patch
new file mode 100644
index 00000000000..8e5d8a69217
--- /dev/null
+++ b/x11-misc/x11vnc/files/x11vnc-0.9.16-libressl.patch
@@ -0,0 +1,93 @@
+diff --git a/src/sslhelper.c b/src/sslhelper.c
+index 04c2e27..fb9daa6 100644
+--- a/src/sslhelper.c
++++ b/src/sslhelper.c
+@@ -803,7 +803,7 @@ static int pem_passwd_callback(char *buf, int size, int 
rwflag,
+ static int crl_callback(X509_STORE_CTX *callback_ctx) {
+       const ASN1_INTEGER *revoked_serial;
+       X509_STORE_CTX *store_ctx;
+-#if OPENSSL_VERSION_NUMBER > 0x10100000L
++#if OPENSSL_VERSION_NUMBER > 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+       X509_OBJECT *obj;
+ #else
+       X509_OBJECT obj;
+@@ -829,7 +829,7 @@ static int crl_callback(X509_STORE_CTX *callback_ctx) {
+       * the current certificate in order to verify it's integrity. */
+       store_ctx = X509_STORE_CTX_new();
+       X509_STORE_CTX_init(store_ctx, revocation_store, NULL, NULL);
+-#if OPENSSL_VERSION_NUMBER > 0x10100000L
++#if OPENSSL_VERSION_NUMBER > 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+       obj = X509_OBJECT_new();
+       rc=X509_STORE_get_by_subject(store_ctx, X509_LU_CRL, subject, obj);
+       crl = X509_OBJECT_get0_X509_CRL(obj);
+@@ -865,7 +865,7 @@ static int crl_callback(X509_STORE_CTX *callback_ctx) {
+                       rfbLog("Invalid signature on CRL\n");
+                       X509_STORE_CTX_set_error(callback_ctx,
+                               X509_V_ERR_CRL_SIGNATURE_FAILURE);
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+                       X509_OBJECT_free(obj);
+ #else
+                       X509_OBJECT_free_contents(&obj);
+@@ -883,7 +883,7 @@ static int crl_callback(X509_STORE_CTX *callback_ctx) {
+                       rfbLog("Found CRL has invalid nextUpdate field\n");
+                       X509_STORE_CTX_set_error(callback_ctx,
+                               X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD);
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+                       X509_OBJECT_free(obj);
+ #else
+                       X509_OBJECT_free_contents(&obj);
+@@ -894,14 +894,14 @@ static int crl_callback(X509_STORE_CTX *callback_ctx) {
+                       rfbLog("Found CRL is expired - "
+                               "revoking all certificates until you get 
updated CRL\n");
+                       X509_STORE_CTX_set_error(callback_ctx, 
X509_V_ERR_CRL_HAS_EXPIRED);
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+                       X509_OBJECT_free(obj);
+ #else
+                       X509_OBJECT_free_contents(&obj);
+ #endif
+                       return 0; /* Reject connection */
+               }
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+                       X509_OBJECT_free(obj);
+ #else
+                       X509_OBJECT_free_contents(&obj);
+@@ -912,7 +912,7 @@ static int crl_callback(X509_STORE_CTX *callback_ctx) {
+        * the current certificate in order to check for revocation. */
+       store_ctx = X509_STORE_CTX_new();
+       X509_STORE_CTX_init(store_ctx, revocation_store, NULL, NULL);
+-#if OPENSSL_VERSION_NUMBER > 0x10100000L
++#if OPENSSL_VERSION_NUMBER > 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+       obj = X509_OBJECT_new();
+       rc=X509_STORE_get_by_subject(store_ctx, X509_LU_CRL, issuer, obj);
+       crl = X509_OBJECT_get0_X509_CRL(obj);
+@@ -942,7 +942,7 @@ static int crl_callback(X509_STORE_CTX *callback_ctx) {
+                                       "revoked per CRL from issuer %s\n", 
serial, serial, cp);
+                               OPENSSL_free(cp);
+                               X509_STORE_CTX_set_error(callback_ctx, 
X509_V_ERR_CERT_REVOKED);
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+                               X509_OBJECT_free(obj);
+ #else
+                               X509_OBJECT_free_contents(&obj);
+@@ -950,7 +950,7 @@ static int crl_callback(X509_STORE_CTX *callback_ctx) {
+                               return 0; /* Reject connection */
+                       }
+               }
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+                       X509_OBJECT_free(obj);
+ #else
+                       X509_OBJECT_free_contents(&obj);
+@@ -1596,7 +1596,7 @@ static int switch_to_anon_dh(void) {
+       if (ssl_client_mode) {
+               return 1;
+       }
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+       /* Security level must be set to 0 for unauthenticated suites. */
+       SSL_CTX_set_security_level(ctx, 0);
+ #endif

diff --git a/x11-misc/x11vnc/x11vnc-0.9.16-r3.ebuild 
b/x11-misc/x11vnc/x11vnc-0.9.16-r3.ebuild
index f102419eb68..fa6c2d774e9 100644
--- a/x11-misc/x11vnc/x11vnc-0.9.16-r3.ebuild
+++ b/x11-misc/x11vnc/x11vnc-0.9.16-r3.ebuild
@@ -43,6 +43,7 @@ RDEPEND="${COMMON_DEPEND}
 PATCHES=(
        "${FILESDIR}"/${P}-crypto.patch # 
https://github.com/LibVNC/x11vnc/issues/86
        "${FILESDIR}"/${P}-anonymous-ssl.patch # 
https://github.com/LibVNC/x11vnc/pull/85
+       "${FILESDIR}"/${P}-libressl.patch
 )
 
 src_prepare() {

Reply via email to