summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2856 from cgwalters/port-to-xshellHEADmainColin Walters2023-05-102-6/+5
|\ | | | | tests/inst: Add xshell and use it in one place
| * tests/inst: Add xshell and use it in one placeColin Walters2023-05-102-6/+5
|/ | | | | | | | | | 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.
* Merge pull request #2565 from cgwalters/clang-formatColin Walters2023-05-03273-22014/+17188
|\ | | | | Add .clang-format file + tree-wide: Run `clang-format`
| * ci: Validate clang-formatColin Walters2023-05-021-6/+17
| |
| * tree-wide: Run clang-formatColin Walters2023-05-02271-22007/+17169
| | | | | | | | | | This is a one-time tree wide reformatting to ensure consistency going forward.
| * clang-format: Don't align backslashesColin Walters2023-05-021-0/+1
| | | | | | | | | | This increases compatibility between clang-15 and clang-16. Also, I don't care about the aesthetics here.
| * lib: Fix one includeColin Walters2023-05-011-1/+1
|/ | | | We need all the ostree bits here.
* Merge pull request #2854 from cgwalters/clang-format-prepJonathan Lebon2023-05-0115-20/+41
|\
| * tree-wide: Fix various include ordering issuesColin Walters2023-05-018-7/+8
| | | | | | | | This fixes the build with `clang-format`.
| * lib: clang-format `ostree.h`Colin Walters2023-05-011-11/+13
| | | | | | | | | | In order to make this work, we need to move the autocleanup definitions after the other headers.
| * Add clang formatting infrastructureColin Walters2023-05-015-1/+17
| | | | | | | | Prep for reformatting the codebase.
| * build-sys: Squash automake conditional warning re `.PHONY`Colin Walters2023-05-011-1/+3
|/
* Merge pull request #2847 from jlebon/pr/calculate-and-cleanupv0.18.0ostree-sys-v0.13.0Colin Walters2023-05-017-5/+361
|\ | | | | lib/sysroot-deploy: Add experimental support for automatic early prune
| * lib/sysroot-deploy: Add experimental support for automatic early pruneJonathan Lebon2023-05-015-3/+350
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * tests/kolainst: Add `make localinstall`Jonathan Lebon2023-04-141-0/+4
| | | | | | | | | | | | | | | | 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.
| * tests/kola: delete unused .gitignoreJonathan Lebon2023-04-141-2/+0
| | | | | | | | | | | | 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`.
| * lib/sysroot-deploy: Nuke `finalize-failure.stamp` on successful finalizationJonathan Lebon2023-04-141-0/+7
| | | | | | | | | | | | 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.
* | Merge pull request #2853 from cgwalters/bump-msrvJoseph Marrero Corchado2023-04-301-1/+1
|\ \ | | | | | | rust: Bump MSRV to 1.64
| * | rust: Bump MSRV to 1.64Colin Walters2023-04-291-1/+1
| | | | | | | | | | | | Since a dependency `winnow` bumped to this in a recent update.
* | | Merge pull request #2849 from pwithnall/request-debuggingColin Walters2023-04-261-0/+10
|\ \ \ | | | | | | | | lib/fetcher: Add some debugging messages to the libsoup request path
| * | | lib/fetcher: Add some debugging messages to the libsoup request pathPhilip Withnall2023-04-261-0/+10
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | This will help with debugging stalled requests in future, such as issue #605. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: #605
* | | Merge pull request #2850 from cgwalters/ci-no-error-deprecated-declarationsJoseph Marrero Corchado2023-04-263-7/+2
|\ \ \ | |_|/ |/| | ci: Turn off errors for deprecated-declarations
| * | ci: Drop workaround for fedora-release-containerColin Walters2023-04-261-5/+0
| | | | | | | | | | | | | | | I think this isn't necessary anymore, and is now actively broken with f38.
| * | ci: Turn off errors for deprecated-declarationsColin Walters2023-04-262-2/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | 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)); | ^~ ```
* | Merge pull request #2848 from jlebon/pr/calculate-and-cleanup-prepColin Walters2023-04-144-80/+130
|\ \ | | | | | | Prep patches for automatic early prune
| * | libotutil: add utility functions for calculating directory sizeJonathan Lebon2023-04-142-0/+51
| | | | | | | | | | | | Prep for future patch.
| * | lib/sysroot-cleanup: Make bootfs cleanup function globalJonathan Lebon2023-04-142-5/+10
| | | | | | | | | | | | Prep for future patch.
| * | lib/sysroot-cleanup: Factor out bootfs cleanupJonathan Lebon2023-04-141-11/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | lib/sysroot-cleanup: Drop dead codeJonathan Lebon2023-04-141-7/+0
| | | | | | | | | | | | We weren't actually using this `stbuf` anywhere.
| * | lib/sysroot-cleanup: Make some static utility functions globalJonathan Lebon2023-04-142-13/+22
| | | | | | | | | | | | Prep for future patch.
| * | lib/sysroot-cleanup: Convert bootdir listing to dfd-relativeJonathan Lebon2023-04-141-54/+25
| |/ | | | | | | No functional change.
* | Merge pull request #2547 from q66/soup3Dan Nicholson2023-04-1310-73/+1147
|\ \ | |/ |/| port to libsoup3
| * fetcher/soup3: Rewrite without threadsDan Nicholson2023-04-131-826/+413
| | | | | | | | | | | | | | | | | | 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
| * ci: Add test configuration with soup3Dan Nicholson2023-04-121-0/+13
| | | | | | | | | | This needs to be on Debian testing for now since bullseye doesn't have soup3.
| * fetcher: add libsoup3 backendDaniel Kolesa2023-04-129-73/+1544
| | | | | | | | | | The default is still soup2, you can use --with-soup3 to enable the soup3 backend instead.
| * tests: Ensure real GIO backends aren't usedDan Nicholson2023-04-121-0/+3
|/ | | | | | | | 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.
* Merge pull request #2839 from cgwalters/treegen-raceColin Walters2023-03-231-27/+39
|\ | | | | treegen: Require at least one mutation
| * treegen: Require at least one mutationColin Walters2023-03-231-27/+39
|/ | | | | Since a later assertion would otherwise trigger. We saw this happen in CI.
* Merge pull request #2842 from cgwalters/releaseColin Walters2023-03-221-1/+1
|\ | | | | Release 2023.2
| * configure: post-release version bumpColin Walters2023-03-221-2/+2
| |
| * Release 2023.2v2023.2Colin Walters2023-03-221-1/+1
|/
* Merge pull request #2823 from jlebon/pr/testiso-updateColin Walters2023-03-171-1/+1
|\ | | | | ci: update for new kolaTestIso()
| * ci: update for new kolaTestIso()Jonathan Lebon2023-03-171-1/+1
| | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #2838 from cgwalters/more-binding-fixesColin Walters2023-03-1710-147/+13
|\ \ | | | | | | More binding fixes
| * | rust-bindings: RegenerateColin Walters2023-03-179-146/+12
| | | | | | | | | | | | This picks up more of tintou's recent changes.
| * | Revert "repo: Fix nullability for remote options"Colin Walters2023-03-171-1/+1
|/ / | | | | | | This reverts commit c4d03d28500c75ad2bcf7b75383fc60fe7b83ca8.
* | Merge pull request #2812 from tintou/tintou/g-ir-fixColin Walters2023-03-172-2/+3
|\ \ | | | | | | build: Do not include private headers in the introspection
| * | build: Do not include private headers in the introspectionCorentin Noël2023-02-092-2/+3
| | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #2813 from tintou/tintou/asyncprogress-typedefColin Walters2023-03-171-1/+7
|\ \ \ | |_|/ |/| | libostree: Ignore new_and_connect in the introspection
| * | libostree: Ignore new_and_connect in the introspectionCorentin Noël2023-02-091-1/+7
| | | | | | | | | | | | | | | This function can't be correctly introspected and it is easy enough to connect to the signal afterwards.