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
|
|
|
|
2022-06-03 13:22:56 -07:00
|
|
|
| Ubuntu | P 2.7 | Python 3.6 | P 3.7 | Python 3.8 | P 3.9 | P 3.10 |
|
|
|
|
|--------|--------|------------------|-------|----------------------|--------|---------|
|
|
|
|
| 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 | |
|
|
|
|
| 18.04 | 2.7.16 | 3.6.7 | 3.7.3 | 3.8.0a4<br />3.8.0b1 | 3.9.5 | |
|
|
|
|
| 19.04 | | | 3.7.3 | | | |
|
|
|
|
| 20.04 | | | | | 3.9.5 | 3.10.0 |
|
2019-05-31 15:17:58 -07:00
|
|
|
|
2021-06-10 19:06:17 -07:00
|
|
|
\* with extra extpython-openssl-1-1 package - 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
|
|
|
|
-------
|
|
|
|
|
|
|
|
Python 3.8 and 3.9 require a version of openssl that is newer than what ships on Ubuntu 14.04. This will likely happen
|
|
|
|
with other os/version combinations in the future, but this is the only known case now.
|
|
|
|
|
|
|
|
To satisfy this requirement for Python 3.9, extpython also builds an Openssl package that installs in a similar
|
|
|
|
isolated manner.
|
|
|
|
|
|
|
|
See `./ssl/` for details.
|
|
|
|
|
|
|
|
|
|
|
|
TODO
|
|
|
|
----
|
|
|
|
|
|
|
|
* Parameter for pre-loaded pip modules
|