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

Казакевич Олег <[email protected]>
Newsgroups gmane.linux.debian.devel.ocaml
Message-ID <2c43755325a444dbaa65d3b90f4f8e76__37778.1140081183$1786989931$gmane$org@searchinform.ru>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.