ostree.git
2 years agocommit: Quiet clang-analyzer warning
Colin Walters [Wed, 30 Aug 2023 13:23:13 +0000 (09:23 -0400)]
commit: Quiet clang-analyzer warning

Another conditional ownership.

2 years agokeyfile-utils: Quiet a clang-analyzer warning
Colin Walters [Wed, 30 Aug 2023 13:19:42 +0000 (09:19 -0400)]
keyfile-utils: Quiet a clang-analyzer warning

It complains that we could leak memory if the return value
pointer isn't set.  That's actually a nonsensical case, there's
no reason to call this and ignore the return value.

So change things to require it be set, and also change the
`g_return_val_if_fail` to be hard assertions per our new policy.

2 years agoMerge pull request #3020 from cgwalters/less-return-if-fail-1
Colin Walters [Tue, 29 Aug 2023 16:25:42 +0000 (12:25 -0400)]
Merge pull request #3020 from cgwalters/less-return-if-fail-1

mutable-tree: Change some `g_return_if_fail` to `g_assert()`

2 years agoMerge pull request #3019 from cgwalters/more-analyzer-fixes-4
Colin Walters [Tue, 29 Aug 2023 16:25:24 +0000 (12:25 -0400)]
Merge pull request #3019 from cgwalters/more-analyzer-fixes-4

mutable-tree: Quiet clang-analyzer warning

2 years agomutable-tree: Change some `g_return_if_fail` to `g_assert()`
Colin Walters [Tue, 29 Aug 2023 14:15:52 +0000 (10:15 -0400)]
mutable-tree: Change some `g_return_if_fail` to `g_assert()`

We did this in some prior patches because it's better for
static analyzers; code is either reachable or not, and we don't
want the default desktop-style behavior of "try to stumble on
without crashing".  It's just likely to lead to a crash somewhere
else.

2 years agomutable-tree: Quiet clang-analyzer warning
Colin Walters [Tue, 29 Aug 2023 14:09:25 +0000 (10:09 -0400)]
mutable-tree: Quiet clang-analyzer warning

The warning here was about a use-after-free which is serious, but
I don't think it was reachable in practice, because we'd only
enter the second conditional if `contents_checksum != self->contents_checksum`,
yet we made them the same thing here.

Nevertheless, refactor the code to do a direct return in this
case because that's basically what happened before, and doing
so is a lot clearer.

2 years agoMerge pull request #3017 from cgwalters/more-analyzer-fixes-3
Joseph Marrero Corchado [Tue, 29 Aug 2023 04:11:36 +0000 (00:11 -0400)]
Merge pull request #3017 from cgwalters/more-analyzer-fixes-3

More analyzer fixes 3

2 years agorepo: Quiet clang-analyzer warning
Colin Walters [Mon, 28 Aug 2023 21:29:57 +0000 (17:29 -0400)]
repo: Quiet clang-analyzer warning

Another conditional ownership.

2 years agocommit: Quiet clang-analyzer warning
Colin Walters [Mon, 28 Aug 2023 21:28:59 +0000 (17:28 -0400)]
commit: Quiet clang-analyzer warning

Another conditional ownership.

2 years agocommit: Quiet clang-analyzer warning
Colin Walters [Mon, 28 Aug 2023 21:28:20 +0000 (17:28 -0400)]
commit: Quiet clang-analyzer warning

Another conditional ownership.

2 years agolib/commit: Quiet clang-analyzer warning
Colin Walters [Mon, 28 Aug 2023 21:27:04 +0000 (17:27 -0400)]
lib/commit: Quiet clang-analyzer warning

Another conditional ownership.

2 years agolib/delta: Remove dead code
Colin Walters [Mon, 28 Aug 2023 21:26:28 +0000 (17:26 -0400)]
lib/delta: Remove dead code

Found by clang-analyzer.

2 years agoMerge pull request #3016 from cgwalters/more-analyzer-fixes-2
Colin Walters [Mon, 28 Aug 2023 20:10:58 +0000 (16:10 -0400)]
Merge pull request #3016 from cgwalters/more-analyzer-fixes-2

More analyzer fixes 2

2 years agoMerge pull request #2994 from cgwalters/refactor-composefs-warnings
Colin Walters [Mon, 28 Aug 2023 14:44:15 +0000 (10:44 -0400)]
Merge pull request #2994 from cgwalters/refactor-composefs-warnings

Refactor composefs warnings

2 years agopull: Quiet clang-analyzer warning
Colin Walters [Sat, 26 Aug 2023 16:26:39 +0000 (12:26 -0400)]
pull: Quiet clang-analyzer warning

Just used for side-effects.

2 years agocommit: Quiet clang-analyzer warning
Colin Walters [Sat, 26 Aug 2023 16:26:39 +0000 (12:26 -0400)]
commit: Quiet clang-analyzer warning

This is just another instance of the "conditionally owned"
pattern.

2 years agopull: Add assertions to quiet clang-analyzer
Colin Walters [Sat, 26 Aug 2023 16:23:36 +0000 (12:23 -0400)]
pull: Add assertions to quiet clang-analyzer

It's warning the value can be NULL, but I don't think that's true.
I believe we're just hitting analysis limit (the path length is 119).

2 years agolib/repo-finder: Squash memory leak
Colin Walters [Sat, 26 Aug 2023 16:18:48 +0000 (12:18 -0400)]
lib/repo-finder: Squash memory leak

We want to free this value on each iteration; it's moved below
if the value is used.

2 years agoMerge pull request #3013 from cgwalters/more-analyzer-fixes
Colin Walters [Sat, 26 Aug 2023 16:10:55 +0000 (12:10 -0400)]
Merge pull request #3013 from cgwalters/more-analyzer-fixes

2023.6 coverity minor fixes

2 years agoMerge pull request #3006 from cgwalters/misc-c99-style-5
Eric Curtin [Sat, 26 Aug 2023 12:13:24 +0000 (13:13 +0100)]
Merge pull request #3006 from cgwalters/misc-c99-style-5

Misc c99 style 5

2 years agoswitchroot: Use g_new/g_free consistently
Colin Walters [Fri, 25 Aug 2023 20:58:44 +0000 (16:58 -0400)]
switchroot: Use g_new/g_free consistently

Coverity complains about this, even though they're the same thing.

2 years agosign/ed25519: Fix two memory leaks
Colin Walters [Fri, 25 Aug 2023 20:57:12 +0000 (16:57 -0400)]
sign/ed25519: Fix two memory leaks

Spotted by coverity.

2 years agocommit: Drop dead code
Colin Walters [Fri, 25 Aug 2023 20:53:11 +0000 (16:53 -0400)]
commit: Drop dead code

Coverity points out that since we're now *always* initializing
metadata, the `create_empty_gvariant_dict()` is unreachable.

2 years agoswitchroot: Lower config parser to otcore, add unit tests
Colin Walters [Fri, 25 Aug 2023 19:54:20 +0000 (15:54 -0400)]
switchroot: Lower config parser to otcore, add unit tests

Part of the continuation of unit testing coverage.

2 years agocomposefs: Hard error except on ENOENT even in "optional" case
Colin Walters [Mon, 21 Aug 2023 21:19:35 +0000 (17:19 -0400)]
composefs: Hard error except on ENOENT even in "optional" case

Since we enabled composefs at build time, the default (non-composefs)
case now always prints
`composefs: Optional support failed: No such file or directory`
But that's normal and expected.

Rework things here so that in the very special case where
we are in "maybe/optional" mode and we get ENOENT, then we
output a much more normal-looking message that doesn't include
the string "failed".

Now on the flip side - if I have explicitly enabled signature
checking, I think we *do* want to make that fatal even if
composefs is in "maybe" mode.

(This part is more debatable; perhaps we should just disallow
 the case of "maybe" + signatures at all; but I think this is
 an improvement in that direction)

2 years agoprepare-root: Fold together composefs signature cases
Colin Walters [Mon, 21 Aug 2023 21:12:08 +0000 (17:12 -0400)]
prepare-root: Fold together composefs signature cases

Now that we don't support digest-but-not-signature verification
for composefs, the logic here was unnecessarily complicated.
With a prior prep patch that moved the composefs option
initialization up, we can just have everything related to signature
verification in a single conditonal.

2 years agoprepare-root: Init composefs options earlier
Colin Walters [Mon, 21 Aug 2023 21:11:32 +0000 (17:11 -0400)]
prepare-root: Init composefs options earlier

Prep for a later patch.

2 years agoprepare-root: Drop redundant print about signature/digest
Colin Walters [Mon, 21 Aug 2023 18:05:14 +0000 (14:05 -0400)]
prepare-root: Drop redundant print about signature/digest

We print if we're doing a signature+digest verification; its absence is
sufficient in the other case.  The goal here is to avoid polluting
the logs when signatures are not enabled.

2 years agoMerge pull request #3005 from cgwalters/release
Colin Walters [Fri, 25 Aug 2023 15:11:17 +0000 (11:11 -0400)]
Merge pull request #3005 from cgwalters/release

Release

2 years agoconfigure: post-release version bump
Colin Walters [Wed, 23 Aug 2023 21:34:33 +0000 (17:34 -0400)]
configure: post-release version bump

2 years agoRelease 2023.6
Colin Walters [Wed, 23 Aug 2023 21:33:27 +0000 (17:33 -0400)]
Release 2023.6

2 years agoMerge pull request #3010 from cgwalters/more-composefs-fixes
Joseph Marrero Corchado [Fri, 25 Aug 2023 01:13:07 +0000 (21:13 -0400)]
Merge pull request #3010 from cgwalters/more-composefs-fixes

build-sys: Really fix composefs check

2 years agobuild-sys: Really fix composefs check
Colin Walters [Thu, 24 Aug 2023 23:48:22 +0000 (19:48 -0400)]
build-sys: Really fix composefs check

The ordering of the includes apparently matters...and I didn't
actually check that the previous change enables composefs on c9s.
But I did now.  For reals.

While we have the patient open, I switched to `AC_LANG_PROGRAM`
because I originally thought the bug had something to do with that.
As far as I understand, more cleanly separating the includes
from the injected body text is a useful thing in `AC_LANG_PROGRAM`.

2 years agoMerge pull request #3009 from cgwalters/c9s-ci
Colin Walters [Thu, 24 Aug 2023 23:38:22 +0000 (19:38 -0400)]
Merge pull request #3009 from cgwalters/c9s-ci

C9s CI && composefs build detection fix

2 years agoMerge pull request #3007 from cgwalters/optin-new-bootloader-naming
Joseph Marrero Corchado [Thu, 24 Aug 2023 22:01:26 +0000 (18:01 -0400)]
Merge pull request #3007 from cgwalters/optin-new-bootloader-naming

deploy: Add bootloader-naming-2 opt-in

2 years agobuild-sys: Look for both linux/mount.h and sys/mount.h
Colin Walters [Thu, 24 Aug 2023 21:24:29 +0000 (17:24 -0400)]
build-sys: Look for both linux/mount.h and sys/mount.h

Since that's what composefs uses.

2 years agoci: Add c9s build
Colin Walters [Thu, 24 Aug 2023 21:21:07 +0000 (17:21 -0400)]
ci: Add c9s build

Since it's an active target of this project.

2 years agoMerge pull request #3008 from ostreedev/maybe_ostree
Colin Walters [Thu, 24 Aug 2023 15:45:22 +0000 (11:45 -0400)]
Merge pull request #3008 from ostreedev/maybe_ostree

prepare-root: If composefs is configured as "maybe" don't fail

2 years agoprepare-root: If composefs is configured as "maybe" don't fail
Eric Curtin [Thu, 24 Aug 2023 14:20:25 +0000 (15:20 +0100)]
prepare-root: If composefs is configured as "maybe" don't fail

If composefs is configured as "maybe", we should continue even if
composefs support is not built in.

2 years agodeploy: Add bootloader-naming-2 opt-init
Colin Walters [Thu, 24 Aug 2023 13:40:54 +0000 (09:40 -0400)]
deploy: Add bootloader-naming-2 opt-init

I've verified that this fixes compatibility with GRUB, which
parses the filename:
https://github.com/ostreedev/ostree/issues/2961

However, out of a large degree of conservatism I've made this
an opt-in behavior for now.

My plan is to test it out in the FCOS development streams first.

2 years agoMerge pull request #3003 from cgwalters/prepare-root-oscore-and-units
Eric Curtin [Thu, 24 Aug 2023 08:59:46 +0000 (09:59 +0100)]
Merge pull request #3003 from cgwalters/prepare-root-oscore-and-units

Move prepare-root karg helpers into otcore, add unit tests

2 years agocmd/show-remote-url: Port to C99 style
Colin Walters [Thu, 24 Aug 2023 01:22:49 +0000 (21:22 -0400)]
cmd/show-remote-url: Port to C99 style

Just keeping up momentum.

2 years agocmd/log: Port to C99 style
Colin Walters [Thu, 24 Aug 2023 01:21:01 +0000 (21:21 -0400)]
cmd/log: Port to C99 style

Just keeping up momentum.

2 years agocmd/export: Fold libarchive error handling
Colin Walters [Thu, 24 Aug 2023 01:17:27 +0000 (21:17 -0400)]
cmd/export: Fold libarchive error handling

The helper function here doesn't quite carry its weight; this
brings us inline with having single line (no braces) error
return paths.

2 years agocmd/export: Port to C99 style
Colin Walters [Thu, 24 Aug 2023 01:14:53 +0000 (21:14 -0400)]
cmd/export: Port to C99 style

Just keeping up momentum.

2 years agoMove prepare-root karg helpers into otcore, add unit tests
Colin Walters [Wed, 23 Aug 2023 20:06:23 +0000 (16:06 -0400)]
Move prepare-root karg helpers into otcore, add unit tests

Add long overdue unit testing coverage for this, which
at least slightly closes out the android boot CI gap.

Actually, this *copies* the karg parsing code into otcore because
it now uses glib, which we're not yet using in the static
prepare-root.  It's pretty tempting to drop support for the
static prepare root entirely.  But for now we'll live with some
code duplication.

2 years agoMerge pull request #2997 from cgwalters/test-cleanups-1
Joseph Marrero Corchado [Wed, 23 Aug 2023 14:38:16 +0000 (10:38 -0400)]
Merge pull request #2997 from cgwalters/test-cleanups-1

tests/destructive: Port more to xshell

2 years agoMerge pull request #2999 from cgwalters/add-oscore-units
Joseph Marrero Corchado [Wed, 23 Aug 2023 14:37:48 +0000 (10:37 -0400)]
Merge pull request #2999 from cgwalters/add-oscore-units

tests: Add otcore unit tests

2 years agoMerge pull request #3001 from cgwalters/misc-c99-style-4
Eric Curtin [Tue, 22 Aug 2023 23:06:14 +0000 (00:06 +0100)]
Merge pull request #3001 from cgwalters/misc-c99-style-4

Misc c99 style 4

2 years agocmd/grub2-generate: Port to C99 style
Colin Walters [Tue, 22 Aug 2023 21:51:33 +0000 (17:51 -0400)]
cmd/grub2-generate: Port to C99 style

Just keeping up momentum.

2 years agocmd/init: Port to C99 style
Colin Walters [Tue, 22 Aug 2023 21:49:28 +0000 (17:49 -0400)]
cmd/init: Port to C99 style

Just keeping up momentum.

2 years agoMerge pull request #3000 from cgwalters/test-inst-update
Joseph Marrero Corchado [Tue, 22 Aug 2023 20:56:46 +0000 (16:56 -0400)]
Merge pull request #3000 from cgwalters/test-inst-update

tests/inst: Update to latest ostree-ext

2 years agoMerge pull request #2995 from ostreedev/dependabot/submodules/composefs-1aed878
Colin Walters [Tue, 22 Aug 2023 20:41:00 +0000 (16:41 -0400)]
Merge pull request #2995 from ostreedev/dependabot/submodules/composefs-1aed878

build(deps): bump composefs from `a6e827d` to `1aed878`

2 years agoMerge pull request #2998 from cgwalters/disable-composefs-too-old
Eric Curtin [Tue, 22 Aug 2023 19:08:26 +0000 (20:08 +0100)]
Merge pull request #2998 from cgwalters/disable-composefs-too-old

build-sys: Disable composefs on too-old Linux headers

2 years agotests/inst: Update to latest ostree-ext
Colin Walters [Tue, 22 Aug 2023 18:23:56 +0000 (14:23 -0400)]
tests/inst: Update to latest ostree-ext

(And glib, etc.)

2 years agoMerge pull request #2975 from ostreedev/androidboot-single-slot-mode
Colin Walters [Tue, 22 Aug 2023 18:11:50 +0000 (14:11 -0400)]
Merge pull request #2975 from ostreedev/androidboot-single-slot-mode

prepare-root: On a non-A/B androidboot system, boot system slot a

2 years agotests: Add otcore unit tests
Colin Walters [Tue, 22 Aug 2023 17:04:12 +0000 (13:04 -0400)]
tests: Add otcore unit tests

This just stubs out the basic infrastructure, to be expanded upon.

2 years agobuild-sys: Disable composefs on too-old Linux headers
Colin Walters [Tue, 22 Aug 2023 15:36:04 +0000 (11:36 -0400)]
build-sys: Disable composefs on too-old Linux headers

This should fix the build with Google OSS-fuzz which currently
uses an old Ubuntu.

2 years agoprepare-root: Changes made to find_proc_cmdline_key
Eric Curtin [Tue, 22 Aug 2023 12:11:30 +0000 (13:11 +0100)]
prepare-root: Changes made to find_proc_cmdline_key

Used strspn based on feedback from similar function.

2 years agoprepare-root: On a non-A/B androidboot system, boot system slot a
Eric Curtin [Tue, 22 Aug 2023 12:04:03 +0000 (13:04 +0100)]
prepare-root: On a non-A/B androidboot system, boot system slot a

Sometimes android bootloaders boot in a nonab way:

  https://source.android.com/docs/core/ota/nonab

In this case, "androidboot." kargs are present but not
"androidboot.slot_suffix" specifically.

In this case, rather than getting stuck in a partially booted
environment, boot system slot a.

2 years agoMerge pull request #2996 from cgwalters/misc-c99-style-3
Eric Curtin [Tue, 22 Aug 2023 15:08:10 +0000 (16:08 +0100)]
Merge pull request #2996 from cgwalters/misc-c99-style-3

cli/set-origin: Port to C99 style

2 years agotests/destructive: Port more to xshell
Colin Walters [Tue, 22 Aug 2023 13:49:16 +0000 (09:49 -0400)]
tests/destructive: Port more to xshell

Just keeping up momentum.

2 years agocli/set-origin: Port to C99 style
Colin Walters [Tue, 22 Aug 2023 13:44:39 +0000 (09:44 -0400)]
cli/set-origin: Port to C99 style

Just keeping up momentum.

2 years agobuild(deps): bump composefs from `a6e827d` to `1aed878`
dependabot[bot] [Tue, 22 Aug 2023 12:59:46 +0000 (12:59 +0000)]
build(deps): bump composefs from `a6e827d` to `1aed878`

Bumps [composefs](https://github.com/containers/composefs) from `a6e827d` to `1aed878`.
- [Release notes](https://github.com/containers/composefs/releases)
- [Commits](https://github.com/containers/composefs/compare/a6e827df2dbebb65d6d19a7211f2fb4a61d989ac...1aed8781d6ce617234175d5d3b0458f91a6e38f3)

---
updated-dependencies:
- dependency-name: composefs
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoMerge pull request #2993 from cgwalters/misc-c99-style-2
Eric Curtin [Fri, 18 Aug 2023 21:12:24 +0000 (22:12 +0100)]
Merge pull request #2993 from cgwalters/misc-c99-style-2

Misc c99 style 2

2 years agocheckout: Port to C99 style
Colin Walters [Fri, 18 Aug 2023 01:50:07 +0000 (21:50 -0400)]
checkout: Port to C99 style

Just keeping up momentum.

2 years agoMerge pull request #2990 from cgwalters/init-is-stateroot
Colin Walters [Fri, 18 Aug 2023 12:49:31 +0000 (08:49 -0400)]
Merge pull request #2990 from cgwalters/init-is-stateroot

Two s/osname/stateroot/ patches

2 years agolzma: Port to C99 style
Colin Walters [Fri, 18 Aug 2023 01:49:33 +0000 (21:49 -0400)]
lzma: Port to C99 style

Just keeping up momentum.

2 years agoMerge pull request #2991 from cgwalters/misc-c99-style
Eric Curtin [Thu, 17 Aug 2023 23:19:21 +0000 (00:19 +0100)]
Merge pull request #2991 from cgwalters/misc-c99-style

Misc c99 style

2 years agoremote-add: Port to c99 style
Colin Walters [Thu, 17 Aug 2023 20:59:41 +0000 (16:59 -0400)]
remote-add: Port to c99 style

- Drop `goto out`
- Use declare-and-initialize

2 years agoadmin: Port to c99 style
Colin Walters [Thu, 17 Aug 2023 20:59:41 +0000 (16:59 -0400)]
admin: Port to c99 style

- Drop `goto out`
- Use declare-and-initialize

2 years agoadmin-deploy: Add `--stateroot` as alias for `--os`
Colin Walters [Thu, 17 Aug 2023 20:48:05 +0000 (16:48 -0400)]
admin-deploy: Add `--stateroot` as alias for `--os`

To further help deprecate the confusing "osname" terminology.

2 years agoAdd `ostree admin stateroot-init` as alias for `os-init`
Colin Walters [Thu, 17 Aug 2023 20:46:02 +0000 (16:46 -0400)]
Add `ostree admin stateroot-init` as alias for `os-init`

To further help deprecate the confusing "osname" terminology.

2 years agoMerge pull request #2989 from cgwalters/lock-timeout-longer
Eric Curtin [Thu, 17 Aug 2023 13:38:30 +0000 (14:38 +0100)]
Merge pull request #2989 from cgwalters/lock-timeout-longer

repo: Bump lock timeout to 5 minutes

2 years agoMerge pull request #2973 from ostreedev/dependabot/submodules/composefs-a6e827d
Colin Walters [Thu, 17 Aug 2023 13:36:20 +0000 (09:36 -0400)]
Merge pull request #2973 from ostreedev/dependabot/submodules/composefs-a6e827d

build(deps): bump composefs from `1704f82` to `a6e827d`

2 years agorepo: Bump lock timeout to 5 minutes
Colin Walters [Thu, 17 Aug 2023 12:26:29 +0000 (08:26 -0400)]
repo: Bump lock timeout to 5 minutes

And update the doc text to talk about having a timeout at all
by default being a mistake.

Timeouts are really best handled at a higher level; if two processes
are contending for the ostree lock and one is actually frozen,
resolving this is something an admin may want to handle and introspect/debug
instead of having the waiter error out.

Most people using ostree are doing it in a way in which they have
higher level timeouts (e.g. on a container pod).

2 years agoMerge pull request #2988 from cgwalters/prepare-root-binding-key
Eric Curtin [Wed, 16 Aug 2023 22:20:15 +0000 (23:20 +0100)]
Merge pull request #2988 from cgwalters/prepare-root-binding-key

prepare-root: Minor clarifications

2 years agoMerge pull request #2987 from cgwalters/prefix-stage-deploy
Eric Curtin [Wed, 16 Aug 2023 21:37:06 +0000 (22:37 +0100)]
Merge pull request #2987 from cgwalters/prefix-stage-deploy

deploy: Add some error prefixing

2 years agoprepare-root: Minor clarifications
Colin Walters [Wed, 16 Aug 2023 20:54:13 +0000 (16:54 -0400)]
prepare-root: Minor clarifications

No functional changes.

2 years agodeploy: Add some error prefixing
Colin Walters [Wed, 16 Aug 2023 20:16:24 +0000 (16:16 -0400)]
deploy: Add some error prefixing

We saw a bare
`Txn Rebase on <osname> failed: Failed to find kernel in /usr/lib/modules, /usr/lib/ostree-boot or /boot`
which isn't bad, but it'd be better to be a bit more specific.

2 years agoMerge pull request #2985 from cgwalters/cleanup-proc-cmdline
Eric Curtin [Wed, 16 Aug 2023 18:31:35 +0000 (19:31 +0100)]
Merge pull request #2985 from cgwalters/cleanup-proc-cmdline

switchroot,generator: Only read /proc/cmdline once

2 years agoMerge pull request #2984 from alexlarsson/prepare-root-no-raw-key
Colin Walters [Wed, 16 Aug 2023 13:05:39 +0000 (09:05 -0400)]
Merge pull request #2984 from alexlarsson/prepare-root-no-raw-key

prepare-root: Only support base64 formated public key files

2 years agoswitchroot,generator: Only read /proc/cmdline once
Colin Walters [Wed, 16 Aug 2023 13:02:11 +0000 (09:02 -0400)]
switchroot,generator: Only read /proc/cmdline once

Change the helper function to parse an existing cmdline instead
of potentially reading `/proc/cmdline` multiple times.

2 years agoprepare-root: Only support base64 formated public key files
Alexander Larsson [Wed, 16 Aug 2023 08:59:47 +0000 (10:59 +0200)]
prepare-root: Only support base64 formated public key files

I've updated the automotive samples to not use the raw format, so
there is no use anymore to support both formats, as base64 is strictly
better.

2 years agoMerge pull request #2980 from cgwalters/prepare-root-minor
Alexander Larsson [Wed, 16 Aug 2023 08:56:20 +0000 (10:56 +0200)]
Merge pull request #2980 from cgwalters/prepare-root-minor

Prepare root minor

2 years agoprepare-root: Use ptrarray, not linked list
Colin Walters [Mon, 14 Aug 2023 18:36:50 +0000 (14:36 -0400)]
prepare-root: Use ptrarray, not linked list

Linked lists are a data structure with only very obscure
use cases, and this is a classic one where since we're appending
it's O(N^2) behavior.

Also we were leaking the memory.

It's more ergonomic, clearer and efficient to use a ptrarray.

2 years agoprepare-root: Check for empty string, not strlen > 0
Colin Walters [Mon, 14 Aug 2023 18:30:42 +0000 (14:30 -0400)]
prepare-root: Check for empty string, not strlen > 0

No point in doing a full strlen, we can just check the first byte.
Also, invert the conditional using `continue` to avoid another
level of indentation.

2 years agoprepare-root: Use declare-and-initialize
Colin Walters [Mon, 14 Aug 2023 18:27:08 +0000 (14:27 -0400)]
prepare-root: Use declare-and-initialize

This is our default style.

2 years agoMerge pull request #2979 from cgwalters/enabled-discussions
Joseph Marrero Corchado [Mon, 14 Aug 2023 15:47:05 +0000 (11:47 -0400)]
Merge pull request #2979 from cgwalters/enabled-discussions

README.md: Drop dead mailing list, link to GH discussions

2 years agoMerge pull request #2974 from alexlarsson/composefs-config-file
Colin Walters [Mon, 14 Aug 2023 15:46:38 +0000 (11:46 -0400)]
Merge pull request #2974 from alexlarsson/composefs-config-file

Read composefs configuration from initrd instead of commandline

2 years agoREADME.md: Drop dead mailing list, link to GH discussions
Colin Walters [Mon, 14 Aug 2023 13:48:49 +0000 (09:48 -0400)]
README.md: Drop dead mailing list, link to GH discussions

While I resisted taking the next step in binding ourselves
more to GH with discussions...it's way, way better than answering
questions out of band in private (also proprietary) chats.

We haven't been successful in using the GNOME discussion forums.

2 years agoRead composefs configuration from initrd instead of commandline
Alexander Larsson [Tue, 8 Aug 2023 11:16:39 +0000 (13:16 +0200)]
Read composefs configuration from initrd instead of commandline

This drops the `ot-composefs` kernel commandline in favour
of a `[composefs]` section in the `prepare-rootfs.conf` file.

You can set `composefs.enabled` to `signed`, `yes`, `no` or `maybe`,
with `maybe` being the default.

You can also set `composefs.keypath` (or rely on the default
`/etc/ostree/initramfs-root-binding.key`) to point to ed25519 public
keys, one of which which the commit must be signed with, or boot
fails.

The ostree dracut module adds `/etc/ostree/initramfs-root-binding.key`
to the initrd if it exists.

NOTE: This drop the option to define a digest in the commandline.
However, that was currently unused
(i.e. ComposefsConfig.expected_digest was never read).

Additionally it very hard to actually store the composefs digest in
the initrd, as the initrd is typically part of the commit and thus the
composefs. It may be possible to handle this, but lets add it back
when we know exactly how that will work.

2 years agoMerge pull request #2966 from cgwalters/ostree-admin-edit
Eric Curtin [Tue, 8 Aug 2023 13:24:35 +0000 (14:24 +0100)]
Merge pull request #2966 from cgwalters/ostree-admin-edit

Add `admin set-default`

2 years agobuild(deps): bump composefs from `1704f82` to `a6e827d`
dependabot[bot] [Tue, 8 Aug 2023 12:05:10 +0000 (12:05 +0000)]
build(deps): bump composefs from `1704f82` to `a6e827d`

Bumps [composefs](https://github.com/containers/composefs) from `1704f82` to `a6e827d`.
- [Release notes](https://github.com/containers/composefs/releases)
- [Commits](https://github.com/containers/composefs/compare/1704f823db41b1056cabfba51254f8afa8bae41d...a6e827df2dbebb65d6d19a7211f2fb4a61d989ac)

---
updated-dependencies:
- dependency-name: composefs
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoMerge pull request #2958 from cgwalters/deploy-loosen-etc-usretc
Eric Curtin [Sat, 5 Aug 2023 15:48:28 +0000 (16:48 +0100)]
Merge pull request #2958 from cgwalters/deploy-loosen-etc-usretc

deploy: Support an empty `/etc` and populated `/usr/etc`

2 years agoMerge pull request #2969 from cgwalters/fix-sync-pthreads
Joseph Marrero Corchado [Fri, 4 Aug 2023 15:34:13 +0000 (11:34 -0400)]
Merge pull request #2969 from cgwalters/fix-sync-pthreads

deploy: Fix mutex locking for global sync timeout

2 years agoMerge pull request #2967 from cgwalters/drop-trivial-httpd-entrypoint
Eric Curtin [Fri, 4 Aug 2023 09:07:09 +0000 (10:07 +0100)]
Merge pull request #2967 from cgwalters/drop-trivial-httpd-entrypoint

More fully drop `trivial-httpd` entrypoint

2 years agodeploy: Fix mutex locking for global sync timeout
Colin Walters [Fri, 4 Aug 2023 02:49:48 +0000 (22:49 -0400)]
deploy: Fix mutex locking for global sync timeout

The locking here was always too long - by holding the mutex
during the `sync()` call, it means `g_cond_wait_until()` can
never wake up (because its API requires the mutex to be locked).

Confusingly though of course we do still print the "timed out"
message, and I think that tricked us when we were doing testing
here.

We only need to lock the mutex when we're manipulating shared
state, which basically boils down to the `gboolean success`.

2 years agoMore fully drop `trivial-httpd` entrypoint
Colin Walters [Wed, 2 Aug 2023 15:34:14 +0000 (11:34 -0400)]
More fully drop `trivial-httpd` entrypoint

It's just part of the tests and we should no longer
support `ostree trivial-httpd`.

This is a followup cleanup to previous work.

2 years agoAdd `admin set-default`
Colin Walters [Wed, 2 Aug 2023 15:25:58 +0000 (11:25 -0400)]
Add `admin set-default`

A core underlying primitive in the C library is the ability
to arbitrarily reorder bootloader entries.

Let's expose the basic functionality here with the ability to pick
an arbitrarily deployment for the next boot.

Closes: https://github.com/ostreedev/ostree/issues/2965