From 9a8a1ef98e99671ce1082828b32db8b3bb79e3f1 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Aug 21 2019 15:39:35 +0000 Subject: Remove python2-pip --- diff --git a/python-pip.spec b/python-pip.spec index e06e3d8..281d996 100644 --- a/python-pip.spec +++ b/python-pip.spec @@ -1,6 +1,5 @@ %bcond_without tests -%bcond_without python2 %bcond_without doc %global srcname pip @@ -22,7 +21,7 @@ Name: python-%{srcname} # When updating, update the bundled libraries versions bellow! # You can use vendor_meta.sh in the dist git repo Version: 19.1.1 -Release: 7%{?dist} +Release: 8%{?dist} Summary: A tool for installing and managing Python packages # We bundle a lot of libraries with pip, which itself is under MIT license. @@ -100,10 +99,6 @@ Patch3: remove-existing-dist-only-if-path-conflicts.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1655253 Patch4: dummy-certifi.patch -# When virtualenv is not available, skip the tests instead of failing -# Once we no longer ship or test python2-pip, remove this patch -Patch5: skip-virtualenv-tests.patch - # Downstream only patch # Users might have local installations of pip from using # `pip install --user --upgrade pip` on older versions. @@ -175,38 +170,6 @@ Recommends: (libcrypt.so.1 if python%{1}(x86-32)) } -%if %{with python2} -%package -n python2-%{srcname} -Summary: A tool for installing and managing Python 2 packages -BuildRequires: python2-devel -BuildRequires: python2-setuptools -%if %{with tests} -BuildRequires: python2-mock -BuildRequires: python2-pytest -BuildRequires: python2-pretend -BuildRequires: python2-freezegun -BuildRequires: python2-scripttest -BuildRequires: python2-pyyaml -%endif -BuildRequires: ca-certificates -Requires: ca-certificates -Requires: python2-setuptools - -# Virtual provides for the packages bundled by pip: -%{bundled 2} - -%{?python_provide:%python_provide python2-%{srcname}} - -%{crypt_compat_recommends 2} - -%description -n python2-%{srcname} -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". - -%endif # with python2 - %package -n python%{python3_pkgversion}-%{srcname} Summary: A tool for installing and managing Python3 packages @@ -291,10 +254,6 @@ popd %patch3 -p1 %patch4 -p1 -%if %{with tests} -%patch5 -p1 -%endif - # this goes together with patch4 rm src/pip/_vendor/certifi/*.pem sed -i '/\.pem$/d' src/pip.egg-info/SOURCES.txt @@ -318,20 +277,6 @@ rm docs/build/html/.buildinfo %install -%if %{with python2} -# The following is similar to %%py2_install_wheel, but we don't have -# /usr/bin/pip2 yet, so we install using the wheel directly. -# (This is not standard wheel usage, but the pip wheel supports it -- see -# pip/__main__.py) -%{__python2} dist/%{python_wheelname}/pip install \ - -I 'dist/%{python_wheelname}' \ - --root %{buildroot} \ - --no-deps - -# TODO: we have to remove this by hand now, but it'd be nice if we wouldn't have to -# (pip install wheel doesn't overwrite) -rm %{buildroot}%{_bindir}/pip -%endif # with python2 # The following is similar to %%py3_install_wheel, but we don't have # /usr/bin/pip yet, so we install using the wheel directly. @@ -347,29 +292,21 @@ pushd docs/build/man install -d %{buildroot}%{_mandir}/man1 for MAN in *1; do install -pm0644 $MAN %{buildroot}%{_mandir}/man1/$MAN -%if %{with python2} -install -pm0644 $MAN %{buildroot}%{_mandir}/man1/${MAN/pip/pip2} -%endif install -pm0644 $MAN %{buildroot}%{_mandir}/man1/${MAN/pip/pip3} done popd -%endif # with doc +%endif # before we ln -s anything, we apply Source10 patch to all pips: for PIP in %{buildroot}%{_bindir}/pip*; do patch -p1 --no-backup-if-mismatch $PIP < %{SOURCE10} done + mkdir -p %{buildroot}%{bashcompdir} -%if %{with python2} -PYTHONPATH=%{buildroot}%{python2_sitelib} \ - %{buildroot}%{_bindir}/pip2 completion --bash \ - > %{buildroot}%{bashcompdir}/pip2 -%endif PYTHONPATH=%{buildroot}%{python3_sitelib} \ %{buildroot}%{_bindir}/pip completion --bash \ > %{buildroot}%{bashcompdir}/pip -pips2=pip2 pips3=pip for pip in %{buildroot}%{_bindir}/pip*; do pip=$(basename $pip) @@ -380,41 +317,20 @@ for pip in %{buildroot}%{_bindir}/pip*; do ln -s pip %{buildroot}%{bashcompdir}/$pip %endif ;; -%if %{with python2} - pip2?*) - pips2="$pips2 $pip" -%if 0%{?bashcomp2} - ln -s pip2 %{buildroot}%{bashcompdir}/$pip -%endif - ;; -%endif esac done sed -i -e "s/^\\(complete.*\\) pip\$/\\1 $pips3/" \ -e s/_pip_completion/_pip3_completion/ \ %{buildroot}%{bashcompdir}/pip -%if %{with python2} -sed -i -e "s/^\\(complete.*\\) pip\$/\\1 $pips2/" \ - %{buildroot}%{bashcompdir}/pip2 -%endif # Provide symlinks to executables to comply with Fedora guidelines for Python -%if %{with python2} -ln -s ./pip%{python2_version} %{buildroot}%{_bindir}/pip-%{python2_version} -ln -s ./pip-%{python2_version} %{buildroot}%{_bindir}/pip-2 -%endif - ln -s ./pip%{python3_version} %{buildroot}%{_bindir}/pip-%{python3_version} ln -s ./pip-%{python3_version} %{buildroot}%{_bindir}/pip-3 # Make sure the INSTALLER is not pip, otherwise Patch2 won't work # TODO Maybe we should make all our python packages have this? -%if %{with python2} -echo rpm > %{buildroot}%{python2_sitelib}/pip-%{version}.dist-info/INSTALLER -%endif - echo rpm > %{buildroot}%{python3_sitelib}/pip-%{version}.dist-info/INSTALLER mkdir -p %{buildroot}%{python_wheeldir} @@ -437,39 +353,12 @@ pytest_k='not completion and mkdir _bin export PATH="$PWD/_bin:$PATH" -%if %{with python2} -export PYTHONPATH=%{buildroot}%{python2_sitelib} -ln -s %{buildroot}%{_bindir}/pip2 _bin/pip -# test_more_than_one_package assumes virtualenv is present -%{__python2} -m pytest -m 'not network' -k "$(echo $pytest_k) and not test_more_than_one_package" -%endif - - export PYTHONPATH=%{buildroot}%{python3_sitelib} ln -sf %{buildroot}%{_bindir}/pip3 _bin/pip %{__python3} -m pytest -m 'not network' -k "$(echo $pytest_k)" %endif -%if %{with python2} -%files -n python2-%{srcname} -%license LICENSE.txt -%doc README.rst -%if %{with doc} -%{_mandir}/man1/pip2.* -%endif -%{_bindir}/pip2 -%{_bindir}/pip-2 -%{_bindir}/pip%{python2_version} -%{_bindir}/pip-%{python2_version} -%{python2_sitelib}/pip* -%dir %{bashcompdir} -%if 0%{?bashcomp2} -%{bashcompdir}/pip2* -%dir %(dirname %{bashcompdir}) -%endif -%endif # with python2 - %files -n python%{python3_pkgversion}-%{srcname} %license LICENSE.txt %doc README.rst @@ -495,7 +384,7 @@ ln -sf %{buildroot}%{_bindir}/pip3 _bin/pip %license LICENSE.txt %doc README.rst %doc docs/build/html -%endif # with doc +%endif %files wheel %license LICENSE.txt @@ -505,6 +394,7 @@ ln -sf %{buildroot}%{_bindir}/pip3 _bin/pip %changelog * Wed Aug 21 2019 Petr Viktorin - 19.1.1-8 +- Remove python2-pip - Make pip bootstrap itself, rather than with an extra bootstrap RPM build * Sat Aug 17 2019 Miro HronĨok - 19.1.1-7 diff --git a/skip-virtualenv-tests.patch b/skip-virtualenv-tests.patch deleted file mode 100644 index fb3f41f..0000000 --- a/skip-virtualenv-tests.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/tests/lib/venv.py b/tests/lib/venv.py -index 6b63391..126db5b 100644 ---- a/tests/lib/venv.py -+++ b/tests/lib/venv.py -@@ -4,8 +4,12 @@ import compileall - import sys - import textwrap - -+import pytest - import six --import virtualenv as _virtualenv -+try: -+ import virtualenv as _virtualenv -+except ImportError: -+ _virtualenv = None - - from .path import Path - -@@ -20,6 +24,8 @@ class VirtualEnvironment(object): - """ - - def __init__(self, location, template=None, venv_type=None): -+ if _virtualenv is None: -+ pytest.skip('virtualenv not available') - assert template is None or venv_type is None - assert venv_type in (None, 'virtualenv', 'venv') - self.location = Path(location)