You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.6 KiB
39 lines
1.6 KiB
#!/bin/bash |
|
# This script installs our pure python dependencies into the 'packages' folder. |
|
|
|
set -e |
|
|
|
CONTRIB="$(dirname "$(readlink -e "$0")")" |
|
PROJECT_ROOT="$CONTRIB"/.. |
|
PACKAGES="$PROJECT_ROOT"/packages/ |
|
|
|
test -n "$CONTRIB" -a -d "$CONTRIB" || exit |
|
|
|
if [ -d "$PACKAGES" ]; then |
|
rm -r "$PACKAGES" |
|
fi |
|
|
|
# opt out of compiling C extensions |
|
# FIXME aiohttp opt-out is not released yet: https://github.com/aio-libs/aiohttp/pull/3828 |
|
export AIOHTTP_NO_EXTENSIONS=1 |
|
export YARL_NO_EXTENSIONS=1 |
|
export MULTIDICT_NO_EXTENSIONS=1 |
|
|
|
# if we end up having to compile something, at least give reproducibility a fighting chance |
|
export LC_ALL=C |
|
export TZ=UTC |
|
export SOURCE_DATE_EPOCH="$(git log -1 --pretty=%ct)" |
|
export PYTHONHASHSEED="$SOURCE_DATE_EPOCH" |
|
export BUILD_DATE="$(LC_ALL=C TZ=UTC date +'%b %e %Y' -d @$SOURCE_DATE_EPOCH)" |
|
export BUILD_TIME="$(LC_ALL=C TZ=UTC date +'%H:%M:%S' -d @$SOURCE_DATE_EPOCH)" |
|
|
|
# FIXME aiohttp will compile some .so files using distutils |
|
# (until https://github.com/aio-libs/aiohttp/pull/4079 gets released), |
|
# which are not reproducible unless using at least python 3.9 |
|
# (as it needs https://github.com/python/cpython/commit/0d30ae1a03102de07758650af9243fd31211325a). |
|
# Hence "aiohttp-*.dist-info/" is not reproducible either. |
|
# All this means that downstream users of this script, such as the sdist build |
|
# and the android apk build need to make sure these files get excluded. |
|
python3 -m pip install --no-compile --no-dependencies --no-binary :all: \ |
|
-r "$CONTRIB"/deterministic-build/requirements.txt -t "$CONTRIB"/../packages |
|
|
|
|