import distutils.command.bdist_rpm as orig import warnings from setuptools import SetuptoolsDeprecationWarning class bdist_rpm(orig.bdist_rpm): """ Override the default bdist_rpm behavior to do the following: 1. Run egg_info to ensure the name and version are properly calculated. 2. Always run 'install' using --single-version-externally-managed to disable eggs in RPM distributions. """ def run(self): warnings.warn( "bdist_rpm is deprecated and will be removed in a future " "version. Use bdist_wheel (wheel packages) instead.", SetuptoolsDeprecationWarning, ) # ensure distro name is up-to-date self.run_command('egg_info') orig.bdist_rpm.run(self) def _make_spec_file(self): spec = orig.bdist_rpm._make_spec_file(self) spec = [ line.replace( "setup.py install ", "setup.py install --single-version-externally-managed " ).replace( "%setup", "%setup -n %{name}-%{unmangled_version}" ) for line in spec ] return spec