Add new Version property to handle joined version numbers (#2062)

* Add new version property to handle joined version numbers

* Add unit test for new joined property

* Add documentation on version.up_to() and version.joined
This commit is contained in:
Adam J. Stewart
2016-10-21 09:49:36 -05:00
committed by Todd Gamblin
parent c513fd72fb
commit 52158d9316
9 changed files with 68 additions and 39 deletions

View File

@@ -35,16 +35,16 @@ class Cdd(Package):
homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/cdd.html"
url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-061a.tar.gz"
def url_for_version(self, version):
return ("ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-%s.tar.gz" %
str(version.dotted).replace('.', ''))
version('0.61a', '22c24a7a9349dd7ec0e24531925a02d9')
depends_on("libtool", type="build")
patch("Makefile.spack.patch")
def url_for_version(self, version):
url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-{0}.tar.gz"
return url.format(version.joined)
def install(self, spec, prefix):
# The Makefile isn't portable; use our own instead
makeargs = ["-f", "Makefile.spack", "PREFIX=%s" % prefix]

View File

@@ -34,9 +34,9 @@ class Cfitsio(Package):
version('3.370', 'abebd2d02ba5b0503c633581e3bfa116')
def url_for_version(self, v):
def url_for_version(self, version):
url = 'ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio{0}.tar.gz'
return url.format(str(v).replace('.', ''))
return url.format(version.joined)
def install(self, spec, prefix):
configure('--prefix=' + prefix)

View File

@@ -36,12 +36,15 @@ class Cryptopp(Package):
"""
homepage = "http://www.cryptopp.com"
base_url = "http://www.cryptopp.com"
version('5.6.3', '3c5b70e2ec98b7a24988734446242d07')
version('5.6.2', '7ed022585698df48e65ce9218f6c6a67')
version('5.6.1', '96cbeba0907562b077e26bcffb483828')
def url_for_version(self, version):
url = "{0}/{1}{2}.zip"
return url.format(self.homepage, self.name, version.joined)
def install(self, spec, prefix):
make()
@@ -51,7 +54,3 @@ def install(self, spec, prefix):
mkdirp(prefix.lib)
install('libcryptopp.a', prefix.lib)
def url_for_version(self, version):
version_string = str(version).replace('.', '')
return '%s/cryptopp%s.zip' % (Cryptopp.base_url, version_string)

View File

@@ -33,10 +33,6 @@ class Lrslib(Package):
homepage = "http://cgm.cs.mcgill.ca/~avis/C/lrs.html"
url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-062.tar.gz"
def url_for_version(self, version):
return ("http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-%s.tar.gz" %
('0' + str(version).replace('.', '')))
version('6.2', 'be5da7b3b90cc2be628dcade90c5d1b9')
version('6.1', '0b3687c8693cd7d1f234a3f65e147551')
version('6.0', 'd600a2e62969ad03f7ab2f85f1b3709c')
@@ -51,6 +47,10 @@ def url_for_version(self, version):
patch("Makefile.spack.patch")
def url_for_version(self, version):
url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-0{0}.tar.gz"
return url.format(version.joined)
def install(self, spec, prefix):
# The Makefile isn't portable; use our own instead
makeargs = ["-f", "Makefile.spack",

View File

@@ -30,7 +30,7 @@ class Nag(Package):
"""The NAG Fortran Compiler."""
homepage = "http://www.nag.com/nagware/np.asp"
version('6.1', '1e29d9d435b7ccc2842a320150b28ba4')
version('6.1', 'f49bd548e0d5e2458b2dabb3ee01341a')
version('6.0', '3fa1e7f7b51ef8a23e6c687cdcad9f96')
# Licensing
@@ -43,8 +43,8 @@ class Nag(Package):
def url_for_version(self, version):
# TODO: url and checksum are architecture dependent
# TODO: We currently only support x86_64
return 'http://www.nag.com/downloads/impl/npl6a%sna_amd64.tgz' % str(
version).replace('.', '')
url = 'http://www.nag.com/downloads/impl/npl6a{0}na_amd64.tgz'
return url.format(version.joined)
def install(self, spec, prefix):
# Set installation directories

View File

@@ -33,14 +33,14 @@ class Nauty(Package):
homepage = "http://pallini.di.uniroma1.it/index.html"
url = "http://pallini.di.uniroma1.it/nauty26r7.tar.gz"
def url_for_version(self, version):
return ("http://pallini.di.uniroma1.it/nauty%s.tar.gz" %
str(version).replace('.', ''))
version('2.6r7', 'b2b18e03ea7698db3fbe06c5d76ad8fe')
version('2.6r5', '91b03a7b069962e94fc9aac8831ce8d2')
version('2.5r9', 'e8ecd08b0892a1fb13329c147f08de6d')
def url_for_version(self, version):
url = "http://pallini.di.uniroma1.it/nauty{0}.tar.gz"
return url.format(version.joined)
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
make()