commit: 79f6deae86e2473c9db7922e6be38c485c27ad97 Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org> AuthorDate: Mon Feb 19 17:10:38 2018 +0000 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org> CommitDate: Mon Feb 19 17:11:10 2018 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79f6deae
www-servers/varnish: fix bug #647984 Package-Manager: Portage-2.3.19, Repoman-2.3.6 .../varnish/files/varnish-5.2.0-fix-import.patch | 66 ++++++++++++++++++++++ ...arnish-5.2.0.ebuild => varnish-5.2.0-r1.ebuild} | 2 + 2 files changed, 68 insertions(+) diff --git a/www-servers/varnish/files/varnish-5.2.0-fix-import.patch b/www-servers/varnish/files/varnish-5.2.0-fix-import.patch new file mode 100644 index 00000000000..f83385a3f8e --- /dev/null +++ b/www-servers/varnish/files/varnish-5.2.0-fix-import.patch @@ -0,0 +1,66 @@ +From 17c92e43fda114bf5341e51d752e882238b8fe8c Mon Sep 17 00:00:00 2001 +From: Nils Goroll <nils.gor...@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]) + diff --git a/www-servers/varnish/varnish-5.2.0.ebuild b/www-servers/varnish/varnish-5.2.0-r1.ebuild similarity index 97% rename from www-servers/varnish/varnish-5.2.0.ebuild rename to www-servers/varnish/varnish-5.2.0-r1.ebuild index 13a77002584..e1b07932b6d 100644 --- a/www-servers/varnish/varnish-5.2.0.ebuild +++ b/www-servers/varnish/varnish-5.2.0-r1.ebuild @@ -53,6 +53,8 @@ src_prepare() { # the original location ln -sf ../varnish.m4 m4/varnish.m4 + eapply "${FILESDIR}"/"${P}"-fix-import.patch + eapply_user eautoreconf