[packages/rpm] - transform python eggs versions in form of N.X<a|b>Y into something that rpm can properly compare

baggins baggins at pld-linux.org
Tue Jan 29 13:45:17 CET 2013


commit fb11a0dd2c2ad91f0bff5ad607049a22bd96714f
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Tue Jan 29 13:43:01 2013 +0100

    - transform python eggs versions in form of N.X<a|b>Y into something
      that rpm can properly compare - N.X-0.<a|b>Y

 rpm-pythoneggs.patch | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 rpm.spec             |  2 ++
 2 files changed, 48 insertions(+)
---
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
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
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rpm.git/commitdiff/fb11a0dd2c2ad91f0bff5ad607049a22bd96714f



More information about the pld-cvs-commit mailing list