From 417ce7ffc1bbb9da15e82b6b81537bc86831f21c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 21 Oct 2021 13:41:59 +0200 Subject: Deps: Python, bump bundled packages to their latest versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit certifi : 2020.12.5 → 2021.10.8 chardet : 4.0.0 → charset-normalizer 2.0.6 cython : 0.29.21 → 0.29.24 idna : 2.10 → 3.2 numpy : 1.19.5 → 1.21.2 (which makes it possible to remove our patch) requests: 2.25.1 → 2.26.0 urllib3 : 1.26.3 → 1.26.7 Nowadays `requests` no longer depends on `chardet` but on `charset-normalizer`. That project describes itself as: > A library that helps you read text from an unknown charset encoding. > Motivated by chardet, I'm trying to resolve the issue by taking a new > approach. All IANA character set names for which the Python core library > provides codecs are supported. Reviewed By: LazyDodo, mont29, brecht Differential Revision: https://developer.blender.org/D12777 --- build_files/build_environment/cmake/numpy.cmake | 1 - .../cmake/python_site_packages.cmake | 2 +- build_files/build_environment/cmake/versions.cmake | 20 +++++++-------- build_files/build_environment/install_deps.sh | 30 ++++++++++++---------- build_files/build_environment/patches/numpy.diff | 27 ------------------- .../build_environment/windows/build_deps.cmd | 3 +++ 6 files changed, 30 insertions(+), 53 deletions(-) delete mode 100644 build_files/build_environment/patches/numpy.diff (limited to 'build_files') diff --git a/build_files/build_environment/cmake/numpy.cmake b/build_files/build_environment/cmake/numpy.cmake index 73fa6e75556..1b58fd6aee9 100644 --- a/build_files/build_environment/cmake/numpy.cmake +++ b/build_files/build_environment/cmake/numpy.cmake @@ -38,7 +38,6 @@ ExternalProject_Add(external_numpy PREFIX ${BUILD_DIR}/numpy PATCH_COMMAND ${NUMPY_PATCH} CONFIGURE_COMMAND "" - PATCH_COMMAND COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/numpy/src/external_numpy < ${PATCH_DIR}/numpy.diff LOG_BUILD 1 BUILD_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/numpy/src/external_numpy/setup.py build ${NUMPY_BUILD_OPTION} install --old-and-unmanageable INSTALL_COMMAND "" diff --git a/build_files/build_environment/cmake/python_site_packages.cmake b/build_files/build_environment/cmake/python_site_packages.cmake index 2b75a6a244f..6bc47fa5c45 100644 --- a/build_files/build_environment/cmake/python_site_packages.cmake +++ b/build_files/build_environment/cmake/python_site_packages.cmake @@ -25,7 +25,7 @@ ExternalProject_Add(external_python_site_packages CONFIGURE_COMMAND "" BUILD_COMMAND "" PREFIX ${BUILD_DIR}/site_packages - INSTALL_COMMAND ${PYTHON_BINARY} -m pip install ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} chardet==${CHARDET_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} --no-binary :all: + INSTALL_COMMAND ${PYTHON_BINARY} -m pip install ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} charset-normalizer==${CHARSET_NORMALIZER_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} --no-binary :all: ) if(USE_PIP_NUMPY) diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index d8faaf3c6f6..ec83de4866f 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -215,17 +215,17 @@ set(NANOVDB_HASH e7b9e863ec2f3b04ead171dec2322807) set(NANOVDB_HASH_TYPE MD5) set(NANOVDB_FILE nano-vdb-${NANOVDB_GIT_UID}.tar.gz) -set(IDNA_VERSION 2.10) -set(CHARDET_VERSION 4.0.0) -set(URLLIB3_VERSION 1.26.3) -set(CERTIFI_VERSION 2020.12.5) -set(REQUESTS_VERSION 2.25.1) -set(CYTHON_VERSION 0.29.21) - -set(NUMPY_VERSION 1.19.5) -set(NUMPY_SHORT_VERSION 1.19) +set(IDNA_VERSION 3.2) +set(CHARSET_NORMALIZER_VERSION 2.0.6) +set(URLLIB3_VERSION 1.26.7) +set(CERTIFI_VERSION 2021.10.8) +set(REQUESTS_VERSION 2.26.0) +set(CYTHON_VERSION 0.29.24) + +set(NUMPY_VERSION 1.21.2) +set(NUMPY_SHORT_VERSION 1.21) set(NUMPY_URI https://github.com/numpy/numpy/releases/download/v${NUMPY_VERSION}/numpy-${NUMPY_VERSION}.zip) -set(NUMPY_HASH f6a1b48717c552bbc18f1adc3cc1fe0e) +set(NUMPY_HASH 5638d5dae3ca387be562912312db842e) set(NUMPY_HASH_TYPE MD5) set(NUMPY_FILE numpy-${NUMPY_VERSION}.zip) diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index e46e6d90c33..a278fabb6b8 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -389,24 +389,24 @@ PYTHON_FORCE_REBUILD=false PYTHON_SKIP=false # Additional Python modules. -PYTHON_IDNA_VERSION="2.9" +PYTHON_IDNA_VERSION="3.2" PYTHON_IDNA_VERSION_MIN="2.0" -PYTHON_IDNA_VERSION_MEX="3.0" +PYTHON_IDNA_VERSION_MEX="4.0" PYTHON_IDNA_NAME="idna" -PYTHON_CHARDET_VERSION="3.0.4" -PYTHON_CHARDET_VERSION_MIN="3.0" -PYTHON_CHARDET_VERSION_MEX="5.0" -PYTHON_CHARDET_NAME="chardet" +PYTHON_CHARSET_NORMALIZER_VERSION="2.0.6" +PYTHON_CHARSET_NORMALIZER_VERSION_MIN="2.0.6" +PYTHON_CHARSET_NORMALIZER_VERSION_MEX="2.1.0" # requests uses `charset_normalizer~=2.0.0` +PYTHON_CHARSET_NORMALIZER_NAME="charset-normalizer" -PYTHON_URLLIB3_VERSION="1.25.9" +PYTHON_URLLIB3_VERSION="1.26.7" PYTHON_URLLIB3_VERSION_MIN="1.0" PYTHON_URLLIB3_VERSION_MEX="2.0" PYTHON_URLLIB3_NAME="urllib3" -PYTHON_CERTIFI_VERSION="2020.4.5.2" -PYTHON_CERTIFI_VERSION_MIN="2020.0" -PYTHON_CERTIFI_VERSION_MEX="2021.0" +PYTHON_CERTIFI_VERSION="2021.10.8" +PYTHON_CERTIFI_VERSION_MIN="2021.0" +PYTHON_CERTIFI_VERSION_MEX="2023.0" PYTHON_CERTIFI_NAME="certifi" PYTHON_REQUESTS_VERSION="2.23.0" @@ -414,7 +414,7 @@ PYTHON_REQUESTS_VERSION_MIN="2.0" PYTHON_REQUESTS_VERSION_MEX="3.0" PYTHON_REQUESTS_NAME="requests" -PYTHON_NUMPY_VERSION="1.19.5" +PYTHON_NUMPY_VERSION="1.21.2" PYTHON_NUMPY_VERSION_MIN="1.14" PYTHON_NUMPY_VERSION_MEX="2.0" PYTHON_NUMPY_NAME="numpy" @@ -422,7 +422,7 @@ PYTHON_NUMPY_NAME="numpy" # As package-ready parameters (only used with distro packages). PYTHON_MODULES_PACKAGES=( "$PYTHON_IDNA_NAME $PYTHON_IDNA_VERSION_MIN $PYTHON_IDNA_VERSION_MEX" - "$PYTHON_CHARDET_NAME $PYTHON_CHARDET_VERSION_MIN $PYTHON_CHARDET_VERSION_MEX" + "$PYTHON_CHARSET_NORMALIZER_NAME $PYTHON_CHARSET_NORMALIZER_VERSION_MIN $PYTHON_CHARSET_NORMALIZER_VERSION_MEX" "$PYTHON_URLLIB3_NAME $PYTHON_URLLIB3_VERSION_MIN $PYTHON_URLLIB3_VERSION_MEX" "$PYTHON_CERTIFI_NAME $PYTHON_CERTIFI_VERSION_MIN $PYTHON_CERTIFI_VERSION_MEX" "$PYTHON_REQUESTS_NAME $PYTHON_REQUESTS_VERSION_MIN $PYTHON_REQUESTS_VERSION_MEX" @@ -432,10 +432,11 @@ PYTHON_MODULES_PACKAGES=( # As pip-ready parameters (only used when building python). PYTHON_MODULES_PIP=( "$PYTHON_IDNA_NAME==$PYTHON_IDNA_VERSION" - "$PYTHON_CHARDET_NAME==$PYTHON_CHARDET_VERSION" + "$PYTHON_CHARSET_NORMALIZER_NAME==$PYTHON_CHARSET_NORMALIZER_VERSION" "$PYTHON_URLLIB3_NAME==$PYTHON_URLLIB3_VERSION" "$PYTHON_CERTIFI_NAME==$PYTHON_CERTIFI_VERSION" "$PYTHON_REQUESTS_NAME==$PYTHON_REQUESTS_VERSION" + "$PYTHON_ZSTANDARD_NAME==$PYTHON_ZSTANDARD_VERSION" "$PYTHON_NUMPY_NAME==$PYTHON_NUMPY_VERSION" ) @@ -1141,10 +1142,11 @@ You may also want to build them yourself (optional ones are [between brackets]): * Python $PYTHON_VERSION (from $PYTHON_SOURCE). ** [IDNA $PYTHON_IDNA_VERSION] (use pip). - ** [Chardet $PYTHON_CHARDET_VERSION] (use pip). + ** [Charset Normalizer $PYTHON_CHARSET_NORMALIZER_VERSION] (use pip). ** [Urllib3 $PYTHON_URLLIB3_VERSION] (use pip). ** [Certifi $PYTHON_CERTIFI_VERSION] (use pip). ** [Requests $PYTHON_REQUESTS_VERSION] (use pip). + ** [ZStandard $PYTHON_ZSTANDARD_VERSION] (use pip). ** [NumPy $PYTHON_NUMPY_VERSION] (use pip). * Boost $BOOST_VERSION (from $BOOST_SOURCE, modules: $BOOST_BUILD_MODULES). * TBB $TBB_VERSION (from $TBB_SOURCE). diff --git a/build_files/build_environment/patches/numpy.diff b/build_files/build_environment/patches/numpy.diff deleted file mode 100644 index a9b783dd856..00000000000 --- a/build_files/build_environment/patches/numpy.diff +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py -index ba2b1f4..b10f7df 100644 ---- a/numpy/distutils/system_info.py -+++ b/numpy/distutils/system_info.py -@@ -2164,8 +2164,8 @@ class accelerate_info(system_info): - 'accelerate' in libraries): - if intel: - args.extend(['-msse3']) -- else: -- args.extend(['-faltivec']) -+# else: -+# args.extend(['-faltivec']) - args.extend([ - '-I/System/Library/Frameworks/vecLib.framework/Headers']) - link_args.extend(['-Wl,-framework', '-Wl,Accelerate']) -@@ -2174,8 +2174,8 @@ class accelerate_info(system_info): - 'veclib' in libraries): - if intel: - args.extend(['-msse3']) -- else: -- args.extend(['-faltivec']) -+# else: -+# args.extend(['-faltivec']) - args.extend([ - '-I/System/Library/Frameworks/vecLib.framework/Headers']) - link_args.extend(['-Wl,-framework', '-Wl,vecLib']) - diff --git a/build_files/build_environment/windows/build_deps.cmd b/build_files/build_environment/windows/build_deps.cmd index 2159055f3bd..5174af8e20d 100644 --- a/build_files/build_environment/windows/build_deps.cmd +++ b/build_files/build_environment/windows/build_deps.cmd @@ -79,6 +79,9 @@ set STAGING=%BUILD_DIR%\S rem for python module build set MSSdk=1 set DISTUTILS_USE_SDK=1 +rem if you let pip pick its own build dirs, it'll stick it somewhere deep inside the user profile +rem and cython will refuse to link due to a path that gets too long. +set TMPDIR=c:\t\ rem for python externals source to be shared between the various archs and compilers mkdir %BUILD_DIR%\downloads\externals -- cgit v1.2.3