extpython/README.md

77 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2019-05-31 13:22:21 -07:00
extpython
=========
2019-05-31 07:41:20 -07:00
2021-06-10 19:06:17 -07:00
Isolated python .deb builder
2019-05-31 07:41:20 -07:00
2019-05-31 13:22:21 -07:00
Extpython is a collection of tools for building installable packages containing various versions of Python. The
installations are isolated from the operating system's python such that modules may be added, removed, or upgraded
without risk of breaking. The builds are executed in Docker.
2019-05-31 07:41:20 -07:00
2021-06-10 19:06:17 -07:00
*Example invocation:*
2019-05-31 14:26:56 -07:00
```
2021-06-10 19:06:17 -07:00
./images.sh # pulls / creates base images with dependencies
./build.sh trusty-3.9.5.sh # build using the recipe in the named script file
2019-05-31 14:26:56 -07:00
```
2021-06-10 19:06:17 -07:00
The vars file - `trusty-3.9.5.sh` above - contains information about what python version will be built. See
`src/bionic-3.9.5.sh` for an annotated example.
2019-05-31 14:26:56 -07:00
2021-06-10 19:06:17 -07:00
Version support matrix
----------------------
2019-05-31 15:17:58 -07:00
2023-08-24 15:22:53 -07:00
| | 2.7 | 3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11 |
|--------|--------|------------------|-------|----------------------|--------|---------|--------|
| 14.04 | | 3.6.7<br />3.6.8 | | | 3.9.5* | 3.10.0* | |
| 16.04 | | 3.6.7 | 3.7.3 | | 3.9.5 | 3.10.0* | |
| 18.04 | 2.7.16 | 3.6.7 | 3.7.3 | 3.8.0a4<br />3.8.0b1 | 3.9.5 | 3.10.0 | 3.11.5 |
| 19.04 | | | 3.7.3 | | | | |
| 20.04 | | | | | 3.9.5 | 3.10.0 | 3.11.5 |
2023-08-25 20:12:39 -07:00
| 22.04 | | | | | | | 3.11.5 |
2019-05-31 15:17:58 -07:00
2023-08-20 10:11:42 -07:00
\* with provided extpython-openssl packages - see below
2019-05-31 15:17:58 -07:00
2019-05-31 07:41:20 -07:00
2021-06-10 19:06:17 -07:00
Openssl
-------
2023-08-24 15:22:53 -07:00
Some versions of Python require a version of openssl that is newer than what ships on many of these host OSes. To
satisfy this requirement, extpython also builds an Openssl package that installs in a similar isolated manner.
2021-06-10 19:06:17 -07:00
See `./ssl/` for details.
TODO
----
* Parameter for pre-loaded pip modules
2023-08-20 10:11:42 -07:00
Uploading
---------
`curl -v 'http://artifact.scc.net.davepedu.com/addpkg?provider=tar&reponame=cpython&version=3.10.0' -F 'f=@cpython-3.10.0.tar.gz'`
`rpcli -s http://artifact.scc.net.davepedu.com upload -y apt -f builds/3.10.0/trusty/extpython-python3.10_3.10.0_amd64.deb -r extpython -p extpython-python3.10 -i 3.10.0 -a dist=trusty`
Testing
-------
Install extpython in a temporary container an run it.
`docker run -it --rm ubuntu:bionic bash`
```
sed -i -E 's/(archive|security).ubuntu.com/aptmirror/' /etc/apt/sources.list && \
sed -i -E 's/^deb-src/# deb-src/' /etc/apt/sources.list && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y wget gnupg && \
. /etc/lsb-release && \
wget -q -O- http://artifact.scc.net.davepedu.com/repo/apt/extpython/dists/${DISTRIB_CODENAME}/install | bash -x /dev/stdin && \
apt-get install -y extpython-python3.10
```