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 --- Lib/distutils/sysconfig.py | 3 ++- Lib/sysconfig.py | 2 +- Makefile.pre.in | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) Index: Python-2.7.2/Lib/distutils/sysconfig.py =================================================================== --- Python-2.7.2.orig/Lib/distutils/sysconfig.py +++ Python-2.7.2/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.2/Lib/sysconfig.py =================================================================== --- Python-2.7.2.orig/Lib/sysconfig.py +++ Python-2.7.2/Lib/sysconfig.py @@ -356,7 +356,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.2/Makefile.pre.in =================================================================== --- Python-2.7.2.orig/Makefile.pre.in +++ Python-2.7.2/Makefile.pre.in @@ -972,7 +972,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) @@ -1006,6 +1005,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