summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2019-09-03 16:00:25 +0200
committerAlexander Larsson <alexl@redhat.com>2019-09-03 16:00:25 +0200
commite1f46ff43eef97dea51339fc2d13d0d006a2c231 (patch)
treed22a6ce0a70890caba94e5c17f69d51ee11b4055
parenta9a0c37e5e38b28055ab1296413a3de028a570dc (diff)
downloadflatpak-e1f46ff43eef97dea51339fc2d13d0d006a2c231.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.
-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;