]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-pythoneggs.patch
- add provides/requires scripts macros for perl and python
[packages/rpm.git] / rpm-pythoneggs.patch
1 --- rpm-5.4.15.org/scripts/pythoneggs.py        2012-05-08 00:39:11.000000000 +0200
2 +++ rpm-5.4.15/scripts/pythoneggs.py    2018-09-27 10:32:34.661059061 +0200
3 @@ -1,4 +1,4 @@
4 -#!/usr/bin/env python
5 +#!/usr/bin/python2
6  # -*- coding: utf-8 -*-
7  #
8  # Copyright 2010 Per Ã˜yvind Karlsen <peroyvind@mandriva.org>
9 @@ -16,7 +16,8 @@ from pkg_resources import Distribution,
10  from distutils.sysconfig import get_python_lib
11  from subprocess import Popen, PIPE, STDOUT
12  import os
13 -
14 +import platform
15 +import re
16  
17  opts, args = getopt(argv[1:], 'hPRSCOEb:',
18          ['help', 'provides', 'requires', 'suggests', 'conflicts', 'obsoletes', 'extras','buildroot='])
19 @@ -29,6 +30,13 @@ Obsoletes = False
20  Extras = False
21  buildroot = None
22  
23 +def make_pldver(raw):
24 +    if re.match(r'^[0-9\.]+$', raw) == None:
25 +       pldver = re.sub(r'([\d\.]+)(.+)', r'\1-0.\2', raw)
26 +    else:
27 +       pldver = raw
28 +    return pldver
29 +
30  for o, a in opts:
31      if o in ('-h', '--help'):
32          print '-h, --help\tPrint help'
33 @@ -125,11 +133,14 @@ for f in files:
34                  if not name in py_deps:
35                      py_deps[name] = []
36                  py_deps[name].append(('==', dist.py_version))
37 -            name = 'pythonegg(%s)' % dist.key
38 +            if dist.py_version .split(".")[0] == '3':
39 +                name = 'python3egg(%s)' % dist.key
40 +            else:
41 +                name = 'pythonegg(%s)' % dist.key
42              if not name in py_deps:
43                  py_deps[name] = []
44              if dist.version:
45 -                spec = ('==', dist.version)
46 +                spec = ('==', make_pldver(dist.version))
47                  if not spec in py_deps[name]:
48                      py_deps[name].append(spec)
49          if Requires or (Suggests and dist.extras):
50 @@ -145,6 +156,14 @@ for f in files:
51                  spec = ('==', dist.py_version)
52                  if not spec in py_deps[name]:
53                      py_deps[name].append(spec)
54 +            # fake python version for dist.requires(), so deps like
55 +            # [:python_version < '3']
56 +            # enum34
57 +            # will be handled correctly
58 +            old_python_version = platform.python_version
59 +            def new_python_version():
60 +                return dist.py_version
61 +            platform.python_version = new_python_version
62              deps = dist.requires()
63              if Suggests:
64                  depsextras = dist.requires(extras=dist.extras)
65 @@ -153,15 +172,20 @@ for f in files:
66                          if dep in deps:
67                              depsextras.remove(dep)
68                  deps = depsextras
69 +            platform.python_version = old_python_version
70              # add requires/suggests based on egg metadata
71              for dep in deps:
72 -                name = 'pythonegg(%s)' % dep.key
73 +                if dist.py_version .split(".")[0] == '3':
74 +                    name = 'python3egg(%s)' % dep.key
75 +                else:
76 +                    name = 'pythonegg(%s)' % dep.key
77                  for spec in dep.specs:
78                      if spec[0] != '!=':
79                          if not name in py_deps:
80                              py_deps[name] = []
81 -                        if not spec in py_deps[name]:
82 -                            py_deps[name].append(spec)
83 +                        plddep = (spec[0], make_pldver(spec[1]))
84 +                        if not plddep in py_deps[name]:
85 +                            py_deps[name].append(plddep)
86                  if not dep.specs:
87                      py_deps[name] = []
88          # Unused, for automatic sub-package generation based on 'extras' from egg metadata
This page took 0.031652 seconds and 3 git commands to generate.