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.
This commit is contained in:
Linus Groh 2021-07-10 00:17:31 +01:00
parent 96331d7d87
commit 123c2f2f7f
2 changed files with 34 additions and 0 deletions

View file

@ -12,6 +12,13 @@ Enforce UTF-8 as encoding by defining `_Py_FORCE_UTF8_LOCALE`.
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.
## `tweak-setup-py.patch`
Make some tweaks to Python's `setup.py` files:
- Add `/usr/local/lib` / `/usr/local/include` to the system lib / include dirs, 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`.
## `webbrowser.patch`
Register the SerenityOS Browser in the [`webbrowser`](https://docs.python.org/3/library/webbrowser.html) module.

View file

@ -0,0 +1,27 @@
--- Python-3.9.6/setup.py.orig 2021-07-10 00:09:56.322423573 +0100
+++ Python-3.9.6/setup.py 2021-07-10 00:13:39.447453427 +0100
@@ -750,8 +750,8 @@
add_dir_to_list(self.compiler.include_dirs,
sysconfig.get_config_var("INCLUDEDIR"))
- system_lib_dirs = ['/lib64', '/usr/lib64', '/lib', '/usr/lib']
- system_include_dirs = ['/usr/include']
+ system_lib_dirs = ['/lib64', '/usr/lib64', '/lib', '/usr/lib', '/usr/local/lib']
+ system_include_dirs = ['/usr/include', '/usr/local/include']
# lib_dirs and inc_dirs are used to search for files;
# if a file is found in one of those directories, it can
# be assumed that no additional -I,-L directives are needed.
@@ -1052,7 +1052,12 @@
# Curses support, requiring the System V version of curses, often
# provided by the ncurses library.
curses_defines = []
- curses_includes = []
+ if not CROSS_COMPILING:
+ curses_includes = ['/usr/local/include/ncurses']
+ else:
+ curses_includes = sysroot_paths(
+ ('CPPFLAGS', 'CFLAGS', 'CC'), ['/usr/local/include/ncurses']
+ )
panel_library = 'panel'
if curses_library == 'ncursesw':
curses_defines.append(('HAVE_NCURSESW', '1'))