From e552c786a870100e7506edea0aa748320b8d2d35 Mon Sep 17 00:00:00 2001 From: Luke Diorio-Toth Date: Mon, 17 Oct 2022 10:12:33 -0500 Subject: [PATCH] merge with upstream (#7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * py-execnet: 1.9.0 (#33282) * py-execnet: 1.9.0 * bounds * add version 1.12.3 of parallel-netcdf (#33286) * Add checksum for py-psutil 5.9.2 (#33139) * gitlab ci: Print better information about broken specs (#33124) When a pipeline generation job is automatically failed because it generated jobs for specs known to be broken on develop, print better information about the broken specs that were encountered. Include at a minimum the hash and the url of the job whose failure caused it to be put on the broken specs list in the first place. * meson: remove slash in path (#33292) * Add checksum for py-gitpython 3.1.27 (#33285) * Add checksum for py-gitpython 3.1.27 * Update package.py * Update var/spack/repos/builtin/packages/py-gitpython/package.py Co-authored-by: Adam J. Stewart Co-authored-by: Adam J. Stewart * UPC++/GASNet-EX 2022.9.0 update (#33277) * gasnet: Add new release hash * upcxx: Add new release hash * gasnet: misc updates * upcxx: misc updates * Fix pika@0.9.0 sha (#33307) * hip@5.2.0 onwards: set prefix properly (#33257) * hip-set-prefix-rocm5.2.0-onwards * Update var/spack/repos/builtin/packages/hip/package.py Update description Co-authored-by: Satish Balay * petsc,py-petsc4py,slepc,py-slepc4py: add version 3.18.0 (#32938) * petsc,py-petsc4py,slepc,py-slepc4py: add version 3.18.0 * workaround for dealii build failure [with petsc version check] * pism: add compatibility fix to for petsc@3.18 * add in hipsolver dependency * py-libensemble: updating package for v0.9.3 (#33298) * commit updating py-libensemble package for 0.9.3 * removed commented-out lines * Add checksum for py-oauthlib 3.2.1 (#33201) * Add checksum for py-oauthlib 3.2.1 * Update package.py * [@spackbot] updating style on behalf of iarspider * Update package.py * Update package.py Co-authored-by: iarspider * ninja: New version 1.11.1 (#33215) * seacas: update to latest release (#33330) Add checksum for latest tag/release * gptl: new version 8.1.1; use the correct mpi fortran compiler (#33235) * gptl: new version 8.1.1; use the correct `mpifc` * add `F90` and `$F77` * glib: add 2.74.0 and 2.72.4 (#33332) * depfile: update docs (#33279) * rocksdb: add 7.7.3 (#33341) * Add checksum for py-seaborn 0.12.0 (#33145) * Add checksum for py-seaborn 0.12.0 * Update package.py * Update package.py * [@spackbot] updating style on behalf of iarspider * Update package.py Co-authored-by: iarspider * CI: allow multiple matches to combine tags (#32290) Currently "spack ci generate" chooses the first matching entry in gitlab-ci:mappings to fill attributes for a generated build-job, requiring that the entire configuration matrix is listed out explicitly. This unfortunately causes significant problems in environments with large configuration spaces, for example the environment in #31598 (spack.yaml) supports 5 operating systems, 3 architectures and 130 packages with explicit size requirements, resulting in 1300 lines of configuration YAML. This patch adds a configuraiton option to the gitlab-ci schema called "match_behavior"; when it is set to "merge", all matching entries are applied in order to the final build-job, allowing a few entries to cover an entire matrix of configurations. The default for "match_behavior" is "first", which behaves as before this commit (only the runner attributes of the first match are used). In addition, match entries may now include a "remove-attributes" configuration, which allows matches to remove tags that have been aggregated by prior matches. This only makes sense to use with "match_behavior:merge". You can combine "runner-attributes" with "remove-attributes" to effectively override prior tags. * meson: update OneAPI compiler support patch (#33293) * py-tensorflow: fix zlib (#33349) * py-tensorflow: fix zlib * [@spackbot] updating style on behalf of haampie Co-authored-by: haampie * py-meson-python: add new versions (#33294) * tasmanian: disable openmp by default (#33345) * octopus: upgrade to 12.1 (#33343) * py-sphinx: add v5.3 and v5.2 (#33356) * py-setuptools: add v65.5.0 (#33353) * libblastrampoline: Add versions 5.1.1, 5.2.0 (#33352) * nextflow: add v20.10.0 (#33354) * sdl2: add v2.0.22 and v2.24.1 (#33351) * mariadb-c-client: add 3.3.2, 3.2.7, 3.1.18, 3.0.10 (#33335) * py-tensorflow-hub: zlib, again. (#33359) * Add checksum for py-sniffio 1.3.0 (#32975) * py-numpy: add v1.23.4 (#33260) * py-jupyterlab-pygments: install from wheel to avoid cyclic dependency (#33278) * py-jupyterlab-pygments: avoid cyclic dependency * Fix style * Update package.py * Update package.py * [@spackbot] updating style on behalf of iarspider * Update package.py * Flake-8 * fix Co-authored-by: iarspider * installer.py: show timers for binary install (#33305) Print a message of the form ``` Fetch mm:ss. Build: mm:ss. Total: mm:ss ``` when installing from buildcache. Previously this only happened for source builds. * Add checksum for py-astroid 2.12.7, py-astroid 2.12.10, py-setuptools 62.6.0, py-wrapt 1.14.1, py-pylint 2.15.0 (#32976) * Add checksum for py-astroid 2.12.7, py-setuptools 62.6.0 * Also add checksum for py-wrapt * Update package.py * Update package.py (#57) * Update package.py * Update package.py * Update package.py * gitlab ci: Do not force protected build jobs to run on aws runners (#33314) * installer.py: fix/test get_deptypes (#33363) Fixing an oversight in https://github.com/spack/spack/pull/32537 `get_deptypes` should depend on new `package/dependencies_cache_only` props. * Add checksum for py-grpcio-tools 1.48.1 (#33358) * Add checksum for py-prompt-toolkit 3.0.31 (#33362) Co-authored-by: Harmen Stoppels Co-authored-by: Jim Edwards Co-authored-by: iarspider Co-authored-by: Scott Wittenburg Co-authored-by: Adam J. Stewart Co-authored-by: Dan Bonachea Co-authored-by: Auriane R <48684432+aurianer@users.noreply.github.com> Co-authored-by: eugeneswalker <38933153+eugeneswalker@users.noreply.github.com> Co-authored-by: Satish Balay Co-authored-by: John-Luke Navarro <33131245+jlnav@users.noreply.github.com> Co-authored-by: iarspider Co-authored-by: Erik Schnetter Co-authored-by: Greg Sjaardema Co-authored-by: WuK Co-authored-by: Michael Kuhn Co-authored-by: Jonathon Anderson <17242663+blue42u@users.noreply.github.com> Co-authored-by: haampie Co-authored-by: Miroslav Stoyanov <30537612+mkstoyanov@users.noreply.github.com> Co-authored-by: Hans Fangohr Co-authored-by: Mosè Giordano Co-authored-by: Diego Alvarez Co-authored-by: Wouter Deconinck --- lib/spack/docs/environments.rst | 46 ++++- lib/spack/spack/build_systems/meson.py | 2 +- lib/spack/spack/ci.py | 111 ++++++++++-- lib/spack/spack/cmd/ci.py | 39 +---- lib/spack/spack/installer.py | 88 +++++++--- lib/spack/spack/schema/gitlab_ci.py | 11 ++ lib/spack/spack/test/buildrequest.py | 33 ++++ lib/spack/spack/test/cmd/ci.py | 60 +++++-- .../stacks/aws-ahug-aarch64/spack.yaml | 1 + .../stacks/aws-ahug/spack.yaml | 1 + .../stacks/aws-isc-aarch64/spack.yaml | 1 + .../cloud_pipelines/stacks/aws-isc/spack.yaml | 1 + .../stacks/build_systems/spack.yaml | 1 + .../stacks/data-vis-sdk/spack.yaml | 1 + .../cloud_pipelines/stacks/e4s-mac/spack.yaml | 1 + .../stacks/e4s-on-power/spack.yaml | 1 + .../stacks/e4s-oneapi/spack.yaml | 1 + .../cloud_pipelines/stacks/e4s/spack.yaml | 1 + .../cloud_pipelines/stacks/ml-cpu/spack.yaml | 1 + .../cloud_pipelines/stacks/ml-cuda/spack.yaml | 1 + .../cloud_pipelines/stacks/ml-rocm/spack.yaml | 1 + .../stacks/radiuss-aws-aarch64/spack.yaml | 1 + .../stacks/radiuss-aws/spack.yaml | 1 + .../cloud_pipelines/stacks/radiuss/spack.yaml | 1 + .../stacks/tutorial/spack.yaml | 1 + .../repos/builtin/packages/gasnet/package.py | 6 +- .../repos/builtin/packages/glib/package.py | 8 +- .../repos/builtin/packages/gptl/package.py | 5 + .../repos/builtin/packages/hip/package.py | 10 +- .../packages/libblastrampoline/package.py | 2 + .../packages/mariadb-c-client/package.py | 4 + .../repos/builtin/packages/meson/oneapi.patch | 158 ++++++++++++++++++ .../repos/builtin/packages/meson/package.py | 11 +- .../builtin/packages/nextflow/package.py | 5 + .../repos/builtin/packages/ninja/package.py | 1 + .../repos/builtin/packages/octopus/package.py | 1 + .../packages/parallel-netcdf/package.py | 1 + .../repos/builtin/packages/petsc/package.py | 6 +- .../revert-3.18.0-ver-format-for-dealii.patch | 57 +++++++ .../repos/builtin/packages/pika/package.py | 2 +- .../repos/builtin/packages/pism/package.py | 2 + .../packages/pism/pism-petsc-3.18.diff | 22 +++ .../builtin/packages/py-astroid/package.py | 13 +- .../builtin/packages/py-execnet/package.py | 4 +- .../builtin/packages/py-gitpython/package.py | 6 +- .../packages/py-grpcio-tools/package.py | 7 +- .../py-jupyterlab-pygments/package.py | 28 +++- .../packages/py-libensemble/package.py | 8 +- .../packages/py-meson-python/package.py | 11 +- .../builtin/packages/py-numpy/package.py | 1 + .../builtin/packages/py-oauthlib/package.py | 23 ++- .../builtin/packages/py-petsc4py/package.py | 3 + .../packages/py-prompt-toolkit/package.py | 1 + .../builtin/packages/py-psutil/package.py | 3 + .../builtin/packages/py-pylint/package.py | 47 +++--- .../builtin/packages/py-seaborn/package.py | 24 ++- .../builtin/packages/py-setuptools/package.py | 20 ++- .../builtin/packages/py-slepc4py/package.py | 3 + .../builtin/packages/py-sniffio/package.py | 2 + .../builtin/packages/py-sphinx/package.py | 4 + ...VE-use-fossils-url-which-is-more-sta.patch | 29 ++++ .../packages/py-tensorflow-hub/package.py | 7 +- .../py-tensorflow-metadata/package.py | 7 + .../builtin/packages/py-tensorflow/package.py | 10 +- .../builtin/packages/py-wrapt/package.py | 1 + .../repos/builtin/packages/rocksdb/package.py | 1 + .../repos/builtin/packages/sdl2/package.py | 4 + .../repos/builtin/packages/seacas/package.py | 3 + .../repos/builtin/packages/slepc/package.py | 2 + .../builtin/packages/tasmanian/package.py | 3 +- .../repos/builtin/packages/upcxx/package.py | 8 +- 71 files changed, 814 insertions(+), 177 deletions(-) create mode 100644 var/spack/repos/builtin/packages/meson/oneapi.patch create mode 100644 var/spack/repos/builtin/packages/petsc/revert-3.18.0-ver-format-for-dealii.patch create mode 100644 var/spack/repos/builtin/packages/pism/pism-petsc-3.18.diff create mode 100644 var/spack/repos/builtin/packages/py-tensorflow-hub/0001-zlib-bump-over-CVE-use-fossils-url-which-is-more-sta.patch diff --git a/lib/spack/docs/environments.rst b/lib/spack/docs/environments.rst index 2b981373149cf6..b417e26f3e13d0 100644 --- a/lib/spack/docs/environments.rst +++ b/lib/spack/docs/environments.rst @@ -986,7 +986,7 @@ A typical workflow is as follows: spack env create -d . spack -e . add perl spack -e . concretize - spack -e . env depfile > Makefile + spack -e . env depfile -o Makefile make -j64 This generates a ``Makefile`` from a concretized environment in the @@ -999,7 +999,6 @@ load, even when packages are built in parallel. By default the following phony convenience targets are available: - ``make all``: installs the environment (default target); -- ``make fetch-all``: only fetch sources of all packages; - ``make clean``: cleans files used by make, but does not uninstall packages. .. tip:: @@ -1009,8 +1008,17 @@ By default the following phony convenience targets are available: printed orderly per package install. To get synchronized output with colors, use ``make -j SPACK_COLOR=always --output-sync=recurse``. -The following advanced example shows how generated targets can be used in a -``Makefile``: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Specifying dependencies on generated ``make`` targets +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +An interesting question is how to include generated ``Makefile``\s in your own +``Makefile``\s. This comes up when you want to install an environment that provides +executables required in a command for a make target of your own. + +The example below shows how to accomplish this: the ``env`` target specifies +the generated ``spack/env`` target as a prerequisite, meaning that the environment +gets installed and is available for use in the ``env`` target. .. code:: Makefile @@ -1036,11 +1044,10 @@ The following advanced example shows how generated targets can be used in a include env.mk endif -When ``make`` is invoked, it first "remakes" the missing include ``env.mk`` -from its rule, which triggers concretization. When done, the generated target -``spack/env`` is available. In the above example, the ``env`` target uses this generated -target as a prerequisite, meaning that it can make use of the installed packages in -its commands. +This works as follows: when ``make`` is invoked, it first "remakes" the missing +include ``env.mk`` as there is a target for it. This triggers concretization of +the environment and makes spack output ``env.mk``. At that point the +generated target ``spack/env`` becomes available through ``include env.mk``. As it is typically undesirable to remake ``env.mk`` as part of ``make clean``, the include is conditional. @@ -1051,3 +1058,24 @@ the include is conditional. the ``--make-target-prefix`` flag and use the non-phony target ``/env`` as prerequisite, instead of the phony target ``/all``. + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Building a subset of the environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The generated ``Makefile``\s contain install targets for each spec. Given the hash +of a particular spec, you can use the ``.install/`` target to install the +spec with its dependencies. There is also ``.install-deps/`` to *only* install +its dependencies. This can be useful when certain flags should only apply to +dependencies. Below we show a use case where a spec is installed with verbose +output (``spack install --verbose``) while its dependencies are installed silently: + +.. code:: console + + $ spack env depfile -o Makefile --make-target-prefix my_env + + # Install dependencies in parallel, only show a log on error. + $ make -j16 my_env/.install-deps/ SPACK_INSTALL_FLAGS=--show-log-on-error + + # Install the root spec with verbose output. + $ make -j16 my_env/.install/ SPACK_INSTALL_FLAGS=--verbose \ No newline at end of file diff --git a/lib/spack/spack/build_systems/meson.py b/lib/spack/spack/build_systems/meson.py index 6f5f2d6cbb8b6a..cafd613808fb05 100644 --- a/lib/spack/spack/build_systems/meson.py +++ b/lib/spack/spack/build_systems/meson.py @@ -75,7 +75,7 @@ class MesonPackage(PackageBase): @property def archive_files(self): """Files to archive for packages based on Meson""" - return [os.path.join(self.build_directory, "meson-logs/meson-log.txt")] + return [os.path.join(self.build_directory, "meson-logs", "meson-log.txt")] @property def root_mesonlists_dir(self): diff --git a/lib/spack/spack/ci.py b/lib/spack/spack/ci.py index 198e787dea5c95..e471e0420969de 100644 --- a/lib/spack/spack/ci.py +++ b/lib/spack/spack/ci.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import base64 +import codecs import copy import json import os @@ -396,6 +397,14 @@ def _spec_matches(spec, match_string): return spec.satisfies(match_string) +def _remove_attributes(src_dict, dest_dict): + if "tags" in src_dict and "tags" in dest_dict: + # For 'tags', we remove any tags that are listed for removal + for tag in src_dict["tags"]: + while tag in dest_dict["tags"]: + dest_dict["tags"].remove(tag) + + def _copy_attributes(attrs_list, src_dict, dest_dict): for runner_attr in attrs_list: if runner_attr in src_dict: @@ -429,19 +438,23 @@ def _find_matching_config(spec, gitlab_ci): _copy_attributes(overridable_attrs, gitlab_ci, runner_attributes) - ci_mappings = gitlab_ci["mappings"] - for ci_mapping in ci_mappings: + matched = False + only_first = gitlab_ci.get("match_behavior", "first") == "first" + for ci_mapping in gitlab_ci["mappings"]: for match_string in ci_mapping["match"]: if _spec_matches(spec, match_string): + matched = True + if "remove-attributes" in ci_mapping: + _remove_attributes(ci_mapping["remove-attributes"], runner_attributes) if "runner-attributes" in ci_mapping: _copy_attributes( overridable_attrs, ci_mapping["runner-attributes"], runner_attributes ) - return runner_attributes - else: - return None + break + if matched and only_first: + break - return runner_attributes + return runner_attributes if matched else None def _pkg_name_from_spec_label(spec_label): @@ -865,7 +878,7 @@ def generate_gitlab_ci_yaml( # For spack pipelines "public" and "protected" are reserved tags tags = _remove_reserved_tags(tags) if spack_pipeline_type == "spack_protected_branch": - tags.extend(["aws", "protected"]) + tags.extend(["protected"]) elif spack_pipeline_type == "spack_pull_request": tags.extend(["public"]) @@ -1021,9 +1034,7 @@ def generate_gitlab_ci_yaml( continue if broken_spec_urls is not None and release_spec_dag_hash in broken_spec_urls: - known_broken_specs_encountered.append( - "{0} ({1})".format(release_spec, release_spec_dag_hash) - ) + known_broken_specs_encountered.append(release_spec_dag_hash) # Only keep track of these if we are copying rebuilt cache entries if spack_buildcache_copy: @@ -1286,6 +1297,7 @@ def generate_gitlab_ci_yaml( "SPACK_JOB_TEST_DIR": rel_job_test_dir, "SPACK_LOCAL_MIRROR_DIR": rel_local_mirror_dir, "SPACK_PIPELINE_TYPE": str(spack_pipeline_type), + "SPACK_CI_STACK_NAME": os.environ.get("SPACK_CI_STACK_NAME", "None"), } if remote_mirror_override: @@ -1343,13 +1355,9 @@ def generate_gitlab_ci_yaml( sorted_output = {"no-specs-to-rebuild": noop_job} if known_broken_specs_encountered: - error_msg = ( - "Pipeline generation failed due to the presence of the " - "following specs that are known to be broken in develop:\n" - ) - for broken_spec in known_broken_specs_encountered: - error_msg += "* {0}\n".format(broken_spec) - tty.die(error_msg) + tty.error("This pipeline generated hashes known to be broken on develop:") + display_broken_spec_messages(broken_specs_url, known_broken_specs_encountered) + tty.die() with open(output_file, "w") as outf: outf.write(syaml.dump_config(sorted_output, default_flow_style=True)) @@ -2060,6 +2068,75 @@ def create_buildcache(**kwargs): push_mirror_contents(env, json_path, pipeline_mirror_url, sign_binaries) +def write_broken_spec(url, pkg_name, stack_name, job_url, pipeline_url, spec_dict): + """Given a url to write to and the details of the failed job, write an entry + in the broken specs list. + """ + tmpdir = tempfile.mkdtemp() + file_path = os.path.join(tmpdir, "broken.txt") + + broken_spec_details = { + "broken-spec": { + "job-name": pkg_name, + "job-stack": stack_name, + "job-url": job_url, + "pipeline-url": pipeline_url, + "concrete-spec-dict": spec_dict, + } + } + + try: + with open(file_path, "w") as fd: + fd.write(syaml.dump(broken_spec_details)) + web_util.push_to_url( + file_path, + url, + keep_original=False, + extra_args={"ContentType": "text/plain"}, + ) + except Exception as err: + # If there is an S3 error (e.g., access denied or connection + # error), the first non boto-specific class in the exception + # hierarchy is Exception. Just print a warning and return + msg = "Error writing to broken specs list {0}: {1}".format(url, err) + tty.warn(msg) + finally: + shutil.rmtree(tmpdir) + + +def read_broken_spec(broken_spec_url): + """Read data from broken specs file located at the url, return as a yaml + object. + """ + try: + _, _, fs = web_util.read_from_url(broken_spec_url) + except (URLError, web_util.SpackWebError, HTTPError): + tty.warn("Unable to read broken spec from {0}".format(broken_spec_url)) + return None + + broken_spec_contents = codecs.getreader("utf-8")(fs).read() + return syaml.load(broken_spec_contents) + + +def display_broken_spec_messages(base_url, hashes): + """Fetch the broken spec file for each of the hashes under the base_url and + print a message with some details about each one. + """ + broken_specs = [(h, read_broken_spec(url_util.join(base_url, h))) for h in hashes] + for spec_hash, broken_spec in [tup for tup in broken_specs if tup[1]]: + details = broken_spec["broken-spec"] + if "job-name" in details: + item_name = "{0}/{1}".format(details["job-name"], spec_hash[:7]) + else: + item_name = spec_hash + + if "job-stack" in details: + item_name = "{0} (in stack {1})".format(item_name, details["job-stack"]) + + msg = " {0} was reported broken here: {1}".format(item_name, details["job-url"]) + tty.msg(msg) + + def run_standalone_tests(**kwargs): """Run stand-alone tests on the current spec. diff --git a/lib/spack/spack/cmd/ci.py b/lib/spack/spack/cmd/ci.py index 7bb0497c811ed3..cd7a0bb767f522 100644 --- a/lib/spack/spack/cmd/ci.py +++ b/lib/spack/spack/cmd/ci.py @@ -7,7 +7,6 @@ import os import shutil import sys -import tempfile import llnl.util.filesystem as fs import llnl.util.tty as tty @@ -19,7 +18,6 @@ import spack.environment as ev import spack.hash_types as ht import spack.mirror -import spack.util.spack_yaml as syaml import spack.util.url as url_util import spack.util.web as web_util @@ -285,6 +283,7 @@ def ci_rebuild(args): spack_pipeline_type = get_env_var("SPACK_PIPELINE_TYPE") remote_mirror_override = get_env_var("SPACK_REMOTE_MIRROR_OVERRIDE") remote_mirror_url = get_env_var("SPACK_REMOTE_MIRROR_URL") + spack_ci_stack_name = get_env_var("SPACK_CI_STACK_NAME") # Construct absolute paths relative to current $CI_PROJECT_DIR ci_project_dir = get_env_var("CI_PROJECT_DIR") @@ -547,34 +546,14 @@ def ci_rebuild(args): dev_fail_hash = job_spec.dag_hash() broken_spec_path = url_util.join(broken_specs_url, dev_fail_hash) tty.msg("Reporting broken develop build as: {0}".format(broken_spec_path)) - tmpdir = tempfile.mkdtemp() - empty_file_path = os.path.join(tmpdir, "empty.txt") - - broken_spec_details = { - "broken-spec": { - "job-url": get_env_var("CI_JOB_URL"), - "pipeline-url": get_env_var("CI_PIPELINE_URL"), - "concrete-spec-dict": job_spec.to_dict(hash=ht.dag_hash), - } - } - - try: - with open(empty_file_path, "w") as efd: - efd.write(syaml.dump(broken_spec_details)) - web_util.push_to_url( - empty_file_path, - broken_spec_path, - keep_original=False, - extra_args={"ContentType": "text/plain"}, - ) - except Exception as err: - # If there is an S3 error (e.g., access denied or connection - # error), the first non boto-specific class in the exception - # hierarchy is Exception. Just print a warning and return - msg = "Error writing to broken specs list {0}: {1}".format(broken_spec_path, err) - tty.warn(msg) - finally: - shutil.rmtree(tmpdir) + spack_ci.write_broken_spec( + broken_spec_path, + job_spec_pkg_name, + spack_ci_stack_name, + get_env_var("CI_JOB_URL"), + get_env_var("CI_PIPELINE_URL"), + job_spec.to_dict(hash=ht.dag_hash), + ) # We generated the "spack install ..." command to "--keep-stage", copy # any logs from the staging directory to artifacts now diff --git a/lib/spack/spack/installer.py b/lib/spack/spack/installer.py index 4150302b28edf7..1de78e392b367d 100644 --- a/lib/spack/spack/installer.py +++ b/lib/spack/spack/installer.py @@ -262,6 +262,30 @@ def _hms(seconds): return " ".join(parts) +def _log_prefix(pkg_name): + """Prefix of the form "[pid]: [pkg name]: ..." when printing a status update during + the build.""" + pid = "{0}: ".format(os.getpid()) if tty.show_pid() else "" + return "{0}{1}:".format(pid, pkg_name) + + +def _print_installed_pkg(message): + """ + Output a message with a package icon. + + Args: + message (str): message to be output + """ + print(colorize("@*g{[+]} ") + spack.util.path.debug_padded_filter(message)) + + +def _print_timer(pre, pkg_id, fetch, build, total): + tty.msg( + "{0} Successfully installed {1}".format(pre, pkg_id), + "Fetch: {0}. Build: {1}. Total: {2}.".format(_hms(fetch), _hms(build), _hms(total)), + ) + + def _install_from_cache(pkg, cache_only, explicit, unsigned=False): """ Extract the package from binary cache @@ -278,7 +302,10 @@ def _install_from_cache(pkg, cache_only, explicit, unsigned=False): bool: ``True`` if the package was extract from binary cache, ``False`` otherwise """ - installed_from_cache = _try_install_from_binary_cache(pkg, explicit, unsigned=unsigned) + timer = Timer() + installed_from_cache = _try_install_from_binary_cache( + pkg, explicit, unsigned=unsigned, timer=timer + ) pkg_id = package_id(pkg) if not installed_from_cache: pre = "No binary for {0} found".format(pkg_id) @@ -287,23 +314,20 @@ def _install_from_cache(pkg, cache_only, explicit, unsigned=False): tty.msg("{0}: installing from source".format(pre)) return False - + timer.stop() tty.debug("Successfully extracted {0} from binary cache".format(pkg_id)) + _print_timer( + pre=_log_prefix(pkg.name), + pkg_id=pkg_id, + fetch=timer.phases.get("search", 0) + timer.phases.get("fetch", 0), + build=timer.phases.get("install", 0), + total=timer.total, + ) _print_installed_pkg(pkg.spec.prefix) spack.hooks.post_install(pkg.spec) return True -def _print_installed_pkg(message): - """ - Output a message with a package icon. - - Args: - message (str): message to be output - """ - print(colorize("@*g{[+]} ") + spack.util.path.debug_padded_filter(message)) - - def _process_external_package(pkg, explicit): """ Helper function to run post install hooks and register external packages. @@ -345,7 +369,9 @@ def _process_external_package(pkg, explicit): spack.store.db.add(spec, None, explicit=explicit) -def _process_binary_cache_tarball(pkg, binary_spec, explicit, unsigned, mirrors_for_spec=None): +def _process_binary_cache_tarball( + pkg, binary_spec, explicit, unsigned, mirrors_for_spec=None, timer=None +): """ Process the binary cache tarball. @@ -357,6 +383,7 @@ def _process_binary_cache_tarball(pkg, binary_spec, explicit, unsigned, mirrors_ otherwise, ``False`` mirrors_for_spec (list): Optional list of concrete specs and mirrors obtained by calling binary_distribution.get_mirrors_for_spec(). + timer (Timer): timer to keep track of binary install phases. Return: bool: ``True`` if the package was extracted from binary cache, @@ -365,6 +392,8 @@ def _process_binary_cache_tarball(pkg, binary_spec, explicit, unsigned, mirrors_ download_result = binary_distribution.download_tarball( binary_spec, unsigned, mirrors_for_spec=mirrors_for_spec ) + if timer: + timer.phase("fetch") # see #10063 : install from source if tarball doesn't exist if download_result is None: tty.msg("{0} exists in binary cache but with different hash".format(pkg.name)) @@ -381,10 +410,12 @@ def _process_binary_cache_tarball(pkg, binary_spec, explicit, unsigned, mirrors_ pkg.installed_from_binary_cache = True spack.store.db.add(pkg.spec, spack.store.layout, explicit=explicit) + if timer: + timer.phase("install") return True -def _try_install_from_binary_cache(pkg, explicit, unsigned=False): +def _try_install_from_binary_cache(pkg, explicit, unsigned=False, timer=None): """ Try to extract the package from binary cache. @@ -393,16 +424,20 @@ def _try_install_from_binary_cache(pkg, explicit, unsigned=False): explicit (bool): the package was explicitly requested by the user unsigned (bool): ``True`` if binary package signatures to be checked, otherwise, ``False`` + timer (Timer): """ pkg_id = package_id(pkg) tty.debug("Searching for binary cache of {0}".format(pkg_id)) matches = binary_distribution.get_mirrors_for_spec(pkg.spec) + if timer: + timer.phase("search") + if not matches: return False return _process_binary_cache_tarball( - pkg, pkg.spec, explicit, unsigned, mirrors_for_spec=matches + pkg, pkg.spec, explicit, unsigned, mirrors_for_spec=matches, timer=timer ) @@ -1841,8 +1876,7 @@ def __init__(self, pkg, install_args): self.filter_fn = spack.util.path.padding_filter if padding else None # info/debug information - pid = "{0}: ".format(os.getpid()) if tty.show_pid() else "" - self.pre = "{0}{1}:".format(pid, pkg.name) + self.pre = _log_prefix(pkg.name) self.pkg_id = package_id(pkg) def run(self): @@ -1885,12 +1919,12 @@ def run(self): # Run post install hooks before build stage is removed. spack.hooks.post_install(self.pkg.spec) - build_time = self.timer.total - self.pkg._fetch_time - tty.msg( - "{0} Successfully installed {1}".format(self.pre, self.pkg_id), - "Fetch: {0}. Build: {1}. Total: {2}.".format( - _hms(self.pkg._fetch_time), _hms(build_time), _hms(self.timer.total) - ), + _print_timer( + pre=self.pre, + pkg_id=self.pkg_id, + fetch=self.pkg._fetch_time, + build=self.timer.total - self.pkg._fetch_time, + total=self.timer.total, ) _print_installed_pkg(self.pkg.prefix) @@ -2357,7 +2391,13 @@ def get_deptypes(self, pkg): """ deptypes = ["link", "run"] include_build_deps = self.install_args.get("include_build_deps") - if not self.install_args.get("cache_only") or include_build_deps: + + if self.pkg_id == package_id(pkg): + cache_only = self.install_args.get("package_cache_only") + else: + cache_only = self.install_args.get("dependencies_cache_only") + + if not cache_only or include_build_deps: deptypes.append("build") if self.run_tests(pkg): deptypes.append("test") diff --git a/lib/spack/spack/schema/gitlab_ci.py b/lib/spack/spack/schema/gitlab_ci.py index d9da5c6ce7f0c1..7c0604aaeeae18 100644 --- a/lib/spack/spack/schema/gitlab_ci.py +++ b/lib/spack/spack/schema/gitlab_ci.py @@ -52,6 +52,15 @@ "properties": runner_attributes_schema_items, } +remove_attributes_schema = { + "type": "object", + "additionalProperties": False, + "required": ["tags"], + "properties": { + "tags": {"type": "array", "items": {"type": "string"}}, + }, +} + core_shared_properties = union_dicts( runner_attributes_schema_items, @@ -80,6 +89,7 @@ ], }, }, + "match_behavior": {"type": "string", "enum": ["first", "merge"], "default": "first"}, "mappings": { "type": "array", "items": { @@ -93,6 +103,7 @@ "type": "string", }, }, + "remove-attributes": remove_attributes_schema, "runner-attributes": runner_selector_schema, }, }, diff --git a/lib/spack/spack/test/buildrequest.py b/lib/spack/spack/test/buildrequest.py index e656cfa99ef912..7c986bb844ae73 100644 --- a/lib/spack/spack/test/buildrequest.py +++ b/lib/spack/spack/test/buildrequest.py @@ -62,3 +62,36 @@ def test_build_request_strings(install_mockery): istr = str(request) assert "package=dependent-install" in istr assert "install_args=" in istr + + +@pytest.mark.parametrize( + "package_cache_only,dependencies_cache_only,package_deptypes,dependencies_deptypes", + [ + (False, False, ["build", "link", "run"], ["build", "link", "run"]), + (True, False, ["link", "run"], ["build", "link", "run"]), + (False, True, ["build", "link", "run"], ["link", "run"]), + (True, True, ["link", "run"], ["link", "run"]), + ], +) +def test_build_request_deptypes( + install_mockery, + package_cache_only, + dependencies_cache_only, + package_deptypes, + dependencies_deptypes, +): + s = spack.spec.Spec("dependent-install").concretized() + + build_request = inst.BuildRequest( + s.package, + { + "package_cache_only": package_cache_only, + "dependencies_cache_only": dependencies_cache_only, + }, + ) + + actual_package_deptypes = build_request.get_deptypes(s.package) + actual_dependency_deptypes = build_request.get_deptypes(s["dependency-install"].package) + + assert sorted(actual_package_deptypes) == package_deptypes + assert sorted(actual_dependency_deptypes) == dependencies_deptypes diff --git a/lib/spack/spack/test/cmd/ci.py b/lib/spack/spack/test/cmd/ci.py index a8eaa2c631d1d9..dff8484199ae65 100644 --- a/lib/spack/spack/test/cmd/ci.py +++ b/lib/spack/spack/test/cmd/ci.py @@ -1358,8 +1358,15 @@ def failing_access(*args, **kwargs): assert expect_msg in std_out +@pytest.mark.parametrize("match_behavior", ["first", "merge"]) def test_ci_generate_override_runner_attrs( - tmpdir, mutable_mock_env_path, install_mockery, mock_packages, monkeypatch, ci_base_environment + tmpdir, + mutable_mock_env_path, + install_mockery, + mock_packages, + monkeypatch, + ci_base_environment, + match_behavior, ): """Test that we get the behavior we want with respect to the provision of runner attributes like tags, variables, and scripts, both when we @@ -1378,6 +1385,7 @@ def test_ci_generate_override_runner_attrs( gitlab-ci: tags: - toplevel + - toplevel2 variables: ONE: toplevelvarone TWO: toplevelvartwo @@ -1388,6 +1396,7 @@ def test_ci_generate_override_runner_attrs( - main step after_script: - post step one + match_behavior: {0} mappings: - match: - flatten-deps @@ -1400,10 +1409,12 @@ def test_ci_generate_override_runner_attrs( - dependency-install - match: - a + remove-attributes: + tags: + - toplevel2 runner-attributes: tags: - specific-a - - toplevel variables: ONE: specificvarone TWO: specificvartwo @@ -1413,10 +1424,17 @@ def test_ci_generate_override_runner_attrs( - custom main step after_script: - custom post step one + - match: + - a + runner-attributes: + tags: + - specific-a-2 service-job-attributes: image: donotcare tags: [donotcare] -""" +""".format( + match_behavior + ) ) with tmpdir.as_cwd(): @@ -1449,9 +1467,12 @@ def test_ci_generate_override_runner_attrs( assert the_elt["variables"]["ONE"] == "specificvarone" assert the_elt["variables"]["TWO"] == "specificvartwo" assert "THREE" not in the_elt["variables"] - assert len(the_elt["tags"]) == 2 + assert len(the_elt["tags"]) == (2 if match_behavior == "first" else 3) assert "specific-a" in the_elt["tags"] + if match_behavior == "merge": + assert "specific-a-2" in the_elt["tags"] assert "toplevel" in the_elt["tags"] + assert "toplevel2" not in the_elt["tags"] assert len(the_elt["before_script"]) == 1 assert the_elt["before_script"][0] == "custom pre step one" assert len(the_elt["script"]) == 1 @@ -1466,8 +1487,9 @@ def test_ci_generate_override_runner_attrs( assert the_elt["variables"]["ONE"] == "toplevelvarone" assert the_elt["variables"]["TWO"] == "toplevelvartwo" assert "THREE" not in the_elt["variables"] - assert len(the_elt["tags"]) == 1 - assert the_elt["tags"][0] == "toplevel" + assert len(the_elt["tags"]) == 2 + assert "toplevel" in the_elt["tags"] + assert "toplevel2" in the_elt["tags"] assert len(the_elt["before_script"]) == 2 assert the_elt["before_script"][0] == "pre step one" assert the_elt["before_script"][1] == "pre step two" @@ -1484,9 +1506,10 @@ def test_ci_generate_override_runner_attrs( assert the_elt["variables"]["ONE"] == "toplevelvarone" assert the_elt["variables"]["TWO"] == "toplevelvartwo" assert the_elt["variables"]["THREE"] == "specificvarthree" - assert len(the_elt["tags"]) == 2 + assert len(the_elt["tags"]) == 3 assert "specific-one" in the_elt["tags"] assert "toplevel" in the_elt["tags"] + assert "toplevel2" in the_elt["tags"] assert len(the_elt["before_script"]) == 2 assert the_elt["before_script"][0] == "pre step one" assert the_elt["before_script"][1] == "pre step two" @@ -1959,13 +1982,16 @@ def test_ci_generate_read_broken_specs_url( spec_flattendeps.concretize() flattendeps_dag_hash = spec_flattendeps.dag_hash() - # Mark 'a' as broken (but not 'flatten-deps') - broken_spec_a_path = str(tmpdir.join(a_dag_hash)) - with open(broken_spec_a_path, "w") as bsf: - bsf.write("") - broken_specs_url = "file://{0}".format(tmpdir.strpath) + # Mark 'a' as broken (but not 'flatten-deps') + broken_spec_a_url = "{0}/{1}".format(broken_specs_url, a_dag_hash) + job_stack = "job_stack" + a_job_url = "a_job_url" + ci.write_broken_spec( + broken_spec_a_url, spec_a.name, job_stack, a_job_url, "pipeline_url", spec_a.to_dict() + ) + # Test that `spack ci generate` notices this broken spec and fails. filename = str(tmpdir.join("spack.yaml")) with open(filename, "w") as f: @@ -2001,11 +2027,13 @@ def test_ci_generate_read_broken_specs_url( output = ci_cmd("generate", output=str, fail_on_error=False) assert "known to be broken" in output - ex = "({0})".format(a_dag_hash) - assert ex in output + expected = "{0}/{1} (in stack {2}) was reported broken here: {3}".format( + spec_a.name, a_dag_hash[:7], job_stack, a_job_url + ) + assert expected in output - ex = "({0})".format(flattendeps_dag_hash) - assert ex not in output + not_expected = "flatten-deps/{0} (in stack".format(flattendeps_dag_hash[:7]) + assert not_expected not in output def test_ci_generate_external_signing_job( diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug-aarch64/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug-aarch64/spack.yaml index 67ac499003e5b5..89337ece10cc31 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug-aarch64/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug-aarch64/spack.yaml @@ -252,6 +252,7 @@ spack: - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2022-03-21", "entrypoint": [""] } + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug/spack.yaml index f81eb0383e92ce..c0cdef4448d860 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug/spack.yaml @@ -253,6 +253,7 @@ spack: - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2022-03-21", "entrypoint": [""] } + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml index 248d49fd40c1c6..0e575647fc5dbb 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml @@ -159,6 +159,7 @@ spack: - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2022-03-21", "entrypoint": [""] } + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml index 27de37b1f59a54..4c209022af978f 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml @@ -171,6 +171,7 @@ spack: - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2022-03-21", "entrypoint": [""] } + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml index 700d32add8e1db..eb60dd85fe1e79 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml @@ -45,6 +45,7 @@ spack: name: "ghcr.io/spack/e4s-ubuntu-18.04:v2021-10-18" entrypoint: [ "" ] + match_behavior: first mappings: - match: - cmake diff --git a/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml index ae9025e366d184..3f5a37f88756b1 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml @@ -55,6 +55,7 @@ spack: - if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg; fi - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi - spack -d ci rebuild + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml index 34517c1fa9299e..ed49d553b25536 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml @@ -51,6 +51,7 @@ spack: - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) + match_behavior: first mappings: - match: ['os=monterey'] runner-attributes: diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml index 24a4879277cd17..b1a30701df829e 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml @@ -221,6 +221,7 @@ spack: - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" - spack -d ci rebuild + match_behavior: first mappings: - match: - cuda diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml index 449238012604fb..ce8441a5d87f7d 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml @@ -282,6 +282,7 @@ spack: image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2022-07-01 + match_behavior: first mappings: - match: - hipblas diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml index 853e293e6c6516..6158234a8aba68 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml @@ -261,6 +261,7 @@ spack: broken-tests-packages: - gptune + match_behavior: first mappings: - match: - hipblas diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-cpu/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-cpu/spack.yaml index e6b49b9f41c2f6..f389a0d14f0473 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/ml-cpu/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-cpu/spack.yaml @@ -97,6 +97,7 @@ spack: - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-cuda/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-cuda/spack.yaml index eb37168665fa61..a65c68db09575c 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/ml-cuda/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-cuda/spack.yaml @@ -100,6 +100,7 @@ spack: - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-rocm/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-rocm/spack.yaml index c437b170e4b6c6..d369924b8bfb2c 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/ml-rocm/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-rocm/spack.yaml @@ -103,6 +103,7 @@ spack: - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64/spack.yaml index 4d18961d4b3880..0e22a2d5666c86 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64/spack.yaml @@ -67,6 +67,7 @@ spack: - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2022-03-21", "entrypoint": [""] } + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws/spack.yaml index c6c895bd365cd1..9c1347ac2597e7 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws/spack.yaml @@ -72,6 +72,7 @@ spack: - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2022-03-21", "entrypoint": [""] } + match_behavior: first mappings: - match: - llvm diff --git a/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml index ebb15eb7ca03eb..b43c4ebdcfa74f 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml @@ -72,6 +72,7 @@ spack: - if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg; fi - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi - spack -d ci rebuild + match_behavior: first mappings: - match: - lbann diff --git a/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml index 504b4209d27fbf..dc91bf32082471 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml @@ -74,6 +74,7 @@ spack: - spack -d ci rebuild image: { "name": "ghcr.io/spack/tutorial-ubuntu-18.04:v2021-11-02", "entrypoint": [""] } + match_behavior: first mappings: - match: - cmake diff --git a/var/spack/repos/builtin/packages/gasnet/package.py b/var/spack/repos/builtin/packages/gasnet/package.py index efcb23828d1e1d..baec00cd59e69c 100644 --- a/var/spack/repos/builtin/packages/gasnet/package.py +++ b/var/spack/repos/builtin/packages/gasnet/package.py @@ -31,12 +31,13 @@ class Gasnet(Package, CudaPackage, ROCmPackage): maintainers = ["PHHargrove", "bonachea"] - tags = ["e4s"] + tags = ["e4s", "ecp"] version("develop", branch="develop") version("main", branch="stable") version("master", branch="master") + version("2022.9.0", sha256="6873ff4ad8ebee49da4378f2d78095a6ccc31333d6ae4cd739b9f772af11f936") version("2022.3.0", sha256="91b59aa84c0680c807e00d3d1d8fa7c33c1aed50b86d1616f93e499620a9ba09") version("2021.9.0", sha256="1b6ff6cdad5ecf76b92032ef9507e8a0876c9fc3ee0ab008de847c1fad0359ee") version("2021.3.0", sha256="8a40fb3fa8bacc3922cd4d45217816fcb60100357ab97fb622a245567ea31747") @@ -53,9 +54,9 @@ class Gasnet(Package, CudaPackage, ROCmPackage): description="The hardware-dependent network backends to enable.\n" + "(smp) = SMP conduit for single-node operation ;\n" + "(ibv) = Native InfiniBand verbs conduit ;\n" + + "(ofi) = OFI conduit over libfabric, for HPE Cray Slingshot and Intel Omni-Path ;\n" + "(udp) = Portable UDP conduit, for Ethernet networks ;\n" + "(mpi) = Low-performance/portable MPI conduit ;\n" - + "(ofi) = EXPERIMENTAL Portable OFI conduit over libfabric ;\n" + "(ucx) = EXPERIMENTAL UCX conduit for Mellanox IB/RoCE ConnectX-5+ ;\n" + "For detailed recommendations, consult https://gasnet.lbl.gov", ) @@ -164,6 +165,7 @@ def test(self): } os.environ["GASNET_VERBOSEENV"] = "1" # include diagnostic info + os.environ["GASNET_SPAWN_VERBOSE"] = "1" # include spawning diagnostics if "GASNET_SSH_SERVERS" not in os.environ: os.environ["GASNET_SSH_SERVERS"] = "localhost " * 4 diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 83dfb307b20014..a7d9c43ef6a89d 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -23,6 +23,8 @@ class Glib(Package): maintainers = ["michaelkuhn"] + version("2.74.0", sha256="3652c7f072d7b031a6b5edd623f77ebc5dcd2ae698598abcc89ff39ca75add30") + version("2.72.4", sha256="8848aba518ba2f4217d144307a1d6cb9afcc92b54e5c13ac1f8c4d4608e96f0e") version("2.72.3", sha256="4a39a2f624b8512d500d5840173eda7fa85f51c109052eae806acece85d345f0") version("2.72.2", sha256="78d599a133dba7fe2036dfa8db8fb6131ab9642783fc9578b07a20995252d2de") version("2.72.1", sha256="c07e57147b254cef92ce80a0378dc0c02a4358e7de4702e9f403069781095fe2") @@ -137,7 +139,7 @@ class Glib(Package): # glib prefers the libc version of gettext, which breaks the build if the # external version is also found. patch("meson-gettext.patch", when="@2.58:2.64") - patch("meson-gettext-2.66.patch", when="@2.66:2.68,2.72:") + patch("meson-gettext-2.66.patch", when="@2.66:2.68,2.72") patch("meson-gettext-2.70.patch", when="@2.70") def url_for_version(self, version): @@ -162,7 +164,9 @@ def libs(self): return find_libraries(["libglib*"], root=self.prefix, recursive=True) def meson_args(self): - args = ["-Dgettext=external"] + args = [] + if self.spec.satisfies("@:2.72"): + args.append("-Dgettext=external") if self.spec.satisfies("@2.63.5:"): if "+libmount" in self.spec: args.append("-Dlibmount=enabled") diff --git a/var/spack/repos/builtin/packages/gptl/package.py b/var/spack/repos/builtin/packages/gptl/package.py index 35f2c9380e04e4..f4b69362879731 100644 --- a/var/spack/repos/builtin/packages/gptl/package.py +++ b/var/spack/repos/builtin/packages/gptl/package.py @@ -18,6 +18,7 @@ class Gptl(AutotoolsPackage): maintainers = ["edwardhartnett", "kgerheiser", "Hang-Lei-NOAA", " jmrosinski"] + version("8.1.1", sha256="b8ee26f7aeedd2a31d565789634e7c380023fe6b65bbf59030884f4dcbce94a5") version("8.0.3", sha256="334979c6fe78d4ed1b491ec57fb61df7a910c58fd39a3658d03ad89f077a4db6") version("8.0.2", sha256="011f153084ebfb52b6bf8f190835d4bae6f6b5c0ad320331356aa47a547bf2b4") @@ -34,6 +35,10 @@ def configure_args(self): if "+pmpi" in self.spec: args.append("--enable-pmpi") args.append("CC=" + self.spec["mpi"].mpicc) + args.append("CXX=" + self.spec["mpi"].mpicxx) + args.append("FC=" + self.spec["mpi"].mpifc) + args.append("F90=" + self.spec["mpi"].mpifc) + args.append("F77=" + self.spec["mpi"].mpif77) if "+papi" in self.spec: args.append("--enable-papi") diff --git a/var/spack/repos/builtin/packages/hip/package.py b/var/spack/repos/builtin/packages/hip/package.py index 8b9b39f9a76edf..41c2d2d29fe48c 100644 --- a/var/spack/repos/builtin/packages/hip/package.py +++ b/var/spack/repos/builtin/packages/hip/package.py @@ -288,10 +288,12 @@ def get_paths(self): if self.spec.external: # For external packages we only assume the `hip` prefix is known, # because spack does not set prefixes of dependencies of externals. - # We assume self.spec.prefix is /opt/rocm-x.y.z/hip and rocm has a - # default installation with everything installed under - # /opt/rocm-x.y.z - rocm_prefix = Prefix(os.path.dirname(self.spec.prefix)) + # We assume self.spec.prefix is /opt/rocm-x.y.z for rocm-5.2.0 and newer + # and /opt/rocm-x.y.z/hip for older versions + if self.spec.satisfies("@5.2.0:"): + rocm_prefix = Prefix(self.spec.prefix) + else: + rocm_prefix = Prefix(os.path.dirname(self.spec.prefix)) if not os.path.isdir(rocm_prefix): msg = "Could not determine prefix for other rocm components\n" diff --git a/var/spack/repos/builtin/packages/libblastrampoline/package.py b/var/spack/repos/builtin/packages/libblastrampoline/package.py index b8638e54b863b7..54a59458d98687 100644 --- a/var/spack/repos/builtin/packages/libblastrampoline/package.py +++ b/var/spack/repos/builtin/packages/libblastrampoline/package.py @@ -15,6 +15,8 @@ class Libblastrampoline(MakefilePackage): maintainers = ["haampie", "giordano"] + version("5.2.0", sha256="5af9ff9cec16087f57109082a362419fc49152034fa90772ebcabd882007fd95") + version("5.1.1", sha256="cb5515512f6653538ce74653e46ccfba58c87b7dcb79b9655f7c3655e65498f0") version("5.1.0", sha256="55ac0c8f9cb91b2ed2db014be8394c9dadf3b5f26bd8af6dca9d6f20ca72b8fd") version("5.0.2", sha256="2e96fa62957719351da3e4dff8cd0949449073708f5564dae0a224a556432356") version("5.0.1", sha256="1066b4d157276e41ca66ca94f0f8c2900c221b49da2df3c410e6f8bf1ce9b488") diff --git a/var/spack/repos/builtin/packages/mariadb-c-client/package.py b/var/spack/repos/builtin/packages/mariadb-c-client/package.py index 0eafda8f268d3e..fe30923df6b812 100644 --- a/var/spack/repos/builtin/packages/mariadb-c-client/package.py +++ b/var/spack/repos/builtin/packages/mariadb-c-client/package.py @@ -22,12 +22,16 @@ class MariadbCClient(CMakePackage): list_url = "https://downloads.mariadb.com/Connectors/c/" list_depth = 1 + version("3.3.2", sha256="7e0722e07d30bb906fac9fe10fb582cde1e148e05a83d9ca7b6fcc884b68fbce") + version("3.2.7", sha256="9d7196248e6697c09c73e173fe9b282045f55ec9d7ae743c1ebad08b9ea56dda") version("3.2.6", sha256="9c22fff9d18db7ebdcb63979882fb6b68d2036cf2eb62f043eac922cd36bdb91") + version("3.1.18", sha256="b01ecacf7531c2f36d90708845488e66462bf63627c58cb5986bd1c0833e4d9c") version("3.1.13", sha256="0271a5edfd64b13bca5937267474e4747d832ec62e169fc2589d2ead63746875") version("3.1.9", sha256="108d99bf2add434dcb3bd9526ba1d89a2b9a943b62dcd9d0a41fcbef8ffbf2c7") version("3.1.6", sha256="d266bb67df83c088c4fb05392713d2504c67be620894cedaf758a9561c116720") version("3.1.5", sha256="a9de5fedd1a7805c86e23be49b9ceb79a86b090ad560d51495d7ba5952a9d9d5") version("3.1.4", sha256="7a1a72fee00e4c28060f96c3efbbf38aabcbbab17903e82fce85a85002565316") + version("3.0.10", sha256="bd9aa1f137ead3dc68ed3165adc53541712076d08949800b6ccebd33da6d0ae8") version("3.0.9", sha256="7277c0caba6f50b1d07e1d682baf0b962a63e2e6af9e00e09b8dcf36a7858641") version("3.0.8", sha256="2ca368fd79e87e80497a5c9fd18922d8316af8584d87cecb35bd5897cb1efd05") version("3.0.7", sha256="f63883c9360675d111646fba5c97feb0d08e0def5873dd189d78bafbb75fa004") diff --git a/var/spack/repos/builtin/packages/meson/oneapi.patch b/var/spack/repos/builtin/packages/meson/oneapi.patch new file mode 100644 index 00000000000000..e5996261db7cc3 --- /dev/null +++ b/var/spack/repos/builtin/packages/meson/oneapi.patch @@ -0,0 +1,158 @@ +diff --git a/docs/markdown/Reference-tables.md b/docs/markdown/Reference-tables.md +index 60303dad6..421b33c07 100644 +--- a/docs/markdown/Reference-tables.md ++++ b/docs/markdown/Reference-tables.md +@@ -20,6 +20,7 @@ These are return values of the `get_id` (Compiler family) and + | gcc | The GNU Compiler Collection | gcc | + | intel | Intel compiler (Linux and Mac) | gcc | + | intel-cl | Intel compiler (Windows) | msvc | ++| intel-llvm| Intel oneAPI LLVM-based compiler | | + | lcc | Elbrus C/C++/Fortran Compiler | | + | llvm | LLVM-based compiler (Swift, D) | | + | mono | Xamarin C# compiler | | +diff --git a/docs/markdown/snippets/oneapi_compilers.md b/docs/markdown/snippets/oneapi_compilers.md +new file mode 100644 +index 000000000..a982da22a +--- /dev/null ++++ b/docs/markdown/snippets/oneapi_compilers.md +@@ -0,0 +1,8 @@ ++## Basic support for oneAPI compilers on Linux ++ ++To use: ++ ++``` ++source /opt/intel/oneapi/setvars.sh ++CC=icx CXX=icpx FC=ifx meson setup builddir ++``` +diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py +index b1b4a7c92..9490ee688 100644 +--- a/mesonbuild/compilers/c.py ++++ b/mesonbuild/compilers/c.py +@@ -406,6 +406,13 @@ class IntelCCompiler(IntelGnuLikeCompiler, CCompiler): + return args + + ++class IntelLLVMCCompiler(ClangCCompiler): ++ ++ ++ id = 'intel-llvm' ++ ++ ++ + class VisualStudioLikeCCompilerMixin(CompilerMixinBase): + + """Shared methods that apply to MSVC-like C compilers.""" +diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py +index ac65df9a1..3d728f169 100644 +--- a/mesonbuild/compilers/cpp.py ++++ b/mesonbuild/compilers/cpp.py +@@ -153,7 +153,7 @@ class CPPCompiler(CLikeCompiler, Compiler): + } + + # Currently, remapping is only supported for Clang, Elbrus and GCC +- assert self.id in frozenset(['clang', 'lcc', 'gcc', 'emscripten', 'armltdclang']) ++ assert self.id in frozenset(['clang', 'lcc', 'gcc', 'emscripten', 'armltdclang', 'intel-llvm']) + + if cpp_std not in CPP_FALLBACKS: + # 'c++03' and 'c++98' don't have fallback types +@@ -593,6 +593,13 @@ class IntelCPPCompiler(IntelGnuLikeCompiler, CPPCompiler): + return [] + + ++class IntelLLVMCPPCompiler(ClangCPPCompiler): ++ ++ ++ id = 'intel-llvm' ++ ++ ++ + class VisualStudioLikeCPPCompilerMixin(CompilerMixinBase): + + """Mixin for C++ specific method overrides in MSVC-like compilers.""" +diff --git a/mesonbuild/compilers/detect.py b/mesonbuild/compilers/detect.py +index f4afa777d..42a4b18a5 100644 +--- a/mesonbuild/compilers/detect.py ++++ b/mesonbuild/compilers/detect.py +@@ -62,6 +62,7 @@ from .c import ( + EmscriptenCCompiler, + IntelCCompiler, + IntelClCCompiler, ++ IntelLLVMCCompiler, + NvidiaHPC_CCompiler, + PGICCompiler, + CcrxCCompiler, +@@ -83,6 +84,7 @@ from .cpp import ( + EmscriptenCPPCompiler, + IntelCPPCompiler, + IntelClCPPCompiler, ++ IntelLLVMCPPCompiler, + NvidiaHPC_CPPCompiler, + PGICPPCompiler, + CcrxCPPCompiler, +@@ -106,6 +108,7 @@ from .fortran import ( + FlangFortranCompiler, + IntelFortranCompiler, + IntelClFortranCompiler, ++ IntelLLVMFortranCompiler, + NAGFortranCompiler, + Open64FortranCompiler, + PathScaleFortranCompiler, +@@ -180,11 +183,11 @@ else: + defaults['objc'] = ['clang'] + defaults['objcpp'] = ['clang++'] + else: +- defaults['c'] = ['cc', 'gcc', 'clang', 'nvc', 'pgcc', 'icc'] +- defaults['cpp'] = ['c++', 'g++', 'clang++', 'nvc++', 'pgc++', 'icpc'] ++ defaults['c'] = ['cc', 'gcc', 'clang', 'nvc', 'pgcc', 'icc', 'icx'] ++ defaults['cpp'] = ['c++', 'g++', 'clang++', 'nvc++', 'pgc++', 'icpc', 'icpx'] + defaults['objc'] = ['cc', 'gcc', 'clang'] + defaults['objcpp'] = ['c++', 'g++', 'clang++'] +- defaults['fortran'] = ['gfortran', 'flang', 'nvfortran', 'pgfortran', 'ifort', 'g95'] ++ defaults['fortran'] = ['gfortran', 'flang', 'nvfortran', 'pgfortran', 'ifort', 'ifx', 'g95'] + defaults['cs'] = ['mcs', 'csc'] + defaults['d'] = ['ldc2', 'ldc', 'gdc', 'dmd'] + defaults['java'] = ['javac'] +@@ -617,6 +620,12 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin + return cls( + ccache + compiler, version, for_machine, is_cross, info, + exe_wrap, full_version=full_version, linker=l) ++ if 'Intel(R) oneAPI' in out: ++ cls = IntelLLVMCCompiler if lang == 'c' else IntelLLVMCPPCompiler ++ l = guess_nix_linker(env, compiler, cls, version, for_machine) ++ return cls( ++ ccache + compiler, version, for_machine, is_cross, info, ++ exe_wrap, full_version=full_version, linker=l) + if 'TMS320C2000 C/C++' in out or 'MSP430 C/C++' in out or 'TI ARM C/C++ Compiler' in out: + lnk: T.Union[T.Type[C2000DynamicLinker], T.Type[TIDynamicLinker]] + if 'TMS320C2000 C/C++' in out: +@@ -789,6 +798,13 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C + compiler, version, for_machine, is_cross, info, + exe_wrap, full_version=full_version, linker=linker) + ++ if 'ifx (IFORT)' in out: ++ cls = IntelLLVMFortranCompiler ++ linker = guess_nix_linker(env, compiler, cls, version, for_machine) ++ return cls( ++ compiler, version, for_machine, is_cross, info, ++ exe_wrap, full_version=full_version, linker=linker) ++ + if 'PathScale EKOPath(tm)' in err: + return PathScaleFortranCompiler( + compiler, version, for_machine, is_cross, info, +diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py +index 0a0c3ec86..e7154fe87 100644 +--- a/mesonbuild/compilers/fortran.py ++++ b/mesonbuild/compilers/fortran.py +@@ -352,6 +352,12 @@ class IntelFortranCompiler(IntelGnuLikeCompiler, FortranCompiler): + return ['-gen-dep=' + outtarget, '-gen-depformat=make'] + + ++class IntelLLVMFortranCompiler(IntelFortranCompiler): ++ ++ ++ id = 'intel-llvm' ++ ++ + class IntelClFortranCompiler(IntelVisualStudioLikeCompiler, FortranCompiler): + + file_suffixes = ('f90', 'f', 'for', 'ftn', 'fpp', ) diff --git a/var/spack/repos/builtin/packages/meson/package.py b/var/spack/repos/builtin/packages/meson/package.py index 05433d59ddfcf4..ecec5026510685 100644 --- a/var/spack/repos/builtin/packages/meson/package.py +++ b/var/spack/repos/builtin/packages/meson/package.py @@ -67,12 +67,11 @@ class Meson(PythonPackage): patch("rpath-0.54.patch", when="@0.54:0.55") patch("rpath-0.56.patch", when="@0.56:0.57") patch("rpath-0.58.patch", when="@0.58:") - # Help meson recognize Intel OneAPI compilers - patch( - "https://patch-diff.githubusercontent.com/raw/mesonbuild/meson/pull/9850.patch?full_index=1", - sha256="9c874726ce0a06922580d3e3d6adbe74e5144b3a661ef1059f32c9c1bc478b65", - when="@0.60.0:", - ) + + # Intel OneAPI compiler support + # https://github.com/mesonbuild/meson/pull/10909 + # https://github.com/mesonbuild/meson/pull/9850 + patch("oneapi.patch", when="@0.62: %oneapi") executables = ["^meson$"] diff --git a/var/spack/repos/builtin/packages/nextflow/package.py b/var/spack/repos/builtin/packages/nextflow/package.py index 855cb8d3e7bce0..1f73765830b711 100644 --- a/var/spack/repos/builtin/packages/nextflow/package.py +++ b/var/spack/repos/builtin/packages/nextflow/package.py @@ -14,6 +14,11 @@ class Nextflow(Package): maintainers = ["dialvarezs"] + version( + "22.10.0", + sha256="6acea8bd21f7f66b1363eef900cd696d9523d2b9edb53327940f093189c1535e", + expand=False, + ) version( "22.04.4", sha256="e5ebf9942af4569db9199e8528016d9a52f73010ed476049774a76b201cd4b10", diff --git a/var/spack/repos/builtin/packages/ninja/package.py b/var/spack/repos/builtin/packages/ninja/package.py index 5321d55041154e..e71b648f26323d 100644 --- a/var/spack/repos/builtin/packages/ninja/package.py +++ b/var/spack/repos/builtin/packages/ninja/package.py @@ -25,6 +25,7 @@ class Ninja(Package): version("kitware", branch="features-for-fortran", git="https://github.com/Kitware/ninja.git") version("master", branch="master") + version("1.11.1", sha256="31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea") version("1.11.0", sha256="3c6ba2e66400fe3f1ae83deb4b235faf3137ec20bd5b08c29bfc368db143e4c6") version("1.10.2", sha256="ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed") version("1.10.1", sha256="a6b6f7ac360d4aabd54e299cc1d8fa7b234cd81b9401693da21221c62569a23e") diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py index 5ba38a4a40011f..3139eac3b59e1f 100644 --- a/var/spack/repos/builtin/packages/octopus/package.py +++ b/var/spack/repos/builtin/packages/octopus/package.py @@ -20,6 +20,7 @@ class Octopus(Package, CudaPackage): maintainers = ["fangohr", "RemiLacroix-IDRIS"] + version("12.1", sha256="e2214e958f1e9631dbe6bf020c39f1fe4d71ab0b6118ea9bd8dc38f6d7a7959a") version("12.0", sha256="70beaf08573d394a766f10346a708219b355ad725642126065d12596afbc0dcc") version("11.4", sha256="73bb872bff8165ddd8efc5b891f767cb3fe575b5a4b518416c834450a4492da7") version("11.3", sha256="0c98417071b5e38ba6cbdd409adf917837c387a010e321c0a7f94d9bd9478930") diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py index 965e6a365ebf7a..44f7194640851f 100644 --- a/var/spack/repos/builtin/packages/parallel-netcdf/package.py +++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py @@ -34,6 +34,7 @@ def url_for_version(self, version): return url.format(version.dotted) version("master", branch="master") + version("1.12.3", sha256="439e359d09bb93d0e58a6e3f928f39c2eae965b6c97f64e67cd42220d6034f77") version("1.12.2", sha256="3ef1411875b07955f519a5b03278c31e566976357ddfc74c2493a1076e7d7c74") version("1.12.1", sha256="56f5afaa0ddc256791c405719b6436a83b92dcd5be37fe860dea103aee8250a2") version("1.11.2", sha256="d2c18601b364c35b5acb0a0b46cd6e14cae456e0eb854e5c789cf65f3cd6a2a7") diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 05799ec6bea5ba..75d041fc1de7fd 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -22,6 +22,8 @@ class Petsc(Package, CudaPackage, ROCmPackage): version("main", branch="main") + version("3.18.0", sha256="9da802e703ad79fb7ef0007d17f68916573011073ee9712dcd1673537f6a5f68") + version("3.17.5", sha256="a1193e6c50a1676c3972a1edf0a06eec9fac8ecc2f3771f2689a8997423e4c71") version("3.17.4", sha256="99c127486722a3ffd95a268b4ceb0976cbf217926c681a9631bd7246eab8cb2a") version("3.17.3", sha256="5c24ade5e4b32cc04935ba0db1dafe48d633bebaaa30a3033f1e58788d37875f") version("3.17.2", sha256="2313dd1ca41bf0ace68671ea6f8d4abf90011ed899f5e1e08658d3f18478359d") @@ -201,6 +203,7 @@ def check_fortran_compiler(self): patch("xcode_stub_out_of_sync.patch", when="@:3.10.4") patch("xlf_fix-dup-petscfecreate.patch", when="@3.11.0") patch("disable-DEPRECATED_ENUM.diff", when="@3.14.1 +cuda") + patch("revert-3.18.0-ver-format-for-dealii.patch", when="@3.18.0") depends_on("diffutils", type="build") @@ -217,6 +220,7 @@ def check_fortran_compiler(self): depends_on("hip", when="+rocm") depends_on("hipblas", when="+rocm") depends_on("hipsparse", when="+rocm") + depends_on("hipsolver", when="+rocm") depends_on("rocsparse", when="+rocm") depends_on("rocsolver", when="+rocm") depends_on("rocblas", when="+rocm") @@ -543,7 +547,7 @@ def configure_options(self): if not spec.satisfies("amdgpu_target=none"): hip_arch = spec.variants["amdgpu_target"].value options.append("--with-hip-arch={0}".format(hip_arch[0])) - hip_pkgs = ["hipsparse", "hipblas", "rocsparse", "rocsolver", "rocblas"] + hip_pkgs = ["hipsparse", "hipblas", "hipsolver", "rocsparse", "rocsolver", "rocblas"] hip_ipkgs = hip_pkgs + ["rocthrust", "rocprim"] hip_lpkgs = hip_pkgs if spec.satisfies("^rocrand@5.1:"): diff --git a/var/spack/repos/builtin/packages/petsc/revert-3.18.0-ver-format-for-dealii.patch b/var/spack/repos/builtin/packages/petsc/revert-3.18.0-ver-format-for-dealii.patch new file mode 100644 index 00000000000000..6c6d96c2693435 --- /dev/null +++ b/var/spack/repos/builtin/packages/petsc/revert-3.18.0-ver-format-for-dealii.patch @@ -0,0 +1,57 @@ +--- a/include/petscversion.h 2022-10-01 13:55:26.000000000 -0500 ++++ b/include/petscversion.h 2022-10-10 18:03:11.525297321 -0500 +@@ -2,11 +2,11 @@ + #define PETSCVERSION_H + #include + +-#define PETSC_VERSION_RELEASE 1 +-#define PETSC_VERSION_MAJOR 3 +-#define PETSC_VERSION_MINOR 18 +-#define PETSC_VERSION_SUBMINOR 0 +-#define PETSC_RELEASE_DATE "Sep 30, 2022" ++#define PETSC_VERSION_RELEASE 1 ++#define PETSC_VERSION_MAJOR 3 ++#define PETSC_VERSION_MINOR 18 ++#define PETSC_VERSION_SUBMINOR 0 ++#define PETSC_RELEASE_DATE "Sep 30, 2022" + #define PETSC_VERSION_DATE "Sep 30, 2022" + + #if !defined(PETSC_VERSION_GIT) +@@ -17,17 +17,30 @@ + #define PETSC_VERSION_DATE_GIT "2022-09-30 20:39:36 -0500" + #endif + +-#define PETSC_VERSION_EQ(MAJOR, MINOR, SUBMINOR) ((PETSC_VERSION_MAJOR == (MAJOR)) && (PETSC_VERSION_MINOR == (MINOR)) && (PETSC_VERSION_SUBMINOR == (SUBMINOR)) && (PETSC_VERSION_RELEASE == 1)) ++#define PETSC_VERSION_EQ(MAJOR,MINOR,SUBMINOR) \ ++ ((PETSC_VERSION_MAJOR == (MAJOR)) && \ ++ (PETSC_VERSION_MINOR == (MINOR)) && \ ++ (PETSC_VERSION_SUBMINOR == (SUBMINOR)) && \ ++ (PETSC_VERSION_RELEASE == 1)) + + #define PETSC_VERSION_ PETSC_VERSION_EQ + +-#define PETSC_VERSION_LT(MAJOR, MINOR, SUBMINOR) \ +- (PETSC_VERSION_RELEASE == 1 && (PETSC_VERSION_MAJOR < (MAJOR) || (PETSC_VERSION_MAJOR == (MAJOR) && (PETSC_VERSION_MINOR < (MINOR) || (PETSC_VERSION_MINOR == (MINOR) && (PETSC_VERSION_SUBMINOR < (SUBMINOR))))))) ++#define PETSC_VERSION_LT(MAJOR,MINOR,SUBMINOR) \ ++ (PETSC_VERSION_RELEASE == 1 && \ ++ (PETSC_VERSION_MAJOR < (MAJOR) || \ ++ (PETSC_VERSION_MAJOR == (MAJOR) && \ ++ (PETSC_VERSION_MINOR < (MINOR) || \ ++ (PETSC_VERSION_MINOR == (MINOR) && \ ++ (PETSC_VERSION_SUBMINOR < (SUBMINOR))))))) ++ ++#define PETSC_VERSION_LE(MAJOR,MINOR,SUBMINOR) \ ++ (PETSC_VERSION_LT(MAJOR,MINOR,SUBMINOR) || \ ++ PETSC_VERSION_EQ(MAJOR,MINOR,SUBMINOR)) + +-#define PETSC_VERSION_LE(MAJOR, MINOR, SUBMINOR) (PETSC_VERSION_LT(MAJOR, MINOR, SUBMINOR) || PETSC_VERSION_EQ(MAJOR, MINOR, SUBMINOR)) ++#define PETSC_VERSION_GT(MAJOR,MINOR,SUBMINOR) \ ++ (0 == PETSC_VERSION_LE(MAJOR,MINOR,SUBMINOR)) + +-#define PETSC_VERSION_GT(MAJOR, MINOR, SUBMINOR) (0 == PETSC_VERSION_LE(MAJOR, MINOR, SUBMINOR)) +- +-#define PETSC_VERSION_GE(MAJOR, MINOR, SUBMINOR) (0 == PETSC_VERSION_LT(MAJOR, MINOR, SUBMINOR)) ++#define PETSC_VERSION_GE(MAJOR,MINOR,SUBMINOR) \ ++ (0 == PETSC_VERSION_LT(MAJOR,MINOR,SUBMINOR)) + + #endif diff --git a/var/spack/repos/builtin/packages/pika/package.py b/var/spack/repos/builtin/packages/pika/package.py index c5a1aa555fe789..0eee028dd69e4f 100644 --- a/var/spack/repos/builtin/packages/pika/package.py +++ b/var/spack/repos/builtin/packages/pika/package.py @@ -17,7 +17,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/pika-org/pika.git" maintainers = ["msimberg", "albestro", "teonnik", "aurianer"] - version("0.9.0", branch="c349b2a96476d6974d2421288ca4d2e14ef9e5897d44cd7d5343165faa2d1299") + version("0.9.0", sha256="c349b2a96476d6974d2421288ca4d2e14ef9e5897d44cd7d5343165faa2d1299") version("0.8.0", sha256="058e82d7c8f95badabe52bbb4682d55aadf340d67ced1226c0673b4529adc182") version("0.7.0", sha256="e1bf978c88515f7af28ee47f98b795ffee521c15b39877ea4cfb405f31d507ed") version("0.6.0", sha256="cb4ebd7b92da39ec4df7b0d05923b94299d6ee2f2f49752923ffa2266ca76568") diff --git a/var/spack/repos/builtin/packages/pism/package.py b/var/spack/repos/builtin/packages/pism/package.py index 912752792ac8c1..edfb3ebd3e621a 100644 --- a/var/spack/repos/builtin/packages/pism/package.py +++ b/var/spack/repos/builtin/packages/pism/package.py @@ -47,6 +47,8 @@ class Pism(CMakePackage): description = "Report errors through Everytrace (requires Everytrace)" variant("everytrace", default=False, description=description) + patch("pism-petsc-3.18.diff", when="@1.1.4 ^petsc@3.18:") + # CMake build options not transferred to Spack variants # (except from CMakeLists.txt) # diff --git a/var/spack/repos/builtin/packages/pism/pism-petsc-3.18.diff b/var/spack/repos/builtin/packages/pism/pism-petsc-3.18.diff new file mode 100644 index 00000000000000..68d47427edd0c2 --- /dev/null +++ b/var/spack/repos/builtin/packages/pism/pism-petsc-3.18.diff @@ -0,0 +1,22 @@ +--- spack-src/src/util/options.cc~ 2019-06-17 13:14:35.000000000 -0500 ++++ spack-src/src/util/options.cc 2022-10-10 19:50:05.309762538 -0500 +@@ -59,8 +59,7 @@ + memset(tmp, 0, TEMPORARY_STRING_LENGTH); + + PetscErrorCode ierr; +- ierr = PetscOptionsBegin(MPI_COMM_SELF, "", "", ""); +- PISM_CHK(ierr, "PetscOptionsBegin"); ++ PetscOptionsBegin(MPI_COMM_SELF, "", "", ""); + + ierr = PetscOptionsString(option.c_str(), + description.c_str(), +@@ -71,8 +70,7 @@ + &flag); // PETSC_TRUE if found, else PETSC_FALSE + PISM_CHK(ierr, "PetscOptionsString"); + +- ierr = PetscOptionsEnd(); +- PISM_CHK(ierr, "PetscOptionsEnd"); ++ PetscOptionsEnd(); + + std::string result = tmp; + diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py index 0d28062c256224..555ff3822cd132 100644 --- a/var/spack/repos/builtin/packages/py-astroid/package.py +++ b/var/spack/repos/builtin/packages/py-astroid/package.py @@ -13,6 +13,8 @@ class PyAstroid(PythonPackage): homepage = "https://github.com/PyCQA/astroid" pypi = "astroid/astroid-2.8.3.tar.gz" + version("2.12.10", sha256="81f870105d892e73bf535da77a8261aa5bde838fa4ed12bb2f435291a098c581") + version("2.12.7", sha256="cd468be9d9d03d086d4d7e6643a59bfc025762d2c895e1e22cf21feced7bb148") version("2.11.6", sha256="4f933d0bf5e408b03a6feb5d23793740c27e07340605f236496cd6ce552043d6") version("2.11.5", sha256="f4e4ec5294c4b07ac38bab9ca5ddd3914d4bf46f9006eb5c0ae755755061044e") version("2.11.4", sha256="561dc6015eecce7e696ff7e3b40434bc56831afeff783f0ea853e19c4f635c06") @@ -40,17 +42,20 @@ class PyAstroid(PythonPackage): depends_on("python@3.5:", when="@2.3.3:", type=("build", "run")) depends_on("python@3.6:", when="@2.5.6:", type=("build", "run")) depends_on("python@3.6.2:", when="@2.11.4:", type=("build", "run")) + depends_on("python@3.7.2:", when="@2.12.7:", type=("build", "run")) depends_on("py-lazy-object-proxy", type=("build", "run")) # Starting with astroid 2.3.1, astroid's dependencies were restricted # to a given minor version, c.f. commit e1b4e11. depends_on("py-lazy-object-proxy@1.4.0:1.4", when="@2.3.1:2.7.2", type=("build", "run")) depends_on("py-lazy-object-proxy@1.4.0:", when="@2.7.3:", type=("build", "run")) - depends_on("py-six", type=("build", "run"), when="@:2.7.2") + depends_on("py-six", when="@:2.7.2", type=("build", "run")) depends_on("py-six@1.12:1", when="@2.3.3:2.7.2", type=("build", "run")) depends_on("py-wrapt", when="@:2.2", type=("build", "run")) depends_on("py-wrapt@1.11:1.12", when="@2.3.3:2.8.2", type=("build", "run")) depends_on("py-wrapt@1.11:1.13", when="@2.8.3:2.10", type=("build", "run")) - depends_on("py-wrapt@1.11:1", when="@2.11:", type=("build", "run")) + depends_on("py-wrapt@1.11:1", when="@2.11", type=("build", "run")) + depends_on("py-wrapt@1.14:1", when="@2.12.7: ^python@3.11:", type=("build", "run")) + depends_on("py-wrapt@1.11:1", when="@2.12.7: ^python@:3.10", type=("build", "run")) depends_on("py-enum34@1.1.3:", when="^python@:3.3", type=("build", "run")) depends_on("py-singledispatch", when="^python@:3.3", type=("build", "run")) depends_on("py-backports-functools-lru-cache", when="^python@:3.2", type=("build", "run")) @@ -60,4 +65,6 @@ class PyAstroid(PythonPackage): depends_on("py-typing-extensions@3.7.4:", when="@2.7.3: ^python@:3.7", type=("build", "run")) depends_on("py-typing-extensions@3.10:", when="@2.8.3: ^python@:3.9", type=("build", "run")) depends_on("py-setuptools@17.1:", type=("build", "run")) - depends_on("py-setuptools@20:", type=("build", "run"), when="@2.7.3:") + depends_on("py-setuptools@20:", when="@2.7.3:", type=("build", "run")) + depends_on("py-setuptools@62.6:62", when="@2.12.7:", type=("build", "run")) + depends_on("py-wheel@0.37.1:0.37", when="@2.12.7:", type="build") diff --git a/var/spack/repos/builtin/packages/py-execnet/package.py b/var/spack/repos/builtin/packages/py-execnet/package.py index d64b3131e4bbe8..2e32631d71168a 100644 --- a/var/spack/repos/builtin/packages/py-execnet/package.py +++ b/var/spack/repos/builtin/packages/py-execnet/package.py @@ -14,10 +14,12 @@ class PyExecnet(PythonPackage): homepage = "https://codespeak.net/execnet" pypi = "execnet/execnet-1.7.1.tar.gz" + version("1.9.0", sha256="8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5") version("1.7.1", sha256="cacb9df31c9680ec5f95553976c4da484d407e85e41c83cb812aa014f0eddc50") version("1.4.1", sha256="f66dd4a7519725a1b7e14ad9ae7d3df8e09b2da88062386e08e941cafc0ef3e6") depends_on("python@2.7:2.8,3.4:", type=("build", "run")) + depends_on("python@2.7:2.8,3.5:", type=("build", "run"), when="@1.9:") depends_on("py-setuptools", type="build") depends_on("py-setuptools-scm", type="build") - depends_on("py-apipkg@1.4:", type=("build", "run")) + depends_on("py-apipkg@1.4:", type=("build", "run"), when="@:1.7") diff --git a/var/spack/repos/builtin/packages/py-gitpython/package.py b/var/spack/repos/builtin/packages/py-gitpython/package.py index 6903749062addc..742c9ba5c3a128 100644 --- a/var/spack/repos/builtin/packages/py-gitpython/package.py +++ b/var/spack/repos/builtin/packages/py-gitpython/package.py @@ -12,6 +12,7 @@ class PyGitpython(PythonPackage): homepage = "https://gitpython.readthedocs.org" pypi = "GitPython/GitPython-3.1.12.tar.gz" + version("3.1.27", sha256="1c885ce809e8ba2d88a29befeb385fcea06338d3640712b59ca623c220bb5704") version("3.1.24", sha256="df83fdf5e684fef7c6ee2c02fc68a5ceb7e7e759d08b694088d0cacb4eba59e5") version("3.1.23", sha256="aaae7a3bfdf0a6db30dc1f3aeae47b71cd326d86b936fe2e158aa925fdf1471c") version("3.1.22", sha256="e1589f27c3cd1f33b22db1df194201b5abca6b4cc5450f13f9c371e099c1b24f") @@ -49,5 +50,8 @@ class PyGitpython(PythonPackage): "py-typing-extensions@3.7.4.0:", type=("build", "run"), when="@3.1.16: ^python@:3.7" ) depends_on( - "py-typing-extensions@3.7.4.3:", type=("build", "run"), when="@3.1.19: ^python@:3.10" + "py-typing-extensions@3.7.4.3:", type=("build", "run"), when="@3.1.19:3.1.26 ^python@:3.10" + ) + depends_on( + "py-typing-extensions@3.7.4.3:", type=("build", "run"), when="@3.1.27: ^python@:3.7" ) diff --git a/var/spack/repos/builtin/packages/py-grpcio-tools/package.py b/var/spack/repos/builtin/packages/py-grpcio-tools/package.py index 78c4339279f52d..21247b745a12e7 100644 --- a/var/spack/repos/builtin/packages/py-grpcio-tools/package.py +++ b/var/spack/repos/builtin/packages/py-grpcio-tools/package.py @@ -12,14 +12,17 @@ class PyGrpcioTools(PythonPackage): homepage = "https://grpc.io/" pypi = "grpcio-tools/grpcio-tools-1.42.0.tar.gz" + version("1.48.1", sha256="1178f2ea531f80cc2027ec64728df6ffc8e98cf1df61652a496eafd612127183") version("1.42.0", sha256="d0a0daa82eb2c2fb8e12b82a458d1b7c5516fe1135551da92b1a02e2cba93422") version("1.39.0", sha256="39dfe7415bc0d3860fdb8dd90607594b046b88b57dbe64284efa4820f951c805") depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-protobuf@3.12.0:3", when="@1.48.1:", type=("build", "run")) depends_on("py-protobuf@3.5.0.post1:3", type=("build", "run")) - depends_on("py-grpcio@1.42.0:", type=("build", "run"), when="@1.42.0:") - depends_on("py-grpcio@1.39.0:", type=("build", "run"), when="@1.39.0:1.41") + depends_on("py-grpcio@1.48.1:", when="@1.48.1:", type=("build", "run")) + depends_on("py-grpcio@1.42.0:", when="@1.42.0:", type=("build", "run")) + depends_on("py-grpcio@1.39.0:", when="@1.39.0:1.41", type=("build", "run")) depends_on("py-cython@0.23:", type="build") depends_on("openssl") depends_on("zlib") diff --git a/var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py b/var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py index 9335e2db485b24..5f5973273c608c 100644 --- a/var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py +++ b/var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py @@ -11,14 +11,28 @@ class PyJupyterlabPygments(PythonPackage): """Pygments theme using JupyterLab CSS variables.""" homepage = "https://jupyter.org/" - pypi = "jupyterlab-pygments/jupyterlab_pygments-0.1.1.tar.gz" + url = "https://files.pythonhosted.org/packages/py2.py3/j/jupyterlab-pygments/jupyterlab_pygments-0.2.2-py2.py3-none-any.whl" + # We use wheels because in @0.2.2: there is a cyclic dependency between + # py-nbconvert and py-jupyter-server: + # py-nbconvert -> py-jupyterlab-pygments -> py-jupyterlab -> + # -> py-jupyter-server -> py-nbconvert + # Reported here: https://github.com/jupyterlab/jupyterlab_pygments/issues/23 - version("0.2.2", sha256="7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d") - version("0.1.2", sha256="cfcda0873626150932f438eccf0f8bf22bfa92345b814890ab360d666b254146") - version("0.1.1", sha256="19a0ccde7daddec638363cd3d60b63a4f6544c9181d65253317b2fb492a797b9") + version( + "0.2.2", + sha256="2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f", + expand=False, + ) + version( + "0.1.2", + sha256="abfb880fd1561987efaefcb2d2ac75145d2a5d0139b1876d5be806e32f630008", + expand=False, + ) + version( + "0.1.1", + sha256="c9535e5999f29bff90bd0fa423717dcaf247b71fad505d66b17d3217e9021fc5", + expand=False, + ) depends_on("python@3.7:", when="@0.2.2:", type=("build", "run")) - depends_on("py-setuptools", when="@:0.1.2", type="build") - depends_on("py-jupyter-packaging11", when="@0.2.2:", type="build") - depends_on("py-jupyterlab@3.1:3", when="@0.2.2:", type="build") depends_on("py-pygments@2.4.1:2", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-libensemble/package.py b/var/spack/repos/builtin/packages/py-libensemble/package.py index 6d5bfbc35b513a..13b511811e54a2 100644 --- a/var/spack/repos/builtin/packages/py-libensemble/package.py +++ b/var/spack/repos/builtin/packages/py-libensemble/package.py @@ -12,13 +12,14 @@ class PyLibensemble(PythonPackage): """Library for managing ensemble-like collections of computations.""" homepage = "https://libensemble.readthedocs.io" - pypi = "libensemble/libensemble-0.9.2.tar.gz" + pypi = "libensemble/libensemble-0.9.3.tar.gz" git = "https://github.com/Libensemble/libensemble.git" - maintainers = ["shuds13"] + maintainers = ["shuds13", "jlnav"] tags = ["e4s"] version("develop", branch="develop") + version("0.9.3", sha256="00e5a65d6891feee6a686c048d8de72097b8bff164431f163be96ec130a9c390") version("0.9.2", sha256="e46598e5696f770cbff4cb90507b52867faad5654f1b80de35405a95228c909f") version("0.9.1", sha256="684e52b0ea64f5ec610e7868b7e4c9fa5fd2316a370a726870aa5fd5fb1b0ede") version("0.9.0", sha256="34976e775f0d2ba5955744560104eab214fd22cb47173440eb5136e852a8ec38") @@ -45,9 +46,6 @@ class PyLibensemble(PythonPackage): variant("tasmanian", default=False, description="Install with tasmanian") variant("pyyaml", default=False, description="Install with pyyaml") - # depends_on('python@2.7:2.8,3.3:', when='@:0.4.1') - # depends_on('python@3.5:', when='@0.5.0:') - depends_on("python@3.5:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-numpy", type=("build", "run")) depends_on("py-psutil", type=("build", "run"), when="@0.7.1:") diff --git a/var/spack/repos/builtin/packages/py-meson-python/package.py b/var/spack/repos/builtin/packages/py-meson-python/package.py index 323a997074bada..ba4f5e9df779a2 100644 --- a/var/spack/repos/builtin/packages/py-meson-python/package.py +++ b/var/spack/repos/builtin/packages/py-meson-python/package.py @@ -14,12 +14,21 @@ class PyMesonPython(PythonPackage): maintainers = ["eli-schwartz", "adamjstewart"] + version("0.10.0", sha256="08dd122c1074dbd5c55b53993a719cca73dd8216372c91217f7a550260f9e7e1") + version("0.9.0", sha256="6aa5a09ff5cce1c5308938ebbf3eab5529413c8677055ace1ac8c83d8a07b29d") + version("0.8.1", sha256="442f1fa4cf5db50eea61170a6059c10fafd70977f5dbdf3441c106cd23b05e4c") + version("0.8.0", sha256="b5c8a2727e6f6feaffc1db513244c9bdb5d0f689b45e24f4529b649b7710daf7") version("0.7.0", sha256="9fcfa350f44ca80dd4f5f9c3d251725434acf9a07d9618f382e6cc4629dcbe84") depends_on("python@3.7:", type=("build", "run")) + depends_on("meson@0.63:", when="@0.9:", type=("build", "run")) depends_on("meson@0.62:", type=("build", "run")) - depends_on("py-ninja", type=("build", "run")) depends_on("py-pyproject-metadata@0.5:", type=("build", "run")) depends_on("py-tomli@1:", type=("build", "run")) depends_on("py-typing-extensions@3.7.4:", when="^python@:3.7", type=("build", "run")) depends_on("py-colorama", when="platform=windows", type=("build", "run")) + + # https://github.com/FFY00/meson-python/pull/111 + conflicts("platform=darwin os=ventura", when="@:0.7") + conflicts("platform=darwin os=monterey", when="@:0.7") + conflicts("platform=darwin os=bigsur", when="@:0.7") diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index 840e05a9d67faa..708272744eac7b 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -23,6 +23,7 @@ class PyNumpy(PythonPackage): maintainers = ["adamjstewart", "rgommers"] version("main", branch="main") + version("1.23.4", sha256="ed2cc92af0efad20198638c69bb0fc2870a58dabfba6eb722c933b48556c686c") version("1.23.3", sha256="51bf49c0cd1d52be0a240aa66f3458afc4b95d8993d2d04f0d91fa60c10af6cd") version("1.23.2", sha256="b78d00e48261fbbd04aa0d7427cf78d18401ee0abd89c7559bbf422e5b1c7d01") version("1.23.1", sha256="d748ef349bfef2e1194b59da37ed5a29c19ea8d7e6342019921ba2ba4fd8b624") diff --git a/var/spack/repos/builtin/packages/py-oauthlib/package.py b/var/spack/repos/builtin/packages/py-oauthlib/package.py index d5a7fb4ef6a828..1b73e0c4b2a3b7 100644 --- a/var/spack/repos/builtin/packages/py-oauthlib/package.py +++ b/var/spack/repos/builtin/packages/py-oauthlib/package.py @@ -15,19 +15,38 @@ class PyOauthlib(PythonPackage): homepage = "https://github.com/oauthlib/oauthlib" pypi = "oauthlib/oauthlib-3.1.0.tar.gz" + version("3.2.1", sha256="1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721") version("3.1.1", sha256="8f0215fcc533dd8dd1bee6f4c412d4f0cd7297307d43ac61666389e3bc3198a3") version("3.1.0", sha256="bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889") version("3.0.1", sha256="0ce32c5d989a1827e3f1148f98b9085ed2370fc939bf524c9c851d8714797298") version("2.0.2", sha256="b3b9b47f2a263fe249b5b48c4e25a5bce882ff20a0ac34d553ce43cff55b53ac") - variant("extras", default=True, description="Build with pyjwt, blinker, cryptography") + variant( + "extras", + when="@:3.1.1", + default=True, + description="Build with pyjwt, blinker, cryptography", + ) + variant("rsa", when="@3.2.1:", default=False, description="Build with cryptography") + variant( + "signedtoken", + when="@3.2.1:", + default=False, + description="Build with cryptography and pyjwt", + ) + variant("signals", when="@3.2.1:", default=False, description="Build with blinker") depends_on("py-setuptools", type="build") depends_on("py-pyjwt@1.0.0:", type=("build", "run"), when="+extras") depends_on("py-pyjwt@2.0.0:2", type=("build", "run"), when="+extras @3.1.1:") + depends_on("py-pyjwt@2.0.0:2", type=("build", "run"), when="+signedtoken @3.2.1:") depends_on("py-blinker", type=("build", "run"), when="+extras") + depends_on("py-blinker", type=("build", "run"), when="+signals") depends_on("py-blinker@1.4:", type=("build", "run"), when="+extras @3.1.1:") + depends_on("py-blinker@1.4:", type=("build", "run"), when="+signals @3.2.1:") depends_on("py-cryptography", type=("build", "run"), when="+extras") - depends_on("py-cryptography@3.0.0:3", type=("build", "run"), when="+extras @3.1.1:") + depends_on("py-cryptography@3.0.0:3", type=("build", "run"), when="+extras @3.1.1") + depends_on("py-cryptography@3.0.0:", type=("build", "run"), when="+rsa @3.2.1:") + depends_on("py-cryptography@3.0.0:", type=("build", "run"), when="+signedtoken @3.2.1:") depends_on("python@2.7:2.8,3.4:", type=("build", "run")) depends_on("python@3.6:", type=("build", "run"), when="@3.1.1:") diff --git a/var/spack/repos/builtin/packages/py-petsc4py/package.py b/var/spack/repos/builtin/packages/py-petsc4py/package.py index 555c26e4986257..ded5146c6cff42 100644 --- a/var/spack/repos/builtin/packages/py-petsc4py/package.py +++ b/var/spack/repos/builtin/packages/py-petsc4py/package.py @@ -16,6 +16,8 @@ class PyPetsc4py(PythonPackage): maintainers = ["balay"] version("main", branch="main") + version("3.18.0", sha256="76bad2d35f380f698f5649c3f38eabd153b9b19b1fe3ce3a1d3de9aa5824a4d2") + version("3.17.5", sha256="e435d927bf22950c71c30bda538e1ae75f48f6931a63205c6fbeff6cf4393f09") version("3.17.4", sha256="216c3da074557946615d37d0826bc89f1f2e599323e2dacbdc45326d78bd50c6") version("3.17.3", sha256="c588ab4a17deebe7f0a57f966b3368d88f01d1a1c09f220f63fe8e3b37a32899") version("3.17.2", sha256="7e256e13013ce12c8e52edee35920e3d2c1deaae1b71597a3064201eba7abc1c") @@ -61,6 +63,7 @@ class PyPetsc4py(PythonPackage): depends_on("petsc+mpi", when="+mpi") depends_on("petsc~mpi", when="~mpi") depends_on("petsc@main", when="@main") + depends_on("petsc@3.18.0:3.18", when="@3.18.0:3.18") depends_on("petsc@3.17.0:3.17", when="@3.17.0:3.17") depends_on("petsc@3.16.0:3.16", when="@3.16.0:3.16") depends_on("petsc@3.15.0:3.15", when="@3.15.0:3.15") diff --git a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py index d4e9a04c418a68..b15830d6d94ef9 100644 --- a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py +++ b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py @@ -37,6 +37,7 @@ class PyPromptToolkit(PythonPackage): "prompt_toolkit.clipboard", ] + version("3.0.31", sha256="9ada952c9d1787f52ff6d5f3484d0b4df8952787c087edf6a1f7c2cb1ea88148") version("3.0.29", sha256="bd640f60e8cecd74f0dc249713d433ace2ddc62b65ee07f96d358e0b152b6ea7") version("3.0.24", sha256="1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6") version("3.0.17", sha256="9397a7162cf45449147ad6042fa37983a081b8a73363a5253dd4072666333137") diff --git a/var/spack/repos/builtin/packages/py-psutil/package.py b/var/spack/repos/builtin/packages/py-psutil/package.py index 8b401532326cc4..c839f4354e35c6 100644 --- a/var/spack/repos/builtin/packages/py-psutil/package.py +++ b/var/spack/repos/builtin/packages/py-psutil/package.py @@ -11,8 +11,10 @@ class PyPsutil(PythonPackage): running processes and system utilization (CPU, memory, disks, network) in Python.""" + homepage = "https://github.com/giampaolo/psutil" pypi = "psutil/psutil-5.6.3.tar.gz" + version("5.9.2", sha256="feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c") version("5.8.0", sha256="0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6") version("5.7.2", sha256="90990af1c3c67195c44c9a889184f84f5b2320dce3ee3acbd054e3ba0b4a7beb") version("5.6.3", sha256="863a85c1c0a5103a12c05a35e59d336e1d665747e531256e061213e2e90f63f3") @@ -22,4 +24,5 @@ class PyPsutil(PythonPackage): version("5.0.1", sha256="9d8b7f8353a2b2eb6eb7271d42ec99d0d264a9338a37be46424d56b4e473b39e") depends_on("python@2.6:2.8,3.4:", type=("build", "run")) + depends_on("python@2.7:2.8,3.4:", when="@5.9.2:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py index 60f3a67a535ad9..675f292e8c8e5b 100644 --- a/var/spack/repos/builtin/packages/py-pylint/package.py +++ b/var/spack/repos/builtin/packages/py-pylint/package.py @@ -25,6 +25,7 @@ class PyPylint(PythonPackage): "pylint.reporters.ureports", ] + version("2.15.0", sha256="4f3f7e869646b0bd63b3dfb79f3c0f28fc3d2d923ea220d52620fd625aed92b0") version("2.14.4", sha256="47705453aa9dce520e123a7d51843d5f0032cbfa06870f89f00927aa1f735a4a") version("2.13.5", sha256="dab221658368c7a05242e673c275c488670144123f4bd262b2777249c1c0de9b") version("2.11.1", sha256="2c9843fff1a88ca0ad98a256806c82c5a8f86086e7ccbdb93297d86c3f90c436") @@ -43,33 +44,35 @@ class PyPylint(PythonPackage): depends_on("python@3.6:", when="@2.8.2:", type=("build", "run")) depends_on("python@3.6.2:", when="@2.13.5:", type=("build", "run")) depends_on("python@3.7.2:", when="@2.14.0:", type=("build", "run")) + depends_on("py-setuptools-scm", when="@2.8.2", type="build") + depends_on("py-setuptools@17.1:", type="build") + depends_on("py-setuptools@62.6:62", when="@2.15.0:", type="build") + depends_on("py-wheel@0.37.1:0.37", when="@2.15.0:", type="build") + depends_on("py-dill@0.2:", when="@2.13.5:", type=("build", "run")) + depends_on("py-platformdirs@2.2.0:", when="@2.11.1:", type=("build", "run")) depends_on("py-astroid", type=("build", "run")) # note there is no working version of astroid for this - depends_on("py-astroid@1.5.1:", type=("build", "run"), when="@1.7:") - depends_on("py-astroid@1.6:1.9", type=("build", "run"), when="@1.9.4") - depends_on("py-astroid@2.0:", type=("build", "run"), when="@2.2.0:") - depends_on("py-astroid@2.2.0:2", type=("build", "run"), when="@2.3.0:2.7") - depends_on("py-astroid@2.5.6:2.6", type=("build", "run"), when="@2.8.0:2.10") - depends_on("py-astroid@2.8.0:2.8", type=("build", "run"), when="@2.11.1") - depends_on("py-astroid@2.11.2:2.11", type=("build", "run"), when="@2.13.5:") - depends_on("py-astroid@2.11.6:2.11", type=("build", "run"), when="@2.14.2:") - depends_on("py-backports-functools-lru-cache", when="^python@:2.8", type=("build", "run")) - depends_on("py-configparser", when="^python@:2.8", type=("build", "run")) - depends_on("py-dill@0.2:", when="@2.13.5:", type=("build", "run")) - depends_on("py-editdistance", type=("build", "run"), when="@:1.7") + depends_on("py-astroid@1.5.1:", when="@1.7:", type=("build", "run")) + depends_on("py-astroid@1.6:1.9", when="@1.9.4", type=("build", "run")) + depends_on("py-astroid@2.0:", when="@2.2.0:", type=("build", "run")) + depends_on("py-astroid@2.2.0:2", when="@2.3.0:2.7", type=("build", "run")) + depends_on("py-astroid@2.5.6:2.6", when="@2.8.0:2.10", type=("build", "run")) + depends_on("py-astroid@2.8.0:2.8", when="@2.11.1", type=("build", "run")) + depends_on("py-astroid@2.11.2:2.11", when="@2.13.5:2.13", type=("build", "run")) + depends_on("py-astroid@2.11.6:2.11", when="@2.14.2:2.14", type=("build", "run")) + depends_on("py-astroid@2.12.4:2.13", when="@2.15.0:", type=("build", "run")) depends_on("py-isort@4.2.5:", type=("build", "run")) depends_on("py-isort@4.2.5:5", when="@2.3.1:", type=("build", "run")) depends_on("py-mccabe", type=("build", "run")) depends_on("py-mccabe@0.6.0:0.6", when="@2.3.1:2.11", type=("build", "run")) depends_on("py-mccabe@0.6.0:0.7", when="@2.13:", type=("build", "run")) - depends_on("py-pip", type=("build")) # see https://github.com/spack/spack/issues/27075 - # depends_on('py-setuptools-scm@1.15.0:', type='build') - depends_on("py-setuptools-scm", type="build", when="@2.8.2") - depends_on("py-setuptools@17.1:", type="build") + depends_on("py-tomli@1.1.0:", when="@2.13.5: ^python@:3.10", type=("build", "run")) + depends_on("py-tomlkit@0.10.1:", when="@2.14.0:", type=("build", "run")) + depends_on("py-colorama@0.4.5:", when="platform=windows", type=("build", "run")) + depends_on("py-typing-extensions@3.10.0:", when="@2.11.1: ^python@:3.9", type=("build", "run")) + depends_on("py-backports-functools-lru-cache", when="^python@:2.8", type=("build", "run")) + depends_on("py-configparser", when="^python@:2.8", type=("build", "run")) + depends_on("py-editdistance", when="@:1.7", type=("build", "run")) depends_on("py-singledispatch", when="^python@:3.3", type=("build", "run")) - depends_on("py-six", type=("build", "run"), when="@1:2.3.1") - depends_on("py-toml@0.7.1:", type=("build", "run"), when="@2.8.2:2.12.2") - depends_on("py-tomli@1.1.0:", type=("build", "run"), when="@2.13.5: ^python@:3.10") - depends_on("py-tomlkit@0.10.1:", type=("build", "run"), when="@2.14.0:") - depends_on("py-platformdirs@2.2.0:", type=("build", "run"), when="@2.11.1:") - depends_on("py-typing-extensions@3.10.0:", type=("build", "run"), when="@2.11.1: ^python@:3.9") + depends_on("py-six", when="@1:2.3.1", type=("build", "run")) + depends_on("py-toml@0.7.1:", when="@2.8.2:2.12.2", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-seaborn/package.py b/var/spack/repos/builtin/packages/py-seaborn/package.py index 4d96e464a048ef..81ff8bf858deb1 100644 --- a/var/spack/repos/builtin/packages/py-seaborn/package.py +++ b/var/spack/repos/builtin/packages/py-seaborn/package.py @@ -17,26 +17,40 @@ class PySeaborn(PythonPackage): homepage = "https://seaborn.pydata.org/" pypi = "seaborn/seaborn-0.7.1.tar.gz" + version("0.12.0", sha256="893f17292d8baca616c1578ddb58eb25c72d622f54fc5ee329c8207dc9b57b23") version("0.11.2", sha256="cf45e9286d40826864be0e3c066f98536982baf701a7caa386511792d61ff4f6") version("0.11.1", sha256="44e78eaed937c5a87fc7a892c329a7cc091060b67ebd1d0d306b446a74ba01ad") version("0.9.0", sha256="76c83f794ca320fb6b23a7c6192d5e185a5fcf4758966a0c0a54baee46d41e2f") version("0.7.1", sha256="fa274344b1ee72f723bab751c40a5c671801d47a29ee9b5e69fcf63a18ce5c5d") + variant("stats", default=False, description="Optional statistical dependencies", when="@0.12:") + depends_on("python@3.6:", when="@0.10:", type="build") - depends_on("py-setuptools", type="build") + depends_on("python@3.7:", when="@0.12:", type="build") + depends_on("py-setuptools", when="@:0.11.2", type="build") + depends_on("py-flit-core@3.2:3", when="@0.12.0:", type="build") + depends_on("py-numpy@1.17:", when="@0.12:", type=("build", "run")) depends_on("py-numpy@1.15:", when="@0.11:", type=("build", "run")) depends_on("py-numpy@1.9.3:", when="@0.9:", type=("build", "run")) depends_on("py-numpy", type=("build", "run")) - depends_on("py-scipy@1:", when="@0.11:", type=("build", "run")) - depends_on("py-scipy@1.0.1:", when="@0.10:", type=("build", "run")) - depends_on("py-scipy@0.14:", when="@0.9.0:", type=("build", "run")) - depends_on("py-scipy", type=("build", "run")) + depends_on("py-pandas@0.25:", when="@0.12:", type=("build", "run")) depends_on("py-pandas@0.23:", when="@0.11:", type=("build", "run")) depends_on("py-pandas@0.22:", when="@0.10:", type=("build", "run")) depends_on("py-pandas@0.15.2:", when="@0.9:", type=("build", "run")) depends_on("py-pandas", type=("build", "run")) + depends_on("py-matplotlib@3.1:", when="@0.12:", type=("build", "run")) depends_on("py-matplotlib@2.2:", when="@0.11:", type=("build", "run")) depends_on("py-matplotlib@2.1.2:", when="@0.10:", type=("build", "run")) depends_on("py-matplotlib@1.4.3:", when="@0.9:", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) + + depends_on("py-scipy@1:", when="@0.12: +stats", type=("build", "run")) + depends_on("py-scipy@1:", when="@0.11", type=("build", "run")) + depends_on("py-scipy@1.0.1:", when="@0.10:0.11", type=("build", "run")) + depends_on("py-scipy@0.14:", when="@0.9.0:0.11", type=("build", "run")) + depends_on("py-scipy", when="@:0.11", type=("build", "run")) + + depends_on("py-statsmodels@0.10:", when="@0.12: +stats", type=("build", "run")) + + depends_on("py-typing-extensions", when="@0.12: ^python@:3.7", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py index 53b1bc157a4448..6bb59b2ad6bfc7 100644 --- a/var/spack/repos/builtin/packages/py-setuptools/package.py +++ b/var/spack/repos/builtin/packages/py-setuptools/package.py @@ -16,6 +16,11 @@ class PySetuptools(Package): maintainers = ["adamjstewart"] + version( + "65.5.0", + sha256="f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356", + expand=False, + ) version( "65.0.0", sha256="fe9a97f68b064a6ddd4bacfb0b4b93a4c65a556d97ce906255540439d0c35cef", @@ -31,6 +36,11 @@ class PySetuptools(Package): sha256="045aec56a3eee5c82373a70e02db8b6da9a10f7faf61ff89a14ab66c738ed370", expand=False, ) + version( + "62.6.0", + sha256="c1848f654aea2e3526d17fc3ce6aeaa5e7e24e66e645b5be2171f3f6b4e5a178", + expand=False, + ) version( "62.4.0", sha256="5a844ad6e190dccc67d6d7411d119c5152ce01f7c76be4d8a1eaa314501bba77", @@ -168,11 +178,11 @@ class PySetuptools(Package): ) extends("python") - depends_on("python@3.7:", type=("build", "run"), when="@59.7:") - depends_on("python@3.6:", type=("build", "run"), when="@51:") - depends_on("python@3.5:", type=("build", "run"), when="@45:50") - depends_on("python@2.7:2.8,3.5:", type=("build", "run"), when="@44") - depends_on("python@2.7:2.8,3.4:", type=("build", "run"), when="@:43") + depends_on("python@3.7:", when="@59.7:", type=("build", "run")) + depends_on("python@3.6:", when="@51:", type=("build", "run")) + depends_on("python@3.5:", when="@45:50", type=("build", "run")) + depends_on("python@2.7:2.8,3.5:", when="@44", type=("build", "run")) + depends_on("python@2.7:2.8,3.4:", when="@:43", type=("build", "run")) depends_on("py-pip", type="build") def url_for_version(self, version): diff --git a/var/spack/repos/builtin/packages/py-slepc4py/package.py b/var/spack/repos/builtin/packages/py-slepc4py/package.py index 2525fe46dd2a29..3d8f8d2b2e6645 100644 --- a/var/spack/repos/builtin/packages/py-slepc4py/package.py +++ b/var/spack/repos/builtin/packages/py-slepc4py/package.py @@ -16,6 +16,7 @@ class PySlepc4py(PythonPackage): maintainers = ["joseeroman", "balay"] version("main", branch="main") + version("3.18.0", sha256="aa83f46f942aca05ffcbc8be29b496f56837f564e0396f5b39cec4946654ee78") version("3.17.2", sha256="e5b235486b6901cd4ff0d94083f0e5eeacaef3a2893e1714769717ad488a3885") version("3.17.1", sha256="967d5d045526088ff5b7b2cde76f8b4d1fee3a2a68481f85224b0795e6613eb9") version("3.17.0", sha256="cab298eb794739579167fd60ff900db90476c4c93b4ae4e0204e989a6eeb3767") @@ -41,6 +42,7 @@ class PySlepc4py(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-petsc4py", type=("build", "run")) + depends_on("py-petsc4py@3.18.0:3.18", when="@3.18.0:3.18", type=("build", "run")) depends_on("py-petsc4py@3.17.0:3.17", when="@3.17.0:3.17", type=("build", "run")) depends_on("py-petsc4py@3.16.0:3.16", when="@3.16.0:3.16", type=("build", "run")) depends_on("py-petsc4py@3.15.0:3.15", when="@3.15.0:3.15", type=("build", "run")) @@ -53,6 +55,7 @@ class PySlepc4py(PythonPackage): depends_on("py-petsc4py@3.7.0:3.7", when="@3.7.0:3.7", type=("build", "run")) depends_on("slepc") + depends_on("slepc@3.18.0:3.18", when="@3.18.0:3.18") depends_on("slepc@3.17.0:3.17", when="@3.17.0:3.17") depends_on("slepc@3.16.0:3.16", when="@3.16.0:3.16") depends_on("slepc@3.15.0:3.15", when="@3.15.0:3.15") diff --git a/var/spack/repos/builtin/packages/py-sniffio/package.py b/var/spack/repos/builtin/packages/py-sniffio/package.py index 19aab104d24158..257c2366046559 100644 --- a/var/spack/repos/builtin/packages/py-sniffio/package.py +++ b/var/spack/repos/builtin/packages/py-sniffio/package.py @@ -13,9 +13,11 @@ class PySniffio(PythonPackage): homepage = "https://github.com/python-trio/sniffio" pypi = "sniffio/sniffio-1.1.0.tar.gz" + version("1.3.0", sha256="e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101") version("1.2.0", sha256="c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de") version("1.1.0", sha256="8e3810100f69fe0edd463d02ad407112542a11ffdc29f67db2bf3771afb87a21") depends_on("python@3.5:", type=("build", "run")) + depends_on("python@3.7:", when="@1.3.0:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-contextvars@2.1:", when="^python@:3.6", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py index a5c99d50783e7b..86de3285a1edbc 100644 --- a/var/spack/repos/builtin/packages/py-sphinx/package.py +++ b/var/spack/repos/builtin/packages/py-sphinx/package.py @@ -14,6 +14,10 @@ class PySphinx(PythonPackage): maintainers = ["adamjstewart"] + version("5.3.0", sha256="51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5") + version("5.2.3", sha256="5b10cb1022dac8c035f75767799c39217a05fc0fe2d6fe5597560d38e44f0363") + version("5.2.2", sha256="7225c104dc06169eb73b061582c4bc84a9594042acae6c1582564de274b7df2f") + version("5.2.1", sha256="c009bb2e9ac5db487bcf53f015504005a330ff7c631bb6ab2604e0d65bae8b54") version("5.2.0", sha256="1790c2098937dcfa7871c9d102c24eccd4a8b883b67c5c1e26892fb52d102542") version("5.1.1", sha256="ba3224a4e206e1fbdecf98a4fae4992ef9b24b85ebf7b584bb340156eaf08d89") version("5.1.0", sha256="7893d10d9d852c16673f9b1b7e9eda1606b420b7810270294d6e4b44c0accacc") diff --git a/var/spack/repos/builtin/packages/py-tensorflow-hub/0001-zlib-bump-over-CVE-use-fossils-url-which-is-more-sta.patch b/var/spack/repos/builtin/packages/py-tensorflow-hub/0001-zlib-bump-over-CVE-use-fossils-url-which-is-more-sta.patch new file mode 100644 index 00000000000000..c552390eaae477 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow-hub/0001-zlib-bump-over-CVE-use-fossils-url-which-is-more-sta.patch @@ -0,0 +1,29 @@ +From e5a889202143ccc5a6d126197e86ee138307cbc4 Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels +Date: Mon, 17 Oct 2022 09:52:27 +0200 +Subject: [PATCH] zlib: bump over CVE, use fossils url which is more stable + +--- + WORKSPACE | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/WORKSPACE b/WORKSPACE +index 495ed63..36d730b 100644 +--- a/WORKSPACE ++++ b/WORKSPACE +@@ -29,9 +29,9 @@ git_repository( + http_archive( + name = "zlib", + build_file = "@com_google_protobuf//:third_party/zlib.BUILD", +- sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", +- strip_prefix = "zlib-1.2.11", +- urls = ["https://zlib.net/zlib-1.2.11.tar.gz"], ++ sha256 = "b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30", ++ strip_prefix = "zlib-1.2.13", ++ urls = ["https://zlib.net/fossils/zlib-1.2.13.tar.gz"], + ) + + # Required by protobuf 3.8.0. +-- +2.37.0 + diff --git a/var/spack/repos/builtin/packages/py-tensorflow-hub/package.py b/var/spack/repos/builtin/packages/py-tensorflow-hub/package.py index 2ec9bc65196648..58cf70414c42cd 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow-hub/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow-hub/package.py @@ -30,11 +30,8 @@ class PyTensorflowHub(Package): depends_on("py-numpy@1.12.0:", type=("build", "run")) depends_on("py-protobuf@3.8.0:", type=("build", "run")) - patch( - "https://github.com/tensorflow/hub/commit/049192a7edd3e80eebf1735b93f57c7965381bdb.patch?full_index=1", - sha256="c8b59d17511a8ebd2a58717723b9b77514a12b43bb2e6acec6d0c1062df6e457", - when="@:0.12", - ) + # Deal with vendored zlib. + patch("0001-zlib-bump-over-CVE-use-fossils-url-which-is-more-sta.patch", when="@:0.12") def install(self, spec, prefix): tmp_path = tempfile.mkdtemp(prefix="spack") diff --git a/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py b/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py index 363579b7a5d2d5..07e09d4bf44cff 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py @@ -22,6 +22,13 @@ class PyTensorflowMetadata(PythonPackage): version("1.10.0", sha256="e7aa81aa01433e2a75c11425affd55125b64f384baf96b71eeb3a88dca8cf2ae") version("1.5.0", sha256="f0ec8aaf62fd772ef908efe4ee5ea3bc0d67dcbf10ae118415b7b206a1d61745") + # Fix non-existing zlib URL + patch( + "https://github.com/tensorflow/metadata/commit/8df679e782f5bf2d163d63e550d8752c3812d566.patch?full_index=1", + sha256="a6b294d5e6099979192fcdb4d5b7b0388dc30b48671944d22e51a9e6bd5e1490", + when="@1.10.0", + ) + depends_on("bazel@0.24.1:", type="build") depends_on("python@3.7:3", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py index 5c6b3dc1ac2dac..5c2bcb759a9e41 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py @@ -440,8 +440,16 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): conflicts("~rocm", when="@2.7.4-rocm-enhanced") conflicts("+rocm", when="@:2.7.4-a,2.7.4.0:") - # TODO: why is this needed? + # zlib is vendored and downloaded directly from zlib.org (or mirrors), but + # old downloads are removed from that site immediately after a new release. + # If the tf mirrors don't work, make sure the fallback is to something existing. patch("url-zlib.patch", when="@0.10.0") + # bump to zlib 1.2.13 + patch( + "https://github.com/tensorflow/tensorflow/commit/76b9fa22857148a562f3d9b5af6843402a93c15b.patch?full_index=1", + sha256="f9e26c544da729cfd376dbd3b096030e3777d3592459add1f3c78b1b9828d493", + when="@2.9:2.10.0", + ) # TODO: why is this needed? patch("crosstool.patch", when="@0.10.0+cuda") # Avoid build error: "no such package '@io_bazel_rules_docker..." diff --git a/var/spack/repos/builtin/packages/py-wrapt/package.py b/var/spack/repos/builtin/packages/py-wrapt/package.py index 281f56f0b6cec8..a7a57fa02502a4 100644 --- a/var/spack/repos/builtin/packages/py-wrapt/package.py +++ b/var/spack/repos/builtin/packages/py-wrapt/package.py @@ -12,6 +12,7 @@ class PyWrapt(PythonPackage): homepage = "https://github.com/GrahamDumpleton/wrapt" pypi = "wrapt/wrapt-1.11.2.tar.gz" + version("1.14.1", sha256="380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d") version("1.13.3", sha256="1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185") version("1.12.1", sha256="b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7") version("1.11.2", sha256="565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1") diff --git a/var/spack/repos/builtin/packages/rocksdb/package.py b/var/spack/repos/builtin/packages/rocksdb/package.py index b6046d2806221f..c005d57b60208c 100644 --- a/var/spack/repos/builtin/packages/rocksdb/package.py +++ b/var/spack/repos/builtin/packages/rocksdb/package.py @@ -14,6 +14,7 @@ class Rocksdb(MakefilePackage): git = "https://github.com/facebook/rocksdb.git" version("master", git=git, branch="master", submodules=True) + version("7.7.3", sha256="b8ac9784a342b2e314c821f6d701148912215666ac5e9bdbccd93cf3767cb611") version("7.2.2", sha256="c4ea6bd2e3ffe3f0f8921c699234d59108c9122d61b0ba2aa78358642a7b614e") version("6.20.3", sha256="c6502c7aae641b7e20fafa6c2b92273d935d2b7b2707135ebd9a67b092169dca") version("6.19.3", sha256="5c19ffefea2bbe4c275d0c60194220865f508f371c64f42e802b4a85f065af5b") diff --git a/var/spack/repos/builtin/packages/sdl2/package.py b/var/spack/repos/builtin/packages/sdl2/package.py index 6f191fd28d2bb6..459fdf178fa1eb 100644 --- a/var/spack/repos/builtin/packages/sdl2/package.py +++ b/var/spack/repos/builtin/packages/sdl2/package.py @@ -13,7 +13,11 @@ class Sdl2(CMakePackage): homepage = "https://wiki.libsdl.org/FrontPage" url = "https://libsdl.org/release/SDL2-2.0.5.tar.gz" + git = "https://github.com/libsdl-org/SDL.git" + list_url = "https://github.com/libsdl-org/SDL.git" + version("2.24.1", sha256="bc121588b1105065598ce38078026a414c28ea95e66ed2adab4c44d80b309e1b") + version("2.0.22", sha256="fe7cbf3127882e3fc7259a75a0cb585620272c51745d3852ab9dd87960697f2e") version("2.0.14", sha256="d8215b571a581be1332d2106f8036fcb03d12a70bae01e20f424976d275432bc") version("2.0.5", sha256="442038cf55965969f2ff06d976031813de643af9c9edc9e331bd761c242e8785") diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py index 4d486f2fb21120..061e89d033aeb8 100644 --- a/var/spack/repos/builtin/packages/seacas/package.py +++ b/var/spack/repos/builtin/packages/seacas/package.py @@ -28,6 +28,9 @@ class Seacas(CMakePackage): # ###################### Versions ########################## version("master", branch="master") + version( + "2022-10-14", sha256="cde91e7561d2352045d669a25bdf46a604d85ed1ea7f3f5028004455e4ce9d56" + ) version( "2022-05-16", sha256="22ff67045d730a2c7d5394c9034e44a2033cc82a461574f93d899e9aa713d4ae" ) diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py index 0a19e0025f32e4..3fc5a5c170c82e 100644 --- a/var/spack/repos/builtin/packages/slepc/package.py +++ b/var/spack/repos/builtin/packages/slepc/package.py @@ -22,6 +22,7 @@ class Slepc(Package, CudaPackage, ROCmPackage): test_requires_compiler = True version("main", branch="main") + version("3.18.0", sha256="18af535d979a646363df01f407c75f0e3b0dd97b3fdeb20dca25b30cd89239ee") version("3.17.2", sha256="f784cca83a14156631d6e0f5726ca0778e259e1fe40c927607d5fb12d958d705") version("3.17.1", sha256="11386cd3f4c0f9727af3c1c59141cc4bf5f83bdf7c50251de0845e406816f575") version("3.17.0", sha256="d4685fed01b2351c66706cbd6d08e4083a4645df398ef5ccd68fdfeb2f86ea97") @@ -69,6 +70,7 @@ class Slepc(Package, CudaPackage, ROCmPackage): # Cannot mix release and development versions of SLEPc and PETSc: depends_on("petsc@main", when="@main") + depends_on("petsc@3.18.0:3.18", when="@3.18.0:3.18") depends_on("petsc@3.17.0:3.17", when="@3.17.0:3.17") depends_on("petsc@3.16.0:3.16", when="@3.16.0:3.16") depends_on("petsc@3.15.0:3.15", when="@3.15.0:3.15") diff --git a/var/spack/repos/builtin/packages/tasmanian/package.py b/var/spack/repos/builtin/packages/tasmanian/package.py index 6296e59a08c1b8..e2b4ab39736217 100644 --- a/var/spack/repos/builtin/packages/tasmanian/package.py +++ b/var/spack/repos/builtin/packages/tasmanian/package.py @@ -44,8 +44,7 @@ class Tasmanian(CMakePackage, CudaPackage, ROCmPackage): variant("xsdkflags", default=False, description="enable XSDK defaults for Tasmanian") - variant("openmp", default=True, description="add OpenMP support to Tasmanian") - # tested with OpenMP 3.1 (clang4) through 4.0-4.5 (gcc 5 - 8) + variant("openmp", default=False, description="add OpenMP support to Tasmanian") variant("blas", default=False, description="add BLAS support to Tasmanian") diff --git a/var/spack/repos/builtin/packages/upcxx/package.py b/var/spack/repos/builtin/packages/upcxx/package.py index ce6081a1ae9e6d..0484143621203e 100644 --- a/var/spack/repos/builtin/packages/upcxx/package.py +++ b/var/spack/repos/builtin/packages/upcxx/package.py @@ -42,11 +42,12 @@ class Upcxx(Package, CudaPackage, ROCmPackage): url = "https://bitbucket.org/berkeleylab/upcxx/downloads/upcxx-2021.3.0.tar.gz" git = "https://bitbucket.org/berkeleylab/upcxx.git" - tags = ["e4s"] + tags = ["e4s", "ecp"] version("develop", branch="develop") version("master", branch="master") + version("2022.9.0", sha256="dbf15fd9ba38bfe2491f556b55640343d6303048a117c4e84877ceddb64e4c7c") version("2022.3.0", sha256="72bccfc9dfab5c2351ee964232b3754957ecfdbe6b4de640e1b1387d45019496") version("2021.9.0", sha256="9299e17602bcc8c05542cdc339897a9c2dba5b5c3838d6ef2df7a02250f42177") version("2021.3.0", sha256="3433714cd4162ffd8aad9a727c12dbf1c207b7d6664879fc41259a4b351595b7") @@ -89,7 +90,8 @@ class Upcxx(Package, CudaPackage, ROCmPackage): # UPC++ always relies on GASNet-EX. # The default (and recommendation) is to use the implicit, embedded version. - # This variant allows overriding with a particular version of GASNet-EX sources. + # This variant allows overriding with a particular version of GASNet-EX sources, + # although this is not officially supported and some combinations might be rejected. variant("gasnet", default=False, description="Override embedded GASNet-EX version") depends_on("gasnet conduits=none", when="+gasnet") @@ -148,6 +150,7 @@ def install(self, spec, prefix): real_cc = join_path(env["CRAYPE_DIR"], "bin", "cc") real_cxx = join_path(env["CRAYPE_DIR"], "bin", "CC") # workaround a bug in the UPC++ installer: (issue #346) + # this can be removed once the floor version reaches 2020.10.0 env["GASNET_CONFIGURE_ARGS"] += " --with-cc=" + real_cc + " --with-cxx=" + real_cxx if "+mpi" in spec: env["GASNET_CONFIGURE_ARGS"] += " --with-mpicc=" + real_cc @@ -169,6 +172,7 @@ def install(self, spec, prefix): provider = "verbs;ofi_rxm" # Append the recommended options for Cray Shasta + # This list can be pruned once the floor version reaches 2022.9.0 options.append("--with-pmi-version=cray") options.append("--with-pmi-runcmd='srun -n %N -- %C'") options.append("--disable-ibv")