From 818b00e3027e753937c4d8f4cf6174f9859a283c Mon Sep 17 00:00:00 2001 From: Simon Pintarelli <1237199+simonpintarelli@users.noreply.github.com> Date: Sun, 19 Jan 2020 17:39:11 +0100 Subject: [PATCH 01/11] py-voluptuous update versions (#14556) --- var/spack/repos/builtin/packages/py-voluptuous/package.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-voluptuous/package.py b/var/spack/repos/builtin/packages/py-voluptuous/package.py index 66e2712c519..1d497d8ea28 100644 --- a/var/spack/repos/builtin/packages/py-voluptuous/package.py +++ b/var/spack/repos/builtin/packages/py-voluptuous/package.py @@ -9,8 +9,10 @@ class PyVoluptuous(PythonPackage): """Voluptous, despite the name, is a Python data validation library.""" homepage = "https://github.com/alecthomas/voluptuous" - url = "https://github.com/alecthomas/voluptuous/archive/0.11.5.tar.gz" + url = "https://pypi.io/packages/source/v/voluptuous/voluptuous-0.11.5.tar.gz" - version('0.11.5', sha256='01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4') + version('0.11.7', sha256='2abc341dbc740c5e2302c7f9b8e2e243194fb4772585b991931cb5b22e9bf456') + version('0.11.6', sha256='d2ca99ae1d1ed0313e8965720d1d75a780fc7f312fea4e3dbbb56ccfe5a8306d') + version('0.11.5', sha256='567a56286ef82a9d7ae0628c5842f65f516abcb496e74f3f59f1d7b28df314ef') depends_on('py-setuptools', type='build') From dbb149cd7f5d5c88bfc9787f4c163337f928efc2 Mon Sep 17 00:00:00 2001 From: Olaf Mersmann Date: Mon, 20 Jan 2020 00:20:22 +0100 Subject: [PATCH 02/11] capnproto: New package. (#14557) * capnproto: New package. * capnproto: Fix flake8 errors. * Remove characters invalid in Python 2. --- .../builtin/packages/capnproto/package.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 var/spack/repos/builtin/packages/capnproto/package.py diff --git a/var/spack/repos/builtin/packages/capnproto/package.py b/var/spack/repos/builtin/packages/capnproto/package.py new file mode 100644 index 00000000000..2533e8aabe4 --- /dev/null +++ b/var/spack/repos/builtin/packages/capnproto/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Capnproto(AutotoolsPackage): + """Cap'n Proto is an insanely fast data interchange + format and capability-based RPC system. + """ + + homepage = "https://capnproto.org/" + url = "https://capnproto.org/capnproto-c++-0.7.0.tar.gz" + git = "https://github.com/capnproto/capnproto" + + version('0.7.0', sha256='c9a4c0bd88123064d483ab46ecee777f14d933359e23bff6fb4f4dbd28b4cd41') + + def configure_args(self): + return ['--without-openssl'] From ca26eb69231fffb500459746a218b04724657652 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Sun, 19 Jan 2020 18:22:03 -0800 Subject: [PATCH 03/11] add conduit 0.5.1 release and allow conduit to build against statically linked python (#14559) --- var/spack/repos/builtin/packages/conduit/package.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py index 480f5dca1ea..eecc15d7983 100644 --- a/var/spack/repos/builtin/packages/conduit/package.py +++ b/var/spack/repos/builtin/packages/conduit/package.py @@ -38,6 +38,7 @@ class Conduit(Package): git = "https://github.com/LLNL/conduit.git" version('master', branch='master', submodules=True, preferred=True) + version('0.5.1', sha256='68a3696d1ec6d3a4402b44a464d723e6529ec41016f9b44c053676affe516d44') version('0.5.0', sha256='7efac668763d02bd0a2c0c1b134d9f5ee27e99008183905bb0512e5502b8b4fe') version('0.4.0', sha256='c228e6f0ce5a9c0ffb98e0b3d886f2758ace1a4b40d00f3f118542c0747c1f52') version('0.3.1', sha256='7b358ca03bb179876291d4a55d6a1c944b7407a80a588795b9e47940b1990521') @@ -89,9 +90,7 @@ class Conduit(Package): ####################### # Python ####################### - # we need a shared version of python b/c linking with static python lib - # causes duplicate state issues when running compiled python modules. - depends_on("python+shared", when="+python") + depends_on("python", when="+python") extends("python", when="+python") depends_on("py-numpy", when="+python", type=('build', 'run')) @@ -370,7 +369,7 @@ def create_host_config(self, spec, prefix, py_site_pkgs_dir=None): cfg.write("# Python Support\n") - if "+python" in spec and "+shared" in spec: + if "+python" in spec: cfg.write("# Enable python module builds\n") cfg.write(cmake_cache_entry("ENABLE_PYTHON", "ON")) cfg.write("# python from spack \n") From f23a136d83ca01066faa43c60ed33638d6a56f53 Mon Sep 17 00:00:00 2001 From: Sean Smith Date: Mon, 20 Jan 2020 13:19:28 -0800 Subject: [PATCH 04/11] Update AWS ParallelCluster to 2.5.1 (#14571) Signed-off-by: Sean Smith --- .../repos/builtin/packages/aws-parallelcluster/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py index 27dcafad808..6fd95ac2ee2 100644 --- a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py +++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py @@ -11,8 +11,11 @@ class AwsParallelcluster(PythonPackage): tool to deploy and manage HPC clusters in the AWS cloud.""" homepage = "https://github.com/aws/aws-parallelcluster" - url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.5.0.tar.gz" + url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.5.1.tar.gz" + maintainers = ['sean-smith', 'demartinofra', 'enrico-usai', + 'lukeseawalker', 'rexcsn', 'ddeidda', 'tilne'] + version('2.5.1', sha256='4fd6e14583f8cf81f9e4aa1d6188e3708d3d14e6ae252de0a94caaf58be76303') version('2.5.0', sha256='3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3') depends_on('python@2.7:', type=('build', 'run')) From d10505678fd5624e5e88f72ac7852109f149b264 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 20 Jan 2020 19:22:05 -0600 Subject: [PATCH 05/11] Add new kcov package (#14574) * Add new kcov package * Fix linking error and add test --- .../repos/builtin/packages/kcov/package.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 var/spack/repos/builtin/packages/kcov/package.py diff --git a/var/spack/repos/builtin/packages/kcov/package.py b/var/spack/repos/builtin/packages/kcov/package.py new file mode 100644 index 00000000000..8f01ffc9855 --- /dev/null +++ b/var/spack/repos/builtin/packages/kcov/package.py @@ -0,0 +1,33 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Kcov(CMakePackage): + """Code coverage tool for compiled programs, Python and Bash which uses + debugging information to collect and report data without special + compilation options""" + + homepage = "http://simonkagstrom.github.io/kcov/index.html" + url = "https://github.com/SimonKagstrom/kcov/archive/38.tar.gz" + + version('38', sha256='b37af60d81a9b1e3b140f9473bdcb7975af12040feb24cc666f9bb2bb0be68b4') + + depends_on('cmake@2.8.4:', type='build') + depends_on('zlib') + depends_on('curl') + + def cmake_args(self): + # Necessary at least on macOS, fixes linking error to LLDB + # https://github.com/Homebrew/homebrew-core/blob/master/Formula/kcov.rb + return ['-DSPECIFY_RPATH=ON'] + + @run_after('install') + @on_package_attributes(run_tests=True) + def test(self): + # The help message exits with an exit code of 1 + kcov = Executable(self.prefix.bin.kcov) + kcov('-h', ignore_errors=1) From 5db50408710a1a16a43099a4079f37e2af3cb548 Mon Sep 17 00:00:00 2001 From: Glenn Johnson Date: Tue, 21 Jan 2020 09:27:41 -0600 Subject: [PATCH 06/11] Use CudaPackage mixin for py-theano (#14577) This PR adds the CudaPackage mixin class to py-theano. This replaces the `gpu` variant with the `cuda` variant. --- .../repos/builtin/packages/py-theano/package.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-theano/package.py b/var/spack/repos/builtin/packages/py-theano/package.py index cbe496c3eda..c7c95fd0e3a 100644 --- a/var/spack/repos/builtin/packages/py-theano/package.py +++ b/var/spack/repos/builtin/packages/py-theano/package.py @@ -6,7 +6,7 @@ from spack import * -class PyTheano(PythonPackage): +class PyTheano(PythonPackage, CudaPackage): """Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.""" @@ -20,9 +20,6 @@ class PyTheano(PythonPackage): version('1.0.1', sha256='88d8aba1fe2b6b75eacf455d01bc7e31e838c5a0fb8c13dde2d9472495ff4662') version('0.8.2', sha256='7463c8f7ed1a787bf881f36d38a38607150186697e7ce7e78bfb94b7c6af8930') - variant('gpu', default=False, - description='Builds with support for GPUs via CUDA and cuDNN') - depends_on('python@2.6:2.8,3.3:') depends_on('py-setuptools', type=('build', 'run')) @@ -32,10 +29,10 @@ class PyTheano(PythonPackage): depends_on('blas') - depends_on('cuda', when='+gpu') - depends_on('cudnn', when='+gpu') - depends_on('py-pygpu', when='+gpu', type=('build', 'run')) - depends_on('libgpuarray', when='+gpu') + depends_on('cuda', when='+cuda') + depends_on('cudnn', when='+cuda') + depends_on('py-pygpu', when='+cuda', type=('build', 'run')) + depends_on('libgpuarray', when='+cuda') depends_on('py-nose@1.3.0:', type='test') depends_on('py-parameterized', type='test') From 54ecc4e504b98f2482e85929a4b75ebb4a731b1b Mon Sep 17 00:00:00 2001 From: Michael Kuhn Date: Tue, 21 Jan 2020 20:05:42 +0100 Subject: [PATCH 07/11] cmake: Fix patch checksum (#14542) Add patch locally to make sure checksum cannot change again. --- .../cmake/fix-xlf-ninja-mr-4075.patch | 145 ++++++++++++++++++ .../repos/builtin/packages/cmake/package.py | 2 +- 2 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 var/spack/repos/builtin/packages/cmake/fix-xlf-ninja-mr-4075.patch diff --git a/var/spack/repos/builtin/packages/cmake/fix-xlf-ninja-mr-4075.patch b/var/spack/repos/builtin/packages/cmake/fix-xlf-ninja-mr-4075.patch new file mode 100644 index 00000000000..584e33850eb --- /dev/null +++ b/var/spack/repos/builtin/packages/cmake/fix-xlf-ninja-mr-4075.patch @@ -0,0 +1,145 @@ +From 19f267c75e84b72c4de42570be0c4222bb93aaff Mon Sep 17 00:00:00 2001 +From: Brad King +Date: Thu, 21 Nov 2019 14:38:35 -0500 +Subject: [PATCH] XL: Add support for Ninja and XL Fortran + +The Ninja generator's support for Fortran requires that source files +be preprocessed explicitly first. However, the `xlf` compiler does +not have a simple `-E` option or equivalent to do preprocessing. +The only documented way to get preprocessed output is to use `-d` +to leave it behind, but only at an inflexible location. + +Instead, create our own `cpp` wrapper script and substitute it for the +real preprocessor using `-tF -B ...`. Teach the wrapper to map the +`cpp` output to the location we need and then invoke the real `cpp` +underneath. + +Fixes: #19450 +--- + Help/release/dev/xlf-ninja.rst | 5 ++++ + Modules/CMakeDetermineCompilerId.cmake | 10 +++++++ + Modules/CMakeDetermineFortranCompiler.cmake | 5 ++++ + Modules/CMakeFortranCompiler.cmake.in | 1 + + Modules/Compiler/XL-Fortran.cmake | 4 +++ + Modules/Compiler/XL-Fortran/cpp | 29 +++++++++++++++++++++ + 6 files changed, 54 insertions(+) + create mode 100644 Help/release/dev/xlf-ninja.rst + create mode 100755 Modules/Compiler/XL-Fortran/cpp + +diff --git a/Help/release/dev/xlf-ninja.rst b/Help/release/dev/xlf-ninja.rst +new file mode 100644 +index 0000000000..916e713008 +--- /dev/null ++++ b/Help/release/dev/xlf-ninja.rst +@@ -0,0 +1,5 @@ ++xlf-ninja ++--------- ++ ++* The IBM XL Fortran compiler is now supported by the :generator:`Ninja` ++ generator. +diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake +index f7ef755aeb..0b3664c5de 100644 +--- a/Modules/CMakeDetermineCompilerId.cmake ++++ b/Modules/CMakeDetermineCompilerId.cmake +@@ -182,6 +182,10 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src) + message(STATUS "The ${lang} compiler identification is unknown") + endif() + ++ if(lang STREQUAL "Fortran" AND CMAKE_${lang}_COMPILER_ID STREQUAL "XL") ++ set(CMAKE_${lang}_XL_CPP "${CMAKE_${lang}_COMPILER_ID_CPP}" PARENT_SCOPE) ++ endif() ++ + set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE) + set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE) + set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE) +@@ -542,6 +546,12 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} + ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT + RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT + ) ++ if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "exec: [^\n]*\\((/[^,\n]*/cpp),CMakeFortranCompilerId.F") ++ set(_cpp "${CMAKE_MATCH_1}") ++ if(EXISTS "${_cpp}") ++ set(CMAKE_${lang}_COMPILER_ID_CPP "${_cpp}" PARENT_SCOPE) ++ endif() ++ endif() + endif() + + # Check the result of compilation. +diff --git a/Modules/CMakeDetermineFortranCompiler.cmake b/Modules/CMakeDetermineFortranCompiler.cmake +index 5ddd64fae8..e8505417d6 100644 +--- a/Modules/CMakeDetermineFortranCompiler.cmake ++++ b/Modules/CMakeDetermineFortranCompiler.cmake +@@ -271,6 +271,11 @@ include(CMakeFindBinUtils) + include(Compiler/${CMAKE_Fortran_COMPILER_ID}-FindBinUtils OPTIONAL) + unset(_CMAKE_PROCESSING_LANGUAGE) + ++if(CMAKE_Fortran_XL_CPP) ++ set(_SET_CMAKE_Fortran_XL_CPP ++ "set(CMAKE_Fortran_XL_CPP \"${CMAKE_Fortran_XL_CPP}\")") ++endif() ++ + if(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID) + set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID + "set(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID ${CMAKE_Fortran_COMPILER_ARCHITECTURE_ID})") +diff --git a/Modules/CMakeFortranCompiler.cmake.in b/Modules/CMakeFortranCompiler.cmake.in +index ae7b73ac4a..34f44aa542 100644 +--- a/Modules/CMakeFortranCompiler.cmake.in ++++ b/Modules/CMakeFortranCompiler.cmake.in +@@ -6,6 +6,7 @@ set(CMAKE_Fortran_COMPILER_WRAPPER "@CMAKE_Fortran_COMPILER_WRAPPER@") + set(CMAKE_Fortran_PLATFORM_ID "@CMAKE_Fortran_PLATFORM_ID@") + set(CMAKE_Fortran_SIMULATE_ID "@CMAKE_Fortran_SIMULATE_ID@") + set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@") ++@_SET_CMAKE_Fortran_XL_CPP@ + @_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID@ + @SET_MSVC_Fortran_ARCHITECTURE_ID@ + set(CMAKE_AR "@CMAKE_AR@") +diff --git a/Modules/Compiler/XL-Fortran.cmake b/Modules/Compiler/XL-Fortran.cmake +index c4fb09712a..1683dff4f0 100644 +--- a/Modules/Compiler/XL-Fortran.cmake ++++ b/Modules/Compiler/XL-Fortran.cmake +@@ -18,3 +18,7 @@ string(APPEND CMAKE_Fortran_FLAGS_INIT " -qthreaded -qhalt=e") + # xlf: 1501-214 (W) command option E reserved for future use - ignored + set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE) + set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE) ++ ++set(CMAKE_Fortran_PREPROCESS_SOURCE ++ " -qpreprocess -qnoobject -qsuppress=1517-020 -tF -B \"${CMAKE_CURRENT_LIST_DIR}/XL-Fortran/\" -WF,--cpp,\"${CMAKE_Fortran_XL_CPP}\",--out, " ++ ) +diff --git a/Modules/Compiler/XL-Fortran/cpp b/Modules/Compiler/XL-Fortran/cpp +new file mode 100755 +index 0000000000..1fd62c26a0 +--- /dev/null ++++ b/Modules/Compiler/XL-Fortran/cpp +@@ -0,0 +1,29 @@ ++#!/usr/bin/env bash ++ ++# Source file. ++src="$(printf %q "$1")" ++shift ++ ++# Output file the compiler expects. ++out="$(printf %q "$1")" ++shift ++ ++# Create the file the compiler expects. It will check syntax. ++>"$out" ++ ++cpp='cpp' ++opts='' ++while test "$#" != 0; do ++ case "$1" in ++ # Extract the option for the path to cpp. ++ --cpp) shift; cpp="$(printf %q "$1")" ;; ++ # Extract the option for our own output file. ++ --out) shift; out="$(printf %q "$1")" ;; ++ # Collect the rest of the command line. ++ *) opts="$opts $(printf %q "$1")" ;; ++ esac ++ shift ++done ++ ++# Execute the real preprocessor tool. ++eval "exec $cpp $src $out $opts" +-- +2.24.1 + diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index f2fa2290fb9..5e4b644e5b0 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -77,7 +77,7 @@ class Cmake(Package): # Fix builds with XLF + Ninja generator # https://gitlab.kitware.com/cmake/cmake/merge_requests/4075 - patch('https://gitlab.kitware.com/cmake/cmake/merge_requests/4075.patch', sha256="001736d791957225aadfc416b0cef915e8c8dcc04765b8e0fcbebf6058a05560", when="@3.15.5") + patch('fix-xlf-ninja-mr-4075.patch', sha256="42d8b2163a2f37a745800ec13a96c08a3a20d5e67af51031e51f63313d0dedd1", when="@3.15.5") # We default ownlibs to true because it greatly speeds up the CMake # build, and CMake is built frequently. Also, CMake is almost always From 5eed196f74f1589daa76a6fe5cd9ee862fadc9f0 Mon Sep 17 00:00:00 2001 From: "Dr. Christian Tacke" <58549698+ChristianTackeGSI@users.noreply.github.com> Date: Tue, 21 Jan 2020 20:14:38 +0100 Subject: [PATCH 08/11] Use util.url.join for URLs in GNU Mirrors / reorder Mirrors (#14395) * Reorder GNU mirrors (#14395) As @adamjstewart commented in #14395, GNU suggests to use their mirror. So reorder the mirror to the top. GNU Doc: https://www.gnu.org/prep/ftp.en.html * Use spack.util.url.join for URLs in GNU mirrors (#14395) One should not use os.path.join for URLs. This does only work on POSIX systems. Instead use spack.util.url.join. So every part in spack uses the same url joining method. --- lib/spack/spack/build_systems/gnu.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/spack/spack/build_systems/gnu.py b/lib/spack/spack/build_systems/gnu.py index f0e70f440f5..c5b5e74bb9e 100644 --- a/lib/spack/spack/build_systems/gnu.py +++ b/lib/spack/spack/build_systems/gnu.py @@ -3,8 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os.path - +import spack.util.url import spack.package @@ -15,8 +14,8 @@ class GNUMirrorPackage(spack.package.PackageBase): #: List of GNU mirrors used by Spack base_mirrors = [ - 'https://ftp.gnu.org/gnu', 'https://ftpmirror.gnu.org/', + 'https://ftp.gnu.org/gnu/', # Fall back to http if https didn't work (for instance because # Spack is bootstrapping curl) 'http://ftpmirror.gnu.org/' @@ -26,7 +25,8 @@ class GNUMirrorPackage(spack.package.PackageBase): def urls(self): self._ensure_gnu_mirror_path_is_set_or_raise() return [ - os.path.join(m, self.gnu_mirror_path) for m in self.base_mirrors + spack.util.url.join(m, self.gnu_mirror_path, resolve_href=True) + for m in self.base_mirrors ] def _ensure_gnu_mirror_path_is_set_or_raise(self): From 900161d1822f161f82767a81f6a6e46bb2f93e62 Mon Sep 17 00:00:00 2001 From: Glenn Johnson Date: Tue, 21 Jan 2020 15:24:39 -0600 Subject: [PATCH 09/11] Update and fix samtools (#14507) * Update and fix samtools This PR adds samtools-1.10 and sets the htlib directory so that the spack built htslib can be used. This PR also arranges the dependencies so that the htslib sequence is grouped on its own. Finally, the bzip2 dependency is removed and python and perl run dependencies are added. * Fix samtools when built with ncurses+termlib * The CI flake8 tests require lowercase variable Interestingly, this did not show up when I ran `spack flake8` locally. --- .../builtin/packages/samtools/package.py | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/var/spack/repos/builtin/packages/samtools/package.py b/var/spack/repos/builtin/packages/samtools/package.py index 0becd0104bf..ad1eb5e38d1 100644 --- a/var/spack/repos/builtin/packages/samtools/package.py +++ b/var/spack/repos/builtin/packages/samtools/package.py @@ -14,6 +14,7 @@ class Samtools(Package): homepage = "www.htslib.org" url = "https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2" + version('1.10', sha256='7b9ec5f05d61ec17bd9a82927e45d8ef37f813f79eb03fe06c88377f1bd03585') version('1.9', sha256='083f688d7070082411c72c27372104ed472ed7a620591d06f928e653ebc23482') version('1.8', sha256='c942bc1d9b85fd1b05ea79c5afd2805d489cd36b2c2d8517462682a4d779be16') version('1.7', sha256='e7b09673176aa32937abd80f95f432809e722f141b5342186dfef6a53df64ca1') @@ -23,27 +24,39 @@ class Samtools(Package): version('1.3.1', sha256='6c3d74355e9cf2d9b2e1460273285d154107659efa36a155704b1e4358b7d67e') version('1.2', sha256='420e7a4a107fe37619b9d300b6379452eb8eb04a4a9b65c3ec69de82ccc26daa') - depends_on('ncurses') - # htslib became standalone @1.3.1, must use corresponding version - depends_on('htslib@1.9', when='@1.9') - depends_on('htslib@1.8', when='@1.8') - depends_on('htslib@1.7', when='@1.7') - depends_on('htslib@1.6', when='@1.6') - depends_on('htslib@1.5', when='@1.5') - depends_on('htslib@1.4', when='@1.4') - depends_on('htslib@1.3.1', when='@1.3.1') depends_on('zlib') - depends_on('bzip2') + depends_on('ncurses') + depends_on('perl', type='run') + depends_on('python', type='run') + + # htslib became standalone @1.3.1, must use corresponding version + depends_on('htslib@1.10.2', when='@1.10') + depends_on('htslib@1.9', when='@1.9') + depends_on('htslib@1.8', when='@1.8') + depends_on('htslib@1.7', when='@1.7') + depends_on('htslib@1.6', when='@1.6') + depends_on('htslib@1.5', when='@1.5') + depends_on('htslib@1.4', when='@1.4') + depends_on('htslib@1.3.1', when='@1.3.1') def install(self, spec, prefix): + if '+termlib' in spec['ncurses']: + curses_lib = '-lncursesw -ltinfow' + else: + curses_lib = '-lncursesw' + if self.spec.version >= Version('1.3.1'): - configure('--prefix={0}'.format(prefix), '--with-ncurses', - 'CURSES_LIB=-lncursesw') + configure('--prefix={0}'.format(prefix), + '--with-htslib={0}'.format(self.spec['htslib'].prefix), + '--with-ncurses', + 'CURSES_LIB={0}'.format(curses_lib)) make() make('install') else: - make("prefix=%s" % prefix) - make("prefix=%s" % prefix, "install") + make('prefix={0}'.format(prefix), + 'LIBCURSES={0}'.format(curses_lib)) + make('prefix={0}'.format(prefix), 'install') + # Install dev headers and libs for legacy apps depending on them mkdir(prefix.include) mkdir(prefix.lib) From 796722aeeec4b95635dfd30659ab3fa0f8d57337 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 21 Jan 2020 15:29:50 -0600 Subject: [PATCH 10/11] Add py-scipy 1.2.3 (#14583) --- var/spack/repos/builtin/packages/py-scipy/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index 2ab260962da..5cbd2438f78 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -36,6 +36,7 @@ class PyScipy(PythonPackage): version('1.3.2', sha256='a03939b431994289f39373c57bbe452974a7da724ae7f9620a1beee575434da4') version('1.3.1', sha256='2643cfb46d97b7797d1dbdb6f3c23fe3402904e3c90e6facfe6a9b98d808c1b5') version('1.3.0', sha256='c3bb4bd2aca82fb498247deeac12265921fe231502a6bc6edea3ee7fe6c40a7a') + version('1.2.3', sha256='ecbe6413ca90b8e19f8475bfa303ac001e81b04ec600d17fa7f816271f7cca57') version('1.2.2', sha256='a4331e0b8dab1ff75d2c67b5158a8bb9a83c799d7140094dda936d876c7cfbb1') version('1.2.1', sha256='e085d1babcb419bbe58e2e805ac61924dac4ca45a07c9fa081144739e500aa3c') version('1.1.0', sha256='878352408424dffaa695ffedf2f9f92844e116686923ed9aa8626fc30d32cfd1') From 4d794d63b5ac3c667446c74d367fe4eb7f1e2caf Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Tue, 21 Jan 2020 15:09:41 -0800 Subject: [PATCH 11/11] python: add `debug` variant to enable pydebug (#14584) --- var/spack/repos/builtin/packages/python/package.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 151b56bb8d3..bdc4a64019f 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -70,6 +70,11 @@ class Python(AutotoolsPackage): extendable = True + variant( + 'debug', default=False, + description="debug build with extra checks (this is high overhead)" + ) + # --enable-shared is known to cause problems for some users on macOS # See http://bugs.python.org/issue29846 variant('shared', default=sys.platform != 'darwin', @@ -242,6 +247,11 @@ def configure_args(self): spec.satisfies('@2.7.12:2.8,3.5.2:', strict=True): config_args.append('--with-icc') + if '+debug' in spec: + config_args.append('--with-pydebug') + else: + config_args.append('--without-pydebug') + if '+shared' in spec: config_args.append('--enable-shared') else: