Commit graph

181 commits

Author SHA1 Message Date
Wladimir J. van der Laan
957c0fd7c0 gitian: make windows build deterministic 2015-11-19 13:01:35 +01:00
Wladimir J. van der Laan
2e31d74b71 gitian: use trusty for building 2015-11-16 16:39:24 +01:00
Wladimir J. van der Laan
21d27ebad5 net: Disable upnp by default
Common sentiment is that the miniupnpc codebase likely contains further
vulnerabilities.

I'd prefer to get rid of the dependency completely, but a compromise for
now is to at least disable it by default.
2015-10-09 21:09:44 +02:00
Cory Fields
a3ba9a553a gitian: make the windows signing process match OSX 2015-06-30 10:57:14 -04:00
Cory Fields
d08cfc2bd7 gitian: add a gitian-win-signer descriptor
This is exactly like the current OSX signing process.

osslsigncode has been patched to detach and re-attach Windows signatures.
The changes can be seen here: https://github.com/theuni/osslsigncode/commits/attach-signature

There's a pull-request open upstream for the changes:
https://sourceforge.net/p/osslsigncode/osslsigncode/merge-requests/3/

This work has been back-ported to the stable 1.7.1 release of osslsigncode, so
that a smaller patch can be reviewed.
2015-06-18 18:17:36 -04:00
Cory Fields
c110575a92 gitian: Use the new bitcoin-detached-sigs git repo for OSX signatures
Rather than fetching a signature.tar.gz from somewhere on the net, instruct
Gitian to use a signature from a tag in the bitcoin-detached-sigs repository
which corresponds to the tag of the release being built.

This changes detached-sig-apply.sh to take a dirname rather than a tarball as
an argument, though detached-sig-create.sh still outputs a tarball for
convenience.
2015-06-10 17:54:46 -04:00
Cory Fields
960e99404f gitian: Bump cache dir for current master
Do not backport.
2015-06-02 10:41:56 -04:00
Cory Fields
be656283f9 gitian: bump faketime to something more recent
This helps in file views where binaries are sorted by time
2015-06-02 10:39:34 -04:00
Jonas Schnelli
7cef321e65 [Mac only] rename Bitcoin-Qt.app to "Bitcoin Core.app" 2015-05-19 11:03:49 +02:00
Cory Fields
c95ac83e51 gitian: fix x86_64 build with static libstdc++ 2015-02-23 19:43:25 -05:00
Cory Fields
06715165f9 build: change reduce exports/static libstdc++ options for gitian and travis
For Gitian releases:
  - Windows builds remain unchanged. libstdc++ was already linked statically.
  - OSX builds remain unchanged. libstdc++ is tied to the SDK and not worth
    messing with.
  - Linux builds now statically link libstdc++.

For Travis:
  - Match the previous behavior by adding --enable-reduce-exports as
  necessary.
  - Use static libstdc++ for the full Linux build.
2015-02-23 18:22:58 -05:00
Cory Fields
0c6ab676ee gitian: don't add . to tar list
Since permissions and timestamps are changed for the sake of determinism,
. must not be added to the archive. Otherwise, tar may try to modify pwd when
extracting.
2015-02-13 03:08:08 -05:00
Cory Fields
f0172bf91e osx: bump build sdk to 10.9 2015-01-20 01:49:20 -05:00
Cory Fields
46f54bf796 build: osx builders no longer need 32bit compiler support 2015-01-02 15:09:43 -05:00
Cory Fields
0d50c2fd81 dmg: fix deterministic dmg creation and docs 2014-12-30 02:47:38 -05:00
Cory Fields
566c6cb8a2 gitian: attempt to fix tarball determinisim 2014-12-23 19:43:27 -05:00
Cory Fields
914868a05d build: add a deterministic dmg signer 2014-11-26 00:57:16 -05:00
Cory Fields
52bb7a7e1b gitian: update descriptors to use a sane uniform output 2014-11-25 18:49:02 -05:00
Cory Fields
246659aff1 gitian: make tarballs deterministic and nuke .la files from build output 2014-11-19 22:49:41 -05:00
Cory Fields
4bbbdf3244 gitian: quick docs update 2014-11-19 22:49:41 -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
Luke Dashjr
ab72068565 Bugfix: Replace bashisms with standard sh in gitian descriptors 2014-10-03 23:45:26 +00:00
Cory Fields
a7ec027311 gitian: remove unneeded option after last commit 2014-07-22 09:21:09 -04:00
Cory Fields
b150b09edc secp256k1: add libtool as a dependency 2014-07-01 12:27:15 -04:00
Wladimir J. van der Laan
6e7c4d17d8 gitian: upgrade OpenSSL to 1.0.1h
Upgrade for https://www.openssl.org/news/secadv_20140605.txt

Just in case - there is no vulnerability that affects ecdsa signing or
verification.

The MITM attack vulnerability (CVE-2014-0224) may have some effect on
our usage of SSL/TLS.

As long as payment requests are signed (which is the common case), usage
of the payment protocol should also not be affected.

The TLS usage in RPC may be at risk for MITM attacks. If you have
`-rpcssl` enabled, be sure to update OpenSSL as soon as possible.
2014-06-05 17:24:38 +02:00
Wladimir J. van der Laan
386e732a5f gitian: make linux qt intermediate deterministic
A qt installation date snuck into the host utils (lrelease etc)
This doesn't affect the end product, so no dependency version bump.

It also doesn't explain why gavin's and mine build is different
2014-06-02 09:46:59 +02:00
Cory Fields
2869b1349b release: Bump the OSX SDK to 10.7 for gitian builds
This fixes the display on Retina Macbooks. It also moves us away from depending
on the ancient XCode3 sdk.
2014-05-24 11:47:08 -04:00
Cory Fields
1a97b22b9c
gitian: Add OSX build descriptors
Github-Pull: #4185
Rebased-By: Wladimir J. van der Laan
Rebased-From: bb5da27, 2288206, 7fe8fe6, f76db78, ebcf375, fa1ed7c, 397e9b8
2014-05-21 11:20:52 +02:00
Wladimir J. van der Laan
51cb8fe870
gitian: use right qt tools in linux build
If the `libqt4-dev` package is installed it picks the moc executable
from the system instead of our custom-built one. This results in
compatibility errors.

This commit convinces configure to pick the right one.
2014-05-02 15:15:45 +02:00
Wladimir J. van der Laan
92e3022f88 gitian: don't export any symbols from executable
This avoids conflicts between the libraries statically linked into bitcoin and any
libraries we may link dynamically (such as Qt and OpenSSL, see issue #4094).
It also avoids start-up overhead to not export any unnecessary symbols.
To do this, build a linker script that marks all symbols as local.
2014-04-30 15:30:39 +02:00
Wladimir J. van der Laan
3ab1664594 gitian: build against Qt 4.6
Should make it possible to run the resulting GUI executable on
Linux distributions that use Qt 4.6, such as Debian Wheezy and Tails.

Builds a mini-SDK for building against Qt 4.6. This includes the headers
as well as host utilities such as `lrelease`, `qrc` and `moc`.

This speeds up the gitian build a bit - libqt4-dev pulled in a lot of packages,
and is no longer needed as this provides a replacement of our own.

Note: This does not replace the Qt build with at static library. After this
commit we still build dynamically against the system Qt library. The only
difference is that compatibility with an older version is maintained. This
loses minor GUI functionality (such as setPlaceholderText) but still
allows integration into the window management of the host OS, unlike
when statically linking.
2014-04-30 15:30:39 +02:00
Warren Togami
49a3352c1c gitian-linux: --enable-glibc-back-compat 2014-04-10 22:28:26 -04:00
Wladimir J. van der Laan
25d4911e86 gitian: upgrade miniupnpc input to 1.9
Bumps deps-linux, deps-win dependency versions as well.

qt-win does not need to be bumped, as although it depends on deps-win,
Qt doesn't use miniupnp. I verified this by rebuilding the dependency
and checking the the output is the same. Not having to rebuild Qt is a
good thing as it is huge.
2014-04-09 14:24:17 +02:00
Wladimir J. van der Laan
178825dec3
gitian: Version bump for Qt dependency
Bump Qt dependency version after OpenSSL update.
Very important. Thanks @michagogo for noting.
2014-04-08 11:51:59 +02:00
Wladimir J. van der Laan
fa2b42533a
Merge pull request #4023
4a811b0 gitian: upgrade openssl to 1.0.1g for both win and linux (Wladimir J. van der Laan)
2014-04-08 10:56:01 +02:00
Wladimir J. van der Laan
4a811b0053
gitian: upgrade openssl to 1.0.1g for both win and linux
OpenSSL 1.0.1g fixes CVE-2014-0160.

Also bump dependency versions.
2014-04-08 08:40:02 +02:00
Wladimir J. van der Laan
ddcd1afc5f gitian: add statically built variant of bitcoind/bitcoin-cli 2014-03-26 09:48:22 +01:00
Wladimir J. van der Laan
c337e2e905 Update gitian README.md 2014-03-21 13:31:22 +01:00
Wladimir J. van der Laan
93c3e21e92 Re-enable UPnP by default in gitian builds
IIRC this was the case with 0.8.6, so let's keep this to avoid the risk
of losing connectable nodes with 0.9 release.

Also our miniupnpc library was recently updated and I've heard
reports that it works better than before now.
2014-02-27 15:44:00 +01:00
Wladimir J. van der Laan
31b3d94ef5 gitian: Make protobuf win32 intermediate output deterministic
While building protobuf in different environments we noticed that
the host tool protoc was slightly different between builds (a symbol table
sorting issue).
Add a deterministic seed as well as disable zlib support.

Exected output is now:

    e2e403e1a08869c7eed4d4293bce13d51ec6a63592918b90ae215a0eceb44cb4 protobuf-win32-2.5.0-gitian-r4.zip
    a0999037e8b0ef9ade13efd88fee261ba401f5ca910068b7e0cd3262ba667db0 protobuf-win64-2.5.0-gitian-r4.zip

No effect on final executables so no version bump.
2014-02-25 07:58:11 +01:00
Wladimir J. van der Laan
6c0276ae69 gitian: add libz-dev dependency package for linux boost
Boost iostreams was picking up libz-dev in VirtualBox, as the recommended
way to build is now to make a VM with all dependency packages installed.

This caused a divergence between KVM/LXC build and VirtualBox
build results.

Fix this in the simplest possible way: add the libz-dev package.
2014-02-22 08:18:07 +01:00
Wladimir J. van der Laan
d5fa3eff03
Merge pull request #3622
c13a13e gitian: add -D flag to ar for deterministic output for linux deps (Wladimir J. van der Laan)
1552145 gitian: Sort generated source distribution archive (Wladimir J. van der Laan)
aabcd11 gitian: Make linux boost dependency completely deterministic (Wladimir J. van der Laan)
aa93485 gitian: Make linux build of OpenSSL deterministic (Wladimir J. van der Laan)
2014-02-10 18:35:04 +01:00
Wladimir J. van der Laan
4ce9106ff8 gitian: sort generated source distribution archive for windows
Make the bitcoin-X.X.X.tar.gz deterministic.
2014-02-10 17:07:36 +01:00
Wladimir J. van der Laan
6b55e6b97d gitian: Post-process .a libraries for win to be deterministic 2014-02-10 17:07:35 +01:00
Wladimir J. van der Laan
c13a13efec gitian: add -D flag to ar for deterministic output for linux deps
ar -D: Operate in deterministic mode. When adding files and the archive
index use zero for UIDs, GIDs, timestamps, and use consistent file modes
for all files.  When this option is used, if ar is used with identical
options and identical input files, multiple runs will create identical
output files regardless of the input files' owners, groups, file modes,
or modification times.
2014-02-10 16:20:13 +01:00
Wladimir J. van der Laan
1552145ae5 gitian: Sort generated source distribution archive
Sort the filenames in the resulting tar, normalize the time/date
and user/group information.
2014-02-10 10:01:06 +01:00
Wladimir J. van der Laan
c43d1e5549 gitian: Make windows dependencies outputs fully deterministic
Sort .zip order, and other determinism changes to make sure builds
are repeatable for windows deps.
2014-02-08 09:33:05 +01:00
Wladimir J. van der Laan
aabcd11ba6 gitian: Make linux boost dependency completely deterministic
It appears that the output was different every time.

This doesn't affect the final bitcoind/bitcoin-qt, but is confusing
nevertheless.

Fix it by using FAKETIME and zipping files in deterministic order.
2014-02-06 19:37:17 +01:00
Wladimir J. van der Laan
aa9348563c gitian: Make linux build of OpenSSL deterministic
OpenSSL was embedding a timestamp causing its build to be
non-deterministic.
Change deps-linux to be deterministic by using FAKETIME
as needed and disabling it when it gets in the way.
2014-02-06 19:37:16 +01:00
Wladimir J. van der Laan
65615a3a78 Gitian fixes for 0.9.0rc1 build
- Add 'g++' package (virtualbox images don't have this by default)
- Workaround for determinism in Qt5 resources
- Pass --disable-maintainer-mode --disable-dependency-tracking to
  configure for libqrencode to avoid random errors about missing m4
  directory
- Fix typo -with-pic -> --with-pic

It is not necessary to rebuild dependencies after this commit.
Fixes #3610 and #3612.
2014-02-03 14:43:51 +01:00
Wladimir J. van der Laan
f622232bcf gitian: Windows 64 bit support
- Build a 64 bit version of all dependencies
- Show 32/64 bit version in "About..." for x86
- Export 64-bit .exes and installer from gitian build
2014-01-21 14:02:13 +01:00
Wladimir J. van der Laan
490d6a3046
Merge pull request #3545
1cbbeb6 gitian: Add openssl to linux deps (Wladimir J. van der Laan)
64be7f7 gitian: Build boost dependency for linux (Wladimir J. van der Laan)
7eb99a8 gitian: Reduce build time for boost windows dependency (Wladimir J. van der Laan)
714cdec build: Pass BOOST_CPPFLAGS to sleep implementation test (Wladimir J. van der Laan)
0d40f5a build: Allow providing extra libs for Boost Chrono (Wladimir J. van der Laan)
e4b991e build: Auto-detect whether -DBOOST_TEST_DYN_LINK is needed (Wladimir J. van der Laan)
2014-01-18 16:02:31 +01:00
Wladimir J. van der Laan
77f1b4ae19 gitian: add optimization to win32 protobuf
When overriding CXXFLAGS, also provide optimization flags, otherwise
we're building without optimization.
2014-01-18 13:16:08 +01:00
Wladimir J. van der Laan
1cbbeb6a27 gitian: Add openssl to linux deps
Build OpenSSL instead of using distribution-provided
library.
2014-01-16 12:45:04 +01:00
Wladimir J. van der Laan
64be7f7892 gitian: Build boost dependency for linux
Instead of using the boost provided by Ubuntu 12.04, build our own
dependency like we do for Windows.

This allows using a much newer version (1.55 versus 1.46) as well as
building with `-fPIC` so that `-pie` can be used in the x86-64 build.
2014-01-16 12:45:03 +01:00
Wladimir J. van der Laan
7eb99a844f gitian: Reduce build time for boost windows dependency
Build only the mt-s (multithreaded, static runtime link)
variant of the library.

This cuts the build time in half.

Also prevent unpacked boost from ending up in output directory,
checking and hashing all the source files as output files this
takes a lot of time and is pointless.
2014-01-16 12:45:03 +01:00
Micha
f4e72bf8d2
Make gitian builds consistent across platforms
Change Linux deps to use a zip archive rather than a gzipped tarball to
match win32
Rename Linux descriptor to gitian-linux.yml to match win32
2014-01-15 22:56:17 +02:00
Wladimir J. van der Laan
4b4b578cb3
Merge pull request #3536
0425715 gitian: add explicit dependency build for linux (Wladimir J. van der Laan)
279af1a build: use Ubuntu 12.04 for linux gitian build (Wladimir J. van der Laan)
2014-01-15 14:29:19 +01:00
Wladimir J. van der Laan
04257151b1 gitian: add explicit dependency build for linux
Create a dependency file per architecture:

- bitcoin-deps-linux32-gitian-r1.tar.gz
- bitcoin-deps-linux64-gitian-r1.tar.gz
2014-01-15 12:39:01 +01:00
Wladimir J. van der Laan
279af1a2af build: use Ubuntu 12.04 for linux gitian build 2014-01-14 15:12:44 +01:00
Wladimir J. van der Laan
1e3abb4e3d build: upgrade Qt used by windows build to 5.2.0 2014-01-14 11:03:21 +01:00
Wladimir J. van der Laan
2f158dfc93 build: Update the other win32 deps
- miniupnpc-1.8
- openssl-1.0.1e
- zlib-1.2.8
- libpng-1.6.8
- qrencode-3.4.3
2014-01-14 11:03:21 +01:00
Wladimir J. van der Laan
5c72e3df3c
Merge pull request #3501
56fce1f Upgrade gitian win32 to boost-1.55. (Warren Togami)
2014-01-10 11:35:59 +01:00
Wladimir J. van der Laan
0d512a9ee7 gitian: Add -O2 for win32 build
In the win32 gitian descriptor the C*FLAGS are being overridden on
`configure`, which causes the built-in optimization flags to be removed.
Add `-O2` manually (but not `-g` as we're not doing anything with the
debug information).

Improves performance of win32 gitian builds.

As a bonus, fixes issue #3497.
2014-01-10 09:41:15 +01:00
Warren Togami
56fce1fdbb Upgrade gitian win32 to boost-1.55.
Fixes issue where all network activity just stops.
2014-01-09 14:18:43 -10:00
Michagogo
c51e49b1a3 Fix file hash verification error in deps-win32.yml
libpng was being sha256summed twice, and miniupnpc wasn't being checked at all.
2013-12-03 02:04:50 +02:00
Warren Togami
b31482844b Check integrity of gitian input source tarballs 2013-10-31 17:56:55 -10:00
super3
27e2d8bfb5 Finished /Contrib Index. Standardized READMEs.
File and Link Fix.
2013-10-15 23:37:30 -04:00
Warren Togami
738b8598ae Hardcode string in miniupnpcstring.h and remove wine requirement from deps-win32.yml
Credit: sipa, cfields, Luke-Jr and michagogo contributed to this fix.

Removing wine as a win32 build dep is beneficial to fixing Gitian LXC,
which would enable many more people to join in the gitian.sigs process
by being able to build with a linux VM instead of a virt capable host.
2013-09-30 22:05:20 -10:00
Warren Togami
b5ab7f34f8 Fix gitian qt-win32.yml build
The final revision of PR 3029 incorporated a review suggestion of replacing
i686-w64-mingw32 with $HOST. But we forgot that $HOST is not expanded when
within single quotes so it actually broke qt-win32.yml build.  This is the
minimal changes necessary to fix the qt-win32.yml build.
2013-09-30 18:01:05 -10:00
Gavin Andresen
b2180d82a4 Merge pull request #3029 from wtogami/gitianwin32
Upgrade gitian win32 to Precise 12.04.
2013-09-29 01:44:07 -07:00
fanquake
cd4d495ed4 Update Qt 4.8.3 download link 2013-09-27 09:38:44 +08:00
Warren Togami
f2bc1d35d6 Upgrade gitian win32 to boost-1.54.0
Workaround 1.54.0 build bug, upstream #9156
Workaround 1.51.0+ human bug, upstream #7262

This commit also demonstrates a method to verify the integrity of inputs.
2013-09-26 04:10:17 -10:00
Warren Togami
af6c2c71ed Upgrade gitian win32 to Precise 12.04.
mingw upgrade allows more hardening, compiler bug fixes and possibily win64 later.
Rename deps .zip files to be more consistent in revision format.
Boost #4258 build fix for mingw32
2013-09-25 23:52:56 -10:00
Gavin Andresen
d969c2c073 Fix gitian: bitcoin-deps is at version 0.0.7 2013-09-19 12:40:02 +10:00
Cory Fields
7f1c162aae gitian: remove obsolete --disable-debug flag 2013-09-18 15:37:54 -04:00
Cory Fields
8d36b2dcfb gitian: fix win32 build after configure bdb changes
bitcoin incorrectly linked against the dll after the configure changes, so
ensure that only the static lib is installed.
2013-09-18 15:36:48 -04:00
Cory Fields
08081e393b included-tests: update gitian descriptors for hexdump dependency 2013-09-16 12:53:11 -04:00
Philip Kaufmann
d78900cc1b fix some cosmetic glitches in the codebase
- rename URL into URI in paymentserver where correct
- add some missing Qt-coding-stuff in paymentserver
- change QSpinBox to QLineEdit as base for BitcoinAmountField in .ui files
  (as this is the result when converting the BAF back into base)
- remove some c_str() and replace with QString::fromStdString()
- remove several new-lines
- remove unneeded spaces
- indentation fixes
2013-09-09 12:36:04 +02:00
Gavin Andresen
8394f4a2dc Merge pull request #2977 from laanwj/2013_09_release_process_protobuf
Add protobuf 2.5.0 download to gitian release process
2013-09-08 17:31:04 -07:00
Cory Fields
35b8af9226 autotools: switch to autotools buildsystem 2013-09-05 21:31:03 -04:00
Wladimir J. van der Laan
51c2fa16bb Qt 4.8.3 r2 in gitian and release process
Also needed to add `unzip` package for the added unzip command for
OpenSSL in the Qt build.
2013-09-05 14:38:59 +02:00
Gavin Andresen
a41d5fe019 Payment Protocol: X509-validated payment requests
Add support for a Payment Protocol to Bitcoin-Qt.

Payment messages are protocol-buffer encoded and communicated over
http(s), so this adds a dependency on the Google protocol buffer
library, and requires Qt with OpenSSL support.
2013-08-22 16:18:25 +10:00
Gavin Andresen
36dc41f427 doc/README was replaced by README.md 2013-05-22 17:21:12 -04:00
Warren Togami
5ada394edf gitian deps-win32.yml needs psmisc package for killall to end the build 2013-05-22 00:20:07 -10:00
Gavin Andresen
efb6d9aae7 Minor build fixes
Two changes: make some linux-specific linker options linux and linker specific.
And in the cross-compile environment, prefer the $HOME/qt/bin tools to
whatever might be somewhere else in the path.
2013-02-15 19:55:44 -05:00
Gavin Andresen
fbd860287e Pass compiler flags down into leveldb make
Fixes issue#2288. Includes cleanups from Luke's pull 2243.
2013-02-15 19:55:44 -05:00
Matt Corallo
b478337312 Undo bad gitian update. 2012-10-29 16:36:25 -04:00
Matt Corallo
325a064c68 Upgrade to Qt 4.8.3 (because 4.8.2 was removed from qt repos?) 2012-10-29 15:43:18 -04:00
Wladimir J. van der Laan
a5ba586669 Merge pull request #1864 from Diapolo/Qt_4.8.2
switch to Qt 4.8.2 for Windows builds
2012-09-29 00:58:29 -07:00
Philip Kaufmann
26809acbf9 switch to Qt 4.8.2 for Windows builds 2012-09-25 19:37:22 +02:00
fanquake
0eaaa83ba5 Update Bitcoin to use OpenSSL 1.0.1c
Bump deps tp 0.0.5
Small docs corrections
2012-09-22 14:51:03 +08:00
Wladimir J. van der Laan
b9a4aaad1e Merge pull request #1726 from laanwj/2012_08_gitian_qt_styles
Remove unused styles on Windows from gitian qt build
2012-09-06 23:34:43 -07:00
Gavin Andresen
3c28b335af Minor build documentation fix 2012-09-06 16:27:39 -04:00
Gavin Andresen
4dc89fa875 Build doc updates 2012-09-06 15:51:16 -04:00
Gavin Andresen
21327ebe93 Update gitian build setup notes 2012-09-05 11:37:33 -04:00
Wladimir J. van der Laan
e598b5b5c2 Remove unused styles on Windows from gitian qt build
Keeps the "windows", "windowsxp", "windowsvista" styles.

Reduces the size of a static bitcoin-qt.exe by ~400 kB.
2012-08-28 19:27:31 +02:00
Matt Corallo
a1755ec426 Upgrade to Boost 1.50 2012-08-27 14:20:56 -04:00
Luke Dashjr
d0377a70e2 Bugfix: Adjust gitian-win32 to use Boost 1.49 for real 2012-08-27 00:49:27 +00:00
Luke Dashjr
1837696580 Bugfix: Move boost::interprocess Win32 workaround to Bitcoin-Qt sources, rather than hacking boost in gitian 2012-08-27 00:49:23 +00:00