[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: lintian: Allow rpaths in /usr/lib/ghc/



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


Reply to: