| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
tests/inst: Add xshell and use it in one place
|
|/
|
|
|
|
|
|
|
|
| |
I've deprecated sh-inline; in the end I think it is better
to minimize the amount of bash code we have. xshell solves
the core convenience problem of taking local variables and mapping
them to command arguments.
A full port would be nontrivial; this just starts the ball
rolling.
|
|\
| |
| | |
Add .clang-format file + tree-wide: Run `clang-format`
|
| | |
|
| |
| |
| |
| |
| | |
This is a one-time tree wide reformatting to ensure consistency
going forward.
|
| |
| |
| |
| |
| | |
This increases compatibility between clang-15 and clang-16.
Also, I don't care about the aesthetics here.
|
|/
|
|
| |
We need all the ostree bits here.
|
|\ |
|
| |
| |
| |
| | |
This fixes the build with `clang-format`.
|
| |
| |
| |
| |
| | |
In order to make this work, we need to move the autocleanup
definitions after the other headers.
|
| |
| |
| |
| | |
Prep for reformatting the codebase.
|
|/ |
|
|\
| |
| | |
lib/sysroot-deploy: Add experimental support for automatic early prune
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
During the early design of FCOS and RHCOS, we chose a value of 384M
for the boot partition. This turned out to be too small: some arches
other than x86_64 have larger initrds, kernel binaries, or additional
artifacts (like device tree blobs). We'll likely bump the boot partition
size in the future, but we don't want to abandon all the nodes deployed
with the current size.[[1]]
Because stale entries in `/boot` are cleaned up after new entries are
written, there is a window in the update process during which the bootfs
temporarily must host all the `(kernel, initrd)` pairs for the union of
current and new deployments.
This patch determines if the bootfs is capable of holding all the
pairs. If it can't but it could hold all the pairs from just the new
deployments, the outgoing deployments (e.g. rollbacks) are deleted
*before* new deployments are written. This is done by updating the
bootloader in two steps to maintain atomicity.
Since this is a lot of new logic in an important section of the
code, this feature is gated for now behind an environment variable
(`OSTREE_ENABLE_AUTO_EARLY_PRUNE`). Once we gain more experience with
it, we can consider turning it on by default.
This strategy increases the fallibility of the update system since one
would no longer be able to rollback to the previous deployment if a bug
is present in the bootloader update logic after auto-pruning (see [[2]]
and following). This is however mitigated by the fact that the heuristic
is opportunistic: the rollback is pruned *only if* it's the only way for
the system to update.
[1]: https://github.com/coreos/fedora-coreos-tracker/issues/1247
[2]: https://github.com/ostreedev/ostree/issues/2670#issuecomment-1179341883
Closes: #2670
|
| |
| |
| |
| |
| |
| |
| |
| | |
When hacking and testing locally with `cosa build-fast` and `kola run`,
I prefer to leave testing framework stuff within the work directory
rather than installed in my pet container. Add a `localinstall` target
for this which puts the tests in `tests/kola`. Then a simple `kola run`
will pick it up.
|
| |
| |
| |
| |
| |
| | |
AFAICT, I don't see how `runkola.sh` or the Makefile in `tests/kolainst`
can create files in `tests/kola` since it's geared towards installing
under `/usr`.
|
| |
| |
| |
| |
| |
| | |
In the unusual case where one is manually finalizing staged deployments,
as can happen in testing, we expect a successful finalization to remove
the failure stamp file.
|
|\ \
| | |
| | | |
rust: Bump MSRV to 1.64
|
| | |
| | |
| | |
| | | |
Since a dependency `winnow` bumped to this in a recent update.
|
|\ \ \
| | | |
| | | | |
lib/fetcher: Add some debugging messages to the libsoup request path
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This will help with debugging stalled requests in future, such as
issue #605.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Helps: #605
|
|\ \ \
| |_|/
|/| | |
ci: Turn off errors for deprecated-declarations
|
| | |
| | |
| | |
| | |
| | | |
I think this isn't necessary anymore, and is now actively broken
with f38.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Having `-Werror` on in CI only by default has generally worked OK,
but I don't think it's worth trying to immediately scramble to port
when they deprecate APIs.
Motivated in this case by
```
src/libostree/ostree-fetcher-curl.c: In function 'initiate_next_curl_request':
src/libostree/ostree-fetcher-curl.c:876:3: error: 'CURLOPT_PROTOCOLS' is deprecated: since 7.85.0. Use CURLOPT_PROTOCOLS_STR [-Werror=deprecated-declarations]
876 | rc = curl_easy_setopt (req->easy, CURLOPT_PROTOCOLS, (long)(CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FILE));
| ^~
```
|
|\ \
| | |
| | | |
Prep patches for automatic early prune
|
| | |
| | |
| | |
| | | |
Prep for future patch.
|
| | |
| | |
| | |
| | | |
Prep for future patch.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Crawling through the bootfs and the deployment dirs was already mostly
separate. The only inefficiency here is that we now iterate over the
array of active deployments twice when building the hash tables. No
functional change otherwise.
Prep for future patch.
|
| | |
| | |
| | |
| | | |
We weren't actually using this `stbuf` anywhere.
|
| | |
| | |
| | |
| | | |
Prep for future patch.
|
| |/
| |
| |
| | |
No functional change.
|
|\ \
| |/
|/| |
port to libsoup3
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
soup3 works best using only the async API from a single thread[1].
Rework the fetcher to stop using worker threads. In order to maximize
session usage across requests, sessions will be reused for each main
context.
1. https://libsoup.org/libsoup-3.0/client-thread-safety.html
|
| |
| |
| |
| |
| | |
This needs to be on Debian testing for now since bullseye doesn't have
soup3.
|
| |
| |
| |
| |
| | |
The default is still soup2, you can use --with-soup3 to enable
the soup3 backend instead.
|
|/
|
|
|
|
|
|
| |
Set a few environment variables during tests to ensure fake GIO backends
are used. This is particularly important with the soup fetcher backend
as it can cause strange test errors in containerized test environments.
Upstream soup has been setting these 3 environment variables for their
tests since 2015.
|
|\
| |
| | |
treegen: Require at least one mutation
|
|/
|
|
|
| |
Since a later assertion would otherwise trigger. We saw
this happen in CI.
|
|\
| |
| | |
Release 2023.2
|
| | |
|
|/ |
|
|\
| |
| | |
ci: update for new kolaTestIso()
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The `skipMetal4k` and `skipMultipath` parameters no longer do anything.
Instead use `--denylist-test` which is interpreted directly by the
new `kola testiso` code.
This will run more tests than before. We'll likely cut down tests we
consider redundant soon, but that should be transparent to this code.
|
|\ \
| | |
| | | |
More binding fixes
|
| | |
| | |
| | |
| | | |
This picks up more of tintou's recent changes.
|
|/ /
| |
| |
| | |
This reverts commit c4d03d28500c75ad2bcf7b75383fc60fe7b83ca8.
|
|\ \
| | |
| | | |
build: Do not include private headers in the introspection
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This leads to private symbols being exported.
Also specify the single C header, this relies on the gir_C_INCLUDES make variable,
which was introduced in gobject-introspection 1.51.5.
|
|\ \ \
| |_|/
|/| | |
libostree: Ignore new_and_connect in the introspection
|
| | |
| | |
| | |
| | |
| | | |
This function can't be correctly introspected and it is easy enough to connect
to the signal afterwards.
|