summaryrefslogtreecommitdiff
path: root/morphlib/plugins/cross-bootstrap_plugin.py
Commit message (Collapse)AuthorAgeFilesLines
* Rename builder2 module to builderSam Thursfield2014-12-191-2/+2
|
* Build per-source rather than per-artifactRichard Maw2014-09-191-66/+55
|
* Remove Morphology.builds_artifactsRichard Maw2014-09-191-4/+0
| | | | | This was used before the Artifact splitting code landed to determine which artifacts should be produced.
* Rename BuildCommand.get_sources to fetch_sourcesRichard Maw2014-09-191-1/+1
| | | | | There's other methods called get_sources in other modules, and fetch_sources explains more about what it does in the context.
* morphloader: Get commands when loading morphologyAdam Coldrick2014-08-141-1/+1
| | | | | | Rather than having a `get_commands` method to obtain missing commands from the build system when they are needed, get the commands when loading a morphology.
* Use exact filenames to refer to morphology filesRichard Maw2014-07-101-1/+1
| | | | | | | | | | | | | | | | | | | Rather than repeatedly stripping and appending an optional .morph extension morphology names, instead always use the file path of the morphology relative to the definitions repository. This is an inversion of the previous logic, which would strip the .morph extension and use the "name" internally. The exception to this rule of always using the filename, is that `morph edit CHUNK` uses the name of the morphology as-defined in the stratum. This is based off Adam Coldrick's inital patch, but this version will allow the old style of providing the "name" by converting it into a path if it does not have either a / or a . in it. An unfortunate consequence of this change is that the show-dependencies command's output changed, so the test needed updating.
* Improve robustness when fetching artifacts from remote artifact cacheSam Thursfield2014-06-031-12/+2
| | | | | | | | | | | Previously Morph would check if an artifact is present in the remote artifact cache, then fetch the necessary files. If an error occured during fetching, it would raise an error and abort. Instead, we should just try and fetch the files and if anything fails, move on to building locally. This avoids the situation where an error in the remote cache makes local building impossible, which we experienced recently.
* Deploy and cross-bootstrap commands no longer validate host architectureBen Brown2013-12-201-0/+13
|
* Make cross-bootstrap successfully build everythingJonathan Maw2013-09-241-7/+14
| | | | | | | | | | | | | | | | | This does three things: 1. It makes sure that the native-bootstrap script terminates if any steps fail. 2. It installs files to a temporary directory, then copies them out, so that builds don't break in cases where we delete files from DESTDIR. 3. It makes appropriate minor fixes so that a cross-bootstrap build can happen from beginning to end. Note: native-bootstrap does not succeed in every case. It has been observed to fail in an x86_64 virtual machine.
* Add morph cross-bootstrapSam Thursfield2013-07-301-0/+311
Cross-bootstrap is a way to build baserock on an architecture that does not currently have Baserock. It can be used by `morph cross-bootstrap <ARCH> <REPO> <REF> <MORPH>`, and will build an artifact that can be used as a root filesystem with a basic build environment with a script named `native-bootstrap` which will build and install every chunk in the system. If done with a devel system, this will give you a suitable environment for building a proper Baserock system. This does not currently provide a kernel for the target architecture. Apart from adding the cross-bootstrap plugin, it also makes the following changes: * Moves the lit of valid_archs into morphlib (instead of locally-scoped in MorphologyFactory) * BuildCommand takes an extra argument, build_env * split BuildCommand's get_artifact_object into create_source_pool and resolve_artifacts (plus changes things that use get_artifact_object to use the new way) * setup_mounts finds out whether to do so by whether build_mode is 'staging', instead of by whether the setting 'staging-chroot' is true. * Makes ChunkBuilder's get_sources use the morphlib.builder2.extract_sources() method, and moved set_mtime_recursively into morphlib.builder2, since it's not currently used anywhere else. * moved ChunkBuilder's get_commands into the Morphology class (plus changes to anything that used get_commands)