You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
5.3 KiB
148 lines
5.3 KiB
%global srcname pip |
|
%global base_version 23.0.1 |
|
%global upstream_version %{base_version}%{?prerel} |
|
%global python_wheel_name %{srcname}-%{upstream_version}-py3-none-any.whl |
|
%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) |
|
%define __python /usr/bin/python2 |
|
|
|
Name: python2-%{srcname} |
|
Version: %{base_version}%{?prerel:~%{prerel}} |
|
Release: 1%{?dist} |
|
Summary: A tool for installing and managing Python packages |
|
License: MIT AND Python-2.0.1 AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND LGPL-2.1-only AND MPL-2.0 AND (Apache-2.0 OR BSD-2-Clause) |
|
URL: https://pip.pypa.io/ |
|
Source0: https://github.com/pypa/pip/archive/%{upstream_version}/%{srcname}-%{upstream_version}.tar.gz |
|
BuildArch: noarch |
|
Patch: remove-existing-dist-only-if-path-conflicts.patch |
|
Patch: dummy-certifi.patch |
|
Patch: nowarn-pip._internal.main.patch |
|
Patch: no-version-warning.patch |
|
Patch: https://github.com/pypa/pip/pull/11883.patch |
|
Patch: https://github.com/pypa/pip/pull/11904.patch |
|
Source10: pip-allow-different-versions.patch |
|
BuildRequires: python2-devel |
|
BuildRequires: python2-rpm-generators |
|
BuildRequires: python2-setuptools |
|
BuildRequires: bash-completion |
|
BuildRequires: python2-wheel |
|
BuildRequires: ca-certificates |
|
Requires: ca-certificates |
|
Recommends: python2-setuptools |
|
Provides: pip = %{version}-%{release} |
|
Conflicts: python2-pip < %{version}-%{release} |
|
Requires: python2-libs >= 2.7 |
|
Recommends: (libcrypt.so.1()(64bit) if python%{1}(x86-64)) |
|
Recommends: (libcrypt.so.1 if python%{1}(x86-32)) |
|
Provides: bundled(python%{1}dist(cachecontrol)) = 0.12.11 |
|
Provides: bundled(python%{1}dist(certifi)) = 2022.12.7 |
|
Provides: bundled(python%{1}dist(chardet)) = 5.1 |
|
Provides: bundled(python%{1}dist(colorama)) = 0.4.6 |
|
Provides: bundled(python%{1}dist(distlib)) = 0.3.6 |
|
Provides: bundled(python%{1}dist(distro)) = 1.8 |
|
Provides: bundled(python%{1}dist(idna)) = 3.4 |
|
Provides: bundled(python%{1}dist(msgpack)) = 1.0.4 |
|
Provides: bundled(python%{1}dist(packaging)) = 21.3 |
|
Provides: bundled(python%{1}dist(platformdirs)) = 2.6.2 |
|
Provides: bundled(python%{1}dist(pygments)) = 2.13 |
|
Provides: bundled(python%{1}dist(pyparsing)) = 3.0.9 |
|
Provides: bundled(python%{1}dist(pyproject-hooks)) = 1 |
|
Provides: bundled(python%{1}dist(requests)) = 2.28.2 |
|
Provides: bundled(python%{1}dist(resolvelib)) = 0.8.1 |
|
Provides: bundled(python%{1}dist(rich)) = 12.6 |
|
Provides: bundled(python%{1}dist(setuptools)) = 44 |
|
Provides: bundled(python%{1}dist(six)) = 1.16 |
|
Provides: bundled(python%{1}dist(tenacity)) = 8.1 |
|
Provides: bundled(python%{1}dist(tomli)) = 2.0.1 |
|
Provides: bundled(python%{1}dist(typing-extensions)) = 4.4 |
|
Provides: bundled(python%{1}dist(urllib3)) = 1.26.14 |
|
Provides: bundled(python%{1}dist(webencodings)) = 0.5.1 |
|
|
|
|
|
%description |
|
pip is a package management system used to install and manage software packages |
|
written in Python. Many packages can be found in the Python Package Index |
|
(PyPI). pip is a recursive acronym that can stand for either "Pip Installs |
|
Packages" or "Pip Installs Python". |
|
|
|
|
|
%prep |
|
%autosetup -p1 -n %{srcname}-%{upstream_version} |
|
# this goes together with patch4 |
|
rm src/pip/_vendor/certifi/*.pem |
|
# Do not use furo as HTML theme in docs |
|
# furo is not available in Fedora |
|
sed -i '/html_theme = "furo"/d' docs/html/conf.py |
|
# towncrier extension for Sphinx is not yet available in Fedora |
|
sed -i '/"sphinxcontrib.towncrier",/d' docs/html/conf.py |
|
# tests expect wheels in here |
|
ln -s %{python_wheel_dir} tests/data/common_wheels |
|
# Remove windows executable binaries |
|
rm -v src/pip/_vendor/distlib/*.exe |
|
sed -i '/\.exe/d' setup.py |
|
|
|
|
|
%build |
|
%py2_build_wheel |
|
|
|
|
|
%install |
|
%{python2} dist/%{python_wheel_name}/pip install \ |
|
--root %{buildroot} \ |
|
--no-deps \ |
|
--disable-pip-version-check \ |
|
--progress-bar off \ |
|
--verbose \ |
|
--ignore-installed \ |
|
--no-warn-script-location \ |
|
--no-index \ |
|
--no-cache-dir \ |
|
--find-links dist \ |
|
'pip==%{upstream_version}' |
|
|
|
for PIP in %{buildroot}%{_bindir}/pip*; do |
|
patch -p1 --no-backup-if-mismatch $PIP < %{SOURCE10} |
|
done |
|
|
|
mkdir -p %{buildroot}%{bashcompdir} |
|
PYTHONPATH=%{buildroot}%{python3_sitelib} \ |
|
%{buildroot}%{_bindir}/pip completion --bash \ |
|
> %{buildroot}%{bashcompdir}/pip3 |
|
|
|
sed -i -e "s/^\\(complete.*\\) pip\$/\\1 pip pip{,-}{3,%{python3_version}}/" \ |
|
-e s/_pip_completion/_pip3_completion/ \ |
|
%{buildroot}%{bashcompdir}/pip3 |
|
|
|
ln -s ./pip2 %{buildroot}%{_bindir}/pip-2 |
|
ln -s ./pip-2 %{buildroot}%{_bindir}/pip-2 |
|
|
|
|
|
# Make sure the INSTALLER is not pip and remove RECORD |
|
# %%pyproject macros do this for all packages |
|
echo rpm > %{buildroot}%{python3_sitelib}/pip-%{upstream_version}.dist-info/INSTALLER |
|
rm %{buildroot}%{python3_sitelib}/pip-%{upstream_version}.dist-info/RECORD |
|
|
|
mkdir -p %{buildroot}%{python_wheel_dir} |
|
install -p dist/%{python_wheel_name} -t %{buildroot}%{python_wheel_dir} |
|
|
|
|
|
%files -n python2-%{srcname} |
|
%doc README.rst |
|
%license %{python3_sitelib}/pip-%{upstream_version}.dist-info/LICENSE.txt |
|
%{_bindir}/pip |
|
%{_bindir}/pip2 |
|
%{_bindir}/pip-2 |
|
%{_bindir}/pip2.7 |
|
%{_bindir}/pip-2.7 |
|
%{python2_sitelib}/pip* |
|
%dir %{bashcompdir} |
|
%{bashcompdir}/pip2 |
|
|
|
|
|
%files -n %{python_wheel_pkg_prefix}-%{srcname}-wheel |
|
%license LICENSE.txt |
|
# we own the dir for simplicity |
|
%dir %{python_wheel_dir}/ |
|
%{python_wheel_dir}/%{python_wheel_name} |
|
|
|
|
|
%changelog
|
|
|