summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/systemd/PKGBUILD11
-rw-r--r--core/systemd/lz4-test-compress-partial.patch31
2 files changed, 42 insertions, 0 deletions
diff --git a/core/systemd/PKGBUILD b/core/systemd/PKGBUILD
new file mode 100644
index 00000000..be057de8
--- /dev/null
+++ b/core/systemd/PKGBUILD
@@ -0,0 +1,11 @@
+# LZ4 test fails, see upstream FS#60239
+
+source+=(lz4-test-compress-partial.patch)
+sha512sums+=('afc199c8d091c1b87fa0719b82bb29ff32595d51034127d1a8c7f83f539f52d0d8a4fa90cf22e286bf3e9104603ecfc9275c3527b9adc2d05d9bcb9234e3c208')
+
+eval "$(
+ declare -f prepare | \
+ sed '
+ /patch.*/a patch -Np1 -i ../lz4-test-compress-partial.patch
+ '
+)"
diff --git a/core/systemd/lz4-test-compress-partial.patch b/core/systemd/lz4-test-compress-partial.patch
new file mode 100644
index 00000000..421e186f
--- /dev/null
+++ b/core/systemd/lz4-test-compress-partial.patch
@@ -0,0 +1,31 @@
+diff --git a/meson.build b/meson.build
+index 554e67e5dd..3636a0ff8c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1084,6 +1084,7 @@ conf.set10('HAVE_XZ', have)
+ want_lz4 = get_option('lz4')
+ if want_lz4 != 'false' and not fuzzer_build
+ liblz4 = dependency('liblz4',
++ version : '>= 1.8.3',
+ required : want_lz4 == 'true')
+ have = liblz4.found()
+ else
+diff --git a/src/journal/test-compress.c b/src/journal/test-compress.c
+index 7addf318d6..fb0db190b2 100644
+--- a/src/journal/test-compress.c
++++ b/src/journal/test-compress.c
+@@ -227,13 +227,10 @@ static void test_lz4_decompress_partial(void) {
+ assert_se(r >= 0);
+ log_info("Decompressed partial %i/%i → %i", 12, HUGE_SIZE, r);
+
+- /* We expect this to fail, because that's how current lz4 works. If this
+- * call succeeds, then lz4 has been fixed, and we need to change our code.
+- */
+ r = LZ4_decompress_safe_partial(buf, huge,
+ compressed,
+ 12, HUGE_SIZE-1);
+- assert_se(r < 0);
++ assert_se(r >= 0);
+ log_info("Decompressed partial %i/%i → %i", 12, HUGE_SIZE-1, r);
+ }
+ #endif