OILS / deps / source.medo / python3 / WEDGE View on Github | oilshell.org

62 lines, 45 significant
1# Wedge definition for python3
2#
3# Loaded by deps/wedge.sh.
4
5set -o nounset
6set -o pipefail
7set -o errexit
8
9# sourced
10WEDGE_NAME='python3'
11WEDGE_VERSION='3.10.4'
12
13WEDGE_TARBALL_NAME='Python'
14WEDGE_IS_ABSOLUTE=1 # This is probably a requirement, but not sure
15
16wedge-make() {
17 local src_dir=$1
18 local build_dir=$2
19 local install_dir=$3
20
21 pushd $build_dir
22
23 # Note: we need PY3_BUILD_DEPS on the base image to get a working 'pip
24 # install'
25 # And then Dockerfile.* may need the corresponding runtime deps
26
27 # --without-static-python added in 2021. Makes the package smaller.
28 #
29 # https://github.com/python/cpython/commit/801bb0b5035f8eeafe389dc082c02dfafaa07f6a
30 # https://bugs.python.org/issue43103
31
32 time $src_dir/configure --prefix=$install_dir --without-static-libpython
33
34 # Note: not building in parallel, because wedges themselves can be built in
35 # parallel?
36 time make
37
38 popd
39}
40
41wedge-install() {
42 local build_dir=$1
43 local install_dir=$2
44
45 pushd $build_dir
46
47 # It makes a symlink called python3
48 #
49 # NOTE: There's no option to strip the binary?
50 # The whole package is 265 MB, but 200 MB of it is the Python stdlib.
51 # Seemingly lots of __pycache__ dirs
52
53 time make install
54
55 popd
56}
57
58wedge-smoke-test() {
59 local install_dir=$1
60
61 $install_dir/bin/python3 -c 'print("hi from python 3")'
62}