Simon McVittie [Sun, 25 Sep 2022 09:28:02 +0000 (10:28 +0100)]
Revert "d/control, d/rules: Disable gjs-based tests on armel"
This reverts commit 87c78f16ad8d22dec4f6631f1dd03ba02d83d615.
Adrian Bunk and Mike Hommey were able to fix mozjs102 on armel, so we
can continue to have gjs on that architecture for Debian 12.
Simon McVittie [Fri, 5 Aug 2022 08:57:41 +0000 (09:57 +0100)]
Build with libcurl http backend instead of libsoup2.4
This avoids library conflicts during the transition to GNOME 43, in
which core apps and libraries have switched to libsoup3, which conflicts
with libsoup2.4.
We still build-depend on libsoup2.4, because it's used in the test suite
and installed-tests.
Specifically, I verified that *before* the previous patch to the ed25519 C code, the last bit of code would fail with a SIGSEGV when
trying to read the empty signature.
Colin Walters [Thu, 14 Jul 2022 18:42:19 +0000 (14:42 -0400)]
sign/ed25519: Verify signatures are minimum length
The ed25519 signature verification code does not
check that the signature is a minimum/correct length.
As a result, if the signature is too short, libsodium will end up
reading a few bytes out of bounds.
Reported-by: Demi Marie Obenour <demi@invisiblethingslab.com> Co-authored-by: Demi Marie Obenour <demi@invisiblethingslab.com> Closes: https://github.com/ostreedev/ostree/security/advisories/GHSA-gqf4-p3gv-g8vw
Colin Walters [Wed, 13 Jul 2022 19:35:00 +0000 (15:35 -0400)]
sysroot: Have `ensure_writable` also always initialize
For historical reasons we have a fair bit of distinct sysroot
initialization going on. A lot of code is calling *just* the new
`ensure_writable()` API, which does basically what you'd expect...
except if we're not using a mount namespace.
Which is the case in unit tests and legacy setups.
Change this API to also ensure the sysroot is fully initialized
even in those cases. Specifically we'll have `self->sysroot_fd`.
For now, callers that need `/boot` also need to separately
call `_ensure_boot_fd()`.
Saqib Ali [Tue, 5 Jul 2022 16:00:16 +0000 (12:00 -0400)]
ostree-repo: bls-append-except-default followup
This PR is followup from https://github.com/coreos/coreos-assembler/pull/2863
Summary of changes:
- Moved bls-append-except-default parsing logic to reload_sysroot_config()
- Made sure heap allocated memory is being freed
Colin Walters [Wed, 6 Jul 2022 11:46:42 +0000 (07:46 -0400)]
lib: Stop using old `ostree_sysroot_get_repo()` API
It's falliable, and in one place we were actually ignoring
the error and leaving a `NULL` repo object which is just a trap
for people coming along later since it's rarely nullable.
Quite a while ago we switched to loading the repo at the same time
as the sysroot; convert callers in the library to use this infallible
accessor.
Prep for another patch which will use the repo object.
Saqib Ali [Mon, 6 Jun 2022 21:46:01 +0000 (17:46 -0400)]
lib/prune: speed up pruning by retrieving only commits
After landing the new --commit-only functionality, we still noticed
exceedingly long pruning times in large repos. Lets add an optimization
that will only retrieve commit objects when --commit-only flag is used.
Colin Walters [Thu, 23 Jun 2022 21:36:46 +0000 (17:36 -0400)]
repo: Metadata return values from `load_file` are not nullable
The pattern this API uses in C is to allow the input parameters
pointer targets to be `NULL`, and it doesn't return values in that
case.
A further complexity here is that the API will still return `NULL`
for symbolic links.
But Rust can't express this pattern as is, so we were always
returning values but in `Option<T>` wrappers that the caller needed
to unwrap for the metadata.
(We really want an even more efficient API here that avoids the glib
objects entirely, e.g. no reason not to pass directly back a type
that lets Rust directly read from the fd for bare repos, but
that can come later)
Jonathan Lebon [Tue, 21 Jun 2022 19:10:18 +0000 (15:10 -0400)]
Drop `.packit.yaml`
This repo is already hooked to the @CoreOS/continuous COPR repo for
multi-arch RPM builds of the latest commits.
It's possible we will use Packit in the future to help with the release
process. But for now, let's just drop this file since it's not needed
and the Packit failures are marking git main CI as failed.
Simon McVittie [Fri, 17 Jun 2022 13:15:35 +0000 (14:15 +0100)]
test-basic-c: Don't assert that extended attributes are available
Not all filesystems support extended attributes. This test uses
/var/tmp to try to get an extended-attributes-capable filesystem,
but that might not succeed.
Colin Walters [Thu, 9 Jun 2022 22:32:09 +0000 (18:32 -0400)]
fsck: Don't load all object names into memory
We recently discovered `list_objects()` is inefficient with memory.
The more efficient `list_objects_set()` API isn't yet public, but
this fsck code actually just skips over non-commit objects, and
we already have an API to list just those.