make py-setuptools a run-time-only dep for py-basemap and patch pytho… (#6989)

* make py-setuptools a run-time-only dep for py-basemap and patch python package to only apply setuptools flag for build deps

* py-qtconsole does not require setuptools
This commit is contained in:
Gregory Lee 2018-03-21 14:34:27 -07:00 committed by Adam J. Stewart
parent 55f4bbb111
commit 7504e9997d
3 changed files with 9 additions and 4 deletions

View file

@ -237,9 +237,15 @@ def install_args(self, spec, prefix):
# Spack manages the package directory on its own by symlinking
# extensions into the site-packages directory, so we don't really
# need the .pth files or egg directories, anyway.
#
# We need to make sure this is only for build dependencies. A package
# such as py-basemap will not build properly with this flag since
# it does not use setuptools to build and those does not recognize
# the --single-version-externally-managed flag
if ('py-setuptools' == spec.name or # this is setuptools, or
'py-setuptools' in spec._dependencies): # it's an immediate dep
args += ['--single-version-externally-managed', '--root=/']
'py-setuptools' in spec._dependencies and # it's an immediate dep
'build' in spec._dependencies['py-setuptools'].deptypes):
args += ['--single-version-externally-managed', '--root=/']
return args

View file

@ -37,7 +37,7 @@ class PyBasemap(PythonPackage):
# Per Github issue #3813, setuptools is required at runtime in order
# to make mpl_toolkits a namespace package that can span multiple
# directories (i.e., matplotlib and basemap)
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-setuptools', type=('run'))
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-matplotlib', type=('build', 'run'))
depends_on('pil', type=('build', 'run'))

View file

@ -35,7 +35,6 @@ class PyQtconsole(PythonPackage):
variant('doc', default=False, description='Build documentation')
depends_on('py-setuptools', type='build')
depends_on('py-ipykernel@4.1:', type=('build', 'run'))
depends_on('py-jupyter-client@4.1:', type=('build', 'run'))
depends_on('py-jupyter-core', type=('build', 'run'))