Commit graph

37 commits

Author SHA1 Message Date
langerhans 2abbb9f0da Update dependency builder and its packages to be ready for Dogecoin specifics 2019-04-28 19:24:07 +00:00
Cory Fields 480d6bb078
depends: fix bitcoin-qt back-compat with older freetype versions at runtime
A few years ago, libfreetype introduced FT_Get_Font_Format() as an alias for
FT_Get_X11_Font_Format(), but FT_Get_X11_Font_Format() was kept for abi
backwards-compatibility.

Our qt bump to 5.9 introduced a call to FT_Get_Font_Format(). Replace it with
FT_Get_X11_Font_Format() in order to remain compatibile with older freetype,
which is still used by e.g. Ubuntu Trusty.

Github-Pull: #14348
Rebased-From: 430bf6c7a1
Tree-SHA512: fd22b824e7251a7975d9e9222eff06d2b04ebf30e13aeccab580596c042b3abe2f62da1f0ef75106b0b171368ee1062ef2f459cfa435aa54826766a9005b80df
2018-09-29 14:24:02 +02:00
Cory Fields 48c845902a depends: fix qt determinism
Qt's configure grabs the path to xkb's data root during configure, but the
build changes in 5.8 apparently broke the handling for cross builds. As a
result, the string embedded in the binary depends on whether or not some files
are present in the builder's filesystem.

The "-xkb-config-root" configure setting is intended to allow manual overriding
but it is also broken. See: https://bugreports.qt.io/browse/QTBUG-60005

This has since been fixed upstream, so just hard-code the path for now. We can
drop this patch when we bump to a fixed Qt.

Also, fix the "-qt-xkbcommon-x11" config param which was renamed. This does not
appear to affect build results, presumably because auto-detection is working,
but it does not hurt to be explicit.

Github-Pull: #14000
Rebased-From: de0b4fba2f
2018-08-19 14:41:18 -04:00
TheCharlatan 00db418176 Add aarch64 qt depends support for cross compiling bitcoin-qt 2018-07-29 15:59:55 +02:00
MarcoFalke e8ffec69f7
Merge #13732: Depends: Fix Qt's rcc determinism
6b5506a286 Fix Qt's rcc determinism for depends/gitian (Fuzzbawls)

Pull request description:

  With the update to Qt 5.9 having been merged, Qt's `rcc` tool now embeds a file's last modified time in it's output. Since the build system generates temporary files for all locale translations (`*.qm` files) at build time, the resulting `qrc_bitcoin_locale.cpp` file was always being generated in a non-deterministic way.

  This is a backport of https://bugreports.qt.io/browse/QTBUG-62511, which is included in Qt versions 5.11+, that allows for an environment variable (`QT_RCC_SOURCE_DATE_OVERRIDE`) to override the behavior described above. This environment variable is in turn set in the gitian descriptors, as that is where determinism is vital for release purposes.

  Prior to this, the `qt_libbitcoinqt_a-qrc_bitcoin_locale.o` object file (included into `libbitcoinqt.a`) was returning a different `sha256sum` for each and every build, regardless of file contents change, thus breaking determinism in the resulting binaries.

  This should fix #13731

Tree-SHA512: 174017e41f9afc3950ef54a9419de81577ec900db9aec3c78ccd3d879c6aecaaeb944fde0615b933f43e6ca9d7898a27ec071cdd0b91cb772755a3012de96725
2018-07-29 08:06:45 -04:00
Fuzzbawls 6b5506a286
Fix Qt's rcc determinism for depends/gitian
Backport of https://bugreports.qt.io/browse/QTBUG-62511 to resolve
locale determinism during the build process.
2018-07-25 13:53:53 -07:00
Sjors Provoost 12c93cb85b
depends: use MacOS friendly sed syntax in qt.mk 2018-07-24 13:20:25 +02:00
Sebastian Kung 4b69984557
Add depends 32-bit arm support for bitcoin-qt
Some hobbyists are used to using the desktop for interfacing with their
raspberry pi. This commits adds qt to the arm-linux-gnueabihf target.
2018-07-12 01:05:28 +02:00
Sebastian Kung 800dea88a6
Upgrade Qt depends to 5.9.6 2018-07-06 14:26:26 +02:00
Ken Lee 70afa65b17
Fix depends Qt5.9.4 mac build
Apply patch from QTBUG-67286
2018-07-05 17:12:52 +02:00
Sebastian Kung 28482efefb
Ugrade Qt depends to Qt5.9.4
Depends can now be built with Qt5.9.4 , which is Qt's new long term
support version.
2018-07-05 17:12:42 +02:00
fanquake 2fca6568f2
depends: Update Qt download url 2018-06-27 23:26:25 +08:00
fanquake 5b4fc3eca4 depends: Fix Qt build with XCode 9.3 2018-04-11 22:55:18 +08:00
fanquake 2b1f794574 [Depends] Fix Qt build with Xcode 9.2 2018-03-05 13:51:14 -05:00
Cory Fields b5f374fef7 qt: fix build with zlib for target
This contains a few hacks very specific to Qt's buildsystem. These can be
reverted once we split the build between native and target builds.

Qt's build contains a circular dependency when not using a system zlib.
By far the easiest fix is to switch to a system zlib, rather than Qt's own.
However, that confuses Qt's cross build which assumes that when using a system
zlib, it should also find a system (native) zlib for native tools. The build
breaks if that zlib is not present.

To solve this:
1. Always use a system zlib rather than the one provided by qt
2. Set force_bootstrap, which instructs the build tools to be built as though
   we're cross-compiling (build != target)
3. For build tools, use qt's internal zlib so that a native zlib is not
required.

Step 3 means that if any zlib headers are found by the native build, it will
confuse Qt's internal zlib build. So we also need to make sure that the target
headers/libs aren't found. To do so, specify that our
cflags/cxxflags/cppflags/ldflags only apply for non-host builds.
2017-01-28 01:54:30 -05:00
Cory Fields 8efa34fb77 depends: add a zlib build
qt5.7 changed the location of some of its symbols, creating a circular
dependency in Qt5Core. Rather than trying to fix that up, build our own zlib
rather than having it built for us.
2017-01-28 01:54:30 -05:00
Cory Fields c36ec715f0
depends: qt: disable printer for all platforms, not just osx
This also fixes the native osx build.
2017-01-19 15:31:55 +08:00
Cory Fields c37ea4d403
depends: fix qt translations build
Their buildsystem insists on using the installed ltranslate, but gets confused
about how to find it. Since we manually control the build order, just drop the
dependency.
2017-01-14 14:23:48 +08:00
fanquake 02fcb2944d
[depends] Qt 5.7.1 2017-01-14 11:01:42 +08:00
fanquake 5776e8a596
[depends] Fix Qt compilation with Xcode 8 2016-09-27 12:32:20 +08:00
Jonas Schnelli 59d063d076
Use runtime linking of QT libdbus, use custom/temp. SDK URL 2016-06-18 13:51:45 +02:00
Jonas Schnelli 6194d9a501
Fix bitcoin_qt.m4 and fix-xcb-include-order.patch 2016-06-17 15:56:05 +02:00
Cory Fields f25209a3e1
depends: bump OSX toolchain
clang: 3.7.1
cctools: 877.8
ld64: 253.9
2016-06-17 09:33:45 +02:00
Cory Fields a398549b3b depends: use c++11 2016-04-27 12:47:41 +02:00
Cory Fields 9267a47d86 depends: enable pre-compiled headers for qt
All trusty compilers work ok with this now, and it shaves a few minutes off of
build time
2016-04-25 22:28:01 -04:00
Cory Fields 11d9f6b8b8 depends: qt/cctools: fix checksum checksum tests
Checksums were being verified after download, but not again before extraction
2016-04-04 19:26:45 -04:00
Wladimir J. van der Laan 0b416c6e9c depends: qt PIDLIST_ABSOLUTE patch
Remove sed-based qt PIDLIST_ABSOLUTE workaround, replace by a patch that
works for both old (such as used by Travis and Ubuntu Precise) and new
mingw (Ubuntu Trusty).
2015-11-16 16:39:24 +01:00
Cory Fields ecd6a89381 depends: make more qt flags explicit 2015-07-27 12:25:28 +02:00
Cory Fields ab67dd7818 depends: bump to qt 5.5 2015-07-23 21:10:35 -04:00
Jacob Welsh 5189fe3d88 depends: split qt config options to separate lines
Helps ease of reading and comparison. Removed some duplicates.
2015-07-23 21:10:35 -04:00
Cory Fields 4fe6c3c24f depends: major upgrade to darwin toolchain
tl;dr: Update to the newer stable toolchain and SDK for OSX without giving up
any backwards compatibility. We can move to clang 3.5 as a next step which
allows use to use libc++ and the 10.10 sdk, but we'll need to find a build that
works in gitian/travis first.

Switch to a new, better maintained fork of cctools:
https://github.com/tpoechtrager/cctools-port

I've forked this and will be working on it some as well:
https://github.com/theuni/cctools-port

This brings in:
cctools v862
ld64: v241.9

It also fixes 64bit builds, so there's no longer any need to use a 32bit clang.
Since clang is no longer tied to an old/crusty 32bit build, clang has been
upgraded to 3.3. Unfortunately, there's a bug in 3.4 that breaks builds. 3.5
works fine, but there are no binary builds compatible with precise, which is
currently used for gitian and travis. We could always build our own if
necessary.

After updating to stable clang/linker/cctools, it's possible to use a more
recent SDK. The current SDK (10.7) through the most recent 10.10 have all been
built/tested successfully, both with and without 10.6 compatibility. However,
10.10 requires clang 3.5.

SDKs >= 10.9 use libc++ rather than libstdc++. This is verified working as well.
2015-01-02 15:09:43 -05:00
Cory Fields ec90c97d13 depends: osx: fix qt5 build against 10.10 sdk 2015-01-02 15:09:43 -05:00
Cory Fields d61dc25c71 qt: osx: fix hidden symbol visibility
Fixes default hidden symbol visibility for our linux->osx cross build. Without
this change, the check for working -fvisibility=hidden fails, and all symbols
are visible by default.

Ugly as this is, it's just a simple find/replace to fix a bug in Qt's configure.
They assume in an "XPLATFORM_MAC" block that the builder is capable of running
osx programs. This should be "BUILD_ON_MAC" instead.
2014-11-24 22:00:31 -05:00
Cory Fields 187739006c depends: cleanup better after qt and force a bump
qt needs to be rebuilt for travis. The previous commit should help ensure that
this won't need to be done again.
2014-11-13 04:09:19 -05:00
Cory Fields 1d154db457 depends: teach qt to honor debug/release
This means it also needs to honor our flags, so patch them in as necessary.
2014-09-25 14:56:26 -04:00
Cory Fields 21f139b4a6 qt: fix tablet crash. closes #4854.
This backports the relevant parts of:
https://codereview.qt-project.org/#/c/82689/
2014-09-08 14:42:46 -04:00
Cory Fields 1dec09b341 depends: add shared dependency builder
See the README's in depends for documentation
2014-08-08 15:10:46 -04:00