+++ /dev/null
-diff -urN rpm-4.5.orig/macros.in rpm-4.5/macros.in
---- rpm-4.5.orig/macros.in 2019-06-01 18:55:39.553000000 +0200
-+++ rpm-4.5/macros.in 2019-11-01 12:11:16.312000000 +0100
-@@ -1404,25 +1404,46 @@
- #
- # Path to scripts to autogenerate python package dependencies,
- #
--# Note: Used iff _use_internal_dependency_generator is non-zero. The
-+# Note: Used if _use_internal_dependency_generator is non-zero. The
- # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
--%__python_provides /usr/bin/env PYVER=%py_ver %{_rpmhome}/pythondeps.sh --provides
--%__python_requires /usr/bin/env PYVER=%py_ver %{_rpmhome}/pythondeps.sh --requires
--
--# Useful macros for building *.rpm python packages (for python > 1.6).
-+%__python_provides %{_rpmhome}/pythoneggs.py --provides
-+%__python_requires %{_rpmhome}/pythoneggs.py --requires
- #
--%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")
--%python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
--%python_version %(%{__python} -c "import sys; print(sys.version[0:3])")
-+%python_sitearch %(%{__python} -c "import os; from distutils.sysconfig import get_python_lib; lib=get_python_lib(1); print os.path.islink(lib) and os.path.abspath(os.path.join(os.path.dirname(lib),os.readlink(lib))) or lib")
-+%python_sitelib %(%{__python} -c "import os; from distutils.sysconfig import get_python_lib; lib=get_python_lib(); print os.path.islink(lib) and os.path.abspath(os.path.join(os.path.dirname(lib),os.readlink(lib))) or lib")
-+%python_version %(%{__python} -c "import sys; print(sys.version[0:3])")
-+
-+# python main version
-+%py_ver %(%{__python} -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)
-+%py_prefix %(%{__python} -c "import sys; print sys.prefix" 2>/dev/null || echo PYTHON-NOT-FOUND)
-+%py_platlibdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-+%py_purelibdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=0)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-+# backward compatibility
-+%py_libdir %py_purelibdir
-+
-+%py_platsitedir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-+%py_puresitedir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-+%py_sitedir %py_puresitedir
-+
-+%py_dyndir %{py_platlibdir}/lib-dynload
-+
-+%py_incdir %(%{__python} -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_inc()' 2>/dev/null || echo PYTHON-INCLUDEDIR-NOT-FOUND)
-
- %py_compile(O) \
--find %1 -name '*.pyc' -name '*.pyo' -exec rm -f {} \\; \
--%{__python} %{?O:-O} -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
-+find %1 -name '*.pyc' -exec rm -f {} \\; \
-+%{__python} -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
-+%{-O: \
-+find %1 -name '*.pyo' -exec rm -f {} \\; \
-+%{__python} -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
-+}
-+
-+# pure python modules compilation
-+%py_comp %{__python} -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('%{buildroot}'):])"
-+
-+%py_ocomp %{__python} -O -c "import compileall; import sys; compileall.compile_dir(sys.argv[1], ddir=sys.argv[1][len('%{buildroot}'):])"
-
- %py_requires(d) \
--%define maxver %(%{__python} -c "import sys; a,b=sys.version_info[:2]; print '%%d.%%d'%%(a,b+1)" 2>/dev/null || echo PYTHON-NOT-FOUND) \
--BuildRequires: python %{-d:python-devel} \
--PreReq: python >= %{python_version}, python < %{maxver}
-+BuildRequires: %{__python} %{-d:python-devel}
-
- #------------------------------------------------------------------------
- # php(...) configuration.
-diff -urN rpm-4.5.orig/scripts/Makefile.am rpm-4.5/scripts/Makefile.am
---- rpm-4.5.orig/scripts/Makefile.am 2019-06-01 18:55:39.553000000 +0200
-+++ rpm-4.5/scripts/Makefile.am 2019-11-01 12:03:59.288000000 +0100
-@@ -12,7 +12,8 @@
- find-requires.perl freshen.sh gendiff getpo.sh http.req \
- check-java-closure.sh java.prov.sh java.req.sh \
- javadeps.sh libtooldeps.sh pkgconfigdeps.sh \
-- perldeps.pl perl.prov perl.req pythondeps.sh mimetypedeps.sh \
-+ perldeps.pl perl.prov perl.req pythondeps.sh pythoneggs.py \
-+ mimetypedeps.sh \
- php.prov php.req rpm2cpio \
- rpmdb_loadcvt rpmdiff rpmdiff.cgi \
- rpm.daily rpm.log rpm.xinetd \
-@@ -39,7 +40,8 @@
- find-provides.perl \
- find-requires.perl getpo.sh http.req \
- javadeps.sh libtooldeps.sh pkgconfigdeps.sh \
-- perldeps.pl perl.prov perl.req pythondeps.sh mimetypedeps.sh \
-+ perldeps.pl perl.prov perl.req pythondeps.sh pythoneggs.py \
-+ mimetypedeps.sh \
- php.prov php.req \
- rpmdb_loadcvt \
- rpm.daily rpm.log rpm.xinetd \
-diff -urN rpm-4.5.orig/scripts/pythoneggs.py rpm-4.5/scripts/pythoneggs.py
---- rpm-4.5.orig/scripts/pythoneggs.py 1970-01-01 01:00:00.000000000 +0100
-+++ rpm-4.5/scripts/pythoneggs.py 2019-03-09 02:30:08.000000000 +0100
-@@ -0,0 +1,237 @@
-+#!/usr/bin/python2
-+# -*- coding: utf-8 -*-
-+#
-+# Copyright 2010 Per Øyvind Karlsen <peroyvind@mandriva.org>
-+#
-+# This program is free software. It may be redistributed and/or modified under
-+# the terms of the LGPL version 2.1 (or later).
-+#
-+# RPM5 python (egg) dependency generator.
-+#
-+
-+from getopt import getopt
-+from os.path import basename, dirname, isdir, sep, splitext
-+from sys import argv, stdin, version
-+from pkg_resources import Distribution, FileMetadata, PathMetadata
-+from distutils.sysconfig import get_python_lib
-+from subprocess import Popen, PIPE, STDOUT
-+import os
-+import platform
-+import re
-+
-+opts, args = getopt(argv[1:], 'hPRSCOEb:',
-+ ['help', 'provides', 'requires', 'suggests', 'conflicts', 'obsoletes', 'extras','buildroot='])
-+
-+Provides = False
-+Requires = False
-+Suggests = False
-+Conflicts = False
-+Obsoletes = False
-+Extras = False
-+buildroot = None
-+
-+def make_pldver(raw):
-+ if re.match(r'^[0-9\.]+$', raw) == None:
-+ pldver = re.sub(r'([\d\.]+)(.+)', r'\1-0.\2', raw)
-+ else:
-+ pldver = raw
-+ return pldver
-+
-+for o, a in opts:
-+ if o in ('-h', '--help'):
-+ print '-h, --help\tPrint help'
-+ print '-P, --provides\tPrint Provides'
-+ print '-R, --requires\tPrint Requires'
-+ print '-S, --suggests\tPrint Suggests'
-+ print '-C, --conflicts\tPrint Conflicts'
-+ print '-O, --obsoletes\tPrint Obsoletes (unused)'
-+ print '-E, --extras\tPrint Extras '
-+ print '-b, --buildroot\tBuildroot for package '
-+ exit(1)
-+ elif o in ('-P', '--provides'):
-+ Provides = True
-+ elif o in ('-R', '--requires'):
-+ Requires = True
-+ elif o in ('-S', '--suggests'):
-+ Suggests = True
-+ elif o in ('-C', '--conflicts'):
-+ Conflicts = True
-+ elif o in ('-O', '--obsoletes'):
-+ Obsoletes = True
-+ elif o in ('-E', '--extras'):
-+ Extras = True
-+ elif o in ('-b', '--buildroot'):
-+ buildroot = a
-+
-+def is_exe(fpath):
-+ return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
-+
-+typelib_check = False
-+
-+if is_exe("/usr/lib/rpm/gi-find-deps.sh") and is_exe("/usr/bin/g-ir-dep-tool"):
-+ if not buildroot:
-+ pass
-+ else:
-+ typelib_check = True
-+
-+if Requires:
-+ py_abi = True
-+else:
-+ py_abi = False
-+py_deps = {}
-+if args:
-+ files = args
-+else:
-+ files = stdin.readlines()
-+
-+for f in files:
-+ f = f.strip()
-+ lower = f.lower()
-+ name = 'python(abi)'
-+ # add dependency based on path, versioned if within versioned python directory
-+ if py_abi and (lower.endswith('.py') or lower.endswith('.pyc') or lower.endswith('.pyo')):
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ purelib = get_python_lib(standard_lib=1, plat_specific=0).split(version[:3])[0]
-+ platlib = get_python_lib(standard_lib=1, plat_specific=1).split(version[:3])[0]
-+ for lib in (purelib, platlib):
-+ if lib in f:
-+ spec = ('==',f.split(lib)[1].split(sep)[0])
-+ if not spec in py_deps[name]:
-+ py_deps[name].append(spec)
-+ # Pipe files to find typelib requires
-+ if typelib_check:
-+ p = Popen(['/usr/lib/rpm/gi-find-deps.sh', '-R',str(buildroot)], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
-+ (stdoutdata, stderrdata) = p.communicate(input=str(f)+"\n")
-+
-+ if stdoutdata and stdoutdata:
-+ py_deps[stdoutdata.strip()]= ""
-+
-+ # XXX: hack to workaround RPM internal dependency generator not passing directories
-+ dlower = dirname(lower)
-+ if dlower.endswith('.egg') or \
-+ dlower.endswith('.egg-info') or \
-+ dlower.endswith('.egg-link'):
-+ lower = dlower
-+ f = dirname(f)
-+ # Determine provide, requires, conflicts & suggests based on egg metadata
-+ if lower.endswith('.egg') or \
-+ lower.endswith('.egg-info') or \
-+ lower.endswith('.egg-link'):
-+ dist_name = basename(f)
-+ if isdir(f):
-+ path_item = dirname(f)
-+ metadata = PathMetadata(path_item, f)
-+ else:
-+ path_item = f
-+ metadata = FileMetadata(f)
-+ dist = Distribution.from_location(path_item, dist_name, metadata)
-+ if Provides:
-+ # If egg metadata says package name is python, we provide python(abi)
-+ if dist.key == 'python':
-+ name = 'python(abi)'
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ py_deps[name].append(('==', dist.py_version))
-+ if dist.py_version .split(".")[0] == '3':
-+ name = 'python3egg(%s)' % dist.key
-+ else:
-+ name = 'pythonegg(%s)' % dist.key
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ if dist.version:
-+ spec = ('==', make_pldver(dist.version))
-+ if not spec in py_deps[name]:
-+ py_deps[name].append(spec)
-+ if Requires or (Suggests and dist.extras):
-+ name = 'python(abi)'
-+ # If egg metadata says package name is python, we don't add dependency on python(abi)
-+ if dist.key == 'python':
-+ py_abi = False
-+ if name in py_deps:
-+ py_deps.pop(name)
-+ elif py_abi and dist.py_version:
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ spec = ('==', dist.py_version)
-+ if not spec in py_deps[name]:
-+ py_deps[name].append(spec)
-+ # fake python version for dist.requires(), so deps like
-+ # [:python_version < '3']
-+ # enum34
-+ # will be handled correctly
-+ old_python_version = platform.python_version
-+ def new_python_version():
-+ return dist.py_version
-+ platform.python_version = new_python_version
-+ deps = dist.requires()
-+ if Suggests:
-+ depsextras = dist.requires(extras=dist.extras)
-+ if not Requires:
-+ for dep in reversed(depsextras):
-+ if dep in deps:
-+ depsextras.remove(dep)
-+ deps = depsextras
-+ platform.python_version = old_python_version
-+ # add requires/suggests based on egg metadata
-+ for dep in deps:
-+ if dist.py_version .split(".")[0] == '3':
-+ name = 'python3egg(%s)' % dep.key
-+ else:
-+ name = 'pythonegg(%s)' % dep.key
-+ for spec in dep.specs:
-+ if spec[0] != '!=':
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ plddep = (spec[0], make_pldver(spec[1]))
-+ if not plddep in py_deps[name]:
-+ py_deps[name].append(plddep)
-+ if not dep.specs:
-+ py_deps[name] = []
-+ # Unused, for automatic sub-package generation based on 'extras' from egg metadata
-+ # TODO: implement in rpm later, or...?
-+ if Extras:
-+ deps = dist.requires()
-+ extras = dist.extras
-+ print extras
-+ for extra in extras:
-+ print '%%package\textras-%s' % extra
-+ print 'Summary:\t%s extra for %s python egg' % (extra, dist.key)
-+ print 'Group:\t\tDevelopment/Python'
-+ depsextras = dist.requires(extras=[extra])
-+ for dep in reversed(depsextras):
-+ if dep in deps:
-+ depsextras.remove(dep)
-+ deps = depsextras
-+ for dep in deps:
-+ for spec in dep.specs:
-+ if spec[0] == '!=':
-+ print 'Conflicts:\t%s %s %s' % (dep.key, '==', spec[1])
-+ else:
-+ print 'Requires:\t%s %s %s' % (dep.key, spec[0], spec[1])
-+ print '%%description\t%s' % extra
-+ print '%s extra for %s python egg' % (extra, dist.key)
-+ print '%%files\t\textras-%s\n' % extra
-+ if Conflicts:
-+ # Should we really add conflicts for extras?
-+ # Creating a meta package per extra with suggests on, which has
-+ # the requires/conflicts in stead might be a better solution...
-+ for dep in dist.requires(extras=dist.extras):
-+ name = dep.key
-+ for spec in dep.specs:
-+ if spec[0] == '!=':
-+ if not name in py_deps:
-+ py_deps[name] = []
-+ spec = ('==', spec[1])
-+ if not spec in py_deps[name]:
-+ py_deps[name].append(spec)
-+names = py_deps.keys()
-+names.sort()
-+for name in names:
-+ if py_deps[name]:
-+ # Print out versioned provides, requires, suggests, conflicts
-+ for spec in py_deps[name]:
-+ print '%s %s %s' % (name, spec[0], spec[1])
-+ else:
-+ # Print out unversioned provides, requires, suggests, conflicts
-+ print name