diff --git a/debian/changelog b/debian/changelog index 9fcd183c..6b451d8c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ ostree (2016.14-1) UNRELEASED; urgency=medium version was already present in oldstable * New upstream release - update symbols file for new ABI + * Import various post-release fixes from upstream -- Simon McVittie Thu, 24 Nov 2016 10:47:35 +0000 diff --git a/debian/patches/Terminate-individual-tests-after-half-an-hour.patch b/debian/patches/debian/Terminate-individual-tests-after-half-an-hour.patch similarity index 81% rename from debian/patches/Terminate-individual-tests-after-half-an-hour.patch rename to debian/patches/debian/Terminate-individual-tests-after-half-an-hour.patch index 3b279bb6..33f660f4 100644 --- a/debian/patches/Terminate-individual-tests-after-half-an-hour.patch +++ b/debian/patches/debian/Terminate-individual-tests-after-half-an-hour.patch @@ -14,12 +14,15 @@ Signed-off-by: Simon McVittie 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildutil/tap-test b/buildutil/tap-test -index 6b2eb5c..4971f0b 100755 +index c8da31e..fd79122 100755 --- a/buildutil/tap-test +++ b/buildutil/tap-test -@@ -20,4 +20,4 @@ function cleanup () { +@@ -19,7 +19,7 @@ function skip_cleanup() { + echo "Skipping cleanup of ${tempdir}" } - trap cleanup EXIT cd ${tempdir} -${srcd}/${bn} -k --tap +timeout --kill-after=60 1800 ${srcd}/${bn} -k --tap + rc=$? + case "${TEST_SKIP_CLEANUP:-}" in + no|"") cleanup ;; diff --git a/debian/patches/delta-compilation-Fix-leak.patch b/debian/patches/delta-compilation-Fix-leak.patch new file mode 100644 index 00000000..c7b06d82 --- /dev/null +++ b/debian/patches/delta-compilation-Fix-leak.patch @@ -0,0 +1,46 @@ +From: Alexander Larsson +Date: Mon, 28 Nov 2016 17:21:59 +0100 +Subject: delta compilation: Fix leak + +We need to ref-sik the new varian for g_autoptr to work + +Closes: #597 +Approved by: cgwalters +Origin: upstream, 2016.15, commit:d57036f +--- + .../ostree-repo-static-delta-compilation.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/src/libostree/ostree-repo-static-delta-compilation.c b/src/libostree/ostree-repo-static-delta-compilation.c +index 4b0bc50..22c45e6 100644 +--- a/src/libostree/ostree-repo-static-delta-compilation.c ++++ b/src/libostree/ostree-repo-static-delta-compilation.c +@@ -1532,17 +1532,17 @@ ostree_repo_static_delta_generate (OstreeRepo *self, + /* floating */ GVariant *to_csum_v = + ostree_checksum_to_bytes_v (to); + +- delta_descriptor = g_variant_new ("(@a{sv}t@ay@ay@" OSTREE_COMMIT_GVARIANT_STRING "ay" +- "a" OSTREE_STATIC_DELTA_META_ENTRY_FORMAT +- "@a" OSTREE_STATIC_DELTA_FALLBACK_FORMAT ")", +- g_variant_builder_end (&metadata_builder), +- GUINT64_TO_BE (g_date_time_to_unix (now)), +- from_csum_v, +- to_csum_v, +- to_commit, +- g_variant_builder_new (G_VARIANT_TYPE ("ay")), +- part_headers, +- fallback_headers); ++ delta_descriptor = g_variant_ref_sink (g_variant_new ("(@a{sv}t@ay@ay@" OSTREE_COMMIT_GVARIANT_STRING "ay" ++ "a" OSTREE_STATIC_DELTA_META_ENTRY_FORMAT ++ "@a" OSTREE_STATIC_DELTA_FALLBACK_FORMAT ")", ++ g_variant_builder_end (&metadata_builder), ++ GUINT64_TO_BE (g_date_time_to_unix (now)), ++ from_csum_v, ++ to_csum_v, ++ to_commit, ++ g_variant_builder_new (G_VARIANT_TYPE ("ay")), ++ part_headers, ++ fallback_headers)); + g_date_time_unref (now); + } + diff --git a/debian/patches/ostree-repo-traverse-Don-t-leak-floating-GVariant.patch b/debian/patches/ostree-repo-traverse-Don-t-leak-floating-GVariant.patch new file mode 100644 index 00000000..e248e9e1 --- /dev/null +++ b/debian/patches/ostree-repo-traverse-Don-t-leak-floating-GVariant.patch @@ -0,0 +1,50 @@ +From: Alexander Larsson +Date: Mon, 28 Nov 2016 15:31:04 +0100 +Subject: ostree-repo-traverse: Don't leak floating GVariant + +ostree_object_name_serialize returns a floating ref, so we need +to sink it before putting in the hashtable. + +Closes: #595 +Approved by: cgwalters +Origin: upstream, 2016.15, commit:fc107e5 +--- + src/libostree/ostree-repo-traverse.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/libostree/ostree-repo-traverse.c b/src/libostree/ostree-repo-traverse.c +index e620a8a..46f8324 100644 +--- a/src/libostree/ostree-repo-traverse.c ++++ b/src/libostree/ostree-repo-traverse.c +@@ -348,7 +348,7 @@ traverse_iter (OstreeRepo *repo, + ostree_repo_commit_traverse_iter_get_file (iter, &name, &checksum); + + g_debug ("Found file object %s", checksum); +- key = ostree_object_name_serialize (checksum, OSTREE_OBJECT_TYPE_FILE); ++ key = g_variant_ref_sink (ostree_object_name_serialize (checksum, OSTREE_OBJECT_TYPE_FILE)); + g_hash_table_replace (inout_reachable, key, key); + key = NULL; + } +@@ -363,11 +363,11 @@ traverse_iter (OstreeRepo *repo, + + g_debug ("Found dirtree object %s", content_checksum); + g_debug ("Found dirmeta object %s", meta_checksum); +- key = ostree_object_name_serialize (meta_checksum, OSTREE_OBJECT_TYPE_DIR_META); ++ key = g_variant_ref_sink (ostree_object_name_serialize (meta_checksum, OSTREE_OBJECT_TYPE_DIR_META)); + g_hash_table_replace (inout_reachable, key, key); + key = NULL; + +- key = ostree_object_name_serialize (content_checksum, OSTREE_OBJECT_TYPE_DIR_TREE); ++ key = g_variant_ref_sink (ostree_object_name_serialize (content_checksum, OSTREE_OBJECT_TYPE_DIR_TREE)); + if (!g_hash_table_lookup (inout_reachable, key)) + { + g_hash_table_replace (inout_reachable, key, key); +@@ -463,7 +463,7 @@ ostree_repo_traverse_commit_union (OstreeRepo *repo, + OstreeRepoCommitState commitstate; + gboolean ignore_missing_dirs = FALSE; + +- key = ostree_object_name_serialize (commit_checksum, OSTREE_OBJECT_TYPE_COMMIT); ++ key = g_variant_ref_sink (ostree_object_name_serialize (commit_checksum, OSTREE_OBJECT_TYPE_COMMIT)); + + if (g_hash_table_contains (inout_reachable, key)) + break; diff --git a/debian/patches/ostree-repo-traverse-Remove-an-accidental-print-statement.patch b/debian/patches/ostree-repo-traverse-Remove-an-accidental-print-statement.patch new file mode 100644 index 00000000..9870cc00 --- /dev/null +++ b/debian/patches/ostree-repo-traverse-Remove-an-accidental-print-statement.patch @@ -0,0 +1,24 @@ +From: "Jasper St. Pierre" +Date: Wed, 23 Nov 2016 13:52:39 -0800 +Subject: ostree-repo-traverse: Remove an accidental print statement + +Closes: #594 +Approved by: jlebon +Origin: upstream, 2016.15, commit:70d140d +--- + src/libostree/ostree-repo-traverse.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libostree/ostree-repo-traverse.c b/src/libostree/ostree-repo-traverse.c +index 5d99476..e620a8a 100644 +--- a/src/libostree/ostree-repo-traverse.c ++++ b/src/libostree/ostree-repo-traverse.c +@@ -407,7 +407,7 @@ traverse_dirtree (OstreeRepo *repo, + if (ignore_missing_dirs && + g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) + { +- g_print ("Ignoring not-found dirmeta %s", checksum); ++ g_debug ("Ignoring not-found dirmeta %s", checksum); + ret = TRUE; + } + else diff --git a/debian/patches/pull-Don-t-leak-delta-superblock-variants.patch b/debian/patches/pull-Don-t-leak-delta-superblock-variants.patch new file mode 100644 index 00000000..bece305a --- /dev/null +++ b/debian/patches/pull-Don-t-leak-delta-superblock-variants.patch @@ -0,0 +1,35 @@ +From: Alexander Larsson +Date: Mon, 28 Nov 2016 15:57:11 +0100 +Subject: pull: Don't leak delta superblock variants + +Closes: #596 +Approved by: cgwalters +Origin: upstream, 2016.15, commit:36f7824 +--- + src/libostree/ostree-repo-pull.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c +index 303daec..ffa387a 100644 +--- a/src/libostree/ostree-repo-pull.c ++++ b/src/libostree/ostree-repo-pull.c +@@ -1478,8 +1478,8 @@ request_static_delta_superblock_sync (OtPullData *pull_data, + } + } + +- ret_delta_superblock = g_variant_new_from_bytes ((GVariantType*)OSTREE_STATIC_DELTA_SUPERBLOCK_FORMAT, +- delta_superblock_data, FALSE); ++ ret_delta_superblock = g_variant_ref_sink (g_variant_new_from_bytes ((GVariantType*)OSTREE_STATIC_DELTA_SUPERBLOCK_FORMAT, ++ delta_superblock_data, FALSE)); + } + + ret = TRUE; +@@ -2951,7 +2951,7 @@ ostree_repo_pull_with_options (OstreeRepo *self, + g_autofree char *from_revision = NULL; + const char *ref = key; + const char *to_revision = value; +- GVariant *delta_superblock = NULL; ++ g_autoptr(GVariant) delta_superblock = NULL; + + if (!ostree_repo_resolve_rev (pull_data->repo, ref, TRUE, + &from_revision, error)) diff --git a/debian/patches/pull-scan_commit_object-don-t-load-variant-twice.patch b/debian/patches/pull-scan_commit_object-don-t-load-variant-twice.patch new file mode 100644 index 00000000..2b58038c --- /dev/null +++ b/debian/patches/pull-scan_commit_object-don-t-load-variant-twice.patch @@ -0,0 +1,29 @@ +From: Alexander Larsson +Date: Mon, 28 Nov 2016 13:58:19 +0100 +Subject: pull: scan_commit_object() - don't load variant twice + +ostree_repo_load_commit already loaded the object, no need +to load it twice. + +Closes: #595 +Approved by: cgwalters +Origin: upstream, 2016.15, commit:c9b158e +--- + src/libostree/ostree-repo-pull.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c +index 9e96079..6f32c77 100644 +--- a/src/libostree/ostree-repo-pull.c ++++ b/src/libostree/ostree-repo-pull.c +@@ -1137,10 +1137,6 @@ scan_commit_object (OtPullData *pull_data, + is_partial = pull_data->legacy_transaction_resuming + || (commitstate & OSTREE_REPO_COMMIT_STATE_PARTIAL) > 0; + +- if (!ostree_repo_load_variant (pull_data->repo, OSTREE_OBJECT_TYPE_COMMIT, checksum, +- &commit, error)) +- goto out; +- + /* PARSE OSTREE_SERIALIZED_COMMIT_VARIANT */ + g_variant_get_child (commit, 1, "@ay", &parent_csum); + if (g_variant_n_children (parent_csum) > 0) diff --git a/debian/patches/pull_with_options-Don-t-leak-csum_v.patch b/debian/patches/pull_with_options-Don-t-leak-csum_v.patch new file mode 100644 index 00000000..0345c142 --- /dev/null +++ b/debian/patches/pull_with_options-Don-t-leak-csum_v.patch @@ -0,0 +1,24 @@ +From: Alexander Larsson +Date: Mon, 28 Nov 2016 15:56:50 +0100 +Subject: pull_with_options: Don't leak csum_v + +Closes: #596 +Approved by: cgwalters +Origin: upstream, 2016.15, commit:239cb14 +--- + src/libostree/ostree-repo-pull.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c +index 6f32c77..303daec 100644 +--- a/src/libostree/ostree-repo-pull.c ++++ b/src/libostree/ostree-repo-pull.c +@@ -2800,7 +2800,7 @@ ostree_repo_pull_with_options (OstreeRepo *self, + for (i = 0; i < n; i++) + { + const char *delta; +- GVariant *csum_v = NULL; ++ g_autoptr(GVariant) csum_v = NULL; + guchar *csum_data = g_malloc (OSTREE_SHA256_DIGEST_LEN); + g_autoptr(GVariant) ref = g_variant_get_child_value (deltas, i); + diff --git a/debian/patches/series b/debian/patches/series index f9022895..c90823f5 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,7 @@ -Terminate-individual-tests-after-half-an-hour.patch +ostree-repo-traverse-Remove-an-accidental-print-statement.patch +pull-scan_commit_object-don-t-load-variant-twice.patch +ostree-repo-traverse-Don-t-leak-floating-GVariant.patch +pull_with_options-Don-t-leak-csum_v.patch +pull-Don-t-leak-delta-superblock-variants.patch +delta-compilation-Fix-leak.patch +debian/Terminate-individual-tests-after-half-an-hour.patch