Acknowledgement sent
to Leo 'costela' Antunes <[email protected]>:
New Bug report received and forwarded. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Sat, 08 Sep 2012 14:54:04 GMT) (full text, mbox, link).
Package: lintian
Version: 2.5.10.1
Severity: normal
Tags: patch
Hi,
The attached patch fixes two small issues affecting the
dev-pkg-without-shlib-symlink check:
1) a missing '+' in the regex for libtool-style filenames
2) the order of regex substitutions: the first one would never match since it assumed the second had already been performed.
Cheers
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable'), (100, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.4-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages lintian depends on:
ii binutils 2.22-7.1
ii bzip2 1.0.6-4
ii diffstat 1.55-3
ii file 5.11-2
ii gettext 0.18.1.1-9
ii hardening-includes 2.2
ii intltool-debian 0.35.0+20060710.1
ii libapt-pkg-perl 0.1.26+b1
ii libarchive-zip-perl 1.30-6
ii libc-bin 2.13-35
ii libclass-accessor-perl 0.34-1
ii libclone-perl 0.31-1+b2
ii libdigest-sha-perl 5.71-1
ii libdpkg-perl 1.16.8
ii libemail-valid-perl 0.190-1
ii libipc-run-perl 0.92-1
ii libparse-debianchangelog-perl 1.2.0-1
ii libtimedate-perl 1.2000-1
ii liburi-perl 1.60-1
ii locales 2.13-35
ii man-db 2.6.2-1
ii patchutils 0.3.2-1.1
ii perl [libdigest-sha-perl] 5.14.2-13
lintian recommends no packages.
Versions of packages lintian suggests:
ii binutils-multiarch 2.22-7.1
ii dpkg-dev 1.16.8
ii libhtml-parser-perl 3.69-2
pn libperlio-gzip-perl <none>
ii libtext-template-perl 1.45-2
ii lzma 9.22-2
ii man-db 2.6.2-1
ii xz-utils [lzma] 5.1.1alpha+20120614-1
-- no debconf information
Acknowledgement sent
to Niels Thykier <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Fri, 14 Sep 2012 12:51:05 GMT) (full text, mbox, link).
Subject: Re: Bug#687022: lintian: regex error in dev-pkg-without-shlib-symlink
Date: Fri, 14 Sep 2012 14:48:06 +0200
On 2012-09-08 16:42, Leo 'costela' Antunes wrote:
> Package: lintian
> Version: 2.5.10.1
> Severity: normal
> Tags: patch
>
> Hi,
>
Hi,
> The attached patch fixes two small issues affecting the
> dev-pkg-without-shlib-symlink check:
> 1) a missing '+' in the regex for libtool-style filenames
This appears to be right.
> 2) the order of regex substitutions: the first one would never match since it assumed the second had already been performed.
>
> Cheers
>
> [...]
But I am not certain about this part. I believe it is intentional to do
it in that order based on:
"""
Tag: package-name-doesnt-match-sonames
Severity: normal
Certainty: possible
Info: [...]
.
$ [...] sed -r -e's/([0-9])\.so\./\1-/; s/\.so(\.|$)//; [...]
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
"""
I believe that only one of them are supposed to match.
~Niels
Acknowledgement sent
to Cédric Boutillier <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Mon, 07 Jan 2013 13:03:13 GMT) (full text, mbox, link).
Hi!
I wanted to mention that when preparing a new version of libm4ri, I also
hit this bug: lintian outputs
W: libm4ri-0.0.20120613: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libm4ri-0.0.20120613.so usr/lib/x86_64-linux-gnu/libm4ri-0.0.20120613.so
whereas the -dev package has (as it should according to [1]) a symlink:
./usr/lib/x86_64-linux-gnu/libm4ri.so -> libm4ri-0.0.20120613.so
[1] http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html#devpkg, Section 4.4
Changing the regexp according to the patch by adding a '+' fixes the issue.
Cheers,
Cédric
Acknowledgement sent
to Niels Thykier <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Mon, 07 Jan 2013 15:36:03 GMT) (full text, mbox, link).
On 2013-01-07 14:02, Cédric Boutillier wrote:
> Hi!
>
> I wanted to mention that when preparing a new version of libm4ri, I also
> hit this bug: lintian outputs
>
> W: libm4ri-0.0.20120613: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libm4ri-0.0.20120613.so usr/lib/x86_64-linux-gnu/libm4ri-0.0.20120613.so
>
> whereas the -dev package has (as it should according to [1]) a symlink:
> ./usr/lib/x86_64-linux-gnu/libm4ri.so -> libm4ri-0.0.20120613.so
>
> [1] http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html#devpkg, Section 4.4
>
> Changing the regexp according to the patch by adding a '+' fixes the issue.
>
> Cheers,
>
> Cédric
>
Hi Cédric,
This missing "+" in the regex has been fixed in Lintian 2.5.11
(experimental)[1]; though my question remains if we should really
re-order those regexes.
~Niels
[1] http://lintian.debian.org/source/libm4ri does not list the the tag,
so I believe it covers your particular package.
Acknowledgement sent
to Leo 'costela' Antunes <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Sun, 19 May 2013 00:30:04 GMT) (full text, mbox, link).
Hi,
On 07/01/13 16:32, Niels Thykier wrote:
> This missing "+" in the regex has been fixed in Lintian 2.5.11
> (experimental)[1]; though my question remains if we should really
> re-order those regexes.
I believe you are right. The idea is to find a link with either of the
two formats:
libwhatever.so -> libwhatever-X.so
libwhatever.so -> libwhatever.so.X
So the two regexes really should be mutually exclusive.
However, our package (libevent) actually does the following:
libevent.so -> libevent-2.0.so.2.0.21
My question is: is this worth inclusion in lintian as an acceptable
format, or should I just add an override and be done with it?
FWIW, after a cursory look at the list of tagged packages, there are at
least a couple of other libs using the same format (libdirectfb,
libnet6, probably others).
Cheers
--
Leo "costela" Antunes
[insert a witty retort here]
Acknowledgement sent
to Andreas Metzler <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Sun, 09 Jun 2013 06:57:04 GMT) (full text, mbox, link).
Subject: Bug#687022: lintian: regex error in dev-pkg-without-shlib-symlink
Date: Sun, 9 Jun 2013 08:54:31 +0200
Version: 2.5.13
Hello,
libgcrypt11 also suffers from a false positive of the
dev-pkg-without-shlib-symlink test:
----------------
W: libgcrypt11: dev-pkg-without-shlib-symlink lib/i386-linux-gnu/libgcrypt.so.11.8.1 usr/lib/i386-linux-gnu/libgcrypt.so
----------------
(SID)ametzler@argenau:/tmp/GCR/libgcrypt-1.5.2$ find debian/ -path debian/tmp -p
rune -or \( -name libgcrypt.so -or -name libgcrypt.so.11.8.1 \) -print
debian/libgcrypt11-udeb/lib/libgcrypt.so.11.8.1
debian/libgcrypt11/lib/i386-linux-gnu/libgcrypt.so.11.8.1
debian/libgcrypt11-dev/lib/i386-linux-gnu/libgcrypt.so
debian/libgcrypt11-dbg/usr/lib/debug/lib/libgcrypt.so.11.8.1
debian/libgcrypt11-dbg/usr/lib/debug/lib/i386-linux-gnu/libgcrypt.so.11.8.1
----------------
lintian seems to expect the .so symlink in /usr/lib although the
library lives in /lib.
cu Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
Subject: Re: Bug#687022: lintian: regex error in dev-pkg-without-shlib-symlink
Date: Mon, 10 Jun 2013 23:51:26 +0200
* Andreas Metzler <[email protected]>, 2013-06-09, 08:54:
>(SID)ametzler@argenau:/tmp/GCR/libgcrypt-1.5.2$ find debian/ -path debian/tmp -p
>rune -or \( -name libgcrypt.so -or -name libgcrypt.so.11.8.1 \) -print
>debian/libgcrypt11-udeb/lib/libgcrypt.so.11.8.1
>debian/libgcrypt11/lib/i386-linux-gnu/libgcrypt.so.11.8.1
>debian/libgcrypt11-dev/lib/i386-linux-gnu/libgcrypt.so
>debian/libgcrypt11-dbg/usr/lib/debug/lib/libgcrypt.so.11.8.1
>debian/libgcrypt11-dbg/usr/lib/debug/lib/i386-linux-gnu/libgcrypt.so.11.8.1
>----------------
>lintian seems to expect the .so symlink in /usr/lib although the
>library lives in /lib.
Indeed, but that's the documentation behavior. From the tag description:
"The symlink is generally expected in the same directory as the library
itself. The major exception to this rule is if the library is installed
in (or beneath) /lib, where the symlink must be installed in the same
dir beneath /usr.
Example: If the library is installed in /lib/i386-linux-gnu/libXYZ.so.V,
the symlink is expected at /usr/lib/i386-linux-gnu/libXYZ.so."
The static library and the .so symlink are certainly never needed before
/usr is mounted, so they should live in /usr/lib, not in /lib.
--
Jakub Wilk
Acknowledgement sent
to Andreas Metzler <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Tue, 11 Jun 2013 17:09:05 GMT) (full text, mbox, link).
Subject: Re: Bug#687022: lintian: regex error in dev-pkg-without-shlib-symlink
Date: Tue, 11 Jun 2013 19:07:01 +0200
On 2013-06-10 Jakub Wilk <[email protected]> wrote:
[...]
> Example: If the library is installed in
> /lib/i386-linux-gnu/libXYZ.so.V, the symlink is expected at
> /usr/lib/i386-linux-gnu/libXYZ.so."
> The static library and the .so symlink are certainly never needed
> before /usr is mounted, so they should live in /usr/lib, not in
> /lib.
Hello,
I am pretty sure there was a very good reason for keeping everything
in /lib. Let's check...
I see: It was the fact that there is no correct way to specify
library in /x .so in /y in the libtool .la file.
<https://bugs.launchpad.net/ubuntu/+source/libgcrypt11/+bug/751142>
This should not be an issue anymore, since we do not ship th la file
anymore. I'll try changing it.
Thanks for the explanation, cu Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
Acknowledgement sent
to bastien ROUCARIES <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Mon, 29 Jul 2013 12:39:05 GMT) (full text, mbox, link).
Acknowledgement sent
to Bill Allombert <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Fri, 20 Sep 2013 22:48:05 GMT) (full text, mbox, link).
On Sun, May 19, 2013 at 02:22:48AM +0200, Leo 'costela' Antunes wrote:
> Hi,
>
> On 07/01/13 16:32, Niels Thykier wrote:
>
> > This missing "+" in the regex has been fixed in Lintian 2.5.11
> > (experimental)[1]; though my question remains if we should really
> > re-order those regexes.
>
> I believe you are right. The idea is to find a link with either of the
> two formats:
> libwhatever.so -> libwhatever-X.so
> libwhatever.so -> libwhatever.so.X
>
> So the two regexes really should be mutually exclusive.
No. there is no requirement either technical or in policy, for a shared library
to follow any of theses convention and lintian must not assume so.
The only requirement is that for each libraries in the lib package there is at
least one matching symlink lib*.so pointing to it in the -dev package. The
exact name is a matter of C API that lintian cannot guess.
For example, it is perfectly valid to have
libwhatever.so -> libwhatever-X.so.Y.Z
or even
libfoo.so -> libbar-X.so.Z
(For example if libbar is an alternative implementation of libfoo, with the same API
but a different ABI. Makefile using gcc -lfoo should still work when libbar-dev is
installed).
This might explain the large number of false positive for a test which is
marked "certain". This is a regression from previous lintian version.
So I think using a regexp is misguided. It would be more reliable to follow the
symlink.
Cheers,
--
Bill. <[email protected]>
Imagine a large red swirl here.
Acknowledgement sent
to Niels Thykier <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Mon, 23 Sep 2013 14:30:04 GMT) (full text, mbox, link).
On 2013-09-21 00:46, Bill Allombert wrote:
> On Sun, May 19, 2013 at 02:22:48AM +0200, Leo 'costela' Antunes wrote:
>> Hi,
>>
>> On 07/01/13 16:32, Niels Thykier wrote:
>>
>>> This missing "+" in the regex has been fixed in Lintian 2.5.11
>>> (experimental)[1]; though my question remains if we should really
>>> re-order those regexes.
>>
>> I believe you are right. The idea is to find a link with either of the
>> two formats:
>> libwhatever.so -> libwhatever-X.so
>> libwhatever.so -> libwhatever.so.X
>>
>> So the two regexes really should be mutually exclusive.
>
Hi,
> No. there is no requirement either technical or in policy, for a shared library
> to follow any of theses convention and lintian must not assume so.
>
> The only requirement is that for each libraries in the lib package there is at
> least one matching symlink lib*.so pointing to it in the -dev package. The
> exact name is a matter of C API that lintian cannot guess.
>
> For example, it is perfectly valid to have
> libwhatever.so -> libwhatever-X.so.Y.Z
> or even
> libfoo.so -> libbar-X.so.Z
> (For example if libbar is an alternative implementation of libfoo, with the same API
> but a different ABI. Makefile using gcc -lfoo should still work when libbar-dev is
> installed).
>
Thanks for clarifying this point, seems like Lintian is wrong here. To
be honest, I am actually quite happy someone with knowledge in this area
steps up and explains how it is intended/required to work. This is one
of the many code snippets that have been carried on in the Lintian code
base with no obvious reference to why it works that particular way.
> This might explain the large number of false positive for a test which is
> marked "certain". This is a regression from previous lintian version.
>
> So I think using a regexp is misguided. It would be more reliable to follow the
> symlink.
>
> Cheers,
>
The git history (which takes us back to 2004) shows that we have been
using the regex-approach for the past 9 years[1]. snapshot.d.o go as
far back as 0.9.3 (27 Oct 1998) and that version has the same regex as
the code had in 2004. So this "regression" must be at least 15 years
old now. :)
The tag itself is listed in the mail from 25 Jan 1998, where Christian
Schwarz announced Lintian[2].
"""
The shared library check script detects the following policy violations:
# [...]
#
# (a foo-dev package should contain a symlink foo.so -> foo.so.0)
# E: dev-pkg-without-shlib-symlink
# (==> check does not work correctly yet, [...])
"""
If you happen to still have that old a version of Lintian I'd would
seriously like a copy of it. Heck, I will even buy you a
beer/$beverage_of_choice if you have that copy and the code indeed did
(or rather, tried to do) the "right thing" back then. But honestly, I
think there is no regression here; just a regular bug since the
conception of Lintian.
~Niels
[1]
http://anonscm.debian.org/gitweb/?p=lintian/lintian.git;a=blob;f=checks/shared-libs;h=c2f35a06712ef4b84101699cdfd0d08baaa1e2eb;hb=020888bca1e21cf8e98934fea04d9352244c97e9#l185
[2] https://lists.debian.org/debian-devel/1998/01/msg01503.html
Acknowledgement sent
to Bill Allombert <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <[email protected]>.
(Mon, 23 Sep 2013 18:18:04 GMT) (full text, mbox, link).
On Mon, Sep 23, 2013 at 04:26:28PM +0200, Niels Thykier wrote:
> > This might explain the large number of false positive for a test which is
> > marked "certain". This is a regression from previous lintian version.
> >
> > So I think using a regexp is misguided. It would be more reliable to follow the
> > symlink.
> >
> > Cheers,
>
> The git history (which takes us back to 2004) shows that we have been
> using the regex-approach for the past 9 years[1]. snapshot.d.o go as
> far back as 0.9.3 (27 Oct 1998) and that version has the same regex as
> the code had in 2004. So this "regression" must be at least 15 years
> old now. :)
I did not meant to say that using a regexp was a regression, but that
this bugreport was about a regression :)
Doing a bisection I find the first version to report a false positive for
the pari package is lintian 2.5.7.
Indeed, the changelog says:
* checks/shared-libs:
+ [NT] Fix false positive "dev-pkg-without-shlib-symlink"
for shared libraries using "libtool -release X.Y".
Thanks to Sven Joachim for the report. (Closes: #673109)
+ [NT] Fix false positive "dev-pkg-without-shlib-symlink"
for shared libraries installed in /lib. Lintian now
correctly expects the dev-symlink beneath /usr/lib.
Thanks to Guillem Jover for the report.
So certainly the test was changed.
One other example of false positive I found is that lintian does not allow
usr/lib/libfoo.so -> usr/lib/x86_64-linux-gnu/libfoo.so.X.Y.Z
which happens in multiarch transition.
Cheers,
Bill.
Changed Bug title to 'lintian: regex error in lacks-unversioned-link-to-shared-library' from 'lintian: regex error in dev-pkg-without-shlib-symlink'.
Request was from lechner <[email protected]>
to [email protected].
(Tue, 02 Jun 2020 19:51:02 GMT) (full text, mbox, link).
Debbugs is free software and licensed under the terms of the GNU General
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.