Hi! I have noticed self-check failures of libidn on ArchLinux: https://gitlab.com/libidn/libidn/-/jobs/932649011 The gnulib self-tests that fail are: test-binary-io.sh test-perror.sh test-init.sh https://gitlab.com/libidn/libidn/-/jobs/932649011/artifacts/file/libidn-1.36a/b/gltests/test-binary-io.sh.log https://gitlab.com/libidn/libidn/-/jobs/932649011/artifacts/file/libidn-1.36a/b/gltests/test-perror.sh.log https://gitlab.com/libidn/libidn/-/jobs/932649011/artifacts/file/libidn-1.36a/b/gltests/test-init.sh.log Essentialy it boils down to: ../../gltests/test-binary-io.sh: line 8: cmp: command not found test-init.sh: failed test: err not empty: ../../gltests/init.sh: line 648: cmp: command not found ../../gltests/test-perror.sh: line 14: diff: command not found I was a little surprised ArchLinux do not have cmp/diff by default, but I was surprised that nothing except these gnulib tests failed. I am reading gnulib's DEPENDENCIES which says: * The comparison utilities 'cmp' and 'diff'. + Mandatory. Using the platform's native utilities gives good portability exposure, but you can also use GNU diffutils. + Homepage: https://www.gnu.org/software/diffutils/ I read the DEPENDENCIES file a bit more careful after noticing that it has several mandatory dependencies that I find questionable, and I noticed this in the beginning: The following packages are needed by maintainers for using 'gnulib-tool'. It doesn't say the packages are required for users building gnulib-based packages. I can live with having diffutils installed as a maintainer. Was this subtle distinction intentional? I sympathize with ArchLinux's decision to be minimal, so my preference is to make things work when it appears to be so simple. What do you think about rewriting these self-tests to avoid cmp/diff? Does anyone know a good portable shell-based idiom for comparing files instead of using cmp/diff? I'm posting this instead of just fixing the self-tests because I have a suspicion this has been discussed, and maybe it is time to revisit it. /Simon