Skip to content

Commit 099bd13

Browse files
Merge pull request #9346 from awallace-cray/work-1.17.1
Replace usage of easy_install with pip (cp PRs #9102, #9293, #9330) [release 1.17.1]
2 parents 3d125c9 + 4151149 commit 099bd13

File tree

3 files changed

+51
-27
lines changed

3 files changed

+51
-27
lines changed

third-party/chpl-venv/Makefile

+27-25
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,6 @@ CHPL_MAKE_HOST_TARGET = --host
66
include $(CHPL_MAKE_HOME)/make/Makefile.base
77
include $(THIRD_PARTY_DIR)/chpl-venv/Makefile.include
88

9-
ifneq (,$(findstring cygwin, $(CHPL_MAKE_TARGET_PLATFORM)))
10-
# easy_install from cygwin's setuptools is `easy_install-<MAJOR>.<MINOR>`
11-
# instead of `easy_install`. If we can't find easy_install, look for the
12-
# versioned one.
13-
EASY_INSTALL = $(shell which easy_install 2>/dev/null || which easy_install-$(PYTHON_VERSION))
14-
else
15-
EASY_INSTALL = $(shell which easy_install)
16-
endif
17-
189
default: all
1910

2011
all: test-venv chpldoc-venv
@@ -28,32 +19,40 @@ clobber: FORCE
2819

2920
check-python:
3021
ifeq ($(wildcard $(PYTHON)),)
31-
$(error python and easy_install are required to install chpldoc \
32-
and start_test dependencies. See https://www.python.org/)
33-
endif
34-
35-
check-easy-install:
36-
ifeq ($(wildcard $(EASY_INSTALL)),)
37-
$(error python and easy_install are required to install chpldoc \
22+
$(error python and pip are required to install chpldoc \
3823
and start_test dependencies. See https://www.python.org/)
3924
endif
4025

41-
check-exes: check-python check-easy-install
26+
check-exes: check-python
4227

4328
$(CHPL_VENV_INSTALL_DIR):
4429
mkdir -p $@
4530

31+
# Install pip via get-pip.py to ensure we have an updated version
32+
$(PIP): $(CHPL_VENV_INSTALL_DIR)
33+
@echo "Installing local copy of pip with get-pip.py from $(GETPIP)"
34+
@if [ -z "$$CHPL_PIP" ]; then \
35+
(cd install && curl -O $(GETPIP) || \
36+
{ echo "Failed on command: curl -O $(GETPIP)."; \
37+
echo "Try setting CHPL_PIP to $$(which pip) and trying again"; \
38+
exit 1; } && \
39+
export PYTHONUSERBASE=$(CHPL_VENV_INSTALL_DIR) && \
40+
python get-pip.py --user) \
41+
fi
42+
4643
# Install virtualenv program.
47-
$(CHPL_VENV_VIRTUALENV): $(CHPL_VENV_INSTALL_DIR) check-exes
48-
export PYTHONPATH=$(CHPL_VENV_INSTALL_DIR):$$PYTHONPATH && \
49-
$(EASY_INSTALL) --install-dir=$(CHPL_VENV_INSTALL_DIR) $(CHPL_EASY_INSTALL_PARAMS) $(shell cat virtualenv.txt)
44+
$(CHPL_VENV_VIRTUALENV): check-exes $(PIP)
45+
export PYTHONPATH="$$CHPL_PYTHONPATH:$(PIPLIBS):$$PYTHONPATH" && \
46+
python -S $(PIP) install -U --force-reinstall --ignore-installed \
47+
--prefix=$(CHPL_VENV_INSTALL_DIR) $(CHPL_PIP_INSTALL_PARAMS) $(shell cat virtualenv.txt)
5048

5149
# Phony convenience target for installing virtualenv.
5250
virtualenv: $(CHPL_VENV_VIRTUALENV)
5351

5452
# Create the virtualenv.
5553
$(CHPL_VENV_VIRTUALENV_DIR): $(CHPL_VENV_VIRTUALENV)
56-
$(CHPL_VENV_VIRTUALENV) --python=$(PYTHON) $@
54+
export PYTHONPATH="$(PIPLIBS):$$PYTHONPATH" && \
55+
python $(CHPL_VENV_VIRTUALENV) --python=$(PYTHON) $@
5756

5857
# Phony convenience target for creating virtualenv.
5958
create-virtualenv: $(CHPL_VENV_VIRTUALENV_DIR)
@@ -71,26 +70,29 @@ create-virtualenv: $(CHPL_VENV_VIRTUALENV_DIR)
7170
#
7271
# By calling `python .../path/to/pip ...`, this issue is circumvented.
7372
$(CHPL_VENV_TEST_REQS): $(CHPL_VENV_VIRTUALENV_DIR)
73+
export PYTHONPATH="$(PIPLIBS):$$PYTHONPATH" && \
7474
export PATH=$(CHPL_VENV_VIRTUALENV_BIN):$$PATH && \
7575
export VIRTUAL_ENV=$(CHPL_VENV_VIRTUALENV_DIR) && \
7676
python $(CHPL_VENV_VIRTUALENV_BIN)/pip install \
7777
-U --force-reinstall $(CHPL_PIP_INSTALL_PARAMS) -r test-requirements.txt && \
78-
$(CHPL_VENV_VIRTUALENV) --relocatable $(CHPL_VENV_VIRTUALENV_DIR) && \
78+
python $(CHPL_VENV_VIRTUALENV) --relocatable $(CHPL_VENV_VIRTUALENV_DIR) && \
7979
touch $(CHPL_VENV_TEST_REQS)
8080

8181
$(CHPL_VENV_SPHINX_BUILD): $(CHPL_VENV_VIRTUALENV_DIR)
82+
export PYTHONPATH="$(PIPLIBS):$$PYTHONPATH" && \
8283
export PATH=$(CHPL_VENV_VIRTUALENV_BIN):$$PATH && \
8384
export VIRTUAL_ENV=$(CHPL_VENV_VIRTUALENV_DIR) && \
8485
python $(CHPL_VENV_VIRTUALENV_BIN)/pip install \
8586
-U --force-reinstall $(CHPL_PIP_INSTALL_PARAMS) -r chpldoc-requirements.txt && \
86-
$(CHPL_VENV_VIRTUALENV) --relocatable $(CHPL_VENV_VIRTUALENV_DIR)
87+
python $(CHPL_VENV_VIRTUALENV) --relocatable $(CHPL_VENV_VIRTUALENV_DIR)
8788

8889
$(CHPL_VENV_CHPLSPELL_REQS): $(CHPL_VENV_VIRTUALENV_DIR)
90+
export PYTHONPATH="$(PIPLIBS):$$PYTHONPATH" && \
8991
export PATH=$(CHPL_VENV_VIRTUALENV_BIN):$$PATH && \
9092
export VIRTUAL_ENV=$(CHPL_VENV_VIRTUALENV_DIR) && \
9193
python $(CHPL_VENV_VIRTUALENV_BIN)/pip install \
9294
-U --force-reinstall $(CHPL_PIP_INSTALL_PARAMS) -r chplspell-requirements.txt && \
93-
$(CHPL_VENV_VIRTUALENV) --relocatable $(CHPL_VENV_VIRTUALENV_DIR) && \
95+
python $(CHPL_VENV_VIRTUALENV) --relocatable $(CHPL_VENV_VIRTUALENV_DIR) && \
9496
touch $(CHPL_VENV_CHPLSPELL_REQS)
9597

9698
test-venv: $(CHPL_VENV_TEST_REQS)
@@ -122,6 +124,6 @@ use-system-python: FORCE
122124

123125
FORCE:
124126

125-
.PHONY: install-requirements create-virtualenv virtualenv check-exes rm-sphinx-build check-easy-install check-python
127+
.PHONY: install-requirements create-virtualenv virtualenv check-exes rm-sphinx-build check-pip check-python
126128

127129
.NOTPARALLEL:

third-party/chpl-venv/Makefile.include

+23-1
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,33 @@ endif
2727
CHPL_VENV_UNIQUE_SUBDIR=$(CHPL_MAKE_HOST_PLATFORM)/py$(PYTHON_VERSION)
2828
CHPL_VENV_INSTALL_SUBDIR=install/$(CHPL_VENV_UNIQUE_SUBDIR)
2929
CHPL_VENV_INSTALL_DIR=$(CHPL_VENV_DIR)/$(CHPL_VENV_INSTALL_SUBDIR)
30-
CHPL_VENV_VIRTUALENV=$(CHPL_VENV_INSTALL_SUBDIR)/virtualenv
30+
CHPL_VENV_VIRTUALENV=$(CHPL_VENV_INSTALL_SUBDIR)/bin/virtualenv
3131
CHPL_VENV_VIRTUALENV_NAME=chpl-virtualenv
3232
CHPL_VENV_VIRTUALENV_SUBDIR=$(CHPL_VENV_INSTALL_SUBDIR)/$(CHPL_VENV_VIRTUALENV_NAME)
3333
CHPL_VENV_VIRTUALENV_DIR=$(CHPL_VENV_DIR)/$(CHPL_VENV_VIRTUALENV_SUBDIR)
3434
CHPL_VENV_VIRTUALENV_BIN=$(CHPL_VENV_VIRTUALENV_DIR)/bin
3535
CHPL_VENV_SPHINX_BUILD=$(CHPL_VENV_VIRTUALENV_BIN)/sphinx-build
3636
CHPL_VENV_TEST_REQS=$(CHPL_VENV_VIRTUALENV_DIR)/chpl-test-reqs
3737
CHPL_VENV_CHPLSPELL_REQS=$(CHPL_VENV_VIRTUALENV_DIR)/chpl-chplspell-reqs
38+
39+
# pip installation path variants
40+
PIPLIB_VER=$(CHPL_VENV_INSTALL_DIR)/lib/python$(PYTHON_VERSION)/site-packages
41+
PIPLIB=$(CHPL_VENV_INSTALL_DIR)/lib/python/site-packages
42+
PIPLIB64_VER=$(CHPL_VENV_INSTALL_DIR)/lib64/python$(PYTHON_VERSION)/site-packages
43+
PIPLIB64=$(CHPL_VENV_INSTALL_DIR)/lib64/python/site-packages
44+
45+
PIPLIBS=$(PIPLIB_VER):$(PIPLIB):$(PIPLIB64_VER):$(PIPLIB64)
46+
47+
# If CHPL_PIP env var is set, then don't install custom pip
48+
ifdef CHPL_PIP
49+
PIP = $(CHPL_PIP)
50+
else
51+
PIP=$(CHPL_VENV_INSTALL_DIR)/bin/pip
52+
endif
53+
54+
# If using python 2.6, get an older version of pip
55+
ifeq ($(PYTHON_VERSION), 2.6)
56+
GETPIP=https://bootstrap.pypa.io/2.6/get-pip.py
57+
else
58+
GETPIP=https://bootstrap.pypa.io/get-pip.py
59+
endif

third-party/chpl-venv/virtualenv.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
virtualenv==12.0.5
1+
virtualenv==15.2.0

0 commit comments

Comments
 (0)