forked from pool/python-pip
Matej Cepl
8e6dc8d6ee
- Update to 23.1.2 - Upgrade setuptools to 67.7.2 - 23.1.1: - Revert #11487, as it causes issues with virtualenvs created by the Windows Store distribution of Python. (#11987) - Revert pkg_resources (via setuptools) back to 65.6.3 - Update documentation to reflect the new behavior of using the cache of locally built wheels in hash-checking mode. (#11967) - 23.1: - Remove support for the deprecated --install-options. (#11358) - --no-binary does not imply setup.py install anymore. Instead a wheel will be built locally and installed. (#11451) - --no-binary does not disable the cache of locally built wheels anymore. It only means "don't download wheels". (#11453) - Deprecate --build-option and --global-option. Users are invited to switch to --config-settings. (#11859) - Using --config-settings with projects that don't have a pyproject.toml now prints a deprecation warning. In the future the presence of config settings will automatically enable the default build backend for legacy projects and pass the setttings to it. (#11915) - Remove setup.py install fallback when building a wheel failed for projects without pyproject.toml. (#8368) - When the wheel package is not installed, pip now uses the default build backend instead of setup.py install and setup.py develop for project without pyproject.toml. (#8559) - Specify egg-link location in assertion message when it does not match installed location to provide better error message for debugging. (#10476) - Present conflict information during installation after each choice that is rejected (pass -vv to pip install to show it) (#10937) - Display dependency chain on each Collecting/Processing log line. (#11169) - Support a per-requirement --config-settings option in requirements files. (#11325) - The --config-settings/-C option now supports using the same key multiple times. When the same key is specified multiple times, all values are passed to the build backend as a list, as opposed to the previous behavior, where pip would only pass the last value if the same key was used multiple times. (#11681) - Add -C as a short version of the --config-settings option. (#11786) - Reduce the number of resolver rounds, since backjumping makes the resolver more efficient in finding solutions. This also makes pathological cases fail quicker. (#11908) - Warn if --hash is used on a line without requirement in a requirements file. (#11935) - Stop propagating CLI --config-settings to the build dependencies. They already did not propagate to requirements provided in requirement files. To pass the same config settings to several requirements, users should provide the requirements as CLI arguments. (#11941) - Support wheel cache when using --require-hashes. (#5037) - Add --keyring-provider flag. See the Authentication page in the documentation for more info. (#8719) - In the case of virtual environments, configuration files are now also included from the base installation. (#9752) - Fix grammar by changing "A new release of pip available:" to "A new release of pip is available:" in the notice used for indicating that. (#11529) - Normalize paths before checking if installed scripts are on PATH. (#11719) - Correct the way to decide if keyring is available. (#11774) - More consistent resolution backtracking by removing legacy hack related to setuptools resolution (#11837) - Include AUTHORS.txt in pip's wheels. (#11882) - The uninstall and install --force-reinstall commands no longer call normalize_path() repeatedly on the same paths. Instead, these results are cached for the duration of an uninstall operation, resulting in improved performance, particularly on Windows. (#11889) - Fix and improve the parsing of hashes embedded in URL fragments. (#11936) - When package A depends on package B provided as a direct URL dependency including a hash embedded in the link, the --require-hashes option did not warn when user supplied hashes were missing for package B. (#11938) - Correctly report requested_extras in the installation report when extras are specified for a local directory installation. (#11946) - When installing an archive from a direct URL or local file, populate download_info.info.hashes in the installation report, in addition to the legacy download_info.info.hash key. (#11948) - 23.0.1: - Change the hashes in the installation report to be a mapping. Emit the archive_info.hashes dictionary in direct_url.json. (#11312) - Implement logic to read the EXTERNALLY-MANAGED file as specified in PEP 668. This allows a downstream Python distributor to prevent users from using pip to modify the externally managed environment. (#11381) - Enable the use of keyring found on PATH. This allows keyring installed using pipx to be used by pip. (#11589) - The inspect and installation report formats are now declared stable, and their version has been bumped from 0 to 1. (#11757) - Wheel cache behavior is restored to match previous versions, allowing the cache to find existing entries. (#11527) - Use the "venv" scheme if available to obtain prefixed lib paths. (#11598) - Deprecated a historical ambiguity in how egg fragments in URL-style requirements are formatted and handled. egg fragments that do not look like PEP 508 names now produce a deprecation warning. (#11617) - Fix scripts path in isolated build environment on Debian. (#11623) - Make pip show show the editable location if package is editable (#11638) - Stop checking that wheel is present when build-system.requires is provided without build-system.build-backend as setuptools (which we still check for) will inject it anyway. (#11673) - Fix an issue when an already existing in-memory distribution would cause exceptions in pip install (#11704) OBS-URL: https://build.opensuse.org/request/show/1084785 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pip?expand=0&rev=103
193 lines
5.8 KiB
RPMSpec
193 lines
5.8 KiB
RPMSpec
#
|
|
# spec file
|
|
#
|
|
# Copyright (c) 2023 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%if 0%{?suse_version} > 1500
|
|
%bcond_without libalternatives
|
|
%else
|
|
%bcond_with libalternatives
|
|
%endif
|
|
|
|
%{?!python_module:%define python_module() python3-%{**}}
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
|
%if "%{flavor}" == "test"
|
|
%define psuffix -test
|
|
%bcond_without test
|
|
%bcond_with wheel
|
|
%else
|
|
%if "%{flavor}" == "wheel"
|
|
%define psuffix -wheel
|
|
%bcond_without wheel
|
|
%bcond_with test
|
|
%else
|
|
%define psuffix %{nil}
|
|
%bcond_with test
|
|
%bcond_with wheel
|
|
%endif
|
|
%endif
|
|
%global skip_python2 1
|
|
%{?sle15_python_module_pythons}
|
|
Name: python-pip%{psuffix}
|
|
Version: 23.1.2
|
|
Release: 0
|
|
Summary: A Python package management system
|
|
License: MIT
|
|
URL: http://www.pip-installer.org
|
|
# The PyPI archive lacks the tests
|
|
Source: https://github.com/pypa/pip/archive/%{version}.tar.gz#/pip-%{version}-gh.tar.gz
|
|
# PATCH-FIX-OPENSUSE pip-shipped-requests-cabundle.patch -- adapted patch from python-certifi package
|
|
Patch0: pip-shipped-requests-cabundle.patch
|
|
# PATCH-FIX-UPSTREAM distutils-reproducible-compile.patch gh#python/cpython#8057 mcepl@suse.com
|
|
# To get reproducible builds, byte_compile() of distutils.util now sorts filenames.
|
|
Patch1: distutils-reproducible-compile.patch
|
|
BuildRequires: %{python_module base >= 3.7}
|
|
BuildRequires: %{python_module setuptools >= 40.8.0}
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros >= 20210929
|
|
Requires: ca-certificates
|
|
Requires: coreutils
|
|
Requires: python-setuptools
|
|
Requires: python-xml
|
|
%if %{with libalternatives}
|
|
Requires: alts
|
|
BuildRequires: alts
|
|
%else
|
|
Requires(post): update-alternatives
|
|
Requires(postun):update-alternatives
|
|
%endif
|
|
Recommends: ca-certificates-mozilla
|
|
BuildArch: noarch
|
|
%if %{with test}
|
|
# Test requirements:
|
|
BuildRequires: %{python_module PyYAML}
|
|
BuildRequires: %{python_module Werkzeug}
|
|
BuildRequires: %{python_module cryptography}
|
|
BuildRequires: %{python_module csv23}
|
|
BuildRequires: %{python_module docutils}
|
|
BuildRequires: %{python_module freezegun}
|
|
BuildRequires: %{python_module installer}
|
|
BuildRequires: %{python_module pretend}
|
|
BuildRequires: %{python_module pytest}
|
|
BuildRequires: %{python_module scripttest}
|
|
BuildRequires: %{python_module setuptools-wheel}
|
|
BuildRequires: %{python_module virtualenv >= 1.10}
|
|
BuildRequires: %{python_module wheel}
|
|
%if 0%{?suse_version} <= 1500
|
|
BuildRequires: %{python_module mock}
|
|
%endif
|
|
BuildRequires: ca-certificates
|
|
BuildRequires: git-core
|
|
%endif
|
|
%if %{with wheel}
|
|
BuildRequires: %{python_module wheel}
|
|
%endif
|
|
%python_subpackages
|
|
|
|
%description
|
|
Pip is a replacement for easy_install. It uses mostly the same techniques for
|
|
finding packages, so packages that were made easy_installable should be
|
|
pip-installable as well.
|
|
|
|
%prep
|
|
# Unbundling is not advised by upstream. See src/pip/_vendor/README.rst
|
|
# Exception: Use our own cabundle. Adapted patch from python-certifi package
|
|
%autosetup -p1 -n pip-%{version}
|
|
|
|
rm src/pip/_vendor/certifi/cacert.pem
|
|
|
|
%if %{with test}
|
|
mkdir -p tests/data/common_wheels
|
|
%python_expand cp %{$python_sitelib}/../wheels/setuptools*.whl tests/data/common_wheels/
|
|
%endif
|
|
# remove shebangs verbosely (if only sed would offer a verbose mode...)
|
|
for f in $(find src -name \*.py -exec grep -l '^#!%{_bindir}/env' {} \;); do
|
|
sed -i 's|^#!%{_bindir}/env .*$||g' $f
|
|
done
|
|
|
|
%build
|
|
%if ! %{with wheel}
|
|
%python_build
|
|
%else
|
|
%python_exec setup.py bdist_wheel --universal
|
|
%endif
|
|
|
|
%if !%{with test} && !%{with wheel}
|
|
%install
|
|
%python_install
|
|
%python_clone -a %{buildroot}%{_bindir}/pip
|
|
%python_clone -a %{buildroot}%{_bindir}/pip3
|
|
# if we just cloned to pip3-2.7 delete it
|
|
rm -f %{buildroot}%{_bindir}/pip3-2*
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
%endif
|
|
|
|
%if %{with wheel}
|
|
%python_expand install -D -m 0644 -t %{buildroot}%{$python_sitelib}/../wheels dist/*.whl
|
|
%endif
|
|
|
|
%if %{with test}
|
|
%check
|
|
export PYTHONPATH=$(pwd)/build/lib
|
|
# Looks broken with 22.3.1
|
|
donttest="test_pip_self_version_check_calls_underlying_implementation"
|
|
%pytest -m "not network" -k "not ($donttest)" tests/unit
|
|
%endif
|
|
|
|
%pre
|
|
# Since /usr/bin/pip became ghosted to be used with update-alternatives, we have to get rid
|
|
# of the old binary resulting from the non-update-alternatives-ified package:
|
|
[ -h %{_bindir}/pip ] || rm -f %{_bindir}/pip
|
|
[ -h %{_bindir}/pip3 ] || rm -f %{_bindir}/pip3
|
|
# If libalternatives is used: Removing old update-alternatives entries.
|
|
%python_libalternatives_reset_alternative pip
|
|
|
|
%if !%{with test} && !%{with wheel}
|
|
%post
|
|
# keep the alternative groups separate. Users could decide to let pip and pip3 point to
|
|
# different flavors
|
|
%python_install_alternative pip
|
|
%if "%python_flavor" != "python2"
|
|
%python_install_alternative pip3
|
|
%endif
|
|
|
|
%postun
|
|
%python_uninstall_alternative pip
|
|
%python_uninstall_alternative pip3
|
|
%endif
|
|
|
|
%files %{python_files}
|
|
%if !%{with test} && !%{with wheel}
|
|
%license LICENSE.txt
|
|
%doc AUTHORS.txt NEWS.rst README.rst
|
|
%python_alternative %{_bindir}/pip
|
|
%if "%{python_flavor}" == "python2"
|
|
%{_bindir}/pip2
|
|
%else
|
|
%python_alternative %{_bindir}/pip3
|
|
%endif
|
|
%{_bindir}/pip%{python_bin_suffix}
|
|
%{python_sitelib}/pip-%{version}*-info
|
|
%{python_sitelib}/pip
|
|
%endif
|
|
|
|
%if %{with wheel}
|
|
%dir %{python_sitelib}/../wheels
|
|
%{python_sitelib}/../wheels/*
|
|
%endif
|
|
|
|
%changelog
|