Issue 31916: ensurepip not honoring value of $(DESTDIR) - pip not installed (original) (raw)
I am building python from source for installation at /opt/python-3.6.3. The result of the build will be installed in /somewhere/deb-pkg-build-dir. I configure, build, and install, the package as follows:
./configure --prefix=/opt/python-$VER --enable-optimizations --with-ensurepip=install make make install DESTDIR=/somewhere/deb-pkg-build-dir
At the very end of the build log I find:
Requirement already satisfied: setuptools in /opt/python-3.6.3/lib/python3.6/site-packages
As a result PIP is not installed. This is an error. The pip installation process should be looking in $(DESTDIR)/opt/python-3.6.3. Instead it is looking at /opt/python-3.6.3/... which is the python installation on the current build host -- NOT INSTALLED BY THIS BUILD.
In the top-level Makefile.pre I find the following that runs ensurepip to install pip:
install: commoninstall bininstall maninstall
if test "x$(ENSUREPIP)" != "xno" ; then
case $(ENSUREPIP) in
upgrade) ensurepip="--upgrade" ;;
install|*) ensurepip="" ;;
esac;
(RUNSHARED)(RUNSHARED) (RUNSHARED)(PYTHON_FOR_BUILD) -m ensurepip
ensurepip --root=$(DESTDIR)/ ;
fi
As you can see $(DESTDIR) is passed into ensurepip, but it is never used when checking for pip existence.