lbrycrd/depends/packages
Cory Fields bb44d9e754 depends: fix a static qt5 crash when using certain versions of libxcb
See here for background: https://bugreports.qt.io/browse/QTBUG-34748

libxcb temporarily had an abi breakage which caused crashes when qt was
compiled against a non-compatible version. Building qt with -qt-xcb should have
shielded us from this issue, except that incompatible headers were used when
building qt's wrapper.

Make sure those headers aren't picked up by qt's build.

Details:

qt's build adds a wrapper around the xcb libs when -qt-xcb is used. This is
done to avoid having to link to a handful of different libs, which may not be
api/abi stable. This build depends on include-order, so that its files are
found before the real libxcb headers.

Our build (for other reasons related to qt's complicated build-system) injects
our prefix into CXXFLAGS. Because libxcb is found in this path, that reverses
the include-order, negating the purpose of the wrapper.

To fix, libxcb's includes are simply moved to a subdir. pkg-config ensures that
they're still found properly when needed.

To make things even more interesting, this behavior in qt's .pro files is broken:
INCLUDEPATH += $$QMAKE_CFLAGS_XCB

The INCLUDEPATH variable is processed by qmake which automatically prefixes each
entry with "-I". The QMAKE_CFLAGS_XCB variable comes from pkg-config and
already contains -I, making the path look like "-I-I/path/to/xcb/headers".

To work around that, CFLAGS/CXXFLAGS are used here rather than INCLUDEPATH.
2015-03-16 23:45:15 -04:00
..
bdb.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00
boost.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00
dbus.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
expat.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
fontconfig.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
freetype.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00
libICE.mk depends: Add a package for qt4.6. Linux uses it by default. 2014-11-19 22:49:41 -05:00
libSM.mk depends: Add a package for qt4.6. Linux uses it by default. 2014-11-19 22:49:41 -05:00
libX11.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00
libXau.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00
libxcb.mk depends: fix a static qt5 crash when using certain versions of libxcb 2015-03-16 23:45:15 -04:00
libXext.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
miniupnpc.mk depends: give miniupnpc cppflags 2014-09-25 14:56:26 -04:00
native_ccache.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
native_cctools.mk depends: bump cctools to a custom version with less deps 2015-01-02 19:31:07 -05:00
native_cdrkit.mk Fix download link for gitian builds 2014-12-13 09:03:33 +00:00
native_comparisontool.mk depends: fix packages with hard-coded SOURCES_PATH 2014-12-11 19:23:12 -05:00
native_libdmg-hfsplus.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
native_protobuf.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
openssl.mk depends: remove embedded OpenSSL timestamp for determinism 2015-01-12 16:19:24 +01:00
packages.mk depends: always use static qt5 for linux 2015-02-25 18:41:59 -05:00
protobuf.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00
qrencode.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00
qt.mk depends: major upgrade to darwin toolchain 2015-01-02 15:09:43 -05:00
qt46.mk gitian: descriptors overhaul 2014-11-19 22:49:41 -05:00
xcb_proto.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00
xextproto.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
xproto.mk depends: add shared dependency builder 2014-08-08 15:10:46 -04:00
xtrans.mk depends: Use pic for all linux dependencies 2014-11-19 22:49:41 -05:00