Static deltas support
https://bugzilla.gnome.org/show_bug.cgi?id=721799
This commit is contained in:
1 parent
a23b3b332e
commit
ca678224be
14 files changed
+1882
-506
No files matched your search
@@ -1321,11 +1321,31 @@ _ostree_get_relative_object_path (const char *checksum,
|
||||
return g_string_free (path, FALSE);
|
||||
}
|
||||
|
||||
static char *
|
||||
get_delta_path (const char *from,
|
||||
const char *to,
|
||||
const char *target)
|
||||
{
|
||||
char prefix[3];
|
||||
prefix[0] = from[0];
|
||||
prefix[1] = from[1];
|
||||
prefix[2] = '\0';
|
||||
from += 2;
|
||||
return g_strconcat ("deltas/", prefix, "/", from, "-", to, "/", target, NULL);
|
||||
}
|
||||
|
||||
char *
|
||||
_ostree_get_relative_static_delta_path (const char *from,
|
||||
const char *to)
|
||||
{
|
||||
return g_strdup_printf ("deltas/%s-%s/meta", from, to);
|
||||
return get_delta_path (from, to, "superblock");
|
||||
}
|
||||
|
||||
char *
|
||||
_ostree_get_relative_static_delta_detachedmeta_path (const char *from,
|
||||
const char *to)
|
||||
{
|
||||
return get_delta_path (from, to, "meta");
|
||||
}
|
||||
|
||||
char *
|
||||
@@ -1333,7 +1353,8 @@ _ostree_get_relative_static_delta_part_path (const char *from,
|
||||
const char *to,
|
||||
guint i)
|
||||
{
|
||||
return g_strdup_printf ("deltas/%s-%s/%u", from, to, i);
|
||||
gs_free char *partstr = g_strdup_printf ("%u", i);
|
||||
return get_delta_path (from, to, partstr);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1763,3 +1784,31 @@ ostree_commit_get_timestamp (GVariant *commit_variant)
|
||||
g_variant_get_child (commit_variant, 5, "t", &ret);
|
||||
return GUINT64_FROM_BE (ret);
|
||||
}
|
||||
|
||||
GVariant *
|
||||
_ostree_detached_metadata_append_gpg_sig (GVariant *existing_metadata,
|
||||
GBytes *signature_bytes)
|
||||
{
|
||||
GVariantBuilder *builder = NULL;
|
||||
gs_unref_variant GVariant *signaturedata = NULL;
|
||||
gs_unref_variant_builder GVariantBuilder *signature_builder = NULL;
|
||||
|
||||
if (existing_metadata)
|
||||
{
|
||||
builder = ot_util_variant_builder_from_variant (existing_metadata, G_VARIANT_TYPE ("a{sv}"));
|
||||
signaturedata = g_variant_lookup_value (existing_metadata, "ostree.gpgsigs", G_VARIANT_TYPE ("aay"));
|
||||
if (signaturedata)
|
||||
signature_builder = ot_util_variant_builder_from_variant (signaturedata, G_VARIANT_TYPE ("aay"));
|
||||
}
|
||||
if (!builder)
|
||||
builder = g_variant_builder_new (G_VARIANT_TYPE ("a{sv}"));
|
||||
if (!signature_builder)
|
||||
signature_builder = g_variant_builder_new (G_VARIANT_TYPE ("aay"));
|
||||
|
||||
g_variant_builder_add (signature_builder, "@ay", ot_gvariant_new_ay_bytes (signature_bytes));
|
||||
|
||||
g_variant_builder_add (builder, "{sv}", "ostree.gpgsigs", g_variant_builder_end (signature_builder));
|
||||
|
||||
return g_variant_ref_sink (g_variant_builder_end (builder));
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user