Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This follows discussion on Homebrew#33322, where it has been hypothesized that the best course of action may very well be to include cargo in the rust formula. Reasons include: - upstream packages releases with cargo - cargo has no formal versioning rules, merely binding a particular cargo nightly to a given rust release - cargo needs a non feature-gated rust to build - cargo needs to fetch cargo to bootstrap itself (at the make stage) The most practical way to get the cargo version bound to a rust release is to download a binary rust release and run cargo -V, which shows the SHA1 it was built from. This is what has been done for the beta. Alternatively, building with --HEAD relaxes all version constrains and builds both from their respective master HEADs. Curl is a dependency of .travis.install.deps.sh while both curl and python are a dependency of make (via src/etc/dl-snapshot.py) to download a cargo snapshot. Each one makes respective use of a src/rustversion.txt and a src/snapshots.txt file, combined with some very lighteight processing, to find the required downloads. Thus it may be possible to include fetched downloads as resources to improve cacheability and reduce the dependency profile, but this requires patching of .travis.install.deps.sh, that currently unconditionally downloads its stuff. Simply putting the cargo snapshot in the right place ($(TARGET_ROOT)/snapshot/cargo) will certainly make the makefile happy, as long as the proper filename unmangling is done (see src/etc/dl-snapshot.py). Still, configure wants to probe for python. Staying KISS, no patching has been done here: make it work, make it right, make it fast.
- Loading branch information