aboutsummaryrefslogtreecommitdiff
path: root/depends
AgeCommit message (Collapse)Author
2021-12-30Merge bitcoin/bitcoin#22814: build: Add ability to build qt in depends with ↵fanquake
-stdlib=libc++ 33796a964a8c605ce482959456d1ca78638340d9 build: Add ability to build qt in depends with -stdlib=libc++ (Hennadii Stepanov) Pull request description: This PR makes possible to build the `qt` package in depends against `libc++` for x86_64 platform. Fixes #22344. Required for #22815. Also this PR [fixes](https://github.com/bitcoin/bitcoin/pull/23060#discussion_r716077050) the `[no wallet] [bionic]` task on CI: - on master (a8bbd4cc819633ec50ed0f763b6a75330ae055fb), https://api.cirrus-ci.com/v1/task/5558609250615296/logs/ci.log: ``` Options used to compile and link: external signer = yes multiprocess = no with libs = yes with wallet = no with gui / qt = no ``` - this PR, https://api.cirrus-ci.com/v1/task/5502605561430016/logs/ci.log: ``` Options used to compile and link: external signer = yes multiprocess = no with libs = yes with wallet = no with gui / qt = yes ``` ACKs for top commit: fanquake: ACK 33796a964a8c605ce482959456d1ca78638340d9 - While this sort of string matching is fragile, I think the risk of this causing any actual issues is low. Tree-SHA512: 586dde2e9864cec7a49aeb4f2b77fb8c4ae96bd10b51f9c6de0cfe8512ad61db15bb7f8d1b0eb6a5a66fd2deee52ac52218f01eb6be107ac12f1a956190de54b
2021-12-27Merge bitcoin/bitcoin#23817: build: Fix regression introduced in PR23603fanquake
d3b0f82a438ae60060d0d4d83245bf75f5de433d build: Fix regression introduced in PR23603 (Hennadii Stepanov) Pull request description: It appears 7629efcc2c3a8a8a7c17b1300cd466ec6c8c1f3f from bitcoin/bitcoin#23603 introduced a regression in build tool flag evaluation. On macOS system: - pre-PR23603 master (ae017b81604761b57e22c28913c4ce81bf2e31ce): ``` % make -C depends print-darwin_CXXFLAGS darwin_CXXFLAGS=-pipe % make -C depends print-host_CXXFLAGS host_CXXFLAGS=-pipe ``` - the current master (369978686e156ad34df703f1e60bd90aeaa8f2d6): ``` % make -C depends print-darwin_CXXFLAGS darwin_CXXFLAGS=-pipe % make -C depends print-host_CXXFLAGS host_CXXFLAGS=-arch x86_64 ``` It's obvious a flag being set in `depends/hosts/darwin.mk`, i.e., `-pipe`, is lost. With this PR: ``` % make -C depends print-darwin_CXXFLAGS darwin_CXXFLAGS=-pipe % make -C depends print-host_CXXFLAGS host_CXXFLAGS=-pipe -arch x86_64 ``` ACKs for top commit: fanquake: ACK d3b0f82a438ae60060d0d4d83245bf75f5de433d Tree-SHA512: 643099ce6858475ac9f3a4dfa72a4e493fec6fdd7042ae0f0d5fe44c5cd175e4eda63cb39fc46ac1501cadcd3466507ec88d9089235e005fe43ea7ab47ce37c1
2021-12-27Merge bitcoin/bitcoin#23862: build, qt: Hardcode last modified timestamp in ↵fanquake
Qt RCC 11736dbe3dbe34bcb430d05810b9e9aa66ec1cd6 build, qt: Hardcode last modified timestamp in Qt RCC (Hennadii Stepanov) Pull request description: Our Guix build system sets the [`SOURCE_DATE_EPOCH`](https://reproducible-builds.org/specs/source-date-epoch/) and propagates it to the depends build subsystem. Its [default value](https://github.com/bitcoin/bitcoin/blob/master/contrib/guix/README.md#recognized-environment-variables) is the top commit timestamp. After bumping Qt version up to 5.15.2, due to [this](https://github.com/qt/qtbase/commit/1ffcca4cc208c48ddb06b6a23abf1756f9724351) change, every time they are going to make new Guix builds for another branch/commit they must ensure that the `qt` package will be rebuilt from scratch. Otherwise, Bitcoin Core GUI binaries will be non-deterministic. Such behavior makes working with Guix builds suboptimal. This PR fixes the described issue by patching Qt RCC and hardcoding last modified timestamps with `1`. It's worth to mention that this change is compatible with a possible future [improvement](https://github.com/bitcoin/bitcoin/pull/21995) which makes each dependency package reproducible. A drawback of such an approach is not currently applied to our project, as it effectively makes [QML cache files](https://bugreports.qt.io/browse/QTBUG-57182) useless. I can't say it's a problem for the https://github.com/bitcoin-core/gui-qml project. --- **A note for thinkers:** For now this change is enough as only Qt source contains `SOURCE_DATE_EPOCH`. But in general we should re-think about treating the `SOURCE_DATE_EPOCH` variable in the depends build subsystem. For instance, its default value could be the output of `git log --format=%at -1 -- depends`. ACKs for top commit: fanquake: ACK 11736dbe3dbe34bcb430d05810b9e9aa66ec1cd6 Tree-SHA512: 31f104010a0a78d217aafcc5bc4606351f9060fc2a827277935b85fc8ced9f3d90a31d812c7db8c2711fb6daccd279cf0945dc1d7a7199e0eb0ade451cdbcd5d
2021-12-25build, qt: Hardcode last modified timestamp in Qt RCCHennadii Stepanov
This change allows the already built qt package to be reused even with the SOURCE_DATE_EPOCH variable set, e.g., for Guix builds.
2021-12-25doc: Drop outdated noteHennadii Stepanov
It is outdated since bitcoin/bitcoin#23060.
2021-12-24build: Fix regression introduced in PR23603Hennadii Stepanov
Assignments in builders/darwin.mk actually override previous assignments in hosts/default.mk. Therefore, the append operator must be used instead.
2021-12-17Merge bitcoin/bitcoin#22283: build: Replace $(AT) with .SILENTW. J. van der Laan
8494dcae0e32716fd7cc7abeacf0a795a1303e6a Replace $(AT) with .SILENCE. (Dmitry Goncharov) Pull request description: This reduces the amount of syntax noise in the makefiles. Setting V=1 still enables verbose logging. The only noticeable difference in behavior is that, unless V=1 is specified, make won't print its own messages like make: Nothing to be done for 'all', make: 'all' is up to date, or touch <file>, if -t is specified. ACKs for top commit: laanwj: Tested ACK 8494dcae0e32716fd7cc7abeacf0a795a1303e6a Tree-SHA512: 66b9111229995aa54a9e87f4571648727d89b8529caec651063cdfe5c00a64341371b648701d192b2334df0614617a00c28eaa56c7f08ee9c00127cada0293ab
2021-12-15Merge bitcoin/bitcoin#23744: build, qt: Drop support for i686-linux-android hostW. J. van der Laan
66a20a54a2a8446e6257b872a161089e0eed1688 build, qt: Drop support for `i686-linux-android` host (Hennadii Stepanov) Pull request description: There are no reasons to keep support for `i686-linux-android` host, which is actually broken in master (50c502f54abd9eb15c8ddca013f0fdfae3d132a9), and this fact has been unnoticed for months :) https://github.com/bitcoin/bitcoin/pull/23675#issuecomment-986206434: > I'm surprised `i686-linux-android` ABI is still supported. I would love to drop it... https://github.com/bitcoin/bitcoin/pull/23675#issuecomment-991340132 > What is `i686-linux-android`? 32-bit x86 android? is that really a thing? ACKs for top commit: prusnak: utACK 66a20a54a2a8446e6257b872a161089e0eed1688 Tree-SHA512: 211f794de2fc569f0ade2a4da805b8bfd4ce2ab0930c5d427acc4f5d015fcdc4911f02fc64f6401197f7641aed79944a9594be80c817547be3269cdd721cf79b
2021-12-12build: Use config_opts instead of passing a compiler flag directlyHennadii Stepanov
This approach is safer as it allows the configure script to check the availability of a compiler flag.
2021-12-12build, qt: Drop unused CROSS_COMPILE variable for Android buildsHennadii Stepanov
Since Qt 5.14.0 the CROSS_COMPILE variable always being overridden by the Qt build system internally. See upstream commit: c28b881c98fadcd3415370fad2525b558f6b03e4
2021-12-11build, qt: Drop support for `i686-linux-android` hostHennadii Stepanov
2021-12-10build: Include native_X.mk before X.mkHennadii Stepanov
This change fixes some weirdness like `make print-capnp_version` output in depends.
2021-12-09Merge bitcoin/bitcoin#23603: build: Fix x86_64 <-> arm64 cross-compiling for ↵fanquake
macOS 19f3896c9a6a710bdd49b65a4a4947d90eb8a692 build: Fix x86_64 <-> arm64 cross-compiling for macOS (Hennadii Stepanov) Pull request description: Currently, on master (111c3e06b35b7867f2e0f740e988f648ac6c325d), dependencies are built for the build system architecture, not the provided host. On Intel-based macOS Big Sur 11.6.1 (20G224): ``` % make -C depends HOST=arm64-apple-darwin20 % lipo -info depends/arm64-apple-darwin20/lib/libsqlite3.a Non-fat file: depends/arm64-apple-darwin20/lib/libsqlite3.a is architecture: x86_64 ``` On M1-based macOS Monterey 12.0.1 (21A559) the `boost` package building fails with multiple errors like that: ``` % make -C depends boost HOST=x86_64-apple-darwin19 ... error: option 'cf-protection=return' cannot be specified on this target error: option 'cf-protection=branch' cannot be specified on this target 2 errors generated. ``` This PR allows to cross-compile as follows: - on Intel-based macOS Big Sur 11.6.1 (20G224): ``` % make -C depends HOST=arm64-apple-darwin20 % lipo -info depends/arm64-apple-darwin20/lib/libsqlite3.a Non-fat file: depends/arm64-apple-darwin20/lib/libsqlite3.a is architecture: arm64 % CONFIG_SITE=$PWD/depends/arm64-apple-darwin20/share/config.site ./configure % make % lipo -info src/qt/bitcoin-qt Non-fat file: src/qt/bitcoin-qt is architecture: arm64 ``` - on M1-based macOS Monterey 12.0.1 (21A559): ``` % make -C depends HOST=x86_64-apple-darwin19 % CONFIG_SITE=$PWD/depends/x86_64-apple-darwin19/share/config.site ./configure % make % lipo -info src/qt/bitcoin-qt Non-fat file: src/qt/bitcoin-qt is architecture: x86_64 ``` No behavior change for other builder-host pairs. This is an alternative to bitcoin/bitcoin#22506. ACKs for top commit: fanquake: ACK 19f3896c9a6a710bdd49b65a4a4947d90eb8a692 - this is definitely cleaner than the approach in #22506. I've tested the x86_64 -> arm64 and arm64 -> x86_64 cross-compiles. Going to go-ahead and merge this given it's scoped to building for darwin targets, on darwin. Not sure if this is something we'll actually see used very often. Tree-SHA512: 67a7fed1db79bc43d41aabb5a676f90417a879e5dcffec1384c288b56ee32ba06ae3819abdc7aca85b81af6e782bcfff5c83a67a455560249fa095a807fc1187
2021-12-09Merge bitcoin/bitcoin#23495: build: Bump Fontconfig version up to 2.12.6fanquake
6575d354c8176c67c847b0e0a6cdd42800731a00 build: Bump Fonconfig version up to 2.12.6 (Hennadii Stepanov) Pull request description: This PR gets rid of `remove_char_width_usage.patch`. Some additional observations: 1. Newer Fontconfig versions (2.13.0 and 2.13.1) introduce a new dependency, `uuid`, in the [`7b48fd3dd406b926f0e5240b211f72197ed538a9`](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/7b48fd3dd406b926f0e5240b211f72197ed538a9) commit 2. In Fonconfig 2.13.1 (the current stable) excludes the `fcobjshash.h` from the distributive archive (see [`31269e3589e0e6432d12f55db316f4c720a090b5`](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/31269e3589e0e6432d12f55db316f4c720a090b5)), that makes our `gperf_header_regen.patch` unusable, and requires `gperf` as a dependency. ACKs for top commit: fanquake: ACK 6575d354c8176c67c847b0e0a6cdd42800731a00 - from the best I can determine this doesn't have any versioning / ABI implications. The ABI difference between 2.12.1 and 2.12.6 is two symbol additions, neither of which are used by Qt. Fontconfig seems to be better at maintaining backwards compatibility compared to a library like Freetype. Tree-SHA512: 36780a0c5a658469697e524d682ebab56c320cb04f8297bc215f4552f183d4f560501fb0a869982fd9053d4a2d571c7fd971d8f5e96c9da9a9d142c485e3baa4
2021-12-09Merge bitcoin/bitcoin#23585: scripted-diff: Drop Darwin version for better ↵fanquake
maintainability 2f356a0ca8b080c860c8924d201b98f1f9fa0ad5 scripted-diff: Drop Darwin version for better maintainability (Hennadii Stepanov) Pull request description: After this PR, any macOS tools version bumping in the future will touch fewer files in the repo. Pointing a Darwin version for the `--host` system does not matter for the following reasons: - in terms of the resulted binaries, we should only care about the minimum supported macOS version which is a separated parameter in our build system. - in terms of the build system itself, the usage of the `$(host)` variable is self-consistent enough. Btw `$(host_os)` value already has the version dropped: ``` $ make -C depends --no-print-directory print-host_os HOST=x86_64-apple-darwin19 host_os=darwin ``` ACKs for top commit: gruve-p: ACK https://github.com/bitcoin/bitcoin/pull/23585/commits/2f356a0ca8b080c860c8924d201b98f1f9fa0ad5 promag: ACK 2f356a0ca8b080c860c8924d201b98f1f9fa0ad5. fanquake: ACK 2f356a0ca8b080c860c8924d201b98f1f9fa0ad5 Tree-SHA512: 374896ab0ba02b0d8b4b21431fe963bd213b0d09586e0898c13a4c5fa294c1b693f1b2c92880c245c4157c14217b4825b36522f461930477f4d2a727086ebb2a
2021-12-08Merge bitcoin/bitcoin#23678: build: Fix build for Android x86_64fanquake
ac9e4bc1e27374671ff1ebd96b939793f784ccb2 build: Fix build for Android x86_64 (Hennadii Stepanov) Pull request description: bitcoin/bitcoin#23489 [introduced](https://github.com/bitcoin/bitcoin/pull/23489#issuecomment-985457915) a regression making build for `HOST=x86_64-linux-android` broken due to the [QTBUG-86785](https://bugreports.qt.io/browse/QTBUG-86785). This PR fixes this regression. ACKs for top commit: fanquake: ACK ac9e4bc1e27374671ff1ebd96b939793f784ccb2 Tree-SHA512: c841a56d745c4b4a75e1bc4d89752de153aa6328752a8fd7df614363ed046a291a9eb58605d82fcba21f3c8b0f0bf47786ed0a63c29f81f5d4ad9c0b12304100
2021-12-07Merge bitcoin/bitcoin#23677: build, qt: Use Android NDK r23 LTSfanquake
78a6bc6919e96b5c32efd370540a28aecc2262f6 build, qt: Use Android NDK r23 LTS (Hennadii Stepanov) Pull request description: This is a continuation of bitcoin/bitcoin#23478, and, thanks to bitcoin/bitcoin#23489, a oneline patch is only required to be able build the `qt` package in depends with Android NDK r23 LTS. ACKs for top commit: fanquake: ACK 78a6bc6919e96b5c32efd370540a28aecc2262f6 Tree-SHA512: 09c6e8739ecbcbf5fdd6c2103577be2676eb448941f97c781f476918056c8405d2531d5cef8f240e4d1205c2d49f879edbba74dd5e77799a887b76a5c76ebe5b
2021-12-05build: Fix build for Android x86_64Hennadii Stepanov
2021-12-05build, qt: Use Android NDK r23 LTSHennadii Stepanov
2021-12-03build: Bump Fonconfig version up to 2.12.6Hennadii Stepanov
2021-12-03build: remove x-prefix comparisonsfanquake
Very old shells suffered from bugs which meant that prefixing variables with an "x" to ensure that the lefthand side of a comparison always started with an alphanumeric character was needed. Modern shells don't suffer from this issue (i.e Bash was fixed in 1996). In any case, we've already got unprefixed checks used in our codebase, i.e https://github.com/bitcoin/bitcoin/blob/master/configure.ac#L292, and have dependencies (in depends) that also use unprefixed comparisons. I think it's time that we can consolidate on not using the x-prefix workaround. At best it's mostly just confusing. More info: https://github.com/koalaman/shellcheck/wiki/SC2268 https://www.vidarholen.net/contents/blog/?p=1035
2021-12-03build, qt: Fix regression in rendering on macOS Big SurHennadii Stepanov
2021-12-03build: qt 5.15.2fanquake
2021-12-03build: add libxcb_util_wm 0.4.1fanquake
Required for xcb_icccm.
2021-12-03build: add libxcb_util_image 0.4.0fanquake
2021-12-03build: add libxcb_util_keysyms 0.4.0fanquake
2021-12-03build: add libxcb_util_render 0.3.9fanquake
2021-12-03build: add libxcb_util 0.4.0fanquake
2021-12-03build: libxcb 1.14fanquake
Minimum required libxcb to build qt 5.15.x is 1.11. https://codereview.qt.nokia.com/c/qt/qtbase/+/253905 Some plugins have been re-enabled as they are required by Qt.
2021-12-03build: freetype 2.11.0fanquake
Co-authored-by: mammix2 <mammix2@hotmail.com>
2021-12-03build: expat 2.4.1fanquake
2021-12-03build: xcb_proto 1.14.1fanquake
2021-12-03build: libXau 1.0.9fanquake
2021-12-03build: xproto 7.0.31fanquake
2021-11-30Merge bitcoin/bitcoin#23618: build, qt: Ditch `no_sdk_version_check.patch`fanquake
855bd7550368f9dc64eaed85fe0a345b83f01613 build, qt: Ditch `no_sdk_version_check.patch` (Hennadii Stepanov) Pull request description: Since Qt 5.12.2 (see https://github.com/qt/qtbase/commit/5d181961ea28da07128384aa5144c67d07f87a3e) it is possible to control whether to check macOS SDK with the `QT_MAC_SDK_NO_VERSION_CHECK` variable. ACKs for top commit: fanquake: ACK 855bd7550368f9dc64eaed85fe0a345b83f01613 Tree-SHA512: e490f22da9c37d25b58418ca62e65d2303cfbd83139f4abea4b67c37fa97e9a882ccc9d484b49cd2bb3a8851ea35e63123d3c6db7f804d6b50f41b10bd10c10b
2021-11-28build, qt: Ditch `no_sdk_version_check.patch`Hennadii Stepanov
2021-11-28doc: Fix typos in packages.mdHennadii Stepanov
2021-11-26build: Fix x86_64 <-> arm64 cross-compiling for macOSHennadii Stepanov
2021-11-25build: don't set PORT=no in config.sitefanquake
This should have been a part of dropping macports support in #15175.
2021-11-25Revert "doc: Install Rosetta on M1-macOS for qt in depends"Hennadii Stepanov
This reverts commit cdb41d5573b1e2ed1bc1d8d1dc9f77e82672ee1f. It is no longer required because of the previous commit.
2021-11-25build, qt, macOS: Don't pass -device-option when building nativelyHennadii Stepanov
2021-11-25build, qt, macOS: Don't hard-code x86_64 as the arch when using qmakeHennadii Stepanov
This change fixes qt build on M1 Apple Silicon
2021-11-25scripted-diff: Drop Darwin version for better maintainabilityHennadii Stepanov
-BEGIN VERIFY SCRIPT- sed -i 's/darwin19/darwin/g' $(git grep --files-with-matches 'darwin19') -END VERIFY SCRIPT-
2021-11-24build: patch qt to explicitly define previously implicit header includeKittywhiskers Van Gogh
macOS Monterey has refactored some includes such that implicitly defined headers were no longer exposed and that in turns breaks building Qt on macOS 12. Additional Resources: - https://bugreports.qt.io/browse/QTBUG-97855 - https://codereview.qt-project.org/c/qt/qtbase/+/378706 - https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/cocoa?id=dece6f5840463ae2ddf927d65eb1b3680e34a547
2021-11-17build: use -fcf-protection=full when building Windows Boost in dependsfanquake
2021-11-16Merge bitcoin/bitcoin#23478: build: Add support for Android NDK r23 LTSfanquake
4ba492052ec09d48f8c3f391cc248340e761c7f2 doc: Add minimum supported Android NDK version (Hennadii Stepanov) 6393bdcd53b106367b10317c227a114494c90142 doc: Move Android dependencies guide into `build-android.md` (Hennadii Stepanov) ac323a7222efaafc7bc3110b02f1ef2d2635c9a2 build: Switch to llvm buinutils for Android builds (Hennadii Stepanov) Pull request description: The new Long Term Support release of the Android NDK is [available](https://groups.google.com/g/android-ndk-announce/c/MS6Qoub0DKE/m/Zfp5Ys8eAAAJ) since 2021-08-11: > As r23 is the new LTS, the support windows for r21 and r22 have now ended. On master (8ae4ba481ce8f7da173bef24432729c87a36cb70), dependency build fails because it expects GNU Binutils are present in the Android NDK. In [fact](https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#binutils): > GNU Binutils remains available up to and including r22. All binutils tools with the exception of the assembler (GAS) were removed in r23. GAS was removed in r24. This PR switches our depends build system to llvm binutils. The usage of `llvm-ar` and `llvm-ranlib` tools effectively makes r21 the minimum supported version of NDK. With this PR: - building depends against NDK r23 LTS now is possible with `NO_QT=1` - building the `qt` package in depends against NDK r23 LTS still fails: ``` Creating qmake... ... ERROR: Cannot detect Android NDK toolchain. Please use -android-toolchain-version to specify it. ``` The issue with the `qt` package is going to be addressed in another PR. ACKs for top commit: fanquake: ACK 4ba492052ec09d48f8c3f391cc248340e761c7f2 Tree-SHA512: cdc8f95ff9a3ad7f12eb55b9ea18b6b6b800d4cceff7e0321985be6e39d15a2b2ea5b1592972307d76d111292a0ed58fd287e5ca285e2f6868b42a286536d310
2021-11-14Merge bitcoin/bitcoin#23500: doc: fix typosMarcoFalke
2de1ceb2e9180d40611a6d32b3a9470c242952e0 depends, wallet: fix typos (Dimitris Apostolou) Pull request description: ACKs for top commit: hebasto: ACK 2de1ceb2e9180d40611a6d32b3a9470c242952e0 Tree-SHA512: e33deef3ebd8cda69dd0f2c0e8d0fd5c39375eb014685318b2f131c7a700584d9b9e173e95ff290b1fe3b2dc88922583f2607750445baedf0c97a330a9ff35f2
2021-11-13depends, wallet: fix typosDimitris Apostolou
2021-11-12build: remove duplicate -fvisibility=hidden from Boost buildfanquake
Boost already sets this by default.
2021-11-12build: don't install Boost cmake config filesfanquake