Serenity Operating System
1From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2From: Linus Groh <mail@linusgroh.de>
3Date: Fri, 14 Jan 2022 23:36:52 +0330
4Subject: [PATCH] Tweak `setup.py`
5
6Make some tweaks to Python's `setup.py`:
7
8- Add `/usr/local/lib` and `/usr/local/include` to the system lib and
9 include dirs respectively, relative to the sysroot when
10 crosscompiling. These are by default only included when not
11 crosscompiling for some reason.
12- Add `/usr/local/include/ncurses` to the curses include paths so it can
13 build the `_curses` module. This is by default included for a bunch of
14 extensions, but not `_curses`.
15---
16 setup.py | 11 ++++++++---
17 1 file changed, 8 insertions(+), 3 deletions(-)
18
19diff --git a/setup.py b/setup.py
20index 15d0d4576a4772e9920ac2d7c1a9dee75c29b341..e651ac7627e8b796f8b9b4d60f592bc9261b6540 100644
21--- a/setup.py
22+++ b/setup.py
23@@ -868,8 +868,8 @@ class PyBuildExt(build_ext):
24 add_dir_to_list(self.compiler.include_dirs,
25 sysconfig.get_config_var("INCLUDEDIR"))
26
27- system_lib_dirs = ['/lib64', '/usr/lib64', '/lib', '/usr/lib']
28- system_include_dirs = ['/usr/include']
29+ system_lib_dirs = ['/lib64', '/usr/lib64', '/lib', '/usr/lib', '/usr/local/lib']
30+ system_include_dirs = ['/usr/include', '/usr/local/include']
31 # lib_dirs and inc_dirs are used to search for files;
32 # if a file is found in one of those directories, it can
33 # be assumed that no additional -I,-L directives are needed.
34@@ -1117,7 +1117,12 @@ class PyBuildExt(build_ext):
35 # Curses support, requiring the System V version of curses, often
36 # provided by the ncurses library.
37 curses_defines = []
38- curses_includes = []
39+ if not CROSS_COMPILING:
40+ curses_includes = ['/usr/local/include/ncurses']
41+ else:
42+ curses_includes = sysroot_paths(
43+ ('CPPFLAGS', 'CFLAGS', 'CC'), ['/usr/local/include/ncurses']
44+ )
45 panel_library = 'panel'
46 if curses_library == 'ncursesw':
47 curses_defines.append(('HAVE_NCURSESW', '1'))