]>
Commit | Line | Data |
---|---|---|
76cf8a80 | 1 | --- rpm-5.4.15.org/scripts/pythoneggs.py 2012-05-08 00:39:11.000000000 +0200 |
75024bb9 | 2 | +++ rpm-5.4.15/scripts/pythoneggs.py 2018-09-27 10:32:34.661059061 +0200 |
a5bf4658 JR |
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> | |
75024bb9 | 9 | @@ -16,7 +16,8 @@ from pkg_resources import Distribution, |
fb11a0dd JR |
10 | from distutils.sysconfig import get_python_lib |
11 | from subprocess import Popen, PIPE, STDOUT | |
12 | import os | |
13 | - | |
75024bb9 | 14 | +import platform |
fb11a0dd JR |
15 | +import re |
16 | ||
17 | opts, args = getopt(argv[1:], 'hPRSCOEb:', | |
18 | ['help', 'provides', 'requires', 'suggests', 'conflicts', 'obsoletes', 'extras','buildroot=']) | |
75024bb9 | 19 | @@ -29,6 +30,13 @@ Obsoletes = False |
fb11a0dd JR |
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' | |
75024bb9 | 33 | @@ -125,11 +133,14 @@ for f in files: |
25bdcc2c JR |
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 | |
fb11a0dd JR |
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): | |
75024bb9 | 50 | @@ -145,6 +156,14 @@ for f in files: |
76cf8a80 AM |
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) | |
75024bb9 | 65 | @@ -153,15 +172,20 @@ for f in files: |
76cf8a80 AM |
66 | if dep in deps: |
67 | depsextras.remove(dep) | |
25bdcc2c | 68 | deps = depsextras |
76cf8a80 | 69 | + platform.python_version = old_python_version |
25bdcc2c JR |
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: | |
fb11a0dd JR |
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 |