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.
6 from distutils.command.bdist_rpm import bdist_rpm as _bdist_rpm
9 class bdist_rpm(_bdist_rpm):
11 def initialize_options(self):
12 _bdist_rpm.initialize_options(self)
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(
22 src.endswith('.src.rpm') and 'any' or sys.version[:3],
23 os.path.join(dst, os.path.basename(src)))
27 self.run_command('egg_info') # ensure distro name is up-to-date
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
50 "Source0: %{name}-%{version}.tar",
51 "Source0: %{name}-%{unmangled_version}.tar"
54 "setup.py install --single-version-externally-managed "
57 "%setup -n %{name}-%{unmangled_version}"
58 ).replace(line23,line24)
61 spec.insert(spec.index(line24)+1, "%define unmangled_version "+version)