Files
benaryorg d767cd1c72 ceph: 19.2.3 -> 20.2.0
Moving ceph to its own scope allows separate packages for individual components.
Among other benefits this makes overriding a single package for the entire build easier.
The primary reason however is to allow calling code to access *overrideScope* to change internal packages such as *ceph-src*.
Since the source code is used by multiple packages, notably the C++ and the Python code – independently – any patches that touch both (such as the PyO3 patch introduced herein) need to apply to both.
Using just packages with *patches* set makes this harder to control.

Material changes:

- Python: 3.11 -> 3.12
- Boost: 1.83 -> 1.87
- Ceph: 19.2.3 -> 20.2.0
- fmt: 9 -> 12
- changes in patches (new and old) due to the above updates
- Python dependencies on *jmespath* and *xmltodict*
- `replace-fail` for *substituteInPlace*
- UADK disabled by default (otherwise aarch64 fails to compile)
- *ceph-mgr* wrapper now adds ceph binaries to *PATH*
- ZFS integration on the packaging level has been removed

In-depth information for most of this can be found in [#494583](https://redirect.github.com/NixOS/nixpkgs/pull/494583).

Signed-off-by: benaryorg <binary@benary.org>
2026-04-11 00:45:20 +00:00

33 lines
1.2 KiB
Nix

{ lib, pkgs }:
# the README.md in the same directory contains further information on why this requires a scope
lib.makeScope pkgs.newScope (self: {
ceph-rocksdb = self.callPackage ./rocksdb.nix { };
# to get an idea which Python versions are supported by Ceph, see upstream `do_cmake.sh` (see `PYBUILD=` variable)
ceph-python = self.callPackage ({ python312 }: python312) { };
ceph-python-common = self.callPackage ./python-common.nix { };
ceph-python-env = self.callPackage ./python-env.nix { };
# Note when trying to upgrade boost:
# * When upgrading Ceph, it's recommended to check which boost version Ceph uses on Fedora,
# and default to that.
# * The version that Ceph downloads if `-DWITH_SYSTEM_BOOST:BOOL=ON` is not given
# is declared in `cmake/modules/BuildBoost.cmake` line `set(boost_version ...)`.
ceph-boost = self.callPackage (
{ boost187, ceph-python }:
boost187.override {
enablePython = true;
python = ceph-python;
}
) { };
# not actually a derivation, just a DRY helper
ceph-meta = self.callPackage ./meta.nix { };
# patched source to build all derivations from
ceph-src = self.callPackage ./src.nix { };
ceph = self.callPackage ./ceph.nix { };
})