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>