| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The system images will later need to be read, so useful commands
want to be shared
|
|
|
|
| |
It only needs a morph, not a blob
|
|
|
|
|
| |
This is achieved by copying vmlinuz, System.map and extlinux.conf
to the default subvolume.
|
| |
|
| |
|
|\ |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| | |
This should stop tar from replacing symbolic links with directories
and instead follow the symbolic links, extracting the files into
the linked directories
|
| |
| |
| |
| | |
f.write does not add them
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
Previously, we could get a situation where chunks named the same way
in two morphologies could interfere with each other: they could generate
the same cache key, resulting in their chunks overwriting each other.
Now this won't happen anymore.
|
| |
| |
| |
| |
| |
| |
| |
| | |
The code isn't making it easy to test just the size parsing code.
This code shouldn't even be in morph, it should be re-using a
library (such as the one in cliapp, but cliapp doesn't expose it
nicely). All of this should be fixed, but for now, I'll just
exclude things from test coverage. Shame be on me.
|
| |
| |
| |
| |
| | |
We now expect the disk size to be an integer (in bytes), since aren't
just passing on to qemu-img (we don't use qemu-img anymore).
|
| |
| |
| |
| | |
The mkimage.sh script should now be unnecessary again.
|
| | |
|
| |
| |
| |
| |
| | |
Add PREFIX to the whitelist of environment variables that
can affect the cache keys.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previous change would share the same environment between all Builders
this may not have broken anything yet, but this change in behaviour
was unintentional.
The relevant cache keys are not altered by Builders and they are set
at the time the Builder is created, so the build string can be cached
rather than generated every time a cache key is needed
|
|/
|
|
|
|
| |
env is created in Builder's constructor from app.clean_env
cache keys now contain parts of the environment that may cause
chunks to be built differently
|
|
|
|
|
|
|
|
|
| |
Use dd and sfdisk instead of qemu-img, parted and install-mbr
Write files without using tee, that was only required when we were
not expecting morph to be run as root
partx has not been touched, I don't know enough about how to process
the output in python and I don't speak awk
|
| |
|
| |
|
| |
|
|
|
|
| |
We can use self.app.settings instead.
|
|
|
|
|
| |
This is better done in morph, I think, since it is clear policy,
and should not be buried deep in the call stack.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The "cache prefix" concept is not immediately clear, and it's
generally speaking best to centralize the construction of filenames
in the cache to the CacheDir class anyway.
Also, use SaveFile for writing the log file, instead of writing it
to a temporary file and then copying, which is unnecessary I/O.
|
| |
|
| |
|
|
|
|
|
|
|
| |
It needs to be different for each subclass, yet SystemBuilder was
sharing the implementation with ChunkBuilder, which worked, but only
by happenstance. Now each class has their own implementation and the
base class has a NotImplemented implementation.
|
|
|
|
|
|
| |
It's not really the blob builder's job to unpack chunks, or determine
whether something needs building or not. Moved those things to better
places.
|
| |
|
|
|
|
|
|
|
|
| |
The helper class, Factory, has unit tests, which is why it's currently
separate. It may later get integrated with BlobBuilder, or the other
way around.
Classes that don't have unit tests are marked out of coverage.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
If the remove method is insufficient (because it gets run as non-root,
but some of the stuff needs root to remove them), then we need to fix
the method, not replace it with other things.
The Tempdir.clear method was not used anywhere, so YAGNI and removed it.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We don't do releases, so having the version number in the source is
misleading. If and when we start doing numbered releases, it's easy
to add back. However, YAGNI and all that.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also, change builder.py to always obey the --max-jobs setting, unless
a morphology has a max-jobs field.
The defaults have been chosen so that they work for everyone equally
well. It may be useful to have a local mirror and then set the options
to point there, but it's not reasonable to try to guess such things,
so the defaults can be adapated to that.
Collect the defaults into one place so they're easier to overview.
The cliapp interface for adding settings is verbose enough that the
defaults were getting buried.
|
| |
|
| |
|