Spack will not concretize py-matplotlib and python together without explicit version constraints. Recent versions of matplotlib require python 3.5+, but it seems to conflict with a non-existing constraint "spec asked for 2.7.16".
Changing the python dependency to python@3.5: fixes the issue, but I feel like this should not be necessary.
Steps to reproduce the issue
Here is the minimal package file I tested.
from spack import *
class TestPackage(Package):
git = "http://github.com/codeandkey/dotfiles"
version('develop', branch='master')
depends_on('python')
depends_on('py-matplotlib')
Error Message
==> Error: An unsatisfiable version constraint has been detected for spec:
python@2.7.16%gcc@4.8.5+bz2+ctypes+dbm+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter~ucs4~uuid+zlib arch=linux-rhel7-x86_64
^bzip2@1.0.6%gcc@4.8.5+shared arch=linux-rhel7-x86_64
^diffutils@3.7%gcc@4.8.5 arch=linux-rhel7-x86_64
^expat
^gdbm
^readline
^ncurses
^pkgconf@1.6.0%gcc@4.8.5 arch=linux-rhel7-x86_64
^libffi
^openssl
^perl@5.14.0:
^zlib@1.2.11%gcc@4.8.5+optimize+pic+shared arch=linux-rhel7-x86_64
^sqlite@3.0.8:
while trying to concretize the partial spec:
py-matplotlib@3.0.2%gcc@4.8.5~animation+image~ipython~latex~qt+tk arch=linux-rhel7-x86_64
^freetype@2.9.1%gcc@4.8.5 arch=linux-rhel7-x86_64
^bzip2@1.0.6%gcc@4.8.5+shared arch=linux-rhel7-x86_64
^diffutils@3.7%gcc@4.8.5 arch=linux-rhel7-x86_64
^libpng@1.6.34%gcc@4.8.5 arch=linux-rhel7-x86_64
^zlib@1.2.11%gcc@4.8.5+optimize+pic+shared arch=linux-rhel7-x86_64 [21/760]
^pkgconf@1.6.0%gcc@4.8.5 arch=linux-rhel7-x86_64
^pil
^py-dateutil@2.7.5%gcc@4.8.5 arch=linux-rhel7-x86_64
^py-setuptools@41.0.1%gcc@4.8.5 arch=linux-rhel7-x86_64
^python@2.7.16%gcc@4.8.5+bz2+ctypes+dbm+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter~ucs4~uuid+zlib arch=linux-rhel7-x86_64
^expat
^gdbm
^readline
^ncurses
^libffi
^openssl
^perl@5.14.0:
^sqlite@3.0.8:
^py-setuptools-scm
^py-six@1.12.0%gcc@4.8.5 arch=linux-rhel7-x86_64
^py-functools32@3.2.3-2%gcc@4.8.5 arch=linux-rhel7-x86_64
^py-subprocess32@3.2.7%gcc@4.8.5 arch=linux-rhel7-x86_64
^qhull@2015.2%gcc@4.8.5 build_type=RelWithDebInfo arch=linux-rhel7-x86_64
^cmake@3.14.4%gcc@4.8.5~doc+ncurses+openssl+ownlibs~qt arch=linux-rhel7-x86_64
^gnutls@3.6.8%gcc@4.8.5+guile+zlib arch=linux-rhel7-x86_64
^gettext@0.19.8.1%gcc@4.8.5+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-rhel7-x86_64
^libxml2
^libiconv
^xz
^tar
^guile
^bdw-gc@7.0:
^gmp@4.2:
^autoconf
^m4@1.4.6:
^automake
^libtool@1.5.6:
^libunistring@0.9.3:
^nettle@3.4.1:
^tk@8.3:
^libx11
^inputproto
^util-macros
^kbproto
^libxcb@1.1.92:
^libpthread-stubs
^libxau@0.99.2:
^xproto@7.0.17:
^libxdmcp
^xcb-proto
^xextproto
^xtrans
^tcl@8.6:
py-matplotlib requires python version 3.5:, but spec asked for 2.7.16
Spack will not concretize py-matplotlib and python together without explicit version constraints. Recent versions of matplotlib require python 3.5+, but it seems to conflict with a non-existing constraint "spec asked for 2.7.16".
Changing the
pythondependency topython@3.5:fixes the issue, but I feel like this should not be necessary.Steps to reproduce the issue
Here is the minimal package file I tested.
Error Message