Browse Source

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.
Linus Groh 3 years ago
parent
commit
db610d0cd6
2 changed files with 34 additions and 0 deletions
  1. 7 0
      Ports/python3/patches/ReadMe.md
  2. 27 0
      Ports/python3/patches/tweak-setup-py.patch

+ 7 - 0
Ports/python3/patches/ReadMe.md

@@ -15,3 +15,10 @@ Enforce UTF-8 as encoding by defining `_Py_FORCE_UTF8_LOCALE`.
 ## `fix-autoconf.patch`
 
 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`.

+ 27 - 0
Ports/python3/patches/tweak-setup-py.patch

@@ -0,0 +1,27 @@
+--- Python-3.10.1/setup.py	2021-12-12 00:14:06.628584207 +0000
++++ Python-3.10.1/setup.py	2021-12-12 00:14:57.889343919 +0000
+@@ -846,8 +846,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.
+@@ -1158,7 +1158,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'))