A few updates:

On Mon, Jan 08, 2024 at 12:45:35PM +0200, Faidon Liambotis wrote:
> * librust-gag-dev is now in Debian.
 
Still true, but also now moot, as it the dependency has been removed
upstream:
https://github.com/koverstreet/bcachefs-tools/commit/5e224596cfdf9ad9413536482224e2fe79b9e387

> * I don't think librust-parse-display-dev is needed. Upstream indeed
>   has parse-display in Cargo.toml, but as far as I can tell, it's not
>   used anywhere and it's just a spurious dependency? Needs to be
>   forwarded upstream, I think.

Did that, and more dependencies were removed as a result of that
subthread:
https://github.com/koverstreet/bcachefs-tools/commit/5ed0dcc00100c2f361e917760bd114a7af12394a
https://github.com/koverstreet/bcachefs-tools/commit/807cabc4c960347319b5f9566e4d24b28e0183b4

> * The "udev" crate is required, and missing from the
>   missing list. Note that it's distinctly different to
>   librust-libudev-dev. debcargo generates a librust-udev-dev package
>   that seems to build with minor modifications, and no other
>   dependencies.

Still required.

> * A bunch of these packages have mismatched versions. From a quick
>   glance, everything compiled with the versions in Debian, except for
>   rpassword that also required a patch to account for an API change:
>   -        rpassword::read_password_from_tty(Some("Enter passphrase: "))?
>   +        rpassword::prompt_password("Enter passphrase: ")?

Merged upstream with:
https://github.com/koverstreet/bcachefs-tools/commit/06ff8b55b70fda44d91b31b5511fafd1680a8934

> * bch_bindgen also depends on a custom fork of rust-bindgen, checked out
>   from bcachefs' git. This seems to have only a patch compared to what's
>   shipped in Debian, originating in an upstream issue:
>   https://github.com/rust-lang/rust-bindgen/issues/2240
> 
>   This could perhaps be reported against the Debian package to backport
>   in a debian/patches patch.

This turned out to be more complicated. There's been some discussion on
the upstream bug tracker:
https://github.com/koverstreet/bcachefs-tools/issues/202
including a proposed way forward, that Thomas Bertschinger kindly
implemented:
https://lore.kernel.org/linux-bcachefs/20240122201913.GA207770@fedora-laptop/T/#t

Finally, note that in the meantime main() was converted to Rust, so now
Rust is not just a nice to have, but a necessary dependency to newer
upstream versions:
https://github.com/koverstreet/bcachefs-tools/commit/0a284fc4ffcbb46f0a4b921415ef12a9c75fa05c

To summarize, the next upstream release will make the Rust parts
necessary, but (hopefully) much easier to package. But someone should
upload the only missing dependency, librust-libudev-dev, in the
meantime. (I'd prefer for that someone to not be me :)

Faidon

Reply via email to