aboutsummaryrefslogtreecommitdiffstats
path: root/package/python3/python3-007-change-pyconfig-h-location.patch
blob: 8d45daef4ddd0e85b6de0a72c5f31042c521f99b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Change the location of pyconfig.h

The Python interpreter has a really strange behaviour: at *runtime*,
it reads a Makefile and a header file named pyconfig.h to get some
information about the configuration.

The Makefile is located in usr/lib/python3.3/config-3.3m, which is fine
since this location is kept on the target.

However, by default, the pyconfig.h is installed in
usr/include/python3.3m, but we completely remove the usr/include
directory for the target. Since making an exception just for
pyconfig.h is annoying, this patch also installs pyconfig.h to
usr/lib/python3.3/config-3.3m, and modifies the sysconfig module so that it
looks in this location instead of usr/include.

The pyconfig.h is still kept in usr/include/python3.3m, because it is
needed in the $(STAGING_DIR) when building third-party Python
extensions that contain C code.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

---
 Lib/distutils/sysconfig.py |    3 ++-
 Lib/sysconfig.py           |    2 +-
 Makefile.pre.in            |    3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

Index: Python-3.3.0/Lib/distutils/sysconfig.py
===================================================================
--- Python-3.3.0.orig/Lib/distutils/sysconfig.py
+++ Python-3.3.0/Lib/distutils/sysconfig.py
@@ -239,7 +239,8 @@
         else:
             inc_dir = _sys_home or project_base
     else:
-        inc_dir = get_python_inc(plat_specific=1)
+        lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
+        inc_dir = os.path.join(lib_dir, "config")
     if get_python_version() < '2.2':
         config_h = 'config.h'
     else:
Index: Python-3.3.0/Lib/sysconfig.py
===================================================================
--- Python-3.3.0.orig/Lib/sysconfig.py
+++ Python-3.3.0/Lib/sysconfig.py
@@ -467,7 +467,7 @@
         else:
             inc_dir = _sys_home or _PROJECT_BASE
     else:
-        inc_dir = get_path('platinclude')
+        inc_dir = os.path.join(get_path('stdlib'), "config")
     return os.path.join(inc_dir, 'pyconfig.h')
 
 
Index: Python-3.3.0/Makefile.pre.in
===================================================================
--- Python-3.3.0.orig/Makefile.pre.in
+++ Python-3.3.0/Makefile.pre.in
@@ -1123,7 +1123,6 @@
 		echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
 		$(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
 	done
-	$(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
 
 # Install the library and miscellaneous stuff needed for extending/embedding
 # This goes into $(exec_prefix)
@@ -1157,6 +1156,8 @@
 	$(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o
 	$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
 	$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
+	$(INSTALL_DATA) pyconfig.h $(DESTDIR)$(LIBPL)/pyconfig.h
+	$(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
 	$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
 	$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
 	$(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config