Skip to content

Externals Survey

John Freeman edited this page Dec 9, 2024 · 43 revisions

JCF, Dec-2-2024

Spack Packages

  • Current: what's in ext-v2.1, i.e. the externals used by our current nightlies
  • NFDT_DEV_241129_A9: what's in the still-in-development ext-v2.2 and used by that particular test nightly
  • Preferred (no checksum): the version labeled as "Preferred" in the latest package.py
  • Latest from checksum: latest version if you run spack checksum <package>
Current NFDT_DEV_241129_A9 Preferred (no checksum) Latest from checksum
abseil-cpp 20240116.2 " " 20240722.0
boost 1.77.0 1.85.0 " 1_87_0_b1
cetlib 3.18.01 " " "
cli11 2.3.2 " " 2.4.2
cmake 3.26.3 " 3.27.9 3.31.1
cppzmq 4.8.1 4.10.0 " "
cyrus-sasl 2.1.27 X X X
dpdk 22.11 " 23.03 "
felix-software dunedaq-v4.2.0 " " "
fmt 8.1.1 10.2.1 " 11.0.2
folly 2021.12.13.00 " " 2024.12.02.00
gcc 12.1.0 " 13.2.0
gdb 13.1 " 14.1
grpc 1.65.1 " "
highfive 2.7.1 " 2.9.0 3.0.0-beta1
intel-tbb 2020.3 " 2021.9.0 2022.0.0
krb5 1.19.2 X X X
librdkafka 1.7.0 " 2.2.0 2.6.1
msgpack-c 3.3.0 " " 7.0.0
ninja 1.10.0 " 1.11.1
nlohmann-json 3.9.0 3.11.2 " 3.11.3
numactl 2.0.14 " "
openssh 8.7p1 9.7p1 "
openssl 1.1.1t 1.1.1t 3.3.0
pistache dunedaq-v2.8.0 " " "
pkgconf 2.2.0 " "
protobuf 4.24.4 " " 29.0
pugixml 1.12.1 " 1.13
py-moo 0.6.7 " " "
py-pybind11 2.6.2 2.12.0 " 2.13.6
python 3.10.10 " 3.11.6
qt 5.15.12 " "
trace 3.17.14 " "
uhal 2.8.1 " " "

Python packages

current NFDT_DEV_241129_A9 Latest
anytree 2.8.0 2.12.1 "
click 8.1.7 " "
click-didyoumean 0.3.0 0.3.1 "
click-shell 2.1 " "
colorama 0.4.4 0.4.6 "
deepdiff 6.3.1 8.0.1 "
Flask 2.1.1 3.1.0 "
Flask-Cors 3.0.10 5.0.0 "
Flask-Caching X 2.3.0 "
Flask-HTTPAuth 4.6.0 4.8.0 "
Flask-RESTful 0.3.9 0.3.10 "
Flask-SQLAlchemy X 3.1.1 "
graphviz 0.16 0.20.3 "
h5py 3.7.0 3.12.1 "
httpx 0.23.3 0.27.2 0.28.0
kubernetes 23.6.0 31.0.0 "
matplotlib X 3.9.2 3.9.3
numpy 1.24 2.1.3 "
pandas X 2.2.3 "
pexpect 4.8.0 4.9.0 "
psutil 5.9.0 6.1.0 "
py 1.10.0 1.11.0 "
pytest 8.3.3 " 8.3.4
python-ipmi 0.5.1 0.5.7
rsa 4.8 4.9 "
sh 1.14.1 2.1.0 "
textual 0.83.0 0.87.1 0.88.1
transitions 0.8.10 0.9.2 "

Notes on vendored package.pys

Notes on the package.py's which have been vendored into daq-release over the years. Looking at the head of develop of daq-release, d55d8cf3af4, in spack-repos/externals/packages:

catch2:

Vendoring occured in commit cf73df3e2 from July 3 this year, and appears related to the update to Spack 0.22.0. It's unclear why this bump required vendoring. catch2 doesn't depend on anything.

cetlib-except depends on [email protected]

cetlib depends on catch2

hep-concurrency depends on catch2

cetmodules depends on [email protected] (build-only)

cetlib, cetlib-except, cetmodules:

Vendored because we have no choice

Only fixed dependency is, as described above, [email protected]

cmake:

Vendored so cmake-findprotobuf.patch can be applied to CMake versions 3.23.1 and up

Having said that, there's considerable difference beyond that between what's in daq-release and what's in builtin

cpr: Can be dropped, no longer need in DUNE DAQ

cyrus-sasl: Can be dropped, apparently superfluous dependency

dpdk: The vendored package.py literally dates from 2021

A commit from May 11, 2022: "JCF: Issue #163: add support for a Spack installation of dpdk"

Can this be dropped? Need to keep in mind things like commit 8eb8dd7d from earlier this year, where I deal with a libarchive dependency.

felix-software: Obviously has to be vendored. Need to modify so it works with gcc 13.2

fftw: Drop, was only used by dqm

folly: Needs to remain vendored since incredibly, May 2021 is the latest version in builtin. Chesteron's fence? I was able to at least get it to December 2021. And furthermore, the December 2021 doesn't build under gcc 13.1.0.

More details: whereas its dependency, glog, goes up to 0.7.0, it can only build against 0.6.0 and no later because of a complaint about how it includes headers. The December 2024 version also depends on fast-float, which isn't builtin in Spack, so I've vendored this as well.

grpc: Has to be vendored, builtin only goes up to 1.55.0 and default built is C++11

hep-concurrency: Not even used. cetlib used to depend on this. Or, it depends on it, but only if there's a ~lite build. Are we ever going to have that?

highfive: builtin goes to 2.9.0 while vendored goes to 2.7.1. OTOH, Pengfei added a patch. Also note you needed to add +threadsafe to hdf5 dependency. Edit this to include the later versions.

lcov: needed for my work

librdkafka: vendored in March 2022 for unknown reasons (the classic merge proto-spack commit); openssl dependency added a year later (commit info is add dependency of openssl). builtin doesn't have openssl dependency but does go up to 2.2.0, vendored only goes to 1.7.0 .

libtorrent: vendored goes to 2.0.9; builtin to 0.13.8

libzmq: vendored goes to 4.3.4, builtin to 4.3.5. Added entirely in one commit back in August 2022. Builtin has a patch Fix static assertion failure with gcc-13, not in vendored. Candidate for removal?

msgpack-c: vendored goes to 3.3.0, builtin to 3.1.1. Obvious keep, the only question is what further versions spack checksum would give us

openssh: For externals v2.2 this will only be a dependency of a dependency of git, a dependency of go which is a build-only dependency of rclone. But its history (on Slack, etc.) needs revisiting. Chesterton's Fence.

openssl: You vendored this in the switch to spack-0.22.0 back in the summer but it's unclear why.

perl-timedate: needed for my lcov work

pistache: not a built in, obviously needs to be vendored. Current version used doesn't build in gcc 13.2.0, however, because of missing headers (<cstdint>, IIRC)

protobuf: Vendored latest is 4.24.4, builtin latest is 3.25.3. Also some bespoke abseil-cpp version logic.

pugixml: Added by Pengfei in 2022; it may not have existed in builtin. It does now, though note that builtin has 1.3, 1.11.4 and vendored has 1.12.1, 1.12, 1.11.4. Whether or not to remove it from being vendored depends on whether spack spec picks out 1.3 or not.

py-anyconfig: Added by Pengfei in the original March 2022 commit; doesn't exist in builtin

py-jsonnet: Added by Pengfei in the original March 2022 commit; doesn't exist in builtin

py-fastjsonschema: Added by Pengfei in the original March 2022 commit; identical in builtin

py-sphinxcontrib-moderncmakedomain: Added by Pengfei in the original March 2022 commit; identical in builtin

rclone: The vendoring of this package appears to be related to the set of rcloneConfig.cmake-and-related files created for it. Pengfei, September 2023.

trace: Obviously needed

uhal: Not in builtin, obviously needed. Untouched since September 2022.