Differences between revisions 26 and 27
Revision 26 as of 2018-06-28 04:57:31
Size: 4140
Editor: Infinity0
Comment: update url
Revision 27 as of 2018-06-28 05:43:16
Size: 4318
Editor: Infinity0
Comment: time estimate
Deletions are marked like this. Additions are marked like this.
Line 19: Line 19:
To help, join the salsa team, then __`git clone git@salsa.debian.org:rust-team/debcargo-conf`__ and follow instructions in `README.rst`. We currently have a backlog of about 200 crates to package and upload. To help, join the salsa team, then __`git clone git@salsa.debian.org:rust-team/debcargo-conf`__ and follow instructions in `README.rst`. We currently have a backlog of about 200 crates to package and upload. Each crate takes about 2-3 minutes to package once everything is set up; the initial set-up may take 10-30 minutes depending on how familiar you are with Debian packaging tools.

Debian Rust packaging team

TODO

Get involved!

  • {*} Get in touch with us via ML or IRC and join rust-team on salsa :)

  • {*}{*} Contribute to packaging, bug fixing and testing

  • {*}{*}{*} Report bugs, QA pitfalls, and stuff missing from drafts and TODO

Packages

Packaging of all rust crates is done in a single git repo, because most crates only need two files (d/copyright, d/changelog), everything else is automatically generated by debcargo.

To help, join the salsa team, then git clone git@salsa.debian.org:rust-team/debcargo-conf and follow instructions in README.rst. We currently have a backlog of about 200 crates to package and upload. Each crate takes about 2-3 minutes to package once everything is set up; the initial set-up may take 10-30 minutes depending on how familiar you are with Debian packaging tools.

For more details about what debcargo does, you can read through the Debian Rust packaging policy.

Toolchain (rustc, cargo)

General info

Bootstrapping a new distribution

rustc and cargo both Build-Depends on each other. In order to break the loop, we use Build Profiles.

For rustc, see "Bootstrapping" section of rustc's README.source.

For cargo, we currently don't have an automated way to do it. If you need to do this, the following steps should work: install upstream's cargo binary to /usr/local, install the other Build-Depends, and then dpkg-buildpackage -d.

Porting to a new architecture

Use sbuild --host=<arch> --profiles=nocheck, it should Just Work.

If it doesn't work, you might need to also give --extra-repository="deb http://incoming.debian.org/debian-buildd buildd-unstable main" which happens when (e.g.) there was recently a new GCC or binutils upload, and not all architectures were built and uploaded to FTP yet so some architectures are out-of-sync version-wise.

If it still doesn't work, check that the binary package crossbuild-essential-$arch exists for the desired architecture. If it doesn't, add this to your ~/.sbuildrc:

   1 $crossbuild_core_depends = {
   2   sparc64 => ['gcc-sparc64-linux-gnu:native', 'g++-sparc64-linux-gnu:native', 'dpkg-cross:all'],
   3 };

changing sparc64 to your desired architecture. You probably also need to add Debian-Ports to your APT sources.list.

If it still doesn't work, then file a bug to src:rustc, src:cargo, or debcargo as appropriate. You can also try glaubitz's method which involves more manual steps, though it is probably out-of-date by the time you read this.

For more details about rustc cross-compiling see "Cross-compiling" section of rustc's README.Debian.

People

We always welcome new contributors, and we are mostly available on IRC for quick questions. Feel free to ping us and join the team:

  • Luca Bruno (IRC: kaeso)
  • Sylvestre Ledru (IRC: sylvestre)
  • Ximin Luo (IRC: infinity0)