spack/lib/spack
John W. Parent 85cc9097cb
Windows: prefer Python decompression support (#36507)
On Windows, several commonly available system tools for decompression
are unreliable (gz/bz2/xz). This commit refactors `decompressor_for`
to call out to a Windows or Unix-specific method:

* The decompressor_for_nix method behaves the same as before and
  generally treats the Python/system support options for decompression
  as interchangeable (although avoids using Python's built-in tar
  support since that has had issues with permissions).
* The decompressor_for_win method can only use Python support for
  gz/bz2/xz, although for a tar.gz it does use system support for
  untar (after the decompression step). .zip uses the system tar
  utility, and .Z depends on external support (i.e. that the user
  has installed 7zip).

A naming scheme has been introduced for the various _decompression
methods:

* _system_gunzip means to use a system tool (and fail if it's not
    available)
* _py_gunzip means to use Python's built-in support for decompressing
    .gzip files (and fail if it's not available)
* _gunzip is a method that can do either
2023-05-10 18:07:56 -04:00
..
docs Stand-alone testing: make recipe support and processing spack-/pytest-like (#34236) 2023-05-10 11:34:54 +02:00
env cc: deal with -Wl,-rpath= without value, deal with NAG (#37215) 2023-05-05 12:16:31 +02:00
external Update vendored ruamel.yaml to v0.17.21 (#37008) 2023-05-04 08:00:38 -07:00
llnl Add llnl.util.filesystem.find_first (#36083) 2023-03-27 09:42:16 -07:00
spack Windows: prefer Python decompression support (#36507) 2023-05-10 18:07:56 -04:00
spack_installable