Statistics
| Branch: | Revision:

root / env / lib / python2.7 / site-packages / distribute-0.6.19-py2.7.egg / setuptools / command / bdist_rpm.py @ 1a305335

History | View | Annotate | Download (1.98 KB)

1
# This is just a kludge so that bdist_rpm doesn't guess wrong about the
2
# distribution name and version, if the egg_info command is going to alter
3
# them, another kludge to allow you to build old-style non-egg RPMs, and
4
# finally, a kludge to track .rpm files for uploading when run on Python <2.5.
5

    
6
from distutils.command.bdist_rpm import bdist_rpm as _bdist_rpm
7
import sys, os
8

    
9
class bdist_rpm(_bdist_rpm):
10

    
11
    def initialize_options(self):
12
        _bdist_rpm.initialize_options(self)
13
        self.no_egg = None
14

    
15
    if sys.version<"2.5":
16
        # Track for uploading any .rpm file(s) moved to self.dist_dir
17
        def move_file(self, src, dst, level=1):
18
            _bdist_rpm.move_file(self, src, dst, level)
19
            if dst==self.dist_dir and src.endswith('.rpm'):
20
                getattr(self.distribution,'dist_files',[]).append(
21
                    ('bdist_rpm',
22
                    src.endswith('.src.rpm') and 'any' or sys.version[:3],
23
                     os.path.join(dst, os.path.basename(src)))
24
                )
25

    
26
    def run(self):
27
        self.run_command('egg_info')    # ensure distro name is up-to-date
28
        _bdist_rpm.run(self)
29

    
30

    
31

    
32

    
33

    
34

    
35

    
36

    
37

    
38

    
39

    
40

    
41

    
42
    def _make_spec_file(self):
43
        version = self.distribution.get_version()
44
        rpmversion = version.replace('-','_')
45
        spec = _bdist_rpm._make_spec_file(self)
46
        line23 = '%define version '+version
47
        line24 = '%define version '+rpmversion
48
        spec  = [
49
            line.replace(
50
                "Source0: %{name}-%{version}.tar",
51
                "Source0: %{name}-%{unmangled_version}.tar"
52
            ).replace(
53
                "setup.py install ",
54
                "setup.py install --single-version-externally-managed "
55
            ).replace(
56
                "%setup",
57
                "%setup -n %{name}-%{unmangled_version}"
58
            ).replace(line23,line24)
59
            for line in spec
60
        ]
61
        spec.insert(spec.index(line24)+1, "%define unmangled_version "+version)
62
        return spec
63

    
64

    
65

    
66

    
67

    
68

    
69

    
70

    
71

    
72

    
73

    
74

    
75

    
76

    
77

    
78

    
79

    
80

    
81

    
82