summary refs log tree commit diff
path: root/gnu/packages/patches/libcyaml-libyaml-compat.patch
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2020-10-11 16:44:00 +0200
committerMarius Bakke <marius@gnu.org>2020-10-13 23:48:15 +0200
commit0caf236b3b5c9b19ee8709865ae7df9c59e7fe9b (patch)
treef1aff1f12fca4558f12f06133584e60cef13e4cb /gnu/packages/patches/libcyaml-libyaml-compat.patch
parent8008ef29f2f13d998e82bbc5bb66f8489321ae85 (diff)
downloadguix-0caf236b3b5c9b19ee8709865ae7df9c59e7fe9b.tar.gz
gnu: libcyaml: Fix build with libyaml 0.2.5.
* gnu/packages/patches/libcyaml-libyaml-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/web.scm (libcyaml)[source](patches): New field.
Diffstat (limited to 'gnu/packages/patches/libcyaml-libyaml-compat.patch')
-rw-r--r--gnu/packages/patches/libcyaml-libyaml-compat.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/patches/libcyaml-libyaml-compat.patch b/gnu/packages/patches/libcyaml-libyaml-compat.patch
new file mode 100644
index 0000000000..dcb8cb51b8
--- /dev/null
+++ b/gnu/packages/patches/libcyaml-libyaml-compat.patch
@@ -0,0 +1,51 @@
+Fix build against libyaml 0.2.5.
+
+Taken from upstream:
+https://github.com/tlsa/libcyaml/commit/0e947264b947f51f7ea785068637c4bfce5d4171
+
+diff --git a/test/units/save.c b/test/units/save.c
+--- a/test/units/save.c
++++ b/test/units/save.c
+@@ -3476,7 +3476,7 @@ static bool test_save_sequence_null_values_int(
+ 		ttest_report_ctx_t *report,
+ 		const cyaml_config_t *config)
+ {
+-	static const unsigned char ref[] =
++	static const unsigned char ref1[] =
+ 		"---\n"
+ 		"- 7\n"
+ 		"- 6\n"
+@@ -3487,6 +3487,18 @@ static bool test_save_sequence_null_values_int(
+ 		"- \n"
+ 		"- 0\n"
+ 		"...\n";
++	/* As of libyaml 0.2.5, trailing spaces are not emitted. */
++	static const unsigned char ref2[] =
++		"---\n"
++		"- 7\n"
++		"- 6\n"
++		"- 5\n"
++		"-\n"
++		"- 3\n"
++		"- 2\n"
++		"-\n"
++		"- 0\n"
++		"...\n";
+ 	static const int d[] = { 7, 6, 5, 4, 3, 2, 1, 0 };
+ 	static const int *data[] = { d + 0, d + 1, d + 2, NULL,
+ 	                             d + 4, d + 5, NULL, d + 7, };
+@@ -3515,11 +3527,12 @@ static bool test_save_sequence_null_values_int(
+ 		return ttest_fail(&tc, cyaml_strerror(err));
+ 	}
+ 
+-	if (len != YAML_LEN(ref) || memcmp(ref, buffer, len) != 0) {
++	if ((len != YAML_LEN(ref1) || memcmp(ref1, buffer, len) != 0) &&
++	    (len != YAML_LEN(ref2) || memcmp(ref2, buffer, len) != 0)) {
+ 		return ttest_fail(&tc, "Bad data:\n"
+ 				"EXPECTED (%zu):\n\n%.*s\n\n"
+ 				"GOT (%zu):\n\n%.*s\n",
+-				YAML_LEN(ref), YAML_LEN(ref), ref,
++				YAML_LEN(ref1), YAML_LEN(ref1), ref1,
+ 				len, len, buffer);
+ 	}
+