Colin Walters [Fri, 11 Nov 2022 20:03:30 +0000 (15:03 -0500)]
ci: Bump memory for ISO testing flow
It seems likely that we're allocating more RAM here. What we really
need to do is for cosa to express the necessary RAM
requirements declaratively, then we compute pod requirements
from that.
Luca BRUNO [Fri, 11 Nov 2022 14:05:56 +0000 (14:05 +0000)]
copr: only use libostree tags
This adds a tag filter to the logic which emits version labels for
COPR build, so that it avoids mistakenly picking up tags belonging
to the Rust bindings.
Colin Walters [Mon, 31 Oct 2022 13:00:28 +0000 (09:00 -0400)]
Remove readdir-rand
This was only there to reproduce a bug we hit long ago
with bootloader file ordering. We're extremely unlikely
to reintroduce such a bug, and it's not worth carrying around
this code.
Simon McVittie [Fri, 28 Oct 2022 11:21:29 +0000 (12:21 +0100)]
readdir-rand: Copy full size of struct dirent
As noted in readdir(3), in the presence of long filenames it is
possible for a directory entry to be larger than `sizeof (struct dirent)`.
Copy the full length instead.
Signed-off-by: Simon McVittie <smcv@collabora.com>
Luca BRUNO [Fri, 21 Oct 2022 08:43:22 +0000 (08:43 +0000)]
lib/sign-ed25519: convert invariant checks to assertions
This converts several invariant checks to asserts. Most of the
functions in this file were already using assertions, so this aligns
the remaining few outliers to the rest.
Jonathan Lebon [Tue, 25 Oct 2022 13:58:01 +0000 (09:58 -0400)]
ci: bump cosaPod memory requirement to 5Gi
We're hitting memory limits when running the reprovisioning tests. We
should investigate why we need 1Gi of overhead, but for now to get
unblocked let's just bump it.
Luca BRUNO [Tue, 11 Oct 2022 08:50:10 +0000 (08:50 +0000)]
lib/static-delta: document and check parameters format
This enhances the logic handling GVariant parameters within
`ostree_repo_static_delta_generate()`.
Several of those entries are expected to be zero-terminated values,
and this implicit assumption has been observed to be an hidden trap
in languages where strings and arrays may not carry a terminator value
(e.g. Rust).
In order to improve the situation, this makes the documentation more
explicit and actively tries to catch invalid input parameters.
Miguel Angel Ajo [Mon, 19 Sep 2022 15:15:24 +0000 (17:15 +0200)]
Support overlayfs whiteouts on checkout
Introduces an intermediate format for overlayfs storage, where
.wh-ostree. prefixed files will be converted into char 0:0
whiteout devices used by overlayfs to mark deletions across layers.
The CI scripts now uses a volume for the scratch directories
previously in /var/tmp otherwise we cannot create whiteout
devices into an overlayfs mounted filesystem.
Luca BRUNO [Fri, 9 Sep 2022 13:20:43 +0000 (13:20 +0000)]
lib/sign: convert invariant checks to assertions
This converts several invariant checks to asserts. Most of the
functions in this file were already using assertions, so this aligns
the remaining few outliers to the rest.
Luca BRUNO [Thu, 8 Sep 2022 13:53:05 +0000 (13:53 +0000)]
otutil: add error handling to variant builders
This enhances a bunch of helpers related to GVariant building, in
order to properly handle errors and avoid some potential cases of
unexpected NULL results.
Luca BRUNO [Wed, 7 Sep 2022 12:33:37 +0000 (12:33 +0000)]
lib/mtree: drop redundant name checks
This drops several NULL checks against filename input argument.
Those checks are both redundant (as filename validation already
checks for that) and dangerous (as they return early without
setting an error value).
If `/boot` is an automount, then the unit will be stopped as soon as the
automount expires. That's would defeat the purpose of using systemd to
delay finalizing the deployment until shutdown. This is not uncommon as
`systemd-gpt-auto-generator` will create an automount unit for `/boot`
when it's the EFI System Partition and there's no fstab entry.
To ensure that systemd doesn't stop the service early when the `/boot`
automount expires, introduce a new unit that holds `/boot` open until
it's sent `SIGTERM`. This uses a new `--hold` option for
`finalize-staged` that loads but doesn't lock the sysroot. A separate
unit is used since we want the process to remain active throughout the
finalization run in `ExecStop`. That wouldn't work if it was specified
in `ExecStart` in the same unit since it would be killed before the
`ExecStop` action was run.
Dan Nicholson [Tue, 30 Aug 2022 14:38:36 +0000 (08:38 -0600)]
main: Factor out sysroot loading
It can be useful to parse the options and initialize the sysroot without
actually loading it until later. Factor out the sysroot loading to a new
`ostree_admin_sysroot_load` and add a new
`OSTREE_ADMIN_BUILTIN_FLAG_NO_LOAD` flag to accommodate this.
Huijing Hei [Fri, 19 Aug 2022 03:31:46 +0000 (11:31 +0800)]
Fix `ostree admin kargs edit-in-place` assertion when deployments
are pending
This is to support pending deployments instead of rasing assertion.
For example:
```
$ sudo rpm-ostree kargs --append=foo=bar
$ sudo ostree admin kargs edit-in-place --append-if-missing=foobar
```
After reboot we get both `foo=bar foobar`.
Sam James [Tue, 23 Aug 2022 22:37:06 +0000 (23:37 +0100)]
buildutil/glibtests.m4: fix bashism
configure scripts need to be runnable with a POSIX-compliant /bin/sh.
On many (but not all!) systems, /bin/sh is provided by Bash, so errors
like this aren't spotted. Notably Debian defaults to /bin/sh provided
by dash which doesn't tolerate such bashisms as '=='.
This retains compatibility with bash.
Fixes configure warnings/errors like:
```
checking whether to build static libraries... no
./configure: 14795: test: unexpected operator
```
Colin Walters [Mon, 22 Aug 2022 19:59:33 +0000 (15:59 -0400)]
ci: Also drop seccomp on debian testing
I didn't deep dive into debugging this but I'm pretty sure it's
https://gitlab.gnome.org/GNOME/glib/-/issues/2580
which is us having an older Docker in the middle here.