Gentoo Archives: gentoo-dev

From: Paul de Vrieze <pauldv@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] QA question wrg. GRP
Date: Fri, 06 Feb 2004 08:24:08
Message-Id: 200402060923.59187.pauldv@gentoo.org
In Reply to: Re: [gentoo-dev] QA question wrg. GRP by Spider
1 On Friday 06 February 2004 04:33, Spider wrote:
2 > begin quote
3 > On Thu, 5 Feb 2004 21:57:42 +0100
4 >
5 > Paul de Vrieze <pauldv@g.o> wrote:
6 > > On Thursday 05 February 2004 21:34, Spider wrote:
7 > > > begin quote
8 > > > On Thu, 5 Feb 2004 20:58:01 +0100
9 > > > Can you explain more? When would LIBVER be set? by whom? (developer?
10 > > > no thanks.. :P ) and woudn't there need to be one LIBVER per .so
11 > > > file that a package installs?
12 > >
13 > > In most cases we could probably derive it automatically from the
14 > > soname of a library, in special cases LIBVER would need to be set.
15 > > Basically the idea breaks through the one LIBVER per .so by needing a
16 > > developer to define a different LIBVER when an incompatible library
17 > > change is introduced in the package (in any file) (the contents of
18 > > LIBVER don't matter). In some cases this will be automatically
19 > > detected, in some cases not, in which the developer needs to fix this.
20 >
21 > I'm still not sure I actually understand how this would hang about.
22 > LIBVER would be created for the package at post-compile time, and would
23 > refer to its own contents... right?
24 >
25 > This could work, but in cases like :
26 > foolib.so.0 -> foolib.so.0.5.4
27 >
28 > Which is LIBVER? 0, or 0.5.4 ? since if applications link to .so.0
29 > the binaries will break if LIBVER is 0.5.4 (due to dependencies) but if
30 > it provides both, and a program links to the hard minor (0.5.4) ,
31 > LIBVER would break if it was "0" ...
32
33 Actually what ends up in the elf file is the soname of the library. This
34 soname should only change with incompatible changes, if not the lib is broken
35 (but will also be at install time). The only assumption I make is that all
36 libraries in the package change incompatably at the same time (that's where
37 the override is needed). In LIBVER we would normally store the soname
38
39 > This falls on the fact that all packages don't necessarily link to the
40 > same LIBVER , some may link to .so.0, others may be pickier and link to
41 > `foolib.so.0.5.4` .. Not a pretty situation.
42
43 They all link the soname at the end, irrespective of what you put at the
44 linker command line -ldb and -ldb-4.1 will have exactly the same result given
45 that libdb.so links to libdb-4.1.so
46
47 >
48 > > > Any ideas?
49 > >
50 > > Don't have binary packages ;-)
51 >
52 > not very practical IMO. computers aren't that fast, yet. (and with
53 > software like KDE, Mozilla, qt, OpenOffice.. May never be)
54
55 This is mainly a deficiency in g++ (or any c++ compiler) and C++'s dependency
56 on header files. (Precompiled headers should give a big speedup)
57
58 Paul
59
60 --
61 Paul de Vrieze
62 Gentoo Developer
63 Mail: pauldv@g.o
64 Homepage: http://www.devrieze.net