fune/taskcluster/scripts/misc/pack-cpython.sh
serge-sans-paille d99a9ba23b Bug 1805664 - Setup python toolchain tasks and add them to the build system r=glandium
This patch introduces:

1. fetch jobs to fetch python source / installer
2. a) build jobs to build python from source on Linux and OSX
   b) build job to manually extract python tree from Windows installer

Some details, per category:

(1) fetches Python 3.8.10 (source) and 3.8.10 (installer).

(2.a) the builds generate optimized version of Python (LTO + PGO)

(2.a) the builds are patched to honor MOZPYTHONHOME instead of
      PYTHONHOME. This is used to make OSX builds relocatable, and not
      needed on Windows.

(2) zstandard and psutil are added to the default build

Differential Revision: https://phabricator.services.mozilla.com/D164663
2023-02-22 06:24:51 +00:00

36 lines
888 B
Bash
Executable file

#!/bin/bash
set -x -e -v
# This script is for extracting python bianry for windows from setup file.
ARTIFACT_NAME=win64-cpython.tar.zst
PYTHON_INSTALLER=`echo $MOZ_FETCHES_DIR/python-3.*-amd64.exe`
WINE=$MOZ_FETCHES_DIR/wine/bin/wine
cabextract $PYTHON_INSTALLER
tardir=python
mkdir $tardir
pushd $tardir
msiextract ../*
rm api-ms-win-*
# bundle pip
$WINE python.exe -m ensurepip
$WINE python.exe -m pip install --upgrade pip==23.0
$WINE python.exe -m pip install --only-binary ':all:' -r ${GECKO_PATH}/build/psutil_requirements.txt -r ${GECKO_PATH}/build/zstandard_requirements.txt
# extra symlinks to have a consistent install with Linux and OSX
ln -s python.exe python3.exe
chmod u+x python3.exe
ln -s ./Scripts/pip3.exe pip3.exe
chmod u+x pip3.exe
popd
tar caf `basename ${TOOLCHAIN_ARTIFACT}` ${tardir}
mkdir -p $UPLOAD_DIR
mv `basename ${TOOLCHAIN_ARTIFACT}` $UPLOAD_DIR