From fb11a0dd2c2ad91f0bff5ad607049a22bd96714f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Tue, 29 Jan 2013 13:43:01 +0100 Subject: [PATCH] - transform python eggs versions in form of N.XY into something that rpm can properly compare - N.X-0.Y --- rpm-pythoneggs.patch | 46 ++++++++++++++++++++++++++++++++++++++++++++ rpm.spec | 2 ++ 2 files changed, 48 insertions(+) create mode 100644 rpm-pythoneggs.patch diff --git a/rpm-pythoneggs.patch b/rpm-pythoneggs.patch new file mode 100644 index 0000000..034926b --- /dev/null +++ b/rpm-pythoneggs.patch @@ -0,0 +1,46 @@ +--- rpm-5.4.10/scripts/pythoneggs.py.orig 2012-05-08 00:34:19.000000000 +0200 ++++ rpm-5.4.10/scripts/pythoneggs.py 2013-01-29 12:59:00.000000000 +0100 +@@ -16,7 +16,7 @@ + from distutils.sysconfig import get_python_lib + from subprocess import Popen, PIPE, STDOUT + import os +- ++import re + + opts, args = getopt(argv[1:], 'hPRSCOEb:', + ['help', 'provides', 'requires', 'suggests', 'conflicts', 'obsoletes', 'extras','buildroot=']) +@@ -29,6 +29,13 @@ + 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' +@@ -129,7 +136,7 @@ + if not name in py_deps: + py_deps[name] = [] + if dist.version: +- spec = ('==', 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): +@@ -160,8 +167,9 @@ + if spec[0] != '!=': + if not name in py_deps: + py_deps[name] = [] +- if not spec in py_deps[name]: +- py_deps[name].append(spec) ++ 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 diff --git a/rpm.spec b/rpm.spec index f63c599..30282f2 100644 --- a/rpm.spec +++ b/rpm.spec @@ -153,6 +153,7 @@ Patch59: %{name}-triggerin-compat.patch Patch60: %{name}-python-sitescriptdir.patch Patch61: %{name}-clean-docdir.patch Patch62: %{name}-DB_CONFIG.patch +Patch63: %{name}-pythoneggs.patch # Patches imported from Mandriva @@ -855,6 +856,7 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze %patch60 -p1 %patch61 -p1 %patch62 -p1 +%patch63 -p1 %patch1000 -p1 %patch1001 -p1 -- 2.44.0