Commit Graph

176 Commits

Author SHA1 Message Date
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
Wladimir J. van der Laan
19ea17302e
Merge #8167: gitian: Ship debug tarballs/zips with debug symbols
7e7eb27 gitian: create debug packages for linux/windows (Cory Fields)
ad38204 gitian: use CONFIG_SITE rather than hijacking the prefix (Cory Fields)
b676f38 depends: allow for CONFIG_SITE to be used rather than stealing prefix (Cory Fields)
2016-06-09 07:13:14 +02:00
Cory Fields
b676f38791 depends: allow for CONFIG_SITE to be used rather than stealing prefix
This does not break any existing prefix behavior, only makes new behavior work.

For example:
CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure --prefix=/
2016-06-07 22:10:33 -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
87b8175d99
[depends] Latest config.guess & config.sub 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
fanquake
47eda2d882 [depends] Add -stdlib=libc++ to darwin CXX flags 2016-05-04 19:03:59 +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
Cory Fields
bb717f4375 depends: fix "unexpected operator" error during "make download" 2016-04-04 19:26:44 -04:00
Cory Fields
fe740f1469 depends: fix fallback downloads
In some cases, failed downloads wouldn't trigger a fallback download attempt.
Namely, checksum mismatches.
2016-04-04 19:26:44 -04:00
Cory Fields
dc4ec6d3db depends: create a hostid and buildid and add option for salts
These add very simple sanity checks to ensure that the build/host toolchains
have not changed since the last run. If they have, all ids will change and
packages will be rebuilt.

For more complicated usage (like parsing dpkg), HOST_ID_SALT/BUILD_ID_SALT may
be used to introduce arbitrary data to the ids.
2016-04-04 19:26:44 -04:00
fanquake
c85f4757b8 [Depends] Latest config.guess & config.sub 2016-03-18 09:06:08 +08: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
Wladimir J. van der Laan
639ec582d0
Merge #7616: [depends] Delete unused patches
fafe446 [depends] Delete unused patches (MarcoFalke)
2016-03-01 17:29:48 +01:00
MarcoFalke
fafe446d0e [depends] Delete unused patches
Superseded by 4bdad99f50
2016-03-01 13:03:42 +01:00
Wladimir J. van der Laan
b53d201eab
Merge #7606: [depends] builders: No need to set -L and --location for curl
fa7a5c5 [depends] builders: No need to set -L and --location for curl (MarcoFalke)
2016-02-29 09:51:26 +01:00
MarcoFalke
fa7a5c54fc [depends] builders: No need to set -L and --location for curl 2016-02-26 09:50:29 +01:00
Wladimir J. van der Laan
bf1e113311
Merge #7487: Workaround Travis-side CI issues
149641e Travis: Use Blue Box VMs for IPv6 loopback support (Luke Dashjr)
c01f08d Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl (Luke Dashjr)
5d1148c Travis: Use curl rather than wget for Mac SDK (Luke Dashjr)
1ecbb3b depends: Use curl for fetching on Linux (Luke Dashjr)
2016-02-15 12:57:01 +01:00
Luke Dashjr
c01f08db12 Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl 2016-02-09 22:15:28 +00:00
Luke Dashjr
1ecbb3b0f7 depends: Use curl for fetching on Linux
Currently Travis's wget fails fetching qrencode:

Fetching qrencode...
ERROR: no certificate subject alternative name matches
	requested host name `fukuchi.org'.
To connect to fukuchi.org insecurely, use `--no-check-certificate'.
OpenSSL: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
Unable to establish SSL connection.
make: *** [/home/travis/build/luke-jr/bitcoin/depends/sources/download-stamps/.stamp_fetched-qrencode-qrencode-3.4.4.tar.bz2.hash] Error 4
2016-02-09 04:02:02 +00: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
Cory Fields
de619a37fd depends: Pass PYTHONPATH along to configure 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
fanquake
e0769e1928 [depends] Latest config.guess & config.sub 2015-12-09 16:49:58 +08: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
fanquake
23a3c47f95 [depends] zeromq 4.0.7 2015-11-11 17:53:34 +08:00
fanquake
10d3c77644 [depends] Fix miniupnpc compilation on osx 2015-11-11 14:33:52 +08:00
fanquake
26f8ea5342 [depends] native ccache 3.2.4 2015-11-10 23:24:08 +08:00
fanquake
17ad964c2f [depends] miniupnpc 1.9.20151026 2015-11-10 23:23:56 +08:00
fanquake
9e940fa4c6 [depends] Boost 1.59.0 2015-11-10 23:23:33 +08:00
MarcoFalke
6782f58368 [trivial] Latest config.guess
upstream commit 1e80063123b47b97d25dfeded8dd92a19dafab66
2015-10-23 08:35:05 +02:00
Wladimir J. van der Laan
ae69a75c55
Merge pull request #6801
e76d9e4 [depends] Latest config.guess and config.sub (fanquake)
2015-10-20 12:35:54 +02:00
Wladimir J. van der Laan
bfcdc21a5d build: make sure OpenSSL heeds noexecstack
This passes `-Wa,--noexecstack` to the assembler when building
platform-specific assembly files, to signal that a non-executable stack
can be used. This is the same approach as used by Debian
(see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=430583)
2015-10-19 12:03:29 +02:00
fanquake
e76d9e4c15 [depends] Latest config.guess and config.sub 2015-10-11 10:17:06 +08:00
Wladimir J. van der Laan
0cca0248f0 Update miniupnpc to 1.9.20151008
This version of miniupnpc fixes a buffer overflow in the XML (ugh)
parser during initial network discovery.

http://talosintel.com/reports/TALOS-2015-0035/

The commit fixing the vulnerability is:
79cca974a4

Reported by timothy on IRC.
2015-10-09 13:16:44 +02:00
Chris Kleeschulte
34754ce3bc [Trivial] Fixed typo when referring to a previous section in
depends/README.md [skip ci]
2015-10-08 15:27:12 -04:00
Wladimir J. van der Laan
486270854e
Merge pull request #6619
42cf089 depends: bump ccache to 3.2.3 (fanquake)
888c595 depends: bump miniupnpc to 1.9.20150730 (fanquake)
2015-09-25 16:29:24 +02:00
Jonas Schnelli
93254172ce depends: fix platform specific packages variable
prefix instead of postfix
2015-09-17 14:30:46 +02:00
Cory Fields
1136879df8 Depends: Add ZeroMQ package 2015-09-16 10:59:32 +01:00
Cory Fields
4be0b082b9 libevent: Windows reuseaddr workaround in depends
Make it possible to reuse sockets.
This is necessary to make the RPC tests work in WINE.
2015-09-03 10:59:19 +02:00
Cory Fields
a9af234c1f libevent: add depends 2015-09-02 18:38:41 +02:00
fanquake
42cf08905f depends: bump ccache to 3.2.3 2015-09-03 00:05:35 +08:00
fanquake
888c595cff depends: bump miniupnpc to 1.9.20150730 2015-09-03 00:05:35 +08:00
Veres Lajos
9f68ed6b6d typofixes (found by misspell_fixer) 2015-08-10 22:06:27 +01:00
Cory Fields
060b3d377b fixup: qt 5.5 snuck in another module that needs path hand-holding 2015-07-27 12:25:28 +02: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
eb4f35dc7d depends: bump qrencode to 3.4.4 2015-07-03 17:21:55 -04:00
Cory Fields
142ee60a89 depends: bump protobuf to 2.6.1
Also change the download source from googlecode to github.
2015-07-03 12:59:13 -04:00
Cory Fields
d5b1851743 depends: bump ccache to 3.2.2 2015-07-03 12:59:13 -04:00
Cory Fields
00c5a73136 depends: bump miniupnpc to 1.9.20150609 2015-07-03 12:59:13 -04:00
Cory Fields
4bdad99f50 depends: bump boost to 1.58.0 2015-07-03 12:59:13 -04:00
Cory Fields
7c2c270829 build: comparison tool NPE fix
This should fix the spurious comparison tool failures.
See discussion here: https://github.com/bitcoin/bitcoin/pull/6305

The race fix was cherry-picked on top of the version we're currently using, so
it should be functionally identical otherwise.
2015-06-21 12:12:05 -04:00
Cory Fields
a4d9f95653 build: comparison tool swap
This should be functionally identical to what's in place now. It was built from
be0eef7744

That commit is the same as this pruned commit in TheBlueMatt's repo:
https://github.com/TheBlueMatt/bitcoinj/commit/0f7b5d8

Now we'll be able to trust the line numbers in the stack traces.
2015-06-19 01:52:26 -04:00
Jacob Welsh
b19a88b2a0 depends: fix Boost 1.55 build on GCC 5
Boost assumes variadic templates are always available in GCC 4.4+, but
they aren't since we don't build with -std=c++11.

This applies the patch that fixed the issue in boost 1.57:
eec8085549

See also: https://svn.boost.org/trac/boost/ticket/10500
2015-06-13 17:02:34 -05:00
Shawn Wilkinson
cc3db874b5 doc: Documentation in Markdown for Depends Dir
Documentation more readable when viewed on Github.

Some extra changes by @laanwj:

- Make README.usage the default README. This is more convenient from a
  user perspective. Link to other documentation in this default README

- Add list of popular targets for cross compilation, change default to
  Win64 instead of Win32
2015-05-15 12:35:20 +02:00
Cory Fields
235b3a789d depends: sanity-check sources and cached builds
In some cases (Travis), sources and build caches may be moved around in-between
builds, and we can't necessarily trust that everything is still intact.

This introduces pre-build checks that verify against stashed checksums.

Note that this will cause all sources to be re-downloaded, since cached sources
weren't trustworthy before this.
2015-05-14 01:33:07 -04:00
Michael Ford
c0555dc8eb depends: latest config.guess and config.sub 2015-04-20 13:29:22 +02:00
Michael Ford
c2f21612ca Add x86_64* i686* mips* and arm* to depends .gitignore 2015-04-20 13:29:20 +02:00
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
Cory Fields
d23b0a2711 depends: always use static qt5 for linux 2015-02-25 18:41:59 -05:00
Michael Ford
5a809ef0f0 depends: fix typos 2015-01-31 17:38:28 -05:00
Michael Ford
5fdc5b08e7 depends: latest config.guess and config.sub 2015-01-21 15:48:27 +08:00
Cory Fields
f0172bf91e osx: bump build sdk to 10.9 2015-01-20 01:49:20 -05:00
Wladimir J. van der Laan
90c71548c7
depends: remove embedded OpenSSL timestamp for determinism
Chery-picked from 0.10 branch.

Rebased-From: c3200bcd1e
2015-01-12 16:19:24 +01:00
Cory Fields
dad7764a9d depends: bump openssl to 1.0.1k 2015-01-09 21:31:38 -05:00
Cory Fields
4caad26ba1 depends: bump cctools to a custom version with less deps
This one no longer requires native libuuid or libcrypto
2015-01-02 19:31:07 -05: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
d57b303e1e depends: fix major regression after d546191dc.
Broken hash logic caused all depends on some platforms (osx at least) to end up
with the same build-id. Without this fix, nothing will be rebuilt when recipes
or dependencies change.
2014-12-31 13:20:24 -05:00
Wladimir J. van der Laan
e36e619886 Add mips, mipsel and aarch64 to depends platforms 2014-12-17 13:20:11 +01:00
BtcDrak
164a45f57a
Fix download link for gitian builds 2014-12-13 09:03:33 +00:00
Cory Fields
d7db4b6317 depends: fix packages with hard-coded SOURCES_PATH
Also fixes a nasty bug that removes the downloaded comparisontool jar file.
2014-12-11 19:23:12 -05:00
Cory Fields
d546191dc2 depends: Move source stamps to source dir and misc cleanups
Since the last commit will force rebuilds of all depends, take the opportunity
to clean up a few other things that would trigger rebuilds as well.

- Move source stamps to the sources dir so that SOURCES_PATH is respected for
  "make download".
- Only print "fetching..." when actually downloading a file.
- Avoid using non-deterministic paths for the recipe hash (patch location).
  This should ensure that all builders get the same resulting build-ids.
- Use a per-package source paths. This will allow for removing old source files
  in the future.
- Use a host-agnostic path for downloads which gets cleaned up properly.
2014-12-11 19:23:12 -05:00
Cory Fields
422f873ef3 depends: teach 'make download' to download sources for all hosts 2014-12-11 19:23:12 -05:00
Pieter Wuille
ffe3291466 Remove gmp dependency and doc mentions 2014-12-04 19:17:02 +01: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
1aead42d41 gitian: descriptors overhaul
Descriptors now make use of the dependencies builder, so results are cached.
A very new version (>= e9741525c) of Gitian should be used in order to take
advantage of caching.
2014-11-19 22:49:41 -05:00
Cory Fields
5f93ec2028 depends: Add a package for qt4.6. Linux uses it by default.
We're not ready to switch to a static qt5 for Linux yet due to missing plugin
support. This adds a recipe for building a shared qt4 that we build and link
against, but don't distribute.

make USE_LINUX_STATIC_QT5=1 can be used to build static qt5 as before.
2014-11-19 22:49:41 -05:00
Cory Fields
4302fa67b1 depends: Use pic for all linux dependencies
This avoids textrels, and matches previous gitian behavior.
2014-11-19 22:49:41 -05:00
Cory Fields
54566de29d depends: quit exporting in config.site 2014-11-18 18:06:47 +01:00
Cory Fields
ff1e5ba8c7 depends: add gmp package 2014-11-18 18:06:46 +01: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
0246ab6088 depends: boost: hard-code hidden symbol visibility
tl;dr: This solves boost visibility problems for default/release build configs
on non-Linux platforms.

When Bitcoin builds against boost's header-only classes, it ends up with
objects containing symbols that the upstream boost libs also have. Since
Bitcoin builds by default with hidden symbol visibility, it can end up trying
to link against a copy of the same symbols with default visibility.
This is not a problem on Linux because 3rd party static libs are un-exported
by default (--exclude-libs,ALL), but that is not available for MinGW and OSX.

Those platforms (and maybe others?) end up confused about which version to use.

The OSX linker spews hundreds of: "ld: warning: direct access in <foo> to
global weak symbol guard variable for <bar> means the weak symbol cannot be
overridden at runtime. This was likely caused by different translation units
being compiled with different visibility settings."

MinGW's linker complains similarly.

Since the default symbol visibility for Bitcoin is hidden and releases are
built that way as well, build Boost with hidden visibility. Linux builds Boost
this way also, but only for the sake of continuity.

This means that the linker confusion logic is reversed, so the problem will
will now be encountered if Bitcoin is built with --disable-reduce-exports, but
that's better than the current situation.
2014-11-05 01:16:53 -05:00
Dominyk Tiller
a6a3f141b1 openssl version bump
Bumps the OpenSSL version to the latest release, and kills SSL2. (SSL3 was already killed here, so I'm not sure why SSL2 was left around?)

No other changes.
2014-10-21 21:49:45 +01:00