Overhaul Spack's URL parsing (#2972)

* Remove fake URLs from Spack

* Ignore long lines for URLs that start with ftp:

* Preliminary changes to version regexes

* New redesign of version regexes

* Allow letters in version-only

* Fix detection of versions that end in Final

* Rearrange a few regexes and add examples

* Add tests for common download repositories

* Add test cases for common tarball naming schemes

* Finalize version regexes

* spack url test -> spack url summary

* Clean up comments

* Rearrange suffix checks

* Use query strings for name detection

* Remove no longer necessary url_for_version functions

* Strip off extraneous information after package name

* Add one more test

* Dot in square brackets does not need to be escaped

* Move renaming outside of parse_name_offset

* Fix versions for a couple more packages

* Fix flake8 and doc tests

* Correctly parse Python, Lua, and Bio++ package names

* Use effective URLs for mfem

* Add checksummed version to mitos

* Remove url_for_version from STAR-CCM+ package

* Revert changes to version numbers with underscores and dashes

* Fix name detection for tbb

* Correctly parse Ruby gems

* Reverted mfem back to shortened URLs.

* Updated instructions for better security

* Remove preferred=True from newest version

* Add tests for new `spack url list` flags

* Add tests for strip_name_suffixes

* Add unit tests for version separators

* Fix bugs related to parseable name but in parseable version

* Remove dead code, update docstring

* Ignore 'binary' at end of version string

* Remove platform from version

* Flip libedit version numbers

* Re-support weird NCO alpha/beta versions

* Rebase and remove one new fake URL

* Add / to beginning of regex to avoid picking up similarly named packages

* Ignore weird tar versions

* Fix bug in url parse --spider when no versions found

* Less strict version matching for spack versions

* Don't rename Python packages

* Be a little more selective, version must begin with a digit

* Re-add fake URLs

* Fix up several other packages

* Ignore more file endings

* Add parsing support for Miniconda

* Update tab completion

* XFAILS are now PASSES for 2 web tests
This commit is contained in:
Adam J. Stewart
2017-04-03 17:34:16 -05:00
committed by Todd Gamblin
parent 7e9777f294
commit 50df071ad9
80 changed files with 1357 additions and 839 deletions

View File

@@ -29,7 +29,7 @@ class Automake(AutotoolsPackage):
"""Automake -- make file builder part of autotools"""
homepage = 'http://www.gnu.org/software/automake/'
url = 'http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz'
url = 'http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz'
version('1.15', '716946a105ca228ab545fc37a70df3a3')
version('1.14.1', 'd052a3e884631b9c7892f2efce542d75')

View File

@@ -33,9 +33,6 @@ class Bib2xhtml(Package):
version('3.0-15-gf506', 'a26ba02fe0053bbbf2277bdf0acf8645')
def url_for_version(self, v):
return ('http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v%s.tar.gz' % v)
def install(self, spec, prefix):
# Add the bst include files to the install directory
bst_include = join_path(prefix.share, 'bib2xhtml')

View File

@@ -31,7 +31,7 @@ class Bison(AutotoolsPackage):
generalized LR (GLR) parser employing LALR(1) parser tables."""
homepage = "http://www.gnu.org/software/bison/"
url = "http://ftp.gnu.org/gnu/bison/bison-3.0.tar.gz"
url = "http://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz"
version('3.0.4', 'a586e11cd4aff49c3ff6d3b6a4c9ccf8')
version('2.7', 'ded660799e76fb1667d594de1f7a0da9')

View File

@@ -39,14 +39,9 @@
class BlastPlus(AutotoolsPackage):
"""Basic Local Alignment Search Tool."""
homepage = "http://blast.ncbi.nlm.nih.gov/"
url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.6.0/ncbi-blast-2.6.0+-src.tar.gz"
def url_for_version(self, version):
url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/{0}/ncbi-blast-{0}+-src.tar.gz"
return url.format(version)
version('2.6.0', 'c8ce8055b10c4d774d995f88c7cc6225')
version('2.2.30', 'f8e9a5eb368173142fe6867208b73715')

View File

@@ -141,14 +141,8 @@ class Boost(Package):
patch('xl_1_62_0_le.patch', when='@1.62.0%xl')
def url_for_version(self, version):
"""
Handle Boost's weird URLs,
which write the version two different ways.
"""
parts = [str(p) for p in Version(version)]
dots = ".".join(parts)
underscores = "_".join(parts)
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (dots, underscores)
url = "http://downloads.sourceforge.net/project/boost/boost/{0}/boost_{1}.tar.bz2"
return url.format(version.dotted, version.underscored)
def determine_toolset(self, spec):
if spec.satisfies("platform=darwin"):

View File

@@ -29,7 +29,10 @@
class Bowtie2(Package):
"""Bowtie 2 is an ultrafast and memory-efficient tool for aligning
sequencing reads to long reference sequences"""
homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml"
url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.3.1/bowtie2-2.3.1-source.zip"
version('2.3.1', 'b4efa22612e98e0c23de3d2c9f2f2478')
version('2.2.5', '51fa97a862d248d7ee660efc1147c75f')
@@ -38,10 +41,6 @@ class Bowtie2(Package):
patch('bowtie2-2.2.5.patch', when='@2.2.5', level=0)
patch('bowtie2-2.3.1.patch', when='@2.3.1', level=0)
def url_for_version(self, version):
url="http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/{0}/bowtie2-{0}-source.zip"
return url.format(version)
def install(self, spec, prefix):
make()
mkdirp(prefix.bin)

View File

@@ -31,19 +31,9 @@ class Cddlib(AutotoolsPackage):
Method of Motzkin et al. for generating all vertices (i.e. extreme points)
and extreme rays of a general convex polyhedron in R^d given by a system
of linear inequalities"""
homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/"
# This is the original download url. It is currently down [2016-08-23],
# but should be reinstated or updated once the issue is resolved.
# url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-094h.tar.gz"
url = "http://pkgs.fedoraproject.org/lookaside/pkgs/cddlib/cddlib-094h.tar.gz/1467d270860bbcb26d3ebae424690e7c/cddlib-094h.tar.gz"
def url_for_version(self, version):
# Since the commit id is part of the version, we can't
# auto-generate the string, and we need to explicitly list all
# known versions here. Currently, there is only one version.
if str(version) == '0.94h':
return "http://pkgs.fedoraproject.org/lookaside/pkgs/cddlib/cddlib-094h.tar.gz/1467d270860bbcb26d3ebae424690e7c/cddlib-094h.tar.gz"
raise InstallError("Unsupported version %s" % str(version))
homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/"
url = "ftp://ftp.math.ethz.ch/users/fukudak/cdd/cddlib-094h.tar.gz"
version('0.94h', '1467d270860bbcb26d3ebae424690e7c')
@@ -51,3 +41,7 @@ def url_for_version(self, version):
depends_on("gmp")
depends_on("libtool", type="build")
def url_for_version(self, version):
url = "ftp://ftp.math.ethz.ch/users/fukudak/cdd/cddlib-{0}.tar.gz"
return url.format(version.joined)

View File

@@ -30,9 +30,13 @@ class Cdo(Package):
Climate and NWP model Data. """
homepage = "https://code.zmaw.de/projects/cdo"
url = "https://code.zmaw.de/attachments/download/12760/cdo-1.7.2.tar.gz"
list_url = "https://code.zmaw.de/projects/cdo/files"
version('1.7.2', 'f08e4ce8739a4f2b63fc81a24db3ee31', url='https://code.zmaw.de/attachments/download/12760/cdo-1.7.2.tar.gz')
version('1.6.9', 'bf0997bf20e812f35e10188a930e24e2', url='https://code.zmaw.de/attachments/download/10198/cdo-1.6.9.tar.gz')
version('1.7.2', 'f08e4ce8739a4f2b63fc81a24db3ee31',
url='https://code.zmaw.de/attachments/download/12760/cdo-1.7.2.tar.gz')
version('1.6.9', 'bf0997bf20e812f35e10188a930e24e2',
url='https://code.zmaw.de/attachments/download/10198/cdo-1.6.9.tar.gz')
variant('szip', default=True, description='Enable szip compression for GRIB1')
variant('hdf5', default=False, description='Enable HDF5 support')
@@ -54,7 +58,7 @@ class Cdo(Package):
depends_on('proj', when='+proj')
depends_on('curl', when='+curl')
depends_on('fftw', when='+fftw')
depends_on('magics', when='+magics')
depends_on('magics', when='+magics')
def install(self, spec, prefix):
config_args = ["--prefix=" + prefix,

View File

@@ -31,6 +31,7 @@ class Cfitsio(AutotoolsPackage):
"""
homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/'
url = 'http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio3410.tar.gz'
version('3.410', '8a4a66fcdd816aae41768baa0b025552')
version('3.370', 'abebd2d02ba5b0503c633581e3bfa116')

View File

@@ -29,16 +29,13 @@ class Cppad(CMakePackage):
"""A Package for Differentiation of C++ Algorithms."""
homepage = "https://www.coin-or.org/CppAD/"
url = "http://www.coin-or.org/download/source/CppAD/cppad-20170114.gpl.tgz"
version('20170114', '565a534dc813fa1289764222cd8c11ea')
version('develop', git='https://github.com/coin-or/CppAD.git')
depends_on('cmake', type='build')
def url_for_version(self, version):
"""Handle version-based custom URLs."""
return "http://www.coin-or.org/download/source/CppAD/cppad-%s.gpl.tgz" % (version)
def cmake_args(self):
# This package does not obey CMAKE_INSTALL_PREFIX
args = [

View File

@@ -36,6 +36,7 @@ class Cryptopp(Package):
"""
homepage = "http://www.cryptopp.com"
url = "http://www.cryptopp.com/cryptopp563.zip"
version('5.6.3', '3c5b70e2ec98b7a24988734446242d07')
version('5.6.2', '7ed022585698df48e65ce9218f6c6a67')

View File

@@ -46,7 +46,6 @@ class Dakota(Package):
homepage = 'https://dakota.sandia.gov/'
url = 'https://dakota.sandia.gov/sites/default/files/distributions/public/dakota-6.3-public.src.tar.gz'
_url_str = 'https://dakota.sandia.gov/sites/default/files/distributions/public/dakota-{version}-public.src.tar.gz'
version('6.3', '05a58d209fae604af234c894c3f73f6d')
@@ -64,9 +63,6 @@ class Dakota(Package):
depends_on('boost')
depends_on('cmake', type='build')
def url_for_version(self, version):
return Dakota._url_str.format(version=version)
def install(self, spec, prefix):
options = []
options.extend(std_cmake_args)

View File

@@ -29,7 +29,7 @@ class Exonerate(Package):
"""Pairwise sequence alignment of DNA and proteins"""
homepage = "http://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate"
url = "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/exonerate-2.2.0.tar.gz"
url = "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/exonerate-2.4.0.tar.gz"
version('2.4.0', '126fbade003b80b663a1d530c56f1904')

View File

@@ -31,11 +31,10 @@ class Ferret(Package):
"""Ferret is an interactive computer visualization and analysis environment
designed to meet the needs of oceanographers and meteorologists
analyzing large and complex gridded data sets."""
homepage = "http://ferret.noaa.gov/Ferret/"
url = "ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.tar.gz"
homepage = "http://ferret.pmel.noaa.gov/Ferret/home"
url = "ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.v696.tar.gz"
version('6.96', '51722027c864369f41bab5751dfff8cc',
url="ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.tar.gz")
version('6.96', '51722027c864369f41bab5751dfff8cc')
depends_on("hdf5~mpi~fortran")
depends_on("netcdf~mpi")
@@ -43,6 +42,10 @@ class Ferret(Package):
depends_on("readline")
depends_on("zlib")
def url_for_version(self, version):
return "ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.v{0}.tar.gz".format(
version.joined)
def patch(self):
hdf5_prefix = self.spec['hdf5'].prefix
netcdff_prefix = self.spec['netcdf-fortran'].prefix

View File

@@ -32,7 +32,9 @@ class GdkPixbuf(AutotoolsPackage):
GTK+ 2 but it was split off into a separate package in
preparation for the change to GTK+ 3."""
homepage = "https://developer.gnome.org/gdk-pixbuf/"
url = "http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.31/gdk-pixbuf-2.31.1.tar.xz"
url = "http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.31/gdk-pixbuf-2.31.2.tar.xz"
list_url = "http://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/"
list_depth = 2
version('2.31.2', '6be6bbc4f356d4b79ab4226860ab8523')

View File

@@ -89,13 +89,6 @@ def patch(self):
r'# \1\2\3',
)
@when('@1.5.0:')
def patch(self):
pass
def url_for_version(self, version):
return "https://storage.googleapis.com/golang/go{0}.src.tar.gz".format(version)
def install(self, spec, prefix):
bash = which('bash')
with working_dir('src'):

View File

@@ -52,10 +52,6 @@ class Gource(AutotoolsPackage):
parallel = False
force_autoreconf = True
def url_for_version(self, version):
tmp = 'https://github.com/acaudwell/Gource/releases/download/gource-{0}/gource-{0}.tar.gz' # NOQA: ignore=E501
return tmp.format(version.dotted)
def configure_args(self):
spec = self.spec
return [

View File

@@ -29,9 +29,9 @@ class Ibmisc(CMakePackage):
"""Misc. reusable utilities used by IceBin."""
homepage = "https://github.com/citibeth/ibmisc"
url = "https://github.com/citibeth/ibmisc/tarball/123"
url = "https://github.com/citibeth/ibmisc/archive/v0.1.0.tar.gz"
version('0.1.0', '12f2a32432a11db48e00217df18e59fa')
version('0.1.0', '18c63db3e466c5a6fc2db3f903d06ecb')
variant('everytrace', default=False,
description='Report errors through Everytrace')

View File

@@ -30,7 +30,7 @@ class Icet(CMakePackage):
sort-last parallel rendering library."""
homepage = "http://icet.sandia.gov"
url = "https://example.com/icet-1.2.3.tar.gz"
url = "https://gitlab.kitware.com/icet/icet/repository/archive.tar.bz2?ref=IceT-2.1.1"
version('develop', branch='master',
git='https://gitlab.kitware.com/icet/icet.git')
@@ -38,9 +38,5 @@ class Icet(CMakePackage):
depends_on('mpi')
def url_for_version(self, version):
return ("https://gitlab.kitware.com/icet/icet/repository/"
"archive.tar.bz2?ref=IceT-{0}".format(version.dotted))
def cmake_args(self):
return ['-DICET_USE_OPENGL:BOOL=OFF']

View File

@@ -45,9 +45,6 @@ class ImageMagick(Package):
depends_on('ghostscript')
depends_on('ghostscript-fonts')
def url_for_version(self, version):
return "https://github.com/ImageMagick/ImageMagick/archive/{0}.tar.gz".format(version)
def install(self, spec, prefix):
gs_font_dir = join_path(spec['ghostscript-fonts'].prefix.share, "font")
configure('--prefix={0}'.format(prefix),

View File

@@ -45,10 +45,10 @@ class Jdk(Package):
'-H', # specify required License Agreement cookie
'Cookie: oraclelicense=accept-securebackup-cookie']
version('8u66-linux-x64', '88f31f3d642c3287134297b8c10e61bf',
version('8u66', '88f31f3d642c3287134297b8c10e61bf',
url="http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz",
curl_options=curl_options)
version('8u92-linux-x64', '65a1cc17ea362453a6e0eb4f13be76e4',
version('8u92', '65a1cc17ea362453a6e0eb4f13be76e4',
url="http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-linux-x64.tar.gz",
curl_options=curl_options)

View File

@@ -30,7 +30,11 @@ class Libedit(AutotoolsPackage):
homepage = "http://thrysoee.dk/editline/"
url = "http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz"
version('3.1', '43cdb5df3061d78b5e9d59109871b4f6',
url="http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz")
version('3.1-20160903', '0467d27684c453a351fbcefebbcb16a3')
version('3.1-20150325', '43cdb5df3061d78b5e9d59109871b4f6')
depends_on('ncurses')
def url_for_version(self, version):
url = "http://thrysoee.dk/editline/libedit-{0}-{1}.tar.gz"
return url.format(version[-1], version.up_to(-1))

View File

@@ -56,7 +56,3 @@ class Libgd(AutotoolsPackage):
depends_on('libpng')
depends_on('libtiff')
depends_on('fontconfig')
def url_for_version(self, version):
url = "https://github.com/libgd/libgd/releases/download/gd-{0}/libgd-{0}.tar.gz"
return url.format(version)

View File

@@ -30,6 +30,7 @@ class Libsodium(AutotoolsPackage):
decryption, signatures, password hashing and more."""
homepage = "https://download.libsodium.org/doc/"
url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.11.tar.gz"
list_url = "https://download.libsodium.org/libsodium/releases/old"
version('1.0.11', 'b58928d035064b2a46fb564937b83540')
version('1.0.10', 'ea89dcbbda0b2b6ff6a1c476231870dd')

View File

@@ -31,9 +31,9 @@ class Libxstream(Package):
conditions.'''
homepage = 'https://github.com/hfp/libxstream'
url = 'https://github.com/hfp/libxstream.git'
url = 'https://github.com/hfp/libxstream/archive/0.9.0.tar.gz'
version('0.9.0', git='https://github.com/hfp/libxstream.git')
version('0.9.0', 'fd74b7cf5f145ff4925d91be2809571c')
def patch(self):
kwargs = {'ignore_absent': False, 'backup': True, 'string': True}

View File

@@ -30,6 +30,8 @@ class Meep(Package):
software package developed at MIT to model electromagnetic systems."""
homepage = "http://ab-initio.mit.edu/wiki/index.php/Meep"
url = "http://ab-initio.mit.edu/meep/meep-1.3.tar.gz"
list_url = "http://ab-initio.mit.edu/meep/old"
version('1.3', '18a5b9e18008627a0411087e0bb60db5')
version('1.2.1', '9be2e743c3a832ae922de9d955d016c5')

View File

@@ -37,7 +37,8 @@ class Metis(Package):
partitioning schemes."""
homepage = "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
base_url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis"
url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz"
list_url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD"
version('5.1.0', '5465e67079419a69e0116de24fce58fe')
version('5.0.2', 'acb521a4e8c2e6dd559a7f9abd0468c5')
@@ -55,12 +56,11 @@ class Metis(Package):
patch('install_gklib_defs_rename.patch', when='@5:')
def url_for_version(self, version):
verdir = 'OLD/' if version < Version('4.0.3') else ''
return '%s/%smetis-%s.tar.gz' % (Metis.base_url, verdir, version)
@when('@:4')
def patch(self):
pass
url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis"
if version < Version('4.0.3'):
url += "/OLD"
url += "/metis-{0}.tar.gz".format(version)
return url
@when('@5:')
def patch(self):
@@ -84,7 +84,7 @@ def patch(self):
filter_file('#define MAX_JBUFS 128', '#define MAX_JBUFS 24',
join_path(source_path, 'GKlib', 'error.c'))
@when('@:4')
@when('@:4') # noqa: F811
def install(self, spec, prefix):
# Process library spec and options
if any('+{0}'.format(v) in spec for v in ['gdb', 'int64', 'real64']):
@@ -175,7 +175,7 @@ def install(self, spec, prefix):
Executable(test_bin('mesh2dual'))(test_graph('metis.mesh'))
"""
@when('@5:')
@when('@5:') # noqa: F811
def install(self, spec, prefix):
source_directory = self.stage.source_path
build_directory = join_path(source_directory, 'build')
@@ -187,7 +187,7 @@ def install(self, spec, prefix):
if '+shared' in spec:
options.append('-DSHARED:BOOL=ON')
else:
# Remove all RPATH options
# Remove all RPATH options
# (RPATHxxx options somehow trigger cmake to link dynamically)
rpath_options = []
for o in options:

View File

@@ -31,15 +31,32 @@ class Mfem(Package):
homepage = 'http://www.mfem.org'
url = 'https://github.com/mfem/mfem'
# mfem is downloaded from a URL shortener at request of upstream
# author Tzanio Kolev <tzanio@llnl.gov>. See here:
# https://github.com/mfem/mfem/issues/53
#
# The following procedure should be used to verify security when a
# new verison is added:
#
# 1. Verify that no checksums on old versions have changed.
#
# 2. Verify that the shortened URL for the new version is listed at:
# http://mfem.org/download/
#
# 3. Use http://getlinkinfo.com or similar to verify that the
# underling download link for the latest version comes has the
# prefix: http://mfem.github.io/releases
#
# If this quick verification procedure fails, additional discussion
# will be required to verify the new version.
version('3.2',
'2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340',
url='http://goo.gl/Y9T75B', preferred=True, extension='.tar.gz')
url='http://goo.gl/Y9T75B', extension='.tar.gz')
version('3.1',
'841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
url='http://goo.gl/xrScXn', extension='.tar.gz')
# version('3.1', git='https://github.com/mfem/mfem.git',
# commit='dbae60fe32e071989b52efaaf59d7d0eb2a3b574')
variant('metis', default=False, description='Activate support for metis')
variant('hypre', default=False, description='Activate support for hypre')

View File

@@ -30,13 +30,12 @@ class Mitos(Package):
performance data to view with MemAxes"""
homepage = "https://github.com/llnl/Mitos"
url = "https://github.com/llnl/Mitos"
url = "https://github.com/LLNL/Mitos/archive/v0.9.1.tar.gz"
version('0.9.2',
git='https://github.com/llnl/Mitos.git',
commit='8cb143a2e8c00353ff531a781a9ca0992b0aaa3d')
version('0.9.1', git='https://github.com/llnl/Mitos.git', tag='v0.9.1')
version('0.9.1', 'c6cb57f3cae54f5157affd97ef7ef79e')
depends_on('dyninst@8.2.1:')
depends_on('hwloc')

View File

@@ -35,7 +35,7 @@ class Moab(Package):
mesh in chunks rather than through individual entities, while also
versatile enough to support individual entity access."""
homepage = "https://bitbucket.org/fathomteam/moab"
url = "http://ftp.mcs.anl.gov/pub/fathom/moab-4.6.3.tar.gz"
url = "http://ftp.mcs.anl.gov/pub/fathom/moab-4.9.1.tar.gz"
version('4.9.1', '19cc2189fa266181ad9109b18d0b2ab8')
version('4.9.0', '40695d0a159040683cfa05586ad4a7c2')

View File

@@ -41,9 +41,6 @@ class Mxml(AutotoolsPackage):
version('2.6', '68977789ae64985dddbd1a1a1652642e')
version('2.5', 'f706377fba630b39fa02fd63642b17e5')
def url_for_version(self, version):
return "https://github.com/michaelrsweet/mxml/releases/download/release-{0}/mxml-{0}.tar.gz".format(version)
# module swap PrgEnv-intel PrgEnv-$COMP
# (Can use whatever compiler you want to use)
# Case statement to change CC and CXX flags

View File

@@ -30,7 +30,7 @@ class Nettle(AutotoolsPackage):
that is designed to fit easily in many contexts."""
homepage = "https://www.lysator.liu.se/~nisse/nettle/"
url = "http://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz"
url = "http://ftp.gnu.org/gnu/nettle/nettle-3.2.tar.gz"
version('3.2', 'afb15b4764ebf1b4e6d06c62bd4d29e4')
version('2.7.1', '003d5147911317931dd453520eb234a5')

View File

@@ -29,6 +29,7 @@ class Nextflow(Package):
"""Data-driven computational pipelines"""
homepage = "http://www.nextflow.io"
url = "https://github.com/nextflow-io/nextflow/releases/download/v0.24.1/nextflow"
version('0.24.1', '80ec8c4fe8e766e0bdd1371a50410d1d',
expand=False)
@@ -39,10 +40,6 @@ class Nextflow(Package):
depends_on('jdk')
def url_for_version(self, version):
base_url = 'https://github.com/nextflow-io/nextflow/releases/download/v{0}/nextflow'
return base_url.format(version)
def install(self, spec, prefix):
mkdirp(prefix.bin)
install("nextflow", join_path(prefix.bin, "nextflow"))

View File

@@ -32,6 +32,7 @@ class Oce(Package):
Open CASCADE library.
"""
homepage = "https://github.com/tpaviot/oce"
url = "https://github.com/tpaviot/oce/archive/OCE-0.18.tar.gz"
version('0.18', '226e45e77c16a4a6e127c71fefcd171410703960ae75c7ecc7eb68895446a993')
version('0.17.2', 'bf2226be4cd192606af677cf178088e5')
@@ -46,10 +47,6 @@ class Oce(Package):
depends_on('cmake@2.8:', type='build')
depends_on('tbb', when='+tbb')
def url_for_version(self, version):
return 'https://github.com/tpaviot/oce/archive/OCE-%s.tar.gz' % (
version.dotted)
# There is a bug in OCE which appears with Clang (version?) or GCC 6.0
# and has to do with compiler optimization, see
# https://github.com/tpaviot/oce/issues/576

View File

@@ -30,17 +30,11 @@ class Octopus(Package):
theory code."""
homepage = "http://www.tddft.org/programs/octopus/"
base_url = "http://www.tddft.org/programs/octopus/down.php?file="
url = "http://www.tddft.org/programs/octopus/down.php?file=6.0/octopus-6.0.tar.gz"
version('6.0', '5d1168c2a8d7fd9cb9492eaebaa7182e')
version('5.0.1', '2b6392ab67b843f9d4ca7413fc07e822')
# Sample url is:
# "http://www.tddft.org/programs/octopus/down.php?file=5.0.1/octopus-5.0.1.tar.gz"
def url_for_version(self, version):
return '{0}/{1}/octopus-{1}.tar.gz'.format(Octopus.base_url,
version.dotted)
variant('scalapack', default=False,
description='Compile with Scalapack')
variant('metis', default=True,

View File

@@ -43,7 +43,3 @@ class Openjpeg(CMakePackage):
version('2.0', 'cdf266530fee8af87454f15feb619609')
version('1.5.2', '545f98923430369a6b046ef3632ef95c')
version('1.5.1', 'd774e4b5a0db5f0f171c4fc0aabfa14e')
def url_for_version(self, version):
fmt = 'https://github.com/uclouvain/openjpeg/archive/version.{0}.tar.gz'
return fmt.format(version.dotted)

View File

@@ -29,9 +29,9 @@
class Panda(Package):
"""PANDA: Parallel AdjaceNcy Decomposition Algorithm"""
homepage = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/index.html"
url = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/downloads/current_panda.tar"
url = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/downloads/panda-2016-03-07.tar"
version('current', 'b06dc312ee56e13eefea9c915b70fcef')
version('2016-03-07', 'b06dc312ee56e13eefea9c915b70fcef')
# Note: Panda can also be built without MPI support

View File

@@ -33,7 +33,8 @@ class Parmetis(Package):
computing fill-reducing orderings of sparse matrices."""
homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview'
base_url = 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis'
url = 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz'
list_url = 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD'
version('4.0.3', 'f69c479586bf6bb7aff6a9bc0c739628')
version('4.0.2', '0912a953da5bb9b5e5e10542298ffdce')
@@ -54,8 +55,11 @@ class Parmetis(Package):
patch('pkg-parmetis-82409d68aa1d6cbc70740d0f35024aae17f7d5cb.patch')
def url_for_version(self, version):
verdir = 'OLD/' if version < Version('3.2.0') else ''
return '%s/%sparmetis-%s.tar.gz' % (Parmetis.base_url, verdir, version)
url = 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis'
if version < Version('3.2.0'):
url += '/OLD'
url += '/parmetis-{0}.tar.gz'.format(version)
return url
def install(self, spec, prefix):
source_directory = self.stage.source_path
@@ -72,7 +76,7 @@ def install(self, spec, prefix):
if '+shared' in spec:
options.append('-DSHARED:BOOL=ON')
else:
# Remove all RPATH options
# Remove all RPATH options
# (RPATHxxx options somehow trigger cmake to link dynamically)
rpath_options = []
for o in options:

View File

@@ -29,7 +29,7 @@ class Prank(Package):
"""A powerful multiple sequence alignment browser."""
homepage = "http://wasabiapp.org/software/prank/"
url = "http://wasabiapp.org/download/prank/prank.source.140603.tgz"
url = "http://wasabiapp.org/download/prank/prank.source.150803.tgz"
version('150803', '71ac2659e91c385c96473712c0a23e8a')

View File

@@ -30,10 +30,10 @@ class PyAutopep8(PythonPackage):
PEP 8 style guide."""
homepage = "https://github.com/hhatto/autopep8"
url = "https://github.com/hhatto/autopep8/archive/v1.2.4.tar.gz"
url = "https://pypi.io/packages/source/a/autopep8/autopep8-1.2.4.tar.gz"
version('1.2.4', '0458db85159a9e1b45f3e71ce6c158da')
version('1.2.2', 'def3d023fc9dfd1b7113602e965ad8e1')
version('1.2.4', 'fcea19c0c5e505b425e2a78afb771f5c')
version('1.2.2', '3d97f9c89d14a0975bffd32a2c61c36c')
extends('python', ignore='bin/pep8')
depends_on('python@2.6:2.7,3.2:')
@@ -41,10 +41,3 @@ class PyAutopep8(PythonPackage):
depends_on('py-pycodestyle@1.5.7:1.7.0', type=('build', 'run'))
depends_on('py-setuptools', type='build')
def url_for_version(self, version):
url = "https://github.com/hhatto/autopep8/archive/{0}{1}.tar.gz"
if version >= Version('1.2.3'):
return url.format('v', version)
else:
return url.format('ver', version)

View File

@@ -30,10 +30,9 @@ class PyCdo(PythonPackage):
Operators from Python."""
homepage = "https://pypi.python.org/pypi/cdo"
url = "https://pypi.python.org/packages/sources/c/cdo/cdo-1.3.2.tar.gz"
url = "https://pypi.io/packages/source/c/cdo/cdo-1.3.2.tar.gz"
version('1.3.2', '4b3686ec1b9b891f166c1c466c6db745',
url="https://pypi.python.org/packages/d6/13/908e7c1451e1f5fb68405f341cdcb3196a16952ebfe1f172cb788f864aa9/cdo-1.3.2.tar.gz")
version('1.3.2', '4b3686ec1b9b891f166c1c466c6db745')
depends_on('cdo')

View File

@@ -50,7 +50,3 @@ class PyMarkdown(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.8,3.2:3.4')
def url_for_version(self, version):
base_url = "https://github.com/waylan/Python-Markdown/archive"
return "{0}/{1}-final.tar.gz".format(base_url, version)

View File

@@ -32,9 +32,8 @@ class PyProj(PythonPackage):
# This is not a tagged release of pyproj.
# The changes in this "version" fix some bugs, especially with Python3 use.
version('1.9.5.1.1', 'd035e4bc704d136db79b43ab371b27d2',
url='https://www.github.com/jswhit/pyproj/tarball/0be612cc9f972e38b50a90c946a9b353e2ab140f')
version('1.9.5.1.1', git='https://www.github.com/jswhit/pyproj.git',
commit='0be612cc9f972e38b50a90c946a9b353e2ab140f')
version('1.9.5.1', 'a4b80d7170fc82aee363d7f980279835')
depends_on('py-cython', type='build')

View File

@@ -38,6 +38,3 @@ class PyPypar(PythonPackage):
depends_on('py-numpy', type=('build', 'run'))
build_directory = 'source'
def url_for_version(self, version):
return "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pypar/pypar-%s.tgz" % version

View File

@@ -28,22 +28,9 @@
class PyRtree(PythonPackage):
"""Python interface to the RTREE.4 Library."""
homepage = "http://toblerity.org/rtree/"
url = "https://github.com/Toblerity/rtree/tarball/0.8.2"
url = "https://pypi.io/packages/source/R/Rtree/Rtree-0.8.3.tar.gz"
# Not an official release yet. But changes in here are required
# to work with Spack. As it does with all packages, Spack
# installs libspatialindex in a non-system location. Without the
# changes in this fork, py-rtree requires an environment variables
# to be set *at runtime*, in order to find libspatialindex. That
# is not feasible within the Spack worldview.
version('0.8.2.2', 'b1fe96a73153db49ea6ce45a063d82cb',
url='https://github.com/citibeth/rtree/tarball/95a678cc7350857a1bb631bc41254efcd1fc0a0d')
version('0.8.2.1', '394696ca849dd9f3a5ef24fb02a41ef4',
url='https://github.com/citibeth/rtree/tarball/3a87d86f66a3955676b2507d3bf424ade938a22b')
# Does not work with Spack
# version('0.8.2', '593c7ac6babc397b8ba58f1636c1e0a0')
version('0.8.3', 'a27cb05a85eed0a3605c45ebccc432f8')
depends_on('py-setuptools', type='build')
depends_on('libspatialindex')

View File

@@ -29,7 +29,7 @@ class RLava(RPackage):
"""Estimation and simulation of latent variable models."""
homepage = "https://cran.r-project.org/package=lava"
url = "https://cran.r-project.org/src/contrib/lava_1.4.6.tar.gz"
url = "https://cran.r-project.org/src/contrib/lava_1.4.7.tar.gz"
list_url = "https://cran.r-project.org/src/contrib/Archive/lava"
version('1.4.7', '28039248a7039ba9281d172e4dbf9543')

View File

@@ -30,7 +30,7 @@
class Root(Package):
"""ROOT is a data analysis framework."""
homepage = "https://root.cern.ch"
url = "https://root.cern.ch/download/root_v6.07.02.source.tar.gz"
url = "https://root.cern.ch/download/root_v6.06.06.source.tar.gz"
version('6.06.06', '4308449892210c8d36e36924261fea26')
version('6.06.04', '55a2f98dd4cea79c9c4e32407c2d6d17')
@@ -83,7 +83,3 @@ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('ROOTSYS', self.prefix)
spack_env.set('ROOT_VERSION', 'v6')
spack_env.prepend_path('PYTHONPATH', self.prefix.lib)
def url_for_version(self, version):
"""Handle ROOT's unusual version string."""
return "https://root.cern.ch/download/root_v%s.source.tar.gz" % version

View File

@@ -35,10 +35,11 @@ class Rose(Package):
(Developed at Lawrence Livermore National Lab)"""
homepage = "http://rosecompiler.org/"
url = "https://github.com/rose-compiler/edg4x-rose"
url = "https://github.com/rose-compiler/rose/archive/v0.9.7.tar.gz"
version('0.9.7', 'e14ce5250078df4b09f4f40559d46c75')
version('master', branch='master',
git='https://github.com/rose-compiler/edg4x-rose.git')
git='https://github.com/rose-compiler/rose.git')
patch('add_spack_compiler_recognition.patch')
@@ -46,7 +47,7 @@ class Rose(Package):
depends_on("automake@1.14", type='build')
depends_on("libtool@2.4", type='build')
depends_on("boost@1.54.0")
depends_on("jdk@8u25-linux-x64")
depends_on("jdk@8u25")
def install(self, spec, prefix):
# Bootstrap with autotools

View File

@@ -29,9 +29,9 @@
class RustBindgen(Package):
"""The rust programming language toolchain"""
homepage = "http://www.rust-lang.org"
url = "https://github.com/crabtw/rust-bindgen"
url = "https://github.com/servo/rust-bindgen/archive/v0.20.5.tar.gz"
version('0.16', tag='0.16', git='https://github.com/crabtw/rust-bindgen')
version('0.20.5', '3e4d70a5bec540324fdd95bc9e82bebc')
extends("rust")
depends_on("llvm")

View File

@@ -32,14 +32,11 @@ class Scorep(Package):
"""
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz"
url = "http://www.vi-hps.org/upload/packages/scorep/scorep-2.0.2.tar.gz"
version('2.0.2', '8f00e79e1b5b96e511c5ebecd10b2888',
url='http://www.vi-hps.org/upload/packages/scorep/scorep-2.0.2.tar.gz')
version('1.4.2', '3b9a042b13bdd5836452354e6567f71e',
url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.4.2.tar.gz')
version('1.3', '9db6f957b7f51fa01377a9537867a55c',
url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
version('2.0.2', '8f00e79e1b5b96e511c5ebecd10b2888')
version('1.4.2', '3b9a042b13bdd5836452354e6567f71e')
version('1.3', '9db6f957b7f51fa01377a9537867a55c')
##########
# Dependencies for SCORE-P are quite tight. See the homepage for more

View File

@@ -31,8 +31,7 @@ class Scotch(Package):
partitioning, graph clustering, and sparse matrix ordering."""
homepage = "http://www.labri.fr/perso/pelegrin/scotch/"
url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.3.tar.gz" # noqa: E501
base_url = "http://gforge.inria.fr/frs/download.php/latestfile/298"
url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.4.tar.gz"
list_url = "http://gforge.inria.fr/frs/?group_id=248"
version('6.0.4', 'd58b825eb95e1db77efe8c6ff42d329f')
@@ -71,12 +70,10 @@ class Scotch(Package):
# from the Scotch hosting site. These alternative archives include a
# superset of the behavior in their default counterparts, so we choose to
# always grab these versions for older Scotch versions for simplicity.
def url_for_version(self, version):
return super(Scotch, self).url_for_version(version)
@when('@:6.0.0')
def url_for_version(self, version):
return '%s/scotch_%s_esmumps.tar.gz' % (Scotch.base_url, version)
url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_{0}_esmumps.tar.gz"
return url.format(version)
def patch(self):
self.configure()

View File

@@ -30,7 +30,7 @@ class Silo(Package):
data to binary, disk files."""
homepage = "http://wci.llnl.gov/simulation/computer-codes/silo"
base_url = "https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo"
url = "https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo/silo-4.10.2/silo-4.10.2.tar.gz"
version('4.10.2', '9ceac777a2f2469ac8cef40f4fab49c8')
version('4.9', 'a83eda4f06761a86726e918fc55e782a')
@@ -67,6 +67,3 @@ def install(self, spec, prefix):
make()
make('install')
def url_for_version(self, version):
return '%s/silo-%s/silo-%s.tar.gz' % (Silo.base_url, version, version)

View File

@@ -31,6 +31,7 @@ class StarCcmPlus(Package):
"""STAR-CCM+ (Computational Continuum Mechanics) CFD solver."""
homepage = "http://mdx.plm.automation.siemens.com/star-ccm-plus"
url = "file://{0}/STAR-CCM+11.06.010_02_linux-x86_64.tar.gz".format(os.getcwd())
version('11.06.010_02', 'd349c6ac8293d8e6e7a53533d695588f')
@@ -40,10 +41,6 @@ class StarCcmPlus(Package):
license_required = True
license_vars = ['CDLMD_LICENSE_FILE', 'LM_LICENSE_FILE']
def url_for_version(self, version):
return "file://{0}/STAR-CCM+{1}_linux-x86_64.tar.gz".format(
os.getcwd(), version)
def install(self, spec, prefix):
# There is a known issue with the LaunchAnywhere application.
# Specifically, it cannot handle long prompts or prompts

View File

@@ -33,8 +33,8 @@ class SublimeText(Package):
homepage = "http://www.sublimetext.com/"
url = "https://download.sublimetext.com/sublime_text_3_build_3126_x64.tar.bz2"
version('3126', 'acc34252b0ea7dff1f581c5db1564dcb')
version('2.0.2', '699cd26d7fe0bada29eb1b2cd7b50e4b')
version('3_build_3126', 'acc34252b0ea7dff1f581c5db1564dcb')
version('2.0.2', '699cd26d7fe0bada29eb1b2cd7b50e4b')
# Sublime text comes as a pre-compiled binary.
# Since we can't link to Spack packages, we'll just have to

View File

@@ -34,6 +34,7 @@ class Tcl(AutotoolsPackage):
that is truly cross platform, easily deployed and highly
extensible."""
homepage = "http://www.tcl.tk"
url = "http://prdownloads.sourceforge.net/tcl/tcl8.6.5-src.tar.gz"
version('8.6.6', '5193aea8107839a79df8ac709552ecb7')
version('8.6.5', '0e6426a4ca9401825fbc6ecf3d89a326')
@@ -45,10 +46,6 @@ class Tcl(AutotoolsPackage):
configure_directory = 'unix'
def url_for_version(self, version):
base_url = 'http://prdownloads.sourceforge.net/tcl'
return '{0}/tcl{1}-src.tar.gz'.format(base_url, version)
def setup_environment(self, spack_env, run_env):
# When using Tkinter from within spack provided python+tk, python
# will not be able to find Tcl/Tk unless TCL_LIBRARY is set.

View File

@@ -34,7 +34,7 @@ class Tetgen(Package):
boundary conforming Delaunay meshes, and Voronoi paritions.
"""
homepage = "http://www.tetgen.org"
homepage = "http://wias-berlin.de/software/tetgen/"
version('1.5.0', '3b9fd9cdec121e52527b0308f7aad5c1', url='http://www.tetgen.org/1.5/src/tetgen1.5.0.tar.gz')
version('1.4.3', 'd6a4bcdde2ac804f7ec66c29dcb63c18', url='http://www.tetgen.org/files/tetgen1.4.3.tar.gz')

View File

@@ -34,6 +34,10 @@ class Tinyxml(CMakePackage):
version('2.6.2', 'cba3f50dd657cb1434674a03b21394df9913d764')
def url_for_version(self, version):
url = "https://sourceforge.net/projects/tinyxml/files/tinyxml/{0}/tinyxml_{1}.tar.gz"
return url.format(version.dotted, version.underscored)
def patch(self):
copyfile(join_path(os.path.dirname(__file__),
"CMakeLists.txt"), "CMakeLists.txt")

View File

@@ -33,6 +33,7 @@ class Tk(AutotoolsPackage):
applications that run unchanged across Windows, Mac OS X, Linux
and more."""
homepage = "http://www.tcl.tk"
url = "http://prdownloads.sourceforge.net/tcl/tk8.6.5-src.tar.gz"
version('8.6.6', 'dd7dbb3a6523c42d05f6ab6e86096e99')
version('8.6.5', '11dbbd425c3e0201f20d6a51482ce6c4')
@@ -43,10 +44,6 @@ class Tk(AutotoolsPackage):
configure_directory = 'unix'
def url_for_version(self, version):
base_url = "http://prdownloads.sourceforge.net/tcl"
return "{0}/tk{1}-src.tar.gz".format(base_url, version)
def setup_environment(self, spack_env, run_env):
# When using Tkinter from within spack provided python+tk, python
# will not be able to find Tcl/Tk unless TK_LIBRARY is set.

View File

@@ -44,7 +44,7 @@ class Trilinos(CMakePackage):
A unique design feature of Trilinos is its focus on packages.
"""
homepage = "https://trilinos.org/"
base_url = "https://github.com/trilinos/Trilinos/archive"
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-12-10-1.tar.gz"
version('develop',
git='https://github.com/trilinos/Trilinos.git', tag='develop')
@@ -63,10 +63,6 @@ class Trilinos(CMakePackage):
version('11.14.2', 'e7c3cdbbfe3279a8a68838b873ad6d51')
version('11.14.1', 'b7760b142eef66c79ed13de7c9560f81')
def url_for_version(self, version):
return '%s/trilinos-release-%s.tar.gz' % \
(Trilinos.base_url, version.dashed)
variant('xsdkflags', default=False,
description='Compile using the default xSDK configuration')
variant('metis', default=True,
@@ -125,6 +121,10 @@ def url_for_version(self, version):
patch('umfpack_from_suitesparse.patch', when='@:12.8.1')
def url_for_version(self, version):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"
return url.format(version.dashed)
# check that the combination of variants makes sense
def variants_check(self):
if '+superlu-dist' in self.spec and self.spec.satisfies('@:11.4.3'):

View File

@@ -34,7 +34,7 @@ class Unison(Package):
other."""
homepage = "https://www.cis.upenn.edu/~bcpierce/unison/"
url = "https://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.3.tar.gz"
url = "https://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.4.tar.gz"
version('2.48.4', '5334b78c7e68169df7de95f4c6c4b60f')

View File

@@ -31,19 +31,10 @@ class Voropp(MakefilePackage):
scientific fields."""
homepage = "http://math.lbl.gov/voro++/about.html"
# This url is wrong but it passes the test the ++ make the url parser fail,
# the correct url is constructed by url_for_version that has to be used in
# any case due to the difference between the package name and the url
url = "http://math.lbl.gov/voropp/download/dir/voropp-0.4.6.tar.gz"
url = "http://math.lbl.gov/voro++/download/dir/voro++-0.4.6.tar.gz"
version('0.4.6', '2338b824c3b7b25590e18e8df5d68af9')
def url_for_version(self, version):
url = "http://math.lbl.gov/voro++/download/dir/voro++-{0}.tar.gz".format( # noqa: E501
str(version))
return url
def edit(self, spec, prefix):
filter_file(r'CC=g\+\+',
'CC={0}'.format(self.compiler.cxx),

View File

@@ -33,6 +33,7 @@ class Vtk(CMakePackage):
homepage = "http://www.vtk.org"
url = "http://www.vtk.org/files/release/7.1/VTK-7.1.0.tar.gz"
list_url = "http://www.vtk.org/download/"
version('7.1.0', 'a7e814c1db503d896af72458c2d0228f')
version('7.0.0', '5fe35312db5fb2341139b8e4955c367d')

View File

@@ -32,16 +32,12 @@ class Xsdktrilinos(CMakePackage):
Trilinos.
"""
homepage = "https://trilinos.org/"
base_url = "https://github.com/trilinos/xSDKTrilinos/archive"
url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-12-8-1.tar.gz"
version('develop', git='https://github.com/trilinos/xSDKTrilinos.git', tag='master')
version('12.8.1', '9cc338ded17d1e10ea6c0dc18b22dcd4')
version('12.6.4', '44c4c54ccbac73bb8939f68797b9454a')
def url_for_version(self, version):
return '%s/trilinos-release-%s.tar.gz' % \
(Xsdktrilinos.base_url, version.dashed)
variant('hypre', default=True,
description='Compile with Hypre preconditioner')
variant('petsc', default=True,
@@ -59,6 +55,10 @@ def url_for_version(self, version):
depends_on('trilinos@12.8.1', when='@12.8.1')
depends_on('trilinos@develop', when='@develop')
def url_for_version(self, version):
url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-{0}.tar.gz"
return url.format(version.dashed)
def cmake_args(self):
spec = self.spec

View File

@@ -31,7 +31,7 @@
class Yorick(Package):
"""Yorick is an interpreted programming language for scientific simulations
or calculations, postprocessing or steering large simulation codes,
interactive scientific graphics, and reading, writing, or translating
interactive scientific graphics, and reading, writing, or translating
files of numbers. Yorick includes an interactive graphics package, and a
binary file package capable of translating to and from the raw numeric
formats of all modern computers. Yorick is written in ANSI C and runs on
@@ -39,9 +39,9 @@ class Yorick(Package):
"""
homepage = "http://dhmunro.github.io/yorick-doc/"
url = "https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz"
url = "https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz"
version('2.2.04', md5='1b5b0da6ad81b2d9dba64d991ec17939')
version('2.2.04', '1b5b0da6ad81b2d9dba64d991ec17939')
version('master', branch='master',
git='https://github.com/dhmunro/yorick.git')
version('f90-plugin', branch='f90-plugin',
@@ -51,6 +51,10 @@ class Yorick(Package):
depends_on('libx11', when='+X')
def url_for_version(self, version):
url = "https://github.com/dhmunro/yorick/archive/y_{0}.tar.gz"
return url.format(version.underscored)
def install(self, spec, prefix):
os.environ['FORTRAN_LINKAGE'] = '-Df_linkage'

View File

@@ -41,7 +41,7 @@ class Zoltan(Package):
"""
homepage = "http://www.cs.sandia.gov/zoltan"
base_url = "http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions"
url = "http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.83.tar.gz"
version('3.83', '1ff1bc93f91e12f2c533ddb01f2c095f')
version('3.8', '9d8fba8a990896881b85351d4327c4a9')
@@ -56,9 +56,6 @@ class Zoltan(Package):
depends_on('mpi', when='+mpi')
def url_for_version(self, version):
return '%s/zoltan_distrib_v%s.tar.gz' % (Zoltan.base_url, version)
def install(self, spec, prefix):
# FIXME: The older Zoltan versions fail to compile the F90 MPI wrappers
# because of some complicated generic type problem.