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

Bug#770376: marked as done (lintian: Allow rpaths in /usr/lib/ghc/)



Your message dated Tue, 9 Nov 2021 04:32:19 -0800
with message-id <CAFHYt54zRxStzqQq2C+Lni+W_kYEfptFmFfSQk+JK+SneJAZiA@mail.gmail.com>
and subject line Re: lintian: Allow rpaths in /usr/lib/ghc/
has caused the Debian Bug report #770376,
regarding lintian: Allow rpaths in /usr/lib/ghc/
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
770376: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770376
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: lintian
Version: 2.5.30+deb8u2
Severity: important

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I just tried to upload a Haskell package built with ghc-7.8, but it was
rejected:

libghc-mtl-dev: lintian output: 'binary-or-shlib-defines-rpath usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.8.3/mtl-2.1.3.1/libHSmtl-2.1.3.1-ghc7.8.3.so /usr/lib/ghc/ghc-prim-0.3.1.0', automatically rejected package.
libghc-mtl-dev: If you have a good reason, you may override this lintian tag.
libghc-mtl-dev: lintian output: 'binary-or-shlib-defines-rpath usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.8.3/mtl-2.1.3.1/libHSmtl-2.1.3.1-ghc7.8.3.so /usr/lib/ghc/integer-gmp-0.5.1.0', automatically rejected package.
libghc-mtl-dev: If you have a good reason, you may override this lintian tag.
libghc-mtl-dev: lintian output: 'binary-or-shlib-defines-rpath usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.8.3/mtl-2.1.3.1/libHSmtl-2.1.3.1-ghc7.8.3.so /usr/lib/ghc/transformers-0.3.0.0', automatically rejected package.
libghc-mtl-dev: If you have a good reason, you may override this lintian tag.
libghc-mtl-dev: lintian output: 'binary-or-shlib-defines-rpath usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.8.3/mtl-2.1.3.1/libHSmtl-2.1.3.1-ghc7.8.3.so /usr/lib/ghc/base-4.7.0.1', automatically rejected package.
libghc-mtl-dev: If you have a good reason, you may override this lintian tag.
libghc-mtl-dev: lintian output: 'binary-or-shlib-defines-rpath usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.8.3/mtl-2.1.3.1/libHSmtl-2.1.3.1-ghc7.8.3.so /usr/lib/ghc/rts-1.0', automatically rejected package.
libghc-mtl-dev: If you have a good reason, you may override this lintian tag.

GHC-7.8 (in experimental) started to also create shared libraries, but
these live in private paths, so it uses rpath allow the linker to find
them. It seems to me that this is a valid use of rpath.

I could start to create override files and add them to ~700 packages,
but it seems to make more sense to make lintian aware of this use, and
do not report this error for  rpaths pointing to something in /usr/lib/ghc/.

I mark this as important as it prevents us from uploading further
Haskell packages to experimental (at least without temporary
work-arounds).

Thanks,
Joachim

- -- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (101, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
armhf

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages lintian depends on:
ii  binutils                       2.24.90.20141111-2
ii  bzip2                          1.0.6-7+b1
ii  diffstat                       1.58-1
ii  file                           1:5.20-2
ii  gettext                        0.19.3-1
ii  hardening-includes             2.7
ii  intltool-debian                0.35.0+20060710.1
ii  libapt-pkg-perl                0.1.29+b2
ii  libarchive-zip-perl            1.39-1
ii  libclass-accessor-perl         0.34-1
ii  libclone-perl                  0.37-1+b1
ii  libdpkg-perl                   1.17.21
ii  libemail-valid-perl            1.195-1
ii  libfile-basedir-perl           0.03-1
ii  libipc-run-perl                0.92-1
ii  liblist-moreutils-perl         0.33-2+b1
ii  libparse-debianchangelog-perl  1.2.0-1.1
ii  libtext-levenshtein-perl       0.11-1
ii  libtimedate-perl               2.3000-2
ii  liburi-perl                    1.64-1
ii  man-db                         2.7.0.2-3
ii  patchutils                     0.3.3-1
ii  perl [libdigest-sha-perl]      5.20.1-3
ii  t1utils                        1.38-1

Versions of packages lintian recommends:
ii  libautodie-perl                 2.25-1
ii  libperlio-gzip-perl             0.18-3+b1
ii  perl                            5.20.1-3
ii  perl-modules [libautodie-perl]  5.20.1-3

Versions of packages lintian suggests:
pn  binutils-multiarch     <none>
ii  dpkg-dev               1.17.21
ii  libhtml-parser-perl    3.71-1+b3
ii  libtext-template-perl  1.46-1
ii  libyaml-perl           1.13-1
ii  xz-utils               5.1.1alpha+20120614-2+b1

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlRuSP4ACgkQ9ijrk0dDIGz51wCgkQZOTfg3npjwFZfLAX0FNmP1
MCwAoJ4kDPK+Zj79/MUB67yDnar6vxSo
=D5ct
-----END PGP SIGNATURE-----

--- End Message ---
--- Begin Message ---
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

--- End Message ---

Reply to: