[Libreoffice] problems with scp2

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Mon Aug 1 01:02:18 PDT 2011


Hi Stephan,

On Mon, 1 Aug 2011 08:42:21 +0200
Stephan Bergmann
<stephan.bergmann.secondary at googlemail.com>
wrote:
> What do you mean with "BFS" here?

"build from scratch"

> Generally, existing code (i.e., extensions) having a recorded
> dependency against libuno_salhelpergcc3.so.3 will no longer work if
> they do not find a file with that exact name.

Right, but extensions would not be run against the solver, but against
an installation (where I suggested one needs to keep symlinks anyway).
The suggestion was:
- keep no SONAME or libuno_salhelpergcc3.so (unversioned) in solver and
  installation
- still generate symlinks in installation so that in a installation
  (but not in solver), both libuno_salhelpergcc3.so and
  libuno_salhelpergcc3.so.3 are visible.

> (Or do you imply that,
> on Linux, the dynamic loader special cases this and would still be
> happy if it only found some libuno_salhelpergcc3.so?  I am not aware
> of that, and it would be Linux-only, probably not working on e.g.
> Solaris.)

no.

> I strongly suggest to add SONAME support to gbuild.  For one, it is
> common ELF practice to use external versioning (i.e., via a
> trailing .so.X at a library's filename/SONAME) to discriminate among
> incompatible versions of a library.

I came to the same conclusion: While the other scenario might work, it
will end up like a evil genius dialog in the end: "But why did you do
this?" -- "Because I can!". Thats not a good reason in itself.

But maybe even the symlinks do not need to be manually declared and
created in solver. To follow the conventions of the host system calling
"ldconfig -n $OUTDIR/lib" after installing and before using the
lib should be enough. However, experimenting with this does not seem to
create an unversioned symlink. I created a dir with a few random libs:
	libxml2.so.2.7.8 (SONAME:libxml2.so.2)
	libcairo.so.2.11000.2 (SONAME: libcairo.so.2)
	libuno_salhelpergcc3.so.3 (SONAME: libuno_salhelpergcc3.so.3)
and got:
	libuno_salhelpergcc3.so.3 -> libuno_salhelpergcc3.so.3
	libxml2.so.2 -> libxml2.so.2.7.8
	libcairo.so.2 -> libcairo.so.2.11000.2
so it does not create symlinks for the unversioned so (although those
are quite common in /usr/lib here).
For fun I move the lib libuno_salhelpergcc3.so.3 to
libuno_salhelpergcc3.so and got:
	libuno_salhelpergcc3.so.3 -> libuno_salhelpergcc3.so (changed)
	libxml2.so.2 -> libxml2.so.2.7.8
	libcairo.so.2 -> libcairo.so.2.11000.2
Which does not make me happy either. So I guess we need to create the
symlinks (at least the unversioned ones) manually indeed.

Best,

Bjoern

-- 
https://launchpad.net/~bjoern-michaelsen




More information about the LibreOffice mailing list