-
Notifications
You must be signed in to change notification settings - Fork 36.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: Qt 5.15.2 #23489
build: Qt 5.15.2 #23489
Conversation
Previous attempt: #19716 |
Concept ACK 🎉 |
Concept ACK, obviously. |
Can confirm that |
Bumping --- a/depends/packages/xcb_proto.mk
+++ b/depends/packages/xcb_proto.mk
@@ -1,8 +1,8 @@
package=xcb_proto
-$(package)_version=1.14
-$(package)_download_path=https://xcb.freedesktop.org/dist
+$(package)_version=1.14.1
+$(package)_download_path=https://xorg.freedesktop.org/archive/individual/proto
$(package)_file_name=xcb-proto-$($(package)_version).tar.xz
-$(package)_sha256_hash=186a3ceb26f9b4a015f5a44dcc814c93033a5fc39684f36f1ecc79834416a605
+$(package)_sha256_hash=f04add9a972ac334ea11d9d7eb4fc7f8883835da3e4859c9afa971efdf57fcc3
define $(package)_config_cmds
$($(package)_autoconf) See:
UPDATE: this diff fixes issues with builds on both bullseye and hirsute systems. |
To fix configuration for Android builds, the following patch could be applied: --- a/build-aux/m4/bitcoin_qt.m4
+++ b/build-aux/m4/bitcoin_qt.m4
@@ -71,6 +71,9 @@ AC_DEFUN([BITCOIN_QT_INIT],[
[qt_lib_suffix= ]); bitcoin_qt_want_version=qt5],
[qt_lib_suffix= ])
+ AS_CASE([$host],
+ [*android*], [qt_lib_suffix=_$ANDROID_ARCH])
+
AC_ARG_WITH([qt-incdir],[AS_HELP_STRING([--with-qt-incdir=INC_DIR],[specify qt include path (overridden by pkgconfig)])], [qt_include_path=$withval], [])
AC_ARG_WITH([qt-libdir],[AS_HELP_STRING([--with-qt-libdir=LIB_DIR],[specify qt lib path (overridden by pkgconfig)])], [qt_lib_path=$withval], [])
AC_ARG_WITH([qt-plugindir],[AS_HELP_STRING([--with-qt-plugindir=PLUGIN_DIR],[specify qt plugin path (overridden by pkgconfig)])], [qt_plugin_path=$withval], [])
@@ -162,7 +165,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QMacStylePlugin], [-lqmacstyle])
AC_DEFINE(QT_QPA_PLATFORM_COCOA, 1, [Define this symbol if the qt platform is cocoa])
elif test "x$TARGET_OS" = xandroid; then
- QT_LIBS="-Wl,--export-dynamic,--undefined=JNI_OnLoad -lqtforandroid -ljnigraphics -landroid -lqtfreetype $QT_LIBS"
+ QT_LIBS="-Wl,--export-dynamic,--undefined=JNI_OnLoad -lplugins_platforms_qtforandroid_$ANDROID_ARCH -ljnigraphics -landroid -lqtfreetype_$ANDROID_ARCH $QT_LIBS"
AC_DEFINE(QT_QPA_PLATFORM_ANDROID, 1, [Define this symbol if the qt platform is android])
fi
fi
@@ -360,7 +363,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
elif test "x$TARGET_OS" = xwindows; then
PKG_CHECK_MODULES([QT_WINDOWSUIAUTOMATION], [${qt_lib_prefix}WindowsUIAutomationSupport${qt_lib_suffix}], [QT_LIBS="$QT_WINDOWSUIAUTOMATION_LIBS $QT_LIBS"])
elif test "x$TARGET_OS" = xandroid; then
- PKG_CHECK_MODULES([QT_EGL], [${qt_lib_prefix}EglSupport], [QT_LIBS="$QT_EGL_LIBS $QT_LIBS"])
+ PKG_CHECK_MODULES([QT_EGL], [${qt_lib_prefix}EglSupport${qt_lib_suffix}], [QT_LIBS="$QT_EGL_LIBS $QT_LIBS"])
fi
])
|
A branch with suggested patches being applied is here: Its CI build is here: https://cirrus-ci.com/build/5683926900408320 UPDATE: maybe un-draft? |
96ab163
to
bce9f8f
Compare
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
To fix compatibility with glibc 2.17, the following patch could be applied: patch
diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk
index 2235e6ec8..9ff6d8794 100644
--- a/depends/packages/qt.mk
+++ b/depends/packages/qt.mk
@@ -12,6 +12,7 @@ $(package)_patches += fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch
$(package)_patches += fix_android_jni_static.patch dont_hardcode_pwd.patch
$(package)_patches += no_sdk_version_check.patch fix_cgcolorspace_include.patch
$(package)_patches += qtbase-moc-ignore-gcc-macro.patch fix_limits_header.patch
+$(package)_patches += glibc_2_17_compatibility.patch
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
$(package)_qttranslations_sha256_hash=d5788e86257b21d5323f1efd94376a213e091d1e5e03b45a95dd052b5f570db8
@@ -233,6 +234,7 @@ define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
patch -p1 -i $($(package)_patch_dir)/fix_limits_header.patch && \
patch -p1 -i $($(package)_patch_dir)/fix_cgcolorspace_include.patch && \
+ patch -p1 -i $($(package)_patch_dir)/glibc_2_17_compatibility.patch && \
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
diff --git a/depends/patches/qt/glibc_2_17_compatibility.patch b/depends/patches/qt/glibc_2_17_compatibility.patch
new file mode 100644
index 000000000..e509ce3ce
--- /dev/null
+++ b/depends/patches/qt/glibc_2_17_compatibility.patch
@@ -0,0 +1,259 @@
+Provide compatibility with glibc 2.17.
+
+Revert "Cache system zone ID when fetched from the file-system"
+
+This reverts commit c70ce3d042025c858faffe661f85d2482a2a0d8c.
+
+--- old/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp
++++ new/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp
+@@ -1,6 +1,5 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2020 The Qt Company Ltd.
+ ** Copyright (C) 2019 Crimson AS <info@crimson.no>
+ ** Copyright (C) 2013 John Layt <jlayt@kde.org>
+ ** Contact: https://www.qt.io/licensing/
+@@ -43,19 +42,18 @@
+ #include "qtimezoneprivate_p.h"
+ #include "private/qlocale_tools_p.h"
+
+-#include <QtCore/QDataStream>
+-#include <QtCore/QDateTime>
+ #include <QtCore/QFile>
+-#include <QtCore/QHash>
+ #include <QtCore/QMutex>
++#include <QtCore/QHash>
++#include <QtCore/QDataStream>
++#include <QtCore/QDateTime>
+
+ #include <qdebug.h>
+-#include <qplatformdefs.h>
+
+ #include <algorithm>
+ #include <errno.h>
+ #include <limits.h>
+-#ifndef Q_OS_INTEGRITY
++#if !defined(Q_OS_INTEGRITY)
+ #include <sys/param.h> // to use MAXSYMLINKS constant
+ #endif
+ #include <unistd.h> // to use _SC_SYMLOOP_MAX constant
+@@ -1108,146 +1106,28 @@ QTimeZonePrivate::Data QTzTimeZonePrivate::previousTransition(qint64 beforeMSecs
+ return last > tranCache().cbegin() ? dataForTzTransition(*--last) : invalidData();
+ }
+
+-bool QTzTimeZonePrivate::isTimeZoneIdAvailable(const QByteArray &ianaId) const
+-{
+- return tzZones->contains(ianaId);
+-}
+-
+-QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds() const
+-{
+- QList<QByteArray> result = tzZones->keys();
+- std::sort(result.begin(), result.end());
+- return result;
+-}
+-
+-QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds(QLocale::Country country) const
++static long getSymloopMax()
+ {
+- // TODO AnyCountry
+- QList<QByteArray> result;
+- for (auto it = tzZones->cbegin(), end = tzZones->cend(); it != end; ++it) {
+- if (it.value().country == country)
+- result << it.key();
+- }
+- std::sort(result.begin(), result.end());
+- return result;
+-}
+-
+-// Getting the system zone's ID:
+-
+-namespace {
+-class ZoneNameReader : public QObject
+-{
+-public:
+- QByteArray name()
+- {
+- /* Assumptions:
+- a) Systems don't change which of localtime and TZ they use without a
+- reboot.
+- b) When they change, they use atomic renames, hence a new device and
+- inode for the new file.
+- c) If we change which *name* is used for a zone, while referencing
+- the same final zoneinfo file, we don't care about the change of
+- name (e.g. if Europe/Oslo and Europe/Berlin are both symlinks to
+- the same CET file, continuing to use the old name, after
+- /etc/localtime changes which of the two it points to, is
+- harmless).
+-
+- The alternative would be to use a file-system watcher, but they are a
+- scarce resource.
+- */
+- const StatIdent local = identify("/etc/localtime");
+- const StatIdent tz = identify("/etc/TZ");
+- if (!m_name.isEmpty() && m_last.isValid() && (m_last == local || m_last == tz))
+- return m_name;
+-
+- m_name = etcLocalTime();
+- if (!m_name.isEmpty()) {
+- m_last = local;
+- return m_name;
+- }
+-
+- m_name = etcTZ();
+- m_last = m_name.isEmpty() ? StatIdent() : tz;
+- return m_name;
+- }
+-
+-
+-private:
+- QByteArray m_name;
+- struct StatIdent
+- {
+- static constexpr unsigned long bad = ~0ul;
+- unsigned long m_dev, m_ino;
+- StatIdent() : m_dev(bad), m_ino(bad) {}
+- StatIdent(const QT_STATBUF &data) : m_dev(data.st_dev), m_ino(data.st_ino) {}
+- bool isValid() { return m_dev != bad || m_ino != bad; }
+- bool operator==(const StatIdent &other)
+- { return other.m_dev == m_dev && other.m_ino == m_ino; }
+- };
+- StatIdent m_last;
+-
+- static StatIdent identify(const char *path)
+- {
+- QT_STATBUF data;
+- return QT_STAT(path, &data) == -1 ? StatIdent() : StatIdent(data);
+- }
+-
+- static QByteArray etcLocalTime()
+- {
+- // On most distros /etc/localtime is a symlink to a real file so extract
+- // name from the path
+- const QLatin1String zoneinfo("/zoneinfo/");
+- QString path = QStringLiteral("/etc/localtime");
+- long iteration = getSymloopMax();
+- // Symlink may point to another symlink etc. before being under zoneinfo/
+- // We stop on the first path under /zoneinfo/, even if it is itself a
+- // symlink, like America/Montreal pointing to America/Toronto
+- do {
+- path = QFile::symLinkTarget(path);
+- int index = path.indexOf(zoneinfo);
+- if (index >= 0) // Found zoneinfo file; extract zone name from path:
+- return path.midRef(index + zoneinfo.size()).toUtf8();
+- } while (!path.isEmpty() && --iteration > 0);
+-
+- return QByteArray();
+- }
+-
+- static QByteArray etcTZ()
+- {
+- // Some systems (e.g. uClibc) have a default value for $TZ in /etc/TZ:
+- const QString path = QStringLiteral("/etc/TZ");
+- QFile zone(path);
+- if (zone.open(QIODevice::ReadOnly))
+- return zone.readAll().trimmed();
+-
+- return QByteArray();
+- }
+-
+- // Any chain of symlinks longer than this is assumed to be a loop:
+- static long getSymloopMax()
+- {
+-#ifdef SYMLOOP_MAX
+- // If defined, at runtime it can only be greater than this, so this is a safe bet:
+- return SYMLOOP_MAX;
++#if defined(SYMLOOP_MAX)
++ return SYMLOOP_MAX; // if defined, at runtime it can only be greater than this, so this is a safe bet
+ #else
+- errno = 0;
+- long result = sysconf(_SC_SYMLOOP_MAX);
+- if (result >= 0)
+- return result;
+- // result is -1, meaning either error or no limit
+- Q_ASSERT(!errno); // ... but it can't be an error, POSIX mandates _SC_SYMLOOP_MAX
+-
+- // therefore we can make up our own limit
+-# ifdef MAXSYMLINKS
+- return MAXSYMLINKS;
++ errno = 0;
++ long result = sysconf(_SC_SYMLOOP_MAX);
++ if (result >= 0)
++ return result;
++ // result is -1, meaning either error or no limit
++ Q_ASSERT(!errno); // ... but it can't be an error, POSIX mandates _SC_SYMLOOP_MAX
++
++ // therefore we can make up our own limit
++# if defined(MAXSYMLINKS)
++ return MAXSYMLINKS;
+ # else
+- return 8;
++ return 8;
+ # endif
+ #endif
+- }
+-};
+ }
+
++// TODO Could cache the value and monitor the required files for any changes
+ QByteArray QTzTimeZonePrivate::systemTimeZoneId() const
+ {
+ // Check TZ env var first, if not populated try find it
+@@ -1262,12 +1142,55 @@ QByteArray QTzTimeZonePrivate::systemTimeZoneId() const
+ else if (ianaId.startsWith(':'))
+ ianaId = ianaId.mid(1);
+
++ // On most distros /etc/localtime is a symlink to a real file so extract name from the path
++ if (ianaId.isEmpty()) {
++ const QLatin1String zoneinfo("/zoneinfo/");
++ QString path = QFile::symLinkTarget(QStringLiteral("/etc/localtime"));
++ int index = -1;
++ long iteration = getSymloopMax();
++ // Symlink may point to another symlink etc. before being under zoneinfo/
++ // We stop on the first path under /zoneinfo/, even if it is itself a
++ // symlink, like America/Montreal pointing to America/Toronto
++ while (iteration-- > 0 && !path.isEmpty() && (index = path.indexOf(zoneinfo)) < 0)
++ path = QFile::symLinkTarget(path);
++ if (index >= 0) {
++ // /etc/localtime is a symlink to the current TZ file, so extract from path
++ ianaId = path.midRef(index + zoneinfo.size()).toUtf8();
++ }
++ }
++
++ // Some systems (e.g. uClibc) have a default value for $TZ in /etc/TZ:
+ if (ianaId.isEmpty()) {
+- thread_local static ZoneNameReader reader;
+- ianaId = reader.name();
++ QFile zone(QStringLiteral("/etc/TZ"));
++ if (zone.open(QIODevice::ReadOnly))
++ ianaId = zone.readAll().trimmed();
+ }
+
+ return ianaId;
+ }
+
++bool QTzTimeZonePrivate::isTimeZoneIdAvailable(const QByteArray &ianaId) const
++{
++ return tzZones->contains(ianaId);
++}
++
++QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds() const
++{
++ QList<QByteArray> result = tzZones->keys();
++ std::sort(result.begin(), result.end());
++ return result;
++}
++
++QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds(QLocale::Country country) const
++{
++ // TODO AnyCountry
++ QList<QByteArray> result;
++ for (auto it = tzZones->cbegin(), end = tzZones->cend(); it != end; ++it) {
++ if (it.value().country == country)
++ result << it.key();
++ }
++ std::sort(result.begin(), result.end());
++ return result;
++}
++
+ QT_END_NAMESPACE It makes the |
FWIW, I was able to make all Guix builds with the suggested patch. 🐅 |
@hebasto I wanted to note that your patch for glibc compatibility looks quite intimidating, but it's just reverting a commit. While here, couldn't we just drop compatibility for glibc 2.17 so we don't have a need for a patch? This is probably contentious, so better left for a follow-up? |
Thanks, but I don't think we'll be taking that patch.
You can't leave this to a follow up unless you want Guix builds to be broken in the interim. I said in the PR description that I would be opening a separate PR to deal with the symbol issues, and that is still what I am planning on doing. |
5b93e65 build: remove D__STDC_FORMAT_MACROS from CPPFLAGS (fanquake) dbfca4a build: require glibc 2.18+ for release builds (fanquake) Pull request description: This increases our runtime glibc requirement from 2.17 to 2.18. From what I can see the only platform this drops release support for is CentOS 7, which reached the end of it's "full update" support at the [end of 2020](https://wiki.centos.org/About/Product). It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic. It was mentioned in #22405 that our 2.17 requirement could be a bit excessive, and I tend to agree, however without a good reason to require an even newer version, I think a move from 2.17 -> 2.18 is sufficient for now. That means we get a glibc with "proper" support for `thread_local` (see below), as well as avoid having to patch dependencies to retain glibc compatibility (see #23489). Note that anyone wanting to self-compile and target a glibc 2.17 runtime could currently build with `--disable-threadlocal`. However we wouldn't make any guarantees on how long that workaround might exist for. glibc 2.18 was released in August 2013: https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html. > Add support for calling C++11 thread_local object destructors on thread and program exit. This needs compiler support for offloading C++11 destructor calls to glibc. The last time we increased our runtime glibc requirement for release builds was in #17538 (0.20 release), where we moved from a 2.11 requirement to 2.17. Guix builds: ```bash bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5 guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part 5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184 guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3 guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part 58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz 9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5 guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz 254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07 guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08 guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part 8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88 guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8 guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4 guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part 65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4 guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz 40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632 guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part 581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62 guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz 6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431 guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4 guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600 guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642 guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz 2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587 guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part 5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5 guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz 2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633 guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz 0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637 guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part 53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz 7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311 guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip 9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5 guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip ``` ACKs for top commit: laanwj: ACK ACK ACK ACK ACK 5b93e65 hebasto: re-ACK 5b93e65, only suggested changes since my [previous](#23511 (review)) review. Tree-SHA512: e9c57b11881204ee7c4e3d474d64722bc1bd4409cf8511f2914360205158946a327aa7234bbcbae40c43c0373954d0571c28583d90c280dca53614372891ddde
bce9f8f
to
cdf28d9
Compare
To following patch to a patch seems required: --- a/depends/patches/qt/fix_limits_header.patch
+++ b/depends/patches/qt/fix_limits_header.patch
@@ -19,6 +19,17 @@ Upstream commits:
#include <stdlib.h>
#include <string.h>
+--- old/qtbase/src/corelib/global/qfloat16.h
++++ new/qtbase/src/corelib/global/qfloat16.h
+@@ -43,6 +43,7 @@
+
+ #include <QtCore/qglobal.h>
+ #include <QtCore/qmetatype.h>
++#include <limits>
+ #include <string.h>
+
+ #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__)
+
--- old/qtbase/src/tools/moc/generator.cpp
+++ new/qtbase/src/tools/moc/generator.cpp
@@ -40,6 +40,8 @@ |
nit regarding the The following line bitcoin/depends/packages/xcb_proto.mk Line 21 in d94dc69
Also, after postprocessing, i.e. |
nit: The
Suggesting to silent this notification: --- a/depends/packages/qt.mk
+++ b/depends/packages/qt.mk
@@ -36,7 +36,6 @@ $(package)_config_opts += -no-cups
$(package)_config_opts += -no-egl
$(package)_config_opts += -no-eglfs
$(package)_config_opts += -no-evdev
-$(package)_config_opts += -no-freetype
$(package)_config_opts += -no-gif
$(package)_config_opts += -no-glib
$(package)_config_opts += -no-icu
@@ -119,6 +118,7 @@ $(package)_config_opts_darwin = -no-dbus
$(package)_config_opts_darwin += -no-opengl
$(package)_config_opts_darwin += -pch
$(package)_config_opts_darwin += -no-feature-corewlan
+$(package)_config_opts_darwin += -no-freetype
$(package)_config_opts_darwin += QMAKE_MACOSX_DEPLOYMENT_TARGET=$(OSX_MIN_VERSION)
ifneq ($(build_os),darwin)
@@ -158,6 +158,7 @@ $(package)_config_opts_mingw32 += "QMAKE_CXXFLAGS = '$($(package)_cflags) $($(pa
$(package)_config_opts_mingw32 += "QMAKE_LFLAGS = '$($(package)_ldflags)'"
$(package)_config_opts_mingw32 += -device-option CROSS_COMPILE="$(host)-"
$(package)_config_opts_mingw32 += -pch
+$(package)_config_opts_mingw32 += -no-freetype
$(package)_config_opts_android = -xplatform android-clang
$(package)_config_opts_android += -android-sdk $(ANDROID_SDK) |
78a6bc6 build, qt: Use Android NDK r23 LTS (Hennadii Stepanov) Pull request description: This is a continuation of #23478, and, thanks to #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 78a6bc6 Tree-SHA512: 09c6e8739ecbcbf5fdd6c2103577be2676eb448941f97c781f476918056c8405d2531d5cef8f240e4d1205c2d49f879edbba74dd5e77799a887b76a5c76ebe5b
ac9e4bc build: Fix build for Android x86_64 (Hennadii Stepanov) Pull request description: bitcoin/bitcoin#23489 [introduced](bitcoin/bitcoin#23489 (comment)) 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 ac9e4bc Tree-SHA512: c841a56d745c4b4a75e1bc4d89752de153aa6328752a8fd7df614363ed046a291a9eb58605d82fcba21f3c8b0f0bf47786ed0a63c29f81f5d4ad9c0b12304100
ac9e4bc build: Fix build for Android x86_64 (Hennadii Stepanov) Pull request description: bitcoin#23489 [introduced](bitcoin#23489 (comment)) 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 ac9e4bc Tree-SHA512: c841a56d745c4b4a75e1bc4d89752de153aa6328752a8fd7df614363ed046a291a9eb58605d82fcba21f3c8b0f0bf47786ed0a63c29f81f5d4ad9c0b12304100
ef81c51 build: Use config_opts instead of passing a compiler flag directly (Hennadii Stepanov) 3b8f4e3 build, qt: Drop unused CROSS_COMPILE variable for Android builds (Hennadii Stepanov) e5a81e6 build, refactor: Re-use `qt_lib_suffix` variable (Hennadii Stepanov) Pull request description: This PR suggests small cleanups as follow ups of bitcoin/bitcoin#23489. ACKs for top commit: fanquake: ACK ef81c51 Tree-SHA512: c834c4f76218c7d567223c49bb86404b02facf61bc9be9a66a984ddd2b2f5e6150ba97071c993ea1faf4da10c87e81df292b3628d4407afccbe9df379ac452d7
ef81c51 build: Use config_opts instead of passing a compiler flag directly (Hennadii Stepanov) 3b8f4e3 build, qt: Drop unused CROSS_COMPILE variable for Android builds (Hennadii Stepanov) e5a81e6 build, refactor: Re-use `qt_lib_suffix` variable (Hennadii Stepanov) Pull request description: This PR suggests small cleanups as follow ups of bitcoin#23489. ACKs for top commit: fanquake: ACK ef81c51 Tree-SHA512: c834c4f76218c7d567223c49bb86404b02facf61bc9be9a66a984ddd2b2f5e6150ba97071c993ea1faf4da10c87e81df292b3628d4407afccbe9df379ac452d7
fdee76c ci: Bump Qt to 5.15.2 in the native Windows task (Hennadii Stepanov) 5277043 doc: Update `build_msvc/README.md` for Qt 5.15.2 (Hennadii Stepanov) 98b7f5f build, qt: Fix regression in rendering on macOS Big Sur (Hennadii Stepanov) 84d8b06 build: qt 5.15.2 (fanquake) a2faba3 build: add libxcb_util_wm 0.4.1 (fanquake) bce9e22 build: add libxcb_util_image 0.4.0 (fanquake) afc317b build: add libxcb_util_keysyms 0.4.0 (fanquake) 225fbe7 build: add libxcb_util_render 0.3.9 (fanquake) 2093eab build: add libxcb_util 0.4.0 (fanquake) 2211a1a build: libxcb 1.14 (fanquake) 9c8d7df build: freetype 2.11.0 (fanquake) 102be68 build: expat 2.4.1 (fanquake) 06257ac build: xcb_proto 1.14.1 (fanquake) 4221ec7 build: libXau 1.0.9 (fanquake) 5b6a062 build: xproto 7.0.31 (fanquake) Pull request description: Hebasto asked for this branch to be resurrected, so here it is. Guix Builds: ```bash 9bbbec69cc56255fbe0dd6f63d26b6d76ebc071275cd603a2388baf028a2e5fe guix-build-fdee76c113a6/output/aarch64-linux-gnu/SHA256SUMS.part 57aee87dedbf3c41e52e7bb18cb52e96a656696699ce0663a35cf6c030ca048a guix-build-fdee76c113a6/output/aarch64-linux-gnu/bitcoin-fdee76c113a6-aarch64-linux-gnu-debug.tar.gz 8d2842ff0995bf53f4ed6f67e3db3d33f4cd1d117b15122d750875a3681dba21 guix-build-fdee76c113a6/output/aarch64-linux-gnu/bitcoin-fdee76c113a6-aarch64-linux-gnu.tar.gz 67b342e95d8fa5d897d84e53f5bb5cc8323921d31c51497196b54d2c2d62e915 guix-build-fdee76c113a6/output/arm-linux-gnueabihf/SHA256SUMS.part f52e8b2e28236a7fb0dd26989c39ef18472161a892f90e62cea26ae7c2daadaf guix-build-fdee76c113a6/output/arm-linux-gnueabihf/bitcoin-fdee76c113a6-arm-linux-gnueabihf-debug.tar.gz 1dce8e6953e52874b98a0f5dafaebf068584984e2c3cd40d3110dd3c5c0d2f8d guix-build-fdee76c113a6/output/arm-linux-gnueabihf/bitcoin-fdee76c113a6-arm-linux-gnueabihf.tar.gz f8328d777b0f1be68408c2df5907c4dd890dd0617b1aa747b3bf140f84c0f61d guix-build-fdee76c113a6/output/dist-archive/bitcoin-fdee76c113a6.tar.gz b3e71decb914c3be9c88586084853ab086d77929707c1a7649991b75c734f3e2 guix-build-fdee76c113a6/output/powerpc64-linux-gnu/SHA256SUMS.part 30a8ad718f848297ac1dc8f48eadb37b983d5837f807ecfedb6723932cb5e84a guix-build-fdee76c113a6/output/powerpc64-linux-gnu/bitcoin-fdee76c113a6-powerpc64-linux-gnu-debug.tar.gz 111444d627aa837e8a7f450dfe304ff20139ca018a293c9a5e8c5aec33ab75a9 guix-build-fdee76c113a6/output/powerpc64-linux-gnu/bitcoin-fdee76c113a6-powerpc64-linux-gnu.tar.gz ef815b019722b774995e2a999cdbd79b34b8636f92f62b2f8e6b99b294ad1bc5 guix-build-fdee76c113a6/output/powerpc64le-linux-gnu/SHA256SUMS.part 5521bf88d0febd79301dbed30205c1bef6257eb03ae5d4a5227bac3b66b0b427 guix-build-fdee76c113a6/output/powerpc64le-linux-gnu/bitcoin-fdee76c113a6-powerpc64le-linux-gnu-debug.tar.gz 6d2ae36ec34e7b5d3d84d6a50595c39c1d89b2659ed9eba5e7c8b21a9cbb8f04 guix-build-fdee76c113a6/output/powerpc64le-linux-gnu/bitcoin-fdee76c113a6-powerpc64le-linux-gnu.tar.gz 8aa9cb8a5585d8b27feafa8403fcba803152fb154d7c308f6759670c11107cfa guix-build-fdee76c113a6/output/riscv64-linux-gnu/SHA256SUMS.part 7abbf8efdc91399ab0d2dde18b3be19734f956a07ed1cc19f8f5178647f9ac94 guix-build-fdee76c113a6/output/riscv64-linux-gnu/bitcoin-fdee76c113a6-riscv64-linux-gnu-debug.tar.gz 1dfd20f75feb316882043dd081f0ee4bd2032481e17d40f7ae9f2b430c316754 guix-build-fdee76c113a6/output/riscv64-linux-gnu/bitcoin-fdee76c113a6-riscv64-linux-gnu.tar.gz 1949530e8e68b68c72f627296995b93e9ec048c2740274a8874fe9565eca4a46 guix-build-fdee76c113a6/output/x86_64-apple-darwin19/SHA256SUMS.part ab2e63f9f58834ddc0fc5f83a2a7938ffcf8057392f0c5ce92a8d456e9b8e4af guix-build-fdee76c113a6/output/x86_64-apple-darwin19/bitcoin-fdee76c113a6-osx-unsigned.dmg 38958a096117542cde4dcac318d116fdeec3237c95ebf88fff0e76570002109e guix-build-fdee76c113a6/output/x86_64-apple-darwin19/bitcoin-fdee76c113a6-osx-unsigned.tar.gz 8841df372ef1ea670dc8d4f82b007420140a39454371be47193e484a4f95fd76 guix-build-fdee76c113a6/output/x86_64-apple-darwin19/bitcoin-fdee76c113a6-osx64.tar.gz 4e0d6b6a715d987ff025e45782dd6a47cfdac904a26d932c9c84de7eb8b699d4 guix-build-fdee76c113a6/output/x86_64-linux-gnu/SHA256SUMS.part 3ac4c326313650c0d0a35560c4073f0c3fcbf7002c5b5c918e7186627c8ed392 guix-build-fdee76c113a6/output/x86_64-linux-gnu/bitcoin-fdee76c113a6-x86_64-linux-gnu-debug.tar.gz fcd45fe54cb86a7e9240a6bbe2170926e6db32ee55b821af332348d4c4e1d3a4 guix-build-fdee76c113a6/output/x86_64-linux-gnu/bitcoin-fdee76c113a6-x86_64-linux-gnu.tar.gz 72deb4fc1c5b70ae329ab04862e822911708f3c4a4d8a0bbb5796d9a64985414 guix-build-fdee76c113a6/output/x86_64-w64-mingw32/SHA256SUMS.part 78ae8f495bfb02198b00b7fc72b67fb0595f81dd9e3aef45e5103efea90451d9 guix-build-fdee76c113a6/output/x86_64-w64-mingw32/bitcoin-fdee76c113a6-win-unsigned.tar.gz 962fcf4ce63e5a89fb1e74e19dbc1aeffc4d5b753ab8e19fcf2249ce21766c5b guix-build-fdee76c113a6/output/x86_64-w64-mingw32/bitcoin-fdee76c113a6-win64-debug.zip 3929916755d599b133304acd94462afad1ba73d5516f6f9786aff565c6ac8818 guix-build-fdee76c113a6/output/x86_64-w64-mingw32/bitcoin-fdee76c113a6-win64-setup-unsigned.exe 66e2030476de85437e1593b7d2f4efd4a8837de8b2479217f9246d8028256e08 guix-build-fdee76c113a6/output/x86_64-w64-mingw32/bitcoin-fdee76c113a6-win64.zip ``` ACKs for top commit: hebasto: re-ACK fdee76c Tree-SHA512: 33e7a3e022dfc3a7e93f4bc2acf887c7c2afacc182352f4dfb5917342d5923e0a8d17eaf10928e68b666db6ab748cc02d3d3dfb41e4aad7d296a403b79b3e63d
8f2bbb0 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 8f2bbb0 Tree-SHA512: 09c6e8739ecbcbf5fdd6c2103577be2676eb448941f97c781f476918056c8405d2531d5cef8f240e4d1205c2d49f879edbba74dd5e77799a887b76a5c76ebe5b
8d6d708 build: Fix build for Android x86_64 (Hennadii Stepanov) Pull request description: bitcoin/bitcoin#23489 [introduced](bitcoin/bitcoin#23489 (comment)) 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 8d6d708 Tree-SHA512: c841a56d745c4b4a75e1bc4d89752de153aa6328752a8fd7df614363ed046a291a9eb58605d82fcba21f3c8b0f0bf47786ed0a63c29f81f5d4ad9c0b12304100
A bitcoin#23489 follow up.
d67fc78 doc: Update the used Qt version (Hennadii Stepanov) Pull request description: Missed in bitcoin/bitcoin#23489. ACKs for top commit: w0xlt: ACK d67fc78 shaavan: ACK d67fc78 prusnak: ACK d67fc78 promag: ACK d67fc78. Tree-SHA512: f15d83dca1c7dcdb9bd862358cd0e9a2740d88b8eaa0de8223210c9ce89e7526c6f98908bf26d512ff9271d6d59fda1d0c7ac97fcd7ef4b8b0c06d24b9d62f33
d67fc78 doc: Update the used Qt version (Hennadii Stepanov) Pull request description: Missed in bitcoin#23489. ACKs for top commit: w0xlt: ACK d67fc78 shaavan: ACK d67fc78 prusnak: ACK d67fc78 promag: ACK d67fc78. Tree-SHA512: f15d83dca1c7dcdb9bd862358cd0e9a2740d88b8eaa0de8223210c9ce89e7526c6f98908bf26d512ff9271d6d59fda1d0c7ac97fcd7ef4b8b0c06d24b9d62f33
A bitcoin#23489 follow up.
Github-Pull: bitcoin#23489 Rebased-From: fc65127
Github-Pull: bitcoin#23489 Rebased-From: fc65127
Github-Pull: bitcoin#23489 Rebased-From: fc65127
Github-Pull: bitcoin#23489 Rebased-From: fc65127
A bitcoin/bitcoin#23489 follow up.
Hebasto asked for this branch to be resurrected, so here it is.
Guix Builds: