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

Re: checklib

On Wed, 30 May 2007 18:28:43 +0200, Raphael Hertzog <hertzog@debian.org> said: 

> Hi Manoj,
> On Wed, 30 May 2007, Manoj Srivastava wrote:
>> When checklibs was run, it would report libbar-dev, libbaz-dev,
>> unneeded; looking at foo libfoo-dev, libbaz-dev, unneeded; looking at
>> bar libfoo-dev, libbar-dev, unneeded; looking at baz
>> End result: Uneedded: libfoo-dev, libbar-dev, and libbaz-dev
>> Since that is patently wrong, the version of checklibs I looked at
>> produced meaningless output -- for any package that had shared
>> objects whose compile flags were not identical.

> What Guillem said is that checklib also indicated binaries which are
> linked against a library without using any of its symbols. Thus the
> binary shouldn't have been linked against it in the first place. That
> link has a cost in "load time" that can be avoided.

> checklib is still useful for this.

        Hmm. The instances I find for this is where a bunch of binaries
 are created from the same source; and upstream has been lazy enough to
 not create custom CFLAGS/LDFLAGS for each binary, just setting up a
 common build flag set for the whole package; in which case yes, some
 binaries are linked against stuff they do not require.

        While optimizing startup times is nice; it usually is not a
 priority; and it depends on how much of the upstream build system I
 would have to hack; and often the speed gained is not worth the effort
 (I tend not to optimize before determining whether it is needed).

        Minimizing coupling between packages by minimizin the build
 dependencies of the _package_ is useful; and woth the effort; 

>> The original site where I got the old implementation
>> (http://greek0.net/div/checklib.tar.gz) from is 404's now; the alioth
>> checklib project has published nothing.  First rule of free software:
>> publish early, publish often.

> Aurélien Gérôme published a copy of the tarball he had:
> http://www.roxor.cx/debian/checklib.tar.gz

        It is as I feared. Hundreds of lines of python; my simple little
 implementation is about 75 lines of shell with copyright notices and
 comments.  And I do not have to build depend on python to do a build
 time check of my library build dependencies.

        If someone wants to port my simple shell scripts into gobs
 and gobs of python; they can get it from ./debian/common/checklibs
 files in any of my packages; and they can browse on arch.debian.org for
 easy access.

        My simplistic implementation scratches the itch for minimizing
 build depends for my packages.  I am pretty sure I don't have the bells
 and whistles of the python implementation.

        If you do take a look at my little shell implementation, have
 fun; and I would appreciate feedback.

teamwork, n.: Having someone to blame.
Manoj Srivastava <srivasta@debian.org> <http://www.debian.org/~srivasta/>
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C

Reply to: