summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'baserock/richardmaw/branch-and-merge-git-config-warnings-v2' ↵baserock/genivi/baseline/releases/F-0.1Richard Maw2013-03-012-2/+40
|\ | | | | | | | | | | | | of git://git.baserock.org/baserock/baserock/morph Reviewed-by: Sam Thursfield Reviewed-by: Lars Wirzenius
| * B&M: Check git config before some subcommandsRichard Maw2013-03-012-0/+39
| | | | | | | | | | | | | | | | | | Some subcommands use git to create commits, in which case user config needs to be set. Others imply commits may be created, e.g. by cloning a repository, at which point it is useful to have a reminder that the configuration needs to be set.
| * B&M: Commit to build branches with user's emailRichard Maw2013-03-011-2/+1
| | | | | | | | | | | | While it may be useful to have the username and machine the commit was made on, it's more useful to have the committer's email address, and the email field is for email addresses.
* | Merge branch 'liw/hardlinking-symlinks' of ↵Richard Maw2013-03-011-4/+4
|\ \ | | | | | | | | | git://git.baserock.org/baserock/baserock/morph
| * | Fix existence checks to not follow symlinksLars Wirzenius2013-03-011-4/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | When we hardlink the staging area tree, we were checking if the target file already exists with os.path.exists. Unfortunately, this follows a symlink, and in this case, we don't want to: if the symlink target exists, and is a symlink, we want to remove the symlink only, and we don't care about its target. The target file may exists because of overlapping files in chunks. Reported-By: Paul Sherwood
* | Merge branch 'jonathanmaw/fix-tempdir-none' of ↵Richard Maw2013-03-011-0/+5
|\ \ | |/ |/| | | ssh://trove.baserock.org/baserock/baserock/morph
| * Fix settings['tempdir'] not being setJonathan Maw2013-03-011-0/+5
|/
* Merge branch 'master' of git://git.baserock.org/baserock/baserock/morphLars Wirzenius2013-02-2818-129/+794
|\
| * Merge branch 'jonathanmaw/hardlink-staging-area-rebase'Jonathan Maw2013-02-285-71/+223
| |\ | | | | | | | | | Reviewed-by: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
| | * Add the ability for chunk morphs to specify devicesJonathan Maw2013-02-283-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Within a linux-user-chroot, we do not want to allow arbitrary code to create device nodes, but still want it to be possible to create a device node. This commit creates and handles the 'devices' field in a chunk morphology, which takes: * filename. A string, e.g. "/dev/null" * uid. The ID of the user the file belongs to, e.g. 0 for root. * gid. The ID of the group the file belongs to, e.g. 0 for root. * type. A string of either 'c' for a character device or 'b' for a block device. * major. The device's major number. * minor. The device's minor number. * permissions. A string of the octal number that would be passed to chmod e.g. '0777'
| | * Perform *-commands in linux-user-chrootJonathan Maw2013-02-281-2/+17
| | |
| | * Hardlink files into the staging-areaJonathan Maw2013-02-283-69/+180
| |/ | | | | | | | | | | Instead of repeatedly unpacking tarballs into a succession of staging- areas, it will unpack each tarball only once, then hardlink all the files into the staging-area instead.
| * Merge branch 'richardmaw/artifact-inspection-plugin-rebase-v2' of ↵Richard Maw2013-02-2713-58/+571
| |\ | | | | | | | | | | | | | | | git://git.baserock.org/baserock/baserock/morph Reviewed-by: Lars Wirzenius
| | * Add version guessing for autotools projectsJannis Pohlmann2013-02-211-1/+139
| | | | | | | | | | | | | | | This is more of a rough sketch so far, it's very ugly but it does work for a fair amount of projects.
| | * Add image inspection pluginJannis Pohlmann2013-02-218-0/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a `run-in-artifact` command which allows another command to be run in a system. There is also a `content-manifest` command which gives a manifest of the artifacts, which commits they were built from, and if possible, a version. This adds a morphlib.bins.call_in_artifact_directory() method to run a command inside an artifact and to generate a manifest.
| | * Add ExtractedTarball class and method to extract/mount an artifactJannis Pohlmann2013-02-214-1/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ExtractedTarball is more or less the equivalent to MountableImage for artifacts that are not mountable images. So in order to inspect root file system tarballs, ExtractedTarball can be used, for disk images, MountableImage can be used. The morphlib.bins.call_in_artifact_directory() method combines these two classes and provides a way to extract/mount an artifact and call a callback with the temporary directory / mount point as its first argument. Using this, a plugin that runs a command relative to an artifact's root directory can be written easily.
| | * Move MountableImage class into morphlibJannis Pohlmann2013-02-214-57/+86
| | | | | | | | | | | | | | | | | | | | | This class would be pretty useful in other cases where a system image needs to be mounted and inspected. Also updates the Trebuchet plugin to use this class.
* | | Merge branch 'liw/fix-plugin-import'Lars Wirzenius2013-02-281-2/+1
|\ \ \ | |/ / |/| | | | | | | | Reviewed-By: Richard Maw Reviewed-By: Daniel Silverstone
| * | Install plugins as a Python package, not package dataLars Wirzenius2013-02-281-2/+1
|/ / | | | | | | | | | | | | | | | | | | Previously, we were installing morphlib/plugins/*.py as package data. It now needs to be a proper Python package, so that "import morophlib.plugins" works (or "import morphlib.plugins.foo_plugin"). This requires us to install the morphlib/plugins/__init__.py file in setup.py, which this patch makes happen. Reported-By: Jonathan Maw
* | Merge branch 'liw/fix-artifact-walk'Lars Wirzenius2013-02-221-3/+3
|\ \ | | | | | | | | | Reviewed-By: Sam Thursfield in the office
| * | Avoid infinite looping when walking artifact dep graphLars Wirzenius2013-02-221-3/+3
|/ / | | | | | | Reported-By: Sam Thursfield
* | Allow building strata with 'morph build-morphology' againSam Thursfield2013-02-224-8/+7
|/ | | | This is mainly to fix bootstrap.
* Fix ./check on SqueezeSam Thursfield2013-02-211-2/+11
|
* Merge branch 'liw/build-progress2'Sam Thursfield2013-02-212-3/+14
|\
| * Make BuildCommand report current and total build stepsLars Wirzenius2013-02-212-3/+14
| | | | | | | | | | | | This adds a [Build 1/12765] to the output of the building of each artifact. This makes it easier to see how much work there might still be remaining.
* | Merge branch 'samthursfield/only-build-systems' of ↵Richard Maw2013-02-2140-124/+267
|\ \ | | | | | | | | | | | | | | | | | | git://git.baserock.org/baserock/baserock/morph This includes a merge fixup in ./check, so that it does not complain about build-system-autotools' test's tabs.
| * | buildcommand: Refuse to build chunks or strata out of contextSam Thursfield2013-02-203-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | Building invididual chunks is bad because we have no idea what build mode to use. Building individual strata would work, but all of the stratum's build dependencies would need to be built first so there would be little time saved in any case. There is also no way to test them beyond checking that the build was successful.
| * | tests.build: Don't build individual chunks or strataSam Thursfield2013-02-2026-128/+100
| | | | | | | | | | | | | | | We can't rely on this being possible any more. It was mostly only used for testing in any case.
| * | Separate out build tests from general Morph testsSam Thursfield2013-02-2034-17/+152
| | |
* | | Merge branch 'samthursfield/edit-morph' of ↵Richard Maw2013-02-212-4/+213
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | git://git.baserock.org/baserock/baserock/morph This merge includes modifying edit-morph to use self.output.write instead of print for output.
| * | | scripts/edit-morph: Add to-yaml and to-json commandsSam Thursfield2013-02-181-0/+42
| | | |
| * | | Allow forcing output format (useful for edit-morph script)Sam Thursfield2013-02-181-4/+8
| | | |
| * | | Add scripts/edit-morph.pySam Thursfield2013-02-181-0/+163
| | | | | | | | | | | | | | | | | | | | This allows programmatic edits of certain kinds to morphologies, to minimise the need for manual editing.
* | | | Merge branch 'samthursfield/morph-update-improvements' of ↵Richard Maw2013-02-213-148/+258
|\ \ \ \ | |/ / / | | | | | | | | git://git.baserock.org/baserock/baserock/morph
| * | | Make writing morphologies back out properly non-destructiveSam Thursfield2013-02-183-154/+252
| | | | | | | | | | | | | | | | | | | | | | | | Remove the special case hacks we had and do a proper comparison between original and new in-memory dict when writing updates to user morphologies.
| * | | Handle morphs that are not dicts (By failing)Sam Thursfield2013-02-182-3/+6
| | | |
| * | | Detect and abort on empty morphologiesSam Thursfield2013-02-182-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If given an empty string to parse yamlparse.load() will return None, but this breaks code further down that expects to be dealing with a dict. Raise an exception to avoid crashing. Also, avoid catching 'Exception' when we only want to catch JSON parse errors.
| * | | Catch only JSON parse exceptions, not ExceptionSam Thursfield2013-02-181-1/+1
| | | |
* | | | Merge branch 'liw/debug-jjardon-assert-fail'Sam Thursfield2013-02-202-13/+2
|\ \ \ \ | | |/ / | |/| / | |_|/ |/| |
| * | Make rootfs-tarball build only the tarball also on ARMLars Wirzenius2013-02-202-13/+2
|/ /
* | Merge branch 'liw/build-ordering'Sam Thursfield2013-02-199-407/+134
|\ \ | |/ |/|
| * Add clarifying commentSam Thursfield2013-02-191-1/+3
| | | | | | | | | | Making the changes mentioned in the comment would be quite invasive, and we don't have to do so quite yet.
| * Rewrite show-dependencies to work without BuildOrderLars Wirzenius2013-02-192-109/+66
| |
| * Stop computing the old build orderingLars Wirzenius2013-02-194-267/+17
| |
| * Replace builder order graph with just a single artifactLars Wirzenius2013-02-194-36/+54
|/ | | | | The artifact's build dependencies replace the build order graph from previously.
* Merge branch 'baserock/richardmaw/fix-edit-build-depends'Sam Thursfield2013-02-136-36/+117
|\
| * Amend tests to trigger failure to recursively update strataRichard Maw2013-02-135-3/+51
| |
| * morph edit: Recursively edit strataRichard Maw2013-02-131-33/+66
| | | | | | | | | | | | | | | | | | | | | | Previously the code would edit strata that dependended on the stratum being edited, but would ignore the dependency chain beyond that. In fact, we need to edit all strata in the dependency chain to avoid having two different versions of a stratum in the same build. This splits the modification into two steps: changing the stratum that points to the chunk, and recursively changing references to any strata that have been altered.
* | Merge branch 'liw/disable-test-on-squeeze'Lars Wirzenius2013-02-121-2/+9
|\ \ | | | | | | | | | Reviewed-By: Richard Maw (in real life)
| * | Disable deployment test on Python 2.6Lars Wirzenius2013-02-121-2/+9
|/ / | | | | | | | | Also, make test use bash instead of sh, so it passes on squeeze as well as Baserock.