Skip to content

Conversation

@climbfuji
Copy link
Collaborator

Description

In configs/common/packages.yaml: avoid using rust-boostrap, switch to zlib instead of zlib-ng as provider for zlib-api

Reasons:

  1. rust-bootstrap was used as a workaround while we had issues downloading and building dependencies with the real rust packages. Now, we have tools to create cargo mirrors that can be used by spack to install on air-gapped systems. Further, there is much criticism of the rust-bootstrap package itself, because it is maintained manually and not necessarily kept in sync with rust. Lastly, removing the rust-bootstrap variants here and the corresponding modifications we made in the spack package recipes allows us to minimize differences in the spack packages between spack-stack-dev and upstream.
  2. zlib-ng sounded promising at first, but the reality is a little different. For many reasons, one of them being Intel library linking issues, we had to resort to using the native zlib package instead, overwrite the zlib-api provider in the site configs, and mark the external zlib packages as buildable: false. We did this for several RDHPCS and all NRL systems. It seems safer to make the default zlib and leave it to the site maintainers whether zlib should be an external package, built by spack, or whether the zlib-api definition should be overwritten on a per-site basis config with another provider, if so desired.

For now, the site configs can remain as they are. We need to update them anyway when we move to spack v1.0.0 in the next few weeks, at which point we can remove the redundant zlib-api redefinitions in the site configs.

Dependencies

None

Issues addressed

See detailed description above

Applications affected

All (but in practice most of the critical systems already use zlib instead of zlib-ng).

Systems affected

All

Testing

  • CI: Note whether the automatic tests (GitHub actions tests that run automatically for every commit) pass or not
    • GitHub actions CI tests pass
    • GitHub actions CI tests do not pass (provide explanation)
    • GitHub actions CI tests skipped (provide explanation if necessary)
  • New tests added: List and describe any new tests added to GitHub actions
    • ...
  • Additional testing: Add information on any additional tests conducted
    • zlib change tested every day for the sites that already use it

Checklist

  • This PR addresses one issue/problem/enhancement or has a very good reason for not doing so.
  • These changes have been tested on the affected systems and applications.
  • All dependency PRs/issues have been resolved and this PR can be merged.

@climbfuji climbfuji self-assigned this Jul 23, 2025
@climbfuji climbfuji closed this Jul 24, 2025
@climbfuji climbfuji deleted the feature/no_rust_bootstrap_no_zlib_ng branch July 24, 2025 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant