1*4882a593SmuzhiyunFrom 27f6687e49bf555fc494d2f14bae6ecd0fa30f14 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Alexander Kanavin <alex.kanavin@gmail.com>
3*4882a593SmuzhiyunDate: Thu, 10 Dec 2015 13:20:30 +0200
4*4882a593SmuzhiyunSubject: [PATCH] Don't search /usr and so on for libraries by default to
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun avoid host contamination.
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunUpstream-Status: Inappropriate (As the code stands, this is a hack)
9*4882a593SmuzhiyunSigned-off-by: Ross Burton <ross.burton@intel.com>
10*4882a593SmuzhiyunSigned-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11*4882a593Smuzhiyun---
12*4882a593Smuzhiyun numpy/distutils/system_info.py | 42 +++++-----------------------------
13*4882a593Smuzhiyun 1 file changed, 6 insertions(+), 36 deletions(-)
14*4882a593Smuzhiyun
15*4882a593Smuzhiyundiff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
16*4882a593Smuzhiyunindex 82e864a..135246d 100644
17*4882a593Smuzhiyun--- a/numpy/distutils/system_info.py
18*4882a593Smuzhiyun+++ b/numpy/distutils/system_info.py
19*4882a593Smuzhiyun@@ -323,44 +323,14 @@ if sys.platform == 'win32':
20*4882a593Smuzhiyun         add_system_root(os.path.join(conda_dir, 'Library'))
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun else:
23*4882a593Smuzhiyun-    default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', '/usr/lib',
24*4882a593Smuzhiyun-                                 '/opt/local/lib', '/sw/lib'], platform_bits)
25*4882a593Smuzhiyun     default_runtime_dirs = []
26*4882a593Smuzhiyun-    default_include_dirs = ['/usr/local/include',
27*4882a593Smuzhiyun-                            '/opt/include',
28*4882a593Smuzhiyun-                            # path of umfpack under macports
29*4882a593Smuzhiyun-                            '/opt/local/include/ufsparse',
30*4882a593Smuzhiyun-                            '/opt/local/include', '/sw/include',
31*4882a593Smuzhiyun-                            '/usr/include/suitesparse']
32*4882a593Smuzhiyun-    default_src_dirs = ['.', '/usr/local/src', '/opt/src', '/sw/src']
33*4882a593Smuzhiyun-
34*4882a593Smuzhiyun-    default_x11_lib_dirs = libpaths(['/usr/X11R6/lib', '/usr/X11/lib',
35*4882a593Smuzhiyun-                                     '/usr/lib'], platform_bits)
36*4882a593Smuzhiyun-    default_x11_include_dirs = ['/usr/X11R6/include', '/usr/X11/include']
37*4882a593Smuzhiyun-
38*4882a593Smuzhiyun-    if os.path.exists('/usr/lib/X11'):
39*4882a593Smuzhiyun-        globbed_x11_dir = glob('/usr/lib/*/libX11.so')
40*4882a593Smuzhiyun-        if globbed_x11_dir:
41*4882a593Smuzhiyun-            x11_so_dir = os.path.split(globbed_x11_dir[0])[0]
42*4882a593Smuzhiyun-            default_x11_lib_dirs.extend([x11_so_dir, '/usr/lib/X11'])
43*4882a593Smuzhiyun-            default_x11_include_dirs.extend(['/usr/lib/X11/include',
44*4882a593Smuzhiyun-                                             '/usr/include/X11'])
45*4882a593Smuzhiyun-
46*4882a593Smuzhiyun-    with open(os.devnull, 'w') as tmp:
47*4882a593Smuzhiyun-        try:
48*4882a593Smuzhiyun-            p = subprocess.Popen(["gcc", "-print-multiarch"], stdout=subprocess.PIPE,
49*4882a593Smuzhiyun-                         stderr=tmp)
50*4882a593Smuzhiyun-        except (OSError, DistutilsError):
51*4882a593Smuzhiyun-            # OSError if gcc is not installed, or SandboxViolation (DistutilsError
52*4882a593Smuzhiyun-            # subclass) if an old setuptools bug is triggered (see gh-3160).
53*4882a593Smuzhiyun-            pass
54*4882a593Smuzhiyun-        else:
55*4882a593Smuzhiyun-            triplet = str(p.communicate()[0].decode().strip())
56*4882a593Smuzhiyun-            if p.returncode == 0:
57*4882a593Smuzhiyun-                # gcc supports the "-print-multiarch" option
58*4882a593Smuzhiyun-                default_x11_lib_dirs += [os.path.join("/usr/lib/", triplet)]
59*4882a593Smuzhiyun-                default_lib_dirs += [os.path.join("/usr/lib/", triplet)]
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun+    default_lib_dirs = libpaths(['/deadir/lib'], platform_bits)
62*4882a593Smuzhiyun+    default_include_dirs = ['/deaddir/include']
63*4882a593Smuzhiyun+    default_src_dirs = ['.', '/deaddir/src']
64*4882a593Smuzhiyun+
65*4882a593Smuzhiyun+    default_x11_lib_dirs = libpaths(['/deaddir/lib'], platform_bits)
66*4882a593Smuzhiyun+    default_x11_include_dirs = ['/deaddir/include']
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun if os.path.join(sys.prefix, 'lib') not in default_lib_dirs:
69*4882a593Smuzhiyun     default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib'))
70*4882a593Smuzhiyun--
71*4882a593Smuzhiyun2.25.1
72*4882a593Smuzhiyun
73