[Pkg-rust-maintainers] debcargo 2 ready for general use, to generate Debian rust packages
infinity0 at debian.org
Fri Jun 8 08:59:00 BST 2018
I just released debcargo 2 to crates.io and salsa git, and am happy to announce that it's ready for general use.
As you may know, debcargo is a tool to automatically convert rust crates into debian packages. To ease the long-term maintenance of this, version 2 contains some extra features, including the ability to supply an overlay directory to define extra Debian packaging settings not covered by debcargo's main concerns, such as debian/patches and so on. One nice feature of this new packaging is that cross-compilation should work out-of-the-box, just by running `sbuild --host=<foreign-arch> <crate-package>.dsc`.
Convenience scripts to wrap around this workflow may be found in https://salsa.debian.org/rust-team/debcargo-conf/ - which also contains overlays for popular packages. The intention is that this will be a centralised repository for all rust crates in Debian. The vast majority of crates will need no override, and the majority of the remainder only need a few lines of override config which can be stored in this repo. All other aspects of Debian packaging can be automated with debcargo.
This repo also contains some convenience scripts to ease the long-term maintenance workflow. The general pattern is:
# Setting up
$ git clone https://salsa.debian.org/rust-team/debcargo # if you haven't already
$ ( cd debcargo && cargo build )
$ git clone https://salsa.debian.org/rust-team/debcargo-conf
$ cd debcargo-conf
# Each new or updated crate
debcargo-conf$ ./update.sh <package> [<version>]
# this script will output more detailed instructions on what to do next
# for more hints, see debcargo.git/debcargo.toml.example
debcargo-conf$ # hack hack hack
debcargo-conf$ ./release.sh <package> [<version>]
debcargo-conf$ dput build/<package>-<version-semver>_*_source.changes
debcargo-conf$ git commit -a src/<package>-<version-semver>
debcargo-conf/TODO.md contains an approximate list of some popular rust packages, in the order that they should be packaged in for Debian. Please help with populating src/ with the necessary overrides and data! All packages will need manual maintenance of d/changelog and d/copyright; most other things can be automated as in the above example.
More information about the Pkg-rust-maintainers