8290 Commits

Author SHA1 Message Date
lumingzh
5dad539335 update Chinese translation 2025-12-10 14:46:27 +00:00
Sebastian Wick
2a4441382f context: Add --share-if and --allow-if context options
Actually make it possible to use the command line to use the new
conditional permission system.
2025-12-08 19:33:09 +00:00
Sebastian Wick
6667e1d361 context: Use the new permission system for shares and features
This gives us conditionals for shares and features. So far we have no
use case for this, but the system already exists, it makes the code
simpler, and when we need this in the future, we don't have to wait for
it to roll out.
2025-12-08 19:33:09 +00:00
Sebastian Wick
e0e1b20ecb context: Pass in the negated permission string
For device and socket the negated versions are nodevice and nosocket,
but for shares, the strings are allow and disallow. Take arguments for
both forms.
2025-12-08 19:33:09 +00:00
Sebastian Wick
2beadfc860 context: Fix typo in --socket-if option 2025-12-08 19:33:09 +00:00
Sebastian Wick
f242199eca tests: Test signed OCI images 2025-12-08 19:09:56 +00:00
Owen W. Taylor
404aa33ce1 common: Check signatures when installing OCI images
Co-authored-by: Sebastian Wick <sebastian.wick@redhat.com>
2025-12-08 19:09:56 +00:00
Owen W. Taylor
841f33e451 app: Add a "signature lookaside" repository configuration
Allow specifying a lookside URL for downloading signatures for
an OCI remote. This can be specified:

 In a .repofile with the SignatureLookaside key
 As the --signature-lookaside option to remote-add/remote-modify
2025-12-08 19:09:56 +00:00
Owen W. Taylor
0f4ad0e925 json-oci: Make FlatpakOciSignature just a simple signature
FlatpakOciSignature was a Flatpak-specific analog to
the containers/image "simple signatures" - but it wasn't used at
all, and Flatpaks on registry.redhat.io are signed by the
original simple signatures. So modify it correspond to
the original simple signatures.
2025-12-08 19:09:56 +00:00
Owen W. Taylor
d13ae21a8e oci-signatures: Remove vestigal OCI signing code
Remove unused flatpak_oci_sign_data() - we'll leaving signing
OCI images to container ecosystem tools like skopeo and cosign.
2025-12-08 19:09:56 +00:00
Owen W. Taylor
bd846c389f oci-registry: Move some helper functions to flatpak-utils.c
In order to reuse in flatpak-oci-signatures.c, move:

 local_open_file => flatpak_open_file_at
 local_load_file => flatpak_load_file_at
2025-12-08 19:09:56 +00:00
Sebastian Wick
78c97ead65 oci-signatures: Fix return type of flatpak_oci_signatures_verify 2025-12-08 19:09:56 +00:00
Owen W. Taylor
26568c86c8 oci-signatures: Move OCI signature code to a separate file
There is some code for OCI signature verification that isn't currently
hooked up at all. In preparation for reworking it to usefully check
signatures that actually exist in OCI registries, move it to a
separate file.
2025-12-08 19:09:56 +00:00
Sebastian Wick
725fdc75ce tests/test-preinstall.sh: Add test for sideloading with network failure
If there is a sideload repo we should be able to pick it up when there
are non-sideload repos which cannot be reached.
2025-12-08 19:04:45 +00:00
vanadiae
0db9aa633f portal: Stop querying all attributes when enumerating .portals files
Only G_FILE_ATTRIBUTE_STANDARD_NAME is necessary here for
g_file_info_get_name() and g_file_enumerator_get_child() purpose. This
avoids various thumbnailing house-keeping that GIO tries to do when any
thumbnailing file attribute is requested (fairly visible when run with
strace), in addition to just making more sense that way.
2025-12-08 13:47:35 +00:00
Sebastian Wick
80a899204b json-oci: Mark mandatory fields as such
The flatpak OCI spec
(https://github.com/flatpak/flatpak-oci-specs/blob/main/registry-index.md)
is not very specific about which fields are required; but the code
certainly makes some assumptions about it.

Mark as many fields mandatory as possible. This was tested against the
fedora remote.

Fixes #6359
2025-12-04 11:08:08 +00:00
JakobDev
1e52cc62e8 build-bundle: Add the runtime repo to OCI image metadata
At the moment the --runtime-repo flags of flatpak build-bundle export is
ignored when building an OCI image. So an Flatpak OCI registry which
wants to supports a .flatpakref file has no information about the
runtime repo. With this PR the runtime repo gets added as the
org.flatpak.runtime-repo label to the OCI image.

This is currently only metadata to be used by repositories and not
used by flatpak during install.
2025-12-03 14:53:46 +00:00
Sebastian Wick
e807ca3539 tests/test-history.sh: Make testing for working journalctl more robust
journalctl also prints something when the message didn't make it to
whatever journalctl connects to. Check for the specific message showing
up instead to make sure it all works as expected.
2025-12-01 17:19:09 +00:00
Sebastian Wick
9ebe43a0c7 tests: Do not redirect stdout twice in test-unused.sh
The '&>' already redirects both stdout and stderr. Adding another '>'
makes it ambiguous where stdout gets redirected to.
2025-12-01 17:19:09 +00:00
Sebastian Wick
79d6e4b3f4 dir: Use AutoPolkitSubject for the autoptr type
We declare the autoptrs explicitly on those typedefs so it works on
older systems but this one accidentally uses the type provided by polkit
itself.

Fixes: 1372e16d ("dir: Check parental control authorization via system bus name")
2025-12-01 17:19:09 +00:00
Sebastian Wick
40c1e4d5a3 github: Remove the disfunc open collective
It is no more so we should not point to it.
2025-12-01 17:19:09 +00:00
Sebastian Wick
bb2d517bb1 context: Canonicalize xdg dir and home dir paths
When an xdg dir is not available, it is supposed to point at $HOME. We
do not want to mount $HOME though in that case, so we just skip the xdg
dir instead.

The check compares the strings of the the xdg dir path and the home dir
path. So far it relied on the functions internally canonicalizing the
paths in the same way, but there was a glib regression:

https://gitlab.gnome.org/GNOME/glib/-/issues/3811
("g_get_user_special_dir doesn't strip trailing slash from $HOME")

Which then was fixed in cb3e9fe74 ("gutils: Strip all trailing
slashes").

We can however just canonicalize on the paths on the caller side to make
this more robust, so let's just do that.

Closes: #6323
2025-12-01 15:58:35 +00:00
Sebastian Wick
4fb7b7158d ci: Do releases via the CI
Instead of doing meson dist on the developers machine and uploading it,
and creating the release in github, we can let the CI take care of it.

Closes #6404
2025-12-01 12:45:06 +00:00
Sebastian Wick
400cc09205 ci: Check POTFILES in CI
We already do this in xdg-desktop-portal and it would have caught
missing files in POTFILES.in already.
2025-12-01 12:22:07 +00:00
Sebastian Wick
7c66f3a97e po: Add missing files to POTFILES and POTFILES.skip and reorder 2025-12-01 12:22:07 +00:00
lumingzh
fbb6a0a19a update Chinese translation 2025-11-26 08:21:17 +05:30
filmsi
846b82bf85 Update Slovenian translation (sl.po) 2025-11-25 17:16:36 +05:30
Sebastian Wick
40640819d4 tests/asan: Update the asan suppression file
If gdk-pixbuf uses glycin, there might be a leak.
2025-11-21 14:21:13 +00:00
Sebastian Wick
76cb5c793e validate-icon: Do not leak a GError instance 2025-11-21 14:21:13 +00:00
Sebastian Wick
f9d5c5cba9 dir: Free result of polkit_subject_to_string
Fixes: 1372e16d ("dir: Check parental control authorization via system bus name")
2025-11-21 14:21:13 +00:00
Sebastian Wick
e9e713fa0d tests: Add test-extra-data.sh to test extra-data installation
There are two sub-tests, one testing it with a ostree remote and one
with a OCI remote.
2025-11-20 23:14:18 +00:00
Sebastian Wick
d4751443f5 dir, system-helper: Add support for installing extra-data from OCI
Extra-data usually is downloaded on the user side into an ostree repo.
For system installs, a temporary ostree repo is used on the user side
and then imported on the system side. This doesn't work for OCI images
because importing the image into an ostree repo makes it impossible for
the system side to verify the data.

So instead, the OCI image is first mirrored into a local OCI repo and
then gets imported on the system side, which can verify the image from
the index by the digest.

Closes: https://github.com/flatpak/flatpak/issues/3790
2025-11-20 23:14:18 +00:00
Sebastian Wick
ac0b61a0f1 dir: Refactor compute_extra_data_download_size to not depend on ostree
It took in a ostree commit before, but it really only needs the detached
metadata. The single caller now converts it correctly.

This will become useful when we want to know the size of the extra data
when the metadata is coming from an OCI image.
2025-11-20 23:14:18 +00:00
Sebastian Wick
5640e5bf59 dir: Refactor flatpak_dir_pull_extra_data to make it useful for OCI
This cleans up flatpak_dir_pull_extra_data in a way that it is only
responsible for downloading the extra-data. In has no dependencies on
ostree concepts any more.

The new flatpak_dir_pull_ostree_extra_data now takes care of extracing
the extra data sources and saving it in the detached metadata.
2025-11-20 23:14:18 +00:00
Sebastian Wick
d0fdac8854 dir: Pull out the downloading of extra-data into its own function 2025-11-20 23:14:18 +00:00
Sebastian Wick
f28d92da06 oci-registry: Return NULL instead of FALSE in function returning char* 2025-11-20 23:14:18 +00:00
Chris Williams
8bcba92042 dir: Remove unused parameter from flatpak_dir_setup_extra_data() 2025-11-20 23:14:18 +00:00
Kolja Lampe
4dca9efea0 utils-http: Replace g_assert_cmpint with g_assert for CURL error checks 2025-11-20 18:11:15 +00:00
Kolja Lampe
1434448f2d utils-http: Fix incorrect CURLM_OK comparison in curl_easy_setopt checks
CURLcode return values from curl_easy_setopt() were being compared
with CURLM_OK (a CURLMcode constant) instead of CURLE_OK. This is
incorrect as CURLM_OK is for multi interface functions, not easy
interface functions.
2025-11-20 18:11:15 +00:00
Sebastian Wick
e4edecdef5 utils-http: Drop libsoup2 support in favor of libcurl
A few years ago there was a very painful attempt at porting from
libsoup2 to libsoup3. Flatpak libsoup3 support never landed and it seems
like a large amount of distros have switched over to libcurl instead.

This commit removes libsoup2 support completely instead of growing
libsoup3 support.

Closes #5915
Closes #4582
2025-11-20 17:40:57 +00:00
Sebastian Wick
1c2c80b8c9 zstd-decompressor: Replace boilerplate with G_DECLARE_FINAL_TYPE macro 2025-11-20 17:30:07 +00:00
Owen W. Taylor
c8e73a0993 test-oci-registry.sh: add a test for zstd layers 2025-11-20 17:30:07 +00:00
Owen W. Taylor
e6b584f85c flatpak-build-bundle: Add --oci-layer-compress=zstd
Add an option to build OCI bundles with zstd compressed layers.

gzip is kept as the default for maximum compatibility:

Ecosystem support:

 distribution/distribution: no explicit support, but works
 quay.io: sinc 2021
 Amazon ECR: supported
 pulp_container: since 2022
 flatpak: since first-OCI supporting version
 tardiff: since first version
2025-11-20 17:30:07 +00:00
JakobDev
9b51edf31a portal: Allow passing device permissions to subsandbox 2025-11-20 17:19:42 +00:00
Sebastian Wick
f279929559 portal: Fix generating docs for the Spawn method by indenting correctly 2025-11-20 17:19:42 +00:00
Emir SARI
944c0908e1 cli-transaction: improve i18n
- Make percent values translatable

  Various languages use different ways to format the percentage
  values[1], making it translatable will allow a more coherent way to
  display the information.

- Make remaining time abbreviation translatable

  Making this value translatable will allow languages to display the
  seconds abbreviation in their language. This is particulary an issue
  for Turkish, in which hours and seconds start with the same letter, so
  it's not possible to distinguish which is which. We use a second
  letter (sa, sn) to figure it out.

[1] https://en.wikipedia.org/wiki/Percent_sign#Form_and_spacing

Signed-off-by: Emir SARI <emir_sari@icloud.com>
2025-11-20 15:20:59 +00:00
Chris Williams
b343107c55 portal: Fix potential leak of data buffer in error cases
Closes #4233
2025-11-20 13:39:48 +00:00
Sebastian Wick
947d4a6ce4 flatpak: Enable progress escape sequence by default
In 4febfb59 ("flatpak: Disable progress escape sequence by default") the
escape sequence has been disabled by default, but we want to enable it
again for 1.18.
2025-11-18 01:19:36 +00:00
Milo Ivir
ff80ba5b6c Update Croatian translation
The translation is 95% stranslated.
2025-11-13 03:20:56 +00:00
Sabri Ünal
400232342c Update Turkish translation 2025-11-13 03:20:53 +00:00