[Interest] Qt5, XCB and X11

Ian Monroe ian at monroe.nu
Fri Jul 11 06:31:53 CEST 2014


On Thu, Jul 10, 2014 at 9:14 PM,  <Lachlan.Hetherton at csiro.au> wrote:
> Hello there,
>
> We are looking to upgrade our existing application from Qt4 to Qt5.3.0. Our
> application is deployed to Linux, Windows and Mac systems, which we manage
> by shipping compiled copies of the Qt libraries. An extremely simplified
> snapshot of our current process for building a Linux version of our
> application is as follows:
>
> Build the Qt libraries using the LSB compiler (LSB version 4.1), maximizing
> their portability
> Build our application against the Qt libraries also using the LSB compiler
> Bundle the libs and executables up into a single RPM ready for shipping
>
> We have gone a long way toward replicating this process for the Qt5 version
> of our application, however, we have encountered a few problems:
>
> Qt5 has hard dependencies on libxcb (even with -qt–xcb enabled in the
> configuration), as well as libX11-xcb, and therefore libX11 (though not
> direct)
> The LSB does not contain these libraries
> One of the Linux distributions we deploy to (SLED 11) does not provide
> up-to-date versions of these libraries
>
> Our initial approach to mitigating concerns (1) and (2) has been to compile
> LSB-compliant versions of these dependent libraries (as well as their
> dependencies), and then build Qt5 against these to make sure the Qt libs are
> LSB compliant. This in itself we have achieved, creating an LSB-compliant
> bundle that we could theoretically deploy standalone, which would resolve
> (3), since we would be shipping libxcb, libX11 and the like. However, as you
> might imagine, I have numerous doubts about shipping copies of libxcb and
> libX11 with our application, not the least of which is that the libs would
> be almost guaranteed to be loaded into memory twice (I have no idea what
> problems this could cause).

On Windows this would cause a "DLL hell" issue and maybe this is where
your hesitance comes from. But afaik you can load all the the .so's
that you want and it isn't really an issue. I mean don't load two
versions of the same library in the *same* application :) but
otherwise its fine.

I have worried about the X11 running on the system not enjoying the
version of XCB being shipped. So far this hasn't been a problem for
me, but my clients don't use such old Linux. Mostly I think the XCB
folks are to be trusted, I believe they had situations like this in
mind.

Ian



More information about the Interest mailing list