contrib/freeze_packages: should not use too new python interpreter

Certain dependencies are only needed on old python versions,
e.g. backports of stdlib functionality.
We should definitely not use newer python when running freeze_packages.sh
than what we bundle in the binaries. Perhaps it is prudent to use the
min python version that we support (which is atm older than what we bundle).
This commit is contained in:
SomberNight 2020-06-03 17:45:44 +02:00
parent cfdfbd2bfe
commit 5ec0747eff
No known key found for this signature in database
GPG key ID: B33B5F232C6271E9

View file

@ -6,13 +6,23 @@ set -e
venv_dir=~/.electrum-venv
contrib=$(dirname "$0")
# note: we should not use a higher version of python than what the binaries bundle
if [[ ! "$SYSTEM_PYTHON" ]] ; then
SYSTEM_PYTHON=$(which python3.6) || printf ""
else
SYSTEM_PYTHON=$(which $SYSTEM_PYTHON) || printf ""
fi
if [[ ! "$SYSTEM_PYTHON" ]] ; then
echo "Please specify which python to use in \$SYSTEM_PYTHON" && exit 1;
fi
which virtualenv > /dev/null 2>&1 || { echo "Please install virtualenv" && exit 1; }
python3 -m hashin -h > /dev/null 2>&1 || { python3 -m pip install hashin; }
other_python=$(which python3)
${SYSTEM_PYTHON} -m hashin -h > /dev/null 2>&1 || { ${SYSTEM_PYTHON} -m pip install hashin; }
for i in '' '-hw' '-binaries' '-wine-build' '-mac-build'; do
rm -rf "$venv_dir"
virtualenv -p $(which python3) $venv_dir
virtualenv -p ${SYSTEM_PYTHON} $venv_dir
source $venv_dir/bin/activate
@ -23,7 +33,7 @@ for i in '' '-hw' '-binaries' '-wine-build' '-mac-build'; do
echo "OK."
requirements=$(pip freeze --all)
restricted=$(echo $requirements | $other_python $contrib/deterministic-build/find_restricted_dependencies.py)
restricted=$(echo $requirements | ${SYSTEM_PYTHON} $contrib/deterministic-build/find_restricted_dependencies.py)
requirements="$requirements $restricted"
echo "Generating package hashes..."
@ -32,7 +42,7 @@ for i in '' '-hw' '-binaries' '-wine-build' '-mac-build'; do
for requirement in $requirements; do
echo -e "\r Hashing $requirement..."
$other_python -m hashin -r $contrib/deterministic-build/requirements${i}.txt ${requirement}
${SYSTEM_PYTHON} -m hashin -r $contrib/deterministic-build/requirements${i}.txt ${requirement}
done
echo "OK."