Add a table of system dependencies with minimum versions
This documents and enforces minimum requirements for C library dependencies. At the moment versions were picked from debian bookworm (debian stable since 2023-06), except blkid (util-linux) where 2.40.1 is required: https://github.com/koverstreet/bcachefs-tools/pull/347
libaio is excluded because it doesn't provide a pkg-config file.
Also remove libscrypt from debian/control since we use the libsodium implementation.
Can someone with nix fu require blkid 2.40.1 in flake.nix?
Edit: actually it needs to be updated in nixpkgs:
- https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/util-linux/default.nix
- https://repology.org/project/util-linux/versions
Currently blocked on https://github.com/NixOS/nixpkgs/pull/333467 Or, alternatively, on https://github.com/util-linux/util-linux/pull/3013
Worked around by lowering the blkid requirement to something nixpkgs has. There's still a safeguard against actually formatting using an outdated blkid.
I reworked it a bit and added another patch for the nix-based CI.
"Downgrade blkid hard requirement due to nixpkgs issues" will become unnecessary with the next release of nixpkgs (in may possibly?)
Dropped the blkid downgrade thanks to https://lore.kernel.org/linux-bcachefs/[email protected]/
Nix CI build got stuck compiling the liburcu test suite, no-op push to try again…
Remaining CI failures are unrelated, have to do with bindgen and struct layout on i686.