Source: bcachefs-tools
Version: 24+really1.3.4-2
Severity: important

The bcachefs-tools package builds the C portion of the tarball, and not
the parts written in Rust (under rust-src/). This results in a crippled
functionality, such as the missing "mount" binary (#1057295).

There is a README.todo to that effect, that currently says:
> Dependencies available in Debian: librust-byteorder-dev librust-rpassword-dev
> librust-either-dev librust-errno-dev librust-itertools-dev librust-getset-dev
> librust-uuid-dev librust-libudev-dev librust-libc-dev librust-anyhow-dev
> librust-clap-dev librust-colored-dev librust-chrono-dev librust-log-dev
> librust-atty-dev
> 
> Missing dependencies: librust-gag-dev librust-parse-display-dev
> librust-bch-bindgen-dev

This seems a bit inaccurate/outdated, in the following ways:

* librust-gag-dev is now in Debian.

* 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.

* 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.

* 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: ")?

* librust-bch-bindgen-dev is not a package that's missing; that's from
  the bcachefs-tools source tree, under rust-src/bch_bindgen/.

* In turn, rust-src/bch_bindgen/ requires librust-bitfield-dev and
  librust-paste-dev, both already in Debian.

* 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.

All in all as far as I can tell the tally is: 1 new easy-to-package Rust
library, 1 patch to a third-party Debian package, 1 patch to
bcachefs-tools, a few Cargo.toml version bumps. That doesn't look too
bad, I guess?

Faidon

Reply via email to