Hello,
I've just seen that this bug is now tagged pending.
If the bug was tagged pending because the check was disabled, this mail
may have some interrest, otherwise, you can forget about it.
On Tue, Mar 21, 2006 at 09:50:57AM +1100, Steve Kowalik wrote:
> On Mon, 20 Mar 2006 22:56:55 +0200, Lior Kaplan uttered
> > Package: linda
> > Version: 0.3.18
> > Followup-For: Bug #357727
> >
> > Seems like the rule should check which library pulls the others...
> >
> I'm not so sure what to do about this bug, since Linda can not check any
> libraries that aren't unpacked into her sandbox. On the one hand, I
> can't remove the check, since that would open one box, and close
> another, but on the other hand, I rather wouldn't remove a check that
> can probably be forced to work.
This warning was displayed with the passwd package, not because passwd
doesn't depends directly on a library package it depends on, but because
it depends on a library provided by a package not named lib<library>.
In fact passwd depends on libpam_misc.so.0, provided by libpam0g, and
linda did not noticed it (linda was looking for a libpam_misc package).
Also, the list of missing libraries would have been helpful in the
warning message.
The attached patch fixes the two issues mentionned here (list of libraries
in the warning, and check the libraries according to the list of files
provided by the dependencies).
However, it does not fixe the "the rule should check which library pulls
the others" issue mentionned by Lior.
(e.g. passwd depends on libsepol.so.1, provided by libsepol1, indirectly
provided by the Depends on libselinux1)
Note that in the case of passwd, the dependencies are computed by dpkg-dev
(${shlibs:Depends})
Kind Regards,
--
Nekral
diff -rauN ../orig/linda-0.3.18/checks/binary.py ./linda-0.3.18/checks/binary.py
--- ../orig/linda-0.3.18/checks/binary.py 2006-03-16 13:14:57.000000000
+0100
+++ ./linda-0.3.18/checks/binary.py 2006-03-21 23:44:47.000000000 +0100
@@ -1,6 +1,6 @@
import re
from linda import libchecks, checks
-from linda.funcs import explode_path
+from linda.funcs import explode_path, run_external_cmd
from sets import Set
class BinaryCheck(libchecks.LindaChecker):
@@ -136,14 +136,16 @@
for lib in libs.keys():
found = 0
for dep in
self.information['control']['self'][0]['depends'].keys():
- if dep.startswith(libs[lib]):
- found = 1
+ dep_file_list = run_external_cmd('dpkg -L %s' % dep, 1)
+ for file in dep_file_list.split('\n'):
+ if file.endswith("/%s" % lib):
+ found = 1
if not found:
libs_not_in_depends.append(lib)
else:
libs_not_in_depends = ['a']
if libs_not_in_depends:
- self.signal_error('libs-not-in-depends')
+ self.signal_error('libs-not-in-depends', libs_not_in_depends)
def considered_debug(self, file):
if 'debug' in explode_path(file) or re.search(self.debug, file) or \
diff -rauN ../orig/linda-0.3.18/po/en.po ./linda-0.3.18/po/en.po
--- ../orig/linda-0.3.18/po/en.po 2006-03-16 12:03:08.000000000 +0100
+++ ./linda-0.3.18/po/en.po 2006-03-21 23:24:25.000000000 +0100
@@ -2279,7 +2279,7 @@
"causes your package to be rejected when it is uploaded."
msgid "libs-not-in-depends_s"
-msgstr "A binary links against a library that is not depended on."
+msgstr "A binary links against a library (%s) that is not depended on."
msgid "libs-not-in-depends_l"
msgstr ""