Commit Graph

180 Commits

Author SHA1 Message Date
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
Luke Dashjr 90d95b6323 Replace all occurances of license.txt with COPYING, including naming the file COPYING.txt on Windows 2012-07-22 21:49:09 +00:00