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 <[email protected]>
+ ** Copyright (C) 2013 John Layt <[email protected]>
+ ** 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_NAMESPACEIt 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
A bitcoin/bitcoin#23489 follow up.
Hebasto asked for this branch to be resurrected, so here it is.
Guix Builds: