5510 Commits

Author SHA1 Message Date
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
Alexander Larsson
8818f08fd1 oci-authenticator: Add helpers for sending responses 2019-12-12 12:16:53 +01:00
Alexander Larsson
5b58f7f7c2 Auth: Add flatpak_auth_request_emit_basic_auth() helper 2019-12-12 12:16:53 +01:00
Alexander Larsson
1ec4232fd5 CLI: Handle basic auth in transactions 2019-12-12 12:16:53 +01:00
Alexander Larsson
6e6c122cb2 Authenticators: Add BasicAuth operation and handle it in transaction
This adds a new way for authenticators to trigger interactive authentication
in the client for simple user/password dialogs. These are not recommended
to use as a webflow is often better. However, for OCI remotes that
use http basic auth this is useful and allows the CLI experience to work
with that.
2019-12-12 12:16:53 +01:00
Alexander Larsson
ba9d607a92 transaction: Rename active_webflow* to active_request*
We want to use this for other types of interactive requests too.
2019-12-12 12:16:53 +01:00
Alexander Larsson
2601b4cb1a utils: Add helpers for text prompts and password prompts 2019-12-12 12:16:53 +01:00
Alexander Larsson
d25f65e968 OCI: Add an authenticator for OCI remotes
Given a configuration like:

[remote "oci-remote"]
url=oci+http://some.server.com/api/v1/organization/foo?index=labels
xa.authenticator-name=org.flatpak.Authenticator.Oci
xa.default-token-type=1
xa.authenticator-options={"auth": <"a-token-here">}

I was able to install an app from an OCI remote that required a login
2019-12-12 12:16:53 +01:00
Alexander Larsson
461a592b8e OCI: Add flatpak_oci_registry_get_token() method
This tries to do a HEAD request to the repository and if that fails
with 401 uses the OCI mechanism to (given a basic auth token) generate
a token for the download.
2019-12-12 12:16:53 +01:00
Alexander Larsson
b1a8852895 authenticator: Pass xa.oci-registry-uri from summary to authenticator
OCI will need this.
2019-12-12 12:16:53 +01:00
Alexander Larsson
73ea55c638 authenticator: Add per-commit summary info
In the non-p2p case add the per-commit summary info into the autheticator
request. This rewrites the keys with a "summary." prefix.

In the p2p case this doesn't make sense, so nothing there.

This will be needed for the OCI case where we need the
xa.oci-repository key.
2019-12-12 12:16:53 +01:00
Alexander Larsson
4dba1c389b authenticator: Add more data to token request
This adds the remote uri, and the per-ref commit id, as well
as extensible per-ref and per-request dicts we can add stuff to
as needed.

These will be used for the OCI case.
2019-12-12 12:16:53 +01:00
Alexander Larsson
976c88cf56 oci: Pass down token into OCI http operations
This is needed for pull operations to actually use the token if one
is given by an authenticator.
2019-12-12 12:16:53 +01:00
Alexander Larsson
6563b83704 Add xa.default-token-type remote option
This allows us to specify on a remote that all refs need a token
2019-12-12 12:16:53 +01:00
Matthias Clasen
54b5e39a96 permission-set: Auto-apply wrapping for data
It is confusing if we explicitly have to specify
the <> GVariant wrapping with --data, but
flatpak permissions strips it when displaying the
result.

Make it transparent by auto-applying the wrapping,
so what you need to pass to --data is the same
as what flatpak permissions shows you.
2019-12-12 09:08:07 +01:00
Matthias Clasen
6f8dc02bca permissions: Don't skip 'empty' rows
Don't skip entries that have no permissions.

I was wasting some time to track down why my
permission-set --data command wasn't working,
when in reality, the permissions command was
just not listing the entries I was adding :(
2019-12-11 17:21:36 +01:00
Matthias Clasen
cdf3c33293 permission-set: Add an option to set data
This is useful for debugging permission store functionality
and will be more so when the openuri portal starts using
per-entry data.
2019-12-11 17:21:36 +01:00
Matthew Leeds
0ab953a2f9 enter: Fix invalid arg error message
I think this was mistakenly changed in commit 4718bcccf.
2019-12-10 14:36:58 +01:00
Matthew Leeds
e0e9996370 doc/flatpak-build-bundle: Add an example for the user installation 2019-12-10 14:36:58 +01:00
Matthias Clasen
e7f0e09783 Merge pull request #3282 from ptomato/various-fixes
Minor fixes
2019-12-06 18:03:12 -05:00
Philip Chimento
3e0a8f296a utils: Fix crash with FlatpakRepoTransaction autoptr cleanup
The autoptr cleanup function for FlatpakRepoTransaction depends on the
OstreeRepo object that it was created with still being alive. If the
repo object is also an autoptr then it can depend on the order the
variables were declared in whether this works or crashes.

That is obviously an evil trap, so have FlatpakRepoTransaction take a
ref on the repo object and release it in the autoptr cleanup function,
in case the repo's autoptr cleanup function runs before that of
FlatpakRepoTransaction.
2019-12-06 13:26:49 -08:00
Philip Chimento
cbf1cc0e1d transaction: Fix transfer annotation on get_status()
flatpak_transaction_progress_get_status() returns a pointer created by
g_strdup() but was annotated transfer-none. A quick grep shows that
calling code in the tests does treat it as transfer-full, so change the
annotation to match the actual behaviour.
2019-12-06 13:26:49 -08:00
Philip Chimento
923beec024 Change "update-frequency" to "update-interval"
An event happens more often as its frequency gets higher, so these
values were confusing me.

Rename the constants to include their unit (ms) as well, to avoid
confusion.

Anything that affects public API (such as
flatpak_transaction_progress_set_update_frequency()) or libostree's
options passed to ostree_repo_pull_with_options(), is left as is.
2019-12-06 13:26:49 -08:00
Philip Chimento
0da49895ab Alphabetize and standardize some header includes
Cleanup commit, doesn't change functionality, but we'll be adding some
files to these lists in a subsequent commit.
2019-12-06 13:26:49 -08:00
Matthias Clasen
9b3156fb49 Merge pull request #3280 from flatpak/dont-reset-gerror
installation: Don't re-use a GError pointer
2019-12-06 08:33:29 -05:00
Matthew Leeds
dded404c33 installation: Don't re-use a GError pointer
Here we're using the same GError pointer multiple times without clearing
it, which is an error. Use a local_error and print a debug message
instead, which matches the behavior in the loop above.
2019-12-05 17:00:59 -08:00
Matthias Clasen
44b6bc7f98 Merge pull request #3259 from uajain/uajain/cache-remote-state
installation: Cache remote states while querying installed refs
2019-12-04 11:48:47 -05:00
Umang Jain
4ab74d07c0 installation: Cache remote states while querying installed refs
Cache remote state so that each remote is only queried once
for getting its state.

Follow up from https://github.com/flatpak/flatpak/pull/3204#discussion_r349642324
2019-12-04 18:22:23 +05:30
Alexander Larsson
849f448732 portal: Allow the ALLOW_A11Y flag
This was accidentally left out of the FLAGS_ALL define so it was denied.
2019-12-04 13:41:20 +01:00
Matthias Clasen
2166913eb1 Update flatpak ps docs
Mention the new columns.
2019-12-04 13:33:52 +01:00
Matthias Clasen
5ec73b9a9a ps: Allow showing compositor info
Show active and background state, based on information obtained
from the background portal backend about which apps have (active) windows.

This currently tries all known portal backends in turn. It might
be nicer to have a portal frontend api to query this, or to find
out which backend to talk to.
2019-12-04 13:33:52 +01:00
Matthias Clasen
653fce251f cli: Don't use \r in plain output
These show up as ^M in test logs, and that is irritating.
Just use \n when producing plain output.

Closes: https://github.com/flatpak/flatpak/issues/3226
2019-12-04 13:30:13 +01:00
Matthias Clasen
2dc0554f10 Merge pull request #3277 from mwleeds/minor-doc-fixes
common: Minor doc fixes
2019-12-03 09:04:19 -05:00