summary refs log tree commit diff
path: root/gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2016-01-31 15:22:17 -0500
committerMark H Weaver <mhw@netris.org>2016-02-04 00:15:21 -0500
commit5fb205c63854207a9216c6ffb9026ebb2734143f (patch)
tree8f1c6cc97240e0eadfbfbeb91ceed00104797418 /gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch
parent19f339526fb154d0e29d693a4d968cd003174835 (diff)
downloadguix-5fb205c63854207a9216c6ffb9026ebb2734143f.tar.gz
gnu: perl-io-socket-ssl: Add workaround for OpenSSL-1.0.2f.
* gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/web.scm (perl-io-socket-ssl)[source]: Add patch.
Diffstat (limited to 'gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch')
-rw-r--r--gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch b/gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch
new file mode 100644
index 0000000000..f2166aebfd
--- /dev/null
+++ b/gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch
@@ -0,0 +1,33 @@
+Work around a problem arising from the update to OpenSSL 1.0.2f, based on the
+following upstream commit:
+
+  https://github.com/noxxi/p5-io-socket-ssl/commit/6e23ee4a433f83f1065bd2467255eba5ee9b1ddd
+
+Attempting to update to IO-Socket-SSL-2.023, which includes this commit,
+caused other test failures.  See:
+
+  https://lists.gnu.org/archive/html/guix-devel/2016-01/msg01032.html
+
+Description from the upstream commit:
+
+  OpenSSL 1.0.2f changed the behavior of SSL shutdown in case the TLS connection
+  was not fully established (commit: f73c737c7ac908c5d6407c419769123392a3b0a9).
+  This somehow resulted in Net::SSLeay::shutdown returning 0 (i.e. keep trying)
+  which caused an endless loop. It will now ignore this result in case the TLS
+  connection was not yet established and consider the TLS connection closed
+  instead.
+
+--- IO-Socket-SSL-2.002/lib/IO/Socket/SSL.pm.orig	2014-10-21 16:51:16.000000000 -0400
++++ IO-Socket-SSL-2.002/lib/IO/Socket/SSL.pm	2016-01-31 15:07:14.971099894 -0500
+@@ -1213,6 +1213,11 @@
+ 		    # shutdown complete
+ 		    last;
+ 		}
++		if ((${*$self}{'_SSL_opened'}||0) <= 0) {
++		    # not really open, thus don't expect shutdown to return
++		    # something meaningful
++		    last;
++		}
+ 
+ 		# initiate or complete shutdown
+ 		local $SIG{PIPE} = 'IGNORE';