- gb_Jar_get_target points to layer-specific location
- remove gb_Jar_get_outdir_target
- add OXT and NONE layers
- add a rule for every installed Jar to avoid problems with conflicting
pattern rules in instdir
Change-Id: Icf11869a454a7a52791c5ae257fc5da87aa46dc2
... which is an ugly hack to handle jar files that are from externals
and are not bundled in the main instset, only in extensions.
Change-Id: I992242b7c990c24318b040e98b6632e3b78b6f63
We need to do a "make install" in freetype so that what freetype-config --libs
outputs is correct. We don't use freetype-config ourselves but fontconfig
does, and it builds some test programs.
The bundled freetype and fontconfig are built only for Android.
Change-Id: Ib622cc48a0c4eb6a72188bc83c8d36b39f97fdca
It only contained hyph_en_US.dic, which is actually unused; the usage in
dictionaries (for a writingaids.zip) was removed years ago in commit
72682b9ac937472b9c48c8a9be70be902ff645e8.
Change-Id: I523c60614bddb8596ccff52d3c4d648111846856
DbtToStringConverter protects against a NULL pointer, but not a
pointer to the too short data that pEmpty provides
Change-Id: I5d21e852ce0373eff7d3627e266b9cbc77f5dd09
As the system gtk libraries may depend on later versions of libcairo.so.2 and
its bring-along libpixman-1.so.0 with the same SONAMEs. So if it would ever
happen at runtime that our bundled libcairo.so.2 and/or libpixman-1.so.0 get
loaded before the system ones, the system gtk would probably not work correctly.
Ultimately, the bundled cairo can probably go completely.
This reverts 122a137672 "extensions: crude hack
for mysterious cairo link failure."
As discussed at #libreoffice-dev:
Oct 24 10:10:15 <mst__> sberg, caolan, dtardon any idea what the proper fix is
for pluginapp.bin? 122a137672 breaks on RHEL5
tinderbox...
Oct 24 10:10:17 <IZBot> core - extensions: crude hack for mysterious cairo link
failure -
http://cgit.freedesktop.org/libreoffice/core/commit/?id=122a137672d761418a549568ad8cad623dd2b4b5
Oct 24 10:12:53 <dtardon> mst__, i'd try
gb_Executable_use_external,pluginapp.bin,cairo
Oct 24 10:13:58 <mst__> dtardon, i'm not sure if that is the intent - the
-lcairo comes from the gtk external so we should use same cairo as gtk i.e.
system one? but id on't understand why linker won't find the pixman library
Oct 24 10:16:35 <sberg> mst__, I get no build failures in "make
extensions.clean && make extensions" when I comment out that FIXME in
extensions/Executable_pluginapp.bin.mk
Oct 24 10:18:59 <mst__> sberg, it only started to fail for me when i removed
libcairo.so from solver, probably you still have a stale one
Oct 24 10:19:42 <sberg> mst__, in solver/*/lib/? no
Oct 24 10:20:48 <sberg> mst__, but turns out I'm using --with-system-cairo (as
required by --enable-gtk3), so ignore me
Oct 24 10:22:53 <mst__> sberg, so if i rm solver/unxlngx6/lib/*cairo*
solver/unxlngx6/lib/*pixman* it still fails for me, how could system-cairo
work then?
Oct 24 10:24:13 <sberg> mst__, in that /usr/lib64/libcairo.so has a DT_NEEDED on
libpixman-1.so.0 (which "our" libcairo.so is missing, I'd assume)
Oct 24 10:24:44 <sberg> mst__, erm
Oct 24 10:41:18 <mst__> sberg, so if i filter out -lcairo in
gb_LinkTarget__use_gtk then it magically works - are there any problems with
that approach?
Oct 24 10:47:19 <sberg> mst__, so the root of the problem is that there's two
different libcairo involved? (just doing a local build --wihtout-system-cairo
here, to see what's going on)
Oct 24 10:47:55 <mst__> sberg, i don't think so since i get same problem after
removing all cairo libs from solver
Oct 24 11:12:11 <sberg> mst__, so the link line for pluginapp.bin contains
-lcairo twice, apparently dragged in indirectly (via _use_externals gthread
and gtk, likely), and does not contain "our" -L.../cairo/src/.libs (as it
doesn't _use_externals cairo), but does contain -Lsolver/*/lib. Now,
/usr/lib64/libcairo.so needs libpixman-1.so.0 and there happens to be one in
solver/*/lib that lacks syms compared to /usr/lib64/libpixman-1.so.0
Oct 24 11:13:43 <sberg> mst__, so this was nicely hidden when all the external
libs were delivered to solver/*/lib, but in the end I think the bug is to
combine system gtk with non-system cairo and/or pixman
Oct 24 11:14:49 <sberg> mst__, as long as our cairo and/or pixman have the same
SONAMEs or exported symbol names as system ones, all hell can happen at
runtime anyway
Oct 24 11:15:32 <mst__> sberg, but... why then does it fail for me if i don't
have the cairo/pixman libs in solver?
Oct 24 11:15:57 <mst__> ahhh -Wl,-rpath-link,$S/instdir/unxlngx6/program <-
taht must be why
Oct 24 11:17:40 <mst__> is it normal that -Wl,--trace does not print out what
libraries were found via -Wl,-rpath-link? it only appears to print explicit
-lfoo
Oct 24 11:18:27 <sberg> mst__, because of -Linstdir/*/program
Oct 24 11:20:27 <mst__> sberg, so we need
-Wl,-rpath-link,$S/instdir/unxlngx6/program obviously;
Oct 24 11:22:08 <mst__> sberg, apparently everything builds successfully when
filtering out -lcairo from GTK_LIBS, do you think that is the best workaround
for this?
Oct 24 11:22:14 <sberg> mst__, no, we need to change configure.ac to disallow
--enable-gtk --without-system-{ciaro,pixman}
Oct 24 11:22:39 <sberg> mst__, similarly to how we already disallow
--enable-gtk3 --without-system-cairo
Oct 24 11:24:48 <mst__> sberg, that would be sort of pointless, since linux is
afaik the only platfrom where cairo is used at all - effectvely we could
remove bundled caior then?
Oct 24 11:27:04 <sberg> mst__, effectively yes, unless it would still be useful
for some --disable-gtk scenario
Oct 24 11:33:41 <mst__> caolan, cloph does RHEL5 have a sufficiently recent
system cairo?
Oct 24 11:34:43 <cloph> cairo 1.2.4 on the CentOS 5.9 (well, more like 5.10 now)
system
Oct 24 11:37:08 <jcorrius> my RHEL6 build uses internal cairo
Oct 24 11:37:47 <caolan> rhel-5 cairo is 1.2.4
Oct 24 11:37:54 <mst__> caolan, the other option i can see is to do $(call
gb_LinkTarget_add_libs,$(1),$(filter-out -lcairo,$(GTK_LIBS))) in
gb_LinkTarget__use_gtk which works-for-me(TM)
Oct 24 11:38:30 <sberg> jcorrius, not for very much longer ,) (it typically
happens to work by luck to combine system GTK with bundled cairo)
Oct 24 11:38:59 <mst__> thorsten, are you aware of any reason why we must bundle
cairo on linux?
Oct 24 11:40:05 <sberg> mst__, "<caolan> rhel-5 cairo is 1.2.4" and we only
check for "cairo >= 1.0.2" in cofingure.ac, so all should be good
Oct 24 11:40:35 <sberg> mst__, "works-for-me(TM)" just by luck
Oct 24 11:41:33 <mst__> sberg, well perhaps guess the real problem is that
pkg-config spits out a spurious -lcairo for gtk+-2.0 so...
Oct 24 11:42:19 <mst__> ... but of course if a sufficiently good cairo is
available everywhere we don't have reason to bundle it anyway
Oct 24 11:45:45 <sberg> mst__, at least my /usr/lib64/libgtk-x11-2.0.so.0 does
have a DT_NEEDED on libcairo.so.2, so even if pkg-config wouldn't spit it out
we would still be in trouble at runtime
Oct 24 11:47:05 <mst__> sberg, at runtime we have this problem for a lot more
libraries than just cairo
Oct 24 11:47:43 <sberg> mst__, but why refuse to fix the problem, at least for
cairo, where there is apparently no good reason to bundle it anyway?
Oct 24 11:48:36 <jcorrius> is cairo used on Windows for anything?
Oct 24 11:48:42 <mst__> sberg, since there is no good reason to bundle it anyway
i don't object to removing the bundled cairo
Oct 24 11:49:38 <mst__> sberg, ... but i can still hold the opinion that gtk
shouldn't put -lcairo in its pkgconfig :)
Oct 24 11:53:12 <sberg> mst__, since "pkg-config --cflags gtk+-2.0" includes
"-I/usr/include/cairo", one could argue that cairo is a "re-exported" part of
that, so should also appear in pkg-config --libs output; one could likely
argue either way
Oct 24 11:55:27 <mst__> sberg, well but if you're calling functions from cairo
then you're using cairo directly whereas if you just call gtk functions you
have no need to link cario
Oct 24 11:56:47 <sberg> mst__, sure, my argumentation depends on that
"re-exports" argument (which might be thin); anyway, are you going to remove
bundled cairo
Oct 24 11:56:54 <sberg> ?
Oct 24 11:57:34 <mst__> sberg, i'm going to force it to system in configure for
now
Oct 24 11:58:13 <sberg> mst__, I have a patch for exactly that already locally
here, so could push that if you've not done that too already anyway
Oct 24 11:59:00 <mst__> sberg, i havent' finished my freetype patch yet because
people always distract me on irc so you can push
Oct 24 11:59:01 <sberg> mst__, or, rather, my patch just errors out in the
--enable-gtk --without-system-cairo combination, so if you have a better one,
go ahead
Change-Id: I071e759a55f46338b36c3cf8ac7cd5591bd9e376