Commit Graph

63 Commits

Author SHA1 Message Date
Fabian Dellwing
16ef5e2631 Ports: Prefer host python3.xx over python3
Previously we relied on the presence of a `python3` binary in the
PATH that has the correct minor version to build the port.

We now first check for the presence of a `python3.minor` binary
in the PATH and use that if found.

This allows users that have multiple Python versions installed
simultaneously (like from a PPA) to build the port without having
to change their main version.
2023-04-22 12:56:36 +01:00
Linus Groh
cb79c6bc2f Ports: Add xz to Python dependencies
This makes it build the `_lzma` module, and thus makes `lzma` work.

Thanks to hjalves for the suggestion!
2023-04-15 18:30:24 +02:00
Linus Groh
960b55dd7d Ports: Update Python to 3.11.3
Released on 2023-04-05.
https://www.python.org/downloads/release/python-3113/
2023-04-15 18:10:49 +02:00
Julian Offenhäuser
b789debe07 Ports: Build python3 port with shared libraries 2023-02-11 10:41:59 +01:00
Linus Groh
edf3aee4df Ports/python3: Update Python to 3.11.0
This now requires `--host` and `--with-build-python` to be passed to the
configure script when cross compiling; the former we simply do like in
many other package.sh scripts as well, the latter we point to `python3`,
which is expected to match the port's version anyway.
2022-10-25 13:11:42 +01:00
Linus Groh
35ec636b5d Ports/python3: Reformat package.sh according to our current guidelines 2022-10-25 13:11:42 +01:00
Humberto Alves
fb5a39498a Ports/python3: Make pip work
Add two patches to allow Python's package manager to work on Serenity:

- The first one enables zlib module, which is needed for `ensurepip`
  command;
- The second patch fixes pip downloads, so it's possible to install
  packages from the PyPI repository.
2022-09-02 14:03:24 +01:00
Andrew Kaster
dcc0f299be Toolchain+Ports: Install host python into Local/python, not Local/$ARCH
Following the pattern for qemu, mold, and clang, we should install the
host python required to build the python port into its own install tree
rather than forcing it into the GNU compiler's bindir.
2022-06-30 12:29:18 +01:00
Tim Schumacher
d426c5a4b2 Ports: Format patches without numbering, commit hash or version number 2022-06-08 17:58:36 +01:00
EWouters
218ade0b8b Ports/python3: Update python3 to version 3.10.4 2022-04-11 19:43:56 -07:00
Linus Groh
6b8358b1f1 Ports: Update Python to 3.10.3
Released on 2022-03-16.
https://www.python.org/downloads/release/python-3103/
2022-03-25 22:27:14 +00:00
Linus Groh
ab976667c4 Ports: Update Python to 3.10.2
Released on 2022-01-14.
https://www.python.org/downloads/release/python-3102/
2022-01-30 17:40:39 +00:00
Linus Groh
fc02370dc7 Ports: Regenerate patches for python3 2022-01-16 10:32:50 +03:30
Ali Mohammad Pur
cdd6d68b2a Ports: Remove some config.sub patches and download a fresh one if needed
All of these patches did the same thing, which is already in upstream
config.sub.
With this change, we need only add `use_fresh_config_sub=true` to
the package.sh file.
Note that this is not done automatically in case the port has a modified
config.sub file.
2022-01-16 10:32:50 +03:30
Andrew Kaster
3ff7b76502 Ports: Don't try to enable PGO for python3 when cross-compiling
The --enable-optimizations flag attempts to enable PGO. Profile-guided
optimization is great in general, but will not work at all when doing a
cross-compile. If there's a more fine-grained flag for generic
optimization levels that doesn't try to do PGO, we should enable that
instead. The flag also enables `-fno-semantic-interposition`, but our
GCC patches enable that by default for -fPIC anyway, so that's not
necessary.
2022-01-08 18:56:29 +01:00
Idan Horowitz
ba9a525ba6 Ports: Remove obsolete siginfo_t::si_error Python3 patch 2021-12-22 22:53:56 +02:00
Tim Schumacher
48dc28996d Ports: Update Python patches for the recent signal changes
The old patch to define `HAVE_SIGSET_T` is no longer needed, as we now
have implementations for `sigwaitinfo` and `sigtimedwait`.

Instead, for the same reason, we now have to remove a reference to
`si_errno`, which we haven't implemented yet but is just assumed to be
there.
2021-12-22 11:28:20 +01:00
Linus Groh
db610d0cd6 Ports: Restore Python's setup.py patch
It appears that the patch still applied partially, which led to me
believing our changes were fully upstreamed. Only the _uuid module
specific changes didn't apply and are no longer needed, so simply
restore the other ones that I removed.
2021-12-12 00:23:04 +00:00
Linus Groh
6d9a1d3c93 Ports: Update Python to 3.10.1 :^)
This was released a couple of days ago, on 2021-12-06 and contains
various changes that we previously needed custom patches for, so we are
now able to remove those and compile more unchanged upstream sources.
Thanks to Rodrigo for making that effort! :^)
2021-12-11 19:02:00 +00:00
Rodrigo Tobar
c3a6d96988 Ports: Patch Python to deal with Serenity's strftime
The xmlrpc.client module has some trial-and-error logic at module import
time to figure out how to properly format years using strftime. There
have already been problems in the past with this code in Python (see
https://bugs.python.org/issue13305, which is still open), and Serenity
only adds to that.

This problem has been reported at https://bugs.python.org/issue45386, so
hopefully in time we won't need this patch anymore.
2021-10-06 13:57:52 +01:00
Rodrigo Tobar
c38c93bff1 Ports: Patch Python's http.client due to unimplemented socket option
This problem has been reported on https://bugs.python.org/issue45328 and
a fix has been provided, potential review and merge are pending.
2021-10-06 13:57:52 +01:00
Rodrigo Tobar
3c192f492a Ports: Compile Python against OpenSSL to gain ssl module
Compiling against an OpenSSL thread-enabled shared library (see #10207)
lets Python compile its _ssl module, which yields an importable ssl
module.

The ssl module suffers from the same problem described in #10014 though,
namely that python crashes when importing different modules results in
multiple libcrypto.so loads, and its functions are later invoked by one
of the modules. Once #10277 is merged though the module becomes quite
usable.
2021-10-05 15:45:08 +01:00
Tim Schumacher
c07f91474d Ports: Make array-like settings actual arrays
We may need entries with spaces in makeopts, installopts, and
configopts, and at that point we should also convert depends and
auth_opts to avoid confusion.
2021-10-05 02:13:08 +02:00
Linus Groh
fb98e12f86 Ports: Update Python to 3.10.0
Released on 2021-10-04.
https://www.python.org/downloads/release/python-3100/
2021-10-04 21:46:25 +01:00
Linus Groh
5426901521 Ports: Update Python to 3.10.0rc2
Released on 2021-09-07.
https://www.python.org/downloads/release/python-3100rc2/
2021-09-18 21:20:18 +02:00
Linus Groh
6595db9ecf Ports: Build Python with --enable-optimizations
This no longer results in linker errors as the FIXME states, so let's
get some perf for free :^)
2021-09-11 00:28:39 +02:00
Linus Groh
6b15faed30 Ports: Build Python with libuuid
This makes the _uuid module work :^)
2021-09-11 00:28:39 +02:00
Rodrigo Tobar
430e5d27aa Ports: Fix compilation of python3 socket module 2021-09-09 17:51:15 +01:00
Linus Groh
81784afbe1 Ports: Fix Python's expected SHA256 sum
Fixes #9265.
2021-08-07 15:10:50 +01:00
Linus Groh
18f507520e Ports: Update Python to 3.10.0rc1
Released on 2021-08-02.
https://www.python.org/downloads/release/python-3100rc1/

This contains the first upstreamed change for SerenityOS, making the
webbrowser module work with Browser out of the box :^)
2021-08-03 21:01:07 +01:00
Linus Groh
5a0a426c18 Ports: Make Python version check work with suffixed versions
E.g. a1, b1, rc1. Simply don't parse anything beyond major and minor.
2021-08-03 21:01:07 +01:00
Linus Groh
a613e00caa Ports: Change Python's auth_type to sha256 2021-08-03 21:01:07 +01:00
Linus Groh
84efed502a Ports: Add a launcher for Python
We're even downloading an additional older icon from the git repo
instead of using their current ones for accurate look and feel :^)
2021-07-20 00:58:26 +01:00
Linus Groh
c77215fc61 Ports: Build Python with ncurses and termcap
Neither the _curses nor the termios module builds to completion
currently due to some missing functions, but we can let it try
nonetheless - it'll likely get fixed at some point :^)
2021-07-10 11:13:02 +01:00
Linus Groh
b2d68913d3 Ports: Build Python with sqlite
This makes the _sqlite3 module work :^)
2021-07-10 11:13:02 +01:00
Linus Groh
3b863561d7 Ports: Build Python with bzip2
This makes the _bz2 module work :^)
2021-07-10 11:13:02 +01:00
Linus Groh
5e3af8b7db Ports: Build Python with readline
This provides a *much* improved REPL experience :^)
2021-07-10 11:13:02 +01:00
Linus Groh
123c2f2f7f Ports: Add a patch for Python's setup.py to consider /usr/local
This makes it find more includes and libraries than by default when
crosscompiling.
2021-07-10 11:13:02 +01:00
Linus Groh
96331d7d87 Ports: Export CC with added --sysroot for building Python
This is used in the setup.py file when adding include and lib paths to
the list when crosscompiling, if it's not found in any of the checked
environment variables they don't get added.
2021-07-10 11:13:02 +01:00
Linus Groh
2c78fa066f Ports: Remove Python setlocale patch that's no longer needed
Since 4cd45f5, setlocale() always pretends to succeed.
2021-07-09 20:14:08 +01:00
Linus Groh
116f1c5c56 Ports: Update Python to 3.9.6
Released on 2021-06-28.
https://www.python.org/downloads/release/python-396/
2021-07-07 20:24:48 +01:00
Linus Groh
25cf59f2f6 Ports: Add note about Python webbrowser patch upstreaming 2021-05-09 17:15:15 +01:00
Linus Groh
2cbe510e89 Ports: Remove obsolete rlimit patch for Python
Stubs for getrlimit()/setrlimit() have been added in 1c3c072.
2021-05-09 17:11:02 +01:00
Linus Groh
f1791eca13 Ports: Always set Python MACHDEP to version-less 'serenityos'
This is used for `sys.platform`, so it's important to get it right and
ideally never change it again. When not cross-compiling this would
append the `uname -r` version number, so let's explicitly override the
generated value and set it to `serenityos`. Various other systems do
this as well.
2021-05-06 16:46:43 +01:00
Linus Groh
8cfbeb78ff Ports: Remove Python printf fraction length patch
This functionality was implemented in f0fe449, making the patch
unnecessary.
2021-05-06 15:26:49 +01:00
Linus Groh
9f970c3459 Ports: Register Browser in the Python webbrowser module
This makes the following work:

    >>> import webbrowser
    >>> webbrowser.open("http://serenityos.org")

As well as this well-known easter egg:

    >>> import antigravity

Pretty cool! :^)
2021-05-06 14:26:09 +01:00
Linus Groh
e76342e242 Ports: Update Python to 3.9.5
Released on 2021-05-03.
https://www.python.org/downloads/release/python-395/
2021-05-06 13:04:38 +01:00
Gunnar Beutner
adaf2b347c Ports: Remove obsolete patches for Python
This enables shared library support for Python and removes
a few patches which are not necessary anymore now that
we have dlfcn support.
2021-04-25 10:14:50 +02:00
Brian Gianforcaro
0398e4a48a Ports: Fix python3 package so linting script doesn't error out.
I have my environment configured to use https://pre-commit.com/.
I guess the scripts were changed recently to lint all ports, and
the python port was barfing on my system because of this bug.
2021-04-25 00:57:36 +02:00
Linus Groh
b06f68c3d2 Ports: Fix Python _crypt module linkage error
we need to link against LibCrypt and subsubsequently LibCore (which
LibCrypt does not link against itself due to a circular dependency
issue).
Not sure why this broke, it worked when I last updated the port.
2021-04-21 23:35:35 +02:00