update to use Python 3 at build time

This commit is contained in:
Joe Orton 2018-06-27 12:54:24 +01:00
parent 429894ab18
commit 31f978891a
2 changed files with 178 additions and 2 deletions

171
apr-1.6.3-r1834495.patch Normal file
View File

@ -0,0 +1,171 @@
# ./pullrev.sh 1834495
http://svn.apache.org/viewvc?view=revision&revision=1834495
--- apr-1.6.3/buildconf
+++ apr-1.6.3/buildconf
@@ -112,8 +112,10 @@
# Remove autoconf 2.5x's cache directory
rm -rf autom4te*.cache
+PYTHON=${PYTHON-`build/PrintPath python3 python2 python`}
+
echo "buildconf: generating 'make' outputs ..."
-build/gen-build.py $verbose make
+${PYTHON} build/gen-build.py $verbose make
# Create RPM Spec file
if [ -f `which cut` ]; then
--- apr-1.6.3/build/gen-build.py
+++ apr-1.6.3/build/gen-build.py
@@ -10,7 +10,10 @@
import os
-import ConfigParser
+try:
+ import configparser
+except ImportError:
+ import ConfigParser as configparser
import getopt
import string
import glob
@@ -36,7 +39,7 @@
def main():
- parser = ConfigParser.ConfigParser()
+ parser = configparser.ConfigParser()
parser.read('build.conf')
if parser.has_option('options', 'dsp'):
@@ -62,7 +65,7 @@
# write out the platform-independent files
files = get_files(parser.get('options', 'paths'))
objects, dirs = write_objects(f, legal_deps, h_deps, files)
- f.write('\nOBJECTS_all = %s\n\n' % string.join(objects))
+ f.write('\nOBJECTS_all = %s\n\n' % " ".join(objects))
# for each platform and each subdirectory holding platform-specific files,
# write out their compilation rules, and an OBJECT_<subdir>_<plat> symbol.
@@ -86,11 +89,11 @@
inherit_files[-1] = inherit_files[-1][:-2] + '.lo'
# replace the \\'s with /'s
inherit_line = '/'.join(inherit_files)
- if not inherit_parent.has_key(inherit_files[0]):
+ if inherit_files[0] not in inherit_parent:
inherit_parent[inherit_files[0]] = []
inherit_parent[inherit_files[0]].append(inherit_line)
- for subdir in string.split(parser.get('options', 'platform_dirs')):
+ for subdir in parser.get('options', 'platform_dirs').split():
path = '%s/%s' % (subdir, platform)
if not os.path.exists(path):
# this subdir doesn't have a subdir for this platform, so we'll
@@ -106,7 +109,7 @@
files = get_files(path + '/*.c')
objects, _unused = write_objects(f, legal_deps, h_deps, files)
- if inherit_parent.has_key(subdir):
+ if subdir in inherit_parent:
objects = objects + inherit_parent[subdir]
symname = 'OBJECTS_%s_%s' % (subdir, platform)
@@ -114,7 +117,7 @@
objects.sort()
# and write the symbol for the whole group
- f.write('\n%s = %s\n\n' % (symname, string.join(objects)))
+ f.write('\n%s = %s\n\n' % (symname, " ".join(objects)))
# and include that symbol in the group
group.append('$(%s)' % symname)
@@ -122,18 +125,18 @@
group.sort()
# write out a symbol which contains the necessary files
- f.write('OBJECTS_%s = %s\n\n' % (platform, string.join(group)))
+ f.write('OBJECTS_%s = %s\n\n' % (platform, " ".join(group)))
- f.write('HEADERS = $(top_srcdir)/%s\n\n' % string.join(headers, ' $(top_srcdir)/'))
- f.write('SOURCE_DIRS = %s $(EXTRA_SOURCE_DIRS)\n\n' % string.join(dirs.keys()))
+ f.write('HEADERS = $(top_srcdir)/%s\n\n' % ' $(top_srcdir)/'.join(headers))
+ f.write('SOURCE_DIRS = %s $(EXTRA_SOURCE_DIRS)\n\n' % " ".join(dirs.keys()))
if parser.has_option('options', 'modules'):
modules = parser.get('options', 'modules')
- for mod in string.split(modules):
+ for mod in modules.split():
files = get_files(parser.get(mod, 'paths'))
objects, _unused = write_objects(f, legal_deps, h_deps, files)
- flat_objects = string.join(objects)
+ flat_objects = " ".join(objects)
f.write('OBJECTS_%s = %s\n' % (mod, flat_objects))
if parser.has_option(mod, 'target'):
@@ -153,9 +156,9 @@
d = os.path.dirname(d)
# Sort so 'foo' is before 'foo/bar'
- keys = alldirs.keys()
+ keys = list(alldirs.keys())
keys.sort()
- f.write('BUILD_DIRS = %s\n\n' % string.join(keys))
+ f.write('BUILD_DIRS = %s\n\n' % " ".join(keys))
f.write('.make.dirs: $(srcdir)/build-outputs.mk\n' \
'\t@for d in $(BUILD_DIRS); do test -d $$d || mkdir $$d; done\n' \
@@ -177,12 +180,12 @@
# what headers does this file include, along with the implied headers
deps = extract_deps(file, legal_deps)
- for hdr in deps.keys():
+ for hdr in list(deps.keys()):
deps.update(h_deps.get(hdr, {}))
- vals = deps.values()
+ vals = list(deps.values())
vals.sort()
- f.write('%s: %s .make.dirs %s\n' % (obj, file, string.join(vals)))
+ f.write('%s: %s .make.dirs %s\n' % (obj, file, " ".join(vals)))
objects.sort()
@@ -210,7 +213,7 @@
for hdr, deps in header_deps.items():
# print hdr, deps
start = len(deps)
- for dep in deps.keys():
+ for dep in list(deps.keys()):
deps.update(header_deps.get(dep, {}))
if len(deps) != start:
altered = 1
@@ -220,7 +223,7 @@
def get_files(patterns):
files = [ ]
- for pat in string.split(patterns):
+ for pat in patterns.split():
files.extend(map(clean_path, glob.glob(pat)))
files.sort()
return files
--- apr-1.6.3/build/buildcheck.sh
+++ apr-1.6.3/build/buildcheck.sh
@@ -4,7 +4,7 @@
res=0
# any python
-python=`build/PrintPath python`
+python=${PYTHON-`build/PrintPath python3 python2 python`}
if test -z "$python"; then
echo "buildconf: python not found."
echo " You need python installed"
@@ -11,7 +11,7 @@
echo " to build APR from SVN."
res=1
else
- py_version=`python -c 'import sys; print sys.version' 2>&1|sed 's/ .*//;q'`
+ py_version=`$python -c 'import sys; print(sys.version)' 2>&1|sed 's/ .*//;q'`
echo "buildconf: python version $py_version (ok)"
fi

View File

@ -6,7 +6,7 @@
Summary: Apache Portable Runtime library
Name: apr
Version: 1.6.3
Release: 7%{?dist}
Release: 8%{?dist}
# ASL 2.0: everything
# ISC: network_io/apr-1.4.6/network_io/unix/inet_?to?.c
# BSD with advertising: strings/apr_snprintf.c, strings/apr_fnmatch.c,
@ -18,11 +18,12 @@ Group: System Environment/Libraries
URL: http://apr.apache.org/
Source0: http://www.apache.org/dist/apr/%{name}-%{version}.tar.bz2
Source1: apr-wrapper.h
Patch1: apr-1.6.3-r1834495.patch
Patch2: apr-1.2.2-locktimeout.patch
Patch3: apr-1.2.2-libdir.patch
Patch4: apr-1.2.7-pkgconf.patch
Patch5: apr-rh1539844.patch
BuildRequires: gcc, autoconf, libtool, libuuid-devel, python2
BuildRequires: gcc, autoconf, libtool, libuuid-devel, python3
# To enable SCTP support
BuildRequires: lksctp-tools-devel
@ -46,6 +47,7 @@ C data structures and routines.
%prep
%setup -q
%patch1 -p1 -b .r1834495
%patch2 -p1 -b .locktimeout
%patch3 -p1 -b .libdir
%patch4 -p1 -b .pkgconf
@ -131,6 +133,9 @@ popd
%{_datadir}/aclocal/*.m4
%changelog
* Wed Jun 27 2018 Joe Orton <jorton@redhat.com> - 1.6.3-8
- update to use Python 3 at build time
* Wed Mar 14 2018 Iryna Shcherbina <ishcherb@redhat.com> - 1.6.3-7
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)