370 Commits

Author SHA1 Message Date
Alexander Larsson
f8e405d212 install --from: Re-read config after adding origin remote 2016-10-25 10:50:47 +02:00
Mario Sanchez Prada
dbaaf65d3b Use g_key_file_load_from_data() instead of g_key_file_load_from_bytes()
The g_key_file_load_from_bytes() function was added in GLib 2.50, and that
is too high as flatpak wants to support centos7/rhel7, which is now in 2.42.
2016-10-24 11:45:57 +01:00
Alexander Larsson
509a358ba3 Make looks_like_branch better
Fixes https://github.com/flatpak/flatpak/issues/359
2016-10-21 21:42:37 +02:00
Alexander Larsson
c3bea6c8fc remote-add: Assume --from if location ends with .flatpakrepo
If you try to set the flatpakrepo uri as a repo uri for a new remote
things get really confused, so lets try to do the right thing anyway.
2016-10-21 12:46:38 +02:00
Alexander Larsson
25e39dfddd build-finish: Add --extra-data= argument 2016-10-21 08:57:42 +02:00
Alexander Larsson
906b3b5871 dir: When pulling/deploying an app, support xa.extra-data-sources
If the downloaded app has a "xa.extra-data-sources" property in
the commit, then we download these as part of the pull operation
and store the result in the commitmeta object in the repo.

Then during deploy we look at the xa.extra-data-sources properties
again and extract them from the commitmeta into /app/extra
in the app, and afterwards we run /app/bin/apply_extra in a minimal
sandbox that has read-write access to /app/extra, but nowhere else.

There are some complexities:

We need to re-verify when extracting, because the commitmeta is not
really signed, so we could have picked up random stuff there
from the upstream repo, or from an attacker misusing the system-helper
local install codepath.

When using the system-helper the pull will fail if the commitmeta
is to large, so we have some code in this case to manually transfer
the larger commitmeta on the side to the local-pull code.
2016-10-21 08:57:42 +02:00
Alexander Larsson
f3c71cfbf8 build-export: Read Extra Data section and put in commit metadata
If you put a section like:

[Extra Data]
uri=https://sdk.gnome.org/gno%6De.flatpakrepo
checksum=ace1b504d32eefdf05b53044e6f785fe7886cc5657b5df034c3b9ac8e3aeb70c
size=1335
uri2=http://sdk.gnome.org/gedit.flatpakref
checksum2=d8baa109fb5fdcfe90379f3e93c5ab29f11772b42bf569bb3481e4aff489b0dd
size2=1472
name2=renamed.flatpakref

Then this information will be put in the commit object and the
later will be used when downloading the app.
2016-10-21 08:57:42 +02:00
Alexander Larsson
daa2d79fd1 transaction: Fix error reportin in case an update fails 2016-10-20 14:26:38 +02:00
Alexander Larsson
9a45517536 update: Make --commit=ID actually download that commit
Before it would fail if the commit wasn't accidentally locally.
2016-10-20 09:15:10 +02:00
Alexander Larsson
1ea064c9b0 update: Add back support for --commit= 2016-10-19 18:12:50 +02:00
Alexander Larsson
f117985e37 remote-add: Make --from a boolean arg instead of a string arg
So before you did:
 flatpak --user remote-add --from=https://sdk.gnome.org/gnome.flatpakrepo gnome
Now you do:
 flatpak --user remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo

This is a somewhat break, but this means we handle --from the same in
remote-add and install, which seems important.
2016-10-19 18:00:12 +02:00
Alexander Larsson
4c037b5381 install: Support http uris in install --from
This means you can do this:
     flatpak --user install --from https://sdk.gnome.org/gedit.flatpakref
2016-10-19 17:50:39 +02:00
Alexander Larsson
f9c1cc40bb run: Support running a runtime directly
This means you can do:
  flatpak run org.freedesktop.Sdk
to get a shell in a sandbox with that runtime, but with an
empty /app.

You can also specify a particular runtime branch and command like so:
  flatpak run --command=ls org.gnome.Platform//3.22 /
2016-10-19 17:33:00 +02:00
Alexander Larsson
68a0e7f8f5 build-finish: Fix usage output
It was using the build-bundle output instead.
2016-10-19 12:53:16 +02:00
Alexander Larsson
c70c453eab remote-add: Support installing .flatpakrepo files from http uri 2016-10-19 12:41:08 +02:00
Alexander Larsson
0999def431 uninstall: Only try to uninstall related apps that are installed 2016-10-19 12:41:08 +02:00
Alexander Larsson
28261d839e update/install: Install/Update runtime dependencies as needed
When an application requires a runtime that is not installed, search
for it and prompt for permissions to install it. Also, update required
runtimes when the app is being updated.
2016-10-19 12:40:49 +02:00
Alexander Larsson
b2af78fb6f remotes: Add no-use-for-deps property
If this is set for a remote we will never automatically look for
dependencies in it. This makes dependency search faster, as we
don't need to search in app-only remotes.
2016-10-19 11:34:22 +02:00
Mario Sanchez Prada
5c1bf1e3d9 Only override the default branch, if needed, after splitting a ref
Otherwise we'll be always trying to force the installation from the
default branch for a repo, regardless of whether the app being
installed is available for that branch.
2016-10-18 11:09:02 +01:00
Alexander Larsson
6345f0bae7 build-finish: Support exporting more than hicolor icons
We really want apps to be able to export e.g. HighContrast icons too.
2016-10-18 10:14:10 +02:00
Alexander Larsson
e8cf8be8ab install: Check that runtime is installed before installing app 2016-10-17 17:54:35 +02:00
Alexander Larsson
9bb630d674 update: Don't reorder arguments 2016-10-17 17:33:10 +02:00
Alexander Larsson
b2cc643f2c install: Actually handle more than two REFs 2016-10-17 17:28:28 +02:00
Alexander Larsson
d248f0887b install: Don't print error if related refs were already installed 2016-10-17 17:28:09 +02:00
Alexander Larsson
8df193bc37 update: Fix completion of options 2016-10-17 17:27:34 +02:00
Alexander Larsson
ee0ffbcb35 uninstall: Support multiple REFs 2016-10-17 17:27:16 +02:00
Alexander Larsson
5b11c03adc install: Don't override default_branch specified on commandline
Fixes issue pointed out in review at:
 https://github.com/flatpak/flatpak/pull/345
2016-10-17 12:34:32 +02:00
Alexander Larsson
0abdcd3f03 Merge pull request #345 from mariospr/issue221
Add server-side support for default-branch for remote repositories
2016-10-17 12:31:07 +02:00
Alexander Larsson
d628350794 build-init: Support --base to create an application based on another 2016-10-17 11:37:19 +02:00
Alexander Larsson
c1cc0b362a build-init: Factor out helper function copy_extensions() 2016-10-17 11:04:18 +02:00
Mario Sanchez Prada
2cbb1da935 Added new parameter for the remote-modify built-in command: --update
This new command relies on flatpak_dir_update_remote_configuration()
and allows updating the local configuration for the remotes based on
the extra metadata present in the OSTree repo's summary file.

This parameter can still be combined with --title and --default-branch,
which take precedence when combined with --update.
2016-10-14 16:42:17 +01:00
Mario Sanchez Prada
44dcc77a18 Check and use the remote's default branch when installing flatpaks
If no branch is explicitly stated when installing a flatpak, and several
options (branches) are available for the same ID, we now check the remote's
default branch and use that one, if it's defined and available for the app.

https://github.com/flatpak/flatpak/issues/221
2016-10-14 16:42:17 +01:00
Mario Sanchez Prada
81d1bef4a0 Support --default-branch when updating the repository summary file
Add support for this flag in build-update-repo, so that we can define
a default branch in the server side, to be picked by the clients.

https://github.com/flatpak/flatpak/issues/221
2016-10-14 16:23:15 +01:00
Mario Sanchez Prada
c492def9a7 Fetch the default branch when adding a remote from its repo's summary file
Just like we do with the title, fetch the default-branch from the
repository's summary file and use that information when adding a
remote reference from the command line.

https://github.com/flatpak/flatpak/issues/221
2016-10-14 16:23:15 +01:00
Mario Sanchez Prada
54598331cc Wait until a remote has been added before incorporating its extra metadata
We can't fetch the extra metadata from a repository's summary file before
having added it locally, since ostree_repo_remote_fetch_summary() will
fetch data by remote's name, and for that it needs to be added first.
2016-10-14 16:23:15 +01:00
Alexander Larsson
70e9b2c737 update: Support specifying multiple arguments 2016-10-14 16:39:10 +02:00
Alexander Larsson
7018717ce2 install: Support installing multiple apps at the same time
Instead of using "NAME [BRANCH]" as the command list we now
support REF..., where each REF can be partial. This is easiest
explained by examples. Here are some valid refs:

  org.test.App - only app id
  app/org.test.App/x86_64/stable - full ref
  org.test.App/x86_64/stable - full ref without prefix
  org.test.App - only app id
  org.test.App//stable - only branch
  org.test.App/x86_64 - only arch

If any parts are left out they are wildcarded. Such parts are filled
first by looking at other command line arguments like --arch and
--app/--runtime. And finally by looking at what is available in the
remote. If there are multiple matches the user is told the options
in an error message.
2016-10-14 15:45:16 +02:00
Alexander Larsson
c3606392aa common: Make flatpak_split_partial_ref_arg more regular and capable
Instead of in-place editing we return proper new strings. We
also handle kinds, both the defaults and supporting app/ and runtime/
prefixes.
2016-10-14 12:08:37 +02:00
Alexander Larsson
c23316cb5d Add FlatpakKinds flag and use instead of booleans 2016-10-14 11:20:53 +02:00
Alexander Larsson
90bcc44e10 info: Minor cleanup 2016-10-06 12:31:54 +02:00
Alexander Larsson
bef4de5308 Support default-branch setting in remote configuration
For now this is a purely client side setting which lets you store
the default branch to use for a remote. This is mostly meant to
be used for UI tools, although the CLI could also be made to use this.

You can set this manually in the CLI with --default-branch, or via a
flatpakrepo file (new key DefaultBranch).
2016-10-06 11:36:28 +02:00
Alexander Larsson
270707d5ca Make flatpak enter work
This completely regressed, and it seems complicated to fix it without
requiring extra privileges. So, the new version requires you to sudo
to run it, which is not great, but at least it makes it work for
all cases.
2016-09-28 20:20:17 +02:00
Alexander Larsson
f9c11a8b55 Make "flatpak update --appstream" update for all branches
This fixes https://github.com/flatpak/flatpak/issues/331
2016-09-28 18:52:17 +02:00
matthiasclasen
d8ee3c8e72 Merge pull request #235 from matthiasclasen/better-errors2
error message for flatpak build on non existing directory could be improved
2016-09-28 05:30:07 -04:00
matthiasclasen
92699d6fce Merge pull request #315 from matthiasclasen/better-errors
More decriptive "error: Build directory ... not finalized"
2016-09-28 05:27:56 -04:00
Alexander Larsson
4374b81174 Remove whitespace 2016-09-27 14:30:52 +02:00
Matthias Clasen
2c463d3751 Warn about extra arguments in flatpak build-import-bundle 2016-09-27 14:30:11 +02:00
Matthias Clasen
6cde704f0c Warn about extra arguments in flatpak build-init 2016-09-27 14:30:11 +02:00
Matthias Clasen
4bb8a2e0b6 Warn about extra arguments in flatpak build-sign 2016-09-27 14:30:11 +02:00
Matthias Clasen
e8b05a2fa6 Warn about extra arguments in flatpak remote-ls 2016-09-27 14:30:11 +02:00