add conditional build support for Python 3
This commit is contained in:
parent
6b79bd116e
commit
92e90eb897
66
varnish-5.2.1-python3.patch
Normal file
66
varnish-5.2.1-python3.patch
Normal file
@ -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])
|
||||||
|
|
27
varnish.spec
27
varnish.spec
@ -14,10 +14,17 @@
|
|||||||
%define commit1 5b976190ce9e0720f1eee6e9eaccd8a15eaa498d
|
%define commit1 5b976190ce9e0720f1eee6e9eaccd8a15eaa498d
|
||||||
%global shortcommit1 %(c=%{commit1}; echo ${c:0:7})
|
%global shortcommit1 %(c=%{commit1}; echo ${c:0:7})
|
||||||
|
|
||||||
|
%bcond_without python2
|
||||||
|
%bcond_with python3
|
||||||
|
|
||||||
|
%if %{with python2} == %{with python3}
|
||||||
|
%error Pick exactly one Python version
|
||||||
|
%endif
|
||||||
|
|
||||||
Summary: High-performance HTTP accelerator
|
Summary: High-performance HTTP accelerator
|
||||||
Name: varnish
|
Name: varnish
|
||||||
Version: 5.2.1
|
Version: 5.2.1
|
||||||
Release: 4%{?v_rc}%{?dist}.1
|
Release: 5%{?v_rc}%{?dist}
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
URL: http://www.varnish-cache.org/
|
URL: http://www.varnish-cache.org/
|
||||||
@ -26,14 +33,18 @@ Source1: https://github.com/varnishcache/pkg-varnish-cache/archive/%{commit1}.ta
|
|||||||
Patch1: varnish-5.1.1.fix_ld_library_path_in_doc_build.patch
|
Patch1: varnish-5.1.1.fix_ld_library_path_in_doc_build.patch
|
||||||
Patch4: varnish-4.0.3_fix_varnish4_selinux.el6.patch
|
Patch4: varnish-4.0.3_fix_varnish4_selinux.el6.patch
|
||||||
Patch6: varnish-4.1.0.fix_find-provides.patch
|
Patch6: varnish-4.1.0.fix_find-provides.patch
|
||||||
|
Patch8: varnish-5.2.1-python3.patch
|
||||||
Patch9: varnish-5.1.1.fix_python_version.patch
|
Patch9: varnish-5.1.1.fix_python_version.patch
|
||||||
Patch10: vsv00002_test.patch
|
Patch10: vsv00002_test.patch
|
||||||
|
|
||||||
|
%if %{with python3}
|
||||||
|
BuildRequires: python3-sphinx, python3-docutils
|
||||||
|
%else
|
||||||
%if 0%{?rhel} >= 6
|
%if 0%{?rhel} >= 6
|
||||||
BuildRequires: python-sphinx
|
BuildRequires: python-sphinx
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: python-docutils
|
BuildRequires: python-docutils
|
||||||
|
%endif
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
BuildRequires: groff
|
BuildRequires: groff
|
||||||
BuildRequires: pcre-devel
|
BuildRequires: pcre-devel
|
||||||
@ -104,7 +115,11 @@ Summary: Development files for %{name}-libs
|
|||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
Requires: varnish-libs = %{version}-%{release}
|
Requires: varnish-libs = %{version}-%{release}
|
||||||
|
%if %{with python3}
|
||||||
|
Requires: python3
|
||||||
|
%else
|
||||||
Requires: python
|
Requires: python
|
||||||
|
%endif
|
||||||
Provides: varnish-libs-devel = %{version}-%{release}
|
Provides: varnish-libs-devel = %{version}-%{release}
|
||||||
Obsoletes: varnish-libs-devel
|
Obsoletes: varnish-libs-devel
|
||||||
|
|
||||||
@ -139,6 +154,7 @@ ln -s pkg-varnish-cache-%{commit1}/debian debian
|
|||||||
%patch9 -p0
|
%patch9 -p0
|
||||||
%endif
|
%endif
|
||||||
%patch6 -p0
|
%patch6 -p0
|
||||||
|
%patch8 -p1
|
||||||
%patch10 -p0
|
%patch10 -p0
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -193,7 +209,11 @@ make %{?_smp_mflags} V=1
|
|||||||
sed -i 's,User=varnishlog,User=varnish,g;' redhat/varnishncsa.service
|
sed -i 's,User=varnishlog,User=varnish,g;' redhat/varnishncsa.service
|
||||||
|
|
||||||
# Explicit python, please
|
# Explicit python, please
|
||||||
|
%if %{with python2}
|
||||||
sed -i 's/env python/python2/g;' lib/libvcc/vmodtool.py
|
sed -i 's/env python/python2/g;' lib/libvcc/vmodtool.py
|
||||||
|
%else
|
||||||
|
sed -i 's/env python/python3/g;' lib/libvcc/vmodtool.py
|
||||||
|
%endif
|
||||||
|
|
||||||
# Clean up the sphinx documentation
|
# Clean up the sphinx documentation
|
||||||
rm -rf doc/sphinx/build/html/_sources
|
rm -rf doc/sphinx/build/html/_sources
|
||||||
@ -402,6 +422,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Mar 28 2018 Joe Orton <jorton@redhat.com> - 5.2.1-5
|
||||||
|
- add conditional build support for Python 3
|
||||||
|
|
||||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-4.1
|
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-4.1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user