On Mon, Oct 08, 2012 at 10:41:03AM +0200, David Coppa wrote: > On Tue, Oct 2, 2012 at 12:28 AM, Federico Schwindt <fg...@lodoss.net> wrote: > > On Mon, Oct 1, 2012 at 4:02 PM, David Coppa <dco...@gmail.com> wrote: > >> On Mon, Oct 1, 2012 at 4:59 PM, Stuart Henderson <s...@spacehopper.org> > >> wrote: > >>> On 2012/10/01 15:08, Federico Schwindt wrote: > >>>> > The diff below should do the trick (not tested, qt4 is such a beast to > >>>> > build)... > >>>> > > >>>> > Grepping for "QLibrary ", finds other occurrences that maybe we should > >>>> > also fix. > >>>> > >>>> I'm not sure about this. It seems to me that this: > >>>> > >>>> >> dlopen: loading: libicui18n > >>>> > >>>> Should really be libicui18n.so. I think this is better but untested > >>>> and straight from the source: > >>> > >>>> --- qlibrary_unix.cpp.orig Mon Oct 1 14:59:57 2012 > >>>> +++ qlibrary_unix.cpp Mon Oct 1 15:00:28 2012 > >>>> @@ -143,9 +143,8 @@ > >>>> #endif // Q_OS_AIX > >>>> if (!fullVersion.isEmpty()) { > >>>> suffixes << QString::fromLatin1(".so.%1").arg(fullVersion); > >>>> - } else { > >>>> - suffixes << QLatin1String(".so"); > >>>> } > >>>> + suffixes << QLatin1String(".so"); > >>>> #endif > >>>> # ifdef Q_OS_MAC > >>>> if (!fullVersion.isEmpty()) { > >>>> > >>>> f.- > >>> > >>> I haven't tested yet, but this seems a much better approach than > >>> patching the callers. > >> > >> Sure, I also think Federico got it right. > > > > Ok, attached. Ttested with keepassx and a demo for the cups patch removal. > > The gtk patch removal still needs testing. Anyone? > > What is the status of this?
I actually disagree with this. Those libraries are libraries, they're *not* plugins. The only reason they are used from dlopen is because qt is architectured so that some libraries are optional. But removing the version number means you are no longer asking for any explicit ABI. Which ought to break badly when the shared library number gets bumped. The correct way to do thing is to actually record the shared library version at point of compilation, just like we do when we link for normal libraries, and then hardcode that in the compiled version of qt. (e.g., have those as build-depends, collect the shared library versions during configure, and compile with these). This is the exact same process we use for normal linking with shared libraries. Apart from the optionality of the feature, those are not plugins.