summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhishek Kulkarni <adkulkar@indiana.edu>2016-01-29 00:32:34 -0500
committerAbhishek Kulkarni <adkulkar@indiana.edu>2016-01-29 00:32:34 -0500
commit5907cc0de5d60b0266a04299cc560bead8edd05c (patch)
tree9ae0d8360af34efe7c65bee9f293384d6f2302d7
parent2bea7f8d69064f893a21cfc53f3d781b572e2f79 (diff)
parent9fb5ddbb4c4b2dc90027deb24ec4721018ebd3ae (diff)
downloadspack-5907cc0de5d60b0266a04299cc560bead8edd05c.tar.gz
spack-5907cc0de5d60b0266a04299cc560bead8edd05c.tar.bz2
spack-5907cc0de5d60b0266a04299cc560bead8edd05c.tar.xz
spack-5907cc0de5d60b0266a04299cc560bead8edd05c.zip
Merge remote-tracking branch 'upstream/develop' into develop
-rw-r--r--lib/spack/spack/cmd/md5.py33
-rw-r--r--var/spack/repos/builtin/packages/caliper/package.py2
-rw-r--r--var/spack/repos/builtin/packages/m4/package.py13
-rw-r--r--var/spack/repos/builtin/packages/parallel-netcdf/package.py20
4 files changed, 60 insertions, 8 deletions
diff --git a/lib/spack/spack/cmd/md5.py b/lib/spack/spack/cmd/md5.py
index ef1e4f3475..879ef9f7b7 100644
--- a/lib/spack/spack/cmd/md5.py
+++ b/lib/spack/spack/cmd/md5.py
@@ -23,15 +23,31 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
-import hashlib
import argparse
+import hashlib
+
+from contextlib import contextmanager
import llnl.util.tty as tty
from llnl.util.filesystem import *
import spack.util.crypto
+from spack.stage import Stage, FailedDownloadError
+
+description = "Calculate md5 checksums for files/urls."
-description = "Calculate md5 checksums for files."
+@contextmanager
+def stager(url):
+ _cwd = os.getcwd()
+ _stager = Stage(url)
+ try:
+ _stager.fetch()
+ yield _stager
+ except FailedDownloadError:
+ tty.msg("Failed to fetch %s" % url)
+ finally:
+ _stager.destroy()
+ os.chdir(_cwd) # the Stage class changes the current working dir so it has to be restored
def setup_parser(subparser):
setup_parser.parser = subparser
@@ -45,9 +61,12 @@ def md5(parser, args):
for f in args.files:
if not os.path.isfile(f):
- tty.die("Not a file: %s" % f)
- if not can_access(f):
- tty.die("Cannot read file: %s" % f)
+ with stager(f) as stage:
+ checksum = spack.util.crypto.checksum(hashlib.md5, stage.archive_file)
+ print "%s %s" % (checksum, f)
+ else:
+ if not can_access(f):
+ tty.die("Cannot read file: %s" % f)
- checksum = spack.util.crypto.checksum(hashlib.md5, f)
- print "%s %s" % (checksum, f)
+ checksum = spack.util.crypto.checksum(hashlib.md5, f)
+ print "%s %s" % (checksum, f)
diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py
index b14a562aa8..d51b4a4dd5 100644
--- a/var/spack/repos/builtin/packages/caliper/package.py
+++ b/var/spack/repos/builtin/packages/caliper/package.py
@@ -10,7 +10,7 @@ class Caliper(Package):
homepage = "https://github.com/LLNL/Caliper"
url = ""
- version('master', git='ssh://git@cz-stash.llnl.gov:7999/piper/caliper.git')
+ version('master', git='ssh://git@github.com:LLNL/Caliper.git')
variant('mpi', default=False, description='Enable MPI function wrappers.')
diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py
new file mode 100644
index 0000000000..5d76d8866b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/m4/package.py
@@ -0,0 +1,13 @@
+from spack import *
+
+class M4(Package):
+ """GNU M4 is an implementation of the traditional Unix macro processor."""
+ homepage = "https://www.gnu.org/software/m4/m4.html"
+ url = "ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz"
+
+ version('1.4.17', 'a5e9954b1dae036762f7b13673a2cf76')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
new file mode 100644
index 0000000000..62a8f7ca0b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
@@ -0,0 +1,20 @@
+from spack import *
+
+class ParallelNetcdf(Package):
+ """Parallel netCDF (PnetCDF) is a library providing high-performance
+ parallel I/O while still maintaining file-format compatibility with
+ Unidata's NetCDF."""
+
+ homepage = "https://trac.mcs.anl.gov/projects/parallel-netcdf"
+ url = "http://cucis.ece.northwestern.edu/projects/PnetCDF/Release/parallel-netcdf-1.6.1.tar.gz"
+
+ version('1.6.1', '62a094eb952f9d1e15f07d56e535052604f1ac34')
+
+ depends_on("m4")
+ depends_on("mpi")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix,
+ "--with-mpi=%s" % spec['mpi'].prefix)
+ make()
+ make("install")