#1144657 herdtools7: ships no model files and has the build-time $HOME baked in as libdir

Package:
herdtools7
Source:
herdtools7
Description:
Tool suite to test weak memory models
Submitter:
Казакевич Олег
Date:
2026-08-17 18:05:02 UTC
Severity:
normal
#1144657#5
Date:
2026-08-17 17:54:17 UTC
From:
To:
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.