From db610d0cd61de2d18ee5bb2dfcf543a19b50ca83 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 12 Dec 2021 00:23:04 +0000 Subject: [PATCH] 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. --- Ports/python3/patches/ReadMe.md | 7 ++++++ Ports/python3/patches/tweak-setup-py.patch | 27 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 Ports/python3/patches/tweak-setup-py.patch diff --git a/Ports/python3/patches/ReadMe.md b/Ports/python3/patches/ReadMe.md index 7b2e792d5ce..b21e3b8ebe9 100644 --- a/Ports/python3/patches/ReadMe.md +++ b/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`. diff --git a/Ports/python3/patches/tweak-setup-py.patch b/Ports/python3/patches/tweak-setup-py.patch new file mode 100644 index 00000000000..d2416a9635e --- /dev/null +++ b/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'))