diff options
author | Alexander Larsson <alexl@redhat.com> | 2019-09-03 16:00:25 +0200 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2019-09-06 12:49:40 +0000 |
commit | 51fe0307ef9292b23685f46d7bfcac31a3c55636 (patch) | |
tree | d22a6ce0a70890caba94e5c17f69d51ee11b4055 | |
parent | 6bff2fb19bd5cb2e1c08655470ff8fc7977bebee (diff) | |
download | flatpak-51fe0307ef9292b23685f46d7bfcac31a3c55636.tar.gz |
OCI: Handle manifests without annotations in index.json
When we export a manifest to the index, always pass the ref we're
targeting instead of relying on the org.opencontainers.image.ref.name
annotation, because that may not be set if we're using labels instead.
This is no big deal, because we know what ref we're handling anyway.
Closes: #2978
Approved by: alexlarsson
-rw-r--r-- | app/flatpak-builtins-build-bundle.c | 2 | ||||
-rw-r--r-- | common/flatpak-dir.c | 2 | ||||
-rw-r--r-- | common/flatpak-json-oci-private.h | 1 | ||||
-rw-r--r-- | common/flatpak-json-oci.c | 11 | ||||
-rw-r--r-- | common/flatpak-utils-private.h | 1 | ||||
-rw-r--r-- | common/flatpak-utils.c | 3 |
6 files changed, 10 insertions, 10 deletions
diff --git a/app/flatpak-builtins-build-bundle.c b/app/flatpak-builtins-build-bundle.c index b11a68c1..22aa18d6 100644 --- a/app/flatpak-builtins-build-bundle.c +++ b/app/flatpak-builtins-build-bundle.c @@ -553,7 +553,7 @@ build_oci (OstreeRepo *repo, const char *commit_checksum, GFile *dir, if (index == NULL) index = flatpak_oci_index_new (); - flatpak_oci_index_add_manifest (index, manifest_desc); + flatpak_oci_index_add_manifest (index, ref, manifest_desc); if (!flatpak_oci_registry_save_index (registry, index, cancellable, error)) return FALSE; diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c index 37deefd3..bdaea272 100644 --- a/common/flatpak-dir.c +++ b/common/flatpak-dir.c @@ -5025,7 +5025,7 @@ flatpak_dir_mirror_oci (FlatpakDir *self, g_debug ("Mirroring OCI image %s", oci_digest); - res = flatpak_mirror_image_from_oci (dst_registry, registry, oci_repository, oci_digest, oci_pull_progress_cb, + res = flatpak_mirror_image_from_oci (dst_registry, registry, oci_repository, oci_digest, ref, oci_pull_progress_cb, progress, cancellable, error); if (progress) diff --git a/common/flatpak-json-oci-private.h b/common/flatpak-json-oci-private.h index 1dda1af4..63a2205b 100644 --- a/common/flatpak-json-oci-private.h +++ b/common/flatpak-json-oci-private.h @@ -152,6 +152,7 @@ struct _FlatpakOciIndexClass FlatpakOciIndex * flatpak_oci_index_new (void); void flatpak_oci_index_add_manifest (FlatpakOciIndex *self, + const char *ref, FlatpakOciDescriptor *desc); gboolean flatpak_oci_index_remove_manifest (FlatpakOciIndex *self, const char *ref); diff --git a/common/flatpak-json-oci.c b/common/flatpak-json-oci.c index bf5a03f5..feef1eaf 100644 --- a/common/flatpak-json-oci.c +++ b/common/flatpak-json-oci.c @@ -448,21 +448,18 @@ flatpak_oci_index_get_n_manifests (FlatpakOciIndex *self) void flatpak_oci_index_add_manifest (FlatpakOciIndex *self, + const char *ref, FlatpakOciDescriptor *desc) { FlatpakOciManifestDescriptor *m; - const char *m_ref = NULL; int count; - if (desc->annotations != NULL) - m_ref = g_hash_table_lookup (desc->annotations, "org.flatpak.ref"); - - if (m_ref != NULL) - flatpak_oci_index_remove_manifest (self, m_ref); + if (ref != NULL) + flatpak_oci_index_remove_manifest (self, ref); count = flatpak_oci_index_get_n_manifests (self); - m = manifest_desc_for_desc (desc, m_ref); + m = manifest_desc_for_desc (desc, ref); self->manifests = g_renew (FlatpakOciManifestDescriptor *, self->manifests, count + 2); self->manifests[count] = m; self->manifests[count + 1] = NULL; diff --git a/common/flatpak-utils-private.h b/common/flatpak-utils-private.h index c7360dd4..85102aa2 100644 --- a/common/flatpak-utils-private.h +++ b/common/flatpak-utils-private.h @@ -526,6 +526,7 @@ gboolean flatpak_mirror_image_from_oci (FlatpakOciRegistry *dst_registry, FlatpakOciRegistry *registry, const char *oci_repository, const char *digest, + const char *ref, FlatpakOciPullProgress progress_cb, gpointer progress_data, GCancellable *cancellable, diff --git a/common/flatpak-utils.c b/common/flatpak-utils.c index 01621ed8..d12e0bee 100644 --- a/common/flatpak-utils.c +++ b/common/flatpak-utils.c @@ -5426,6 +5426,7 @@ flatpak_mirror_image_from_oci (FlatpakOciRegistry *dst_registry, FlatpakOciRegistry *registry, const char *oci_repository, const char *digest, + const char *ref, FlatpakOciPullProgress progress_cb, gpointer progress_user_data, GCancellable *cancellable, @@ -5491,7 +5492,7 @@ flatpak_mirror_image_from_oci (FlatpakOciRegistry *dst_registry, flatpak_oci_export_annotations (manifest->annotations, manifest_desc->annotations); - flatpak_oci_index_add_manifest (index, manifest_desc); + flatpak_oci_index_add_manifest (index, ref, manifest_desc); if (!flatpak_oci_registry_save_index (dst_registry, index, cancellable, error)) return FALSE; |