Bug#687022: found also with libm4ri

2013-09-23 Thread Niels Thykier
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


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#687022: found also with libm4ri

2013-09-23 Thread Bill Allombert
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.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#687022: found also with libm4ri

2013-09-20 Thread Bill Allombert
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. ballo...@debian.org

Imagine a large red swirl here. 


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#687022: found also with libm4ri

2013-05-18 Thread Leo 'costela' Antunes
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]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#687022: found also with libm4ri

2013-01-07 Thread Cédric Boutillier
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



signature.asc
Description: Digital signature


Bug#687022: found also with libm4ri

2013-01-07 Thread Niels Thykier
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.


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org