Skip to content

tiran/cpython_builddep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPython build dependencies

Install CPython build and development dependencies on various distributions.

Usage

$ ./builddep.sh --help
builddeps.sh - Install CPython build dependencies

    -h --help     display this help and exit
    --extras      install extra development packages (gdb, ccache...)
    --update      update all packages
    --cleanup     cleanup package cache

Install build dependencies:

sudo ./builddep.sh

Also install extra dependencies and purge the package cache afterwards

sudo ./builddep.sh --extras --cleanup

Supported distros

  • Alpine
  • ArchLinux
  • CentOS
  • Debian
  • Fedora
  • RHEL
  • Ubuntu

Note

CentOS 7 and RHEL 7 ship an unsupported OpenSSL version. CentOS 7's EPEL repository comes with openssl11 package. The package install files in non-standard locations and uses a custom pkgconf module name openssl11. You can patch Python's configure script to use the custom build:

sudo yum install -y epel
sudo yum install -y openssl11-devel
cd /path/to/cpython-sources
sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure

Unsupported or untested distributions

  • FreeBSD
  • Gentoo
  • macOS brew
  • SUSE

Build containers

Containers are hosted at https://quay.io/repository/tiran/cpythonbuild

  • quay.io/tiran/cpythonbuild:alpine-3.13 (linux/amd64, linux/arm64, linux/s390x)
  • quay.io/tiran/cpythonbuild:alpine-3.16 (linux/amd64, linux/arm/v7, linux/arm64/v8, linux/s390x, linux/ppc64le)
  • quay.io/tiran/cpythonbuild:archlinux (linux/amd64)
  • quay.io/tiran/cpythonbuild:centos-7 (linux/amd64, linux/arm64)
  • quay.io/tiran/cpythonbuild:centos-stream8 (linux/amd64, linux/arm64, linux/ppc64le)
  • quay.io/tiran/cpythonbuild:centos-stream9 (linux/amd64)
  • quay.io/tiran/cpythonbuild:debian-bullseye (linux/amd64, linux/arm/v7, linux/arm64/v8, linux/s390x, linux/ppc64le, linux/mips64le)
  • quay.io/tiran/cpythonbuild:debian-testing (linux/amd64, linux/arm64, linux/s390x)
  • quay.io/tiran/cpythonbuild:fedora-35 (linux/amd64, linux/s390x)
  • quay.io/tiran/cpythonbuild:fedora-36 (linux/amd64, linux/ppc64le, linux/arm64)
  • quay.io/tiran/cpythonbuild:ubuntu-focal (linux/amd64, linux/arm64, linux/s390x)
  • quay.io/tiran/cpythonbuild:ubuntu-jammy (linux/amd64, linux/arm64, linux/s390x)
  • quay.io/tiran/cpythonbuild:emsdk3 (linux/amd64)

Usage

The default entry point of a build container runs configure -C, make clean, and parallel out-of-tree make in builddep/$tag. The default entry script also sets up CCACHE_DIR=/cpython/builddir/.ccache.

cd cpython
podman run -ti --rm -v $(pwd):/cpython:Z quay.io/tiran/cpythonbuild:fedora-35
docker run -ti --rm -v $(pwd):/cpython quay.io/tiran/cpythonbuild:fedora-35

Emulated archs

Needs qemu-user-static package and binfmt support. Emulation is rather slow.

podman run --platform linux/s390x -ti --rm -v .:/cpython:Z quay.io/tiran/cpythonbuild:fedora-35

WebAssembly build

The WebAssembly container image is based on latest Emscripten SDK 3 (emsdk), which is based on Ubuntu 20.04 LTS. It comes with all CPython build dependencies, Emscripten SDK, WASI SDK, wasmtime runtime, and python-wasm build scripts. zlib and bzip2 emports are pre-built.

podman run -ti --rm -v $(pwd):/python-wasm/cpython:Z quay.io/tiran/cpythonbuild:emsdk3

The emsdk3-mini is smaller and comes without WASI and additional build dependencies.

./build-python-build.sh
./build-python-emscripten-node.sh
./build-python-emscripten-browser.sh
./build-python-wasi.sh

About

Install CPython build and development dependencies

Resources

License

Stars

Watchers

Forks

Packages

No packages published