htgoebel pushed a commit to branch wip-python-build-system in repository guix.
commit 5ef9e8f0c936ddd892ed902d4e7dac4a36b56252 Author: Hartmut Goebel <h.goe...@crazy-compilers.com> Date: Tue Oct 18 00:11:05 2016 +0200 gnu: python-2.7: Add all guix prefixes in PYTHONPATH to site-prefixes. * gnu/packages/patches/python-2.7-site-prefixes.patch: New file. * gnu/packages/python.scm (python-2)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add patch. --- gnu/local.mk | 1 + .../patches/python-2.7-site-prefixes.patch | 26 ++++++++++++++++++++ gnu/packages/python.scm | 1 + 3 files changed, 28 insertions(+) diff --git a/gnu/local.mk b/gnu/local.mk index 5226b49..b714405 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -780,6 +780,7 @@ dist_patch_DATA = \ %D%/packages/patches/pyqt-configure.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \ %D%/packages/patches/python-2.7-search-paths.patch \ + %D%/packages/patches/python-2.7-site-prefixes.patch \ %D%/packages/patches/python-2.7-source-date-epoch.patch \ %D%/packages/patches/python-3-deterministic-build-info.patch \ %D%/packages/patches/python-3-search-paths.patch \ diff --git a/gnu/packages/patches/python-2.7-site-prefixes.patch b/gnu/packages/patches/python-2.7-site-prefixes.patch new file mode 100644 index 0000000..9e30665 --- /dev/null +++ b/gnu/packages/patches/python-2.7-site-prefixes.patch @@ -0,0 +1,26 @@ +Add all /gnu/store/ prefixes found in PYTHONPATH to the prefixes where +site-packages (and .pth files) are searched. + +*** Python-2.7.11/Lib/site.py.orig 2016-10-17 23:27:23.746149690 +0200 +--- Python-2.7.11/Lib/site.py 2016-10-17 23:44:51.930871644 +0200 +*************** +*** 65,70 **** +--- 65,82 ---- + + # Prefixes for site-packages; add additional prefixes like /usr/local here + PREFIXES = [sys.prefix, sys.exec_prefix] ++ # Guix: Add all /gnu/store-paths in PYTHONPATH--these are all ++ # "prefixes". This is required to search .pth files in all python ++ # packages contained in /gnu/store which is required to make ++ # .pth-defined namespace packages work. ++ # This is necessary if the packages are not merged into a single ++ # `site-packages` directory (like when using `guix environment`) but ++ # listed in PYTHONPATH (like when running `guix build`). ++ for p in sys.path: ++ if p.startswith('/gnu/store/'): ++ PREFIXES.append(p[:p.find('/', 44)]) # find first pathsep after hash ++ del p ++ + # Enable per user site-packages directory + # set it to False to disable the feature or True to force the feature + ENABLE_USER_SITE = None diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 12a4534..c50fb7f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -117,6 +117,7 @@ "0iiz844riiznsyhhyy962710pz228gmhv8qi3yk4w4jhmx2lqawn")) (patches (search-patches "python-2.7-search-paths.patch" "python-2-deterministic-build-info.patch" + "python-2.7-site-prefixes.patch" "python-2.7-source-date-epoch.patch")) (modules '((guix build utils))) ;; suboptimal to delete failing tests here, but if we delete them in the