1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 11:37:34 +00:00

Ports: Update Python to 3.12.0

Released on 2023-10-02.
https://www.python.org/downloads/release/python-3120/

Note that the top-level setup.py script has disappeared completely,
hence the two dropped patches. AFAICT this doesn't regress building any
of the native modules, presumably because the configure script fully
takes care of this now:

```
The necessary bits to build these optional modules were not found:
_dbm                  _gdbm                 _posixshmem
_tkinter              nis                   ossaudiodev
To find the necessary bits, look in configure.ac and config.log.

Checked 111 modules (31 built-in, 73 shared, 1 n/a on serenityos-x86_64,
0 disabled, 6 missing, 0 failed on import)
```
This commit is contained in:
Linus Groh 2023-10-02 21:04:53 +01:00 committed by Tim Schumacher
parent e7f33cef1e
commit 006bf1905b
9 changed files with 23 additions and 131 deletions

View file

@ -11,16 +11,10 @@ we can enforce UTF-8 as the encoding.
Tweak configure
Merged patches from Linus Groh, Julian Offenhäuser, Oskar Skog:
As usual, make the `configure` script recognize Serenity. Also set
`MACHDEP` (which is used for `sys.platform`) to a version-less
`serenityos`, even when not cross-compiling.
Set name of shared libpython
Compile with CCSHARED=-fPIC
## `0003-Include-sys-uio.h-in-socketmodule.c.patch`
Include `sys/uio.h` in `socketmodule.c`
@ -28,33 +22,7 @@ Include `sys/uio.h` in `socketmodule.c`
This is to ensure that `struct iovec` is defined, which is required by
the `socket` module.
## `0004-Tweak-setup.py.patch`
Tweak `setup.py`
Make some tweaks to Python's `setup.py`:
- Add `/usr/local/lib` and `/usr/local/include` to the system lib and
include dirs respectively, relative to the sysroot when
crosscompiling. These are by default only included when not
crosscompiling for some reason.
- Add `/usr/local/include/ncurses` to the curses include paths so it can
build the `_curses` module. This is by default included for a bunch of
extensions, but not `_curses`.
## `0005-Tweak-setup.py-sysroot-detection.patch`
Tweak `setup.py` sysroot detection
When crosscompiling, the Python installer expects the C compiler to
be invoked with a `--sysroot` command line option, which then is used
to find additional subdirectories containing headers and libraries.
Because there is no such option present, this is a workaround to use
the environment variable `SERENITY_INSTALL_ROOT` as a fake `--sysroot`
in the detection code.
## `0006-Workaround-for-unsupported-socket-option.patch`
## `0004-Workaround-for-unsupported-socket-option.patch`
Workaround for unsupported socket option