From a03f1620179f1f0eea7897eb1e8d49c60bff2529 Mon Sep 17 00:00:00 2001 From: Andrew Clemons Date: Thu, 12 Apr 2018 22:17:30 +1200 Subject: development/rust: Update README with bootstrapping notes. Signed-off-by: Andrew Clemons --- development/rust/README | 2 ++ development/rust/README.SLACKWARE | 46 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 development/rust/README.SLACKWARE (limited to 'development/rust') diff --git a/development/rust/README b/development/rust/README index fdebb5dac5..d26005703e 100644 --- a/development/rust/README +++ b/development/rust/README @@ -21,3 +21,5 @@ You can also force either behaviour through the LOCAL_BOOTSTRAP=yes|no parameter. LOCAL_BOOTSTRAP=no ./rust.SlackBuild + +For alternative options for bootstrapping, see README.SLACKWARE diff --git a/development/rust/README.SLACKWARE b/development/rust/README.SLACKWARE new file mode 100644 index 0000000000..2e925a7d46 --- /dev/null +++ b/development/rust/README.SLACKWARE @@ -0,0 +1,46 @@ +Bootstrapping rust from source on Slackware + +The README describes the official way to bootstrap rust from source by using +the mozilla binary stage0 compiler and binary cargo from rust-lang.org. + +If you'd rather bootstap rust completely from source, there is an +experimental, alternative rust compiler written in C++, mrustc. A +slackbuild for it is also available on slackbuilds.org. + +For stability against rust's 6 week release cycle, mrustc is frozen to support +building rust 1.19.0 from source. Once this is done, you can use this rust to +continue building each successive rust version until you get to the most recent +one. + +Here is a rough guide to bootstrap rust completely from source: + +* Build and install mrustc (from slackbuilds.org). You now have a fully + functional rust 1.19.0. +* Now build for rust 1.20.0, 1.21.0, 1.22.1, 1.23.0, 1.24.1, and finally + 1.25.0. + +This slackbuild is currently compatible with each of those versions. +Since we are building completely from source, you only need the source +tarball of each version and not all the other binary files listed in +rust.info. Simply replace the version in the url. + +Example: + + VERSION=1.20.0 FULL_BOOTSTRAP=yes LOCAL_BOOTSTRAP=yes ./rust.SlackBuild + VERSION=1.21.0 FULL_BOOTSTRAP=no LOCAL_BOOTSTRAP=yes ./rust.SlackBuild + VERSION=1.22.1 FULL_BOOTSTRAP=no LOCAL_BOOTSTRAP=yes ./rust.SlackBuild + VERSION=1.23.0 FULL_BOOTSTRAP=no LOCAL_BOOTSTRAP=yes ./rust.SlackBuild + VERSION=1.24.1 FULL_BOOTSTRAP=no LOCAL_BOOTSTRAP=yes ./rust.SlackBuild + VERSION=1.25.0 FULL_BOOTSTRAP=no LOCAL_BOOTSTRAP=yes ./rust.SlackBuild + +You might prefer to do a full bootstrap for 1.20.0, which is what mrustc's own +bootstrap script suggests. The versions after that do not need a full bootstrap. + +After building the first version (1.20.0), remove mrustc and install +rust-1.20.0. Then build the next version and upgrade rust with the +result and carry on until you have built the final version. + +Additionally, I currently have a shell script which automates this whole +process to end up with the current rust package version: + +https://github.com/aclemons/slack-rust-bootstrap -- cgit v1.2.3