Hi, > They are usually named "libghc-.*-dev", but I think it is safer to match > on the target of the rpath: If it is in /usr/lib/ghc/, it is ok.
That is already Implemented. The check was recently made separate and is now nice and manageable. [1] The sources mentioned in the bug, haskell-mtl, is no longer in the archive but I checked with haskell hledger. [2] The installation package libghc-hledger-dev ships the following object files with custom library search paths: RPATH /usr/lib/ghc/pretty-1.1.3.6 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/transformers-0.5.6.2 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/ghc-prim-0.5.3 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/process-1.6.9.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/integer-gmp-1.0.2.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/unix-2.7.2.2 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/stm-2.5.0.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/base-4.13.0.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/time-1.9.3 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/haskeline-0.7.5.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/array-0.5.4.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/filepath-1.4.2.1 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/parsec-3.1.14.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/rts in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/template-haskell-2.15.0.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/text-1.2.4.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/mtl-2.2.2 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/containers-0.6.2.1 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/deepseq-1.4.4.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/terminfo-0.4.1.4 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/ghc-boot-th-8.8.4 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/directory-1.3.6.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/bytestring-0.10.10.1 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so RPATH /usr/lib/ghc/binary-0.8.7.0 in usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so At the same time, Lintian produces only one hint about it: E: libghc-hledger-dev: missing-depends-on-sensible-utils sensible-browser usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so I: libghc-hledger-dev: hardening-no-bindnow usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so I: libghc-hledger-dev: spelling-error-in-binary usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so ment meant P: libghc-hledger-dev: renamed-tag binary-or-shlib-defines-rpath => custom-library-search-path in line 1 P: libghc-hledger-dev: repeated-path-segment lib usr/lib/haskell-packages/ghc/lib/ O: libghc-hledger-dev: custom-library-search-path RUNPATH /usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4 [usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.8.4/libHShledger-1.19.1-DfDb19q3FdlIJW0KnhRJyq-ghc8.8.4.so] That override is needed because the path /usr/lib/haskell-packages was not identified as a package-private path. A lot of Haskell packages have those overrides in the archive. [3] You probably added them wholesale. Lintian recently gained the ability to grant exemptions to package groups. [4] We would be happy to deploy that facility on your behalf. What is nowadays the most reliable way to tell that an object file was probably built from the Haskell toolchain? On a side note, Lintian's new website was just re-implemented in Haskell. It is one of my favorite languages. Please ask for more Haskell support from Lintian. Thanks! Kind regards Felix Lechner [1] https://salsa.debian.org/lintian/lintian/-/tree/master/lib/Lintian/Check//Binaries/Rpath.pm [2] https://tracker.debian.org/pkg/haskell-hledger [3] https://lintian.debian.org/tags/custom-library-search-path [4] https://lintian.debian.org/screens
