diff -Nru glib2.0-2.56.4/debian/changelog glib2.0-2.56.4/debian/changelog --- glib2.0-2.56.4/debian/changelog 2019-02-26 11:59:03.000000000 +0000 +++ glib2.0-2.56.4/debian/changelog 2019-03-22 12:17:34.000000000 +0000 @@ -1,3 +1,12 @@ +glib2.0 (2.56.4-0ubuntu0.18.04.2) bionic; urgency=medium + + * Backport upstream patches to fix GVariant alignment tests + d/p/gvariant-test-Also-force-alignment-for-tuple-test-data.patch, + d/p/tests-Allocate-gvariant-data-from-the-heap-to-guarantee-a.patch: + Cherry-pick. + + -- Iain Lane Fri, 22 Mar 2019 12:17:34 +0000 + glib2.0 (2.56.4-0ubuntu0.18.04.1) bionic; urgency=medium * New upstream release (LP: #1816547) diff -Nru glib2.0-2.56.4/debian/patches/gvariant-test-Also-force-alignment-for-tuple-test-data.patch glib2.0-2.56.4/debian/patches/gvariant-test-Also-force-alignment-for-tuple-test-data.patch --- glib2.0-2.56.4/debian/patches/gvariant-test-Also-force-alignment-for-tuple-test-data.patch 1970-01-01 00:00:00.000000000 +0000 +++ glib2.0-2.56.4/debian/patches/gvariant-test-Also-force-alignment-for-tuple-test-data.patch 2019-03-22 12:17:34.000000000 +0000 @@ -0,0 +1,46 @@ +From: Simon McVittie +Date: Thu, 3 Jan 2019 08:21:40 +0000 +Subject: gvariant test: Also force alignment for tuple test data + +glib!552 (commit 9eed22b3) fixed this for the tests that failed on i686, +but this additional test failed on Debian's s390x port +(IBM z/Architecture, 64-bit big-endian). + +Signed-off-by: Simon McVittie + +Origin: upstream, commit:4ef58e5661849317a1110c9b93957f2c608677dd +Applied-Upstream: 2.56.5 +--- + glib/tests/gvariant.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/glib/tests/gvariant.c b/glib/tests/gvariant.c +index a7b1982..c4a996c 100644 +--- a/glib/tests/gvariant.c ++++ b/glib/tests/gvariant.c +@@ -4820,6 +4820,7 @@ test_normal_checking_array_offsets (void) + static void + test_normal_checking_tuple_offsets (void) + { ++ gpointer aligned_data; + const guint8 data[] = { + 0x07, 0xe5, 0x00, 0x07, 0x00, 0x07, + '(', 'a', 's', 'a', 's', 'a', 's', 'a', 's', 'a', 's', 'a', 's', ')', +@@ -4828,13 +4829,15 @@ test_normal_checking_tuple_offsets (void) + GVariant *variant = NULL; + GVariant *normal_variant = NULL; + +- variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size, +- FALSE, NULL, NULL); ++ aligned_data = g_memdup (data, size); /* guarantee alignment */ ++ variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, ++ size, FALSE, NULL, NULL); + g_assert_nonnull (variant); + + normal_variant = g_variant_get_normal_form (variant); + g_assert_nonnull (normal_variant); + ++ g_free (aligned_data); + g_variant_unref (normal_variant); + g_variant_unref (variant); + } diff -Nru glib2.0-2.56.4/debian/patches/series glib2.0-2.56.4/debian/patches/series --- glib2.0-2.56.4/debian/patches/series 2019-02-26 11:59:03.000000000 +0000 +++ glib2.0-2.56.4/debian/patches/series 2019-03-22 12:17:34.000000000 +0000 @@ -1,3 +1,5 @@ +tests-Allocate-gvariant-data-from-the-heap-to-guarantee-a.patch +gvariant-test-Also-force-alignment-for-tuple-test-data.patch 01_gettext-desktopfiles.patch 07_disable_tests_on_slow_archs.patch 81-skip-monitor-test-on-non-linux.patch diff -Nru glib2.0-2.56.4/debian/patches/tests-Allocate-gvariant-data-from-the-heap-to-guarantee-a.patch glib2.0-2.56.4/debian/patches/tests-Allocate-gvariant-data-from-the-heap-to-guarantee-a.patch --- glib2.0-2.56.4/debian/patches/tests-Allocate-gvariant-data-from-the-heap-to-guarantee-a.patch 1970-01-01 00:00:00.000000000 +0000 +++ glib2.0-2.56.4/debian/patches/tests-Allocate-gvariant-data-from-the-heap-to-guarantee-a.patch 2019-03-22 12:17:34.000000000 +0000 @@ -0,0 +1,94 @@ +From: Mart Raudsepp +Date: Wed, 19 Dec 2018 16:22:21 +0200 +Subject: tests: Allocate gvariant data from the heap to guarantee alignment + +On glib-2-58 branch we don't have !455, thus we need aligned data +for the gvariant tests to not fail on i686. + +Fixes #1626 + +Origin: upstream, commit:85c4031696add9797e2334ced20678edcd96c869 +Applied-Upstream: 2.56.5 +--- + glib/tests/gvariant.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/glib/tests/gvariant.c b/glib/tests/gvariant.c +index 6e417f6..a7b1982 100644 +--- a/glib/tests/gvariant.c ++++ b/glib/tests/gvariant.c +@@ -4664,6 +4664,7 @@ test_stack_dict_init (void) + static void + test_normal_checking_tuples (void) + { ++ gpointer aligned_data; + const guint8 data[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 'a', '(', 'a', 'o', 'a', 'o', 'a', 'a', 'o', 'a', 'a', 'o', ')' +@@ -4672,13 +4673,15 @@ test_normal_checking_tuples (void) + GVariant *variant = NULL; + GVariant *normal_variant = NULL; + +- variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size, ++ aligned_data = g_memdup (data, size); /* guarantee alignment */ ++ variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size, + FALSE, NULL, NULL); + g_assert_nonnull (variant); + + normal_variant = g_variant_get_normal_form (variant); + g_assert_nonnull (normal_variant); + ++ g_free (aligned_data); + g_variant_unref (normal_variant); + g_variant_unref (variant); + } +@@ -4790,6 +4793,7 @@ test_recursion_limits_array_in_variant (void) + static void + test_normal_checking_array_offsets (void) + { ++ gpointer aligned_data; + const guint8 data[] = { + 0x07, 0xe5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'g', +@@ -4798,13 +4802,15 @@ test_normal_checking_array_offsets (void) + GVariant *variant = NULL; + GVariant *normal_variant = NULL; + +- variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size, ++ aligned_data = g_memdup (data, size); /* guarantee alignment */ ++ variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size, + FALSE, NULL, NULL); + g_assert_nonnull (variant); + + normal_variant = g_variant_get_normal_form (variant); + g_assert_nonnull (normal_variant); + ++ g_free (aligned_data); + g_variant_unref (normal_variant); + g_variant_unref (variant); + } +@@ -4838,6 +4844,7 @@ test_normal_checking_tuple_offsets (void) + static void + test_normal_checking_empty_object_path (void) + { ++ gpointer aligned_data; + const guint8 data[] = { + 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, + '(', 'h', '(', 'a', 'i', 'a', 'b', 'i', 'o', ')', ')', +@@ -4846,13 +4853,15 @@ test_normal_checking_empty_object_path (void) + GVariant *variant = NULL; + GVariant *normal_variant = NULL; + +- variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size, ++ aligned_data = g_memdup (data, size); /* guarantee alignment */ ++ variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size, + FALSE, NULL, NULL); + g_assert_nonnull (variant); + + normal_variant = g_variant_get_normal_form (variant); + g_assert_nonnull (normal_variant); + ++ g_free (aligned_data); + g_variant_unref (normal_variant); + g_variant_unref (variant); + }