This should give us higher confidence that changes don't break
real-world clusters.
Originally motivated by the fuse2 -> fuse3 change.
Assisted-by: Zoo Code with Claude Opus 4.8, human cleanup.
Migrate from fuse (2.x) to fuse3 (3.x) as per [the fuse migration tracking issue](https://redirect.github.com/NixOS/nixpkgs/issues/526161).
Note that the fuse specific patching (for remounting) is still required.
There is an intersecting version check for 3, however it does not affect functionality.
Signed-off-by: benaryorg <binary@benary.org>
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>
There is no need to disable Python packages for Python versions that are
no longer in Nixpkgs.
This change was generated using the following script:
pattern='^\s*disabled\s*=\s*pythonOlder\s*"3\.\([0-9]\|10\)"\s*;\s*$'
for f in $(find -name '*.nix'); do
grep -q "$pattern" "$f" || continue
sed -i "/$pattern/d" "$f"
if [ $(grep -c pythonOlder "$f") == 1 ]; then
sed -i '/^\s*pythonOlder,\s*$/d' "$f"
fi
nixfmt "$f"
done
This commit was created by a combination of scripts and tools:
- an ast-grep script to prefix things in meta with `lib.`,
- a modified nixf-diagnose / nixf combination to remove unused `with
lib;`, and
- regular nixfmt.
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
Prior to this change all python packages using `setuptools-rust` were broken when cross compiled as they built binaries for the build platform instead of for the host platform.
The setuptoolsRustBuildHook hook would have to be included as a native build input instead of the `setuptools-rust` package, but practically wasn't used anywhere.
This change makes it so that `setuptoolsRustBuildHook` becomes unnecessary, and instead `setuptools-rust` propagates a setup-hook directly setting up the build environment, similar to how cmake does it when included via nativeBuildInputs.
This change fixes cross on all packages using `setuptools-rust` as a build-system.