<pre style='margin:0'>
Chih-Hsuan Yen (yan12125) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/013143984f337dc4b669da6b928de244ed82dcf5">https://github.com/macports/macports-ports/commit/013143984f337dc4b669da6b928de244ed82dcf5</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 013143984f337dc4b669da6b928de244ed82dcf5
</span>Author: Chih-Hsuan Yen <yan12125@gmail.com>
AuthorDate: Mon Sep 9 10:10:25 2019 +0800

<span style='display:block; white-space:pre;color:#404040;'>    elinks-devel: fix building with OpenSSL 1.1
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Both patches are from upstream
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    https://repo.or.cz/elinks.git/patch/f4a58ba3b574a478fd5954ba2c5b29e8b809ff9b
</span><span style='display:block; white-space:pre;color:#404040;'>    https://repo.or.cz/elinks.git/patch/54ebe365b752f8969a67279d0d29552ab638e025
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    I've also tried go to the latest git commit, but the built binary
</span><span style='display:block; white-space:pre;color:#404040;'>    doesn't work. Random "pointer being freed was not allocated" crashes
</span><span style='display:block; white-space:pre;color:#404040;'>    occur.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    After this commit, elinks-devel is still compatible with OpenSSL 1.0.2
</span><span style='display:block; white-space:pre;color:#404040;'>    as both SSL_get_SSL_CTX and SSL_set_options are available.
</span><span style='display:block; white-space:pre;color:#404040;'>    https://www.openssl.org/docs/man1.0.2/man3/SSL_get_SSL_CTX.html
</span><span style='display:block; white-space:pre;color:#404040;'>    https://www.openssl.org/docs/man1.0.2/man3/SSL_set_options.html
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/58988
</span>---
 www/elinks-devel/Portfile                     |  7 ++++--
 www/elinks-devel/files/patch-no-rand-egd.diff | 35 +++++++++++++++++++++++++++
 www/elinks-devel/files/patch-openssl11.diff   | 33 +++++++++++++++++++++++++
 3 files changed, 73 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/elinks-devel/Portfile b/www/elinks-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 853c877..cb4f4b3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/www/elinks-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/elinks-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -30,10 +30,13 @@ depends_lib         port:bzip2 \
</span> distname            elinks-${version}
 master_sites        ${homepage}download/
 checksums           rmd160  68703f9fa8862c243a8083833d8447d4e09280ff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  c0b3a7871f4aea954b0a66d5bbc6ce6de55ad17aa25aba3987f775707067c800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  c0b3a7871f4aea954b0a66d5bbc6ce6de55ad17aa25aba3987f775707067c800 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    4232826
</span> 
 patchfiles          patch-Makefile.lib.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-configure.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-openssl11.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-no-rand-egd.diff
</span> 
 variant universal {}
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/elinks-devel/files/patch-no-rand-egd.diff b/www/elinks-devel/files/patch-no-rand-egd.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0783cdc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/elinks-devel/files/patch-no-rand-egd.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,35 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From f4a58ba3b574a478fd5954ba2c5b29e8b809ff9b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Kylie McClain <somasis@exherbo.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 29 Dec 2015 15:11:52 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] ssl: Make RAND_egd optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fixes compilation with LibreSSL.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/network/ssl/ssl.c | 7 ++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 6 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/network/ssl/ssl.c src/network/ssl/ssl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 693ac37..5ed5754 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/network/ssl/ssl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/network/ssl/ssl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,11 +84,16 @@ init_openssl(struct module *module)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * cannot initialize the PRNG and so every attempt to use SSL fails.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * It's actually an OpenSSL FAQ, and according to them, it's up to the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * application coders to seed the RNG. -- William Yodlowsky */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (RAND_egd(RAND_file_name(f_randfile, sizeof(f_randfile))) < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RAND_file_name(f_randfile, sizeof(f_randfile));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_RAND_EGD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (RAND_egd(f_randfile) < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Not an EGD, so read and write to it */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (RAND_load_file(f_randfile, -1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   RAND_write_file(f_randfile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_RAND_EGD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSLeay_add_ssl_algorithms();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   context = SSL_CTX_new(SSLv23_client_method());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.10.5.GIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/elinks-devel/files/patch-openssl11.diff b/www/elinks-devel/files/patch-openssl11.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..1bfe751
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/elinks-devel/files/patch-openssl11.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 54ebe365b752f8969a67279d0d29552ab638e025 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Witold Filipczyk <witekfl@poczta.onet.pl>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 6 Mar 2017 17:39:36 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Compilation fix for OpenSSL-1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/network/ssl/socket.c | 6 ++++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 4 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/network/ssl/socket.c src/network/ssl/socket.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 886eaf2..bc3621d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/network/ssl/socket.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/network/ssl/socket.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,7 +81,9 @@ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ssl_set_no_tls(struct socket *socket)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef CONFIG_OPENSSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ((ssl_t *) socket->ssl)->options |= SSL_OP_NO_TLSv1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef SSL_OP_NO_TLSv1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SSL_set_options((ssl_t *)socket->ssl, SSL_OP_NO_TLSv1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(CONFIG_GNUTLS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* GnuTLS does not support SSLv2 because it is "insecure".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -453,7 +455,7 @@ ssl_connect(struct socket *socket)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (client_cert) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  SSL_CTX *ctx = ((SSL *) socket->ssl)->ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  SSL_CTX *ctx = SSL_get_SSL_CTX((SSL *) socket->ssl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_CTX_use_certificate_chain_file(ctx, client_cert);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_CTX_use_PrivateKey_file(ctx, client_cert,
</span></pre><pre style='margin:0'>

</pre>