gnu: duc: Fix build.

* gnu/packages/patches/duc-fix-test-sh.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it here.
* gnu/packages/disk.scm (duc): Use it here.

Change-Id: I664614dc35fb88f8ee63dbe727a38f17f4af0f8e
Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
Vivien Kraus 2024-03-23 08:12:48 +01:00 committed by Christopher Baines
parent 85c99aa1cf
commit 19cd76e3f7
No known key found for this signature in database
GPG key ID: 5E28A33B0B84F577
3 changed files with 74 additions and 1 deletions

View file

@ -1114,6 +1114,7 @@ dist_patch_DATA = \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.patch \
%D%/packages/patches/dtc-meson-cell-overflow.patch \
%D%/packages/patches/duc-fix-test-sh.patch \
%D%/packages/patches/dune-common-skip-failing-tests.patch \
%D%/packages/patches/dune-grid-add-missing-include-cassert.patch \
%D%/packages/patches/dune-istl-fix-solver-playground.patch \

View file

@ -1562,7 +1562,9 @@ (define-public duc
(file-name (git-file-name name version))
(sha256
(base32
"0sglcn38rgn6y3m5ahngizyn3x2rzhqjphs7g0ppnlinkz56rcv4"))))
"0sglcn38rgn6y3m5ahngizyn3x2rzhqjphs7g0ppnlinkz56rcv4"))
(patches
(search-patches "duc-fix-test-sh.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View file

@ -0,0 +1,70 @@
From a84835e481d9b5fcfc101bb1fa5aba38a245b6f3 Mon Sep 17 00:00:00 2001
Message-ID: <a84835e481d9b5fcfc101bb1fa5aba38a245b6f3.1711177846.git.vivien@planete-kraus.eu>
From: Fabio Natali <me@fabionatali.com>
Date: Wed, 30 Aug 2023 11:35:40 +0100
Subject: [PATCH] Fix test.sh which used to fail in some circumstances
duc's behaviour may legitimately vary depending on the system it is being run
on. The test.sh script used to fail in some circumstances as it was too strict
and it did not account for some legitimate behaviour differences.
Fix: update `test.sh' variable
---
This is a squash of pull request https://github.com/zevv/duc/pull/318,
waiting to be merged.
test.sh | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/test.sh b/test.sh
index eb592be..7668499 100755
--- a/test.sh
+++ b/test.sh
@@ -130,8 +130,8 @@ fi
# Actual tests are below. If you add test cases above, these need to be tweaked.
#---------------------------------------------------------------------------------
-
-cat ${DUC_TEST_DIR}.out | grep -q "Indexed 77 files and 47 directories, (91869B apparent, 540672B actual)"
+# An exact match is expected on the apparent size; the actual size may vary.
+cat ${DUC_TEST_DIR}.out | grep -q "Indexed 77 files and 47 directories, (91869B apparent, [0-9]*B actual)"
if [ "$?" = "0" ]; then
echo "report: ok"
@@ -153,16 +153,26 @@ if [ "$?" != "0" ]; then
exit 1
fi
-testsum="33e2be27a9e70e81d4006a2d7b555948"
+# When two or more hard links point to the same file and when running duc with
+# the `--check-hard-links' option, only one of the hard links will be
+# counted. However, duc may pick up and display a different hard link depending
+# on the system it is being run on. Since our tests include three hard links to
+# the same file, we should be expecting three possible outcomes, all equally
+# valid, each corresponding to one of the following MD5 checksums.
+testsum0="78dbf880ef6917ea665fddb5ebb44428"
+testsum1="38ab7b7d1ec6ac57d672c5618371386d"
+testsum2="33e2be27a9e70e81d4006a2d7b555948"
md5sum ${DUC_TEST_DIR}.out > /tmp/.duc.md5sum
-grep -q $testsum /tmp/.duc.md5sum
+grep -q "$testsum0\|$testsum1\|$testsum2" /tmp/.duc.md5sum
if [ "$?" = "0" ]; then
echo "md5sum: ok"
else
echo "md5sum: failed"
- echo "expected: "
- echo "$testsum ${DUC_TEST_DIR}.out"
+ echo "expected one of: "
+ echo "$testsum0 ${DUC_TEST_DIR}.out"
+ echo "$testsum1 ${DUC_TEST_DIR}.out"
+ echo "$testsum2 ${DUC_TEST_DIR}.out"
echo "got: "
cat /tmp/.duc.md5sum
exit 1
base-commit: b8f9659688a38476df9f613be3342bb8e2d65402
--
2.41.0