Commit Graph

5542 Commits

Author SHA1 Message Date
Alexander Larsson
4c3e59cd12 utils: Fix chaining of progress
With the latest ostree that enables the chaining of progress the
testsuite broke because we were not getting changed events. Looking
into this the reason seems to be that when we run the
ostree_async_progress_finish() on the chained progress it is marked
as dead, which causes ostree_async_progress_copy_state() to not copy
any data when called from handle_chained_progress().

The fix is to copy the content manually before calling the finish().

Also, the entire callback chaining system seems wildly
overcomplicated, so I simplified it by relying on the existing change
notification of OstreeAsyncProgress.
2019-12-18 09:46:39 +01:00
Alexander Larsson
85a53947b3 man: Document the authentcator options
This adds --authenticator-name and --authenticator-opion to remote-add
and remote-modify docs.
2019-12-17 15:25:42 +01:00
Alexander Larsson
ca343957fc Update CLI to new authenticator options format
We're using a per-key format now, so switch from
  --authenticator-options=blob
to
  --authenticator-option=key=value

In both remote-modify and remote-add
2019-12-17 15:25:42 +01:00
Alexander Larsson
a9888574ec authenticator: Empty authenticator name means none 2019-12-17 15:25:42 +01:00
Alexander Larsson
ecf4c3630a authenticator: Set the xa.authenticator-name-is-set key
This is set when the option is explicitly set and should not be
auto-overridden.
2019-12-17 15:25:42 +01:00
Alexander Larsson
65f2bdf840 oci-authenticator: Remove leftover TODO comment
We *do* handle dying peers now, so remove TODO about this.
2019-12-17 15:00:23 +01:00
Alexander Larsson
24145b0845 oci-authenticator: Reply to the close message
The client will be waiting for the response, so make sure we send it!
2019-12-17 15:00:23 +01:00
Simon McVittie
777d80e2e4 testlibrary: Fix some leaks in the test itself
Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-12-17 15:00:07 +01:00
Alexander Larsson
7ecc9fa12c oci-authenticator: Skip interaction of no-interaction is set 2019-12-17 14:59:43 +01:00
Alexander Larsson
4106fc4677 authenticators: For no-interaction dirs, send no-interaction flag
For apps that run in the backgroun without interaction, pass this info
to the authenticator.

This can be used to avoid sending unnecessary webflow or basic auth
request, but those were already silenced by FlatpakTransaction. However
this also allows the authenticator to avoid doing direct, native user
interaction which was otherwise not avoidable.
2019-12-17 14:59:43 +01:00
Simon McVittie
10ee004d77 dir: Don't leak result of flatpak_get_current_locale_langs()
Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-12-17 14:59:24 +01:00
Simon McVittie
b72cd803e0 flatpak.supp: Silence GFile leak in flatpak_get_user_base_dir_location()
This is deliberately allocated once per process and never freed.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-12-17 14:58:15 +01:00
Alexander Larsson
0b732ba111 dir: Fix leak in flatpak_remote_state_lookup_cache()
For some reason we're assigning refdata the same thing twice, leaking
the first copy.
2019-12-17 14:55:13 +01:00
Alexander Larsson
24558eec47 dir: Fix leak in flatpak_dir_p2p_state_free
We forgot to free the results_refs member
2019-12-17 14:55:13 +01:00
Alexander Larsson
f983ed616b dir: Actually free the main memory chunk in flatpak_dir_p2p_state_free 2019-12-17 14:55:13 +01:00
Alexander Larsson
d7474daaf2 dir: Fix leak
When recreating self->repo, also clear self->cache_dir, otherwise it was
leaking when we replaced it.
2019-12-17 14:55:13 +01:00
Alexander Larsson
e645424e69 Cli-transaction: Fix leak
We didn't free the table printer used.
2019-12-17 14:55:13 +01:00
Alexander Larsson
bc1edce45a tests: Add new glib suppression
Seems there is a new GPrivate method in town!
2019-12-17 14:55:13 +01:00
Alexander Larsson
510fbce093 Remove extraneous ostree_async_progress_finish()
These should only be called at the leaf level, because the first
time its called no more change events will ever be sent on that
progress, which is not right possibly in the middle of an operation.
2019-12-17 14:55:13 +01:00
Alexander Larsson
c322cbdbb6 Add and use OstreeAsyncProgressFinish helper
This is a g_autoptr version of OstreeAsyncProgress that also
calls ostree_async_progress_finish() before being freed.

This should be used in all "leaf" functions that creates an asyncprogress
to avoid leaking any idle change idle sources. Using a auto* means
some code can be cleaned up to avoid goto out style handling for this.

Also, this adds a missing finish() in
_flatpak_dir_fetch_remote_state_metadata_branch().
2019-12-17 14:55:13 +01:00
Alexander Larsson
b3ab31e18a FlatpakAsyncProgressChained: Don't leak chained progress
If we're using a chained progress, it will be unchained
in the destroy notifier. However, it was newly constructed so we
need to also unref it or we'll leak it.

This also makes some minor cleanups:

1) Centralize version checks to one place and replace users
   with #ifdef FLATPAK_DO_CHAIN_PROGRESS which makes it
   easier to read and to test the fallback.

2) Make flatpak_progress_chain return a FlatpakAsyncProgressChained
   to make it clear the two needs to be paired.
2019-12-17 14:55:13 +01:00
Alexander Larsson
dd6df7589e utils: Don't leak GMainContextPopDefault contextes
We're creating a new one, making it the default, and on destroy
we pop it, but since we're not also destroying it we're leaking the
entire context!
2019-12-17 14:55:13 +01:00
Alexander Larsson
93a7718678 test: Fix leak of OstreeRepo cachedir fd
It turns out ostree_repo_open() overwrites custom cachedir_fd we've
set for the system using installation in case the object dir is
writable. Normally this is not a problem, because it is not writable,
but in the testsuite is *is*, which means the initial cachedir fd is
leaked, as well as using the wrong dir for summary caches during the
tests.

We work around this by setting the cache_dir after a successful
ostree_repo_open().

This fixes #3303
2019-12-17 14:55:13 +01:00
Alexander Larsson
7fedf3578f OCI: Only use labels, never annotations
This is a slightly incompatible change, as we now only support
oci images generated with (what was before) build-export --oci-use-labels.
However, there are not a lot of OCI implementations in the wild, and
we can modify the ones in use to ensure there are labels (and
annotations if needed for older flatpak clients).

This also removes the --oci-use-label option from build-bundle --oci as
this is now the default.
2019-12-16 09:23:49 +01:00
Thiago Jung Bauermann
c3bd7bc855 Fix typo in /etc/timezone filename
flatpak_get_timezone () tries to access /etc/timezone if /etc/localtime
isn't a valid symlink, but gets the name wrong. Fix it.

Found by code inspection.
2019-12-16 09:07:23 +01:00
Matthew Leeds
f4337b9a4e Merge pull request #3298 from alexlarsson/authenticator-collection-id
Pass collection-id (if any) to authenticator when requesting tokens
2019-12-13 14:16:09 -08:00
Jan Grulich
a61f61870e Add support for CUPS socket 2019-12-13 17:56:22 +01:00
Alexander Larsson
69fae3b380 Work around github repo issue
See:
https://github.community/t5/GitHub-Actions/ubuntu-latest-Apt-repository-list-issues/m-p/41163/highlight/true#M4513
2019-12-13 16:28:37 +01:00
AsciiWolf
b6f9c8c235 Update Czech translation 2019-12-13 15:41:37 +01:00
Alexander Larsson
88c4c403bb Work around github repo issue
See:
https://github.community/t5/GitHub-Actions/ubuntu-latest-Apt-repository-list-issues/m-p/41163/highlight/true#M4513
2019-12-13 15:25:16 +01:00
Alexander Larsson
260c6f713d tests: Test passing of arguments to authenticator 2019-12-13 15:08:29 +01:00
Alexander Larsson
9f1582b09b Authenticator: Pass collection-id with the request 2019-12-13 15:07:58 +01:00
Alexander Larsson
9cc1b41d9d Update pofiles for release 1.5.2 2019-12-13 11:05:31 +01:00
Alexander Larsson
ba6daa08c9 Update NEWS for 1.5.2 2019-12-13 10:24:58 +01:00
Alexander Larsson
b9a3f06c4a Bump version to 1.5.2 2019-12-13 10:24:49 +01:00
Matthias Clasen
f5b6365f40 Merge pull request #3295 from matthiasclasen/permission-set-wrap
doc: Add an example for permission-set
2019-12-12 14:31:17 -05:00
Matthias Clasen
1957d4473e doc: Add an example for permission-set
This shows how --data formatting works on the commandline.
2019-12-12 12:45:53 -05:00
Alexander Larsson
9a4f5084ad run: (re-)allow forwarding fds into flatpak run
It turns out d91660fe2a accidentally
broke the inheritance of non-stdin/out file descriptor into children
of "flatpak run" which broke the fd passing in the flatpak spawn portal.

This reverts that, allowing all fds not specifically marked as CLOEXEC
by other means to be inherited into the child.

Fortunately the regression was not in any stable release.
2019-12-12 17:02:02 +01:00
Alexander Larsson
3666eb0950 portal: Make sure we inherit the passed thought fds in Spawn()
In the start of child_setup_func we set CLOEXEC on everything > 3, so
we need to undo this for the things we actually want to pass in.
2019-12-12 17:02:02 +01:00
Alexander Larsson
e08cee0e82 authenticator: Use g_app_info_launch_default_for_uri() to launch browser
This way we get the system default. We still respect BROWSER if set
which is useful for e.g. the tests or scripts.
2019-12-12 14:27:59 +01:00
Alexander Larsson
4902acbebf authenticator: Change how authenticator options are stored
We used to store all options as a gvariant format string like so:

 xa.authenticator-options={"key1": <"a string value">, "key2": <"foo">}

But nobody really knows how to write these things, so now we
have instead multiple options with a common prefix that
get collected like so:

 xa.authenticator-options.key1="a string value"
 xa.authenticator-options.key2="foo"

This means all options are strings, but most options are, and
if not you can just parse them.
2019-12-12 14:27:59 +01:00
Alexander Larsson
bdf734edb2 utils: flatpak_dir_list_remote_config_keys() helper
Lists all the config key for a specified remote (if any)
2019-12-12 14:27:59 +01:00
Alexander Larsson
c6aa7f56a1 password prompt: Emit newline (as we stole it during input) 2019-12-12 14:27:59 +01:00
Alexander Larsson
474b0573e3 authentication: Remove accidental leftover debug spew 2019-12-12 14:27:59 +01:00
Alexander Larsson
38c86bdf0f Authenticator: Add extra a{sv} args for future use
These are not used atm, but make the APIs future proof.
2019-12-12 14:27:59 +01:00
Alexander Larsson
134e01f606 OCI: Extract token-type and eol metadata into generated summary 2019-12-12 12:16:53 +01:00
Alexander Larsson
05067a42a4 Authenticator: Update docs for changes 2019-12-12 12:16:53 +01:00
Alexander Larsson
328b793c5a oci authenticator: Lookup up auth tokens in predefined files
We look in these, in this order:
 ~/.config/flatpak/oci-auth.json
 /etc/flatpak/oci-auth.json
 /run/user/$uid/containers/auth.json
 /run/containers/$uid/auth.json
 ~/.docker/config.json

The first two are flatpak specific, and the others are what
skopeo and docker use.
2019-12-12 12:16:53 +01:00
Alexander Larsson
39ee9bc594 oci authenticator: Pass registry url as realm 2019-12-12 12:16:53 +01:00
Alexander Larsson
c56e1c4646 oci-authenticator: Use basic authentication to log in if no other auth 2019-12-12 12:16:53 +01:00