| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
This adds a new optional field to system morphologies:
"configuration-extensions".
The deployment plugin relies heavily on code from the branch and
merge plugin. This needs to be eventually fixed by refactoring
the codebase so that the shared code is in morphlib and not in
plugins. However, doing that is beyond the scope of adding a
deployment plugin.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For Morph to work it's necessary for the staging area to contain a
full FHS heirarchy. However, if the staging area is empty we want to
give the user an obvious error. Previously we would say something like:
OSError: [Errno 2] No such file or directory: '/tmp/ccache'
This makes it seem like the problem is with ccache. With this patch,
we will instead get as far as:
/bin/sh: No such file or directory
This should make the real problem clearer.
Also, aborting while trying to mount the ccache directory causes the
/proc and /dev/shm mounts to persist which is fixed by this patch.
|
| | |
|
|\ \
| |/ |
|
| |\
| | |
| | |
| | | |
Merge commit fixes up a copyright year and removes EOL whitespace
|
| | |
| | |
| | |
| | |
| | | |
This can go away when we have made a release with yaml in it, and its
staging filler.
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
| | /
| |/
|/| |
|
| |\
|/ /
| |
| | |
Reviewed-By: Lars Wirzenius (on IRC)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current versions of build-essential in the Baserock morphologies
don't contain distcc, but Morph tries to use distcc anyway. Since
useful operation of distcc requires setting up a distcc network,
there's no reason for it to be on by default.
This change fixes bootstrap, and means that users of the
build-essential staging filler no longer have to set no-distcc=true
manually.
In the future, cliapp will grow automatic boolean negation, which
will allow us to turn this setting into a 'distcc' setting that
defaults to false rather than the current rather ugly double negative.
|
|
|
|
|
|
| |
If __file__ has no directory in it, dirname will return the empty
string, which in turn will break subprocess.Popen. The fix is to
use '.' instead of the empty string.
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Invalid text changed to be something that doesn't parse as YAML
either, and catch convert the YAMLError to the expected exception.
Ideally there wouldn't be any `#pragma: no cover`s, but I could not
trigger these code paths.
|
| |
| |
| |
| |
| | |
Tests are currently broken, one because invalid JSON
can be valid YAML, and coverage is incomplete.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This way everyone who needs json or an OrderedDict doesn't have to worry
about it.
Currently morph2 is the only one that needs this complex behaviour,
other users of the json module don't need object_pairs_hook.
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This can be used to rebuild an artifact with the exact same version
of morph. Eventually there may be a tool to do this, but it allows
for expert diagnosis until that point.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When morph is built, it writes various version information from git
into morphlib.
When morphlib is loaded it attempts to read this version information.
if it cannot be found then it checks whether morphlib is being run from
inside a git checkout, if it is then it reads the information that way.
If it isn't in a git checkout then it raises an exception as builds made
in such a fashion are not reproducible.
The git version information retained is:
1. The output of git describe
This is a relatively human-friendly way of knowing a version and
gives a reasonably short output string.
This will end with `-unreproducible` if there were uncommitted changes.
2. The commit sha1, so the exact part of Morph's history can be found
3. The tree sha1, so if the branch has been rebased rather than
merged such that the commit is lost, you may still be able to find
it, though it requires a git-wizard to check it out
4. The branch of morph, so that it's easier to see if the
Further possible changes to increase reproducibility include:
1. Not allowing `python setup.py build` if there are uncommitted changes
2. Failing to run with uncommitted changes (recommended against since it
will just annoy developers who are making changes to morph, and make
them commit just to shut it up, then destroy the history later)
Requiring an extra flag to build in this case may work better.
3. Reading the uncommitted changes into a tree object and including
that would allow it to be recovered if the tree was later committed.
4. Checking whether the commit has been pushed upstream as well.
Too annoying to work.
|
|\ \
| | |
| | |
| | |
| | |
| | | |
'origin/baserock/richardmaw/temp-build-ref-commit-fix'
Broke a long line to make test suite pass.
|
| | |
| | |
| | |
| | | |
This was the only case found which was fixed by the previous commit.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before it would determine which files are changed by comparing your
working tree to
This gets even weirder, since it's effectively comparing your working
tree, the last commit on the temporary build ref, and the last commit
of your HEAD, so committing a change to remove a file isn't noticed,
because it was in the temporary build branch.
It could also cause a strange case of a file being both added and
untracked.
Now the working tree and HEAD are compared, and committed on top of
the temporary build ref.
Better handling of the status output is still required, a deleted
file is treated identically to an added one if it is only removed
in the index.
It would also be nicer to keep the user's index, since they may have
added or removed files from it.
|
| | |
|
|\ \
| |/
|/|
| | |
Fixed long lines in scripts/bootstrap while merging.
|
| |
| |
| |
| |
| |
| |
| |
| | |
After installing libraries into the staging area, we need to run
ldconfig to update the shared library cache.
I presume that this wasn't required until now because the cache in
the staging filler tarball was enough.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
This functionality, of building a build-essential staging filler
using host tools rather than a staging chroot, will eventually be
done by Morph (and best of all, it will be done automatically when
changes are made to the build-essential stratum).
The script doesn't handle fetching source, so to use the script, you
require a base directory which must contain a 'gits' subdirectory
with a checkout of each chunk. Beyond this the build process is
handled by the script, except for installing fhs-dirs (which
requires root priviliges and must be done manually).
|
|
|
|
|
|
|
| |
This script has not worked for some time, and is not particularly
useful ('rm -r' can do pretty much the same thing).
Reviewed-By: Richard Maw <richard.maw@codethink.co.u>
|
|\ |
|
| | |
|
|/
|
|
|
|
|
| |
This reverts commit 053c0993bb62dd5e1a73d3367ea04c70874f3bd1.
It is needed, since tar.add(..., filter=func) is not available in
python2.7, so tarball system kind tests need to be disabled.
|
| |
|
|\
| |
| |
| | |
Reviewed-By: Lars Wirzenius (on IRC)
|
| |
| |
| |
| |
| | |
This output varies depending on the version of git, which currently
causes the test to fail on systems with git 1.7.10.
|
| |
| |
| |
| | |
The pattern is COMMAND-assertion, not morph-COMMAND-assertion.
|
|/
|
|
|
| |
tests.branching/edit-uses-ref-from-stratum tests behaviour that is
already verified by tests.branching/edit-clones-chunk
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ssh://git.baserock.org/baserock/baserock/morph
This includes the following fixups:
- altering the bootstrap script to install ordereddict and simplejson.
- Adding a comment to clarify that it is intentional to use simplejson
if collections does not have OrderedDict
- Amending the copyright years to include 2013
|
| | |
|
| |
| |
| |
| |
| | |
As we use ordererdict for python < 2.7 as well
See 37f8d84d7ab356169bf7c04bdecb39a61b85c88d
|
| |
| |
| |
| |
| | |
As we use ordererdict for python < 2.7 as well
See 37f8d84d7ab356169bf7c04bdecb39a61b85c88d
|
| |
| |
| |
| |
| | |
As we use ordererdict for python < 2.7 as well
See 37f8d84d7ab356169bf7c04bdecb39a61b85c88d
|
| |
| |
| |
| |
| | |
As we use ordererdict for python < 2.7 as well
See 37f8d84d7ab356169bf7c04bdecb39a61b85c88d
|
|/ |
|
|\
| |
| |
| | |
Fixed a copyright year to make ./check happy.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch makes morph store its ccaches by the url's basename instead
of using the whole url. This fixes the problem of morph choking when it
tries to mount a directory with a colon in its path, and also makes
all clones of one repository use the same cache (probably). This will
cause projects with the same name to use the same cache, but that is
not likely to cause serious problems.
|
|\ \
| |/
|/| |
|