aboutsummaryrefslogtreecommitdiffstats
path: root/main/varnish/python-version-fix.patch
diff options
context:
space:
mode:
authorCarlo Landmeter <clandmeter@alpinelinux.org>2017-11-10 09:37:18 +0000
committerCarlo Landmeter <clandmeter@alpinelinux.org>2017-11-10 09:37:18 +0000
commite023db2355003ad8373eba245ff1f92c31900f49 (patch)
tree4a376141167dc348379ac6514909b1a9c725e596 /main/varnish/python-version-fix.patch
parent9963654832948d456136dd6239863f5c692fde1a (diff)
downloadaports-e023db2355003ad8373eba245ff1f92c31900f49.tar.bz2
aports-e023db2355003ad8373eba245ff1f92c31900f49.tar.xz
main/varnish: upgrade to 5.2.0
Diffstat (limited to 'main/varnish/python-version-fix.patch')
-rw-r--r--main/varnish/python-version-fix.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/main/varnish/python-version-fix.patch b/main/varnish/python-version-fix.patch
new file mode 100644
index 0000000000..f83385a3f8
--- /dev/null
+++ b/main/varnish/python-version-fix.patch
@@ -0,0 +1,66 @@
+From 17c92e43fda114bf5341e51d752e882238b8fe8c Mon Sep 17 00:00:00 2001
+From: Nils Goroll <nils.goroll@uplex.de>
+Date: Thu, 5 Oct 2017 13:39:23 +0200
+Subject: [PATCH] hack up vsctool to work with python 2 and 3
+
+StringIO does not exist any more in python3, yet requiring 2.7 would
+not pave the path forward, so try to be compatible with both.
+
+Works for me on Python 2.7.9 and Python 3.4
+
+I would appreciate if someone more fluent in serpentinous programming
+language reviewed and/or rewrote this.
+---
+ lib/libvcc/vsctool.py | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/lib/libvcc/vsctool.py b/lib/libvcc/vsctool.py
+index 854968e3b..829c6e518 100644
+--- a/lib/libvcc/vsctool.py
++++ b/lib/libvcc/vsctool.py
+@@ -37,7 +37,10 @@
+ import json
+ import sys
+ import gzip
+-import StringIO
++try:
++ import StringIO
++except ImportError:
++ import io
+ import collections
+ import struct
+
+@@ -54,9 +57,22 @@
+ "format": [ "integer", FORMATS],
+ }
+
++# http://python3porting.com/problems.html#bytes-strings-and-unicode
++if sys.version_info < (3,):
++ def b(x):
++ return x
++else:
++ import codecs
++ def b(x):
++ return codecs.latin_1_encode(x)[0]
++
+ def gzip_str(s):
+- out = StringIO.StringIO()
+- gzip.GzipFile(fileobj=out, mode="w").write(s)
++ try:
++ out = StringIO.StringIO()
++ except NameError:
++ out = io.BytesIO()
++
++ gzip.GzipFile(fileobj=out, mode="w").write(b(s))
+ out.seek(4)
+ out.write(struct.pack("<L", 0x12bfd58))
+ return out.getvalue()
+@@ -285,7 +301,7 @@ class rst_vsc(directive):
+ def __init__(self, s):
+ super(rst_vsc, self).__init__(s)
+
+- for i,v in PARAMS.iteritems():
++ for i,v in PARAMS.items():
+ if v is not True:
+ self.do_default(i, v[0], v[1])
+