Commit Graph

556 Commits

Author SHA1 Message Date
Matthias Clasen
261ff03b63 Merge pull request #907 from smcv/metadata
Document all metadata groups and keys
2017-07-07 17:50:15 -04:00
Simon McVittie
489bfddfb3 common: Add and use constants for flatpak-metadata(5) groups and keys
This makes it easier to avoid typos, and also makes it easier to see
what groups and keys are in use. In the header file, they are
clustered according to the group in which the keys are used.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2017-07-07 16:06:21 +01:00
Philip Withnall
f47a696392 build: Add AM_* variables to all per-target special variables
For example, add $(AM_CFLAGS) to mumble_CFLAGS. Since $(WARN_CFLAGS) is
only added to $(AM_CFLAGS), this fixes the lack of inclusion of the
compiler warning flags in the compilation of half of flatpak.

Note that $(AM_*) variables are only used by automake if a more specific
(per-target) special variable is not defined instead. So if you define
mumble_CFLAGS, AM_CFLAGS will not be used for that target unless
explicitly included in mumble_CFLAGS.

See
https://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html.

Do the same for $(AM_LIBADD), $(AM_LDFLAGS), etc. These are not
currently defined, but it’s good practice to include them in
mumble_LIBADD (etc.) just in case they’re defined in future. Hopefully
their inclusions will be cargo-culted to any new targets which are
added, retaining full coverage of the code base.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-07-06 15:05:58 +01:00
Philip Withnall
548f60ebc0 general: Add missing static modifier to various local methods
The compiler warning flag which was supposed to warn about this was not
being included in the CFLAGS for these targets. That will be fixed in an
upcoming commit.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-07-06 14:41:21 +01:00
Matthias Clasen
a80a1b9bb2 Merge pull request #896 from pwithnall/missing-n
app/build-export: Add missing N_() around a translatable option
2017-07-05 12:48:14 -04:00
Philip Withnall
574f3692ec app/build-export: Fix gcc warning about too many arguments for printf
Drop the spurious final argument.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-07-05 15:56:43 +01:00
Philip Withnall
c4228fac67 app/build-export: Add missing N_() around a translatable option
Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-07-05 15:51:02 +01:00
Philip Withnall
a8ad392750 common/dir: Factor out common code for getting repo metadata
There are several places which query keys in the metadata in the summary
file. Factor out a common function to do that, and write it in such a
way that it could be extended to read the metadata from somewhere else
in future (the plan being that metadata will move to an ostree-metadata
branch rather than the summary file).

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-06-30 16:06:50 +02:00
Philip Withnall
2c931a9267 app/repo: Factor out common GVariant operation
Factor out a common GVariant child getter from all the print_*()
functions. This will make upcoming changes a little easier to integrate.

This introduces no functional changes.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-06-30 10:17:34 +02:00
Alexander Larsson
06b14a8960 export: Record flatpak version in default commit version 2017-06-20 09:45:26 +02:00
Alexander Larsson
504a3a25ea info: Make --show-metadata machine parseable
This is useful mainly to parse the keyfile, and is not very
nice for pretty output.
2017-06-19 10:58:09 +02:00
Alexander Larsson
e5aa73f4a5 build-export: Canonicalize file permissions
This canonicalizes the file modes for directories to 0755, and
for files to 0755 for executables or 0644 otherwise.

This means we never get files/dirs writable by non-root in the
system repo, and we never get setuid/setgid/sticky-bit, all
which could potentially be a problem if we store them in the
system repo.

See https://github.com/flatpak/flatpak/pull/837 for some discussion
about this.
2017-06-08 08:50:46 +02:00
Philip Withnall
9ef301beeb ls-remote: Drop unused variable
Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-06-06 20:09:07 +01:00
Alexander Larsson
4119de9eae build-commit-from: Don't copy old xa.ref in metadata
This caused installations of the new commit to break because the
first xa.ref was used, which was the old one.
2017-06-05 12:45:20 +02:00
Alexander Larsson
e69237f792 Handle app ids with dashes when ignoring locale/debug.
org.foo.foo-bar extensions become org.foo.foo_bar.Locale, etc, so
we need to handle this properly.
2017-05-30 18:07:46 +02:00
Alexander Larsson
005fb63cc0 list/remote-ls: Also ignore .Sources by default 2017-05-30 17:45:12 +02:00
Alexander Larsson
d1fae1f476 remote-ls: Don't show Locale/Debug and secondary arches by default.
Locale and Debug extensions, and refs for a secondary arch, when the
primary arch alternative exists, are not shown unless you specify
--all or -a.

This makes the default output more useful.
2017-05-30 17:41:24 +02:00
Alexander Larsson
f072d585b0 list: Don't list .Locale and .Debug by default (override with -a) 2017-05-30 17:41:01 +02:00
Alexander Larsson
f616ada02b build-update-repo: Remove unwanted deltas before updating summary
The list of deltas is stored in the summary, so we need to delete
them before we generate the summary, not before.

This means there is a short period where people may use the old summary
which references the old, now deleted summaries. However, that is
better than it referencing the deleted deltas forever.
2017-05-30 15:16:12 +02:00
Alexander Larsson
aeb31f7941 export: Always set a xa.ref commit metadata
This makes it easier to reverse-map from commits to refs, for
e.g. statistics, but it also in the future will allow use to
not sign the summary and still use the system-helper.
2017-05-22 17:30:04 +02:00
Alexander Larsson
23399ddc35 Use the CLI progress for update --appstream too 2017-05-22 17:01:14 +02:00
Alexander Larsson
ea2af15dc0 run: Use new flatpak_find_current_ref helper. 2017-05-22 13:12:01 +02:00
Alexander Larsson
07609559b8 progress: Don't report ??? in the bar while estimating 2017-05-18 15:37:35 +02:00
Alexander Larsson
7ac5d41bea Use the nicer progress reporting for the CLI too
We now use the same progress calculations as in libflatpak
so we get a nice progress bar also in the CLI.
2017-05-18 09:51:35 +02:00
Alexander Larsson
703a0d7900 update: flatpak update --subpath= means all subpaths 2017-05-11 12:44:15 +02:00
Alexander Larsson
3fca1584ff remote-ls: Don't rely on active symlink value, use deploy data
We want to tweak the active symlink value so we can't rely
on this being exactly the commit id.
2017-05-11 12:27:36 +02:00
Alexander Larsson
c35bce077f remote-add: Use the new system-helper for initial metadata update
This removes some duplicated code, and also follows the new
redirect-url property on initial add.

This also means we're requiring gpg signatures to be correct
on remote-add, so fix up the tests
2017-05-11 11:20:39 +02:00
Alexander Larsson
c6d4330cea export: Add install/download size and metadata to commit
This way we can faster access this when updating the
summary, and also have a way to access this in case we ever
want to not have it in the summary.
2017-05-11 10:09:39 +02:00
Matthias Clasen
3ce8be47a9 Improve error wording
I just saw a confusing error messages that looked like two error
messages just running into each other. Better to end the first
one with a colon when using g_prefix_error.
2017-05-11 08:38:01 +02:00
Matthias Clasen
9998b0e6a1 repo: Print out gpg key hash too
This seems useful, at least it shows that a key is there.
2017-05-10 16:01:24 +02:00
Matthias Clasen
c30e00eef2 Make it possible to unset values in update-repo
The underlying setters interpret NULL as 'unset this key', but
we never pass NULL. Since empty strings are not useful values
for title or default-branch or redirect-url, just interpret
an explicit empty value as 'unset this key'. E.g. to unset
the redirect url, use

flatpak build-update-repo --redirect-url= ~/my-repo/
2017-05-10 11:53:01 +02:00
Matthias Clasen
0ea9d93001 repo: Print out redirect url too
This is useful information about a repository, so make
the repo command print it out.
2017-05-10 11:53:01 +02:00
Matthias Clasen
4ecd7a9dfe Add a missing return
The compiler pointed this out.
2017-05-10 11:43:40 +02:00
Alexander Larsson
7a4c82529e Support build-update-repo --redirect-url=
When clients install/update they will see this property in the
(signed) summary and update the url in the config, making this
essentially a permanent redirect.
2017-05-09 17:02:00 +02:00
Alexander Larsson
c7f770bd7a install: Fix automatic metadata update
We should update the metadata when installing from
a regular repo, not from a bundle.
2017-05-09 17:00:55 +02:00
Alexander Larsson
21778f1075 Add support for adding new gpg keys via signed summary 2017-05-09 16:43:20 +02:00
Alexander Larsson
c89aa03695 remote-add/modify: Break out gpg loading code to helper 2017-05-09 15:56:31 +02:00
Alexander Larsson
44cf5076fa update: Split update into check_for_update and update
This way we can avoid printing "updating foo" for every
app even if there is no update.
2017-05-09 14:08:27 +02:00
Alexander Larsson
864f2def12 transaction: Always update metadata for remotes on update/install
All remotes involved in an update are updated before starting
transaction.
2017-05-09 13:25:21 +02:00
Alexander Larsson
b25987255e remote-modify: Don't modify if no arguments are specified
For instance, if we pass only --update-metadata we don't
want to get a polkit request for a no-op change.
2017-05-09 13:25:21 +02:00
Alexander Larsson
b106fd9c67 remote-modify: Never update explicitly set values
Whenever you explicitly specify some value (e.g. for
title or default-branch) we set a $KEY-is-set option
to True, and if that is set we never automatically update it.
2017-05-09 13:25:21 +02:00
Matthias Clasen
b04529dfd0 info: Print some more information
Make sure that info prints at least the same amount of
information as list -d.
2017-05-08 11:29:22 +02:00
Alexander Larsson
2b5af6a036 install: Make already-installed a warning, not an error
This seems to match what dnf and apt does, and it makes it
easier to ensure a set of apps are installed.
2017-05-04 13:48:27 +02:00
Alexander Larsson
858a4b6044 build: Kill sandbox when flatpak build dies
This ensures that no processes from the build lives
past the return of the build itself, which might
accidentally happen.

We still allow apps to stay around after the regular
flatpak run command finished though, as this is sometimes
done on purpose.
2017-05-04 10:53:48 +02:00
Alexander Larsson
08397923bf remote-ls: Fix up the column titles
The index for these were wrong.
2017-05-04 10:16:21 +02:00
Alexander Larsson
93e13a42ec run: Only forward as document if the target app can't see the file 2017-05-03 18:23:30 +02:00
Matthias Clasen
20c40149af Enable file forwarding in flatpak run
Add a --file-forwarding option for the run command, which triggers
the rest argument processing that was implemented in the previous
commit.

This is how it is used:

flatpak run --file-forwarding --command=cat \
        org.gnome.Recipes @@ $HOME/todo @@

Note that the @@ are passed as separate arguments.
2017-05-03 13:27:52 +02:00
Matthias Clasen
75b84b4bfe Include the generated document portal code in common
Move the sources from app/ to common/. We will use this
code from common/ in subsequent commits.
2017-05-03 13:27:52 +02:00
Alexander Larsson
a4b16255d5 info/list: Move subpath list to info
We just show "partial" on the list and then
the details are in flatpak info.
2017-05-03 11:28:07 +02:00
Alexander Larsson
fb6695e9a4 Add macros for common ANSI tty escape codes 2017-05-03 11:17:41 +02:00