ec500adb50
In the HPC package manager, we want the fastest `zlib` implementation by default. `zlib-ng` is up to 4x faster than stock `zlib`, and it can do things like take advantage of AVX-512 instructions. This PR makes `zlib-ng` the default `zlib-api` provider (`zlib-api` was introduced earlier, in #37372). As far as I can see, the only issues you can encounter are: 1. Build issues with packages that heavily rely on `zlib` internals. In Gitlab CI only one out of hundreds of packages had that issue (it extended zlib with deflate stuff, and used its own copy of zlib sources). 2. Packages that like to detect `zlib-ng` separately and rely on `zlib-ng` internals. The only issue I've found with this among the hundreds of packages built in CI is `perl` trying to report more specific zlib-ng version details, and relied on some internals that got refactored. But yeah... that warrants a patch / conflict and is nothing special. At runtime, you cannot really have any issues, given that zlib and zlib-ng export the exact same symbols (and zlib-ng tests this in their CI). You can't really have issues with externals when using zlib-ng either. The only type of issue is when system zlib is rather new, and not marked as external; if another external uses new symbols, and Spack builds an older zlib/zlib-ng, then the external might not find the new symbols. But this is a configuration issue, and it's not an issue caused by zlib-ng, as the same would happen with older Spack zlib. * zlib-api: use zlib-ng +compat by default * make a trivial change to zlib-ng to trigger a rebuild * add `haampie` as maintainer
66 lines
2.1 KiB
YAML
66 lines
2.1 KiB
YAML
# -------------------------------------------------------------------------
|
|
# This file controls default concretization preferences for Spack.
|
|
#
|
|
# Settings here are versioned with Spack and are intended to provide
|
|
# sensible defaults out of the box. Spack maintainers should edit this
|
|
# file to keep it current.
|
|
#
|
|
# Users can override these settings by editing the following files.
|
|
#
|
|
# Per-spack-instance settings (overrides defaults):
|
|
# $SPACK_ROOT/etc/spack/packages.yaml
|
|
#
|
|
# Per-user settings (overrides default and site settings):
|
|
# ~/.spack/packages.yaml
|
|
# -------------------------------------------------------------------------
|
|
packages:
|
|
all:
|
|
compiler: [gcc, intel, pgi, clang, xl, nag, fj, aocc]
|
|
providers:
|
|
awk: [gawk]
|
|
blas: [openblas, amdblis]
|
|
D: [ldc]
|
|
daal: [intel-oneapi-daal]
|
|
elf: [elfutils]
|
|
fftw-api: [fftw, amdfftw]
|
|
flame: [libflame, amdlibflame]
|
|
fuse: [libfuse]
|
|
gl: [glx, osmesa]
|
|
glu: [mesa-glu, openglu]
|
|
golang: [go, gcc]
|
|
go-or-gccgo-bootstrap: [go-bootstrap, gcc]
|
|
iconv: [libiconv]
|
|
ipp: [intel-oneapi-ipp]
|
|
java: [openjdk, jdk, ibm-java]
|
|
jpeg: [libjpeg-turbo, libjpeg]
|
|
lapack: [openblas, amdlibflame]
|
|
libglx: [mesa+glx, mesa18+glx]
|
|
libllvm: [llvm]
|
|
libosmesa: [mesa+osmesa, mesa18+osmesa]
|
|
lua-lang: [lua, lua-luajit-openresty, lua-luajit]
|
|
luajit: [lua-luajit-openresty, lua-luajit]
|
|
mariadb-client: [mariadb-c-client, mariadb]
|
|
mkl: [intel-oneapi-mkl]
|
|
mpe: [mpe2]
|
|
mpi: [openmpi, mpich]
|
|
mysql-client: [mysql, mariadb-c-client]
|
|
opencl: [pocl]
|
|
onedal: [intel-oneapi-dal]
|
|
pbs: [openpbs, torque]
|
|
pil: [py-pillow]
|
|
pkgconfig: [pkgconf, pkg-config]
|
|
qmake: [qt-base, qt]
|
|
rpc: [libtirpc]
|
|
scalapack: [netlib-scalapack, amdscalapack]
|
|
sycl: [hipsycl]
|
|
szip: [libaec, libszip]
|
|
tbb: [intel-tbb]
|
|
unwind: [libunwind]
|
|
uuid: [util-linux-uuid, libuuid]
|
|
xxd: [xxd-standalone, vim]
|
|
yacc: [bison, byacc]
|
|
ziglang: [zig]
|
|
zlib-api: [zlib-ng+compat, zlib]
|
|
permissions:
|
|
read: world
|
|
write: user
|