summaryrefslogtreecommitdiff
path: root/setuptools/command/bdist_rpm.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2021-12-19 18:55:41 -0500
committerJason R. Coombs <jaraco@jaraco.com>2021-12-19 18:55:41 -0500
commitc44b668424abd77a33bf5e5061b102ddbfbf6cd8 (patch)
tree9994b7cde86cc6070fe6c94132a252a5bc59caf0 /setuptools/command/bdist_rpm.py
parent460b59f0e68dba17e2465e8dd421bbc14b994d1f (diff)
parent93562cb376a8666fe8672c7c070c4002554ddbf1 (diff)
downloadpython-setuptools-git-c44b668424abd77a33bf5e5061b102ddbfbf6cd8.tar.gz
Merge distutils into main.
Diffstat (limited to 'setuptools/command/bdist_rpm.py')
-rw-r--r--setuptools/command/bdist_rpm.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/setuptools/command/bdist_rpm.py b/setuptools/command/bdist_rpm.py
new file mode 100644
index 00000000..98bf5dea
--- /dev/null
+++ b/setuptools/command/bdist_rpm.py
@@ -0,0 +1,40 @@
+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