···27 # Runtime dependencies
28 arrow-cpp,
29 babeltrace,
30+ # Note when trying to upgrade boost:
31+ # * When upgrading Ceph, it's recommended to check which boost version Ceph uses on Fedora,
32+ # and default to that.
33+ # * The version that Ceph downloads if `-DWITH_SYSTEM_BOOST:BOOL=ON` is not given
34+ # is declared in `cmake/modules/BuildBoost.cmake` line `set(boost_version ...)`.
35+ #
36+ # If you want to upgrade to boost >= 1.86, you need a Ceph version that
37+ # has this PR in:
38+ # https://github.com/ceph/ceph/pull/61312
39+ boost183,
40 bzip2,
41 cryptsetup,
42 cunit,
···306 };
307 };
308309+ boost' = boost183.override {
310 enablePython = true;
311 inherit python;
312 };
···356 );
357 inherit (ceph-python-env.python) sitePackages;
358359+ version = "19.2.1";
360 src = fetchurl {
361 url = "https://download.ceph.com/tarballs/ceph-${version}.tar.gz";
362+ hash = "sha256-QEX3LHxySVgLBg21iQga1DnyQsXFi6593e+WSjgT/h8=";
363 };
364in
365rec {
···374 hash = "sha256-21fi5tMIs/JmuhwPYMWtampv/aqAe+EoPAXZLJlOvgo=";
375 stripLen = 1;
376 extraPrefix = "src/s3select/";
000000377 })
378379 ./boost-1.85.patch
···480 "${placeholder "out"}/${ceph-python-env.sitePackages}"
481 ];
482483+ # * `unset AS` because otherwise the Ceph CMake build errors with
484+ # configure: error: No modern nasm or yasm found as required. Nasm should be v2.11.01 or later (v2.13 for AVX512) and yasm should be 1.2.0 or later.
485+ # because the code at
486+ # https://github.com/intel/isa-l/blob/633add1b569fe927bace3960d7c84ed9c1b38bb9/configure.ac#L99-L191
487+ # doesn't even consider using `nasm` or `yasm` but instead uses `$AS`
488+ # from `gcc-wrapper`.
489+ # (Ceph's error message is extra confusing, because it says
490+ # `No modern nasm or yasm found` when in fact it found e.g. `nasm`
491+ # but then uses `$AS` instead.
492+ # * replace /sbin and /bin based paths with direct nix store paths
493+ # * increase the `command` buffer size since 2 nix store paths cannot fit within 128 characters
494 preConfigure = ''
495+ unset AS
496+497 substituteInPlace src/common/module.c \
498 --replace "char command[128];" "char command[256];" \
499 --replace "/sbin/modinfo" "${kmod}/bin/modinfo" \