Upstream, dosfstools respects SOURCE_DATE_EPOCH since this commit:
8da7bc9331
This means tools like mkfs.vfat will create deterministic outputs when SOURCE_DATE_EPOCH is set.
A backport in nixpkgs is warranted since this was already merged in 2021 and no release of dosfstools has been made since then.
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Without the change `duperemove` fails to run in parallel
if `PATH` is missing `lscpu` as:
$ PATH= ./result/bin/duperemove /tmp
sh: line 1: lscpu: No such file or directory
Gathering file list...
No dedupe candidates found.
Noticed when wrote a minimal systemd timer for `duperemove`.
This continues where d8f7f6a5ce left off. Similarly
to that commit, this commit this also points `sourceRoot`s to `src.name` and similar
instead of keeping hardcoded names, and edits other derivation attrs do do the same,
where appropriate.
Also, similarly to d8f7f6a5ce some of expressions this
edits use `srcs` attribute with customly-named sources, so they have to be moved
into `let` blocks to keep evaluation efficient (the other, worse, way to do this
would to recurcively refer to `elemAt n finalAttrs.srcs` or, similarly, with `rec`).
The following issues were encountered during the upgrade:
* "Could NOT find thrift (missing: thrift_LIBRARIES thrift_INCLUDE_DIR)"
Fixed by disabling Jaeger support, see added comment.
* ```
/build/ceph-18.2.0/src/extblkdev/ExtBlkDevInterface.h:38:10: fatal error: sys/capability.h: No such file or directory
38 | #include <sys/capability.h>
```
Fixed by `libcap` dependency.
Ceph's Debian dependencies include both `libcap` and `libcap-ng`:
c8c946c970/debian/control (L38-L39)
* ```
Manually-specified variables were not used by the project:
MGR_PYTHON_VERSION
```
Dropped 4 years ago for Ceph 15:
5fc657b40d
So I removed the flag.
* Warning:
```
-- Could NOT find nasm
```
Looking at the code (macros such as `HAVE_NASM_X64`), nasm existence actually results in some optimised crypto SIMD instructions being compiled, so we probably want this for performance.
Adding `nasm` to `nativeBuildInputs` first brought error:
```
/nix/store/p6dlr3skfhxpyphipg2bqnj52999banh-bash-5.2-p15/bin/bash: line 1: /build/ceph-18.2.0/src/nasm-wrapper: cannot execute: required file not found
make[2]: *** [src/crypto/isa-l/CMakeFiles/ceph_crypto_isal.dir/build.make:117: src/crypto/isa-l/CMakeFiles/ceph_crypto_isal.dir/isa-l_crypto/aes/cbc_multibinary.asm.o] Error 127
```
Solution: `patchShebangs src/nasm-wrapper`, even better `patchShebangs src/`.
* ```
Manually-specified variables were not used by the project:
WITH_SYSTEM_CIMG
WITH_SYSTEM_JSONCPP
```
These never were Ceph CMake options, so I removed them.
* `libcap-ng` is Linux-only, and only used for the `mount.ceph` command:
c8c946c970/src/CMakeLists.txt (L829-L830)
Thus use it for Linux only.
* The Parquet build error is now gone, so we can enable support for it.