ostree.git
5 years agoadmin/pin: Enforce that index is a number
Colin Walters [Wed, 19 Aug 2020 13:09:46 +0000 (13:09 +0000)]
admin/pin: Enforce that index is a number

Validate that we're parsing a number; we want to guard
against typos.

Closes: https://github.com/ostreedev/ostree/issues/2171
5 years agoMerge pull request #2173 from cgwalters/release
OpenShift Merge Robot [Tue, 18 Aug 2020 17:11:02 +0000 (19:11 +0200)]
Merge pull request #2173 from cgwalters/release

Release 2020.5

5 years agoPost-release version bump
Colin Walters [Tue, 18 Aug 2020 15:55:47 +0000 (15:55 +0000)]
Post-release version bump

5 years agoRelease 2020.5
Colin Walters [Tue, 18 Aug 2020 15:55:21 +0000 (15:55 +0000)]
Release 2020.5

Mainly to get https://github.com/ostreedev/ostree/pull/2160 out.

5 years agoMerge pull request #2172 from jlebon/pr/add-initrds-prep
OpenShift Merge Robot [Mon, 17 Aug 2020 15:59:18 +0000 (17:59 +0200)]
Merge pull request #2172 from jlebon/pr/add-initrds-prep

Miscellaneous patches split out of #2155

5 years agoMerge pull request #2127 from cgwalters/destructive-rs
OpenShift Merge Robot [Mon, 17 Aug 2020 15:15:29 +0000 (17:15 +0200)]
Merge pull request #2127 from cgwalters/destructive-rs

tests/inst: Add destructive test framework

5 years agotests/inst: Add destructive test framework
Colin Walters [Sun, 31 May 2020 17:57:22 +0000 (17:57 +0000)]
tests/inst: Add destructive test framework

This adds infrastructure to the Rust test suite for destructive
tests, and adds a new `transactionality` test which runs
rpm-ostree in a loop (along with `ostree-finalize-staged`) and
repeatedly uses either `kill -9`, `reboot` and  `reboot -ff`.

The main goal here is to flush out any "logic errors".

So far I've validated that this passes a lot of cycles
using
```
$ kola run --qemu-image=fastbuild-fedora-coreos-ostree-qemu.qcow2 ext.ostree.destructive-rs.transactionality --debug --multiply 8 --parallel 4
```
a number of times.

5 years agolib/deploy: Clarify comment re. staging API
Jonathan Lebon [Mon, 17 Aug 2020 13:48:15 +0000 (09:48 -0400)]
lib/deploy: Clarify comment re. staging API

Don't mention deprecation in the description for
`ostree_sysroot_deploy_tree` since there are legitimate use cases for it
(e.g. to create the first deployment via `ostree admin deploy`).

Instead, make the comment clearly redirect to the staging API when
booted into the sysroot.

5 years agolib/deploy: Drop unneccessary function arg
Jonathan Lebon [Mon, 17 Aug 2020 13:48:13 +0000 (09:48 -0400)]
lib/deploy: Drop unneccessary function arg

5 years agolib/cleanup: Drop unnecessary GEqualFunc cast
Jonathan Lebon [Mon, 17 Aug 2020 13:48:12 +0000 (09:48 -0400)]
lib/cleanup: Drop unnecessary GEqualFunc cast

5 years agolib/deploy: Simplify deployment creation
Jonathan Lebon [Mon, 17 Aug 2020 13:48:11 +0000 (09:48 -0400)]
lib/deploy: Simplify deployment creation

Minor cleanup; we were declaring a superfluous variable.

5 years agolib/deploy: Avoid shadowing variable
Jonathan Lebon [Mon, 17 Aug 2020 13:48:10 +0000 (09:48 -0400)]
lib/deploy: Avoid shadowing variable

There's already a `boot_relpath` variable in the outside scope.

5 years agolib/deploy: Clean up kargs override handling
Jonathan Lebon [Mon, 17 Aug 2020 13:48:09 +0000 (09:48 -0400)]
lib/deploy: Clean up kargs override handling

Tighten up how we handle kargs here so it's more clear. When we call
`sysroot_finalize_deployment`, any karg overrides have already been set
on the bootconfig object of the deployment. So re-setting it here is
redundant and confusing.

5 years agoMerge pull request #2170 from jprvita/for-upstream
OpenShift Merge Robot [Sun, 16 Aug 2020 20:25:20 +0000 (22:25 +0200)]
Merge pull request #2170 from jprvita/for-upstream

dracut: Create reproducible images

5 years agodracut: Create reproducible images
João Paulo Rechi Vita [Sat, 27 Jun 2020 01:28:48 +0000 (18:28 -0700)]
dracut: Create reproducible images

Without reproducible images, a rebuild of the initrd will create a
different image file (due to things like creation time of the files in
the cpio archive) even if the actual contents in it are exactly the
same, adding an unnecessary download during updates.

Adding 'reproducible=yes' avoids this and creates the same image files
for the same content.

5 years agoMerge pull request #2168 from arithx/ci_pxe_offline
OpenShift Merge Robot [Thu, 13 Aug 2020 14:43:38 +0000 (16:43 +0200)]
Merge pull request #2168 from arithx/ci_pxe_offline

ci: add pxe-offline-install testiso scenario

5 years agoci: add pxe-offline-install testiso scenario
Stephen Lowrie [Tue, 11 Aug 2020 05:02:12 +0000 (00:02 -0500)]
ci: add pxe-offline-install testiso scenario

5 years agoMerge pull request #2103 from cgwalters/underlay-live
OpenShift Merge Robot [Fri, 7 Aug 2020 21:29:31 +0000 (17:29 -0400)]
Merge pull request #2103 from cgwalters/underlay-live

Add "transient" unlock

5 years agoAdd "transient" unlock
Colin Walters [Sun, 17 May 2020 18:17:37 +0000 (18:17 +0000)]
Add "transient" unlock

I was thinking a bit more recently about the "live" changes
stuff https://github.com/coreos/rpm-ostree/issues/639
(particularly since https://github.com/coreos/rpm-ostree/pull/2060 )
and I realized reading the last debates in that issue that
there's really a much simpler solution; do exactly the same
thing we do for `ostree admin unlock`, except mount it read-only
by default.

Then, anything that wants to modify it does the same thing
libostree does for `/sysroot` and `/boot` as of recently; create
a new mount namespace and do the modifications there.

The advantages of this are numerous.  First, we already have
all of the code, it's basically just plumbing through a new
entry in the state enumeration and passing `MS_RDONLY` into
the `mount()` system call.

"live" changes here also naturally don't persist, unlike what
we are currently doing in rpm-ostree.

5 years agoMerge pull request #2166 from pwithnall/summary-sig-downloads
OpenShift Merge Robot [Fri, 7 Aug 2020 17:24:58 +0000 (13:24 -0400)]
Merge pull request #2166 from pwithnall/summary-sig-downloads

pull: Add summary-{,sig-}bytes options to ostree_repo_pull()

5 years agopull: Add summary-{,sig-}bytes options to ostree_repo_pull()
Philip Withnall [Thu, 16 Jul 2020 15:16:37 +0000 (16:16 +0100)]
pull: Add summary-{,sig-}bytes options to ostree_repo_pull()

These allow the `summary` and `summary.sig` files to be cached at a
higher layer (for example, flatpak) between related pull operations (for
example, within a single flatpak transaction). This avoids
re-downloading `summary.sig` multiple times throughout a transaction,
which increases the transaction’s latency and introduces the possibility
for inconsistency between parts of the transaction if the server changes
its `summary` file part-way through.

In particular, this should speed up flatpak transactions on machines
with high latency network connections, where network round trips have a
high impact on the latency of an overall operation.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
5 years agopull: Improve formatting of pull options in documentation
Philip Withnall [Wed, 15 Jul 2020 15:24:32 +0000 (16:24 +0100)]
pull: Improve formatting of pull options in documentation

Backticks improve all things.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
5 years agoMerge pull request #2163 from cgwalters/fix-ci
OpenShift Merge Robot [Wed, 5 Aug 2020 19:20:27 +0000 (21:20 +0200)]
Merge pull request #2163 from cgwalters/fix-ci

 ci: Barf on unset umask

5 years agoci: Barf on unset umask
Colin Walters [Wed, 5 Aug 2020 14:17:53 +0000 (14:17 +0000)]
ci: Barf on unset umask

Since it's just not a sane thing to do and will cause various
failures in our test suite.

5 years agoMerge pull request #2159 from agners/show-parent
OpenShift Merge Robot [Tue, 4 Aug 2020 19:54:28 +0000 (21:54 +0200)]
Merge pull request #2159 from agners/show-parent

Show commit checksum of parent, if present

5 years agoMerge pull request #2160 from cgwalters/sysroot-ro
OpenShift Merge Robot [Mon, 3 Aug 2020 00:53:41 +0000 (20:53 -0400)]
Merge pull request #2160 from cgwalters/sysroot-ro

remount: Still remount /sysroot writable if not configured ro

5 years agoMerge pull request #2162 from cgwalters/fix-repo-finder
OpenShift Merge Robot [Sun, 2 Aug 2020 14:29:45 +0000 (10:29 -0400)]
Merge pull request #2162 from cgwalters/fix-repo-finder

tests/repo-finder: Explicitly commit empty dir

5 years agoMerge pull request #2161 from cgwalters/fix-ci
OpenShift Merge Robot [Sun, 2 Aug 2020 13:02:06 +0000 (09:02 -0400)]
Merge pull request #2161 from cgwalters/fix-ci

ci: Fix ISO testing

5 years agoci: Fix ISO testing
Colin Walters [Sat, 1 Aug 2020 18:14:30 +0000 (18:14 +0000)]
ci: Fix ISO testing

Regression from
https://github.com/ostreedev/ostree/pull/2158/commits/5d7f897908dbf7f471ddfdbd6c29a84ac6bc0bda

I'm not sure how (or if) this passed before, the job logs have
been GC'd.

This is a bit confusing but basically right now ostree/rpm-ostree's
CI jobs don't use `/srv/fcos` - it might make sense to port
these to `fcosBuild` but that needs investigation.

5 years agotests/repo-finder: Explicitly commit empty dir
Colin Walters [Sat, 1 Aug 2020 18:47:36 +0000 (18:47 +0000)]
tests/repo-finder: Explicitly commit empty dir

We were committing the whole tempdir, which seems to fail
in Travis because the GPG agent Unix domain socket ends up there too,
and ostree refuses to commit sockets.

5 years agoMerge pull request #2156 from jlebon/pr/clarify-ref-rev
OpenShift Merge Robot [Sat, 1 Aug 2020 19:02:23 +0000 (15:02 -0400)]
Merge pull request #2156 from jlebon/pr/clarify-ref-rev

app: Fix various CLI metavariable names

5 years agoremount: Still remount /sysroot writable if not configured ro
Colin Walters [Sat, 1 Aug 2020 17:24:28 +0000 (17:24 +0000)]
remount: Still remount /sysroot writable if not configured ro

Regression from https://github.com/ostreedev/ostree/pull/2113/commits/35642259175973617da937f3cab6ce5f13c95077
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1862568

We still need to remount writable if it's not configured on;
because it may need OS adjustments it needs to be opt-in.

5 years agoShow commit checksum of parent, if present
Stefan Agner [Fri, 31 Jul 2020 19:43:09 +0000 (21:43 +0200)]
Show commit checksum of parent, if present

This is useful for ostree log on client side where often not the
full history of a branch is available. It is also helpful for
ostree show to show if a particular commit has a parent.

5 years agoapp: Fix various CLI metavariable names
Jonathan Lebon [Thu, 30 Jul 2020 21:35:20 +0000 (17:35 -0400)]
app: Fix various CLI metavariable names

- Use `REV` instead of `REF` in places where we meant it.
- Fix `commit --parent` actually taking a commit checksum and not a ref.
- Fix `ostree admin switch` using `REF` instead of `REFSPEC`.

5 years agoMerge pull request #2157 from agners/improve-man-pages
OpenShift Merge Robot [Fri, 31 Jul 2020 18:12:42 +0000 (14:12 -0400)]
Merge pull request #2157 from agners/improve-man-pages

Improve man pages

5 years agoMerge pull request #2158 from bgilbert/testiso
OpenShift Merge Robot [Fri, 31 Jul 2020 17:52:59 +0000 (13:52 -0400)]
Merge pull request #2158 from bgilbert/testiso

ci: test FCOS PXE and ISO install

5 years agoci: test FCOS PXE and ISO install
Benjamin Gilbert [Fri, 31 Jul 2020 10:57:58 +0000 (06:57 -0400)]
ci: test FCOS PXE and ISO install

Make sure we don't break the FCOS live image.  PXE is probably sufficient,
but also test the ISO image for good measure.

5 years agoman: add missing options to the ostree-commit man page
Stefan Agner [Fri, 31 Jul 2020 09:52:39 +0000 (11:52 +0200)]
man: add missing options to the ostree-commit man page

Add missing parameter to the ostree-commit man page.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
5 years agoman: add glossary to main man page
Stefan Agner [Fri, 31 Jul 2020 09:49:38 +0000 (11:49 +0200)]
man: add glossary to main man page

Add glossary to define some commonly used literals throughout the ostree
man pages.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
5 years agoMerge pull request #2153 from cgwalters/release-2020-4
OpenShift Merge Robot [Wed, 22 Jul 2020 14:48:44 +0000 (16:48 +0200)]
Merge pull request #2153 from cgwalters/release-2020-4

Release 2020.4

5 years agoPost-release version bump
Colin Walters [Tue, 21 Jul 2020 21:46:43 +0000 (21:46 +0000)]
Post-release version bump

5 years agoRelease 2020.4
Colin Walters [Tue, 21 Jul 2020 21:46:00 +0000 (21:46 +0000)]
Release 2020.4

A lot of stuff here, new signing API is the biggest.  Let's
get a release out.

5 years agoMerge pull request #2152 from cgwalters/pull-fdatasync
OpenShift Merge Robot [Mon, 20 Jul 2020 17:55:26 +0000 (13:55 -0400)]
Merge pull request #2152 from cgwalters/pull-fdatasync

pull: Add --per-object-fsync

5 years agoMerge pull request #2150 from cgwalters/pull-append-written
OpenShift Merge Robot [Sat, 18 Jul 2020 15:00:49 +0000 (11:00 -0400)]
Merge pull request #2150 from cgwalters/pull-append-written

pull: Also append bytes written

5 years agopull: Add --per-object-fsync
Colin Walters [Thu, 16 Jul 2020 21:13:36 +0000 (21:13 +0000)]
pull: Add --per-object-fsync

This is the opposite of
https://github.com/ostreedev/ostree/issues/1184

Motivated by OpenShift seeing etcd performance issues during
OS updates: https://github.com/openshift/machine-config-operator/issues/1897

Basically, if we switch to invoking `fsync()` as we go, it makes
ostree performance worse (in my tests, 31s to write 2G versus 7s if we
delay sync) but it avoids *huge* outliers in `fsync()` time for etcd.

5 years agopull: Also append bytes written
Colin Walters [Thu, 16 Jul 2020 14:20:07 +0000 (14:20 +0000)]
pull: Also append bytes written

This is very useful information that we get from the transaction
stats.  Append it to the final display if we're not inheriting
the transaction.

5 years agoMerge pull request #2151 from jlebon/pr/too-parallel
OpenShift Merge Robot [Fri, 17 Jul 2020 16:00:24 +0000 (12:00 -0400)]
Merge pull request #2151 from jlebon/pr/too-parallel

ci: Constrain parallel build jobs

5 years agotests: Add needs-internet tag for webserver bits
Colin Walters [Fri, 17 Jul 2020 01:36:51 +0000 (01:36 +0000)]
tests: Add needs-internet tag for webserver bits

Fixes the tests, see https://github.com/coreos/coreos-assembler/pull/1600
TODO: provide a webserver binary via virtio or so

5 years agoci: Constrain parallel build jobs
Jonathan Lebon [Thu, 16 Jul 2020 15:42:57 +0000 (11:42 -0400)]
ci: Constrain parallel build jobs

The default `_NPROCESSORS_ONLN` heuristic we have isn't cgroups aware.
So it thinks it has e.g. 40 CPUs when running in a k8s pod. This can
then blow through our allocated resource limits.

Declare some modest amount of RAM and CPU resources and override `make`
parallelism.

This matches what rpm-ostree now does in
https://github.com/coreos/rpm-ostree/pull/2155.

5 years agoMerge pull request #2146 from stb-tester/owners-uncomment-wmanley
OpenShift Merge Robot [Fri, 10 Jul 2020 17:20:27 +0000 (19:20 +0200)]
Merge pull request #2146 from stb-tester/owners-uncomment-wmanley

OWNERS: Uncomment @wmanley

5 years agoOWNERS: Uncomment @wmanley
William Manley [Wed, 8 Jul 2020 14:54:22 +0000 (15:54 +0100)]
OWNERS: Uncomment @wmanley

I've made my affiliation public now thanks to @cgwalters:

https://github.com/ostreedev/ostree/pull/1678#issuecomment-653148139

5 years agoMerge pull request #2144 from cgwalters/deltas-new-style
OpenShift Merge Robot [Fri, 3 Jul 2020 15:31:45 +0000 (11:31 -0400)]
Merge pull request #2144 from cgwalters/deltas-new-style

lib/deltas: convert ostree_repo_static_delta_generate to new style

5 years agolib/deltas: convert ostree_repo_static_delta_generate to new style
Frédéric Danis [Thu, 16 Apr 2020 15:17:12 +0000 (17:17 +0200)]
lib/deltas: convert ostree_repo_static_delta_generate to new style

The "new style" code generally avoids `goto err` because it conflicts
with `__attribute__((cleanup))`.  This fixes a compiler warning.

Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
5 years agoMerge pull request #2143 from jlebon/pr/eacces-lock
OpenShift Merge Robot [Wed, 1 Jul 2020 21:05:40 +0000 (17:05 -0400)]
Merge pull request #2143 from jlebon/pr/eacces-lock

lib/repo: Handle EACCES for POSIX locking

5 years agolib/repo: Handle EACCES for POSIX locking
Jonathan Lebon [Tue, 30 Jun 2020 19:05:19 +0000 (15:05 -0400)]
lib/repo: Handle EACCES for POSIX locking

If `glnx_make_lock_file` falls back to `flock`, on NFS this uses POSIX
locks (`F_SETLK`). As such, we need to be able to handle `EACCES` as
well as `EAGAIN` (see `fnctl(2)`).

I think this is what coreos-ostree-importer has been hitting, which runs
on RHEL7 in the Fedora infra and does locking over an NFS share where
multiple apps could concurrently pull things into the repo.

5 years agoMerge pull request #2131 from cgwalters/sign-success
OpenShift Merge Robot [Wed, 24 Jun 2020 22:24:41 +0000 (18:24 -0400)]
Merge pull request #2131 from cgwalters/sign-success

signapi: Change API to also return a success message

5 years agoMerge pull request #2001 from agners/multi-device-tree
OpenShift Merge Robot [Wed, 24 Jun 2020 07:02:18 +0000 (03:02 -0400)]
Merge pull request #2001 from agners/multi-device-tree

deploy: support devicetree directory

5 years agoMerge pull request #2138 from cgwalters/use-autopkgtest-reboot
OpenShift Merge Robot [Fri, 19 Jun 2020 18:37:19 +0000 (14:37 -0400)]
Merge pull request #2138 from cgwalters/use-autopkgtest-reboot

tests: Port to Debian autopkgtest reboot API

5 years agoMerge pull request #2136 from cgwalters/doc-timestamp
OpenShift Merge Robot [Fri, 19 Jun 2020 17:57:33 +0000 (13:57 -0400)]
Merge pull request #2136 from cgwalters/doc-timestamp

core: Add documentation for ostree_commit_get_timestamp()

5 years agoMerge pull request #2137 from cgwalters/fix-unexported-symbol
OpenShift Merge Robot [Fri, 19 Jun 2020 17:12:07 +0000 (13:12 -0400)]
Merge pull request #2137 from cgwalters/fix-unexported-symbol

sysroot: Remove unimplemented ostree_sysroot_lock_with_mount_namespace

5 years agotests: Port to Debian autopkgtest reboot API
Colin Walters [Fri, 19 Jun 2020 12:55:33 +0000 (12:55 +0000)]
tests: Port to Debian autopkgtest reboot API

See https://github.com/coreos/coreos-assembler/pull/1528

I think we can drop the old cosa reboot APIs after this,
though I've already forgotten where else I might have written
tests using it.

5 years agosysroot: Remove unimplemented ostree_sysroot_lock_with_mount_namespace
Colin Walters [Thu, 18 Jun 2020 21:19:43 +0000 (21:19 +0000)]
sysroot: Remove unimplemented ostree_sysroot_lock_with_mount_namespace

This came in with 5af403be0cc64df50ad21cef05f3268ead256d6d but
was never implemented.

I noticed this now because the Rust ostree bindings generate a
wrapper for it which the linker tries to use.

5 years agocore: Add documentation for ostree_commit_get_timestamp()
Colin Walters [Thu, 18 Jun 2020 20:57:53 +0000 (20:57 +0000)]
core: Add documentation for ostree_commit_get_timestamp()

Working on some rpm-ostree bits and was going to pass
this to the `chrono` crate and I forgot the format, went
to look at the docs.  Oops.

5 years agoMerge pull request #2133 from jlebon/pr/ci-commitmessage
OpenShift Merge Robot [Thu, 18 Jun 2020 14:00:32 +0000 (10:00 -0400)]
Merge pull request #2133 from jlebon/pr/ci-commitmessage

ci: Import latest ci-commitmessage-submodules from rpm-ostree

5 years agoMerge pull request #2135 from mwleeds/test-symbols-check-for-example
OpenShift Merge Robot [Thu, 18 Jun 2020 13:49:43 +0000 (09:49 -0400)]
Merge pull request #2135 from mwleeds/test-symbols-check-for-example

tests: Check that example symbol isn't released

5 years agotests: Check that example symbol isn't released
Matthew Leeds [Wed, 17 Jun 2020 21:35:18 +0000 (14:35 -0700)]
tests: Check that example symbol isn't released

For the motivation for this see #2132.

5 years agoMerge pull request #2132 from cgwalters/remove-unused-symbol
OpenShift Merge Robot [Wed, 17 Jun 2020 20:18:26 +0000 (16:18 -0400)]
Merge pull request #2132 from cgwalters/remove-unused-symbol

libostree-devel.sym: Remove nonexistent stub symbol

5 years agoci: Remove libpaprci/ directory
Jonathan Lebon [Wed, 17 Jun 2020 19:48:31 +0000 (15:48 -0400)]
ci: Remove libpaprci/ directory

And move everything that was in it directly in `ci/`. There's a bunch
more cleanups here that we need to do (and more changes to upstream from
the rpm-ostree copies of this).

5 years agoMerge pull request #2134 from d4s/wip/d4s/fix_abort_on_verify
OpenShift Merge Robot [Wed, 17 Jun 2020 19:44:27 +0000 (15:44 -0400)]
Merge pull request #2134 from d4s/wip/d4s/fix_abort_on_verify

Fix abort on verify

5 years agolibostree-devel.sym: Remove nonexistent stub symbol
Colin Walters [Tue, 16 Jun 2020 13:02:53 +0000 (13:02 +0000)]
libostree-devel.sym: Remove nonexistent stub symbol

This should have been removed when we added symbols to this list.

5 years agosign/ed25519: fix return value if no correct keys in file
Denis Pynkin [Wed, 17 Jun 2020 16:21:35 +0000 (16:21 +0000)]
sign/ed25519: fix return value if no correct keys in file

Fix the return value if file doesn't contains correct public key(s).

Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
5 years agosign/ed25519: fix the abort in case of incorrect public key
Denis Pynkin [Wed, 17 Jun 2020 13:28:32 +0000 (16:28 +0300)]
sign/ed25519: fix the abort in case of incorrect public key

We need to check the size of public key before trying to use it.

Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
5 years agoci: Import latest ci-commitmessage-submodules from rpm-ostree
Jonathan Lebon [Wed, 17 Jun 2020 14:38:06 +0000 (10:38 -0400)]
ci: Import latest ci-commitmessage-submodules from rpm-ostree

Especially for https://github.com/coreos/rpm-ostree/pull/2079.

5 years agosignapi: Change API to also return a success message
Colin Walters [Wed, 17 Jun 2020 00:22:49 +0000 (00:22 +0000)]
signapi: Change API to also return a success message

This is the dual of https://github.com/ostreedev/ostree/pull/2129/commits/1f3c8c5b3de978f6e069c24938967f823cce7ee8
where we output more detail when signapi fails to validate.

Extend the API to return a string for success, which we output
to stdout.

This will help the test suite *and* end users validate that the expected
thing is happening.

In order to make this cleaner, split the "verified commit" set
in the pull code into GPG and signapi verified sets, and have
the signapi verified set contain the verification string.

We're not doing anything with the verification string in the
pull code *yet* but I plan to add something like
`ostree pull --verbose` which would finally print this.

5 years agoMerge pull request #2130 from jlebon/pr/bump-libglnx
OpenShift Merge Robot [Tue, 16 Jun 2020 20:59:55 +0000 (22:59 +0200)]
Merge pull request #2130 from jlebon/pr/bump-libglnx

libglnx: Bump to latest

5 years agolibglnx: Bump to latest
Jonathan Lebon [Tue, 16 Jun 2020 20:30:23 +0000 (16:30 -0400)]
libglnx: Bump to latest

For `copy_file_range` fix:

https://gitlab.gnome.org/GNOME/libglnx/-/merge_requests/18

Update submodule: libglnx

5 years agoMerge pull request #2129 from cgwalters/ed25519-errors
OpenShift Merge Robot [Tue, 16 Jun 2020 16:15:21 +0000 (18:15 +0200)]
Merge pull request #2129 from cgwalters/ed25519-errors

sign/ed25519: Output failed signatures in error message

5 years agosign/ed25519: Output failed signatures in error message
Colin Walters [Tue, 16 Jun 2020 13:18:07 +0000 (13:18 +0000)]
sign/ed25519: Output failed signatures in error message

To aid debuggability, when we find a commit that isn't signed
by our expected key, output a specific error message with the
key.

(And then add code to switch to just printing the count beyond 3
 because the test suite injects 100 keys and hopefully no one
 ever actually does that)

5 years agoMerge pull request #2128 from cgwalters/verify-pre-signed
OpenShift Merge Robot [Mon, 15 Jun 2020 19:29:23 +0000 (15:29 -0400)]
Merge pull request #2128 from cgwalters/verify-pre-signed

tests: Add a pre-signed-pull.sh test

5 years agotests: Add a pre-signed-pull.sh test
Colin Walters [Thu, 11 Jun 2020 18:31:33 +0000 (18:31 +0000)]
tests: Add a pre-signed-pull.sh test

I'm thinking about adding an implementation of ed25519 signatures
with OpenSSL (so we can ship the feature with Fedora CoreOS
without requiring an additional library) and in preparation for
that it's essential that we validate that libsodium-generated
signatures and OpenSSL-generated signatures are compatible.

I don't know if they are yet actually, but the goal of this
new test is to add a pre-generated repository with a signed
commit generated by libsodium.

This will catch if e.g. there's ever a change in libsodium,
or if existing libsodium implementation versions (e.g. the
one in Debian) might differ from what we ship here.

5 years agoMerge pull request #2094 from zpiotr/patch-1
OpenShift Merge Robot [Wed, 10 Jun 2020 18:57:14 +0000 (14:57 -0400)]
Merge pull request #2094 from zpiotr/patch-1

Changing link to file about contributing, in readme.

5 years agoREADME.md: Fix link to CONTRIBUTING.md
NEPO [Sat, 9 May 2020 10:23:50 +0000 (12:23 +0200)]
README.md: Fix link to CONTRIBUTING.md

We should link to the target and not the symlink.

5 years agoMerge pull request #2121 from cgwalters/arch-key
OpenShift Merge Robot [Tue, 9 Jun 2020 00:58:59 +0000 (02:58 +0200)]
Merge pull request #2121 from cgwalters/arch-key

core: Add OSTREE_COMMIT_META_KEY_ARCH

5 years agoMerge pull request #2126 from agners/improve-ostree-checkout-man
OpenShift Merge Robot [Mon, 8 Jun 2020 16:50:43 +0000 (12:50 -0400)]
Merge pull request #2126 from agners/improve-ostree-checkout-man

Improve checkout man page

5 years agoman/checkout: document missing options
Stefan Agner [Mon, 8 Jun 2020 13:42:38 +0000 (15:42 +0200)]
man/checkout: document missing options

Document missing options in the ostree checkout man page.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
5 years agocheckout: use FILE as option argument string for --skip-list
Stefan Agner [Mon, 8 Jun 2020 13:40:52 +0000 (15:40 +0200)]
checkout: use FILE as option argument string for --skip-list

Align with --from-file and use 'FILE' instead of 'PATH' as option
argument string. No functional change, this is only cosmetics.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
5 years agoman/checkout: fix short name option of --user-mode
Stefan Agner [Mon, 8 Jun 2020 13:17:58 +0000 (15:17 +0200)]
man/checkout: fix short name option of --user-mode

The short name option of --user-mode is -U.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
5 years agocore: Add OSTREE_COMMIT_META_KEY_ARCHITECTURE
Colin Walters [Wed, 3 Jun 2020 18:52:34 +0000 (18:52 +0000)]
core: Add OSTREE_COMMIT_META_KEY_ARCHITECTURE

Add a standard key for this.  We actually had a case in OpenShift
builds recently where a `ppc64le` image was pushed over an `x86_64`
one and this started failing at runtime with a not immediately
obvious error.

I'll probably end up changing rpm-ostree at least to use
the RPM architecture for this key and fail if it doesn't match
the booted value.

Possibly that should live in ostree but it would involve adding
architecture schema here, which gets into a big mess.  Let's
just standardize the key.

xref https://github.com/coreos/coreos-assembler/commit/e02ef2683d688607e7b5ad9ea6a0c00c50a682a5

5 years agoMerge pull request #2123 from cgwalters/all-your-base-have-arguments
OpenShift Merge Robot [Thu, 4 Jun 2020 21:34:52 +0000 (17:34 -0400)]
Merge pull request #2123 from cgwalters/all-your-base-have-arguments

commit: Note in help that --base takes an argument

5 years agocommit: Note in help that --base takes an argument
Colin Walters [Thu, 4 Jun 2020 21:06:52 +0000 (21:06 +0000)]
commit: Note in help that --base takes an argument

I was trying to use this in some testing work and was confused for a minute.

5 years agoMerge pull request #2122 from cgwalters/testrs-webserver
OpenShift Merge Robot [Thu, 4 Jun 2020 14:18:16 +0000 (16:18 +0200)]
Merge pull request #2122 from cgwalters/testrs-webserver

tests/rust: Extract a with_webserver_in helper wrapper

5 years agotests/rust: Extract a with_webserver_in helper wrapper
Colin Walters [Thu, 4 Jun 2020 12:24:16 +0000 (12:24 +0000)]
tests/rust: Extract a with_webserver_in helper wrapper

It's much cleaner if the Tokio stuff stays in `test.rs`, and
easier to write tests if the function is synchronous.

Prep for further tests.

5 years agoMerge pull request #2048 from cgwalters/rust-cmdspec-tests
OpenShift Merge Robot [Tue, 2 Jun 2020 18:31:30 +0000 (20:31 +0200)]
Merge pull request #2048 from cgwalters/rust-cmdspec-tests

Add new Rust-based tests

5 years agoMerge pull request #2119 from cgwalters/bumpsplit-rustfmt
OpenShift Merge Robot [Tue, 2 Jun 2020 16:22:48 +0000 (18:22 +0200)]
Merge pull request #2119 from cgwalters/bumpsplit-rustfmt

bupsplit: rustfmt(*)

5 years agobupsplit: rustfmt(*)
Colin Walters [Sun, 31 May 2020 17:58:44 +0000 (17:58 +0000)]
bupsplit: rustfmt(*)

Let's use the standard rustfmt style.
Also remove unused parenthesis which rust-analyzer was complaining
about.

Also add a `.gitignore`.

5 years agoMerge pull request #2118 from cgwalters/error-prefix-parsing
OpenShift Merge Robot [Fri, 29 May 2020 22:52:23 +0000 (18:52 -0400)]
Merge pull request #2118 from cgwalters/error-prefix-parsing

lib: Add error prefixing with specific object when loading

5 years agodeploy: support devicetree directory
Stefan Agner [Tue, 4 Feb 2020 12:39:27 +0000 (13:39 +0100)]
deploy: support devicetree directory

Add support for a devicetree directory at /usr/lib/modules/$kver/dtb/.
In ARM world a general purpose distribution often suppports multiple
boards with a single operating system. However, OSTree currently only
supports a single device tree, which does not allow to use the same
OSTree on different ARM machines. In this scenario typically the boot
loader selects the effective device tree.

This adds device tree directory support for the new boot artefact
location under /usr/lib/modules. If the file `devicetree` does not
exist, then the folder dtb will be checked. All devicetrees are hashed
into the deployment hash. This makes sure that even a single devicetree
change leads to a new deployment and hence can be rolled back.

The loader configuration has a new key "devicetreepath" which contains
the path where devicetrees are stored. This is also written to the
U-Boot variable "fdtdir". The boot loader is expected to use this path
to load a particular machines device tree from.

Closes: #1900
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
5 years agopull: Add error prefixing with specific object when parsing
Colin Walters [Fri, 29 May 2020 12:31:23 +0000 (12:31 +0000)]
pull: Add error prefixing with specific object when parsing

One OpenShift user saw this from rpm-ostree:
```
client(id:cli dbus:1.583 unit:machine-config-daemon-host.service uid:0) added; new total=1
Initiated txn UpdateDeployment for client(id:cli dbus:1.583 unit:machine-config-daemon-host.service uid:0): /org/projectatomic/rpmostree1/rhcos
Txn UpdateDeployment on /org/projectatomic/rpmostree1/rhcos failed: File header size 4294967295 exceeds size 0
```

which isn't very helpful.  Let's add some error
prefixing here which would at least tell us which
object was corrupted.

5 years agoMerge pull request #2117 from cgwalters/pull-signapi-default-explicit
OpenShift Merge Robot [Thu, 28 May 2020 17:52:48 +0000 (13:52 -0400)]
Merge pull request #2117 from cgwalters/pull-signapi-default-explicit

remote-add: Default to explicit sign-verify backends

5 years agoremote-add: Default to explicit sign-verify backends
Colin Walters [Thu, 28 May 2020 00:41:34 +0000 (00:41 +0000)]
remote-add: Default to explicit sign-verify backends

In https://github.com/ostreedev/ostree/pull/2092/commits/588f42e8c64183dfa1fbaa08cc92c46b691b23c4
we added a way to add keys for sign types when doing
a `remote add`, and in https://github.com/ostreedev/ostree/pull/2105
we extended `sign-verify` to support *limiting* to an explicit
set.

This PR changes the *default* for `remote add` to combine
the two - when providing an explicit `--sign-verify=type`,
we now limit the accepted types to only those.