| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| | |
of git://git.baserock.org/baserock/baserock/morph
Reviewed-by: Sam Thursfield
Reviewed-by: Lars Wirzenius
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | | |
git://git.baserock.org/baserock/baserock/morph
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/|
| | |
ssh://trove.baserock.org/baserock/baserock/morph
|
|/ |
|
|\ |
|
| |\
| | |
| | |
| | | |
Reviewed-by: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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'
|
| | | |
|
| |/
| |
| |
| |
| |
| | |
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.
|
| |\
| | |
| | |
| | |
| | |
| | | |
git://git.baserock.org/baserock/baserock/morph
Reviewed-by: Lars Wirzenius
|
| | |
| | |
| | |
| | |
| | | |
This is more of a rough sketch so far, it's very ugly but it does work
for a fair amount of projects.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
Reviewed-By: Richard Maw
Reviewed-By: Daniel Silverstone
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | | |
Reviewed-By: Sam Thursfield in the office
|
|/ /
| |
| |
| | |
Reported-By: Sam Thursfield
|
|/
|
|
| |
This is mainly to fix bootstrap.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | | |
We can't rely on this being possible any more. It was mostly only used
for testing in any case.
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
git://git.baserock.org/baserock/baserock/morph
This merge includes modifying edit-morph to use self.output.write
instead of print for output.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows programmatic edits of certain kinds to morphologies, to
minimise the need for manual editing.
|
|\ \ \ \
| |/ / /
| | | |
| | | | |
git://git.baserock.org/baserock/baserock/morph
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | | |
|
|\ \ \ \
| | |/ /
| |/| /
| |_|/
|/| | |
|
|/ / |
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| | |
Making the changes mentioned in the comment would be quite invasive,
and we don't have to do so quite yet.
|
| | |
|
| | |
|
|/
|
|
|
| |
The artifact's build dependencies replace the build order graph
from previously.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | | |
Reviewed-By: Richard Maw (in real life)
|
|/ /
| |
| |
| |
| | |
Also, make test use bash instead of sh, so it passes on squeeze
as well as Baserock.
|