Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mesa PR #10482 breaks packages requiring mesa and python@2 #11537

Closed
baberlevi opened this issue May 22, 2019 · 10 comments
Closed

mesa PR #10482 breaks packages requiring mesa and python@2 #11537

baberlevi opened this issue May 22, 2019 · 10 comments

Comments

@baberlevi
Copy link
Member

When #10482 was introduced, this seems to have broken the installation of any package which depends on a python2 version.

A few examples:
catalyst
grass

@codeandkey is working on a PR for eman2 that requires python2, and we can't quite figure out how to work around this.

It seems like python3 should only be a transient build dependency, but the spec won't allow both python2 as a run dependency and python3 as a build dependency to concretize together.

@baberlevi
Copy link
Member Author

I guess this might get fixed by #4595

@scheibelp
Copy link
Member

It sounds like this specifically affects packages which depend on mesa as well as python@2, so I will update the title.

codeandkey is working on a PR for eman2 that requires python2, and we can't quite figure out how to work around this.

In this case, does it specifically require mesa? Or does it depend on gl (which can be provided by registering an external for the opengl package, assuming you have a system libgl available).

It's also possible that this particular problem will slowly become less prevalent as Python 2 support is phased out (e.g. perhaps catalyst will start supporting Python 3).

See also: #11468

@scheibelp scheibelp changed the title mesa PR #10482 breaks a few packages mesa PR #10482 breaks packages requiring mesa an python@2 May 22, 2019
@scheibelp scheibelp changed the title mesa PR #10482 breaks packages requiring mesa an python@2 mesa PR #10482 breaks packages requiring mesa and python@2 May 22, 2019
@baberlevi
Copy link
Member Author

Yes, it specifically affects things that need py2 and mesa or mesa via gl.

Considering submitting a mesa-legacy package for the older versions which use the old build system as a work around.

@chuckatkins
Copy link

The issue isn't even mesa specific, that's just an instance of the spack bug of not being able to separate build and run deps during concretization. Basically this case:

A <-bld- B <-bld- py3
 \
   <-bld- py2

This is valid since py3 is a build only dep for B but currently both py2 and py3 ending up in the same dag, even though they don't need to be loaded at the same time, seems to generate an artificial conflict.

@chuckatkins
Copy link

The workaround for this has so far been to do a two stage install, i.e. first explicitly spack install mesa and then spack install the application. The second install seems to work since spack is only considering the runtime deps of an already installed package instead of also it's build deps.

@codeandkey
Copy link
Contributor

codeandkey commented May 23, 2019

I tried @chuckatkins' workaround and it seems as if spack is still trying to concretize build-only dependencies:

$ spack install -v mesa%gcc@7.3.0
==> mesa is already installed in /home/las_jtst/spack/opt/spack/linux-rhel7-x86_64/gcc-7.3.0/mesa-19.0.4-kav3sjdniowpike4asyjyxe36uy2cfps
$ spack install -v "eman2^python@2.7.16^mesa%gcc@7.3.0"
==> Error: An unsatisfiable version constraint has been detected for spec:

    python@2.7.16
        ^pkgconfig@0.9.0:


while trying to concretize the partial spec:

    mesa%gcc@7.3.0
        ^expat
        ^flex
            ^bison
                ^diffutils
                ^help2man
                    ^gettext@0.19:
                    ^perl
                        ^gdbm
                            ^readline
                                ^ncurses
                                    ^pkgconfig@0.9.0:
                ^m4@1.4.6:
        ^py-mako@0.8.0:
            ^py-markupsafe@0.9.2:
                ^py-setuptools
                    ^python@2.7.16


mesa requires python version 3:, but spec asked for 2.7.16

@chuckatkins
Copy link

@codeandkey the workaround seems to no longer work. I've just posted an issue documenting the bug that happens, #11542, which didn't used to be a problem.

@danlipsa
Copy link
Contributor

danlipsa commented May 28, 2019

Similar issue reported in: #11541

@chuckatkins
Copy link

chuckatkins commented Jun 3, 2019

@baberlevi #11595 just restored the older autotools build while keeping the package restructuring. Can you check that it resolves the issue for you please?

@scheibelp
Copy link
Member

@baberlevi #11595 should resolve this issue so I'm closing this. Feel free to reopen if you can reproduce this with #11595.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants