summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2019-09-03 16:00:25 +0200
committerAtomic Bot <atomic-devel@projectatomic.io>2019-09-06 12:49:40 +0000
commit51fe0307ef9292b23685f46d7bfcac31a3c55636 (patch)
treed22a6ce0a70890caba94e5c17f69d51ee11b4055
parent6bff2fb19bd5cb2e1c08655470ff8fc7977bebee (diff)
downloadflatpak-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.c2
-rw-r--r--common/flatpak-dir.c2
-rw-r--r--common/flatpak-json-oci-private.h1
-rw-r--r--common/flatpak-json-oci.c11
-rw-r--r--common/flatpak-utils-private.h1
-rw-r--r--common/flatpak-utils.c3
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;