Change:
There are a few issues of polish that I want to fix here: Although the installer internally supports multiple components there is no interface for actually selecting individual components. This is important because it allows to not install docs, which are 250 MB of the 50 MB install. Uninstallation can only be done through the original installer, which in many cases means the user is going to have to download the installer again. I want to put an uninstall script in the installation. This will require some refactoring and an upgrade of the installer manifest format.
This is a prereq for my plan to fix the .pkg uninstall issue
cc
cc

Discussion:
## Quick Start <del> 1. Download a [binary installer][installer] for your platform. 2. Read [The Rust Programming Language][trpl]. 3. Enjoy! </del> <ins> Read ["Installing Rust"][install] from [The Book][trpl]. </ins> <del> > ***Note:*** Windows users can read the detailed > [using Rust on Windows][win-wiki] notes on the wiki. [installer]: http://www.rust-lang.org/install.html </del> <ins> [install]: http://doc.rust-lang.org/book/installing-rust.html </ins> [trpl]: http://doc.rust-lang.org/book/index.html <del> [win-wiki]: https://github.com/rust-lang/rust/wiki/Using-Rust-on-Windows </del> ## Building from Source

When complete, `make install` will place several programs into `/usr/local/bin`: `rustc`, the Rust compiler, and `rustdoc`, the API-documentation tool. <del> 3. Read [The Rust Programming Language][trpl]. 4. Enjoy! </del> ### Building on Windows

[repo]: https://github.com/rust-lang/rust [tarball]: https://static.rust-lang.org/dist/rustc-nightly-src.tar.gz <del> [trpl]: http://doc.rust-lang.org/book/index.html </del> ## Notes

# Unix binary installer tarballs ###################################################################### <del> NON_INSTALLED_PREFIXES=COPYRIGHT,LICENSE-APACHE,LICENSE-MIT,README.md,version </del> define DEF_INSTALLER $$(eval $$(call DEF_PREPARE,dir-$(1)))

dist-install-dir-$(1): PREPARE_MAN_CMD=$(DEFAULT_PREPARE_MAN_CMD) dist-install-dir-$(1): PREPARE_CLEAN=true dist-install-dir-$(1): prepare-base-dir-$(1) docs compiler-docs <del> $$(Q)$$(PREPARE_MAN_CMD) $$(S)COPYRIGHT $$(PREPARE_DEST_DIR) $$(Q)$$(PREPARE_MAN_CMD) $$(S)LICENSE-APACHE $$(PREPARE_DEST_DIR) $$(Q)$$(PREPARE_MAN_CMD) $$(S)LICENSE-MIT $$(PREPARE_DEST_DIR) $$(Q)$$(PREPARE_MAN_CMD) $$(S)README.md $$(PREPARE_DEST_DIR) </del> $$(Q)mkdir -p $$(PREPARE_DEST_DIR)/share/doc/rust $$(Q)$$(PREPARE_MAN_CMD) $$(S)COPYRIGHT $$(PREPARE_DEST_DIR)/share/doc/rust $$(Q)$$(PREPARE_MAN_CMD) $$(S)LICENSE-APACHE $$(PREPARE_DEST_DIR)/share/doc/rust $$(Q)$$(PREPARE_MAN_CMD) $$(S)LICENSE-MIT $$(PREPARE_DEST_DIR)/share/doc/rust $$(Q)$$(PREPARE_MAN_CMD) $$(S)README.md $$(PREPARE_DEST_DIR)/share/doc/rust <ins> prepare-overlay-$(1): $$(Q)rm -Rf tmp/dist/$$(PKG_NAME)-$(1)-overlay $$(Q)mkdir -p tmp/dist/$$(PKG_NAME)-$(1)-overlay $$(Q)cp $$(S)COPYRIGHT tmp/dist/$$(PKG_NAME)-$(1)-overlay/ $$(Q)cp $$(S)LICENSE-APACHE tmp/dist/$$(PKG_NAME)-$(1)-overlay/ $$(Q)cp $$(S)LICENSE-MIT tmp/dist/$$(PKG_NAME)-$(1)-overlay/ $$(Q)cp $$(S)README.md tmp/dist/$$(PKG_NAME)-$(1)-overlay/ </ins> # This tiny morsel of metadata is used by rust-packaging <del> $$(Q)echo "$(CFG_VERSION)" > $$(PREPARE_DEST_DIR)/version </del> <ins> $$(Q)echo "$(CFG_VERSION)" > tmp/dist/$$(PKG_NAME)-$(1)-overlay/version </ins> <del> dist/$$(PKG_NAME)-$(1).tar.gz: dist-install-dir-$(1) </del> <ins> dist/$$(PKG_NAME)-$(1).tar.gz: dist-install-dir-$(1) prepare-overlay-$(1) </ins> @$(call E, build: $$@) # Copy essential gcc components into installer ifdef CFG_WINDOWSY_$(1)

endif $$(Q)$$(S)src/rust-installer/gen-installer.sh  --product-name=Rust  <del> --verify-bin=rustc  </del> --rel-manifest-dir=rustlib  --success-message=Rust-is-ready-to-roll.  --image-dir=tmp/dist/$$(PKG_NAME)-$(1)-image  --work-dir=tmp/dist  --output-dir=dist  <del> --non-installed-prefixes=$$(NON_INSTALLED_PREFIXES)  </del> <ins> --non-installed-overlay=tmp/dist/$$(PKG_NAME)-$(1)-overlay  </ins> --package-name=$$(PKG_NAME)-$(1)  --component-name=rustc  --legacy-manifest-dirs=rustlib,cargo

and run it. If you decide you don't want Rust anymore, we'll be a bit sad, but that's okay. <del> Not every programming language is great for everyone. Just pass an argument to the script: </del> <ins> Not every programming language is great for everyone. Just run the uninstall script: </ins> ```bash <del> $ curl -s https://static.rust-lang.org/rustup.sh | sudo sh -s -- --uninstall </del> <ins> $ sudo /usr/local/lib/rustlib/uninstall.sh </ins> ``` If you used the Windows installer, just re-run the `.exe` and it will give you

<del> Subproject commit e577c97b494be2815b215e3042207d6d4b7c5516 </del> <ins> Subproject commit 60fd8abfcae50629a3fc664bd809238fed039617 </ins>