Commit graph

224 commits

Author SHA1 Message Date
lbrynaut
c58b8b5aeb Add a test for locktime transactions. 2020-03-26 15:39:51 +02:00
Brannon King
fba1acd3d7 restored the current "depends" and friends
fix windows test run


unit test round 2


attempting to fix ccache use on darwin


made ccache optional, no longer pulls clang on darwin build


fixing darwin build from Dockerfile


fixed missing nproc on OSX


updated readme to include regtest example, build examples


fix QT unit tests


made -j get passed down, added build.sh
2020-03-26 15:39:51 +02:00
lbrynaut
9295adeb38 Rebase lbry on to Bitcoin 0.17.
This contains significant rebase / merge / testing work by Naut
<lbrynaut@protonmail.com>, Anthony Fieroni <bvbfan@abv.bg> and Brannon
King <countprimes@gmail.com>.
2020-03-26 15:39:51 +02:00
fanquake
1964561a3a
build: don't embed a build-id when building libdmg-hfsplus
Github-Pull: #18004
Rebased-From: cb9e88e73a042ff4e1c83289a6f8fa1db03fb093
2020-02-28 12:04:51 +08:00
Wladimir J. van der Laan
bb83d23ad8
Merge #16926: depends: Add OpenSSL termios fix for musl libc
568aa0cf83 Add OpenSSL termios fix for musl libc (Nathan Marley)

Pull request description:

  Currently the version of OpenSSL included in the depends system won't build on musl based systems because `termio.h` does not exist. The proper header named `termios.h` does exist.

  This PR adds a patch for OpenSSL to replace the `termio.h` header with `termios.h`, which is the proper POSIX header as I understand it.

  This is a known issue as `TERMIOS` (not `TERMIO`) should be the default, and is fixed in later versions of OpenSSL. There is discussion on the OpenSSL repo here: openssl/openssl#163

  This has been [fixed in OpenSSL](64e6bf64b3).

  This partly fixes #16925 and allows building Bitcoin on Alpine using the depends system.

ACKs for top commit:
  laanwj:
    ACK 568aa0cf83

Tree-SHA512: d0aac116b7a1133bdecb34a9fb6c63db0336a3547585c07ed31ac9c5edb97e9570dcbf931e7fbc7172ce0735b6bfc11fb204e015532fcd90496a233e8fc17081
2019-09-30 11:32:46 +02:00
Wladimir J. van der Laan
003f2d20b1
Merge #16837: depends: qt: Fix {C{,XX},LD}FLAGS pickup
1b4030e264 depends: qt: Fix LDFLAGS pickup (Carl Dong)
6eb12ffcbd depends: qt: Fix C{,XX}FLAGS pickup (Carl Dong)

Pull request description:

  Note: ~~Will~~ [Did](https://github.com/bitcoin/bitcoin/issues/16838) open issue about robustness of `sed` calls in `depends`.

ACKs for top commit:
  laanwj:
    ACK 1b4030e264

Tree-SHA512: d0bfc8ea32118cd90bb323efab58661f2218a2cb0f150e716cfd5355c7e2a1eba70298a144b159941248170e2894659c376219edac2c79a9d777f6ada5fa6b2f
2019-09-26 13:19:20 +02:00
Nathan Marley
568aa0cf83 Add OpenSSL termios fix for musl libc 2019-09-20 14:47:06 -03:00
Wladimir J. van der Laan
4b5e5ef4ce
Merge #16809: depends: zlib: Move toolchain options to configure
f0636d3418 depends: zlib: Move toolchain options to configure (Carl Dong)

Pull request description:

  ```
  zlib has its own custom configure script, see comment in zlib.mk for
  more details
  ```

  Performed Guix cross-builds locally and everything worked as expected.

ACKs for top commit:
  laanwj:
    ACK f0636d3418

Tree-SHA512: 7ff6114e52a9c49941da31cb0ebd8918b056bf23343790d758e107003d856f3b1f16ebf4ce0ce22e1216a37a610b4c106def3f869d128bfffa61280d45ed6b38
2019-09-18 14:54:45 +02:00
fanquake
cc1d7fd57c
Merge #16879: build: remove redundant sed patching
93995c2751 build: remove unnecessary qt xcb patching (fanquake)
4d45577c43 build: remove unnecessary macOS qt patching (fanquake)

Pull request description:

  While looking at #16838 I found at least two cases of `sed` patching in depends that now seems to be redundant. There's possibly a [third case](https://github.com/bitcoin/bitcoin/pull/16837#discussion_r322842701), but I haven't looked into that enough yet.

  Patching `0` -> `kCGMouseButtonLeft` should not be required, as [`kCGMouseButtonLeft`](https://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/cocoa/qcocoacursor.mm?h=5.9#n82) has been used in the `cocoa/qcocoacursor.mm` source for a while.

  The include we were modifying in [`src/plugins/platforms/xcb/qxcbxsettings.cpp`](https://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/xcb/qxcbxsettings.cpp?h=5.9#n47) was removed in [this commit](https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/xcb/qxcbxsettings.cpp?h=5.9&id=78731b434e0e99ad108601249108e12d8a49c350).

ACKs for top commit:
  dongcarl:
    ACK 93995c2751

Tree-SHA512: 5e0cbf317b798ce2e142a42b7fabf1d9e8e00d12f59589e98d790195ba27db60858f933b035c6e9cd0deadd8c3406f1ff4a4ed2af4a19e9b5b43aa97d04b9ecb
2019-09-18 10:26:33 +08:00
Carl Dong
1b4030e264
depends: qt: Fix LDFLAGS pickup
QMAKE_LFLAGS was removed from qtbase/mkspecs/win32-g++/qmake.conf in
39fc377bf105ba09e2a8f9acae467dc789b96525. Here, we add it back in with
our LDFLAGS from depends before the first occurance of any
QMAKE_LFLAGS_* variable settings.
2019-09-16 12:58:24 -04:00
fanquake
93995c2751
build: remove unnecessary qt xcb patching
The lines that this sed command was modifying were removed some time
ago. Relevant upstream change:

https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/xcb/qxcbxsettings.cpp?id=538b9f504c0de11c473a40aed66df9900ac1c6c4
2019-09-16 13:48:24 +08:00
fanquake
4d45577c43
build: remove unnecessary macOS qt patching
Patching in kCGMouseButtonLeft should not be required.

Looks like this hasn't been needed since qt 5.5 or so:
https://codereview.qt-project.org/c/qt/qtbase/+/115138
2019-09-16 13:25:25 +08:00
fanquake
107e030723
build: make protobuf optional in depends
Those that want to build it can now pass PROTOBUF=1.
2019-09-14 12:58:59 +08:00
Wladimir J. van der Laan
1985c4efda
Merge #16413: depends: Bump QT to LTS release 5.9.8
0c6054fc9f depends: Bump QT to LTS release 5.9.8 (THETCR)

Pull request description:

  This update is only a minor version but in contrary to 5.9.7 it's a LTS release.
  It doesn't add any new functionality to Qt but fixes multiple security issues and bugs.
  Including some race conditions and annoying bugs on macOS.

ACKs for top commit:
  Sjors:
    ACK 0c6054fc9f. Lightly tested on macOS 10.14.6. Not really sure what difference would matter on macOS.

Tree-SHA512: f01d947cc0db6d761e32551071fa00fe8014fb7b2ce707271a159bb61c6d60e062ac8f4da5f36bd8fc4736e1e852368a1353ea3f994f61f1d0c76cc7d1664938
2019-09-10 15:05:34 +02:00
Carl Dong
6eb12ffcbd
depends: qt: Fix C{,XX}FLAGS pickup 2019-09-09 15:12:40 -04:00
Carl Dong
f0636d3418
depends: zlib: Move toolchain options to configure
zlib has its own custom configure script, see comment in zlib.mk for
more details
2019-09-05 14:36:22 -04:00
MeshCollider
3ca514ddb7
Merge #16370: depends: cleanup package configure flags
c295cba5a2 depends: zeromq: disable draft classes and methods (fanquake)
0072237b9e depends: xproto: configure flags cleanup (fanquake)
6a8ada3a4f depends: qrencode: configure flags cleanup (fanquake)
86beb8cdc4 depends: fontconfig: configure flags cleanup (fanquake)
e656d95ec7 depends: libxcb: configure flags cleanup (fanquake)
e439388b35 depends: libXau: configure flags cleanup (fanquake)

Pull request description:

  Related to #16354.

  This PR adds additional configure flags to packages in depends to explicitly disable features we aren't using; similar to #16183. It also fixes passing `--without-tools` to `qrencode`.

  I've added `--disable-drafts` to `zeromq`:
  ```bash
  Build and install draft classes and methods [default=yes]
  ```

  I'm not entirely sure how far we want to take this. i.e in the `zeromq` package we explicitly pass `--without-libsodium`, even though it's disabled by default.

  Do we also want to explicitly pass all the other `--without` flags? :
  ```bash
    --with-libgssapi_krb5   require libzmq build with libgssapi_krb5
                            [default=no]
    --with-libsodium        use libsodium instead of built-in tweetnacl
                            [default=no]
    --with-pgm              build libzmq with PGM extension. Requires pkg-config
                            [default=no]
    --with-norm             build libzmq with NORM protocol extension,
                            optionally specifying norm path [default=no]
    --with-vmci             build libzmq with VMCI transport [default=no]
  ```

ACKs for top commit:
  dongcarl:
    ACK c295cba5a2

Tree-SHA512: df6d38b863b4008ed2cb06c97eb0e21eaa4b5fde552876065ba7f3c87bf6e372e5b954a51bf3fde2151cfb6d2c022227d34337fc6e50ce0caa1d518abbd2412a
2019-08-24 14:45:05 +12:00
Jon Atack
f7220e85fd
build: update RapidCheck Makefile
- update RapidCheck to latest commit on master
- install only the extras needed by Bitcoin Core
- update shasum hash
- remove CMake warning
2019-08-21 15:10:21 +02:00
fanquake
c295cba5a2
depends: zeromq: disable draft classes and methods 2019-08-14 20:34:28 +08:00
fanquake
0072237b9e
depends: xproto: configure flags cleanup 2019-08-14 20:34:28 +08:00
fanquake
6a8ada3a4f
depends: qrencode: configure flags cleanup
This also fixes passing --without-tools
2019-08-14 20:34:28 +08:00
fanquake
86beb8cdc4
depends: fontconfig: configure flags cleanup 2019-08-14 20:34:28 +08:00
fanquake
e656d95ec7
depends: libxcb: configure flags cleanup 2019-08-14 20:34:28 +08:00
fanquake
e439388b35
depends: libXau: configure flags cleanup 2019-08-14 20:33:12 +08:00
fanquake
3303124960
build: disable libxcb extensions
Because we pass -qt-xcb to Qt, it will compile in a set of xcb helper libraries and extensions.
So skip building all of the libxcb extensions when we build libcxb in depends.

More info is available  here: https://doc.qt.io/qt-5.9/linux-requirements.html
2019-08-06 16:53:36 +08:00
Wladimir J. van der Laan
29220250c1
Merge #16441: build: remove qt libjpeg check from bitcoin_qt.m4
f509e3b8ce doc: remove line numbers from qt package links (fanquake)
1bb1661a40 doc: fix typo in bitcoin_qt.m4 comment (fanquake)
0aeb98ac1f build: remove jpeg lib check from bitcoin_qt.m4 (fanquake)
98a64bd296 build: disable libjpeg in qt (fanquake)

Pull request description:

  When gitian building on Windows I'm seeing:
  ```bash
  checking for Qt 5... yes
  checking for > Qt 5.7... yes
  checking for main in -limm32... yes
  checking for main in -lz ... yes
  checking for library containing jpeg_create_decompress ... configure: WARNING: libjpeg not found. Assuming qt has it built-in
  no
  checking for library containing png_error ... -lqtlibpng
  checking for library containing pcre2_match_16... -lqtpcre2
  checking for library containing hb_ot_tags_from_script ... -lqtharfbuzz
  ```

  We are passing `-qt-libjpeg` to Qt:
  e6e99d4f75/depends/packages/qt.mk (L66)
  but I dont think we are doing anything with `jpeg` related regardless?

ACKs for top commit:
  laanwj:
    ACK f509e3b8ce
  promag:
    ACK f509e3b8ce.

Tree-SHA512: 61ea20c11df11b9d426644df9a01aac12b76897003121a283fc784a8c30e9b5ad34c9805069fec20926f7aa279e59528e2e13697a944a22760c3acb6366fffbe
2019-07-29 15:33:01 +02:00
fanquake
248e22bbc0
depends: disable unused Qt features 2019-07-24 09:50:31 +08:00
fanquake
98a64bd296
build: disable libjpeg in qt 2019-07-24 09:17:40 +08:00
Carl Dong
0c55d8b581
depends: qt: Patch to remove dep on libX11
We can actually patch QT to remove its dependency on libX11's headers.
It turns it this wasn't that hard.
2019-07-18 17:43:06 -04:00
THETCR
0c6054fc9f depends: Bump QT to LTS release 5.9.8 2019-07-18 14:13:35 +02:00
Carl Dong
924569914e
depends: libXext isn't needed by anyone
libXext was only needed (as a library) by QT when it was using
XLib/libX11 (as a library), now that we're building QT without
XLib/libX11, we can safely remove libXext.
2019-07-17 17:04:42 -04:00
Carl Dong
aa53cb7a2f
depends: libX11: Make package headers-only
We're no longer building QT with libX11/XLib, however, libX11/XLib
headers are still required for parts of QT. In this commit we add a
minimal configure.ac for libX11/XLib that is headers-only.

This change allows us to remove all of libX11/XLib's dependencies.
2019-07-17 17:04:40 -04:00
Carl Dong
9a01ab04e1
depends: qt: Explicitly stop using Xlib/libX11
Previously, in 683b7d7a3f and
0e752637a2, we accidentally broke QT's
ability to pick up Xlib thru the config.gui.tests.xlib configuration
test, which also means that config.gui.libraries.xcb_xlib wasn't run.

This resulted in a QT build that was implicitly -no-xcb-lib and
-no-feature-xlib.

This is actually a desired behaviour, as it means less required shared
objects for our final bitcoin-qt binary. Specifically, it eliminated the
libX11-xcb.so.1 and libX11.so.6 requirements.

In this commit, we explicitly build without Xlib. We should continue to
track upstream ticket https://bugreports.qt.io/browse/QTBUG-61452 which
talks about adding a -no-xlib (non-hidden) flag instead of the
-no-feature-xlib (hidden) flag.
2019-07-17 17:04:39 -04:00
Carl Dong
1ec30b8fbe
depends: xproto is only directly needed by libXau 2019-07-17 17:04:38 -04:00
Carl Dong
3e80ec3ea9
contrib: Add deterministic Guix builds. 2019-07-12 00:48:39 -04:00
fanquake
0512f0521a
depends: expat 2.2.7 2019-07-09 08:47:41 +08:00
fanquake
e8fabd9253
build: prune dbus from depends 2019-07-07 14:26:41 +08:00
MarcoFalke
6e9eda5567
Merge #16271: build: remove -Wall from rapidcheck build flags
63d0a079e0 build: dont compile rapidcheck with -Wall (fanquake)

Pull request description:

  Fixes #16062.

  Remove `-Wall` from the rapidcheck build flags pre compilation.

  Discussed briefly with theuni.

ACKs for top commit:
  MarcoFalke:
    ACK 63d0a079e0 (checked that `RAPIDCHECK=1 make rapidcheck` fails without this)

Tree-SHA512: 6cb3653221c1eadbc8da54812298a061130b4377da6f63dcc2dfb97379d303b4db538e67f4fe3c96a03ee6a1e65840f0def0ac4e862553480c7ac4bdcc77e113
2019-06-30 12:11:09 -04:00
fanquake
63d0a079e0
build: dont compile rapidcheck with -Wall 2019-06-23 22:40:50 +08:00
Carl Dong
30ea931dee
depends: xtrans: Configure flags cleanup.
xtrans does not understand the --with-pic and --disable-shared flags we
pass it because it is not a library. Instead, we should pass it flags
that disable features/packages we're not using so they don't get a
chance to sneak in.
2019-06-12 10:55:39 -04:00
Wladimir J. van der Laan
36fb968825
Merge #15461: [depends] update to Boost 1.70
2620e24b83 [depends] boost: update to 1.70 (Sjors Provoost)

Pull request description:

  Version [1.70](https://www.boost.org/users/history/version_1_70_0.html) is most recent.

  Versions needed for:
  * 1.66: #12557: fixes the single arm64 configuration ([06ee5b5](06ee5b54ef))

ACKs for commit 2620e2:

Tree-SHA512: 6e0174f1d92c2c24314c0689d4809e048914f8f42d17aa73799f5ee232169e0dd0ed71f5f973903c44c08309f2837c629c493f15e5c31ec6c7bd1daae5f3b25f
2019-06-06 13:42:25 +02:00
Wladimir J. van der Laan
03858b23fe
Merge #15844: depends: Purge libtool archives
8541cbea2 depends: libX*: --disable-malloc0returnsnull in conf (Carl Dong)
0e752637a depends: libXext: Bump to 1.3.3 to fix _XEatDataWords (Carl Dong)
683b7d7a3 depends: Purge libtool archives (Carl Dong)
14209286d depends: Build secondary deps statically. (Carl Dong)

Pull request description:

  ```
  We use pkg-config where we can, which generally replaces libtool at a
  higher level and does not have the same downsides as libtool. These
  archives sit in our depends tree with no purpose and pollute the final
  bitcoin build with massive overlinking.
  ```

  See [here](https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Handling_Libtool_Archives) for an explanation of the various problems libtool archives can cause.

  Unrelated in every way except in spirit: `-D__LIBTOOL_IS_A_FOOL__`!!

  -----

  This PR is based on #16041, and therefore should be merged after #16041.

ACKs for commit 8541cb:

Tree-SHA512: 76030cf32361f0b1cfe14e3827a0cbec99994e7da00a56194ca40cf6cf7d87f78552f49d03d41ce9cf9b642992b90d993578ed1f0ad6bae15cd3f1c88dfaa4b0
2019-06-05 16:37:56 +02:00
Carl Dong
8541cbea29
depends: libX*: --disable-malloc0returnsnull in conf 2019-05-28 11:03:37 -04:00
Carl Dong
0e752637a2
depends: libXext: Bump to 1.3.3 to fix _XEatDataWords
Compilation error for _XEatDataWords fixed in bb24f29, first included in
libXext 1.3.3.
2019-05-28 11:02:45 -04:00
Carl Dong
683b7d7a3f
depends: Purge libtool archives
We use pkg-config where we can, which generally replaces libtool at a
higher level and does not have the same downsides as libtool. These
archives sit in our depends tree with no purpose and pollute the final
bitcoin build with massive overlinking.
2019-05-28 11:02:42 -04:00
Carl Dong
14209286df
depends: Build secondary deps statically.
Secondary dependencies don't need to be shared.
2019-05-28 10:51:18 -04:00
fanquake
c995c870aa
depends: add ability to skip building zeromq 2019-05-25 12:06:23 -04:00
Ulrich Kempken
d8bc47fde4 depends: switch to secure download of all dependencies
Some dependency sources were downloaded via http, even though https (SSL/TLS) options are available.
Even if we potentially check the integrity of the downloaded files via hash comparison, we should make
use of this additional security layer.

bdb.mk
fontconfig.mk
freetype.mk
libX11.mk
libXau.mk
libXext.mk
libxcb.mk
native_cctools.mk
native_cdrkit.mk
xcb_proto.mk
xextproto.mk
xproto.mk
xtrans.mk
zlib.mk

miniupnp was switched to official project mirror with SSL support
2019-05-20 22:25:52 +00:00
Sjors Provoost
2620e24b83
[depends] boost: update to 1.70 2019-05-03 13:22:17 +01:00
fanquake
ac67582ff7
depends: latest rapidcheck, use INSTALL_ALL_EXTRAS 2019-03-24 13:26:07 +08:00