packages: cairo/cairo-link.patch, cairo/cairo.spec - 1.10.0 - merged from d...

Jakub Bogusz qboosh at pld-linux.org
Thu Sep 9 21:08:36 CEST 2010


On Wed, Sep 08, 2010 at 09:23:49AM +0200, Tomasz Pala wrote:
> On Tue, Sep 07, 2010 at 19:55:25 +0200, Jakub Bogusz wrote:
> 
> >>  %files static
> >>  %defattr(644,root,root,755)
> >>  %{_libdir}/libcairo.a
> >> +%{_libdir}/libcairo-gobject.a
> >> +%{_libdir}/libcairo-gobject.la
> > 
> > Too baaad... this causes that *.la of libs/modules using
> > libcairo-gobject would have different dependencies (-lcairo-gobject or
> > libcairo-gobject.la) depending on presence of cairo-static.
> 
> All those .la files should be moved to their -static as well. As for
> generated dependencies builders don't have *-static installed, so
> pkgconfig would be used and in resoult -lcairo-gobject should be put.
> 
> Or maybe building *-static _should_ require -static and not only -devel?

Presence of *.a doesn't serve anything for -static building
(just occuping disk space and hiding some errors in package configure
scripts/makefiles).

> > Either move this .la to -devel, or remove at all.
> 
> Regular .la are part of _static_ building, so there's no place in -devel
> for them. It only causes troubles.

Well, unfortunately libtool didn't change its mind and uses
dependency_libs during shared linking too.
Maybe this is the only thing that should be changed...

> There was a discussion (well, not too many of 'discussion' were there)
> recently, please read this and continue there. Also:
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=581352
> 
> In short: instead removing I've suggested repackaging into *-static,
> just because in contrary to other distros we support this kind of build.
> Without .la files there we might remove all the *-static too, as in
> general they would be useless.

Packaging *.la in -static has several faults:

- content of new .la file depends on presence of *.la files from
  dependent libraries, so the rule on their precence on builders must be
  strict.

- we can't forbid installing _any_ static library on builders - in some
  rare cases they are used.

- we don't want to install all *-static on builders from the reasons
  mentioned above.

Plus: keeping all *-static containing *.la files on builders is in no
way better than preevailing situation: *.la files are still "poisoned"
by obsolete libraries (and thus rebuilding would be still required
in case of transition like libpng12 -> libpng14 or dropping some
dependency), and they affect on shared library building (-as-needed
still needs to be enforced).


-- 
Jakub Bogusz    http://qboosh.pl/


More information about the pld-devel-en mailing list