Package: herdtools7
Version: 7.58-1
Severity: grave
Justification: renders package unusable
Dear Maintainer,
herdtools7 7.58-1 cannot run a single litmus test, which is the package's
sole purpose: every invocation stops at "Cannot find file x86tso.cat". There
are two independent causes. First, debian/herdtools7.install lists only
usr/bin/*, so the package ships 56 executables and not one of the .cat memory
models they operate on; upstream installs those as
${prefix}/share/herdtools7/herd and ${prefix}/share/herdtools7/litmus.
Second, debian/rules runs "make Version.ml" without passing PREFIX, and the
upstream default is PREFIX=$$HOME, so the model directory compiled into every
binary is the build-time home directory -- /sbuild-nonexistent under sbuild.
Fixing either alone leaves the package unusable: with the files installed the
binaries still look in /sbuild-nonexistent, and with PREFIX corrected there is
still nothing under /usr/share/herdtools7. Passing PREFIX would also clear the
unreproducible-build flag on amd64 and arm64, since that $HOME is what differs
between the two test builds. The underlying upstream design issue -- PREFIX
being consumed at both "make" and "make install" with nothing keeping the two
consistent -- is tracked as herd/herdtools7#1930.
$ herd7 -version
7.58, Rev: exported
$ herd7 -libdir
/sbuild-nonexistent/share/herdtools7/herd
$ dpkg -L herdtools7 | grep -c '\.cat$'
0
$ herd7 /tmp/t.litmus ; echo "exit=$?"
Warning: File "/tmp/t.litmus": Cannot find file x86tso.cat
exit=0
Ubuntu 26.04, package 7.58-1 with no ubuntuN delta; both defects are in the
Debian packaging sources.
Suggested fix:
debian/rules make Version.ml -> make Version.ml PREFIX=/usr
debian/herdtools7.install add line usr/share/herdtools7
For 7.58 the two trees also need copying into debian/tmp, since upstream
installs them from dune-install.sh, outside dune:
cp -r herd/libdir debian/tmp/usr/share/herdtools7/herd
cp -r litmus/libdir debian/tmp/usr/share/herdtools7/litmus
Upstream PR herd/herdtools7#1902 has since moved that into dune, so a newer
snapshot would need only the .install line.