| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This changes the cache key generation so that it will ignore unimportant
fields of the morphology, e.g. description, build-depends, chunks.
description is unimportant because it does not affect building, and
build-depends/chunks are unimportant because they are already considered
|
|
|
|
| |
This also makes coverage.py be silent on Debian squeeze.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch gives two things.
Improves morph build time by reusing decompressed files of
chunks/stage-fillers with hardlinks from the chroot. Rather than
decompressing each time into each chroot.
Original: real 5h 17m 47s
Hardlink: real 2h 52m 27s
It uses linux-user-chroot to create the chroot and make all but
the basics readonly.
|
|
|
|
|
|
|
| |
gzip files can store the name and date of the uncompressed original, and
this is displayed in some GUI archive managers, or when gunzip -N is used.
In our case the original filename is something like 'tmpXsgaY15', which
is useless information and serves only to confuse.
|
|
|
|
| |
Includes new test.
|
|
|
|
| |
Reported upstream as: http://bugs.python.org/issue16477
|
|
|
|
|
|
|
| |
This prevents us from leaving file handles open when code throws an
exception. When the file handle is on a loopback mount, this is a real
problem because Morph then cannot unmount the image in its exception
handler. In most cases 'with' is the best option.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
cmake has a ./configure, which accepts --prefix, but chokes on
--sysconfdir
This means that bootstrap is broken by this commit.
This reverts commit 5f22ded9711a047704fc91b68a182b057e29bc0f, reversing
changes made to e13753d4f3e26f3a4c705fb3e694ae8dea860c2d.
|
|\
| |
| |
| | |
git://git.baserock.org/baserock/morph
|
| |
| |
| |
| |
| | |
Currently the message is still displayed "Updating xxx" but no
update is actually done.
|
| |
| |
| |
| |
| | |
This is for users who prefer the old behaviour of building from the
remote repos.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This means that Morph no longer requires changes to be pushed in order
to build them.
The repos from the system branch are currently cached in the local
repo cache as part of the build process, which is far from ideal.
Tests for 'morph build' now test build without push. The build
metadata now includes a repo path that is inside the TMPDIR, so the
tests have been rewritten to avoid having any hardcoded cache keys
because the cache keys are no longer static.
|
| | |
|
|\ \
| | |
| | |
| | | |
git://git.baserock.org/baserock/morph
|
| |/ |
|
| |
| |
| |
| |
| |
| | |
Some autotools projects default their sysconfdir to $prefix/etc.
This leads to some projects trying to install files to /usr/etc, which
is not desired.
|
|\ \
| |/
|/|
| | |
Unused imports in morphlib/plugins/expand_repo_plugin.py were also removed
|
|/
|
|
|
| |
This is helpful for when the user is not sure what an aliases repo URL
actually expands to.
|
|
|
|
|
|
|
|
|
|
|
| |
The test tests.merging/rename-stratum could potentially trigger two
different errors in Morph, based on the order that the systems in the
root repo were processed.
This meant that the test would sometimes spuriously fail if TMPDIR
was manually set, because of differences in the way file systems work.
To fix the root cause requires proper 3-way merging, really.
|
|
|
|
|
|
| |
BranchAndMergePlugin.load_morphology() would crash if a parse error
occurred while reading a morphology from a specific revision in git,
instead of from on disk.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
It would be nice to put every option in a group, but for now the built-in
cliapp options cannot be grouped so the output is less than ideal.
Also, we have no way of setting an order for groups, which results in e.g.
'Advanced Options' preceeding 'General Options' etc.
|
| |
| |
| |
| |
| | |
Make sure all commands have one line of description, and reduce the
size of some which had large amounts of text.
|
| |
| |
| |
| |
| |
| | |
We have several plugins now that can be used as examples, and since
cliapp does not yet support hiding commands Morph currently has a
futile 'morph hello' command listed in --help.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also remove the '--ignore-submodules' option, which is redundant.
Hopefully cliapp will one day support option grouping, so we can
hide some sets by default and group eg. all the logging options
together.
|
|/
|
|
|
|
| |
This is intended to for human consumption, with the full set of
metadata in /baserock/system-artifact-name.meta. It currently lists
system name, the symbolic ref of the system morphology and build date.
|
|
|
|
|
|
|
|
| |
This makes it easier to identify what version of a system we are running.
Tests are updated to check inside the contents of the rootfs we created,
and the code to mount the rootfs as a loopback device was extracted out
into tests.as-root/lib
|
|\
| |
| |
| | |
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
|
| |
| |
| |
| |
| | |
Output needs to be stable, not least so that the test doesn't fail
sporadically.
|
|\ \
| |/
|/|
| | |
git://git.baserock.org/baserock/morph
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
This change causes 'morph petrify' to avoid petrifying any chunk whose
ref matches the current system branch, because it makes no sense to
petrify something that is also being edited. It also improves efficiency
slightly and adds warning where different systems point to different
refs of the same stratum.
A non-obvious effect of this is that if you try to petrify 'master',
many of the chunks won't get petrified because they are built from
'master'. However, petrifying master makes no sense so I'm not sure
that we need to worry.
|
|
|
|
|
|
|
|
| |
Previously if the user had renamed the directory holding the root
repository, the commands would break tragically.
Also fix find_repository() to avoid aborting if it encounters a git
repo in the branch checkout that wasn't put there by Morph.
|
| |
|
|
|
|
| |
This provides a user-friendly summary of the workspace or branch status.
|
|
|
|
|
| |
Users do not need these now due to 'morph status' existing. However, they
are still useful for scripts to call.
|
|
|
|
|
| |
This fixes a bunch of tests so they pass on squeeze, which has a version
of Python whose GzipFile doesn't support the "with" protocol.
|
|\
| |
| |
| |
| |
| | |
'origin/samthursfield/S4873-warn-when-merge-causes-petrification'
Renamed petrification test slightly as merge fixup.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The concept of a component path is new. This is simply a concise way
of referring to a component in an error message, and looks like this:
base-system-x86_64-generic.bsp-x86_64-generic.linux
We currently only touch the 'edited chunks' in merge_stratum(), i.e.
those in the FROM branch where 'morph edit' was run. However, the
petrification can affect any chunk so there is a new method added to
obtain all components in a morphology. This function also returns the
differences between the two, which we will make use of at a later date.
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
| |
This should not normally be used, because we make no attempt to detect
when a full URL and a keyed URL are equivalent, so they cannot be used
interchangably.
However, 'foreach' would previously fail completely if the branch root
happened to be a full URL because it didn't call convert_uri_to_path()
correctly.
|
|
|
|
|
|
| |
Symlink paths are not altered, since their paths are relative to
where the link is, not the root of the file system, and should be
handled by the chunk's creation.
|
| |
|