| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
This is required for systemd's journald to start.
This is probably a bad dependency in systemd, trying to start the
journal before it has mounted everything properly.
This required a compat change, it is a string to make it more
noticeable that it's a temporary version.
|
|\ |
|
| |
| |
| |
| |
| | |
This will allow plugins to override the BuildCommand with their own
instance.
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| | |
Data buffers can get confused if two file handles are writing to the
same file, python's subprocess module has subprocess.STDOUT for this.
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
| |
This fixes references to a system artifact without the -rootfs appended
and adds a unit test for resolving an arm system artifact.
|
|
|
|
|
| |
Instead of a System source producing one System artifact, it can
produce multiple System artifacts, dependent on if it is an ARM System.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
This is the standard way of altering config, it shouldn't be done
by modifying the config file.
This may allow better forward compatibility if the config keys or
storage format change.
|
|\ \
| |/
|/| |
|
| |
| |
| |
| | |
This is less code and can't blow the stack.
|
| |
| |
| |
| |
| |
| | |
All of the dependencies need to be installed, so generate the
transitive closiure to pass to cache_artifacts_locally and
install_chunk_artifacts.
|
| | |
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This will prevent systems that don't have the right mount options
being cache hits.
Having fstab be in some System configuration morphology, which is also
included in the cache key would prevent this being needed if the fstab
format changes again.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fstab had errors=remount-ro, this is an ext option, btrfs doesn't
support it.
However it should be mounted noatime, to prevent the metadata
trees being duplicated because they were read.
extlinux.conf also has its mounting options changed so that the
rootfs is mounted read-only initially. This should prevent the
metadata trees being updated by reading them until it is remounted
with noatime.
|
| |
| |
| |
| |
| |
| |
| | |
This changes the timestamp in the Python tarfile.TarInfo data structure
rather than setting the timestamp in the filesystem.
Suggested by Richard Maw.
|
| |
| |
| |
| | |
Suggested by Richard Maw.
|
| |
| |
| |
| |
| |
| |
| | |
This avoids problems with clock skew between the machine that built
an artifact and the machine the uses it. I ran into this problem
during a test build of other changes in this patch series. We have
seen it before, now it is fixed.
|
| |
| |
| |
| |
| |
| |
| | |
This will make a build fail if the morphology is missing explicit
build dependencies.
Also fix test causes so that ./check passes.
|
| |
| |
| |
| |
| |
| |
| | |
Suggested by Richard Maw.
This commit also includes a bug fix, since I'm too lazy to detangle
changes in git commits today.
|
| |
| |
| |
| | |
Suggested by Richard Maw.
|
| |
| |
| |
| | |
Suggested by Richard Maw.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The build logic was spread all across the Morph class. This patch
gathers it into one class. Having it in one place is useful for
general code quality reasons, but also makes it feasible to experiment
with the build logic, and override only parts of it.
This patch also changes how the build logic works. Earlier we kept
one staging area for staging builds, and were unpacking everything in
a build group at a time. This meant that the staging area would contain
things that were not strictly build dependencies. This has a possiblity
of changing what gets built. The new logic creates a new, fresh, clean
staging area for each build.
This makes building a bit slower, but we'll fix that by making it really
fast to create a staging area and filling it with build dependencies.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also, some bug fixes.
Also, when handling a BaseException, log the exception (with traceback)
that we're handling, in case there is an error while handling it, because
the second error will otherwise mask the first one.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The new method takes a list of keyword arguments. This is more useful
than the old way of giving just a string, since now the presentation
layer may transmogrify the status update. For example, it can usefully
translate the message to another language.
Add --verbose option to allow more control over what the user sees.
|
| |
| |
| |
| |
| | |
Nobody was using this, so it is obviously useless. Instead, log at the
warning level.
|
|\ \
| |/
|/|
| | |
'remotes/origin/baserock/feature/S2938-system-artifact-splitting'
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The kernel should be considered a full artifact, not just metadata.
The rootfs is now suffixed by -rootfs and the kernel is named
$name-kernel. This is similar to how chunk splitting works.
|
| |
| |
| |
| |
| |
| | |
Thanks to Richard Maw for pointing this out! I need to get out of my
ancient habits and use the modern Python stdlib and rember that files
in these degenerate modern times can be larger than 64 KiB.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Handling all exceptions in a way that assumes they're all related to the
URL fetching hides unrelated errors, such as missing imports, or bad
types, or such.
Also, add more logging for debugging.
|
| | |
|
| |
| |
| |
| |
| | |
This makes error messages that print the artifact cache object be
useful to the reader.
|
| |
| |
| |
| | |
For usefulness when tracing why artifact isn't being found.
|
|/
|
|
|
|
|
|
|
|
|
|
| |
This is a behavioral change, and is useful when building and having access
to an artifact cache server. Previously, nothing was actually fetching
artifacts from the remote server when the staging area was being crafted.
Morph could do with a bit of cleanup where we separate more cleanly the
acts of fetching stuff to the local artifact cache from the remote one,
when possible, and then using artifacts from the local cache. Currently
this stuff is spread around a bit too much. I did not do that in this
patch, however, to keep undiscussed changes small.
|
|
|
|
|
|
| |
This required refactoring mount_proc and unmount_proc into more
generic mounting functions.
do_mounts returns the paths that were mounted instead of just one
|
|
|
|
|
| |
This change is purely cosmetic, but reflects the fact that we need
to mount more than just proc sometimes.
|
| |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
It's possible to work without a remote artifact cache, sadly there
is not an explicit check for a None remote artifact cache to prevent
it downloading dependencies.
|