Commit Graph

3298 Commits

Author SHA1 Message Date
Alexander Larsson
35aef1fa2c system-helper: Fix crashes in progress callbacks when pulling
I got weird crashes in the local repo pull case where the default
progress reporting callback tried to get some unset key on
the progress. We don't want any progress reporting anyway, so fix
this by dropping all progress reporting.

Closes: #1243
Approved by: alexlarsson
2017-12-14 08:13:33 +00:00
Alexander Larsson
5eca1836cb Fix clang warning
I got this:
app/flatpak-main.c:364:20: warning: variable 'dir' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
          else if (opt_installations != NULL)
                   ^~~~~~~~~~~~~~~~~~~~~~~~~
app/flatpak-main.c:374:34: note: uninitialized use occurs here
          g_ptr_array_add (dirs, dir);
                                 ^~~
app/flatpak-main.c:364:16: note: remove the 'if' if its condition is always true
          else if (opt_installations != NULL)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
app/flatpak-main.c:358:26: note: initialize the variable 'dir' to silence this warning
          FlatpakDir *dir;
                         ^
                          = NULL

However, that is never hit, its just the compiler being confuses, so we add a
g_assert_not_reached() in the last else case.

Reachability analysis:

If opt_installations is != NULL we will at the very least take the
last if, and if opt_installations == NULL, we will take the first one
if !opt_user, and the second if opt_user.

Closes: #1251
Approved by: alexlarsson
2017-12-14 08:05:57 +00:00
Alexander Larsson
d7bb6d226d remote-info: Properly display an empty history
We were lacking a newline at the end in case the history was
empty.

Closes: #1250
Approved by: mwleeds
2017-12-14 07:01:20 +00:00
Piotr Drąg
06a0967d44 Update POTFILES.in
Closes: #1252
Approved by: mwleeds
2017-12-14 06:57:58 +00:00
Alexander Larsson
e769cdd489 update: Update apps from both system and user installations
Unless you manually specify an installation it looks for updates
in all the standard installations.

This fixes https://github.com/flatpak/flatpak/issues/282

Closes: #1246
Approved by: alexlarsson
2017-12-13 10:03:47 +00:00
Alexander Larsson
13db7f0474 common: Add flatpak_dir_has_remote()
Closes: #1246
Approved by: alexlarsson
2017-12-13 10:03:47 +00:00
Alexander Larsson
1669d9d0a9 build-export: There is no need for the metadata file to be executable
Using 644 instead of 744 matches how flatpak-builder initially creates
this, and makes more sense in general.

Closes: #1239
Approved by: mwleeds
2017-12-13 08:51:07 +00:00
Matthew Leeds
cf732bf901 remote-modify: Remove obsolete code
Now that flatpak_resolve_duplicate_remotes checks if a remote exists, we
don't need to use ostree_repo_remote_get_url to do so. This commit
doesn't change the behavior for remotes with empty URLs (which means
they're disabled), because the empty string is an allowed value as far
as OSTree is concerned.

Closes: #1247
Approved by: alexlarsson
2017-12-13 07:38:28 +00:00
Matthew Leeds
33aaffa328 remotes: Use STANDARD_DIRS in complete function
We should use the same flags for the flatpak_option_context_parse() call
in flatpak_complete_list_remotes as we do in
flatpak_builtin_list_remotes, so the options are parsed correctly.

Closes: #1205
Approved by: alexlarsson
2017-12-12 15:26:41 +00:00
Matthew Leeds
b3828eea46 app: Make remote commands smarter wrt installations
Currently "flatpak remotes" shows remotes across user and system
installations, but other remote commands (remote-delete, remote-modify,
remote-ls, remote-info) only work on one installation: the system one
unless overridden using --user or --installation. This commit changes
each command to infer the correct installation by checking which has
the specified remote. In case multiple installations have remotes by
the same name, the user is prompted to decide which to use.

This commit also adds unit tests and updates the man pages for the
aforementioned commands.

Fixes https://github.com/flatpak/flatpak/issues/787

Closes: #1205
Approved by: alexlarsson
2017-12-12 15:26:41 +00:00
Matthew Leeds
8a59927fde app: Move installation management to flatpak-main.c
Some builtin flatpak commands work on a single installation, and others
work on multiple installations (such as the remotes command that lists
both system and user remotes). Currently flatpak_option_context_parse()
only supports returning one installation to its caller, and any commands
that want to support multiple installations have to implement that
themselves which leads to a lot of code duplication.

This commit changes flatpak_option_context_parse() to take three new
flags:

    * FLATPAK_BUILTIN_FLAG_ONE_DIR maintains the old behavior by
returning one installation (i.e. user if --user was passed, system if
--system, etc.).

    * FLATPAK_BUILTIN_FLAG_STANDARD_DIRS will get all the installations
specified by the options, or the user and system ones if none were.

    * FLATPAK_BUILTIN_FLAG_ALL_DIRS includes non-default system
installations along with the user and system ones if none were
specified.

These flags also affect what options are parsed and whether the
directories are ensured to exist, so it makes sense in some
circumstances for callers to pass a NULL out_dirs even when not using
FLATPAK_BUILTIN_FLAG_NO_DIR.

This commit also changes all the callers of
flatpak_option_context_parse() so they maintain their behavior. The only
functional change introduced by this is that using --installation
multiple times for commands that only support one now leads to an
error emitted by flatpak rather than by g_option_context_parse().

A follow-up commit will use this refactoring to make many commands
behave more intelligently in determining which installation to use.

Closes: #1205
Approved by: alexlarsson
2017-12-12 15:26:41 +00:00
Alexander Larsson
5815d5e92c update: Don't update appstream for non-enumerable remotes
That doesn't make any sense to do and is likely to get you
errors.

Closes: #1240
Approved by: alexlarsson
2017-12-12 14:27:13 +00:00
Matthew Leeds
27fcf108fd doc: Add missing commands to flatpak-docs.xml.in
This adds some recently added commands to flatpak-docs.xml.in so they
will be included in the generated HTML command reference.
2017-12-11 16:19:12 +01:00
Matthew Leeds
32161146a0 doc: Sort flatpak-docs includes alphabetically
Sort the list of manpages we're including in flatpak-docs.xml.in, to
make it easier to maintain.
2017-12-11 16:19:12 +01:00
Matthew Leeds
bae681d0a9 app: Fix typo in error message
Fixes https://github.com/flatpak/flatpak/issues/1225
2017-12-11 16:18:26 +01:00
hanklank
4975b63873 Updated Swedish Translation (#1221)
* Updated Swedish Translation
2017-12-06 11:11:34 +01:00
Alexander Larsson
81f4802434 Fix kde reading kdeglobals
We regressed on supporting --filesystem=xdg-config/kdeglobals:ro which
would create a "kdeglobals" in the apps own XDG_CONFIG_DIR which has
content from the host one. This broke in
f1df5cb1d9
where we added a symlink resolve, but that breaks when the target file
doesn't exist.

It seems like all callers rely on just the final element of the destination
path being created, so lets just resolve symlinks on the dir part.

Closes: #1229
Approved by: alexlarsson
2017-12-06 10:08:07 +00:00
Kukuh Syafaat
aed7c6d68e Update Indonesian translation
Closes: #1219
Approved by: mwleeds
2017-11-30 18:09:07 +00:00
Matthew Leeds
bc2534fbd5 common: Fix memory leak in flatpak_number_prompt
Closes: #1206
Approved by: alexlarsson
2017-11-28 14:35:46 +00:00
Matthew Leeds
4f1af61d06 docs: Document remote-ls without REMOTE
The "flatpak remote-ls" command can be used without specifying a remote,
so change the man page and --help output to reflect that.

Closes: #1210
Approved by: alexlarsson
2017-11-27 08:19:51 +00:00
AsciiWolf
fd6d7128cd Update Czech translation
Closes: #1203
Approved by: mwleeds
2017-11-26 18:52:06 +00:00
Matthew Leeds
8ab3394a9b config: Fix comment in flatpak_complete_config 2017-11-25 15:47:03 -08:00
Matthew Leeds
f651d40b06 remotes: Delete rogue comment 2017-11-24 18:20:25 -08:00
Patrick Griffis
50fbafa202 search: Try to support appstream-glib as old as 0.5.10 (Ubuntu LTS)
This disables some less than essential features and re-implements
the rest.

Closes: #1199
Approved by: alexlarsson
2017-11-24 15:44:11 +00:00
Alexander Larsson
8fbd442c9d Update pofiles 0.10.1 2017-11-24 14:44:46 +01:00
Alexander Larsson
b6a7655ea8 Update version to 0.10.1 2017-11-24 14:19:40 +01:00
Alexander Larsson
87b14c302c Update NEWS for release 2017-11-24 14:19:02 +01:00
Patrick Griffis
3b78dc66c3 Add "have-intel-gpu" check, useful for VAAPI extension
Closes: #1198
Approved by: alexlarsson
2017-11-24 11:17:47 +00:00
Alexander Larsson
6bb0196ffd Make flatpak remote-add --system work with an empty /var/lib/flatpak
This means flatpak can bootstrap itself from an empty /var on stateless
systems, which fixes https://github.com/flatpak/flatpak/issues/113, at
least for the CLI case.

Closes: #1195
Approved by: alexlarsson
2017-11-24 10:54:25 +00:00
Alexander Larsson
55bc8c904f main: Add new flag FLATPAK_BUILTIN_FLAG_OPTIONAL_REPO
This replaces the old unused FLATPAK_BUILTIN_FLAG_NO_REPO with a
version that tries to init the repo, but doesn't fail otherwise.

Also, we drop the explicit flatpak_dir_ensure_path() call, because
flatpak_dir_ensure_repo() calls that anyway.

Closes: #1195
Approved by: alexlarsson
2017-11-24 10:54:25 +00:00
Alexander Larsson
742913856e common: Add flatpak_dir_maybe_ensure_repo
This tries to ensure that FlatpakDir->repo is set, but if the
repo doesn't exists and we're unable to create it that is fine
and we continue running with repo == NULL.

This is useful because there are only a few operations that really
are useful/make sense with no repo set up, and we can ensure these
handle this well.

In particular, we want to allow flatpak remote-add using the
system-helper to work even if /var/lib/flatpak doesn't exist, so that
we can bootstrap a working flathub from a fresh /var.

Closes: #1195
Approved by: alexlarsson
2017-11-24 10:54:25 +00:00
Alexander Larsson
2c41aa5203 Use systemwide config also when running as root
We want to look for remotes in /etc/flatpak also when not
using the system helper

Closes: #1195
Approved by: alexlarsson
2017-11-24 10:54:25 +00:00
Alexander Larsson
9eedc60cd2 run: Expose /usr and /etc if --filesystem=host
Some apps, such as gnome-builder wants to access data from the
host, for instance in builders case the system includes. If you
have full filesystem access it is not really a loss of security
to also have /ect and /usr access, but for technical reasons
we can't expose them in the normal locations. However, we
can expose them in /run/host, so do that.

Closes: #1193
Approved by: alexlarsson
2017-11-24 10:47:36 +00:00
Alexander Larsson
7493b9f6de document-portal: Fix exports of files in runtime
The check for /usr prefixed checked against the wrong variable.

Closes: #1193
Approved by: alexlarsson
2017-11-24 10:47:36 +00:00
Alexander Larsson
87b6aeec16 info: Add fields to match remote-info
This adds the Date, Subject and Parent fields that are shown
by remote-info so these match for the fields where it makes sense.

Closes: #1192
Approved by: alexlarsson
2017-11-24 07:54:26 +00:00
Robert McQueen
6475f7663c session-helper: refactor creation and updating of real path monitors
I think this enhances readability significantly, reduces code duplication
and allows you to follow the rationale behind why monitors are being
added/removed a lot more clearly than the previous nested/ad-hoc logic in
file_changed. Also adds debug printouts in the case that file monitors
are not created successfully.

Closes: #1194
Approved by: pwithnall
2017-11-23 14:47:12 +00:00
Robert McQueen
46fa8492ac session-helper: avoid theoretical GFile leaks with g_autoptr
Closes: #1194
Approved by: pwithnall
2017-11-23 14:47:12 +00:00
Robert McQueen
bdf0f8c554 session-helper: add comment documenting rationale for two monitors
Closes: #1194
Approved by: pwithnall
2017-11-23 14:47:12 +00:00
Robert McQueen
2b516e5df1 session-helper: remove unused file_monitor_hash
The monitor data structures are never replaced in the hash table, so
it's not necessary. Keep MonitorData pointers in scope in main() and
set up g_autoptr instead.

Closes: #1194
Approved by: pwithnall
2017-11-23 14:47:12 +00:00
Robert McQueen
dc6a880238 session-helper: monitor canonical files for changes
Closes: #1190
Approved by: alexlarsson
2017-11-23 10:39:44 +00:00
Robert McQueen
c59f41a5f4 session-helper: store file monitor & source in a hash table
Closes: #1190
Approved by: alexlarsson
2017-11-23 10:39:44 +00:00
Robert McQueen
b31773b097 session-helper: remove un-needed file monitor actions on CREATED
CHANGES_DONE always fires after CREATED.

Closes: #1190
Approved by: alexlarsson
2017-11-23 10:39:44 +00:00
Matthew Leeds
cb57c599dd .gitignore: Ignore unit test artifacts
Running "make check" creates all these artifacts that we want git to
ignore.

Closes: #1191
Approved by: alexlarsson
2017-11-23 10:30:12 +00:00
Matthew Leeds
3b434a9673 search: Log access of flatpak directory
This changes the search command to print debug output when accessing a
flatpak directory, to match the behavior of other commands.

Closes: #1186
Approved by: TingPing
2017-11-22 06:44:56 +00:00
Matthew Leeds
d9061fa276 search: Support --installation=NAME option
The other commands that support --user and --system allow you to specify
an installation using --installation, so this makes search consistent
with that.

Closes: #1185
Approved by: TingPing
2017-11-22 06:36:37 +00:00
Piotr Drąg
a9e2387a95 Update POTFILES.in
Closes: #1183
Approved by: mwleeds
2017-11-22 05:01:28 +00:00
Matthew Leeds
b3cb71222b remote-info: Fix help string
flatpak remote-info works for available apps and runtimes. They don't
have to be installed.

Closes: #1184
Approved by: mwleeds
2017-11-21 17:34:34 +00:00
Matthew Leeds
817da55d38 docs: Fix grammar in remote-info man page
Closes: #1184
Approved by: mwleeds
2017-11-21 17:34:34 +00:00
Alexander Larsson
0a9ae464f6 Add remote-info command
This shows information about a ref in a remote. Of particular interest
is the --log option which gives you a history which can be used
with update --commit=XXX to roll back an update.

Closes: #1174
Approved by: alexlarsson
2017-11-21 11:16:06 +00:00
Alexander Larsson
a026da8027 Add flatpak_dir_fetch_remote_commit
Closes: #1174
Approved by: alexlarsson
2017-11-21 11:16:06 +00:00