summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2013-02-20 15:55:19 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2013-03-13 15:20:02 +0000
commit79a6f05bbf70a4fa10b1b426ef9f223d5cbaf3ee (patch)
tree042b615d802a7916ad43c0529fba13e3ffd42068 /README
parent31b23c4460545bb41d5907524ff56fd272d44ffe (diff)
downloadmorph-79a6f05bbf70a4fa10b1b426ef9f223d5cbaf3ee.tar.gz
Remove old bootstrap mechanisms
That means that bootstrapping Baserock is currently not possible with this branch of Morph, but there's no reason it cannot be bootstrapped using an older version of Morph instead.
Diffstat (limited to 'README')
-rw-r--r--README91
1 files changed, 0 insertions, 91 deletions
diff --git a/README b/README
index 36d33a43..3c9fa8ab 100644
--- a/README
+++ b/README
@@ -254,9 +254,6 @@ more consistently across machines and developers.
See the `morphlib/builder.py` file, method `setup_env` for details.
-Until Baserock is properly bootstrapped, it's awkward that the `PATH`
-variable gets reset. To avoid that, use the `--keep-path` option.
-
Hacking morph
-------------
@@ -271,94 +268,6 @@ and check out the `cmdtest` utility (from <http://liw.fi/cmdtest/>).
Run the checks before submitting a patch, please.
-The Bootstrap Process
----------------------
-
-The goal of the bootstrap process is to create an environment that has
-only been built with morph. It is a long boring process that can take
-a few hours.
-
-It can be started by running `./run-bootstrap-in-chroot $workingdir`
-with some environment variables set.
-
-The variables are:
-* `DEBIAN_MIRROR`; which must be a path suitable for passing to
- debootstrap; which at the time of writing allowed http://,
- file:// or ssh:// urls; **required**
-* `GIT_TARBALLS`; which must be a url to a tarballs directory;
- morph will try to fetch tarballs from here before trying the
- git-base-url; **required**
-* `snapshot`; which should be `false` (or any executable that
- exits unsuccessfully) if creating a snapshot after each stage
- of the bootstrap is not desirable; optional
-
-If snapshot is true or omitted then after each stage of the bootstrap
-a tarball of the working directory is created, so that if a later stage
-fails it can start from the last successful stage.
-
-The mirror variables allow the bootstrap to be run more quickly if the
-required files are available locally.
-
-The mirror variables being required and snapshotting defaulting
-to true are artefacts of the bootstrap process' development, where
-only re-running the step that failed and using local mirrors were
-essential for making fixes.
-
-
-Bootstrap stages
-----------------
-
-The stages required for the bootstrap are to create a debian squeeze
-chroot; build a skeleton system using the linux from scratch specified
-tarballs; chroot into this system and build a system using morph with
-bootstrap mode; then build the system again but instead using morph's
---staging-chroot mode and with the linux from scratch system removed.
-
-The squeeze chroot (stage 0) is used so that the bootstrap process does
-not need to be supported on every available host system, but every host
-system that can run debootstrap can be indirectly supported.
-
-In this stage debootstrap creates a chroot with all the packages required
-to build the linux from scratch system, from then onwards every stage is
-built by running baserock-bootstrap and optionally making a snapshot.
-
-Stage 1 builds everything in a subdirectory of the squeeze-chroot called
-tree, and all the packages are built with --prefix=/tools, so the full
-path for `cat` would be `$workingdir/squeeze-chroot/tree/tools/bin/cat`.
-
-This is done so that we have a known good system to work from, that won't
-become entangled with the final system, which installed with --prefix=/usr.
-
-Stage 2 uses morph to build a system, while chrooted into
-`$workingdir/squeeze-chroot/tree`, this naturally required PATH to include
-/tools/bin.
-
-Morph is used to build the `foundation.morph` and `devel-bootstrap.morph`
-strata in the `morphs` repository. `devel-bootstrap.morph` may not use the
-same morphs as `devel.morph` because the bootstrap requires some hacks that
-aren't required when a fully bootstrapped system is available.
-
-Morph also uses the `--bootstrap` flag to make the chunks be unpacked after
-they have been built, this is required for build-dependencies to be met as
-prerequisites are expected to be available on the system.
-
-After morph has finished a reasonably complete system should be available,
-so `$workingdir/squeeze-chroot/tree/tools` is removed to save space and
-make it obvious if stage 2 is missing anything needed for stage 3.
-
-Stage 3 builds `devel.morph` which does not need all the hacks required
-in building during the bootstrap, so it should be much more like what
-morph will finally build.
-
-Rather than using `--bootstrap`, stage 3 uses `--staging-chroot`, which
-builds and extracts into a chroot, rather than using anything on the host
-system.
-
-For this to be able to build anything `--staging-filler` is used, which
-allows for specifying the environment that chunks are built in. Stage 3
-uses the strata that were build in stage 2.
-
-
Legalese
--------