[Portland] Project Portland, RuDI and the Generic desktop adapter
Alex Graveley
alex at beatniksoftware.com
Fri Dec 9 10:49:12 EET 2005
Great email Billy! This is exactly the kind of information I feel we
need before we can progress.
1) This one seems like a bug in pkg-config, or in individual packages.
I don't think much can happen on this front without a more rigorous
pre-release testing process.
2) We do almost exactly the same thing at VMware. Luckily we are not
limited to a single physical machine ;-)
3) I've just filed bug #323614.
4) You are screwed (until the LSB waves it's magic stick). We need to
get this transition documented and a matrix of distros up someplace. Do
you have any of this information gathered already or should I contact
distros independently?
5) We have this same problem. I'm not sure what the best solution is.
-Alex
Billy Biggs wrote:
> nf2 (nf2 at scheinwelt.at):
>
>
>>As a Java developer i'm using Eclipse quite a lot and ldd reports that
>>it dynamically links 32 libraries, including gtk+, glib etc. And it's
>>a quite old Eclipse from March 2004. So where is the problem? This ABI
>>debate is still a bit mystic to me...
>
>
> In reality, the ABI problem isn't as bad as you might think, and the
> solutions are all pretty clear. GTK+ and glib are fully binary
> compatible back to 2.0.x and no distribution breaks this. We also use
> gnome-vfs which has been stable, and Mozilla has never broken us either.
> We use dlopen() and dlsym() for any functions which are only available
> in newer versions of GTK+ or GNOME-VFS, and use the GTK_VERSION macros
> to tell if they are available or not.
>
> So, where are the "ABI" problems? I'd love to hear from other ISVs,
> but here are the ones I can think of off the top of my head:
>
> 1. Libraries going missing. We used to trust pkg-config, but
> unfortunately it adds -lfoo for all foo, even if you don't use
> anything from foo. This caused us to have binaries linked to
> liblinc and libpango-xft which weren't always available, even
> though we never used those.
>
> 2. Building against newer libc versions brings in new symbols. During
> development we often get burned when someone compiles a library on
> their desktop and accidentally checks it into CVS. There are no
> good "best practice" documents on what apps should be building
> compatible binaries against. We have some RH9 machine we use for
> builds and hope that it's OK.
>
> 3. Some libraries, such as libgnome-vfs, don't announce their version
> with version macros. This makes it more difficult to work around
> bugs or know if features are available.
>
> 4. We're currently dealing with mozilla compiled with libstdc++.so.5
> vs libstdc++.so.6. It seems to work OK if our library is with gcc3
> and mozilla is with gcc4, but who knows?? Already distros are
> stopping to ship the old libstdc++.so.5 library, or move it into
> some compatibility package that nobody has installed.
>
> 5. Sometimes distros backport fixes, and this breaks our ability to
> use the GTK_VERSION macros to work around issues in any sane way.
>
> Most of these aren't really ABI problems though. I think most people
> think of the advertised-as-unstable libraries for those. See much of
> the GNOME stack, I guess, and probably freetype.
>
> -Billy
>
> _______________________________________________
> Portland mailing list
> Portland at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/portland
More information about the Portland
mailing list