| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reorganise the build_artifact() and build_artifacts() functions to
allow more complex work when setting up chunk builds in
build_artifact().
The staging area now holds the BuildEnvironment object (the
environment variables that should be set during build). This makes sense
because all build commands should be run inside the staging area and
therefore through the StagingArea object.
The BuildEnvironment object is now considered immutable after it is
created. The environment is used in cache key computation when
computing what artifacts are required; if it changes after that point
we risk either computing different artifact keys for the same artifact
or missing data in the cache key that should be included in the hash.
Better to force changes into a separate 'extra_env' variable.
|
|
|
|
|
| |
This involved having a staging area with split personalities
and was generally a bit ugly.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
Running all the checks takes over 20 minutes for me. This makes it
likely that ./check doesn't get run very often. Dropping the slowest
tests by default makes ./check more usefull. Add the --full option
to enable the full test suite again.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
We already silently, automatically decompress if the artifact is
compressed. It is thus safe to turn off compression.
Compression saves disk space, but on ARM it takes up a lot extra
time, and we have lots of disk space, so for speed, not compressing
is a good idea.
|
| |
|
|
|
|
| |
Reviewed-by: Jonathan Maw <jonathan.maw@codethink.co.uk>
|
|\
| |
| |
| | |
'origin/baserock/richardholland/morph-deploy--tempdir'
|
| |
| |
| |
| | |
Allowed user to set the location of the temp directory using --tempdir
|
| |\
| | |
| | |
| | | |
baserock/richardholland/improve-output-messages
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
Merging all the things from the staging branch. They have all
already been reviewed.
|
| | | | |
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
into staging
|
| | |\ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
ssh://trove.baserock.org/baserock/baserock/morph into staging
This included a fixup for the copyright years and
the call to call_in_artifact_directory being a shade too long.
|
| |_|/ / /
|/| | | | |
|
| | |\ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
of git://git.baserock.org/baserock/baserock/morph into staging
Reviewed-by: Lars Wirzenius
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This works sub-optimally, `morph edit $system $stratum` needs to be
done first as `morph edit $system $stratum $chunk` fails if $chunk
is not defined in the parent branch.
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
'origin/baserock/richardholland/environment-logging' into staging
Added a "pragma: no cover" to make the test suite pass.
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Added function log_dict_diff to identify and record changes in dicts
to the debug log
This new function was then implemented in app.py to log changes in the
environment
|
| | |\ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
Conflicts:
morphlib/morph2.py
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Suggested-by: Sam Thursfield
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We already have configure-commands. Add pre-configure-commands and
post-configure-commands. Likewise for build-command, test-commands,
and install-commands.
Added-to-pacify: Rob Kendrick
|
| |\ \ \ \
| | | |_|/
| | |/| |
| | | | | |
'origin/baserock/richardholland/fix-virtualbox-deploy' into staging
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It was missing an import for sys.
It did not have the size of the disk either, this has also been fixed
|
| |\ \ \ \
| | | |_|/
| | |/| |
| | | | | |
'origin/baserock/richardholland/improve-output-messages' into staging
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
Added chunk name in status when starting build
Added the name of parent artifact (chunk that installing chunk was installed for) to start of build message
|
| |\ \ \ |
|
| |/ / /
|/| | | |
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
git://git.baserock.org/baserock/baserock/morph into staging
Reviewed-by: Lars Wirzenius
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Pass 3 is built with a staging filler, hence uses linux-user-chroot.
Unfortunately, linux-user-chroot does not work inside a chroot, since
it tries to mount / as private, and / inside the chroot is not the
mount point, so the kernel thinks it's been given a dodgy path.
Instead we provide a dummy that just chroots, without the extra mounts,
since we only use it to make some directories read-only right now.
|
| |\ \ \
|/ / / /
| | | |
| | | |
| | | |
| | | | |
'baserock/richardmaw/branch-and-merge-git-config-warnings-refactor' of git://git.baserock.org/baserock/baserock/morph into staging
Reviewed-by: Lars Wirzenius
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
This makes the warning messages include how to fix the problem.
morphlib.git.check_config_set will return the values of the
keys which were set, so it can be used to get git config.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|