diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0bbebec
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/pip-19.2.3.tar.gz
diff --git a/.python3x-pip.metadata b/.python3x-pip.metadata
new file mode 100644
index 0000000..da3a8b9
--- /dev/null
+++ b/.python3x-pip.metadata
@@ -0,0 +1 @@
+80f07dcd304d1b5819c83c644c4bea8c07335917 SOURCES/pip-19.2.3.tar.gz
diff --git a/SOURCES/dummy-certifi.patch b/SOURCES/dummy-certifi.patch
new file mode 100644
index 0000000..6e02685
--- /dev/null
+++ b/SOURCES/dummy-certifi.patch
@@ -0,0 +1,12 @@
+diff --git a/src/pip/_vendor/certifi/core.py b/src/pip/_vendor/certifi/core.py
+index 7271acf..9f0dc20 100644
+--- a/src/pip/_vendor/certifi/core.py
++++ b/src/pip/_vendor/certifi/core.py
+@@ -10,6 +10,4 @@ import os
+ 
+ 
+ def where():
+-    f = os.path.dirname(__file__)
+-
+-    return os.path.join(f, 'cacert.pem')
++    return '/etc/pki/tls/certs/ca-bundle.crt'
diff --git a/SOURCES/emit-a-warning-when-running-with-root-privileges.patch b/SOURCES/emit-a-warning-when-running-with-root-privileges.patch
new file mode 100644
index 0000000..0c61734
--- /dev/null
+++ b/SOURCES/emit-a-warning-when-running-with-root-privileges.patch
@@ -0,0 +1,37 @@
+diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py
+index 1279d4a..aeb9d26 100644
+--- a/src/pip/_internal/commands/install.py
++++ b/src/pip/_internal/commands/install.py
+@@ -5,6 +5,8 @@ import logging
+ import operator
+ import os
+ import shutil
++import sys
++from os import path
+ from optparse import SUPPRESS_HELP
+ 
+ from pip._vendor import pkg_resources
+@@ -217,6 +219,23 @@ class InstallCommand(RequirementCommand):
+ 
+     def run(self, options, args):
+         cmdoptions.check_install_build_global(options)
++
++        def is_venv():
++            return (hasattr(sys, 'real_prefix') or
++                    (hasattr(sys, 'base_prefix') and
++                     sys.base_prefix != sys.prefix))
++
++        # Check whether we have root privileges and aren't in venv/virtualenv
++        if os.getuid() == 0 and not is_venv():
++            command = path.basename(sys.argv[0])
++            if command == "__main__.py":
++                command = path.basename(sys.executable) + " -m pip"
++            logger.warning(
++                "Running pip install with root privileges is "
++                "generally not a good idea. Try `%s install --user` instead."
++                % command
++            )
++
+         upgrade_strategy = "to-satisfy-only"
+         if options.upgrade:
+             upgrade_strategy = options.upgrade_strategy
diff --git a/SOURCES/html_theme_path.patch b/SOURCES/html_theme_path.patch
new file mode 100644
index 0000000..4209471
--- /dev/null
+++ b/SOURCES/html_theme_path.patch
@@ -0,0 +1,11 @@
+diff -ru pip-10.0.1/docs/conf.py pip-10.0.1_patched/docs/conf.py
+--- pip-10.0.1/docs/html/conf.py	2018-04-14 13:17:31.000000000 +0200
++++ pip-10.0.1_patched/docs/html/conf.py	2018-07-23 15:23:31.053267611 +0200
+@@ -134,6 +134,7 @@
+ # The theme to use for HTML and HTML Help pages.  Major themes that come with
+ # Sphinx are currently 'default' and 'sphinxdoc'.
+ html_theme = "pypa_theme"
++html_theme_path = ["pypa", "python-docs-theme"]
+ 
+ # Theme options are theme-specific and customize the look and feel of a theme
+ # further.  For a list of options available for each theme, see the
diff --git a/SOURCES/pip-allow-different-versions.patch b/SOURCES/pip-allow-different-versions.patch
new file mode 100644
index 0000000..5b7075d
--- /dev/null
+++ b/SOURCES/pip-allow-different-versions.patch
@@ -0,0 +1,20 @@
+--- /usr/bin/pip3	2018-03-29 15:22:13.000000000 +0200
++++ pip3	2018-05-04 11:49:08.098821010 +0200
+@@ -4,7 +4,16 @@
+ import re
+ import sys
+ 
+-from pip._internal import main
++try:
++    from pip._internal import main
++except ImportError:
++    # user has most probably downgraded pip in their home
++    # so let them run it anyway until ~/.local/bin makes it in front of the PATH
++    from pip import main
++else:
++    # user might also upgraded pip...
++    if hasattr(main, 'main'):
++        main = main.main
+ 
+ if __name__ == '__main__':
+     sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
diff --git a/SOURCES/remove-existing-dist-only-if-path-conflicts.patch b/SOURCES/remove-existing-dist-only-if-path-conflicts.patch
new file mode 100644
index 0000000..c93a887
--- /dev/null
+++ b/SOURCES/remove-existing-dist-only-if-path-conflicts.patch
@@ -0,0 +1,88 @@
+commit b6d5da6796801862eb751a93d507c343af0604d6
+Author: Victor Stinner <vstinner@redhat.com>
+Date:   Tue Sep 18 17:13:51 2018 +0200
+
+    Subject: Prevent removing of the system packages installed under /usr/lib
+    
+    when pip install -U is executed.
+    
+    Resolves: rhbz#1550368
+    
+    Co-Authored-By: Michal Cyprian <m.cyprian@gmail.com>
+
+diff --git a/src/pip/_internal/legacy_resolve.py b/src/pip/_internal/legacy_resolve.py
+index 1d9229cb..3088d22d 100644
+--- a/src/pip/_internal/legacy_resolve.py
++++ b/src/pip/_internal/legacy_resolve.py
+@@ -24,7 +24,7 @@ from pip._internal.exceptions import (
+ from pip._internal.req.constructors import install_req_from_req_string
+ from pip._internal.utils.logging import indent_log
+ from pip._internal.utils.misc import (
+-    dist_in_usersite, ensure_dir, normalize_version_info,
++    dist_in_install_path, dist_in_usersite, ensure_dir, normalize_version_info,
+ )
+ from pip._internal.utils.packaging import (
+     check_requires_python, get_requires_python,
+@@ -219,7 +219,9 @@ class Resolver(object):
+         """
+         # Don't uninstall the conflict if doing a user install and the
+         # conflict is not a user install.
+-        if not self.use_user_site or dist_in_usersite(req.satisfied_by):
++        if ((not self.use_user_site
++                or dist_in_usersite(req.satisfied_by))
++                and dist_in_install_path(req.satisfied_by)):
+             req.conflicts_with = req.satisfied_by
+         req.satisfied_by = None
+ 
+diff --git a/src/pip/_internal/req/req_install.py b/src/pip/_internal/req/req_install.py
+index f5c93504..1096c397 100644
+--- a/src/pip/_internal/req/req_install.py
++++ b/src/pip/_internal/req/req_install.py
+@@ -27,7 +27,7 @@ from pip._internal.utils.logging import indent_log
+ from pip._internal.utils.marker_files import PIP_DELETE_MARKER_FILENAME
+ from pip._internal.utils.misc import (
+     _make_build_dir, ask_path_exists, backup_dir, call_subprocess,
+-    display_path, dist_in_site_packages, dist_in_usersite, ensure_dir,
++    display_path, dist_in_install_path, dist_in_site_packages, dist_in_usersite, ensure_dir,
+     get_installed_version, redact_password_from_url, rmtree,
+ )
+ from pip._internal.utils.packaging import get_metadata
+@@ -427,7 +427,7 @@ class InstallRequirement(object):
+                         "lack sys.path precedence to %s in %s" %
+                         (existing_dist.project_name, existing_dist.location)
+                     )
+-            else:
++            elif dist_in_install_path(existing_dist):
+                 self.conflicts_with = existing_dist
+         return True
+ 
+diff --git a/src/pip/_internal/utils/misc.py b/src/pip/_internal/utils/misc.py
+index 61f74dc8..ffa8042c 100644
+--- a/src/pip/_internal/utils/misc.py
++++ b/src/pip/_internal/utils/misc.py
+@@ -30,7 +30,7 @@ from pip._vendor.six.moves.urllib.parse import unquote as urllib_unquote
+ 
+ from pip import __version__
+ from pip._internal.exceptions import CommandError, InstallationError
+-from pip._internal.locations import site_packages, user_site
++from pip._internal.locations import distutils_scheme, site_packages, user_site
+ from pip._internal.utils.compat import (
+     WINDOWS, console_to_str, expanduser, stdlib_pkgs, str_to_display,
+ )
+@@ -454,6 +454,16 @@ def dist_in_site_packages(dist):
+     ).startswith(normalize_path(site_packages))
+ 
+ 
++def dist_in_install_path(dist):
++    """
++    Return True if given Distribution is installed in
++    path matching distutils_scheme layout.
++    """
++    norm_path = normalize_path(dist_location(dist))
++    return norm_path.startswith(normalize_path(
++        distutils_scheme("")['purelib'].split('python')[0]))
++
++
+ def dist_is_editable(dist):
+     # type: (Distribution) -> bool
+     """
diff --git a/SPECS/python3x-pip.spec b/SPECS/python3x-pip.spec
new file mode 100644
index 0000000..cb86a8c
--- /dev/null
+++ b/SPECS/python3x-pip.spec
@@ -0,0 +1,713 @@
+%bcond_with tests
+
+%bcond_with doc
+
+%global srcname pip
+%global python_wheelname %{srcname}-%{version}-py2.py3-none-any.whl
+%global python_wheeldir %{_datadir}/python38-wheels
+
+%if %{with doc}
+%global pypa_theme_commit_hash d2e63fbfc62af3b7050f619b2f5bb8658985b931
+%endif
+
+%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null)
+
+Name:           python3x-%{srcname}
+# When updating, update the bundled libraries versions bellow!
+# You can use vendor_meta.sh in the dist git repo
+Version:        19.2.3
+Release:        5%{?dist}
+Summary:        A tool for installing and managing Python packages
+
+# We bundle a lot of libraries with pip, which itself is under MIT license.
+# Here is the list of the libraries with corresponding licenses:
+
+# appdirs: MIT
+# distlib: Python
+# distro: ASL 2.0
+# html5lib: MIT
+# six: MIT
+# colorama: BSD
+# CacheControl: ASL 2.0
+# msgpack-python: ASL 2.0
+# lockfile: MIT
+# progress: ISC
+# ipaddress: Python
+# packaging: ASL 2.0 or BSD
+# pep517: MIT
+# pyparsing: MIT
+# pytoml: MIT
+# retrying: ASL 2.0
+# requests: ASL 2.0
+# chardet: LGPLv2
+# idna: BSD
+# urllib3: MIT
+# certifi: MPLv2.0
+# setuptools: MIT
+# webencodings: BSD
+
+License:        MIT and Python and ASL 2.0 and BSD and ISC and LGPLv2 and MPLv2.0 and (ASL 2.0 or BSD)
+URL:            http://www.pip-installer.org
+Source0:        %pypi_source
+
+BuildArch:      noarch
+# Exclude i686 arch. Due to a modularity issue it's being added to the
+# x86_64 compose of CRB, but we don't want to ship it at all.
+# See: https://projects.engineering.redhat.com/browse/RCM-72605
+ExcludeArch:    i686
+
+%if %{with tests}
+BuildRequires:  /usr/bin/git
+BuildRequires:  /usr/bin/bzr
+BuildRequires:  /usr/bin/svn
+BuildRequires:  python38-setuptools-wheel
+BuildRequires:  python38-wheel-wheel
+%endif
+
+# to get tests:
+# git clone https://github.com/pypa/pip && cd pip
+# git checkout $VERSION && tar -czvf ../pip-$VERSION-tests.tar.gz tests/
+%if %{with tests}
+Source1:        pip-%{version}-tests.tar.gz
+%endif
+
+# Themes required to build the docs.
+%if %{with doc}
+Source2:        https://github.com/pypa/pypa-docs-theme/archive/%{pypa_theme_commit_hash}.tar.gz
+Source3:        https://github.com/python/python-docs-theme/archive/2018.2.tar.gz
+%endif
+
+%if %{with tests}
+# Fix expected output in test to not break with alpha/beta/rc Python versions
+Patch0:         https://github.com/pypa/pip/pull/6788.patch
+%endif
+
+# Downstream only patch
+# Emit a warning to the user if pip install is run with root privileges
+# Issue upstream: https://github.com/pypa/pip/issues/4288
+Patch1:         emit-a-warning-when-running-with-root-privileges.patch
+
+# Add path to the doc themes to conf.py
+Patch2:         html_theme_path.patch
+
+# Prevent removing of the system packages installed under /usr/lib
+# when pip install -U is executed.
+# https://bugzilla.redhat.com/show_bug.cgi?id=1550368#c24
+Patch3:         remove-existing-dist-only-if-path-conflicts.patch
+
+# Use the system level root certificate instead of the one bundled in certifi
+# https://bugzilla.redhat.com/show_bug.cgi?id=1655253
+Patch4:         dummy-certifi.patch
+
+# Downstream only patch
+# Users might have local installations of pip from using
+# `pip install --user --upgrade pip` on older/newer versions.
+# If they do that and they run `pip` or  `pip3`, the one from /usr/bin is used.
+# However that's the one from this RPM package and the import in there might
+# fail (it tries to import from ~/.local, but older or newer pip is there with
+# a bit different API).
+# We add this patch as a dirty workaround to make /usr/bin/pip* work with
+# both pip10+ (from this RPM) and older or newer (19.3+) pip (from whatever).
+# A proper fix is to put ~/.local/bin in front of /usr/bin in the PATH,
+# however others are against that and we cannot change it for existing
+# installs/user homes anyway.
+# https://bugzilla.redhat.com/show_bug.cgi?id=1569488
+# https://bugzilla.redhat.com/show_bug.cgi?id=1571650
+# https://bugzilla.redhat.com/show_bug.cgi?id=1767212
+# WARNING: /usr/bin/pip* are entrypoints, this cannot be applied in %%prep!
+# %%patch10 doesn't work outside of %%prep, so we add it as a source
+Source10:        pip-allow-different-versions.patch
+
+%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".
+
+
+
+# Virtual provides for the packages bundled by pip.
+# You can find the versions in src/pip/_vendor/vendor.txt file.
+%global bundled() %{expand:
+Provides: bundled(python%{1}dist(appdirs)) = 1.4.3
+Provides: bundled(python%{1}dist(CacheControl)) = 0.12.5
+Provides: bundled(python%{1}dist(certifi)) = 2019.6.16
+Provides: bundled(python%{1}dist(chardet)) = 3.0.4
+Provides: bundled(python%{1}dist(colorama)) = 0.4.1
+Provides: bundled(python%{1}dist(distlib)) = 0.2.9.post0
+Provides: bundled(python%{1}dist(distro)) = 1.4.0
+Provides: bundled(python%{1}dist(html5lib)) = 1.0.1
+Provides: bundled(python%{1}dist(idna)) = 2.8
+Provides: bundled(python%{1}dist(ipaddress)) = 1.0.22
+Provides: bundled(python%{1}dist(lockfile)) = 0.12.2
+Provides: bundled(python%{1}dist(msgpack)) = 0.6.1
+Provides: bundled(python%{1}dist(packaging)) = 19.0
+Provides: bundled(python%{1}dist(pep517)) = 0.5.0
+Provides: bundled(python%{1}dist(progress)) = 1.5
+Provides: bundled(python%{1}dist(pyparsing)) = 2.4.0
+Provides: bundled(python%{1}dist(pytoml)) = 0.1.20
+Provides: bundled(python%{1}dist(requests)) = 2.22.0
+Provides: bundled(python%{1}dist(retrying)) = 1.3.3
+Provides: bundled(python%{1}dist(setuptools)) = 41.0.1
+Provides: bundled(python%{1}dist(six)) = 1.12.0
+Provides: bundled(python%{1}dist(urllib3)) = 1.25.3
+Provides: bundled(python%{1}dist(webencodings)) = 0.5.1
+}
+
+# Some manylinux1 wheels need libcrypt.so.1.
+# Manylinux1, a common (as of 2019) platform tag for binary wheels, relies
+# on a glibc version that included ancient crypto functions, which were
+# moved to libxcrypt and then removed in:
+#  https://fedoraproject.org/wiki/Changes/FullyRemoveDeprecatedAndUnsafeFunctionsFromLibcrypt
+# The manylinux1 standard assumed glibc would keep ABI compatibility,
+# but that's only the case if libcrypt.so.1 (libxcrypt-compat) is around.
+# This should be solved in the next manylinux standard (but it may be
+# a long time until manylinux1 is phased out).
+# See: https://github.com/pypa/manylinux/issues/305
+# Note that manylinux is only applicable to x86 (both 32 and 64 bits)
+%global crypt_compat_recommends() %{expand:
+Recommends: (libcrypt.so.1()(64bit) if python%{1}(x86-64))
+Recommends: (libcrypt.so.1 if python%{1}(x86-32))
+}
+
+
+
+%package -n python%{python3_pkgversion}-%{srcname}
+Summary:        A tool for installing and managing Python3 packages
+
+BuildRequires:  python%{python3_pkgversion}-devel
+BuildRequires:  python%{python3_pkgversion}-rpm-macros
+BuildRequires:  python%{python3_pkgversion}-setuptools
+BuildRequires:  bash-completion
+%if %{with tests}
+BuildRequires:  python%{python3_pkgversion}-mock
+BuildRequires:  python%{python3_pkgversion}-pytest
+BuildRequires:  python%{python3_pkgversion}-pretend
+BuildRequires:  python%{python3_pkgversion}-freezegun
+BuildRequires:  python%{python3_pkgversion}-scripttest
+BuildRequires:  python%{python3_pkgversion}-virtualenv
+BuildRequires:  python%{python3_pkgversion}-pyyaml
+%endif
+BuildRequires:  python%{python3_pkgversion}-wheel
+BuildRequires:  ca-certificates
+Requires:       ca-certificates
+Requires:  python%{python3_pkgversion}-setuptools
+
+# python38 installs the alternatives master symlink to which we attach a slave
+Requires: python38
+Requires(post): python38
+Requires(postun): python38
+
+# Virtual provides for the packages bundled by pip:
+%{bundled 3.8}
+
+%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}}
+
+%{crypt_compat_recommends 38}
+
+%description -n python%{python3_pkgversion}-%{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".
+
+%if %{with doc}
+%package doc
+Summary:        A documentation for a tool for installing and managing Python packages
+
+BuildRequires:  python%{python3_pkgversion}-sphinx
+
+%description doc
+A documentation for a tool for installing and managing Python packages
+
+%endif
+
+%package -n python%{python3_pkgversion}-%{srcname}-wheel
+Summary:        The pip wheel
+Requires:       ca-certificates
+
+# Virtual provides for the packages bundled by pip:
+%{bundled 3.8}
+
+%{crypt_compat_recommends 38}
+
+%description -n python%{python3_pkgversion}-%{srcname}-wheel
+A Python wheel of pip to use with venv.
+
+%prep
+%setup -q -n %{srcname}-%{version}
+%if %{with tests}
+tar -xf %{SOURCE1}
+%endif
+%if %{with doc}
+pushd docs/html
+tar -xf %{SOURCE2}
+mv pypa-docs-theme-%{pypa_theme_commit_hash} pypa
+tar -xf %{SOURCE3}
+mv python-docs-theme-2018.2 python-docs-theme
+popd
+%endif
+
+%if %{with tests}
+%patch0 -p1
+%endif
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
+# this goes together with patch4
+rm src/pip/_vendor/certifi/*.pem
+sed -i '/\.pem$/d' src/pip.egg-info/SOURCES.txt
+
+%if %{with tests}
+# tests expect wheels in here
+ln -s %{python_wheeldir} tests/data/common_wheels
+%endif
+
+
+%build
+%py3_build_wheel
+
+%if %{with doc}
+export PYTHONPATH=./src/
+# from tox.ini
+sphinx-build-3 -b html docs/html docs/build/html
+sphinx-build-3 -b man  docs/man  docs/build/man  -c docs/html
+rm docs/build/html/.buildinfo
+%endif
+
+
+%install
+
+# The following is similar to %%py3_install_wheel, but we don't have
+# /usr/bin/pip yet, so we install using the wheel directly.
+# (This is not standard wheel usage, but the pip wheel supports it -- see
+#  pip/__main__.py)
+%{__python3} dist/%{python_wheelname}/pip install \
+    -I 'dist/%{python_wheelname}' \
+    --root %{buildroot} \
+    --no-deps
+
+%if %{with doc}
+pushd docs/build/man
+install -d %{buildroot}%{_mandir}/man1
+for MAN in *1; do
+install -pm0644 $MAN %{buildroot}%{_mandir}/man1/${MAN/pip/pip3.8}
+done
+popd
+%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}
+PYTHONPATH=%{buildroot}%{python3_sitelib} \
+    %{buildroot}%{_bindir}/pip completion --bash \
+    > %{buildroot}%{bashcompdir}/pip3.8
+
+# Make bash completion apply to all the 5 symlinks we install
+sed -i -e "s/^\\(complete.*\\) pip\$/\\1 pip{,-}%{python3_version}/" \
+    -e s/_pip_completion/_pip38_completion/ \
+    %{buildroot}%{bashcompdir}/pip3.8
+
+
+# Provide symlinks to executables to comply with Fedora guidelines for Python
+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?
+echo rpm > %{buildroot}%{python3_sitelib}/pip-%{version}.dist-info/INSTALLER
+
+mkdir -p %{buildroot}%{python_wheeldir}
+install -p dist/%{python_wheelname} -t %{buildroot}%{python_wheeldir}
+
+# RHEL8: Remove binaries conflicting with Python 3.6
+rm %{buildroot}%{_bindir}/pip
+rm %{buildroot}%{_bindir}/pip3
+rm %{buildroot}%{_bindir}/pip-3
+
+# All ghost files controlled by alternatives need to exist for the files
+# section check to succeed
+touch %{buildroot}%{_bindir}/pip3
+touch %{buildroot}%{_bindir}/pip-3
+
+
+%if %{with tests}
+%check
+# bash completion tests only work from installed package
+# needs unaltered sys.path and we cannot do that in %%check
+#     test_pep517_and_build_options
+#     test_config_file_venv_option
+# TODO investigate failures
+#     test_uninstall_non_local_distutils
+pytest_k='not completion and
+          not test_pep517_and_build_options and
+          not test_config_file_venv_option and
+          not test_uninstall_non_local_distutils'
+
+mkdir _bin
+export PATH="$PWD/_bin:$PATH"
+
+export PYTHONPATH=%{buildroot}%{python3_sitelib}
+ln -sf %{buildroot}%{_bindir}/pip3 _bin/pip
+%{__python3} -m pytest -m 'not network' -k "$(echo $pytest_k)" -v
+%endif
+
+
+%post -n python%{python3_pkgversion}-%{srcname}
+alternatives --add-slave python3 %{_bindir}/python3.8 \
+    %{_bindir}/pip3 \
+    pip3 \
+    %{_bindir}/pip3.8
+alternatives --add-slave python3 %{_bindir}/python3.8 \
+    %{_bindir}/pip-3 \
+    pip-3 \
+    %{_bindir}/pip-3.8
+
+%postun -n python%{python3_pkgversion}-%{srcname}
+# Do this only during uninstall process (not during update)
+if [ $1 -eq 0 ]; then
+    # Only remove the slave links if the master link for python3 still exists.
+    # Due to a possible bug in yum, python38 gets removed before python38-pip
+    # even though we have declared Requires(postun): python38
+    EXISTS=`alternatives --display python3 | \
+          grep -c "^/usr/bin/python3.8 - priority [0-9]*"`
+
+    if [ $EXISTS -ne 0 ]; then
+        alternatives --remove-slave python3 %{_bindir}/python3.8 \
+            pip3
+        alternatives --remove-slave python3 %{_bindir}/python3.8 \
+            pip-3
+    fi
+fi
+
+
+%files -n python%{python3_pkgversion}-%{srcname}
+%license LICENSE.txt
+%doc README.rst
+%if %{with doc}
+%{_mandir}/man1/pip3.8.*
+%{_mandir}/man1/pip3.8-*.*
+%endif
+%{_bindir}/pip%{python3_version}
+%{_bindir}/pip-%{python3_version}
+%{python3_sitelib}/pip*
+%dir %{bashcompdir}
+%{bashcompdir}/pip3.8
+%ghost %{_bindir}/pip3
+%ghost %{_bindir}/pip-3
+
+%if %{with doc}
+%files doc
+%license LICENSE.txt
+%doc README.rst
+%doc docs/build/html
+%endif
+
+%files -n python%{python3_pkgversion}-%{srcname}-wheel
+%license LICENSE.txt
+# we own the dir for simplicity
+%dir %{python_wheeldir}/
+%{python_wheeldir}/%{python_wheelname}
+
+%changelog
+* Mon Mar 09 2020 Tomas Orsava <torsava@redhat.com> - 19.2.3-5
+- Implement the alternatives system for the executables
+- Resolves: rhbz#1807041
+
+* Fri Dec 13 2019 Tomas Orsava <torsava@redhat.com> - 19.2.3-4
+- Exclude unsupported i686 arch
+
+* Wed Nov 20 2019 Tomas Orsava <torsava@redhat.com> - 19.2.3-3
+- Modify for RHEL8
+
+* Wed Oct 30 2019 Miro Hrončok <mhroncok@redhat.com> - 19.2.3-2
+- Make /usr/bin/pip(3) work with user-installed pip 19.3+ (#1767212)
+
+* Mon Sep 02 2019 Miro Hrončok <mhroncok@redhat.com> - 19.2.3-1
+- Update to 19.2.3 (#1742230)
+- Drop patch that should strip path prefixes from RECORD files, the paths are relative
+
+* Wed Aug 21 2019 Petr Viktorin <pviktori@redhat.com> - 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 <mhroncok@redhat.com> - 19.1.1-7
+- Rebuilt for Python 3.8
+
+* Wed Aug 14 2019 Miro Hrončok <mhroncok@redhat.com> - 19.1.1-6
+- Bootstrap for Python 3.8
+
+* Wed Aug 14 2019 Miro Hrončok <mhroncok@redhat.com> - 19.1.1-5
+- Bootstrap for Python 3.8
+
+* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 19.1.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Mon Jul 15 2019 Petr Viktorin <pviktori@redhat.com> - 19.1.1-3
+- Recommend libcrypt.so.1 for manylinux1 compatibility
+- Make /usr/bin/pip Python 3
+
+* Mon Jun 10 2019 Miro Hrončok <mhroncok@redhat.com> - 19.1.1-2
+- Fix root warning when pip is invoked via python -m pip
+- Remove a redundant second WARNING prefix form the abovementioned warning
+
+* Wed May 15 2019 Miro Hrončok <mhroncok@redhat.com> - 19.1.1-1
+- Update to 19.1.1 (#1706995)
+
+* Thu Apr 25 2019 Miro Hrončok <mhroncok@redhat.com> - 19.1-1
+- Update to 19.1 (#1702525)
+
+* Wed Mar 06 2019 Miro Hrončok <mhroncok@redhat.com> - 19.0.3-1
+- Update to 19.0.3 (#1679277)
+
+* Wed Feb 13 2019 Miro Hrončok <mhroncok@redhat.com> - 19.0.2-1
+- Update to 19.0.2 (#1668492)
+
+* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 18.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Mon Dec 03 2018 Miro Hrončok <mhroncok@redhat.com> - 18.1-2
+- Use the system level root certificate instead of the one bundled in certifi
+
+* Thu Nov 22 2018 Miro Hrončok <mhroncok@redhat.com> - 18.1-1
+- Update to 18.1 (#1652089)
+
+* Tue Sep 18 2018 Victor Stinner <vstinner@redhat.com> - 18.0-4
+- Prevent removing of the system packages installed under /usr/lib
+  when pip install -U is executed. Original patch by Michal Cyprian.
+  Resolves: rhbz#1550368.
+
+* Wed Aug 08 2018 Miro Hrončok <mhroncok@redhat.com> - 18.0-3
+- Create python-pip-wheel package with the wheel
+
+* Tue Jul 31 2018 Miro Hrončok <mhroncok@redhat.com> - 18.0-2
+- Remove redundant "Unicode"" from License
+
+* Mon Jul 23 2018 Marcel Plch <mplch@redhat.com> - 18.0-7
+- Update to 18.0
+
+* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.3-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Mon Jun 18 2018 Miro Hrončok <mhroncok@redhat.com> - 9.0.3-5
+- Rebuilt for Python 3.7
+
+* Wed Jun 13 2018 Miro Hrončok <mhroncok@redhat.com> - 9.0.3-4
+- Bootstrap for Python 3.7
+
+* Wed Jun 13 2018 Miro Hrončok <mhroncok@redhat.com> - 9.0.3-3
+- Bootstrap for Python 3.7
+
+* Fri May 04 2018 Miro Hrončok <mhroncok@redhat.com> - 9.0.3-2
+- Allow to import pip10's main from pip9's /usr/bin/pip
+- Do not show the "new version of pip" warning outside of venv
+Resolves: rhbz#1569488
+Resolves: rhbz#1571650
+Resolves: rhbz#1573755
+
+* Thu Mar 29 2018 Charalampos Stratakis <cstratak@redhat.com> - 9.0.3-1
+- Update to 9.0.3
+
+* Wed Feb 21 2018 Lumír Balhar <lbalhar@redhat.com> - 9.0.1-16
+- Include built HTML documentation (in the new -doc subpackage) and man page
+
+* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.1-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Mon Dec 04 2017 Charalampos Stratakis <cstratak@redhat.com> - 9.0.1-14
+- Reintroduce the ipaddress module in the python3 subpackage.
+
+* Mon Nov 20 2017 Charalampos Stratakis <cstratak@redhat.com> - 9.0.1-13
+- Add virtual provides for the bundled libraries. (rhbz#1096912)
+
+* Tue Aug 29 2017 Tomas Orsava <torsava@redhat.com> - 9.0.1-12
+- Switch macros to bcond's and make Python 2 optional to facilitate building
+  the Python 2 and Python 3 modules
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.1-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue May 23 2017 Tomas Orsava <torsava@redhat.com> - 9.0.1-10
+- Modernized package descriptions
+Resolves: rhbz#1452568
+
+* Tue Mar 21 2017 Tomas Orsava <torsava@redhat.com> - 9.0.1-9
+- Fix typo in the sudo pip warning
+
+* Fri Mar 03 2017 Tomas Orsava <torsava@redhat.com> - 9.0.1-8
+- Patch 1 update: No sudo pip warning in venv or virtualenv
+
+* Thu Feb 23 2017 Tomas Orsava <torsava@redhat.com> - 9.0.1-7
+- Patch 1 update: Customize the warning with the proper version of the pip
+  command
+
+* Tue Feb 14 2017 Tomas Orsava <torsava@redhat.com> - 9.0.1-6
+- Added patch 1: Emit a warning when running with root privileges
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Mon Jan 02 2017 Tomas Orsava <torsava@redhat.com> - 9.0.1-4
+- Provide symlinks to executables to comply with Fedora guidelines for Python
+Resolves: rhbz#1406922
+
+* Fri Dec 09 2016 Charalampos Stratakis <cstratak@redhat.com> - 9.0.1-3
+- Rebuild for Python 3.6 with wheel
+
+* Fri Dec 09 2016 Charalampos Stratakis <cstratak@redhat.com> - 9.0.1-2
+- Rebuild for Python 3.6 without wheel
+
+* Fri Nov 18 2016 Orion Poplawski <orion@cora.nwra.com> - 9.0.1-1
+- Update to 9.0.1
+
+* Fri Nov 18 2016 Orion Poplawski <orion@cora.nwra.com> - 8.1.2-5
+- Enable EPEL Python 3 builds
+- Use new python macros
+- Cleanup spec
+
+* Fri Aug 05 2016 Tomas Orsava <torsava@redhat.com> - 8.1.2-4
+- Updated the test sources
+
+* Fri Aug 05 2016 Tomas Orsava <torsava@redhat.com> - 8.1.2-3
+- Moved python-pip into the python2-pip subpackage
+- Added the python_provide macro
+
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.1.2-2
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
+
+* Tue May 17 2016 Tomas Orsava <torsava@redhat.com> - 8.1.2-1
+- Update to 8.1.2
+- Moved to a new PyPI URL format
+- Updated the prefix-stripping patch because of upstream changes in pip/wheel.py
+
+* Mon Feb 22 2016 Slavek Kabrda <bkabrda@redhat.com> - 8.0.2-1
+- Update to 8.0.2
+
+* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Oct 14 2015 Robert Kuska <rkuska@redhat.com> - 7.1.0-3
+- Rebuilt for Python3.5 rebuild
+- With wheel set to 1
+
+* Tue Oct 13 2015 Robert Kuska <rkuska@redhat.com> - 7.1.0-2
+- Rebuilt for Python3.5 rebuild
+
+* Wed Jul 01 2015 Slavek Kabrda <bkabrda@redhat.com> - 7.1.0-1
+- Update to 7.1.0
+
+* Tue Jun 30 2015 Ville Skyttä <ville.skytta@iki.fi> - 7.0.3-3
+- Install bash completion
+- Ship LICENSE.txt as %%license where available
+
+* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.0.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Thu Jun 04 2015 Matej Stuchlik <mstuchli@redhat.com> - 7.0.3-1
+- Update to 7.0.3
+
+* Fri Mar 06 2015 Matej Stuchlik <mstuchli@redhat.com> - 6.0.8-1
+- Update to 6.0.8
+
+* Thu Dec 18 2014 Slavek Kabrda <bkabrda@redhat.com> - 1.5.6-5
+- Only enable tests on Fedora.
+
+* Mon Dec 01 2014 Matej Stuchlik <mstuchli@redhat.com> - 1.5.6-4
+- Add tests
+- Add patch skipping tests requiring Internet access
+
+* Tue Nov 18 2014 Matej Stuchlik <mstuchli@redhat.com> - 1.5.6-3
+- Added patch for local dos with predictable temp dictionary names
+  (http://seclists.org/oss-sec/2014/q4/655)
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.6-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Sun May 25 2014 Matej Stuchlik <mstuchli@redhat.com> - 1.5.6-1
+- Update to 1.5.6
+
+* Fri Apr 25 2014 Matej Stuchlik <mstuchli@redhat.com> - 1.5.4-4
+- Rebuild as wheel for Python 3.4
+
+* Thu Apr 24 2014 Matej Stuchlik <mstuchli@redhat.com> - 1.5.4-3
+- Disable build_wheel
+
+* Thu Apr 24 2014 Matej Stuchlik <mstuchli@redhat.com> - 1.5.4-2
+- Rebuild as wheel for Python 3.4
+
+* Mon Apr 07 2014 Matej Stuchlik <mstuchli@redhat.com> - 1.5.4-1
+- Updated to 1.5.4
+
+* Mon Oct 14 2013 Tim Flink <tflink@fedoraproject.org> - 1.4.1-1
+- Removed patch for CVE 2013-2099 as it has been included in the upstream 1.4.1 release
+- Updated version to 1.4.1
+
+* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Tue Jul 16 2013 Toshio Kuratomi <toshio@fedoraproject.org> - 1.3.1-4
+- Fix for CVE 2013-2099
+
+* Thu May 23 2013 Tim Flink <tflink@fedoraproject.org> - 1.3.1-3
+- undo python2 executable rename to python-pip. fixes #958377
+- fix summary to match upstream
+
+* Mon May 06 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> - 1.3.1-2
+- Fix main package Summary, it's for Python 2, not 3 (#877401)
+
+* Fri Apr 26 2013 Jon Ciesla <limburgher@gmail.com> - 1.3.1-1
+- Update to 1.3.1, fix for CVE-2013-1888.
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Tue Oct 09 2012 Tim Flink <tflink@fedoraproject.org> - 1.2.1-2
+- Fixing files for python3-pip
+
+* Thu Oct 04 2012 Tim Flink <tflink@fedoraproject.org> - 1.2.1-1
+- Update to upstream 1.2.1
+- Change binary from pip-python to python-pip (RHBZ#855495)
+- Add alias from python-pip to pip-python, to be removed at a later date
+
+* Tue May 15 2012 Tim Flink <tflink@fedoraproject.org> - 1.1.0-1
+- Update to upstream 1.1.0
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Sat Oct 22 2011 Tim Flink <tflink@fedoraproject.org> - 1.0.2-1
+- update to 1.0.2 and added python3 subpackage
+
+* Wed Jun 22 2011 Tim Flink <tflink@fedoraproject.org> - 0.8.3-1
+- update to 0.8.3 and project home page
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Dec 20 2010 Luke Macken <lmacken@redhat.com> - 0.8.2-1
+- update to 0.8.2 of pip
+* Mon Aug 30 2010 Peter Halliday <phalliday@excelsiorsystems.net> - 0.8-1
+- update to 0.8 of pip
+* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 0.7.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
+* Wed Jul 7 2010 Peter Halliday <phalliday@excelsiorsystems.net> - 0.7.2-1
+- update to 0.7.2 of pip
+* Sun May 23 2010 Peter Halliday <phalliday@excelsiorsystems.net> - 0.7.1-1
+- update to 0.7.1 of pip
+* Fri Jan 1 2010 Peter Halliday <phalliday@excelsiorsystems.net> - 0.6.1.4
+- fix dependency issue
+* Fri Dec 18 2009 Peter Halliday <phalliday@excelsiorsystems.net> - 0.6.1-2
+- fix spec file 
+* Thu Dec 17 2009 Peter Halliday <phalliday@excelsiorsystems.net> - 0.6.1-1
+- upgrade to 0.6.1 of pip
+* Mon Aug 31 2009 Peter Halliday <phalliday@excelsiorsystems.net> - 0.4-1
+- Initial package
+