# Perfecting Rust Packaging - The Plan

**URL:** <https://internals.rust-lang.org/t/perfecting-rust-packaging-the-plan/2767>\
**Category:** Uncategorized\
**Created:** [October 9, 2015, 11:23pm UTC](https://internals.rust-lang.org/t/perfecting-rust-packaging-the-plan/2767 "2015-10-09T23:23:14Z")\
**Posts on this page:** 1\
**Showing post:** 41

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [January 11, 2016, 11:18pm UTC](https://internals.rust-lang.org/t/perfecting-rust-packaging-the-plan/2767/41 "2016-01-11T23:18:49Z")

</div>

Hey folks.

I’ve gone through and done a quick summary of the status of each of the issues identified in this thread. The TL;DR is that while several of the issues have been fixed, there’s a lot of work left to do. I have not put much focused effort into these myself.

I think the most notable development is that and @alexcrichton and @wycats agree in principal to adding a new [“local registry”](https://github.com/rust-lang/cargo/issues/2212), where the packages live on the local filesystem instead of [crates.io](http://crates.io). This was originally called a “non-goal”, and we expected distros to use path-rewriting to redirect dependencies locally. In @gus’s experience that solution was quite unpleasant, and we want to provide official support for sourcing packages locally.

## Task: Compiler command line customization in the Rust makefile

Issue: [https://github.com/rust-lang/rust/issues/29554](https://github.com/rust-lang/rust/issues/29554)

Status: Fixed. Thanks @bltaveras

## Task: Bootstrapping from previous releases

Issue: [https://github.com/rust-lang/rust/issues/29555](https://github.com/rust-lang/rust/issues/29555)

Status: No progress. @alexcrichton’s build system rewrite though removes snapshots, which is part of the solution. This should be solved sooner than a build system rewrite.

## Task: Re-bootstrapping from the current release

Issue: [https://github.com/rust-lang/rust/issues/29556](https://github.com/rust-lang/rust/issues/29556)

Status: No progress.

## Task: Bootstrapping unstable code from a stable compiler

Issue: [https://github.com/rust-lang/rust/issues/295577](https://github.com/rust-lang/rust/issues/295577)

Status: I’ve put some thought into it, solicited opinions about how to do it, and scrapped a partial patch.

## Task: Dynamic LLVM

Issue: [https://github.com/rust-lang/rust/issues/29558](https://github.com/rust-lang/rust/issues/29558)

Status: Fixed. Thanks @DiamondLovesYou

## Task: Add an i586-unknown-linux-gnu target spec

Issue: TODO

Status: Still don’t know the right solution for this. Debian’s default i386 target is older than Rust’s. For now it’s a Debian problem.

## Task: Teach the makefile to mix in additional ‘extra filename’ information

Issue: [https://github.com/rust-lang/rust/issues/29559](https://github.com/rust-lang/rust/issues/29559)

Status: [PR open](https://github.com/rust-lang/rust/pull/30599)

## Task: Ensure that SxS installation of crates from multiple compilers works reliably.

Issue: [https://github.com/rust-lang/rust/issues/29560](https://github.com/rust-lang/rust/issues/29560)

Status: No progress.

## Task: Fix --libdir issues

Issue: [https://github.com/rust-lang/rust/issues/29561](https://github.com/rust-lang/rust/issues/29561)

Status: Fixed. Thanks @wthrowe

## Task: Disambiguate system-installed crates during resolution

Issue: [https://github.com/rust-lang/rust/issues/16402](https://github.com/rust-lang/rust/issues/16402)

Status: No progress.

## Task: Update Homebrew packages

Issue: [https://github.com/rust-lang/rust/issues/29562](https://github.com/rust-lang/rust/issues/29562)

Status: No progress.

## Task: Produce packaging guidelines

Issue: [https://github.com/rust-lang/rust/issues/29563](https://github.com/rust-lang/rust/issues/29563)

Status: No progress.

## Task: Publish source tarballs of Cargo releases

Issue: [https://github.com/rust-lang/cargo/issues/2107](https://github.com/rust-lang/cargo/issues/2107)

Status: No progress.

## Task: Pair Cargo releases with Rust releases

Issue: [https://github.com/rust-lang/cargo/issues/2108](https://github.com/rust-lang/cargo/issues/2108)

Status: Partially fixed. The Cargo that Rust releases are paired with is tagged with a release number. Still don’t have the automation up to make Cargo release artifacts.

## Task: Make binary releases of Cargo

Issue: [https://github.com/rust-lang/cargo/issues/2109](https://github.com/rust-lang/cargo/issues/2109)

Status: No progress.

## Task: Validate that Cargo releases build with the corresponding Rust release

Issue: TODO

Status: No progress.

## Task: Bootstrap Cargo without Cargo

Issue: [https://github.com/rust-lang/cargo/issues/2110](https://github.com/rust-lang/cargo/issues/2110)

Status: No progress. I’m having second thoughts about doing this at all though. ISTM that once a distro has a binary version of Cargo they can build future

## Task: Enable Cargo to work without any network access

Issue: [https://github.com/rust-lang/cargo/issues/2111](https://github.com/rust-lang/cargo/issues/2111)

Status: No progress, though there’s a [new issue](https://github.com/rust-lang/cargo/issues/2212) about making Cargo work with local registries instead of [crates.io](http://crates.io).

## Task: Compiler command line customization

Issue: [https://github.com/rust-lang/cargo/issues/2112](https://github.com/rust-lang/cargo/issues/2112)

Status: [PR open](https://github.com/rust-lang/cargo/issues/2241).

---

_[View the full topic](https://internals.rust-lang.org/t/perfecting-rust-packaging-the-plan/2767)._
