Commit graph

209 commits

Author SHA1 Message Date
Chun Kuan Lee
5bb0164cee depends: Enable unicode support on dbd for Windows 2018-08-24 11:32:49 +08:00
Cory Fields
de0b4fba2f 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.
2018-08-17 19:02:35 -04:00
Chun Kuan Lee
96dda8b058 [depends] Add riscv qt depends support for cross compiling bitcoin-qt 2018-08-09 03:34:44 +08: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
Wladimir J. van der Laan
2dc5ab6378
Merge #13482: Remove boost::program_options dependency
f447a0a707 Remove program options from build system (Chun Kuan Lee)
11588c639e Replace boost program_options (Chun Kuan Lee)

Pull request description:

  Concept from #12744, but without parsing negated options.

Tree-SHA512: 7f418744bb8934e313d77a5f162633746ef5d043de802b9c9cd9f7c1842e7e566eb5f171cd9e2cc13317281b2449c6fbd553fa4f09b837e6af2f5d2b2aabdca2
2018-07-20 16:45:44 +02:00
Chun Kuan Lee
f447a0a707 Remove program options from build system 2018-07-18 02:48:34 +00:00
Lawrence Nahum
a4ba2388fe
depends: disable Werror for zmqlib release, causes ndk build to break 2018-07-17 20:22:03 +02:00
Wladimir J. van der Laan
75bea0507f
Merge #13604: Add depends 32-bit arm support for bitcoin-qt
4b69984557 Add depends 32-bit arm support for bitcoin-qt (Sebastian Kung)

Pull request description:

  Some hobbyists are used to using the desktop for interfacing with their raspberry pi. This commits adds qt to the arm-linux-gnueabihf target.

Tree-SHA512: cb03387267eb8f68dfd79735c2c01c5a119c406e5578805e60b377934da42d46cb34d35e45c8843979dfb4070859c553d09ae348b468d9731523f33307132fa8
2018-07-17 13:11:40 +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
Wladimir J. van der Laan
6c6a3001e5
Merge #13543: depends: Add RISC-V support
974f0bf8e6 depends: Mention RISC-V known compilation issue with gcc-7.3.x (Wladimir J. van der Laan)
0d1f38c45f depends: update zmq config.guess/config.sub for riscv support (fanquake)
409481c465 depends: latest config.sub (fanquake)
d7005e9988 depends: latest config.guess (fanquake)
359e2e3525 depends: Add RISC-V support (Wladimir J. van der Laan)

Pull request description:

  This adds support for riscv32 and riscv64 builds to the depends system.

  The change consists of documentation and build system changes. The most significant change is an update of `config.sub` and `config.guess` inside zeromq patch, as the current version does not recognize the `riscv*` host tuples (there's no new version of ZeroMQ yet with newer ones).

  Good thing: RISC-V 64-bit toolchain packages can be installed out of the box on Ubuntu 18.04+.

  I would also like to add RISC-V 64-bit executables to gitian, but this will not be possible until #12511 .

Tree-SHA512: 358ed72ee9e4ae44e7d305c09a4ff5ce5460eeb7ed915eb25d39c8f43b61e7b347f51bf0ae5d83ddb4ce8876dea7703c926b3baa3cccb4932b3bc17160d801bb
2018-07-10 14:49:02 +02:00
fanquake
0d1f38c45f
depends: update zmq config.guess/config.sub for riscv support 2018-07-08 22:59:21 +08: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
Wladimir J. van der Laan
359e2e3525 depends: Add RISC-V support 2018-06-27 13:20:02 +00:00
fanquake
5b4fc3eca4 depends: Fix Qt build with XCode 9.3 2018-04-11 22:55:18 +08:00
Wladimir J. van der Laan
c4219ff378
Merge #12625: depends: biplist 1.0.3
4ef82f1 depends: biplist 1.0.3 (fanquake)

Pull request description:

  biplist should now be usable for reproducible builds without any patching.

  One change has been incorporated,  the two remaining changes were rejected upstream: https://bitbucket.org/wooster/biplist/pull-requests/9/make-biplist-ordering-deterministic/diff#comment-None

  testing on gitian cc @jonasschnelli

Tree-SHA512: a3ef3ecad08b09f7a34d927bc4e3d8604099e9acb2c984bbe741df6162f4014f40e9eb2fd28309fc79d3dd2bb82f14bfd473925b90048e5fd135a471726a4836
2018-03-14 14:29:27 +01:00
MarcoFalke
29fad97c32
Merge #12607: depends: Remove ccache
cc879675e1 depends: Remove ccache (fanquake)

Pull request description:

  After discussion with @theuni, we can possibly just remove ccache from depends entirely.

  Related to #12606

Tree-SHA512: ae0a60c8d97467fa41d617daa48ed22159cf32613808634a983304901dd5ed27124e77868d2314004e5144f7b35ba1333f720bb12daec4c5ca03aaf29d593ef2
2018-03-07 21:12:47 -05:00
fanquake
4ef82f1699 depends: biplist 1.0.3 2018-03-06 18:18:14 -05:00
fanquake
cc879675e1 depends: Remove ccache 2018-03-06 10:37:42 -05:00
Cory Fields
13a399a46c depends: patch pthread_set_name_np out of zeromq 2018-03-05 15:08:31 -05:00
fanquake
8f79226361 depends: zeromq 4.2.3 2018-03-05 15:08:24 -05:00
fanquake
2b1f794574 [Depends] Fix Qt build with Xcode 9.2 2018-03-05 13:51:14 -05:00
fanquake
992f568762 depends: Only use D_DARWIN_C_SOURCE when building miniupnpc on darwin 2018-03-05 12:50:22 -05:00
Henrik Jonsson
ac91ea64c2 [depends] Allow depends system to support armv7l 2018-02-20 14:42:14 +00:00
Wladimir J. van der Laan
59e032b43c
Merge #12402: [depends] expat 2.2.5, ccache 3.4.1, miniupnpc 2.0.20180203
25409b1 fixme: depends: Add D_DARWIN_C_SOURCE to miniupnpc CFLAGS (fanquake)
3335d45 [depends] latest config.guess and config.sub (fanquake)
41550d6 [depends] miniupnpc 2.0.20180203 (fanquake)
61647a4 [depends] ccache 3.4.1 (fanquake)
5a10859 [depends] expat 2.2.5 (fanquake)

Pull request description:

  miniupnpc changelog: http://miniupnp.free.fr/files/changelog.php?file=miniupnpc-2.0.20180203.tar.gz
  2.0.20180203 includes fixes for the recent buffer overflow and segfault issues, see https://github.com/miniupnp/miniupnp/issues/268.

  expat changelog: https://github.com/libexpat/libexpat/blob/R_2_2_5/expat/Changes
  2.2.2 & 2.2.3 included security fixes.

  ccache changelog: https://ccache.samba.org/releasenotes.html#_ccache_3_4_1

  Also includes latest config.guess and config.sub.

Tree-SHA512: 5115b6ccf2bc50c62fd16ab2350bdc752eef7db8b1e4fbe35998fe1aac3702baa6c7f5e471ec48f7c614278df20a68ee6a254dde7c3e2d5c6ce2d10257a5aa21
2018-02-16 17:40:11 +01:00
fanquake
25409b16fd
fixme: depends: Add D_DARWIN_C_SOURCE to miniupnpc CFLAGS 2018-02-15 19:12:49 +08:00
fanquake
41550d6d13
[depends] miniupnpc 2.0.20180203 2018-02-15 18:44:44 +08:00
fanquake
61647a4b86
[depends] ccache 3.4.1 2018-02-15 18:44:44 +08:00
fanquake
5a10859a80
[depends] expat 2.2.5 2018-02-15 18:44:43 +08:00
Douglas Roark
fc1bfcf9fd Update mac_alias to 2.0.7 2018-02-13 17:05:22 -08:00
Douglas Roark
deee216bd3 Delete mac_alias patch
The patch Bitcoin Core has been maintaining for mac_alias was pulled by the mac_alias maintainer in commit 4f31cb084c1c6a8626128b0b00842020b6db9037. Delete the patch and remove the patch from the depends system.

Note that this PR won't be complete until a new version of mac_alias containing the path has been released, and the depends system is updated to reflect the new version.
2018-02-13 17:05:22 -08:00
Cory Fields
a6365c5c3d depends: fix libzmq's needless linking against libstdc++
This is broken for a number of reasons, including:
- g++ understands "-static-libstdc++ -lstdc++" to mean "link against whatever
  libstdc++ exists, probably shared", which in itself is buggy.
- another stdlib (libc++ for example) may be in use
2017-12-21 18:01:08 -05:00
Cory Fields
126999d1cc
depends: fix zmq build with mingw < 4.0 2017-11-29 19:31:59 +08:00
fanquake
387879dd4c
[depends] ZeroMQ 4.2.2 2017-11-29 19:31:50 +08:00
fanquake
f617d1b06c
[depends] native_ds_store 1.1.2 2017-10-07 14:50:25 +08:00
fanquake
46b752ab57
[depends] native_mac_alias 2.0.6 2017-10-07 14:50:18 +08:00
fanquake
f38c051048
[depends] Don't build libevent sample code 2017-09-08 16:29:01 +08:00
Cory Fields
3498a8d018 depends: fix fontconfig with newer glibc
See comment for more detail
2017-08-02 21:27:22 -04:00
fanquake
2c3fc5150e
[depends] expat 2.2.1 2017-06-19 12:49:32 +08:00
fanquake
af5d48c9a0
[depends] miniupnpc 2.0.20170509 2017-05-17 17:44:49 +08:00
fanquake
355c11679b
[depends] dbus 1.10.18 2017-05-03 18:19:08 +08:00
fanquake
a8d7474ff2
[depends] ccache 3.3.4 2017-05-03 18:19:07 +08:00
fanquake
daeb767f24
[depends] libevent 2.1.8-stable 2017-05-03 18:19:07 +08:00
fanquake
d78269ac99
[depends] Boost 1.64.0 2017-05-03 18:19:07 +08:00
Cory Fields
c62475329e depends: fix zlib build on osx
zlib is sneaky and expects ar to be libtool on darwin.
2017-03-10 16:53:05 -05:00
Cory Fields
9e4d842afc depends: make osx output deterministic
ld64 is threaded, and uses a worker for each CPU to parse input files. But
there's a bug in the parser causing dependencies to be calculated differently
based on which files have already been parsed.

As a result, builders with more CPUs are more likely to see non-determinism.

This looks to have been fixed in a newer version of ld64, so just disable
threading for now. There's no noticible slowdown.
2017-03-01 00:32:21 -05:00
Mitchell Cash
1bfe6b426e
Use package name variable inside $(package)_file_name variable 2017-02-18 17:37:27 +10: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
Wladimir J. van der Laan
f9117f2047
Merge #9468: [Depends] Dependency updates for 0.14.0
7f1fa99 [depends] native_ds_store 1.1.0 (fanquake)
c6347ae [depends] dbus 1.10.14 (fanquake)
a4c6da0 [depends] ccache 3.3.3 (fanquake)
6019d21 [depends] FreeType 2.7.1 (fanquake)
4ed6faf [depends] Boost 1.63.0 (fanquake)
8ac1830 [depends] Latest config.guess and config.sub (fanquake)
2017-01-12 12:46:30 +01:00
fanquake
7f1fa99a21
[depends] native_ds_store 1.1.0 2017-01-11 17:34:13 +08:00
fanquake
c6347aec6c
[depends] dbus 1.10.14 2017-01-11 08:44:23 +08:00
fanquake
a4c6da085b
[depends] ccache 3.3.3 2017-01-11 08:44:23 +08:00
fanquake
6019d21a43
[depends] FreeType 2.7.1 2017-01-11 08:44:23 +08:00
fanquake
4ed6faf381
[depends] Boost 1.63.0 2017-01-11 08:44:22 +08:00
fanquake
8217bd1d4c
[depends] libevent 2.1.7rc 2017-01-04 22:00:26 +08:00
Wladimir J. van der Laan
c84181665f
Merge #8819: [depends] Boost 1.61.0
16f8823 [depends] Boost 1.61.0 (fanquake)
2016-09-29 17:08:10 +02:00
Wladimir J. van der Laan
489a6ab507
Merge #8730: depends: Add libevent compatibility patch for windows
64047f8 depends: Add libevent compatibility patch for windows (Wladimir J. van der Laan)
2016-09-29 09:19:27 +02:00
fanquake
5776e8a596
[depends] Fix Qt compilation with Xcode 8 2016-09-27 12:32:20 +08:00
fanquake
16f8823088
[depends] Boost 1.61.0 2016-09-27 10:34:54 +08:00
fanquake
86d410d91b
[depends] fontconfig 2.12.1 2016-09-16 15:26:19 +08:00
fanquake
9616ac8a40
[depends] ccache 3.3.1 2016-09-16 15:26:19 +08:00
fanquake
6b6cbddb4c
[depends] expat 2.2.0 2016-09-16 15:26:19 +08:00
Wladimir J. van der Laan
64047f8e7f depends: Add libevent compatibility patch for windows
Add a patch that seems to be necessary for compatibilty of libevent
2.0.22 with recent mingw-w64 gcc versions (at least GCC 5.3.1 from Ubuntu
16.04).

Without this patch the Content-Length in the HTTP header ends up as
`Content-Length: zu`, causing communication between the RPC
client and server to break down. See discussion in #8653.

Source: https://sourceforge.net/p/levent/bugs/363/

Thanks to @sstone for the suggestion.
2016-09-14 19:32:00 +02:00
Michael Ford
3e7d2a24cf [depends] Remove Qt46 package 2016-09-01 08:23:33 +08:00
Wladimir J. van der Laan
3c5251daeb test: Remove java comparison tool 2016-08-13 16:04:29 +02:00
fanquake
a615386552
[depends] ZeroMQ 4.1.5 2016-07-21 16:20:17 +08:00
Cory Fields
3b3ce25df6 build: fix non-deterministic biplist
The non-deterministic ordering produced by biplist ends up in the .DS_Store
file that is included in the OSX dmg.
2016-07-19 15:43:07 -04: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
fanquake
f6eb4e2b62
[depends] OpenSSL 1.0.1k - update config_opts 2016-06-17 09:33:45 +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
9d25362087 build: add armhf/aarch64 gitian builds
- create a script to handle split debug. This will also eventually need to check
  targets, and use dsymutil for osx.
- update config.guess/config.sub for bdb for aarch64.
- temporarily disable symbol checks for arm/aarch64
- quit renaming to linux32/linux64 and use the host directly

This also adds a hack to work around an Ubuntu bug in the gcc-multilib package:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults-armhf-cross/+bug/1347820

The problem is that gcc-multilib conflicts with the aarch toolchain.
gcc-multilib installs a symlink that points
/usr/include/asm -> /usr/include/x86_64-linux-gnu/asm.

Without this link, gcc -m32 can't find asm/errno.h (and others), since
/usr/include/x86_64-linux-gnu isn't in its default include path. But
/usr/include/i386-linux-gnu is (though it doesn't exist on disk).

So work around the problem by linking
/usr/include/i386-linux-gnu/asm -> /usr/include/x86_64-linux-gnu/asm.

The symlink fix is actually quite reasonable, but echoing the password into
sudo is nasty, and should probably be addressed in gitian itself. It makes more
sense to enable passwordless sudo for the build user by default.
2016-06-10 05:34:50 -04:00
Cory Fields
980e7eb98c depends: only build qt on linux for x86_64/x86 2016-06-10 05:29:52 -04:00
fanquake
6a4cf16e2b
[depends] expat 2.1.1 2016-06-02 09:16:12 +08:00
fanquake
3e0587bf81
[depends] miniupnpc 2.0 2016-06-02 09:16:12 +08:00
fanquake
bd3cbd5333
[depends] ZeroMQ 4.1.4 2016-06-02 09:16:12 +08:00
fanquake
0385202bef
[depends] ccache 3.2.5 2016-06-02 09:16:12 +08:00
fanquake
2b2d52ea3a
[depends] Freetype 2.6.3
Update FreeType, and change the download location to gnu.org. This is
the other official download location listed on freetype.org
2016-06-02 09:16:12 +08: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
Wladimir J. van der Laan
a6666b25c7 depends: mac deploy Py3 compatibility
This fixes the gitian MacOSX build, it was broken in #7723.

The patch to `native_mac_alias` should probably make it upstream.
2016-04-21 13:40:51 -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
fanquake
5fd2318d2d [Depends] Miniupnpc 1.9.20160209
2016/01/24:
  Change miniwget to return HTTP status code
  Increments API_VERSION to 16

2016/01/22:
  Improve UPNPIGD_IsConnected() to check if WAN address is not private.
  Parse HTTP response status line in miniwget.c
2016-03-18 09:03:58 +08:00
Luke Dashjr
a68bb9f5e7 Merge branch 'master' into single_prodname 2016-02-03 05:41:13 +00:00
Cory Fields
3968922b96 c++11: fix libbdb build against libc++ in c++11 mode
atomic_init clashes with
2016-01-05 17:17:29 -05:00
Luke Dashjr
902ccde85e depends: Add mac_alias to depends 2015-12-22 04:37:46 +00:00
Cory Fields
82a2d98d9a depends: Add ds_store to depends 2015-12-22 04:37:46 +00:00
Wladimir J. van der Laan
8ea5ef1d39
Merge pull request #6980
e0769e1 [depends] Latest config.guess & config.sub (fanquake)
23a3c47 [depends] zeromq 4.0.7 (fanquake)
10d3c77 [depends] Fix miniupnpc compilation on osx (fanquake)
26f8ea5 [depends] native ccache 3.2.4 (fanquake)
17ad964 [depends] miniupnpc 1.9.20151026 (fanquake)
9e940fa [depends] Boost 1.59.0 (fanquake)
2015-12-18 09:24:59 +01:00
Wladimir J. van der Laan
a1bfca8052
Merge pull request #7059
2798e0b add powerpc build support for openssl lib (daniel)
2015-11-20 08:35:29 +01:00
daniel
2798e0b0d2 add powerpc build support for openssl lib 2015-11-19 13:29:57 +08: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