diff options
author | Alexander Larsson <alexl@redhat.com> | 2019-06-05 16:44:51 +0200 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2019-09-06 12:49:40 +0000 |
commit | be9961ecf65a081aac24e2007a0af7be1424eb38 (patch) | |
tree | b417e026ef055464040bab69fa8ce0274f9484f9 | |
parent | 8416add2546d821b6d660bd31c2099cba6494885 (diff) | |
download | flatpak-be9961ecf65a081aac24e2007a0af7be1424eb38.tar.gz |
oci: Always generate a history, quay needs this
Closes: #2978
Approved by: alexlarsson
-rw-r--r-- | app/flatpak-builtins-build-bundle.c | 7 | ||||
-rw-r--r-- | common/flatpak-json-oci-private.h | 1 | ||||
-rw-r--r-- | common/flatpak-json-oci.c | 25 |
3 files changed, 33 insertions, 0 deletions
diff --git a/app/flatpak-builtins-build-bundle.c b/app/flatpak-builtins-build-bundle.c index 62c3e3b6..a4287709 100644 --- a/app/flatpak-builtins-build-bundle.c +++ b/app/flatpak-builtins-build-bundle.c @@ -471,6 +471,8 @@ build_oci (OstreeRepo *repo, const char *commit_checksum, GFile *dir, g_autoptr(FlatpakOciIndex) index = NULL; g_autoptr(GHashTable) flatpak_annotations = NULL; g_auto(GStrv) ref_parts = NULL; + int history_index; + GTimeVal tv; if (!ostree_repo_read_commit (repo, commit_checksum, &root, NULL, NULL, error)) return FALSE; @@ -514,6 +516,11 @@ build_oci (OstreeRepo *repo, const char *commit_checksum, GFile *dir, image = flatpak_oci_image_new (); flatpak_oci_image_set_layer (image, uncompressed_digest); flatpak_oci_image_set_architecture (image, flatpak_arch_to_oci_arch (ref_parts[2])); + history_index = flatpak_oci_image_add_history (image); + + g_get_current_time (&tv); + image->history[history_index]->created = g_time_val_to_iso8601 (&tv); + image->history[history_index]->created_by = g_strdup ("flatpak build-bundle"); flatpak_oci_copy_annotations (flatpak_annotations, flatpak_oci_image_get_labels (image)); diff --git a/common/flatpak-json-oci-private.h b/common/flatpak-json-oci-private.h index ff79f65d..ac15f213 100644 --- a/common/flatpak-json-oci-private.h +++ b/common/flatpak-json-oci-private.h @@ -221,6 +221,7 @@ void flatpak_oci_image_set_layers (FlatpakOciImage *image, void flatpak_oci_image_set_layer (FlatpakOciImage *image, const char *layer); GHashTable * flatpak_oci_image_get_labels (FlatpakOciImage *self); +int flatpak_oci_image_add_history (FlatpakOciImage *image); void flatpak_oci_add_annotations_for_commit (GHashTable *annotations, const char *ref, diff --git a/common/flatpak-json-oci.c b/common/flatpak-json-oci.c index 69b24c67..9cd157e2 100644 --- a/common/flatpak-json-oci.c +++ b/common/flatpak-json-oci.c @@ -747,6 +747,31 @@ flatpak_oci_copy_annotations (GHashTable *source, g_strdup ((char *) value)); } +int +flatpak_oci_image_add_history (FlatpakOciImage *image) +{ + FlatpakOciImageHistory **old; + int i, index, old_len; + + old = image->history; + + for (old_len = 0; old != NULL && old[old_len] != NULL; old_len++) + ; + + image->history = g_new0 (FlatpakOciImageHistory *, old_len + 2); + for (i = 0; i < old_len; i++) + image->history[i] = old[i]; + + index = i; + + image->history[i++] = g_new0 (FlatpakOciImageHistory, 1); + image->history[i++] = NULL; + + g_free (old); + + return index; +} + static void add_annotation (GHashTable *annotations, const char *key, const char *value) { |