| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously some code used `git show-ref`, which is wrong -- given two
refs named 'alpha/master' and 'master', `git show-ref master` will
return both, sorted alphabetically. This can lead to build failures,
etc. due to refs resolving to the wrong SHAs.
We should also use `git rev-parse --verify` to verify SHA1s, which
we previously did with `git rev-list`.
Finally, `git rev-parse --verify` is more than twice as fast as
`git show-ref`.
|
|\
| |
| |
| | |
ssh://trove.baserock.org/baserock/baserock/morph
|
| |
| |
| |
| |
| | |
This script reads a built baserock system and finds all the chunks
used to build it in the artifact cache
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |_|/
|/| |
| | | |
Rubber stamped because the usual reviewers are on holiday.
|
| | |
| | |
| | |
| | |
| | | |
The lookup method will only find the first entry, but previously
would allow later entries to be found by iterating.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before this change, if a stratum had dependencies listed, then
morph would add that stratum to the list of things to build
multiple times, resulting in more things being built.
This was not a major problem, since it would just result in more cache
lookups than necessary, but lookups are more expensive on remote
artifact caches, and anything attempting to find which artifact would
be the result of a build would get confused by there being many
top-level artifacts with no dependencies.
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
The test relied on undesired behaviour, since it would create
the same source, since the sha1 is not used in the sourcepool's key.
Now it creates a new source pool and replaces the source it is being
compared to.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit c859d70d86423a52bc7053abf64e9ca21f62a487, reversing
changes made to 3085a672d1e8b5177be33f0463385de72a0ef5bf.
Unfortunately, hardlinking and linux-user-chroot both break builds
in various ways. Hardlinking breaks the bootstrap process by creating
symlinks like /usr/libexec that can then not be overwritten with real
files by install scripts from morphologies like gcc.
linux-user-chroot caused problems by breaking privileged operations such
as chgrp and CAP_SETFCAP. As a consequence, chunks like util-linux and
libcap can no longer be built.
|
|\
| |
| |
| |
| |
| |
| |
| | |
This is based on, and incorporates, Joe Burmeister's changes to fill
staging areas using hardlinking, for speed reasons. I have reformatted
the code a bit, and fixed it to pass the test suite, and fixed a bug
in how commands are run in the staging area chroot (preserving the
environment).
|
| |
| |
| |
| | |
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.
|
| |
|
| |
|
| |
|
|\ |
|
| |\
| | |
| | |
| | | |
Reviewed-By: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
|
| |/
| |
| |
| |
| |
| |
| | |
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.
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
git://git.baserock.org/baserock/morph
A couple of nasties are fixed in here. Previously when the disk was
full, Morph logged a backtrace into morph.log and then tried to unmount
the disk image, but as there were still open file handles inside it
the unmount would fail and the user would end up with a backtrace for
a failed unmount and a stuck loopback device that they would need to
fix manually.
|
| |
| |
| |
| | |
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.
|
|/ |
|
|\
| |
| |
| |
| |
| | |
git://git.baserock.org/baserock/morph
Consolidate setup of tests which defined system morphologies.
|
| |
| |
| |
| | |
Code to generate system images was being duplicated in each test needlessly.
|
|\ \
| |/
| |
| | |
git://git.baserock.org/baserock/morph
|
|/
|
|
| |
Be consistent about placement of test description, blank lines, etc.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Most of the bespoke logic for the version check is unnecessary,
since the output to display can be easily inferred from the filename.
This fixes some test failures where the version check would cat a
file to fake the output, but fail because the file was removed.
|
|/
|
|
|
|
|
|
|
|
| |
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 requires running git-daemon manually in the tests.
|
| |
| |
| |
| |
| | |
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 tests were using test:morphs-repo instead.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some tests already used test: and in order to be able to share the
scripts/setup-3rd-party-strata script they need to all use the same
prefix.
Using baserock: implies that we are using real code from Baserock,
so I picked test: because the tests only ever use mock morphologies
and no real code.
|
| | |
|
|\ \
| | |
| | |
| | | |
git://git.baserock.org/baserock/morph
|
| |/ |
|
|\ \
| | |
| | |
| | |
| | | |
Reviewed-by: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
Also-reviewed-by: Richard Maw <richard.maw@codethink.co.uk>
|
|/ /
| |
| |
| |
| |
| | |
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.
|