From 60c4d467aa3a5500d77f0255b65d9c13a818e32d Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 10 Feb 2014 08:29:00 -0500 Subject: [PATCH] deltas: Add a timestamp to delta metadata --- .../ostree-repo-static-delta-compilation.c | 13 +++++++++---- src/libostree/ostree-repo-static-delta-core.c | 2 +- src/libostree/ostree-repo-static-delta-private.h | 3 ++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/libostree/ostree-repo-static-delta-compilation.c b/src/libostree/ostree-repo-static-delta-compilation.c index cfcf1f4f..722b9bbc 100644 --- a/src/libostree/ostree-repo-static-delta-compilation.c +++ b/src/libostree/ostree-repo-static-delta-compilation.c @@ -365,10 +365,15 @@ ostree_repo_static_delta_generate (OstreeRepo *self, metadata_source = tmp_metadata; } - delta_descriptor = g_variant_new ("(@(a(ss)a(say))aya(ayttay))", - metadata_source, - g_variant_builder_new (G_VARIANT_TYPE ("ay")), - part_headers); + { + GDateTime *now = g_date_time_new_now_utc (); + delta_descriptor = g_variant_new ("(@(a(ss)a(say))taya" OSTREE_STATIC_DELTA_META_ENTRY_FORMAT ")", + metadata_source, + GUINT64_TO_BE (g_date_time_to_unix (now)), + g_variant_builder_new (G_VARIANT_TYPE ("ay")), + part_headers); + g_date_time_unref (now); + } if (!ot_util_variant_save (descriptor_path, delta_descriptor, cancellable, error)) goto out; diff --git a/src/libostree/ostree-repo-static-delta-core.c b/src/libostree/ostree-repo-static-delta-core.c index 3cd706e0..dad5fdb1 100644 --- a/src/libostree/ostree-repo-static-delta-core.c +++ b/src/libostree/ostree-repo-static-delta-core.c @@ -215,7 +215,7 @@ ostree_repo_static_delta_execute_offline (OstreeRepo *self, FALSE, &meta, error)) goto out; - headers = g_variant_get_child_value (meta, 2); + headers = g_variant_get_child_value (meta, 3); n = g_variant_n_children (headers); for (i = 0; i < n; i++) { diff --git a/src/libostree/ostree-repo-static-delta-private.h b/src/libostree/ostree-repo-static-delta-private.h index 772a5015..a5ad37ce 100644 --- a/src/libostree/ostree-repo-static-delta-private.h +++ b/src/libostree/ostree-repo-static-delta-private.h @@ -59,6 +59,7 @@ G_BEGIN_DECLS * * delta-descriptor: * metadata: a{sv} + * timestamp: guint64 * ARRAY[(csum from, csum to)]: ay * ARRAY[delta-part-header] * @@ -70,7 +71,7 @@ G_BEGIN_DECLS * recursion mechanism that would potentially allow saving significant * storage space on the server. */ -#define OSTREE_STATIC_DELTA_META_FORMAT "(a{sv}aya" OSTREE_STATIC_DELTA_META_ENTRY_FORMAT ")" +#define OSTREE_STATIC_DELTA_META_FORMAT "(a{sv}taya" OSTREE_STATIC_DELTA_META_ENTRY_FORMAT ")" gboolean _ostree_static_delta_part_execute (OstreeRepo *repo, GVariant *header,