[Pkg-rust-maintainers] Packaging advice/help wanted for anki, which has just started using some Rust

Julian Gilbey jdg at debian.org
Tue Jan 21 21:50:16 GMT 2020


On Tue, Jan 21, 2020 at 09:27:25PM +0100, Wolfgang Silbermayr wrote:
> Hi Julian,

Hi Wolfgang,

That's an amazing answer - thanks so much!  It's clearly going to be a
bunch of work to upgrade this package...

> On 1/21/20 11:00 AM, Julian Gilbey wrote:
> > I maintain the Python-based package "anki", which has been almost no
> > problem up to now.  But upstream have just started incorporating some
> > Rust code into it, and I've never used Rust myself.  The build
> > mechanism they have written involves downloading and compiling Rust
> > modules (I think that's what it's doing) using rustup.
> 
> This is clearly not something we want to have inside the build process.
> rustup is a tool we might want to package in the future, but just for
> users who want to manage user installations of their rust toolbox, most
> certainly not for installing a toolchain during package build process.

Yes, indeed!

> > Here's a piece
> > of the Makefile as an example:
> > [...]
> 
> The snippets listed here should not be necessary for the build process.
> The `toolchain install` subcommand installs a specific toolchain into
> the user directory (in this case pinned to a nightly given by the
> contents of the rust-toolchain file). The `component add` subcommand
> adds the rustfmt and clippy tools into the previously installed
> toolchain. These tools are helpful for development of rust code, but not
> necessary for the build process:
> * cargo fmt / rustfmt formats the code, or if called with --check as
>   here, informs about code not formatted according to the style defined
>   in `rustfmt.toml`.
> * cargo clippy is a linting tool for rust code.
> 
> So I assume the package can be built without the whole rustup foo.

That's very useful information!  So yes, we can exclude that part of
the process.

> > (This is a little weird, as there's no rule to make rust-toolchain.
> > Perhaps an error in the Makefile?)
> 
> Maybe they reference the `rust-toolchain` file in the same directory? So
> the `.build/tools` target depends on changes inside that file.

Duh, of course!!

> [...]
> > Also, is there a Debian Rust Policy?  I haven't been able to find one
> > on a quick scan.
> 
> There is some general information in [0] and a policy in [1]. It has
> been some time since the policy page got updated, so some details might
> not be completely up-to-date.

I'll take a look.

> A quick summary of how we package Rust code:
> [...]

OK, that will keep me busy :-)  Oh, why did they have to leave the
"straightforward" Python world and start using a whole new toolchain?!

Best wishes,

   Julian



More information about the Pkg-rust-maintainers mailing list