From c309adb4b3a3d278fef89b32e6ad6fe677748ecb Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Wed, 8 Sep 2021 07:59:06 -0700 Subject: [PATCH] url stats: add `--show-issues` option (#25792) * tests: make `spack url [stats|summary]` work on mock packages Mock packages have historically had mock hashes, but this means they're also invalid as far as Spack's hash detection is concerned. - [x] convert all hashes in mock package to md5 or sha256 - [x] ensure that all mock packages have a URL - [x] ignore some special cases with multiple VCS fetchers * url stats: add `--show-issues` option `spack url stats` tells us how many URLs are using what protocol, type of checksum, etc., but it previously did not tell us which packages and URLs had the issues. This adds a `--show-issues` option to show URLs with insecure (`http`) URLs or `md5` hashes (which are now deprecated by NIST). --- lib/spack/spack/cmd/url.py | 46 ++++++++++++++++--- lib/spack/spack/test/cmd/url.py | 42 ++++++++++------- lib/spack/spack/test/packages.py | 17 ++++--- lib/spack/spack/test/url_fetch.py | 22 ++++++--- share/spack/spack-completion.bash | 2 +- .../repos/builtin.mock/packages/a/package.py | 2 +- .../packages/archive-files/package.py | 2 +- .../packages/build-error/package.py | 2 +- .../packages/build-warnings/package.py | 2 +- .../builtin.mock/packages/callpath/package.py | 6 +-- .../packages/conflict-parent/package.py | 6 +-- .../builtin.mock/packages/conflict/package.py | 6 +-- .../packages/dependency-install/package.py | 4 +- .../dependent-of-dev-build/package.py | 2 +- .../dev-build-test-dependent/package.py | 2 +- .../dev-build-test-install-phases/package.py | 2 +- .../dev-build-test-install/package.py | 2 +- .../packages/direct-mpich/package.py | 2 +- .../builtin.mock/packages/dyninst/package.py | 6 +-- .../builtin.mock/packages/extendee/package.py | 2 +- .../packages/extension1/package.py | 4 +- .../packages/extension2/package.py | 2 +- .../packages/failing-build/package.py | 2 +- .../builtin.mock/packages/fake/package.py | 2 +- .../packages/fetch-options/package.py | 6 +-- .../builtin.mock/packages/fftw/package.py | 4 +- .../packages/find-externals1/package.py | 2 +- .../builtin.mock/packages/gcc/package.py | 4 +- .../packages/git-url-top-level/package.py | 38 +++++++++++---- .../builtin.mock/packages/gmt/package.py | 6 ++- .../builtin.mock/packages/hdf5/package.py | 2 +- .../impossible-concretization/package.py | 2 +- .../packages/indirect-mpich/package.py | 2 +- .../packages/leaf-adds-virtual/package.py | 7 ++- .../builtin.mock/packages/libdwarf/package.py | 6 +-- .../packages/middle-adds-virtual/package.py | 6 ++- .../packages/mixedversions/package.py | 6 +-- .../packages/module-path-separator/package.py | 2 +- .../builtin.mock/packages/mpich/package.py | 10 ++-- .../builtin.mock/packages/mpich2/package.py | 10 ++-- .../builtin.mock/packages/mpileaks/package.py | 8 ++-- .../packages/multi-provider-mpi/package.py | 14 +++--- .../packages/multivalue-variant/package.py | 8 ++-- .../packages/mvdefaults/package.py | 4 +- .../override-context-templates/package.py | 2 +- .../override-module-templates/package.py | 2 +- .../packages/perl-extension/package.py | 4 +- .../builtin.mock/packages/perl/package.py | 2 +- .../packages/printing-package/package.py | 2 +- .../packages/py-extension1/package.py | 4 +- .../packages/py-extension2/package.py | 2 +- .../packages/py-extension3/package.py | 6 +-- .../packages/quantum-espresso/package.py | 2 +- .../builtin.mock/packages/raiser/package.py | 2 +- .../packages/requires-virtual/package.py | 2 +- .../packages/root-adds-virtual/package.py | 5 +- .../builtin.mock/packages/root/package.py | 5 +- .../packages/singlevalue-variant/package.py | 2 +- .../packages/test-error/package.py | 2 +- .../packages/test-fail/package.py | 2 +- .../package.py | 2 +- .../trivial-install-test-package/package.py | 2 +- .../packages/trivial-smoke-test/package.py | 2 +- .../packages/unsat-provider/package.py | 2 +- .../unsat-virtual-dependency/package.py | 2 +- .../packages/url-list-test/package.py | 14 +++--- .../url-only-override-with-gaps/package.py | 17 ++++--- .../packages/url-only-override/package.py | 6 +-- .../packages/url_override/package.py | 6 +-- .../builtin.mock/packages/zmpi/package.py | 2 +- 70 files changed, 266 insertions(+), 169 deletions(-) diff --git a/lib/spack/spack/cmd/url.py b/lib/spack/spack/cmd/url.py index 8d9232203f5..e3182478abd 100644 --- a/lib/spack/spack/cmd/url.py +++ b/lib/spack/spack/cmd/url.py @@ -9,6 +9,7 @@ import six.moves.urllib.parse as urllib_parse +import llnl.util.tty.color as color from llnl.util import tty import spack.fetch_strategy as fs @@ -80,9 +81,13 @@ def setup_parser(subparser): help='print a summary of how well we are parsing package urls') # Stats - sp.add_parser( + stats_parser = sp.add_parser( 'stats', help='print statistics on versions and checksums for all packages') + stats_parser.add_argument( + "--show-issues", action="store_true", + help="show packages with issues (md5 hashes, http urls)" + ) def url(parser, args): @@ -262,6 +267,9 @@ def url_summary(args): def url_stats(args): + # dictionary of issue type -> package -> descriptions + issues = defaultdict(lambda: defaultdict(lambda: [])) + class UrlStats(object): def __init__(self): self.total = 0 @@ -270,7 +278,7 @@ def __init__(self): self.url_type = defaultdict(lambda: 0) self.git_type = defaultdict(lambda: 0) - def add(self, fetcher): + def add(self, pkg_name, fetcher): self.total += 1 url_type = fetcher.url_attr @@ -284,10 +292,18 @@ def add(self, fetcher): algo = 'no checksum' self.checksums[algo] += 1 + if algo == "md5": + md5_hashes = issues["md5 hashes"] + md5_hashes[pkg_name].append(fetcher.url) + # parse out the URL scheme (https/http/ftp/etc.) urlinfo = urllib_parse.urlparse(fetcher.url) self.schemes[urlinfo.scheme] += 1 + if urlinfo.scheme == "http": + http_urls = issues["http urls"] + http_urls[pkg_name].append(fetcher.url) + elif url_type == 'git': if getattr(fetcher, 'commit', None): self.git_type['commit'] += 1 @@ -305,13 +321,16 @@ def add(self, fetcher): for pkg in spack.repo.path.all_packages(): npkgs += 1 - for v, args in pkg.versions.items(): - fetcher = fs.for_package_version(pkg, v) - version_stats.add(fetcher) + for v in pkg.versions: + try: + fetcher = fs.for_package_version(pkg, v) + except (fs.InvalidArgsError, fs.FetcherConflict): + continue + version_stats.add(pkg.name, fetcher) for _, resources in pkg.resources.items(): for resource in resources: - resource_stats.add(resource.fetcher) + resource_stats.add(pkg.name, resource.fetcher) # print a nice summary table tty.msg("URL stats for %d packages:" % npkgs) @@ -361,6 +380,21 @@ def print_stat(indent, name, stat_name=None): print_stat(4, git_type, "git_type") print_line() + if args.show_issues: + total_issues = sum( + len(issues) + for _, pkg_issues in issues.items() + for _, issues in pkg_issues.items() + ) + print() + tty.msg("Found %d issues." % total_issues) + for issue_type, pkgs in issues.items(): + tty.msg("Package URLs with %s" % issue_type) + for pkg, pkg_issues in pkgs.items(): + color.cprint(" @*C{%s}" % pkg) + for issue in pkg_issues: + print(" %s" % issue) + def print_name_and_version(url): """Prints a URL. Underlines the detected name with dashes and diff --git a/lib/spack/spack/test/cmd/url.py b/lib/spack/spack/test/cmd/url.py index b5b2b9feba5..f9179720b1d 100644 --- a/lib/spack/spack/test/cmd/url.py +++ b/lib/spack/spack/test/cmd/url.py @@ -69,13 +69,15 @@ def test_url_with_no_version_fails(): url('parse', 'http://www.netlib.org/voronoi/triangle.zip') -@pytest.mark.maybeslow -@pytest.mark.skipif( +skip_python_26 = pytest.mark.skipif( sys.version_info < (2, 7), reason="Python 2.6 tests are run in a container, where " "networking is super slow" ) -def test_url_list(): + + +@skip_python_26 +def test_url_list(mock_packages): out = url('list') total_urls = len(out.split('\n')) @@ -104,13 +106,8 @@ def test_url_list(): assert 0 < correct_version_urls < total_urls -@pytest.mark.maybeslow -@pytest.mark.skipif( - sys.version_info < (2, 7), - reason="Python 2.6 tests are run in a container, where " - "networking is super slow" -) -def test_url_summary(): +@skip_python_26 +def test_url_summary(mock_packages): """Test the URL summary command.""" # test url_summary, the internal function that does the work (total_urls, correct_names, correct_versions, @@ -136,12 +133,8 @@ def test_url_summary(): assert out_correct_versions == correct_versions -@pytest.mark.skipif( - sys.version_info < (2, 7), - reason="Python 2.6 tests are run in a container, where " - "networking is super slow" -) -def test_url_stats(capfd): +@skip_python_26 +def test_url_stats(capfd, mock_packages): with capfd.disabled(): output = url('stats') npkgs = '%d packages' % len(spack.repo.all_package_names()) @@ -151,3 +144,20 @@ def test_url_stats(capfd): assert 'schemes' in output assert 'versions' in output assert 'resources' in output + + output = url('stats', '--show-issues') + npkgs = '%d packages' % len(spack.repo.all_package_names()) + assert npkgs in output + assert 'url' in output + assert 'git' in output + assert 'schemes' in output + assert 'versions' in output + assert 'resources' in output + + assert 'Package URLs with md5 hashes' in output + assert 'needs-relocation' in output + assert 'https://cmake.org/files/v3.4/cmake-0.0.0.tar.gz' in output + + assert 'Package URLs with http urls' in output + assert 'zmpi' in output + assert 'http://www.spack-fake-zmpi.org/downloads/zmpi-1.0.tar.gz' in output diff --git a/lib/spack/spack/test/packages.py b/lib/spack/spack/test/packages.py index 16e209c42cd..4ebf1af69c4 100644 --- a/lib/spack/spack/test/packages.py +++ b/lib/spack/spack/test/packages.py @@ -281,25 +281,28 @@ def test_git_url_top_level_url_versions(mock_packages, config): pkg = spack.repo.get('git-url-top-level') + # leading 62 zeros of sha256 hash + leading_zeros = '0' * 62 + fetcher = spack.fetch_strategy.for_package_version(pkg, '2.0') assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy) assert fetcher.url == 'https://example.com/some/tarball-2.0.tar.gz' - assert fetcher.digest == 'abc20' + assert fetcher.digest == leading_zeros + '20' fetcher = spack.fetch_strategy.for_package_version(pkg, '2.1') assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy) assert fetcher.url == 'https://example.com/some/tarball-2.1.tar.gz' - assert fetcher.digest == 'abc21' + assert fetcher.digest == leading_zeros + '21' fetcher = spack.fetch_strategy.for_package_version(pkg, '2.2') assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy) assert fetcher.url == 'https://www.example.com/foo2.2.tar.gz' - assert fetcher.digest == 'abc22' + assert fetcher.digest == leading_zeros + '22' fetcher = spack.fetch_strategy.for_package_version(pkg, '2.3') assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy) assert fetcher.url == 'https://www.example.com/foo2.3.tar.gz' - assert fetcher.digest == 'abc23' + assert fetcher.digest == leading_zeros + '23' def test_git_url_top_level_git_versions(mock_packages, config): @@ -409,15 +412,15 @@ def test_fetch_options(mock_packages, config): fetcher = spack.fetch_strategy.for_package_version(pkg, '1.0') assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy) - assert fetcher.digest == 'abc10' + assert fetcher.digest == '00000000000000000000000000000010' assert fetcher.extra_options == {'timeout': 42, 'cookie': 'foobar'} fetcher = spack.fetch_strategy.for_package_version(pkg, '1.1') assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy) - assert fetcher.digest == 'abc11' + assert fetcher.digest == '00000000000000000000000000000011' assert fetcher.extra_options == {'timeout': 65} fetcher = spack.fetch_strategy.for_package_version(pkg, '1.2') assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy) - assert fetcher.digest == 'abc12' + assert fetcher.digest == '00000000000000000000000000000012' assert fetcher.extra_options == {'cookie': 'baz'} diff --git a/lib/spack/spack/test/url_fetch.py b/lib/spack/spack/test/url_fetch.py index b0bd53af724..11a282dc2cd 100644 --- a/lib/spack/spack/test/url_fetch.py +++ b/lib/spack/spack/test/url_fetch.py @@ -160,13 +160,21 @@ def test_fetch( @pytest.mark.parametrize('spec,url,digest', [ - ('url-list-test @0.0.0', 'foo-0.0.0.tar.gz', 'abc000'), - ('url-list-test @1.0.0', 'foo-1.0.0.tar.gz', 'abc100'), - ('url-list-test @3.0', 'foo-3.0.tar.gz', 'abc30'), - ('url-list-test @4.5', 'foo-4.5.tar.gz', 'abc45'), - ('url-list-test @2.0.0b2', 'foo-2.0.0b2.tar.gz', 'abc200b2'), - ('url-list-test @3.0a1', 'foo-3.0a1.tar.gz', 'abc30a1'), - ('url-list-test @4.5-rc5', 'foo-4.5-rc5.tar.gz', 'abc45rc5'), + ('url-list-test @0.0.0', 'foo-0.0.0.tar.gz', '00000000000000000000000000000000'), + ('url-list-test @1.0.0', 'foo-1.0.0.tar.gz', '00000000000000000000000000000100'), + ('url-list-test @3.0', 'foo-3.0.tar.gz', '00000000000000000000000000000030'), + ('url-list-test @4.5', 'foo-4.5.tar.gz', '00000000000000000000000000000450'), + ( + 'url-list-test @2.0.0b2', + 'foo-2.0.0b2.tar.gz', + '000000000000000000000000000200b2' + ), + ('url-list-test @3.0a1', 'foo-3.0a1.tar.gz', '000000000000000000000000000030a1'), + ( + 'url-list-test @4.5-rc5', + 'foo-4.5-rc5.tar.gz', + '000000000000000000000000000045c5' + ), ]) @pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) def test_from_list_url(mock_packages, config, spec, url, digest, _fetch_method): diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index 436ff345e77..8a392720d6f 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -1798,7 +1798,7 @@ _spack_url_summary() { } _spack_url_stats() { - SPACK_COMPREPLY="-h --help" + SPACK_COMPREPLY="-h --help --show-issues" } _spack_verify() { diff --git a/var/spack/repos/builtin.mock/packages/a/package.py b/var/spack/repos/builtin.mock/packages/a/package.py index 37570ebf7a8..436ac462cd2 100644 --- a/var/spack/repos/builtin.mock/packages/a/package.py +++ b/var/spack/repos/builtin.mock/packages/a/package.py @@ -13,7 +13,7 @@ class A(AutotoolsPackage): url = "http://www.example.com/a-1.0.tar.gz" version('1.0', '0123456789abcdef0123456789abcdef') - version('2.0', '2.0_a_hash') + version('2.0', 'abcdef0123456789abcdef0123456789') variant( 'foo', description='', diff --git a/var/spack/repos/builtin.mock/packages/archive-files/package.py b/var/spack/repos/builtin.mock/packages/archive-files/package.py index 12d11e514c9..3d2b6f0a5ac 100644 --- a/var/spack/repos/builtin.mock/packages/archive-files/package.py +++ b/var/spack/repos/builtin.mock/packages/archive-files/package.py @@ -13,7 +13,7 @@ class ArchiveFiles(AutotoolsPackage): url = "http://www.example.com/a-1.0.tar.gz" version('1.0', '0123456789abcdef0123456789abcdef') - version('2.0', '2.0_a_hash') + version('2.0', 'abcdef0123456789abcdef0123456789') @property def archive_files(self): diff --git a/var/spack/repos/builtin.mock/packages/build-error/package.py b/var/spack/repos/builtin.mock/packages/build-error/package.py index 5f0c937786c..78873d7fb92 100644 --- a/var/spack/repos/builtin.mock/packages/build-error/package.py +++ b/var/spack/repos/builtin.mock/packages/build-error/package.py @@ -12,7 +12,7 @@ class BuildError(Package): homepage = "http://www.example.com/trivial_install" url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): with open('configure', 'w') as f: diff --git a/var/spack/repos/builtin.mock/packages/build-warnings/package.py b/var/spack/repos/builtin.mock/packages/build-warnings/package.py index f46452061f6..28c2dd4ba46 100644 --- a/var/spack/repos/builtin.mock/packages/build-warnings/package.py +++ b/var/spack/repos/builtin.mock/packages/build-warnings/package.py @@ -12,7 +12,7 @@ class BuildWarnings(Package): homepage = "http://www.example.com/trivial_install" url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): with open('configure', 'w') as f: diff --git a/var/spack/repos/builtin.mock/packages/callpath/package.py b/var/spack/repos/builtin.mock/packages/callpath/package.py index cf29e38dd9e..cbd9e1afaa2 100644 --- a/var/spack/repos/builtin.mock/packages/callpath/package.py +++ b/var/spack/repos/builtin.mock/packages/callpath/package.py @@ -10,9 +10,9 @@ class Callpath(Package): homepage = "https://github.com/tgamblin/callpath" url = "http://github.com/tgamblin/callpath-1.0.tar.gz" - version(0.8, 'foobarbaz') - version(0.9, 'foobarbaz') - version(1.0, 'foobarbaz') + version(0.8, '0123456789abcdef0123456789abcdef') + version(0.9, '0123456789abcdef0123456789abcdef') + version(1.0, '0123456789abcdef0123456789abcdef') depends_on("dyninst") depends_on("mpi") diff --git a/var/spack/repos/builtin.mock/packages/conflict-parent/package.py b/var/spack/repos/builtin.mock/packages/conflict-parent/package.py index 0961f8df1b3..af296e3f53d 100644 --- a/var/spack/repos/builtin.mock/packages/conflict-parent/package.py +++ b/var/spack/repos/builtin.mock/packages/conflict-parent/package.py @@ -10,9 +10,9 @@ class ConflictParent(Package): homepage = 'https://github.com/tgamblin/callpath' url = 'http://github.com/tgamblin/callpath-1.0.tar.gz' - version(0.8, 'foobarbaz') - version(0.9, 'foobarbaz') - version(1.0, 'foobarbaz') + version(0.8, '0123456789abcdef0123456789abcdef') + version(0.9, '0123456789abcdef0123456789abcdef') + version(1.0, '0123456789abcdef0123456789abcdef') depends_on('conflict') diff --git a/var/spack/repos/builtin.mock/packages/conflict/package.py b/var/spack/repos/builtin.mock/packages/conflict/package.py index a4c81bc4d77..1937e31d802 100644 --- a/var/spack/repos/builtin.mock/packages/conflict/package.py +++ b/var/spack/repos/builtin.mock/packages/conflict/package.py @@ -10,9 +10,9 @@ class Conflict(Package): homepage = 'https://github.com/tgamblin/callpath' url = 'http://github.com/tgamblin/callpath-1.0.tar.gz' - version(0.8, 'foobarbaz') - version(0.9, 'foobarbaz') - version(1.0, 'foobarbaz') + version(0.8, '0123456789abcdef0123456789abcdef') + version(0.9, '0123456789abcdef0123456789abcdef') + version(1.0, '0123456789abcdef0123456789abcdef') variant('foo', default=True, description='') diff --git a/var/spack/repos/builtin.mock/packages/dependency-install/package.py b/var/spack/repos/builtin.mock/packages/dependency-install/package.py index 35f627c92f8..3a5157ca1cc 100644 --- a/var/spack/repos/builtin.mock/packages/dependency-install/package.py +++ b/var/spack/repos/builtin.mock/packages/dependency-install/package.py @@ -12,8 +12,8 @@ class DependencyInstall(Package): homepage = "http://www.example.com" url = "http://www.example.com/a-1.0.tar.gz" - version('1.0', 'hash1.0') - version('2.0', 'hash2.0') + version('1.0', '0123456789abcdef0123456789abcdef') + version('2.0', 'abcdef0123456789abcdef0123456789') def install(self, spec, prefix): touch(join_path(prefix, 'an_installation_file')) diff --git a/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py b/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py index 9b86790a78c..9bb36f2af2b 100644 --- a/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py +++ b/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py @@ -8,7 +8,7 @@ class DependentOfDevBuild(Package): homepage = "example.com" url = "fake.com" - version('0.0.0', sha256='0123456789abcdefgh') + version('0.0.0', sha256='0123456789abcdef0123456789abcdef') depends_on('dev-build-test-install') diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py index 973bc22153a..5056670b8fe 100644 --- a/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py +++ b/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py @@ -8,7 +8,7 @@ class DevBuildTestDependent(Package): homepage = "example.com" url = "fake.com" - version('0.0.0', sha256='0123456789abcdefgh') + version('0.0.0', sha256='0123456789abcdef0123456789abcdef') phases = ['edit', 'install'] diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py index 7957325d215..72fe849ba38 100644 --- a/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py +++ b/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py @@ -10,7 +10,7 @@ class DevBuildTestInstallPhases(Package): homepage = "example.com" url = "fake.com" - version('0.0.0', sha256='0123456789abcdefgh') + version('0.0.0', sha256='0123456789abcdef0123456789abcdef') phases = ['one', 'two', 'three', 'install'] diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py index b72b090855f..b1dc16c245b 100644 --- a/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py +++ b/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py @@ -8,7 +8,7 @@ class DevBuildTestInstall(Package): homepage = "example.com" url = "fake.com" - version('0.0.0', sha256='0123456789abcdefgh') + version('0.0.0', sha256='0123456789abcdef0123456789abcdef') phases = ['edit', 'install'] diff --git a/var/spack/repos/builtin.mock/packages/direct-mpich/package.py b/var/spack/repos/builtin.mock/packages/direct-mpich/package.py index 658b2d03f2c..31cb572ca59 100644 --- a/var/spack/repos/builtin.mock/packages/direct-mpich/package.py +++ b/var/spack/repos/builtin.mock/packages/direct-mpich/package.py @@ -10,6 +10,6 @@ class DirectMpich(Package): homepage = "http://www.example.com" url = "http://www.example.com/direct_mpich-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') depends_on('mpich') diff --git a/var/spack/repos/builtin.mock/packages/dyninst/package.py b/var/spack/repos/builtin.mock/packages/dyninst/package.py index ebaa2afe81b..7758f1d6cb4 100644 --- a/var/spack/repos/builtin.mock/packages/dyninst/package.py +++ b/var/spack/repos/builtin.mock/packages/dyninst/package.py @@ -10,11 +10,11 @@ class Dyninst(Package): homepage = "https://paradyn.org" url = "http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz" - version('8.2', 'cxyzab', + version('8.2', '0123456789abcdef0123456789abcdef', url='http://www.paradyn.org/release8.2/DyninstAPI-8.2.tgz') - version('8.1.2', 'bcxyza', + version('8.1.2', 'fedcba9876543210fedcba9876543210', url='http://www.paradyn.org/release8.1.2/DyninstAPI-8.1.2.tgz') - version('8.1.1', 'abcxyz', + version('8.1.1', '123456789abcdef0123456789abcdef0', url='http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz') depends_on("libelf") diff --git a/var/spack/repos/builtin.mock/packages/extendee/package.py b/var/spack/repos/builtin.mock/packages/extendee/package.py index edb2c8dd775..6bb6a7bad1c 100644 --- a/var/spack/repos/builtin.mock/packages/extendee/package.py +++ b/var/spack/repos/builtin.mock/packages/extendee/package.py @@ -14,7 +14,7 @@ class Extendee(Package): extendable = True - version('1.0', 'hash-extendee-1.0') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/extension1/package.py b/var/spack/repos/builtin.mock/packages/extension1/package.py index 9f0028888ad..69443c1be59 100644 --- a/var/spack/repos/builtin.mock/packages/extension1/package.py +++ b/var/spack/repos/builtin.mock/packages/extension1/package.py @@ -16,8 +16,8 @@ class Extension1(Package): extends('extendee') - version('1.0', 'hash-extension1-1.0') - version('2.0', 'hash-extension1-2.0') + version('1.0', '0123456789abcdef0123456789abcdef') + version('2.0', 'abcdef0123456789abcdef0123456789') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/extension2/package.py b/var/spack/repos/builtin.mock/packages/extension2/package.py index 4b661e0d55b..6e2a4badefc 100644 --- a/var/spack/repos/builtin.mock/packages/extension2/package.py +++ b/var/spack/repos/builtin.mock/packages/extension2/package.py @@ -18,7 +18,7 @@ class Extension2(Package): extends('extendee') depends_on('extension1', type=('build', 'run')) - version('1.0', 'hash-extension2-1.0') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/failing-build/package.py b/var/spack/repos/builtin.mock/packages/failing-build/package.py index c8ffbf66106..f9063092f84 100644 --- a/var/spack/repos/builtin.mock/packages/failing-build/package.py +++ b/var/spack/repos/builtin.mock/packages/failing-build/package.py @@ -12,7 +12,7 @@ class FailingBuild(Package): homepage = "http://www.example.com/trivial_install" url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): raise InstallError("Expected failure.") diff --git a/var/spack/repos/builtin.mock/packages/fake/package.py b/var/spack/repos/builtin.mock/packages/fake/package.py index 83ce64e3e5e..2946656efeb 100644 --- a/var/spack/repos/builtin.mock/packages/fake/package.py +++ b/var/spack/repos/builtin.mock/packages/fake/package.py @@ -10,4 +10,4 @@ class Fake(Package): homepage = "http://www.fake-spack-example.org" url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') diff --git a/var/spack/repos/builtin.mock/packages/fetch-options/package.py b/var/spack/repos/builtin.mock/packages/fetch-options/package.py index 3c327010a3a..2619ca6e872 100644 --- a/var/spack/repos/builtin.mock/packages/fetch-options/package.py +++ b/var/spack/repos/builtin.mock/packages/fetch-options/package.py @@ -17,6 +17,6 @@ class FetchOptions(Package): timeout = {'timeout': 65} cookie = {'cookie': 'baz'} - version('1.2', 'abc12', fetch_options=cookie) - version('1.1', 'abc11', fetch_options=timeout) - version('1.0', 'abc10') + version('1.2', '00000000000000000000000000000012', fetch_options=cookie) + version('1.1', '00000000000000000000000000000011', fetch_options=timeout) + version('1.0', '00000000000000000000000000000010') diff --git a/var/spack/repos/builtin.mock/packages/fftw/package.py b/var/spack/repos/builtin.mock/packages/fftw/package.py index e77f8412b3f..b1dabe67549 100644 --- a/var/spack/repos/builtin.mock/packages/fftw/package.py +++ b/var/spack/repos/builtin.mock/packages/fftw/package.py @@ -10,8 +10,8 @@ class Fftw(Package): homepage = "http://www.example.com" url = "http://www.example.com/fftw-1.0.tar.gz" - version(2.0, 'foobar') - version(1.0, 'foobar') + version(2.0, 'abcdef1234567890abcdef1234567890') + version(1.0, '1234567890abcdef1234567890abcdef') variant('mpi', default=False, description='Enable MPI') diff --git a/var/spack/repos/builtin.mock/packages/find-externals1/package.py b/var/spack/repos/builtin.mock/packages/find-externals1/package.py index 21294adf4d3..0aab19bde51 100644 --- a/var/spack/repos/builtin.mock/packages/find-externals1/package.py +++ b/var/spack/repos/builtin.mock/packages/find-externals1/package.py @@ -13,7 +13,7 @@ class FindExternals1(AutotoolsPackage): url = "http://www.example.com/find-externals-1.0.tar.gz" - version('1.0', 'hash-1.0') + version('1.0', 'abcdef1234567890abcdef1234567890') @classmethod def determine_spec_details(cls, prefix, exes_in_prefix): diff --git a/var/spack/repos/builtin.mock/packages/gcc/package.py b/var/spack/repos/builtin.mock/packages/gcc/package.py index a76967c9938..97e1325c61d 100644 --- a/var/spack/repos/builtin.mock/packages/gcc/package.py +++ b/var/spack/repos/builtin.mock/packages/gcc/package.py @@ -13,8 +13,8 @@ class Gcc(Package): url = "http://www.example.com/gcc-1.0.tar.gz" version('1.0', '0123456789abcdef0123456789abcdef') - version('2.0', '2.0_a_hash') - version('3.0', '3.0_a_hash') + version('2.0', 'abcdef0123456789abcdef0123456789') + version('3.0', 'def0123456789abcdef0123456789abc') depends_on('conflict', when='@3.0') diff --git a/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py index e51cbe5160d..94e9b4ff419 100644 --- a/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py +++ b/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py @@ -28,13 +28,35 @@ class GitUrlTopLevel(Package): version('3.0', tag='v3.0') # These resolve to URL fetchers - version('2.3', 'abc23', url='https://www.example.com/foo2.3.tar.gz') - version('2.2', sha256='abc22', url='https://www.example.com/foo2.2.tar.gz') - version('2.1', sha256='abc21') - version('2.0', 'abc20') + version( + '2.3', '0000000000000000000000000000000000000000000000000000000000000023', + url='https://www.example.com/foo2.3.tar.gz', + ) + version( + '2.2', + sha256='0000000000000000000000000000000000000000000000000000000000000022', + url='https://www.example.com/foo2.2.tar.gz', + ) + version( + '2.1', + sha256='0000000000000000000000000000000000000000000000000000000000000021', + ) + version( + '2.0', + '0000000000000000000000000000000000000000000000000000000000000020', + ) # These result in a FetcherConflict b/c we can't tell what to use - version('1.3', sha256='abc13', commit='abc13') - version('1.2', sha512='abc12', branch='releases/v1.2') - version('1.1', md5='abc11', tag='v1.1') - version('1.0', 'abc11', tag='abc123') + version( + '1.3', + sha256='f66bbef3ccb8b06542c57d69804c5b0aba72051f693c17761ad8525786d259fa', + commit='abc13' + ) + version( + '1.2', + sha512='f66bbef3ccb8b06542c57d69804c5b0aba72051f693c17761ad8525786d259fa' + '9ed8f2e950a4fb8a4b936f33e689187784699357bc16e49f33dfcda8ab8b00e4', + branch='releases/v1.2' + ) + version('1.1', md5='00000000000000000000000000000011', tag='v1.1') + version('1.0', '00000000000000000000000000000011', tag='abc123') diff --git a/var/spack/repos/builtin.mock/packages/gmt/package.py b/var/spack/repos/builtin.mock/packages/gmt/package.py index 444c3d3d951..efe1480c887 100644 --- a/var/spack/repos/builtin.mock/packages/gmt/package.py +++ b/var/spack/repos/builtin.mock/packages/gmt/package.py @@ -3,8 +3,10 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) class Gmt(Package): + url = "http://www.example.com/" + url = "http://www.example.com/2.0.tar.gz" - version('2.0', 'abcdef') - version('1.0', 'abcdef') + version('2.0', 'abcdef1234567890abcdef1234567890') + version('1.0', 'abcdef1234567890abcdef1234567890') depends_on('mvdefaults', when='@1.0') diff --git a/var/spack/repos/builtin.mock/packages/hdf5/package.py b/var/spack/repos/builtin.mock/packages/hdf5/package.py index 6f4d2d1528d..34aa76cfd6c 100644 --- a/var/spack/repos/builtin.mock/packages/hdf5/package.py +++ b/var/spack/repos/builtin.mock/packages/hdf5/package.py @@ -8,7 +8,7 @@ class Hdf5(Package): homepage = "http://www.llnl.gov" url = "http://www.llnl.gov/hdf5-1.0.tar.gz" - version(2.3, 'foobarbaz') + version(2.3, '0123456789abcdef0123456789abcdef') variant('mpi', default=True, description='Enable mpi') diff --git a/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py b/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py index bf665087f23..05aac5f9539 100644 --- a/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py +++ b/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py @@ -10,6 +10,6 @@ class ImpossibleConcretization(Package): homepage = "http://www.example.com" url = "http://www.example.com/example-1.0.tar.gz" - version(1.0, 'foobarbaz') + version(1.0, '0123456789abcdef0123456789abcdef') conflicts('target=x86_64:') diff --git a/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py b/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py index 32f6d79a378..c49e7e49e05 100644 --- a/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py +++ b/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py @@ -14,7 +14,7 @@ class IndirectMpich(Package): homepage = "http://www.example.com" url = "http://www.example.com/indirect_mpich-1.0.tar.gz" - version(1.0, 'foobarbaz') + version(1.0, '0123456789abcdef0123456789abcdef') depends_on('mpi') depends_on('direct-mpich') diff --git a/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py index be4cc177110..689f315bd07 100644 --- a/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py +++ b/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py @@ -3,7 +3,10 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) class LeafAddsVirtual(Package): - version('2.0', sha256='abcde') - version('1.0', sha256='abcde') + url = "http://www.example.com/" + url = "http://www.example.com/2.0.tar.gz" + + version('2.0', 'abcdef1234567890abcdef1234567890') + version('1.0', 'abcdef1234567890abcdef1234567890') depends_on('blas', when='@2.0') diff --git a/var/spack/repos/builtin.mock/packages/libdwarf/package.py b/var/spack/repos/builtin.mock/packages/libdwarf/package.py index 8714b141b6f..dcda3a2976d 100644 --- a/var/spack/repos/builtin.mock/packages/libdwarf/package.py +++ b/var/spack/repos/builtin.mock/packages/libdwarf/package.py @@ -15,9 +15,9 @@ class Libdwarf(Package): list_url = homepage version(20130729, "64b42692e947d5180e162e46c689dfbf") - version(20130207, 'foobarbaz') - version(20111030, 'foobarbaz') - version(20070703, 'foobarbaz') + version(20130207, '0123456789abcdef0123456789abcdef') + version(20111030, '0123456789abcdef0123456789abcdef') + version(20070703, '0123456789abcdef0123456789abcdef') depends_on("libelf") diff --git a/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py index 884d8737c07..cc076089819 100644 --- a/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py +++ b/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py @@ -3,5 +3,9 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) class MiddleAddsVirtual(Package): - version('1.0', sha256='abcde') + url = "http://www.example.com/" + url = "http://www.example.com/2.0.tar.gz" + + version('1.0', 'abcdef1234567890abcdef1234567890') + depends_on('leaf-adds-virtual') diff --git a/var/spack/repos/builtin.mock/packages/mixedversions/package.py b/var/spack/repos/builtin.mock/packages/mixedversions/package.py index 0198731c533..fd660f7f8fe 100644 --- a/var/spack/repos/builtin.mock/packages/mixedversions/package.py +++ b/var/spack/repos/builtin.mock/packages/mixedversions/package.py @@ -9,6 +9,6 @@ class Mixedversions(Package): url = "http://www.fake-mixedversions.org/downloads/mixedversions-1.0.tar.gz" - version('2.0.1', 'hashc') - version('2.0', 'hashb') - version('1.0.1', 'hasha') + version('2.0.1', '0000000000000000000000000000000c') + version('2.0', '0000000000000000000000000000000b') + version('1.0.1', '0000000000000000000000000000000a') diff --git a/var/spack/repos/builtin.mock/packages/module-path-separator/package.py b/var/spack/repos/builtin.mock/packages/module-path-separator/package.py index c20499754c0..e88d377c849 100644 --- a/var/spack/repos/builtin.mock/packages/module-path-separator/package.py +++ b/var/spack/repos/builtin.mock/packages/module-path-separator/package.py @@ -10,7 +10,7 @@ class ModulePathSeparator(Package): homepage = "http://www.llnl.gov" url = "http://www.llnl.gov/module-path-separator-1.0.tar.gz" - version(1.0, 'foobarbaz') + version(1.0, '0123456789abcdef0123456789abcdef') def setup_environment(self, senv, renv): renv.append_path("COLON", "foo") diff --git a/var/spack/repos/builtin.mock/packages/mpich/package.py b/var/spack/repos/builtin.mock/packages/mpich/package.py index bcf70d70146..b110be5495d 100644 --- a/var/spack/repos/builtin.mock/packages/mpich/package.py +++ b/var/spack/repos/builtin.mock/packages/mpich/package.py @@ -18,11 +18,11 @@ class Mpich(Package): description="Compile MPICH with debug flags.") version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') - version('3.0.3', 'foobarbaz') - version('3.0.2', 'foobarbaz') - version('3.0.1', 'foobarbaz') - version('3.0', 'foobarbaz') - version('1.0', 'foobarbas') + version('3.0.3', '0123456789abcdef0123456789abcdef') + version('3.0.2', '0123456789abcdef0123456789abcdef') + version('3.0.1', '0123456789abcdef0123456789abcdef') + version('3.0', '0123456789abcdef0123456789abcdef') + version('1.0', '0123456789abcdef0123456789abcdef') provides('mpi@:3', when='@3:') provides('mpi@:1', when='@:1') diff --git a/var/spack/repos/builtin.mock/packages/mpich2/package.py b/var/spack/repos/builtin.mock/packages/mpich2/package.py index 4a4081e0025..cf0d7534b09 100644 --- a/var/spack/repos/builtin.mock/packages/mpich2/package.py +++ b/var/spack/repos/builtin.mock/packages/mpich2/package.py @@ -15,11 +15,11 @@ class Mpich2(Package): tags = ['tag1', 'tag3'] version('1.5', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') - version('1.4', 'foobarbaz') - version('1.3', 'foobarbaz') - version('1.2', 'foobarbaz') - version('1.1', 'foobarbaz') - version('1.0', 'foobarbaz') + version('1.4', '0123456789abcdef0123456789abcdef') + version('1.3', '0123456789abcdef0123456789abcdef') + version('1.2', '0123456789abcdef0123456789abcdef') + version('1.1', '0123456789abcdef0123456789abcdef') + version('1.0', '0123456789abcdef0123456789abcdef') provides('mpi@:2.0') provides('mpi@:2.1', when='@1.1:') diff --git a/var/spack/repos/builtin.mock/packages/mpileaks/package.py b/var/spack/repos/builtin.mock/packages/mpileaks/package.py index db148b3c1f5..e0bff0673b0 100644 --- a/var/spack/repos/builtin.mock/packages/mpileaks/package.py +++ b/var/spack/repos/builtin.mock/packages/mpileaks/package.py @@ -10,10 +10,10 @@ class Mpileaks(Package): homepage = "http://www.llnl.gov" url = "http://www.llnl.gov/mpileaks-1.0.tar.gz" - version(1.0, 'foobarbaz') - version(2.1, 'foobarbaz') - version(2.2, 'foobarbaz') - version(2.3, 'foobarbaz') + version(1.0, '0123456789abcdef0123456789abcdef') + version(2.1, '0123456789abcdef0123456789abcdef') + version(2.2, '0123456789abcdef0123456789abcdef') + version(2.3, '0123456789abcdef0123456789abcdef') variant('debug', default=False, description='Debug variant') variant('opt', default=False, description='Optimized variant') diff --git a/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py b/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py index 41c7df5578a..58e83ae5964 100644 --- a/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py +++ b/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py @@ -12,13 +12,13 @@ class MultiProviderMpi(Package): homepage = "http://www.spack-fake-mpi.org" url = "http://www.spack-fake-mpi.org/downloads/multi-mpi-1.0.tar.gz" - version('2.0.0', 'foobarbaz') - version('1.10.3', 'foobarbaz') - version('1.10.2', 'foobarbaz') - version('1.10.1', 'foobarbaz') - version('1.10.0', 'foobarbaz') - version('1.8.8', 'foobarbaz') - version('1.6.5', 'foobarbaz') + version('2.0.0', '0123456789abcdef0123456789abcdef') + version('1.10.3', '0123456789abcdef0123456789abcdef') + version('1.10.2', '0123456789abcdef0123456789abcdef') + version('1.10.1', '0123456789abcdef0123456789abcdef') + version('1.10.0', '0123456789abcdef0123456789abcdef') + version('1.8.8', '0123456789abcdef0123456789abcdef') + version('1.6.5', '0123456789abcdef0123456789abcdef') provides('mpi@3.1', when='@2.0.0') provides('mpi@3.0', when='@1.10.3') diff --git a/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py b/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py index 34663434cb4..65ca9d68540 100644 --- a/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py +++ b/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py @@ -10,10 +10,10 @@ class MultivalueVariant(Package): homepage = "http://www.llnl.gov" url = "http://www.llnl.gov/mpileaks-1.0.tar.gz" - version(1.0, 'foobarbaz') - version(2.1, 'foobarbaz') - version(2.2, 'foobarbaz') - version(2.3, 'foobarbaz') + version(1.0, '0123456789abcdef0123456789abcdef') + version(2.1, '0123456789abcdef0123456789abcdef') + version(2.2, '0123456789abcdef0123456789abcdef') + version(2.3, '0123456789abcdef0123456789abcdef') variant('debug', default=False, description='Debug variant') variant( diff --git a/var/spack/repos/builtin.mock/packages/mvdefaults/package.py b/var/spack/repos/builtin.mock/packages/mvdefaults/package.py index d6f7e7e0dba..a45350a5c54 100644 --- a/var/spack/repos/builtin.mock/packages/mvdefaults/package.py +++ b/var/spack/repos/builtin.mock/packages/mvdefaults/package.py @@ -3,8 +3,10 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) class Mvdefaults(Package): + homepage = "http://www.example.com" + url = "http://www.example.com/mvdefaults-1.0.tar.gz" - version('1.0', 'abcdef') + version('1.0', 'abcdef1234567890abcdef1234567890') variant('foo', values=('a', 'b', 'c'), default=('a', 'b', 'c'), multi=True, description='') diff --git a/var/spack/repos/builtin.mock/packages/override-context-templates/package.py b/var/spack/repos/builtin.mock/packages/override-context-templates/package.py index 9d8e0bbbc42..f2f6f1c941b 100644 --- a/var/spack/repos/builtin.mock/packages/override-context-templates/package.py +++ b/var/spack/repos/builtin.mock/packages/override-context-templates/package.py @@ -14,7 +14,7 @@ class OverrideContextTemplates(Package): homepage = "http://www.fake-spack-example.org" url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') tcl_template = 'extension.tcl' tcl_context = {'sentence': "sentence from package"} diff --git a/var/spack/repos/builtin.mock/packages/override-module-templates/package.py b/var/spack/repos/builtin.mock/packages/override-module-templates/package.py index 3f552a7cb62..16d453d5b3d 100644 --- a/var/spack/repos/builtin.mock/packages/override-module-templates/package.py +++ b/var/spack/repos/builtin.mock/packages/override-module-templates/package.py @@ -10,7 +10,7 @@ class OverrideModuleTemplates(Package): homepage = "http://www.fake-spack-example.org" url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') tcl_template = 'override.txt' lmod_template = 'override.txt' diff --git a/var/spack/repos/builtin.mock/packages/perl-extension/package.py b/var/spack/repos/builtin.mock/packages/perl-extension/package.py index 61f4531c25e..1aab8838c40 100644 --- a/var/spack/repos/builtin.mock/packages/perl-extension/package.py +++ b/var/spack/repos/builtin.mock/packages/perl-extension/package.py @@ -13,8 +13,8 @@ class PerlExtension(PerlPackage): homepage = "http://www.example.com" url = "http://www.example.com/extension1-1.0.tar.gz" - version('1.0', 'hash-extension-1.0') - version('2.0', 'hash-extension-2.0') + version('1.0', '00000000000000000000000000000010') + version('2.0', '00000000000000000000000000000020') extends("perl") diff --git a/var/spack/repos/builtin.mock/packages/perl/package.py b/var/spack/repos/builtin.mock/packages/perl/package.py index 376ea976e2b..0e1b2a0f67b 100644 --- a/var/spack/repos/builtin.mock/packages/perl/package.py +++ b/var/spack/repos/builtin.mock/packages/perl/package.py @@ -12,4 +12,4 @@ class Perl(Package): extendable = True - version('0.0.0', 'hash') + version('0.0.0', 'abcdef1234567890abcdef1234567890') diff --git a/var/spack/repos/builtin.mock/packages/printing-package/package.py b/var/spack/repos/builtin.mock/packages/printing-package/package.py index f2211236686..9ccdca49eae 100644 --- a/var/spack/repos/builtin.mock/packages/printing-package/package.py +++ b/var/spack/repos/builtin.mock/packages/printing-package/package.py @@ -14,7 +14,7 @@ class PrintingPackage(Package): homepage = "http://www.example.com/printing_package" url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): print("BEFORE INSTALL") diff --git a/var/spack/repos/builtin.mock/packages/py-extension1/package.py b/var/spack/repos/builtin.mock/packages/py-extension1/package.py index bfee8f95e86..d7a88c5123d 100644 --- a/var/spack/repos/builtin.mock/packages/py-extension1/package.py +++ b/var/spack/repos/builtin.mock/packages/py-extension1/package.py @@ -16,8 +16,8 @@ class PyExtension1(PythonPackage): # Override settings in base class maintainers = [] - version('1.0', 'hash-extension1-1.0') - version('2.0', 'hash-extension1-2.0') + version('1.0', '00000000000000000000000000000110') + version('2.0', '00000000000000000000000000000120') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/py-extension2/package.py b/var/spack/repos/builtin.mock/packages/py-extension2/package.py index 05ad308d152..e4663ca789f 100644 --- a/var/spack/repos/builtin.mock/packages/py-extension2/package.py +++ b/var/spack/repos/builtin.mock/packages/py-extension2/package.py @@ -20,7 +20,7 @@ class PyExtension2(PythonPackage): extends("python") depends_on('py-extension1', type=('build', 'run')) - version('1.0', 'hash-extension2-1.0') + version('1.0', '00000000000000000000000000000210') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/py-extension3/package.py b/var/spack/repos/builtin.mock/packages/py-extension3/package.py index 1c3da0fa2da..575d38866f2 100644 --- a/var/spack/repos/builtin.mock/packages/py-extension3/package.py +++ b/var/spack/repos/builtin.mock/packages/py-extension3/package.py @@ -16,6 +16,6 @@ class PyExtension3(Package): depends_on('patchelf@0.9', when='@1.0:1.1 ^python@:2') depends_on('patchelf@0.10', when='@1.0:1.1 ^python@3:') - version('2.0', 'hash-extension3-1.0') - version('1.1', 'hash-extension3-1.0') - version('1.0', 'hash-extension3-1.0') + version('2.0', '00000000000000000000000000000320') + version('1.1', '00000000000000000000000000000311') + version('1.0', '00000000000000000000000000000310') diff --git a/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py b/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py index c61e1d1842f..7cfff2ed630 100644 --- a/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py +++ b/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py @@ -10,7 +10,7 @@ class QuantumEspresso(Package): homepage = "http://www.example.com" url = "http://www.example.com/qe-1.0.tar.gz" - version(1.0, 'foobar') + version(1.0, '1234567890abcdef1234567890abcdef') variant('invino', default=True, description='?') variant('veritas', default=True, description='?') diff --git a/var/spack/repos/builtin.mock/packages/raiser/package.py b/var/spack/repos/builtin.mock/packages/raiser/package.py index 9fd15341bf2..323d7b194e1 100644 --- a/var/spack/repos/builtin.mock/packages/raiser/package.py +++ b/var/spack/repos/builtin.mock/packages/raiser/package.py @@ -17,7 +17,7 @@ class Raiser(Package): url = "http://www.example.com/a-1.0.tar.gz" version('1.0', '0123456789abcdef0123456789abcdef') - version('2.0', '2.0_a_hash') + version('2.0', 'abcdef0123456789abcdef0123456789') variant( 'exc_type', diff --git a/var/spack/repos/builtin.mock/packages/requires-virtual/package.py b/var/spack/repos/builtin.mock/packages/requires-virtual/package.py index 00398c4caf5..b995f3ae3a2 100644 --- a/var/spack/repos/builtin.mock/packages/requires-virtual/package.py +++ b/var/spack/repos/builtin.mock/packages/requires-virtual/package.py @@ -11,6 +11,6 @@ class RequiresVirtual(Package): homepage = "http://www.example.com" url = "http://www.example.com/a-1.0.tar.gz" - version('2.0', '2.0_a_hash') + version('2.0', 'abcdef0123456789abcdef0123456789') depends_on('stuff') diff --git a/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py index 167a81ca674..88c80e9844a 100644 --- a/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py +++ b/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py @@ -3,6 +3,9 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) class RootAddsVirtual(Package): - version('1.0', sha256='abcde') + homepage = "http://www.example.com" + url = "http://www.example.com/root-adds-virtual-1.0.tar.gz" + + version('1.0', sha256='abcdef0123456789abcdef0123456789') depends_on('middle-adds-virtual') diff --git a/var/spack/repos/builtin.mock/packages/root/package.py b/var/spack/repos/builtin.mock/packages/root/package.py index b0de915b291..31fd31a4e0b 100644 --- a/var/spack/repos/builtin.mock/packages/root/package.py +++ b/var/spack/repos/builtin.mock/packages/root/package.py @@ -3,6 +3,9 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) class Root(Package): - version('1.0', 'abcdef') + homepage = "http://www.example.com" + url = "http://www.example.com/root-1.0.tar.gz" + + version('1.0', 'abcdef0123456789abcdef0123456789') depends_on('gmt') diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py index 26d05ac2968..15f6f58c428 100644 --- a/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py +++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py @@ -8,7 +8,7 @@ class SinglevalueVariant(Package): homepage = "http://www.llnl.gov" url = "http://www.llnl.gov/mpileaks-1.0.tar.gz" - version(1.0, 'foobarbaz') + version(1.0, '0123456789abcdef0123456789abcdef') variant( 'fum', diff --git a/var/spack/repos/builtin.mock/packages/test-error/package.py b/var/spack/repos/builtin.mock/packages/test-error/package.py index b50dd1f43ff..efce8bd0fbd 100644 --- a/var/spack/repos/builtin.mock/packages/test-error/package.py +++ b/var/spack/repos/builtin.mock/packages/test-error/package.py @@ -12,7 +12,7 @@ class TestError(Package): homepage = "http://www.example.com/test-failure" url = "http://www.test-failure.test/test-failure-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/test-fail/package.py b/var/spack/repos/builtin.mock/packages/test-fail/package.py index 13e5b0608de..79abfae85ec 100644 --- a/var/spack/repos/builtin.mock/packages/test-fail/package.py +++ b/var/spack/repos/builtin.mock/packages/test-fail/package.py @@ -12,7 +12,7 @@ class TestFail(Package): homepage = "http://www.example.com/test-failure" url = "http://www.test-failure.test/test-failure-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py b/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py index 8b2b2be70d8..0f3a0426b48 100644 --- a/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py +++ b/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py @@ -7,6 +7,6 @@ class TriggerExternalNonDefaultVariant(Package): homepage = "http://www.example.com" url = "http://www.someurl.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') depends_on('external-non-default-variant') diff --git a/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py b/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py index 995a752b5bb..0153bde87aa 100644 --- a/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py +++ b/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py @@ -12,7 +12,7 @@ class TrivialInstallTestPackage(Package): homepage = "http://www.example.com/trivial_install" url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') def install(self, spec, prefix): configure('--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py b/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py index 6dbdd07ea86..5d7c3adf784 100644 --- a/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py +++ b/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py @@ -11,7 +11,7 @@ class TrivialSmokeTest(Package): homepage = "http://www.example.com/trivial_test" url = "http://www.unit-test-should-replace-this-url/trivial_test-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') test_source_filename = 'cached_file.in' diff --git a/var/spack/repos/builtin.mock/packages/unsat-provider/package.py b/var/spack/repos/builtin.mock/packages/unsat-provider/package.py index a801b2c547a..c8aef3563e9 100644 --- a/var/spack/repos/builtin.mock/packages/unsat-provider/package.py +++ b/var/spack/repos/builtin.mock/packages/unsat-provider/package.py @@ -7,7 +7,7 @@ class UnsatProvider(Package): homepage = "http://www.example.com" url = "http://www.example.com/v1.0.tgz" - version('1.0', sha256='foobarbaz') + version('1.0', sha256='0123456789abcdef0123456789abcdef') variant('foo', default=True, description='') diff --git a/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py b/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py index 0d3a688565f..03682da7cf0 100644 --- a/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py +++ b/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py @@ -7,6 +7,6 @@ class UnsatVirtualDependency(Package): homepage = "http://www.example.com" url = "http://www.example.com/v1.0.tgz" - version('1.0', sha256='foobarbaz') + version('1.0', sha256='0123456789abcdef0123456789abcdef') depends_on('unsatvdep') diff --git a/var/spack/repos/builtin.mock/packages/url-list-test/package.py b/var/spack/repos/builtin.mock/packages/url-list-test/package.py index 846a7bf18ed..60a4279fc2d 100644 --- a/var/spack/repos/builtin.mock/packages/url-list-test/package.py +++ b/var/spack/repos/builtin.mock/packages/url-list-test/package.py @@ -16,10 +16,10 @@ class UrlListTest(Package): list_url = 'file://' + web_data_path + '/index.html' list_depth = 3 - version('0.0.0', 'abc000') - version('1.0.0', 'abc100') - version('3.0', 'abc30') - version('4.5', 'abc45') - version('2.0.0b2', 'abc200b2') - version('3.0a1', 'abc30a1') - version('4.5-rc5', 'abc45rc5') + version('0.0.0', '00000000000000000000000000000000') + version('1.0.0', '00000000000000000000000000000100') + version('3.0', '00000000000000000000000000000030') + version('4.5', '00000000000000000000000000000450') + version('2.0.0b2', '000000000000000000000000000200b2') + version('3.0a1', '000000000000000000000000000030a1') + version('4.5-rc5', '000000000000000000000000000045c5') diff --git a/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py b/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py index 1b797ca3cdc..c532539ee1f 100644 --- a/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py +++ b/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py @@ -9,10 +9,13 @@ class UrlOnlyOverrideWithGaps(Package): homepage = 'http://www.example.com' - version('1.0.5', 'abcdef0') - version('1.0.0', 'bcdef0a', url='http://a.example.com/url_override-1.0.0.tar.gz') - version('0.9.5', 'cdef0ab') - version('0.9.0', 'def0abc', url='http://b.example.com/url_override-0.9.0.tar.gz') - version('0.8.5', 'ef0abcd') - version('0.8.1', 'f0abcde', url='http://c.example.com/url_override-0.8.1.tar.gz') - version('0.7.0', '0abcdef') + version('1.0.5', 'abcdef0123456789abcdef0123456789') + version('1.0.0', 'bcdef0123456789abcdef0123456789a', + url='http://a.example.com/url_override-1.0.0.tar.gz') + version('0.9.5', 'cdef0123456789abcdef0123456789ab') + version('0.9.0', 'def0123456789abcdef0123456789abc', + url='http://b.example.com/url_override-0.9.0.tar.gz') + version('0.8.5', 'ef0123456789abcdef0123456789abcd') + version('0.8.1', 'f0123456789abcdef0123456789abcde', + url='http://c.example.com/url_override-0.8.1.tar.gz') + version('0.7.0', '0123456789abcdef0123456789abcdef') diff --git a/var/spack/repos/builtin.mock/packages/url-only-override/package.py b/var/spack/repos/builtin.mock/packages/url-only-override/package.py index 9a3d01036f7..61c3b220d11 100644 --- a/var/spack/repos/builtin.mock/packages/url-only-override/package.py +++ b/var/spack/repos/builtin.mock/packages/url-only-override/package.py @@ -9,6 +9,6 @@ class UrlOnlyOverride(Package): homepage = 'http://www.example.com' - version('1.0.0', 'cxyzab', url='http://a.example.com/url_override-1.0.0.tar.gz') - version('0.9.0', 'bcxyza', url='http://b.example.com/url_override-0.9.0.tar.gz') - version('0.8.1', 'cxyzab', url='http://c.example.com/url_override-0.8.1.tar.gz') + version('1.0.0', '0123456789abcdef0123456789abcdef', url='http://a.example.com/url_override-1.0.0.tar.gz') + version('0.9.0', 'fedcba9876543210fedcba9876543210', url='http://b.example.com/url_override-0.9.0.tar.gz') + version('0.8.1', '0123456789abcdef0123456789abcdef', url='http://c.example.com/url_override-0.8.1.tar.gz') diff --git a/var/spack/repos/builtin.mock/packages/url_override/package.py b/var/spack/repos/builtin.mock/packages/url_override/package.py index c68fd0edd0f..fdbf31a002e 100644 --- a/var/spack/repos/builtin.mock/packages/url_override/package.py +++ b/var/spack/repos/builtin.mock/packages/url_override/package.py @@ -10,6 +10,6 @@ class UrlOverride(Package): homepage = 'http://www.doesnotexist.org' url = 'http://www.doesnotexist.org/url_override-1.0.0.tar.gz' - version('1.0.0', 'cxyzab') - version('0.9.0', 'bcxyza', url='http://www.anothersite.org/uo-0.9.0.tgz') - version('0.8.1', 'cxyzab') + version('1.0.0', '0123456789abcdef0123456789abcdef') + version('0.9.0', 'fedcba9876543210fedcba9876543210', url='http://www.anothersite.org/uo-0.9.0.tgz') + version('0.8.1', '0123456789abcdef0123456789abcdef') diff --git a/var/spack/repos/builtin.mock/packages/zmpi/package.py b/var/spack/repos/builtin.mock/packages/zmpi/package.py index af3bee6ef3e..e50bc1ab9d9 100644 --- a/var/spack/repos/builtin.mock/packages/zmpi/package.py +++ b/var/spack/repos/builtin.mock/packages/zmpi/package.py @@ -12,7 +12,7 @@ class Zmpi(Package): homepage = "http://www.spack-fake-zmpi.org" url = "http://www.spack-fake-zmpi.org/downloads/zmpi-1.0.tar.gz" - version('1.0', 'foobarbaz') + version('1.0', '0123456789abcdef0123456789abcdef') provides('mpi@:10.0') depends_on('fake')