* repo: git://git.baserock.org/baserock/morph
* branch: liw/fix-check-on-squeeze
* commit: f5b2eb8fe4ea19af7cc2ed76a21784d33c00577a<
Lars Wirzenius (3):
Fix use of GzipFile to not assume "with" protocol
Use . instead of source in /bin/sh script
Disable two tests if Python 2.6 is being used
morphlib/builder2.py | 7 ++++---
morphlib/plugins/trebuchet_plugin.py | 5 +++--
tests.as-root/rootfs-tarball-builds-rootfs-and-kernel.script | 4 ++++
tests.as-root/tarball-image-is-sensible.script | 6 +++++-
4 files changed, 16 insertions(+), 6 deletions(-)
Some of the code in this branch is written with an eye to the future
of 'morph merge'.
The list of 'edited_chunks' in the merge_stratum() function only holds
those which have had 'morph edit' run in the FROM branch, but we need
to check all chunks for petrification. The new diff_morphologies()
function provides the list of chunks to check. In the future, the lists
it returns will be processed in the merge_stratum() and merge_system()
functions instead of the current method of just touching everything
that has had 'morph edit' run.
This will allow merge work in two directions, in comparison to the
current version which allows only merging FROM a feature branch (where
the components to be merged must all have had 'morph edit' run on
So, that's why it looks a bit overengineered. It seemed pointless
writing code that would be thrown away the minute we had to improve
'morph merge', which I imagine will be quite soon.
Sam Thursfield (3):
Fix test that should have been doing 'morph edit'
morph merge: Warn if a merge will cause unexpected petrification
Add test for petrify warning
morphlib/plugins/branch_and_merge_plugin.py | 91 ++++++++++++++++++--
.../merge-handles-unmergable-cases.script | 2 +
.../merge-handles-unmergable-cases.stderr | 2 +-
.../merge-warns-if-petrifying-local.script | 32 +++++++
.../merge-warns-if-petrifying-local.stdout | 1 +
5 files changed, 119 insertions(+), 9 deletions(-)
create mode 100755 tests.branching/merge-warns-if-petrifying-local.script
create mode 100644 tests.branching/merge-warns-if-petrifying-local.stdout
Lars' new patch uses logging.warning(), while mine uses
Are we being inconsistent here? As far as I can see, logging.warning()
writes nothing to stdout or stderr, possibly outside of the 'morph
build' command. I've used the alternative so that the user will actually
see the warnings, because they won't be checking morph.log when using
the branch and merge commands.
Two quick design points, before I forget about them:
1. currently 'morph build' doesn't remove the temporary build branches
on failure or cancellation. I'm a chronic Ctrl+C user and it would make
me unhappy to think that every time I do so it clutters up the git repo
with refs that won't be deleted until the next time we run an
auto-cleanup. I propose adding an exception handler to always delete the
2. since it might be useful to see them, I also propose a --keep option
to Morph which skips the exception handler. I think this would be useful
for 'morph merge' as well. This would then require the user to clean up
manually, which I don't see as a big problem.
Any thoughts? I doubt there will be time to implement it this week in
The tarball code was mostly correct, but the created tarballs
had hardlinks trying to reference a file not in the tarball,
since the entry name was changed to not include the staging area's
path, but the hardlink wasn't.
The first commit, replacing mkrel with os.path.relpath can be ignored
if there are differences in functionality, but it passes tests as-is.
The regression test extracts the tarball then uses find, xargs and ls,
rather than a tar -tf, since busybox and gnu tar have different output
for hard links:
busybox has the type '-' like a regular file, gnu tar uses 'h'
busybox says what the link points to with an arrow, like symlinks,
while gnu tar uses an english language description
Richard Maw (4):
Use standard library function for relative paths
Use os.path.relpath for fixing paths in tarball system builder
Make hardlink paths relative
Add regression test for created tarballs
morphlib/bins.py | 12 +--
morphlib/plugins/tarball-systembuilder_plugin.py | 9 +-
tests.as-root/tarball-image-is-sensible.script | 35 +++++++++
tests.as-root/tarball-image-is-sensible.setup | 87 ++++++++++++++++++++++
tests.as-root/tarball-image-is-sensible.stdout | 18 +++++
5 files changed, 148 insertions(+), 13 deletions(-)
create mode 100755 tests.as-root/tarball-image-is-sensible.script
create mode 100755 tests.as-root/tarball-image-is-sensible.setup
create mode 100644 tests.as-root/tarball-image-is-sensible.stdout
Ref : danielsilverstone/fix-up-make-patch
This series corrects a few small issues, adds a sparse-aware copyfileobj and
fixes up make-patch to support the new compressed disk images. As a side
effect (due to busybox's cp being deficient in terms of sparseness) we had to
disable the second half of the make-patch test until such time as we can
cleanly deal with the issue.
Daniel Silverstone (4):
Correct a few long lines.
Add a sparse-aware (for writing) copyfileobj.
Fix up make-patch
Block second half of make-patch test.
morphlib/builder2.py | 9 ++-
morphlib/plugins/trebuchet_plugin.py | 90 +++++++++++++++++++++-------------
morphlib/util.py | 39 +++++++++++++++
tests.as-root/make-patch.script | 14 +++++
4 files changed, 115 insertions(+), 37 deletions(-)