1 | # Wedge definition for python3
|
2 | #
|
3 | # Loaded by deps/wedge.sh.
|
4 |
|
5 | set -o nounset
|
6 | set -o pipefail
|
7 | set -o errexit
|
8 |
|
9 | # sourced
|
10 | WEDGE_NAME='python3'
|
11 | WEDGE_VERSION='3.10.4'
|
12 |
|
13 | WEDGE_TARBALL_NAME='Python'
|
14 | WEDGE_IS_ABSOLUTE=1 # This is probably a requirement, but not sure
|
15 |
|
16 | wedge-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 |
|
41 | wedge-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 |
|
58 | wedge-smoke-test() {
|
59 | local install_dir=$1
|
60 |
|
61 | $install_dir/bin/python3 -c 'print("hi from python 3")'
|
62 | }
|