summaryrefslogtreecommitdiffstats
path: root/package/python/python-2.7-010-change-pyconfig-h-location.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/python/python-2.7-010-change-pyconfig-h-location.patch')
-rw-r--r--package/python/python-2.7-010-change-pyconfig-h-location.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/package/python/python-2.7-010-change-pyconfig-h-location.patch b/package/python/python-2.7-010-change-pyconfig-h-location.patch
new file mode 100644
index 000000000..fddc6c883
--- /dev/null
+++ b/package/python/python-2.7-010-change-pyconfig-h-location.patch
@@ -0,0 +1,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/python2.7/config, which is fine
+since this location is kept on the target.
+
+However, by default, the pyconfig.h is installed in
+usr/include/python2.7, 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/python2.7/config, 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/python2.7, 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-2.7.1/Lib/distutils/sysconfig.py
+===================================================================
+--- Python-2.7.1.orig/Lib/distutils/sysconfig.py
++++ Python-2.7.1/Lib/distutils/sysconfig.py
+@@ -193,7 +193,8 @@
+ else:
+ inc_dir = 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-2.7.1/Lib/sysconfig.py
+===================================================================
+--- Python-2.7.1.orig/Lib/sysconfig.py
++++ Python-2.7.1/Lib/sysconfig.py
+@@ -371,7 +371,7 @@
+ else:
+ inc_dir = _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')
+
+ def get_scheme_names():
+Index: Python-2.7.1/Makefile.pre.in
+===================================================================
+--- Python-2.7.1.orig/Makefile.pre.in
++++ Python-2.7.1/Makefile.pre.in
+@@ -967,7 +967,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)
+@@ -1001,6 +1000,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