summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2019-06-05 16:44:51 +0200
committerAtomic Bot <atomic-devel@projectatomic.io>2019-09-06 12:49:40 +0000
commitbe9961ecf65a081aac24e2007a0af7be1424eb38 (patch)
treeb417e026ef055464040bab69fa8ce0274f9484f9
parent8416add2546d821b6d660bd31c2099cba6494885 (diff)
downloadflatpak-be9961ecf65a081aac24e2007a0af7be1424eb38.tar.gz
oci: Always generate a history, quay needs this
Closes: #2978 Approved by: alexlarsson
-rw-r--r--app/flatpak-builtins-build-bundle.c7
-rw-r--r--common/flatpak-json-oci-private.h1
-rw-r--r--common/flatpak-json-oci.c25
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)
{