Skip to content

Incorrect dependency handling on spack load --dependencies #3501

@healther

Description

@healther

I wanted to take a shot at #3374 (now fixed by #3492) but I ran into dependency tracking issues when I wanted to use py-pudb

$ spack load --dependencies py-pudb
$ pudb
Traceback (most recent call last):
  File "/Users/healther/Documents/git/spack/opt/spack/darwin-sierra-x86_64/clang-8.0.0-apple/py-pudb-2016.2-lqp42db6v3o3pzkzeyf4fgpc46mjtpsp/bin/pudb", line 7, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

spack, for some reason, decided that it should load py-setuptools, py-six, py-packaging, py-pyparsing and py-appdirs even though it concretizes the spec as follows:

Concretized
--------------------------------
[   ]  py-pudb@2016.2%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[b r]      ^py-pygments@2.1.3%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[b  ]          ^py-setuptools@34.2.0%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[b r]              ^py-appdirs@1.4.0%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[bl ]                  ^python@2.7.13%clang@8.0.0-apple~tk~ucs4 arch=darwin-sierra-x86_64 
[bl ]                      ^bzip2@1.0.6%clang@8.0.0-apple+shared arch=darwin-sierra-x86_64 
[bl ]                      ^ncurses@6.0%clang@8.0.0-apple~symlinks arch=darwin-sierra-x86_64 
[b  ]                          ^gawk@4.1.4%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[bl ]                      ^openssl@1.0.2k%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[b  ]                          ^perl@5.24.1%clang@8.0.0-apple+cpanm arch=darwin-sierra-x86_64 
[bl ]                          ^zlib@1.2.11%clang@8.0.0-apple+pic+shared arch=darwin-sierra-x86_64 
[bl ]                      ^readline@7.0%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[bl ]                      ^sqlite@3.8.5%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[b r]              ^py-packaging@16.8%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[  r]                  ^py-pyparsing@2.1.10%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[  r]                  ^py-six@1.10.0%clang@8.0.0-apple arch=darwin-sierra-x86_64 
[b r]      ^py-urwid@1.3.0%clang@8.0.0-apple arch=darwin-sierra-x86_64

If I'm reading this correctly the missing packages should have been loaded according to the spec, but for some reason aren't. I haven't had time to track this down, but I think spack fails to load the dependencies of dependencies, even though it correctly concretises the spec.

I hope that I can give it a shot tomorrow or the day after.... If someone could give me a pointer where to start looking I'd appreciate it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions