build: Qt 5.15.2 #23489

pull fanquake wants to merge 15 commits into bitcoin:master from fanquake:qt_5_15_2_rebased changing 28 files +375 −441
  1. fanquake commented at 7:11 am on November 12, 2021: member

    Hebasto asked for this branch to be resurrected, so here it is.

    Guix Builds:

     09bbbec69cc56255fbe0dd6f63d26b6d76ebc071275cd603a2388baf028a2e5fe  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/SHA256SUMS.part
     157aee87dedbf3c41e52e7bb18cb52e96a656696699ce0663a35cf6c030ca048a  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu-debug.tar.gz
     28d2842ff0995bf53f4ed6f67e3db3d33f4cd1d117b15122d750875a3681dba21  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu.tar.gz
     367b342e95d8fa5d897d84e53f5bb5cc8323921d31c51497196b54d2c2d62e915  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/SHA256SUMS.part
     4f52e8b2e28236a7fb0dd26989c39ef18472161a892f90e62cea26ae7c2daadaf  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf-debug.tar.gz
     51dce8e6953e52874b98a0f5dafaebf068584984e2c3cd40d3110dd3c5c0d2f8d  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf.tar.gz
     6f8328d777b0f1be68408c2df5907c4dd890dd0617b1aa747b3bf140f84c0f61d  guix-build-c0a1c3ca0894/output/dist-archive/bitcoin-c0a1c3ca0894.tar.gz
     7b3e71decb914c3be9c88586084853ab086d77929707c1a7649991b75c734f3e2  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/SHA256SUMS.part
     830a8ad718f848297ac1dc8f48eadb37b983d5837f807ecfedb6723932cb5e84a  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu-debug.tar.gz
     9111444d627aa837e8a7f450dfe304ff20139ca018a293c9a5e8c5aec33ab75a9  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu.tar.gz
    10ef815b019722b774995e2a999cdbd79b34b8636f92f62b2f8e6b99b294ad1bc5  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/SHA256SUMS.part
    115521bf88d0febd79301dbed30205c1bef6257eb03ae5d4a5227bac3b66b0b427  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu-debug.tar.gz
    126d2ae36ec34e7b5d3d84d6a50595c39c1d89b2659ed9eba5e7c8b21a9cbb8f04  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu.tar.gz
    138aa9cb8a5585d8b27feafa8403fcba803152fb154d7c308f6759670c11107cfa  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/SHA256SUMS.part
    147abbf8efdc91399ab0d2dde18b3be19734f956a07ed1cc19f8f5178647f9ac94  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu-debug.tar.gz
    151dfd20f75feb316882043dd081f0ee4bd2032481e17d40f7ae9f2b430c316754  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu.tar.gz
    161949530e8e68b68c72f627296995b93e9ec048c2740274a8874fe9565eca4a46  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/SHA256SUMS.part
    17ab2e63f9f58834ddc0fc5f83a2a7938ffcf8057392f0c5ce92a8d456e9b8e4af  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.dmg
    1838958a096117542cde4dcac318d116fdeec3237c95ebf88fff0e76570002109e  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.tar.gz
    198841df372ef1ea670dc8d4f82b007420140a39454371be47193e484a4f95fd76  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx64.tar.gz
    204e0d6b6a715d987ff025e45782dd6a47cfdac904a26d932c9c84de7eb8b699d4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/SHA256SUMS.part
    213ac4c326313650c0d0a35560c4073f0c3fcbf7002c5b5c918e7186627c8ed392  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu-debug.tar.gz
    22fcd45fe54cb86a7e9240a6bbe2170926e6db32ee55b821af332348d4c4e1d3a4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu.tar.gz
    2372deb4fc1c5b70ae329ab04862e822911708f3c4a4d8a0bbb5796d9a64985414  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/SHA256SUMS.part
    2478ae8f495bfb02198b00b7fc72b67fb0595f81dd9e3aef45e5103efea90451d9  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win-unsigned.tar.gz
    25962fcf4ce63e5a89fb1e74e19dbc1aeffc4d5b753ab8e19fcf2249ce21766c5b  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-debug.zip
    263929916755d599b133304acd94462afad1ba73d5516f6f9786aff565c6ac8818  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-setup-unsigned.exe
    2766e2030476de85437e1593b7d2f4efd4a8837de8b2479217f9246d8028256e08  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64.zip
    
  2. fanquake added the label GUI on Nov 12, 2021
  3. fanquake added the label Build system on Nov 12, 2021
  4. MarcoFalke commented at 7:30 am on November 12, 2021: member
    Previous attempt: #19716
  5. promag commented at 9:05 am on November 12, 2021: member
    Concept ACK 🎉
  6. hebasto commented at 3:14 pm on November 12, 2021: member
    Concept ACK, obviously.
  7. hebasto commented at 7:19 pm on November 12, 2021: member
    Can confirm that make -C depends libxcb fails on a hirsute system, unfortunately.
  8. hebasto commented at 7:36 pm on November 12, 2021: member

    Can confirm that make -C depends libxcb fails on a hirsute system, unfortunately.

    Bumping xcb_proto version to 1.14.1 fixes the issue:

     0--- a/depends/packages/xcb_proto.mk
     1+++ b/depends/packages/xcb_proto.mk
     2@@ -1,8 +1,8 @@
     3 package=xcb_proto
     4-$(package)_version=1.14
     5-$(package)_download_path=https://xcb.freedesktop.org/dist
     6+$(package)_version=1.14.1
     7+$(package)_download_path=https://xorg.freedesktop.org/archive/individual/proto
     8 $(package)_file_name=xcb-proto-$($(package)_version).tar.xz
     9-$(package)_sha256_hash=186a3ceb26f9b4a015f5a44dcc814c93033a5fc39684f36f1ecc79834416a605
    10+$(package)_sha256_hash=f04add9a972ac334ea11d9d7eb4fc7f8883835da3e4859c9afa971efdf57fcc3
    11 
    12 define $(package)_config_cmds
    13   $($(package)_autoconf)
    

    See:

    UPDATE: this diff fixes issues with builds on both bullseye and hirsute systems.

  9. hebasto commented at 8:51 pm on November 12, 2021: member

    To fix configuration for Android builds, the following patch could be applied:

     0--- a/build-aux/m4/bitcoin_qt.m4
     1+++ b/build-aux/m4/bitcoin_qt.m4
     2@@ -71,6 +71,9 @@ AC_DEFUN([BITCOIN_QT_INIT],[
     3                  [qt_lib_suffix= ]); bitcoin_qt_want_version=qt5],
     4         [qt_lib_suffix= ])
     5 
     6+  AS_CASE([$host],
     7+          [*android*], [qt_lib_suffix=_$ANDROID_ARCH])
     8+
     9   AC_ARG_WITH([qt-incdir],[AS_HELP_STRING([--with-qt-incdir=INC_DIR],[specify qt include path (overridden by pkgconfig)])], [qt_include_path=$withval], [])
    10   AC_ARG_WITH([qt-libdir],[AS_HELP_STRING([--with-qt-libdir=LIB_DIR],[specify qt lib path (overridden by pkgconfig)])], [qt_lib_path=$withval], [])
    11   AC_ARG_WITH([qt-plugindir],[AS_HELP_STRING([--with-qt-plugindir=PLUGIN_DIR],[specify qt plugin path (overridden by pkgconfig)])], [qt_plugin_path=$withval], [])
    12@@ -162,7 +165,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
    13       _BITCOIN_QT_CHECK_STATIC_PLUGIN([QMacStylePlugin], [-lqmacstyle])
    14       AC_DEFINE(QT_QPA_PLATFORM_COCOA, 1, [Define this symbol if the qt platform is cocoa])
    15     elif test "x$TARGET_OS" = xandroid; then
    16-      QT_LIBS="-Wl,--export-dynamic,--undefined=JNI_OnLoad -lqtforandroid -ljnigraphics -landroid -lqtfreetype $QT_LIBS"
    17+      QT_LIBS="-Wl,--export-dynamic,--undefined=JNI_OnLoad -lplugins_platforms_qtforandroid_$ANDROID_ARCH -ljnigraphics -landroid -lqtfreetype_$ANDROID_ARCH $QT_LIBS"
    18       AC_DEFINE(QT_QPA_PLATFORM_ANDROID, 1, [Define this symbol if the qt platform is android])
    19     fi
    20   fi
    21@@ -360,7 +363,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
    22   elif test "x$TARGET_OS" = xwindows; then
    23     PKG_CHECK_MODULES([QT_WINDOWSUIAUTOMATION], [${qt_lib_prefix}WindowsUIAutomationSupport${qt_lib_suffix}], [QT_LIBS="$QT_WINDOWSUIAUTOMATION_LIBS $QT_LIBS"])
    24   elif test "x$TARGET_OS" = xandroid; then
    25-    PKG_CHECK_MODULES([QT_EGL], [${qt_lib_prefix}EglSupport], [QT_LIBS="$QT_EGL_LIBS $QT_LIBS"])
    26+    PKG_CHECK_MODULES([QT_EGL], [${qt_lib_prefix}EglSupport${qt_lib_suffix}], [QT_LIBS="$QT_EGL_LIBS $QT_LIBS"])
    27   fi
    28 ])
    29 
    
  10. hebasto commented at 9:17 pm on November 12, 2021: member

    A branch with suggested patches being applied is here: pr23489-1112.mod.

    Its CI build is here: https://cirrus-ci.com/build/5683926900408320

    UPDATE: maybe un-draft? :tiger2:

  11. fanquake force-pushed on Nov 13, 2021
  12. DrahtBot commented at 2:03 am on November 13, 2021: member

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #23593 (build: remove x-prefix’s from comparisons by fanquake)
    • #23565 (doc: rewrite dependencies.md by fanquake)
    • #23495 (build: Bump Fontconfig version up to 2.12.6 by hebasto)
    • #22708 (build, qt: Add Wayland support for Linux builds with depends by hebasto)
    • #22555 (build: Fix make apk for Android w/ non-default SOURCES_PATH in depends by hebasto)
    • #22552 (build: Improve depends build system robustness by hebasto)

    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.

  13. hebasto commented at 12:19 pm on November 14, 2021: member

    To fix compatibility with glibc 2.17, the following patch could be applied:

      0diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk
      1index 2235e6ec8..9ff6d8794 100644
      2--- a/depends/packages/qt.mk
      3+++ b/depends/packages/qt.mk
      4@@ -12,6 +12,7 @@ $(package)_patches += fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch
      5 $(package)_patches += fix_android_jni_static.patch dont_hardcode_pwd.patch
      6 $(package)_patches += no_sdk_version_check.patch fix_cgcolorspace_include.patch
      7 $(package)_patches += qtbase-moc-ignore-gcc-macro.patch fix_limits_header.patch
      8+$(package)_patches += glibc_2_17_compatibility.patch
      9 
     10 $(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
     11 $(package)_qttranslations_sha256_hash=d5788e86257b21d5323f1efd94376a213e091d1e5e03b45a95dd052b5f570db8
     12@@ -233,6 +234,7 @@ define $(package)_preprocess_cmds
     13   patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
     14   patch -p1 -i $($(package)_patch_dir)/fix_limits_header.patch && \
     15   patch -p1 -i $($(package)_patch_dir)/fix_cgcolorspace_include.patch && \
     16+  patch -p1 -i $($(package)_patch_dir)/glibc_2_17_compatibility.patch && \
     17   mkdir -p qtbase/mkspecs/macx-clang-linux &&\
     18   cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
     19   cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
     20diff --git a/depends/patches/qt/glibc_2_17_compatibility.patch b/depends/patches/qt/glibc_2_17_compatibility.patch
     21new file mode 100644
     22index 000000000..e509ce3ce
     23--- /dev/null
     24+++ b/depends/patches/qt/glibc_2_17_compatibility.patch
     25@@ -0,0 +1,259 @@
     26+Provide compatibility with glibc 2.17.
     27+
     28+Revert "Cache system zone ID when fetched from the file-system"
     29+
     30+This reverts commit c70ce3d042025c858faffe661f85d2482a2a0d8c.
     31+
     32+--- old/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp
     33++++ new/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp
     34+@@ -1,6 +1,5 @@
     35+ /****************************************************************************
     36+ **
     37+-** Copyright (C) 2020 The Qt Company Ltd.
     38+ ** Copyright (C) 2019 Crimson AS <info@crimson.no>
     39+ ** Copyright (C) 2013 John Layt <jlayt@kde.org>
     40+ ** Contact: https://www.qt.io/licensing/
     41+@@ -43,19 +42,18 @@
     42+ #include "qtimezoneprivate_p.h"
     43+ #include "private/qlocale_tools_p.h"
     44+ 
     45+-#include <QtCore/QDataStream>
     46+-#include <QtCore/QDateTime>
     47+ #include <QtCore/QFile>
     48+-#include <QtCore/QHash>
     49+ #include <QtCore/QMutex>
     50++#include <QtCore/QHash>
     51++#include <QtCore/QDataStream>
     52++#include <QtCore/QDateTime>
     53+ 
     54+ #include <qdebug.h>
     55+-#include <qplatformdefs.h>
     56+ 
     57+ #include <algorithm>
     58+ #include <errno.h>
     59+ #include <limits.h>
     60+-#ifndef Q_OS_INTEGRITY
     61++#if !defined(Q_OS_INTEGRITY)
     62+ #include <sys/param.h> // to use MAXSYMLINKS constant
     63+ #endif
     64+ #include <unistd.h>    // to use _SC_SYMLOOP_MAX constant
     65+@@ -1108,146 +1106,28 @@ QTimeZonePrivate::Data QTzTimeZonePrivate::previousTransition(qint64 beforeMSecs
     66+     return last > tranCache().cbegin() ? dataForTzTransition(*--last) : invalidData();
     67+ }
     68+ 
     69+-bool QTzTimeZonePrivate::isTimeZoneIdAvailable(const QByteArray &ianaId) const
     70+-{
     71+-    return tzZones->contains(ianaId);
     72+-}
     73+-
     74+-QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds() const
     75+-{
     76+-    QList<QByteArray> result = tzZones->keys();
     77+-    std::sort(result.begin(), result.end());
     78+-    return result;
     79+-}
     80+-
     81+-QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds(QLocale::Country country) const
     82++static long getSymloopMax()
     83+ {
     84+-    // TODO AnyCountry
     85+-    QList<QByteArray> result;
     86+-    for (auto it = tzZones->cbegin(), end = tzZones->cend(); it != end; ++it) {
     87+-        if (it.value().country == country)
     88+-            result << it.key();
     89+-    }
     90+-    std::sort(result.begin(), result.end());
     91+-    return result;
     92+-}
     93+-
     94+-// Getting the system zone's ID:
     95+-
     96+-namespace {
     97+-class ZoneNameReader : public QObject
     98+-{
     99+-public:
    100+-    QByteArray name()
    101+-    {
    102+-        /* Assumptions:
    103+-           a) Systems don't change which of localtime and TZ they use without a
    104+-              reboot.
    105+-           b) When they change, they use atomic renames, hence a new device and
    106+-              inode for the new file.
    107+-           c) If we change which *name* is used for a zone, while referencing
    108+-              the same final zoneinfo file, we don't care about the change of
    109+-              name (e.g. if Europe/Oslo and Europe/Berlin are both symlinks to
    110+-              the same CET file, continuing to use the old name, after
    111+-              /etc/localtime changes which of the two it points to, is
    112+-              harmless).
    113+-
    114+-           The alternative would be to use a file-system watcher, but they are a
    115+-           scarce resource.
    116+-         */
    117+-        const StatIdent local = identify("/etc/localtime");
    118+-        const StatIdent tz = identify("/etc/TZ");
    119+-        if (!m_name.isEmpty() && m_last.isValid() && (m_last == local || m_last == tz))
    120+-            return m_name;
    121+-
    122+-        m_name = etcLocalTime();
    123+-        if (!m_name.isEmpty()) {
    124+-            m_last = local;
    125+-            return m_name;
    126+-        }
    127+-
    128+-        m_name = etcTZ();
    129+-        m_last = m_name.isEmpty() ? StatIdent() : tz;
    130+-        return m_name;
    131+-    }
    132+-
    133+-
    134+-private:
    135+-    QByteArray m_name;
    136+-    struct StatIdent
    137+-    {
    138+-        static constexpr unsigned long bad = ~0ul;
    139+-        unsigned long m_dev, m_ino;
    140+-        StatIdent() : m_dev(bad), m_ino(bad) {}
    141+-        StatIdent(const QT_STATBUF &data) : m_dev(data.st_dev), m_ino(data.st_ino) {}
    142+-        bool isValid() { return m_dev != bad || m_ino != bad; }
    143+-        bool operator==(const StatIdent &other)
    144+-        { return other.m_dev == m_dev && other.m_ino == m_ino; }
    145+-    };
    146+-    StatIdent m_last;
    147+-
    148+-    static StatIdent identify(const char *path)
    149+-    {
    150+-        QT_STATBUF data;
    151+-        return QT_STAT(path, &data) == -1 ? StatIdent() : StatIdent(data);
    152+-    }
    153+-
    154+-    static QByteArray etcLocalTime()
    155+-    {
    156+-        // On most distros /etc/localtime is a symlink to a real file so extract
    157+-        // name from the path
    158+-        const QLatin1String zoneinfo("/zoneinfo/");
    159+-        QString path = QStringLiteral("/etc/localtime");
    160+-        long iteration = getSymloopMax();
    161+-        // Symlink may point to another symlink etc. before being under zoneinfo/
    162+-        // We stop on the first path under /zoneinfo/, even if it is itself a
    163+-        // symlink, like America/Montreal pointing to America/Toronto
    164+-        do {
    165+-            path = QFile::symLinkTarget(path);
    166+-            int index = path.indexOf(zoneinfo);
    167+-            if (index >= 0) // Found zoneinfo file; extract zone name from path:
    168+-                return path.midRef(index + zoneinfo.size()).toUtf8();
    169+-        } while (!path.isEmpty() && --iteration > 0);
    170+-
    171+-        return QByteArray();
    172+-    }
    173+-
    174+-    static QByteArray etcTZ()
    175+-    {
    176+-        // Some systems (e.g. uClibc) have a default value for $TZ in /etc/TZ:
    177+-        const QString path = QStringLiteral("/etc/TZ");
    178+-        QFile zone(path);
    179+-        if (zone.open(QIODevice::ReadOnly))
    180+-            return zone.readAll().trimmed();
    181+-
    182+-        return QByteArray();
    183+-    }
    184+-
    185+-    // Any chain of symlinks longer than this is assumed to be a loop:
    186+-    static long getSymloopMax()
    187+-    {
    188+-#ifdef SYMLOOP_MAX
    189+-        // If defined, at runtime it can only be greater than this, so this is a safe bet:
    190+-        return SYMLOOP_MAX;
    191++#if defined(SYMLOOP_MAX)
    192++    return SYMLOOP_MAX; // if defined, at runtime it can only be greater than this, so this is a safe bet
    193+ #else
    194+-        errno = 0;
    195+-        long result = sysconf(_SC_SYMLOOP_MAX);
    196+-        if (result >= 0)
    197+-            return result;
    198+-        // result is -1, meaning either error or no limit
    199+-        Q_ASSERT(!errno); // ... but it can't be an error, POSIX mandates _SC_SYMLOOP_MAX
    200+-
    201+-        // therefore we can make up our own limit
    202+-#  ifdef MAXSYMLINKS
    203+-        return MAXSYMLINKS;
    204++    errno = 0;
    205++    long result = sysconf(_SC_SYMLOOP_MAX);
    206++    if (result >= 0)
    207++        return result;
    208++    // result is -1, meaning either error or no limit
    209++    Q_ASSERT(!errno); // ... but it can't be an error, POSIX mandates _SC_SYMLOOP_MAX
    210++
    211++    // therefore we can make up our own limit
    212++#  if defined(MAXSYMLINKS)
    213++    return MAXSYMLINKS;
    214+ #  else
    215+-        return 8;
    216++    return 8;
    217+ #  endif
    218+ #endif
    219+-    }
    220+-};
    221+ }
    222+ 
    223++// TODO Could cache the value and monitor the required files for any changes
    224+ QByteArray QTzTimeZonePrivate::systemTimeZoneId() const
    225+ {
    226+     // Check TZ env var first, if not populated try find it
    227+@@ -1262,12 +1142,55 @@ QByteArray QTzTimeZonePrivate::systemTimeZoneId() const
    228+     else if (ianaId.startsWith(':'))
    229+         ianaId = ianaId.mid(1);
    230+ 
    231++    // On most distros /etc/localtime is a symlink to a real file so extract name from the path
    232++    if (ianaId.isEmpty()) {
    233++        const QLatin1String zoneinfo("/zoneinfo/");
    234++        QString path = QFile::symLinkTarget(QStringLiteral("/etc/localtime"));
    235++        int index = -1;
    236++        long iteration = getSymloopMax();
    237++        // Symlink may point to another symlink etc. before being under zoneinfo/
    238++        // We stop on the first path under /zoneinfo/, even if it is itself a
    239++        // symlink, like America/Montreal pointing to America/Toronto
    240++        while (iteration-- > 0 && !path.isEmpty() && (index = path.indexOf(zoneinfo)) < 0)
    241++            path = QFile::symLinkTarget(path);
    242++        if (index >= 0) {
    243++            // /etc/localtime is a symlink to the current TZ file, so extract from path
    244++            ianaId = path.midRef(index + zoneinfo.size()).toUtf8();
    245++        }
    246++    }
    247++
    248++    // Some systems (e.g. uClibc) have a default value for $TZ in /etc/TZ:
    249+     if (ianaId.isEmpty()) {
    250+-        thread_local static ZoneNameReader reader;
    251+-        ianaId = reader.name();
    252++        QFile zone(QStringLiteral("/etc/TZ"));
    253++        if (zone.open(QIODevice::ReadOnly))
    254++            ianaId = zone.readAll().trimmed();
    255+     }
    256+ 
    257+     return ianaId;
    258+ }
    259+ 
    260++bool QTzTimeZonePrivate::isTimeZoneIdAvailable(const QByteArray &ianaId) const
    261++{
    262++    return tzZones->contains(ianaId);
    263++}
    264++
    265++QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds() const
    266++{
    267++    QList<QByteArray> result = tzZones->keys();
    268++    std::sort(result.begin(), result.end());
    269++    return result;
    270++}
    271++
    272++QList<QByteArray> QTzTimeZonePrivate::availableTimeZoneIds(QLocale::Country country) const
    273++{
    274++    // TODO AnyCountry
    275++    QList<QByteArray> result;
    276++    for (auto it = tzZones->cbegin(), end = tzZones->cend(); it != end; ++it) {
    277++        if (it.value().country == country)
    278++            result << it.key();
    279++    }
    280++    std::sort(result.begin(), result.end());
    281++    return result;
    282++}
    283++
    284+ QT_END_NAMESPACE
    

    It makes the symbol-check.py pass successfully.

  14. hebasto commented at 2:20 pm on November 14, 2021: member

    FWIW, I was able to make all Guix builds with the suggested patch.

    :tiger2:

  15. jarolrod commented at 9:48 pm on November 14, 2021: member

    @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? Glib2.7 is ancient, the symbols introduced here would be available in glibc 2.8. Sounds reasonable to me to drop support.

    This is probably contentious, so better left for a follow-up?

  16. fanquake commented at 0:03 am on November 15, 2021: member

    FWIW, I was able to make all Guix builds with the suggested patch.

    Thanks, but I don’t think we’ll be taking that patch.

    This is probably contentious, so better left for a follow-up?

    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.

  17. fanquake referenced this in commit 6bde42e29e on Nov 17, 2021
  18. fanquake force-pushed on Nov 17, 2021
  19. fanquake marked this as ready for review on Nov 17, 2021
  20. hebasto commented at 8:49 am on November 17, 2021: member

    To following patch to a patch seems required:

     0--- a/depends/patches/qt/fix_limits_header.patch
     1+++ b/depends/patches/qt/fix_limits_header.patch
     2@@ -19,6 +19,17 @@ Upstream commits:
     3  #include <stdlib.h>
     4  #include <string.h>
     5 
     6+--- old/qtbase/src/corelib/global/qfloat16.h
     7++++ new/qtbase/src/corelib/global/qfloat16.h
     8+@@ -43,6 +43,7 @@
     9+ 
    10+ #include <QtCore/qglobal.h>
    11+ #include <QtCore/qmetatype.h>
    12++#include <limits>
    13+ #include <string.h>
    14+ 
    15+ #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__)
    16+
    17 --- old/qtbase/src/tools/moc/generator.cpp
    18 +++ new/qtbase/src/tools/moc/generator.cpp
    19 @@ -40,6 +40,8 @@
    
  21. hebasto commented at 10:29 am on November 17, 2021: member

    nit regarding the xcb_proto package

    The following line https://github.com/bitcoin/bitcoin/blob/d94dc69ee454144f4db12d163b15717cc6cad383/depends/packages/xcb_proto.mk#L21 is a noop, actually.

    Also, after postprocessing, i.e. find -name "*.pyc" -delete, the lib/python3.8/site-packages/xcbgen/__pycache__ becomes empty. Therefore, we can just rm -rf lib/python3.8/site-packages/xcbgen/__pycache__.

  22. hebasto commented at 10:51 am on November 17, 2021: member

    Sorry, but I see no reasons to update the expat and freetype packages in this PR.

    Isn’t it more reasonable to move these commits into #23495?

    All in all, Qt 5.15 expects freetype 2.3.0+, and our current version is 2.7.1.

  23. in contrib/devtools/symbol-check.py:122 in cdf28d9b90 outdated
    118+'libxcb-sync.so.1',
    119+'libxcb-xfixes.so.0',
    120+'libxcb-xinerama.so.0',
    121+'libxcb-xkb.so.1',
    122+'libxkbcommon-x11.so.0',
    123+'libxkbcommon.so.0',
    


    hebasto commented at 11:19 am on November 17, 2021:
    These line are duplicated now.

    fanquake commented at 3:38 am on November 18, 2021:
    Fixed in next push.
  24. hebasto commented at 11:41 am on November 17, 2021: member

    nit: The qt package configure script for Linux hosts prints:

    0Note: Overriding option 'freetype' with 'system' (was: 'no')
    

    Suggesting to silent this notification:

     0--- a/depends/packages/qt.mk
     1+++ b/depends/packages/qt.mk
     2@@ -36,7 +36,6 @@ $(package)_config_opts += -no-cups
     3 $(package)_config_opts += -no-egl
     4 $(package)_config_opts += -no-eglfs
     5 $(package)_config_opts += -no-evdev
     6-$(package)_config_opts += -no-freetype
     7 $(package)_config_opts += -no-gif
     8 $(package)_config_opts += -no-glib
     9 $(package)_config_opts += -no-icu
    10@@ -119,6 +118,7 @@ $(package)_config_opts_darwin = -no-dbus
    11 $(package)_config_opts_darwin += -no-opengl
    12 $(package)_config_opts_darwin += -pch
    13 $(package)_config_opts_darwin += -no-feature-corewlan
    14+$(package)_config_opts_darwin += -no-freetype
    15 $(package)_config_opts_darwin += QMAKE_MACOSX_DEPLOYMENT_TARGET=$(OSX_MIN_VERSION)
    16 
    17 ifneq ($(build_os),darwin)
    18@@ -158,6 +158,7 @@ $(package)_config_opts_mingw32 += "QMAKE_CXXFLAGS = '$($(package)_cflags) $($(pa
    19 $(package)_config_opts_mingw32 += "QMAKE_LFLAGS = '$($(package)_ldflags)'"
    20 $(package)_config_opts_mingw32 += -device-option CROSS_COMPILE="$(host)-"
    21 $(package)_config_opts_mingw32 += -pch
    22+$(package)_config_opts_mingw32 += -no-freetype
    23 
    24 $(package)_config_opts_android = -xplatform android-clang
    25 $(package)_config_opts_android += -android-sdk $(ANDROID_SDK)
    
  25. hebasto commented at 2:43 pm on November 17, 2021: member

    While qt.mk is touched, maybe explicitly mention and (self-)document platform backends?

     0--- a/depends/packages/qt.mk
     1+++ b/depends/packages/qt.mk
     2@@ -34,7 +34,6 @@ $(package)_config_opts += -hostprefix $(build_prefix)
     3 $(package)_config_opts += -no-compile-examples
     4 $(package)_config_opts += -no-cups
     5 $(package)_config_opts += -no-egl
     6-$(package)_config_opts += -no-eglfs
     7 $(package)_config_opts += -no-evdev
     8 $(package)_config_opts += -no-freetype
     9 $(package)_config_opts += -no-gif
    10@@ -42,8 +41,6 @@ $(package)_config_opts += -no-glib
    11 $(package)_config_opts += -no-icu
    12 $(package)_config_opts += -no-ico
    13 $(package)_config_opts += -no-iconv
    14-$(package)_config_opts += -no-kms
    15-$(package)_config_opts += -no-linuxfb
    16 $(package)_config_opts += -no-libjpeg
    17 $(package)_config_opts += -no-libproxy
    18 $(package)_config_opts += -no-libudev
    19@@ -115,7 +112,12 @@ $(package)_config_opts += -no-feature-vnc
    20 $(package)_config_opts += -no-feature-wizard
    21 $(package)_config_opts += -no-feature-xml
    22 
    23-$(package)_config_opts_darwin = -no-dbus
    24+
    25+# macOS platform backends
    26+$(package)_config_opts_darwin += -no-eglfs
    27+$(package)_config_opts_darwin += -qpa cocoa
    28+
    29+$(package)_config_opts_darwin += -no-dbus
    30 $(package)_config_opts_darwin += -no-opengl
    31 $(package)_config_opts_darwin += -pch
    32 $(package)_config_opts_darwin += -no-feature-corewlan
    33@@ -133,7 +135,14 @@ endif
    34 # for macOS on Apple Silicon (ARM) see https://bugreports.qt.io/browse/QTBUG-85279
    35 $(package)_config_opts_aarch64_darwin += -device-option QMAKE_APPLE_DEVICE_ARCHS=arm64
    36 
    37-$(package)_config_opts_linux = -xcb
    38+
    39+# Linux platform backends
    40+$(package)_config_opts_linux += -no-directfb
    41+$(package)_config_opts_linux += -no-eglfs
    42+$(package)_config_opts_linux += -no-linuxfb
    43+$(package)_config_opts_linux += -xcb
    44+$(package)_config_opts_linux += -qpa xcb
    45+
    46 $(package)_config_opts_linux += -no-xcb-xlib
    47 $(package)_config_opts_linux += -no-feature-xlib
    48 $(package)_config_opts_linux += -system-freetype
    49@@ -150,7 +159,12 @@ $(package)_config_opts_powerpc64le_linux = -platform linux-g++ -xplatform bitcoi
    50 $(package)_config_opts_riscv64_linux = -platform linux-g++ -xplatform bitcoin-linux-g++
    51 $(package)_config_opts_s390x_linux = -platform linux-g++ -xplatform bitcoin-linux-g++
    52 
    53-$(package)_config_opts_mingw32 = -no-opengl
    54+
    55+# Window platform backends
    56+$(package)_config_opts_mingw32 += -direct2d
    57+$(package)_config_opts_mingw32 += -qpa windows
    58+
    59+$(package)_config_opts_mingw32 += -no-opengl
    60 $(package)_config_opts_mingw32 += -no-dbus
    61 $(package)_config_opts_mingw32 += -xplatform win32-g++
    62 $(package)_config_opts_mingw32 += "QMAKE_CFLAGS = '$($(package)_cflags) $($(package)_cppflags)'"
    63@@ -159,14 +173,17 @@ $(package)_config_opts_mingw32 += "QMAKE_LFLAGS = '$($(package)_ldflags)'"
    64 $(package)_config_opts_mingw32 += -device-option CROSS_COMPILE="$(host)-"
    65 $(package)_config_opts_mingw32 += -pch
    66 
    67-$(package)_config_opts_android = -xplatform android-clang
    68+
    69+# Android platform backends
    70+$(package)_config_opts_android += -no-eglfs
    71+$(package)_config_opts_android += -qpa xcb
    72+
    73+$(package)_config_opts_android += -xplatform android-clang
    74 $(package)_config_opts_android += -android-sdk $(ANDROID_SDK)
    75 $(package)_config_opts_android += -android-ndk $(ANDROID_NDK)
    76 $(package)_config_opts_android += -android-ndk-platform android-$(ANDROID_API_LEVEL)
    77 $(package)_config_opts_android += -device-option CROSS_COMPILE="$(host)-"
    78 $(package)_config_opts_android += -egl
    79-$(package)_config_opts_android += -qpa xcb
    80-$(package)_config_opts_android += -no-eglfs
    81 $(package)_config_opts_android += -no-dbus
    82 $(package)_config_opts_android += -opengl es2
    83 $(package)_config_opts_android += -qt-freetype
    
  26. fanquake force-pushed on Nov 18, 2021
  27. fanquake commented at 6:05 am on November 18, 2021: member

    To following patch to a patch seems required:

    Included. This became apparent after the recent CI updates.

    Therefore, we can just rm -rf lib/python3.8/site-packages/xcbgen/pycache.

    Ok, I’ve taken this but changed it so it will work with versions of Python other than 3.8.

    Sorry, but I see no reasons to update the expat and freetype packages in this PR.

    The reason to update them in this PR is that (I think) the review overhead is low, and they are Qt dependencies.

    Isn’t it more reasonable to move these commits into #23495?

    From what I can see #23495 isn’t actually a required change either, and if anything, makes less sense on it’s own compared to bundled into a PR like this.

    Suggesting to silent this notification:

    Done.

    While qt.mk is touched, maybe explicitly mention and (self-)document platform backends?

    It’s not clear the benefits of this shuffling, or the additional comments; it’s also more verbose. i.e rather than specifying _config_opts += -no-eglfs once (I see the additional Android config line which I’ve now dropped), we end up with -no-eglfs duplicated 3 times.

  28. fanquake force-pushed on Nov 18, 2021
  29. fanquake force-pushed on Nov 18, 2021
  30. fanquake commented at 8:31 am on November 18, 2021: member
    Needed another <limits> patch here.
  31. fanquake force-pushed on Nov 18, 2021
  32. hebasto commented at 8:58 am on November 18, 2021: member

    While qt.mk is touched, maybe explicitly mention and (self-)document platform backends?

    It’s not clear the benefits of this shuffling…

    Explicit platform backend options grouped by platforms has two benefits:

    • they correspond with the QPA backends part of the Configure summary output of the configure script; that makes easy to verify options
    • it easy to reason about plugins that are expected to be built without consulting with Configure summary report
  33. in depends/packages/expat.mk:10 in fb084b2f25 outdated
    10 
    11 define $(package)_set_vars
    12   $(package)_config_opts=--disable-shared --without-docbook --without-tests --without-examples
    13-  $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
    14+  $(package)_config_opts += --disable-dependency-tracking --without-xmlwf
    15+  $(package)_config_opts += --enable-option-checking
    


    hebasto commented at 9:38 am on November 18, 2021:

    nit: a diff could limited to the only line:

    0  $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
    1  $(package)_config_opts +=  --without-xmlwf
    

    fanquake commented at 2:02 am on November 19, 2021:
    Done.
  34. in doc/dependencies.md:11 in fb084b2f25 outdated
     7@@ -8,9 +8,9 @@ These are the dependencies currently used by Bitcoin Core. You can find instruct
     8 | Berkeley DB | [4.8.30](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.x | No |  |  |
     9 | Boost | [1.71.0](https://www.boost.org/users/download/) | [1.64.0](https://github.com/bitcoin/bitcoin/pull/22320) | No |  |  |
    10 | Clang<sup>[ \* ](#note1)</sup> |  | [7.0](https://releases.llvm.org/download.html) (C++17 & std::filesystem support) |  |  |  |
    11-| Expat | [2.2.7](https://libexpat.github.io/) |  | No | Yes |  |
    12+| Expat | [2.4.1](https://libexpat.github.io/) |  | No | Yes |  |
    


    hebasto commented at 9:41 am on November 18, 2021:

    Expat is not a direct dependency for the qt package. Why not just remove this line?

    Note that we do not mention XCB-only dependencies here.


    fanquake commented at 2:02 am on November 19, 2021:
    I’m planning on cleaning this document right up, but agree that we can drop this now.
  35. in depends/patches/qt/fix_limits_header.patch:52 in fb084b2f25 outdated
    47+ 
    48+ #include <QtCore/qbytearray.h>
    49+ 
    50++#include <limits>
    51++
    52+ QT_BEGIN_NAMESPACE
    


    hebasto commented at 9:59 am on November 18, 2021:
    EOL?

    fanquake commented at 2:01 am on November 19, 2021:
    That makes no difference to anything, but sure, done in next push.
  36. in depends/packages/expat.mk:9 in fb084b2f25 outdated
     9+$(package)_sha256_hash=cf032d0dba9b928636548e32b327a2d66b1aab63c4f4a13dd132c2d1d2f2fb6a
    10 
    11 define $(package)_set_vars
    12   $(package)_config_opts=--disable-shared --without-docbook --without-tests --without-examples
    13-  $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
    14+  $(package)_config_opts += --disable-dependency-tracking --without-xmlwf
    


    hebasto commented at 10:02 am on November 18, 2021:
    A note for reviewers: the --without-xmlwf option was added in Release 2.2.4.
  37. hebasto commented at 10:02 am on November 18, 2021: member

    0d8ea57789d26beb228dc1b09b7e337cd300d895 “build: expat 2.4.1”

    0--- a/depends/packages/expat.mk
    1+++ b/depends/packages/expat.mk
    2@@ -24,5 +24,5 @@ define $(package)_stage_cmds
    3 endef
    4 
    5 define $(package)_postprocess_cmds
    6-  rm -rf share lib/*.la
    7+  rm -rf share lib/cmake lib/*.la
    8 endef
    
  38. in depends/packages/freetype.mk:2 in fb084b2f25 outdated
    0@@ -1,8 +1,8 @@
    1 package=freetype
    2-$(package)_version=2.7.1
    3+$(package)_version=2.10.4
    


    hebasto commented at 10:25 am on November 18, 2021:
    Why not 2.11.1?

    fanquake commented at 2:08 am on November 19, 2021:

    Why not 2.11.1?

    Because that version of freetype doesn’t exist? Have moved this to 2.11.0 though.

  39. hebasto commented at 11:45 am on November 18, 2021: member

    For new added packages I do prefer simply expanded variables instead of recursively expanded ones in *mk files.

    Also it’s good for readability to surround =, :=, += with spaces.

  40. hebasto commented at 12:12 pm on November 18, 2021: member
  41. hebasto commented at 1:34 pm on November 18, 2021: member
    Note for reviewers: the neediness of the new added libxcb_util* packages can be easily verified with the Qt source :)
  42. in depends/packages/libxcb_util_keysyms.mk:6 in fb084b2f25 outdated
    0@@ -0,0 +1,31 @@
    1+package=libxcb_util_keysyms
    2+$(package)_version=0.4.0
    3+$(package)_download_path=https://xcb.freedesktop.org/dist
    4+$(package)_file_name=xcb-util-keysyms-$($(package)_version).tar.bz2
    5+$(package)_sha256_hash=0ef8490ff1dede52b7de533158547f8b454b241aa3e4dcca369507f66f216dd9
    6+$(package)_dependencies=libxcb_util
    


    hebasto commented at 1:47 pm on November 18, 2021:

    While looking at the ./configure log, I think the correct dependencies are:

    0$(package)_dependencies=libxcb xproto
    
  43. in depends/packages/libxcb_util_render.mk:6 in fb084b2f25 outdated
    0@@ -0,0 +1,31 @@
    1+package=libxcb_util_render
    2+$(package)_version=0.3.9
    3+$(package)_download_path=https://xcb.freedesktop.org/dist
    4+$(package)_file_name=xcb-util-renderutil-$($(package)_version).tar.bz2
    5+$(package)_sha256_hash=c6e97e48fb1286d6394dddb1c1732f00227c70bd1bedb7d1acabefdd340bea5b
    6+$(package)_dependencies=libxcb_util
    


    hebasto commented at 1:52 pm on November 18, 2021:

    While looking at the ./configure log, I think the correct dependencies are:

    0$(package)_dependencies=libxcb
    
  44. in depends/packages/libxcb_util_wm.mk:6 in fb084b2f25 outdated
    0@@ -0,0 +1,31 @@
    1+package=libxcb_util_wm
    2+$(package)_version=0.4.1
    3+$(package)_download_path=https://xcb.freedesktop.org/dist
    4+$(package)_file_name=xcb-util-wm-$($(package)_version).tar.bz2
    5+$(package)_sha256_hash=28bf8179640eaa89276d2b0f1ce4285103d136be6c98262b6151aaee1d3c2a3f
    6+$(package)_dependencies=libxcb_util
    


    hebasto commented at 1:56 pm on November 18, 2021:

    While looking at the ./configure log, I think the correct dependencies are:

    0$(package)_dependencies=libxcb
    
  45. in depends/packages/libxcb_util.mk:9 in fb084b2f25 outdated
    0@@ -0,0 +1,31 @@
    1+package=libxcb_util
    2+$(package)_version=0.4.0
    3+$(package)_download_path=https://xcb.freedesktop.org/dist
    4+$(package)_file_name=xcb-util-$($(package)_version).tar.bz2
    5+$(package)_sha256_hash=46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5eae50e9
    6+$(package)_dependencies=libxcb
    7+
    8+define $(package)_set_vars
    9+$(package)_config_opts=--enable-static --disable-devel-docs --without-doxygen
    


    hebasto commented at 2:25 pm on November 18, 2021:

    For platform plugin dependencies, the QXcbIntegrationPlugin is such a plugin, no static linkage required:

    0$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
    

    fanquake commented at 2:16 am on November 19, 2021:
    Done.
  46. in depends/packages/qt.mk:139 in fb084b2f25 outdated
    132@@ -130,7 +133,7 @@ endif
    133 # for macOS on Apple Silicon (ARM) see https://bugreports.qt.io/browse/QTBUG-85279
    134 $(package)_config_opts_aarch64_darwin += -device-option QMAKE_APPLE_DEVICE_ARCHS=arm64
    135 
    136-$(package)_config_opts_linux = -qt-xcb
    137+$(package)_config_opts_linux = -xcb
    


    hebasto commented at 4:06 pm on November 18, 2021:

    With getting rid of a -qt-xcb crutch it’s possible to drop the related workaround as well: https://github.com/bitcoin/bitcoin/blob/fe03f7a37fd0ef05149161f6b95a25493e1fe38f/build-aux/m4/bitcoin_qt.m4#L152-L153

    Tested on Fedora 35.


    fanquake commented at 2:17 am on November 19, 2021:
    Dropped for now, but I haven’t tested this yet.
  47. fanquake force-pushed on Nov 19, 2021
  48. fanquake commented at 3:05 am on November 19, 2021: member

    Maybe integrate 993c15f?

    Done.

    For new added packages I do prefer simply expanded variables instead of recursively expanded ones in *mk files.

    We haven’t committed to using that style, so I’m going to stick with the existing style for now.

    Also made another addition to the <limits> patch, which has fixed the TSan build.

  49. in doc/dependencies.md:12 in 299b352ae6 outdated
     7@@ -8,9 +8,8 @@ These are the dependencies currently used by Bitcoin Core. You can find instruct
     8 | Berkeley DB | [4.8.30](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.x | No |  |  |
     9 | Boost | [1.71.0](https://www.boost.org/users/download/) | [1.64.0](https://github.com/bitcoin/bitcoin/pull/22320) | No |  |  |
    10 | Clang<sup>[ \* ](#note1)</sup> |  | [7.0](https://releases.llvm.org/download.html) (C++17 & std::filesystem support) |  |  |  |
    11-| Expat | [2.2.7](https://libexpat.github.io/) |  | No | Yes |  |
    12 | fontconfig | [2.12.1](https://www.freedesktop.org/software/fontconfig/release/) |  | No | Yes |  |
    13-| FreeType | [2.7.1](https://download.savannah.gnu.org/releases/freetype) |  | No |  | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Android only) |
    14+| FreeType | [2.10.4](https://download.savannah.gnu.org/releases/freetype) |  | No |  | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Android only) |
    


    hebasto commented at 8:57 am on November 19, 2021:
    0| FreeType | [2.11.0](https://download.savannah.gnu.org/releases/freetype) |  | No |  | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Android only) |
    

    fanquake commented at 4:34 am on November 21, 2021:
    Fixed in next push.
  50. hebasto commented at 9:31 am on November 19, 2021: member

    Guix builds:

     0$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     1125daa0d831ebc63ef5bce4c124b0e4c9e869de703c714f13accfa92eb76a5c3  guix-build-299b352ae658/output/aarch64-linux-gnu/SHA256SUMS.part
     22c6d25dae20cd8a0d43abe5577aea33e9eeb541226fc2cda10e705f8515b731a  guix-build-299b352ae658/output/aarch64-linux-gnu/bitcoin-299b352ae658-aarch64-linux-gnu-debug.tar.gz
     3b2b875584f5fc8a5319a69d23b5f1ba4897a6037ac666b48a8ed70233965e692  guix-build-299b352ae658/output/aarch64-linux-gnu/bitcoin-299b352ae658-aarch64-linux-gnu.tar.gz
     4104dfd872e4a90b3619af744bb812bb1d0461059fdcb5d7b131c6184fd5fb7f8  guix-build-299b352ae658/output/arm-linux-gnueabihf/SHA256SUMS.part
     593edbc3cd37dbca8aa8a871585a2d801a4982cdf79f0a35b1c6cc8387f4d5a17  guix-build-299b352ae658/output/arm-linux-gnueabihf/bitcoin-299b352ae658-arm-linux-gnueabihf-debug.tar.gz
     67830bce0bf5d1638e6653eb1d4025714cf6fbf170591bee83ed5eb71945a32d0  guix-build-299b352ae658/output/arm-linux-gnueabihf/bitcoin-299b352ae658-arm-linux-gnueabihf.tar.gz
     750dc60b16c7cb85ea3b60b84748ac382961b96fe7b34481e161353b89393707e  guix-build-299b352ae658/output/dist-archive/bitcoin-299b352ae658.tar.gz
     825ff76b215db7d345106654ca78102af7157fe77615504755289a1180009c469  guix-build-299b352ae658/output/powerpc64-linux-gnu/SHA256SUMS.part
     96cbbe039eb8584df774ee65346ab525f18001a6fb8dd982934911eaec20fb1bb  guix-build-299b352ae658/output/powerpc64-linux-gnu/bitcoin-299b352ae658-powerpc64-linux-gnu-debug.tar.gz
    10e6e44fadbfd35efd0a142a0a3d8ba414d447bb0eb7a76b4e31f676819091f522  guix-build-299b352ae658/output/powerpc64-linux-gnu/bitcoin-299b352ae658-powerpc64-linux-gnu.tar.gz
    1116a1e8c4df3cb790ed66de9a6019b8dc7af01c0dcccdeb786ccd9795d8035a26  guix-build-299b352ae658/output/powerpc64le-linux-gnu/SHA256SUMS.part
    1273c6b9da24b5e76e392219e1718cbcede2803d2a100e25466d0d0743eba5fcf5  guix-build-299b352ae658/output/powerpc64le-linux-gnu/bitcoin-299b352ae658-powerpc64le-linux-gnu-debug.tar.gz
    13e04d82f88131c8d6a2f14d7f1182de8cb29b264561e6ec4c89719f7ddd80c91b  guix-build-299b352ae658/output/powerpc64le-linux-gnu/bitcoin-299b352ae658-powerpc64le-linux-gnu.tar.gz
    1450bb5959de5bc546fd881210daa0840f5acb451c396981ecfb158447026693a2  guix-build-299b352ae658/output/riscv64-linux-gnu/SHA256SUMS.part
    15759ea21a8e1271af2acf8dc29d68392f2cece615da57e79b98d5059f03025f90  guix-build-299b352ae658/output/riscv64-linux-gnu/bitcoin-299b352ae658-riscv64-linux-gnu-debug.tar.gz
    1618cc2cd53fb3ed608ba0cda37fd3b02d2e858ae674fa5d91ba5215ac0e425eb6  guix-build-299b352ae658/output/riscv64-linux-gnu/bitcoin-299b352ae658-riscv64-linux-gnu.tar.gz
    1743928730610e13420d578da24a032a12386bc4b048d82f0a242a3b9d201607dd  guix-build-299b352ae658/output/x86_64-apple-darwin19/SHA256SUMS.part
    18c302dc9746299619883d18e01e60e05ee681e5c0b2592589416312150330ed16  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx-unsigned.dmg
    19318962c280ea9fd79fa2d98180ba0438611c93bc0be02488f54d08d1e108aafa  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx-unsigned.tar.gz
    20556d7ab2ce10e2f8a539bd562a1437a41b42866d9069e13e017b891c17c75310  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx64.tar.gz
    2164844f58651e0023becb1ec58e4ebb2e24acc8e5468c24896fa92a3deebb6c3d  guix-build-299b352ae658/output/x86_64-linux-gnu/SHA256SUMS.part
    22b89c64730c68eabf5c92f242cbd848a4635149b0c00942e5f073b4a914785bbb  guix-build-299b352ae658/output/x86_64-linux-gnu/bitcoin-299b352ae658-x86_64-linux-gnu-debug.tar.gz
    23c6b654cbcb6ae84f77ea59a1a11be34254821d852861636506742d5650f40367  guix-build-299b352ae658/output/x86_64-linux-gnu/bitcoin-299b352ae658-x86_64-linux-gnu.tar.gz
    24ee16657439bbcfff74c50621da0dfec76a9e06f152365fdd7063693a0e47ac1c  guix-build-299b352ae658/output/x86_64-w64-mingw32/SHA256SUMS.part
    25cfd96fbdef2d2672279ab719b24e1300b64441fef501116a5ca87affb6921c6d  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win-unsigned.tar.gz
    26c09aa70226c9c621c18985b3233c99361c11c3978515bf603e432d5bd0fe6258  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64-debug.zip
    27aeb29161b37def07a29e3229d94273bb1432148a7121245852cbfa0ac6a8458a  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64-setup-unsigned.exe
    28118da095b89e566d26aea57e440b434306a10b25e45478cf6051f32469ed0b17  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64.zip
    
  51. hebasto approved
  52. hebasto commented at 10:50 am on November 19, 2021: member

    ACK 299b352ae658d81f72c9b4c925f43566666586f3

    I have reviewed the code, in particular, I verified:

    • updated packages in depends
    • new added packages in depends
    • removed, added and updated patches
    • Qt-related changes
    • new exported symbols

    Still wondering if the new missing_xcb_util_pkg_config.patch can be avoided, because I’m able to build without it.


    Tested bitcoin-299b352ae658-win64-setup-unsigned.exe on Windows 10 Pro 21H1 (build 19043.1348):

    Screenshot from 2021-11-19 12-12-22

    Tested bitcoin-299b352ae658-osx-unsigned.dmg on macOS Big Sur 11.6.1 (20G224, Intel):

    Screenshot from 2021-11-19 12-45-46


    Also successfully built with DEBUG=1 in depends for Linux and macOS.

    For Windows builds with DEBUG=1 the following patch is required:

    0--- a/build-aux/m4/bitcoin_qt.m4
    1+++ b/build-aux/m4/bitcoin_qt.m4
    2@@ -67,7 +67,6 @@ AC_DEFUN([BITCOIN_QT_INIT],[
    3   AS_IF([test "x$with_gui" = xqt5_debug],
    4         [AS_CASE([$host],
    5                  [*darwin*], [qt_lib_suffix=_debug],
    6-                 [*mingw*], [qt_lib_suffix=d],
    7                  [qt_lib_suffix= ]); bitcoin_qt_want_version=qt5],
    8         [qt_lib_suffix= ])
    9 
    

    See: 4d289edb14aeb4976218cc306bfc514e37521b82 commit. More details: https://bugreports.qt.io/browse/QTBUG-78445


    Suggestions for follow ups:

    • update Qt version for native Windows builds (docs, CI); see #23552
    • fix visual regressions on macOS Big Sur; see #23556
    • consider getting rid of the fix_no_printer.patch and no_sdk_version_check.patch patches
  53. jarolrod commented at 1:17 am on November 21, 2021: member

    Code Review ACK 299b352ae658d81f72c9b4c925f43566666586f3

    Confirmed that the packages updated+added are at least what Qt expects and needs. I am still testing different cross-compiles and static builds on different systems.

    My GUIX hashes match @hebasto

     0find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     1
     2125daa0d831ebc63ef5bce4c124b0e4c9e869de703c714f13accfa92eb76a5c3  guix-build-299b352ae658/output/aarch64-linux-gnu/SHA256SUMS.part
     32c6d25dae20cd8a0d43abe5577aea33e9eeb541226fc2cda10e705f8515b731a  guix-build-299b352ae658/output/aarch64-linux-gnu/bitcoin-299b352ae658-aarch64-linux-gnu-debug.tar.gz
     4b2b875584f5fc8a5319a69d23b5f1ba4897a6037ac666b48a8ed70233965e692  guix-build-299b352ae658/output/aarch64-linux-gnu/bitcoin-299b352ae658-aarch64-linux-gnu.tar.gz
     5104dfd872e4a90b3619af744bb812bb1d0461059fdcb5d7b131c6184fd5fb7f8  guix-build-299b352ae658/output/arm-linux-gnueabihf/SHA256SUMS.part
     693edbc3cd37dbca8aa8a871585a2d801a4982cdf79f0a35b1c6cc8387f4d5a17  guix-build-299b352ae658/output/arm-linux-gnueabihf/bitcoin-299b352ae658-arm-linux-gnueabihf-debug.tar.gz
     77830bce0bf5d1638e6653eb1d4025714cf6fbf170591bee83ed5eb71945a32d0  guix-build-299b352ae658/output/arm-linux-gnueabihf/bitcoin-299b352ae658-arm-linux-gnueabihf.tar.gz
     850dc60b16c7cb85ea3b60b84748ac382961b96fe7b34481e161353b89393707e  guix-build-299b352ae658/output/dist-archive/bitcoin-299b352ae658.tar.gz
     925ff76b215db7d345106654ca78102af7157fe77615504755289a1180009c469  guix-build-299b352ae658/output/powerpc64-linux-gnu/SHA256SUMS.part
    106cbbe039eb8584df774ee65346ab525f18001a6fb8dd982934911eaec20fb1bb  guix-build-299b352ae658/output/powerpc64-linux-gnu/bitcoin-299b352ae658-powerpc64-linux-gnu-debug.tar.gz
    11e6e44fadbfd35efd0a142a0a3d8ba414d447bb0eb7a76b4e31f676819091f522  guix-build-299b352ae658/output/powerpc64-linux-gnu/bitcoin-299b352ae658-powerpc64-linux-gnu.tar.gz
    1216a1e8c4df3cb790ed66de9a6019b8dc7af01c0dcccdeb786ccd9795d8035a26  guix-build-299b352ae658/output/powerpc64le-linux-gnu/SHA256SUMS.part
    1373c6b9da24b5e76e392219e1718cbcede2803d2a100e25466d0d0743eba5fcf5  guix-build-299b352ae658/output/powerpc64le-linux-gnu/bitcoin-299b352ae658-powerpc64le-linux-gnu-debug.tar.gz
    14e04d82f88131c8d6a2f14d7f1182de8cb29b264561e6ec4c89719f7ddd80c91b  guix-build-299b352ae658/output/powerpc64le-linux-gnu/bitcoin-299b352ae658-powerpc64le-linux-gnu.tar.gz
    1550bb5959de5bc546fd881210daa0840f5acb451c396981ecfb158447026693a2  guix-build-299b352ae658/output/riscv64-linux-gnu/SHA256SUMS.part
    16759ea21a8e1271af2acf8dc29d68392f2cece615da57e79b98d5059f03025f90  guix-build-299b352ae658/output/riscv64-linux-gnu/bitcoin-299b352ae658-riscv64-linux-gnu-debug.tar.gz
    1718cc2cd53fb3ed608ba0cda37fd3b02d2e858ae674fa5d91ba5215ac0e425eb6  guix-build-299b352ae658/output/riscv64-linux-gnu/bitcoin-299b352ae658-riscv64-linux-gnu.tar.gz
    1843928730610e13420d578da24a032a12386bc4b048d82f0a242a3b9d201607dd  guix-build-299b352ae658/output/x86_64-apple-darwin19/SHA256SUMS.part
    19c302dc9746299619883d18e01e60e05ee681e5c0b2592589416312150330ed16  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx-unsigned.dmg
    20318962c280ea9fd79fa2d98180ba0438611c93bc0be02488f54d08d1e108aafa  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx-unsigned.tar.gz
    21556d7ab2ce10e2f8a539bd562a1437a41b42866d9069e13e017b891c17c75310  guix-build-299b352ae658/output/x86_64-apple-darwin19/bitcoin-299b352ae658-osx64.tar.gz
    2264844f58651e0023becb1ec58e4ebb2e24acc8e5468c24896fa92a3deebb6c3d  guix-build-299b352ae658/output/x86_64-linux-gnu/SHA256SUMS.part
    23b89c64730c68eabf5c92f242cbd848a4635149b0c00942e5f073b4a914785bbb  guix-build-299b352ae658/output/x86_64-linux-gnu/bitcoin-299b352ae658-x86_64-linux-gnu-debug.tar.gz
    24c6b654cbcb6ae84f77ea59a1a11be34254821d852861636506742d5650f40367  guix-build-299b352ae658/output/x86_64-linux-gnu/bitcoin-299b352ae658-x86_64-linux-gnu.tar.gz
    25ee16657439bbcfff74c50621da0dfec76a9e06f152365fdd7063693a0e47ac1c  guix-build-299b352ae658/output/x86_64-w64-mingw32/SHA256SUMS.part
    26cfd96fbdef2d2672279ab719b24e1300b64441fef501116a5ca87affb6921c6d  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win-unsigned.tar.gz
    27c09aa70226c9c621c18985b3233c99361c11c3978515bf603e432d5bd0fe6258  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64-debug.zip
    28aeb29161b37def07a29e3229d94273bb1432148a7121245852cbfa0ac6a8458a  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64-setup-unsigned.exe
    29118da095b89e566d26aea57e440b434306a10b25e45478cf6051f32469ed0b17  guix-build-299b352ae658/output/x86_64-w64-mingw32/bitcoin-299b352ae658-win64.zip
    
  54. fanquake force-pushed on Nov 21, 2021
  55. fanquake commented at 5:22 am on November 21, 2021: member

    For Windows builds with DEBUG=1 the following patch is required:

    Done.

    #23552, #23556

    Pulled in these changes and will close the PRs.

    consider getting rid of the fix_no_printer.patch and no_sdk_version_check.patch patches

    Why? Removing no_sdk_version_check.patch will break the macOS cross-compile, because qt tries to invoke xcrun. I haven’t looked at removing the fix_no_printer.patch patch yet.

  56. hebasto approved
  57. hebasto commented at 7:37 am on November 21, 2021: member

    re-ACK be58159cd037aa38f872d0c705a11fcde680f55b, only suggested changes since my previous review.

    Thanks for incorporating #23552 and #23556.

  58. hebasto commented at 7:41 am on November 21, 2021: member

    consider getting rid of the fix_no_printer.patch and no_sdk_version_check.patch patches

    Why? Removing no_sdk_version_check.patch will break the macOS cross-compile, because qt tries to invoke xcrun.

    You’re right. But it was needed to check because the related Qt source code was changed between 5.12.11 and 5.15.2.

    I haven’t looked at removing the fix_no_printer.patch patch yet.

    No longer needed to check it. The fix_no_printer.patch patch is still the optimal way to disable the PrintSupport module.

  59. MarcoFalke added the label DrahtBot Guix build requested on Nov 21, 2021
  60. hebasto commented at 9:39 am on November 21, 2021: member

    Still wondering if the new missing_xcb_util_pkg_config.patch can be avoided, because I’m able to build without it.

    FWIW, tested again on top of the be58159cd037aa38f872d0c705a11fcde680f55b, and was able to build bitcoin-qt and run it successfully.

  61. hebasto commented at 10:49 am on November 21, 2021: member

    Gitian builds:

     0$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     1b853740b1a80183d8ac18e0f8ecd1bf86c1d161bdc211ffcabd6a555bd3ae6fc  guix-build-be58159cd037/output/aarch64-linux-gnu/SHA256SUMS.part
     2c705a6c4a6a28732fb751e8c766b69f902d3ea753647350cd5ae069b66570279  guix-build-be58159cd037/output/aarch64-linux-gnu/bitcoin-be58159cd037-aarch64-linux-gnu-debug.tar.gz
     37f6fa3ab6c74edb0156d33b1f0763b789eed610b6b09f7aed7fd92735769333a  guix-build-be58159cd037/output/aarch64-linux-gnu/bitcoin-be58159cd037-aarch64-linux-gnu.tar.gz
     429b4445b3443c7c82fc782ea2c14eef0aa65dd4659f7f8a9b25bf75229fac548  guix-build-be58159cd037/output/arm-linux-gnueabihf/SHA256SUMS.part
     583e9aaf572abbf585ba59a03b8b63aa6801ab574aa82694a8cbf431f2530d72c  guix-build-be58159cd037/output/arm-linux-gnueabihf/bitcoin-be58159cd037-arm-linux-gnueabihf-debug.tar.gz
     68fed46860ee814c9371a2533070d04f8604b3e8f573fcb8172a4d852dbf73885  guix-build-be58159cd037/output/arm-linux-gnueabihf/bitcoin-be58159cd037-arm-linux-gnueabihf.tar.gz
     7bb7ddef9069c5ad4ecd2a08fa0dede9aedd978676c59a8f140facf38f637f73e  guix-build-be58159cd037/output/dist-archive/bitcoin-be58159cd037.tar.gz
     8d4289de89c3e14784db67e89df48c1bffd722ccd7fb1c5831302d2c64cfc6684  guix-build-be58159cd037/output/powerpc64-linux-gnu/SHA256SUMS.part
     9a814e8063bbb277b6ec1bc291433bf45edb60032de0b92917d2e287ac0aebb34  guix-build-be58159cd037/output/powerpc64-linux-gnu/bitcoin-be58159cd037-powerpc64-linux-gnu-debug.tar.gz
    107b34ccd0676e0ed9e4ac6c81ad8ddf600adf5d6be0703d0ea0245c4e6bf365b4  guix-build-be58159cd037/output/powerpc64-linux-gnu/bitcoin-be58159cd037-powerpc64-linux-gnu.tar.gz
    11b50f7a98fdfdf97481be9525b08890571a7755bfd1e4cface18fed50e3313e85  guix-build-be58159cd037/output/powerpc64le-linux-gnu/SHA256SUMS.part
    12d1bd77fdc335c3901196d223e4bf52a4828b49e945785da3c48d69d93ed88be6  guix-build-be58159cd037/output/powerpc64le-linux-gnu/bitcoin-be58159cd037-powerpc64le-linux-gnu-debug.tar.gz
    13aed870a7ef742c19e08504f685b9708ad0292a7107d6e920e90afd35983a6bd5  guix-build-be58159cd037/output/powerpc64le-linux-gnu/bitcoin-be58159cd037-powerpc64le-linux-gnu.tar.gz
    14313258054d52e40c6eb01205c5f71396066411198c3d640fd17e03e76e40750e  guix-build-be58159cd037/output/riscv64-linux-gnu/SHA256SUMS.part
    15a1ba293760f6d92ba42ced87c0cfdfdc65bf699afada5d9218e5014c0256e028  guix-build-be58159cd037/output/riscv64-linux-gnu/bitcoin-be58159cd037-riscv64-linux-gnu-debug.tar.gz
    1663bc6bb1fce34a0461c986f0cbba29d355439efe97bb6b66ff94823fc607fa7b  guix-build-be58159cd037/output/riscv64-linux-gnu/bitcoin-be58159cd037-riscv64-linux-gnu.tar.gz
    1734d55e57aa5867b94101afdb137bdd154942b7420fdfbd4ca7dbe42ec8d7d7f2  guix-build-be58159cd037/output/x86_64-apple-darwin19/SHA256SUMS.part
    18eb540cc53063ba68825e0894bde47ba424c9cde24469578363d024d8b6698016  guix-build-be58159cd037/output/x86_64-apple-darwin19/bitcoin-be58159cd037-osx-unsigned.dmg
    192dc98d61946b66e9d350305c815d0e861136c1dfce252ead6c2da60a975fd158  guix-build-be58159cd037/output/x86_64-apple-darwin19/bitcoin-be58159cd037-osx-unsigned.tar.gz
    2098a097b3d8d7f782c3ad50e6f15894fb5107300f8c83efc9c3c5b4a41aa3b3ba  guix-build-be58159cd037/output/x86_64-apple-darwin19/bitcoin-be58159cd037-osx64.tar.gz
    21e05f41c657664d6863c2d01d40a3f8a9985478ef8729b9ac9567666b3514a2e2  guix-build-be58159cd037/output/x86_64-linux-gnu/SHA256SUMS.part
    22c213e8a72082c64ebfa5dda4adffc49b161d644f21047e23248944f311e9d0d3  guix-build-be58159cd037/output/x86_64-linux-gnu/bitcoin-be58159cd037-x86_64-linux-gnu-debug.tar.gz
    23e219c857342314e793ca7942cf9cb943d10d2fadb3c54dc8be17b0bd8adeef17  guix-build-be58159cd037/output/x86_64-linux-gnu/bitcoin-be58159cd037-x86_64-linux-gnu.tar.gz
    246c961df1314e89fe71c62773239d796a1cdbaf204afa487583d6bf50f4e900b7  guix-build-be58159cd037/output/x86_64-w64-mingw32/SHA256SUMS.part
    25295d938a3752b42d6f8bb5482fb966aaf18f0644c1de2be2fd065d15e48c833c  guix-build-be58159cd037/output/x86_64-w64-mingw32/bitcoin-be58159cd037-win-unsigned.tar.gz
    261e5a2945abb0b27c8f5be5be36b5b0dc37221dbe19a853e1037f7095eedac43e  guix-build-be58159cd037/output/x86_64-w64-mingw32/bitcoin-be58159cd037-win64-debug.zip
    270cc7b0e813a8dee82509aff7e5d4baa542d5700cde8a34248903e3a0aeed248e  guix-build-be58159cd037/output/x86_64-w64-mingw32/bitcoin-be58159cd037-win64-setup-unsigned.exe
    280b80e1aa02f859e3485220a1b8b80f3ace57072b8f8e881aee105dfb8685e253  guix-build-be58159cd037/output/x86_64-w64-mingw32/bitcoin-be58159cd037-win64.zip
    
  62. fanquake force-pushed on Nov 22, 2021
  63. fanquake commented at 3:30 am on November 22, 2021: member

    FWIW, tested again on top of the be58159, and was able to build bitcoin-qt and run it successfully.

    After the changes to _dependencies I think you are correct. I cannot recreate the failure that had me add the patch in the first place. I’ve dropped it for now.

  64. hebasto commented at 6:12 am on November 22, 2021: member

    re-ACK 4e9d9c4e459f95bf90ec95b144602b3dded66bfb

    After the changes to _dependencies I think you are correct. I cannot recreate the failure that had me add the patch in the first place. I’ve dropped it for now.

    Thank you.

  65. hebasto commented at 8:00 am on November 22, 2021: member

    Guix builds:

     0$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     1aa5627b7e50c02f1b20ff8d895343e67c66521f4a862d68e9c5697810e828887  guix-build-4e9d9c4e459f/output/aarch64-linux-gnu/SHA256SUMS.part
     25c1b9707ff00b960f1b9e1e7333fa4111b023c45851dcfef08f3185abe0b7412  guix-build-4e9d9c4e459f/output/aarch64-linux-gnu/bitcoin-4e9d9c4e459f-aarch64-linux-gnu-debug.tar.gz
     3350660780ab45c607ff7732e58654802ebb34025b81864cdb9274f37e21cfaca  guix-build-4e9d9c4e459f/output/aarch64-linux-gnu/bitcoin-4e9d9c4e459f-aarch64-linux-gnu.tar.gz
     489e783494029d7575cb4b446a5a6e61c5d931cff9acfe427da1f91de4d74734a  guix-build-4e9d9c4e459f/output/arm-linux-gnueabihf/SHA256SUMS.part
     5516cbab3474fe495785a1d3ef79b29dc28450f965058ef6ad49f69f2dbe7c5d7  guix-build-4e9d9c4e459f/output/arm-linux-gnueabihf/bitcoin-4e9d9c4e459f-arm-linux-gnueabihf-debug.tar.gz
     6edb6a7c3075af5ade168a2b05b77b3f237e14ebf9717264b462e8b03d932bac4  guix-build-4e9d9c4e459f/output/arm-linux-gnueabihf/bitcoin-4e9d9c4e459f-arm-linux-gnueabihf.tar.gz
     7908b3341458f89b0d35cdf88b6be920471d12a66862f80583c4a9b4e14fb03ac  guix-build-4e9d9c4e459f/output/dist-archive/bitcoin-4e9d9c4e459f.tar.gz
     8c1f3acbe08bded2ef4cb100aca808f764ad7ead7a767d01a66a982b7465ed614  guix-build-4e9d9c4e459f/output/powerpc64-linux-gnu/SHA256SUMS.part
     9340daf7b22b16908175805a29a8bd95a8e7f44cc99cee5a535afce3838d4a946  guix-build-4e9d9c4e459f/output/powerpc64-linux-gnu/bitcoin-4e9d9c4e459f-powerpc64-linux-gnu-debug.tar.gz
    10cbcfb4ecf604138da1e420a63fddd66bf9d43f4db916a5d2bfcb3acb918b710e  guix-build-4e9d9c4e459f/output/powerpc64-linux-gnu/bitcoin-4e9d9c4e459f-powerpc64-linux-gnu.tar.gz
    115ad09d0e506e183e1ef9df9d58b16c5a22639191491070a128c521d37bc703c0  guix-build-4e9d9c4e459f/output/powerpc64le-linux-gnu/SHA256SUMS.part
    124fb3793f78f867e7441891a13474e7920a1b24eab56a37eaf1d3c9575303f2f0  guix-build-4e9d9c4e459f/output/powerpc64le-linux-gnu/bitcoin-4e9d9c4e459f-powerpc64le-linux-gnu-debug.tar.gz
    133592d8004998af429fec0c07b7f267fbb0228303eea7481c0b6caa09b16f146a  guix-build-4e9d9c4e459f/output/powerpc64le-linux-gnu/bitcoin-4e9d9c4e459f-powerpc64le-linux-gnu.tar.gz
    14a1436b91faa9c8a9573f80ceb3f77d2833211c138870c2210b2515ac3c883657  guix-build-4e9d9c4e459f/output/riscv64-linux-gnu/SHA256SUMS.part
    156d37c8cd3dbbc7017c3734121ea9173960cf71c92aee64d5c712a57da4fc6c14  guix-build-4e9d9c4e459f/output/riscv64-linux-gnu/bitcoin-4e9d9c4e459f-riscv64-linux-gnu-debug.tar.gz
    1613ec4f1bcd9226a2939656e58313935a7f9930421d24a23648ab73bbf76eeb3f  guix-build-4e9d9c4e459f/output/riscv64-linux-gnu/bitcoin-4e9d9c4e459f-riscv64-linux-gnu.tar.gz
    17532fabbc246a3dc043e53ad99c1d11b53d89212eeb81d81f437b35c8247df3b6  guix-build-4e9d9c4e459f/output/x86_64-apple-darwin19/SHA256SUMS.part
    18578c524ac462146711168ad212bd834f8adc682a48d2400b7950f1f3ed34edf9  guix-build-4e9d9c4e459f/output/x86_64-apple-darwin19/bitcoin-4e9d9c4e459f-osx-unsigned.dmg
    199d6521818cf59e8fc64769843ee28d0a45c51fb0c5104e05a23fba5c1951ab57  guix-build-4e9d9c4e459f/output/x86_64-apple-darwin19/bitcoin-4e9d9c4e459f-osx-unsigned.tar.gz
    20a2921a1cd5933a6b14272c973424b73bde72f25eefd5c4269e7910cb4ba83393  guix-build-4e9d9c4e459f/output/x86_64-apple-darwin19/bitcoin-4e9d9c4e459f-osx64.tar.gz
    21ec42574368ab8071c7a58191630650b22886d425e0ae0f7830c2c02bad7f1605  guix-build-4e9d9c4e459f/output/x86_64-linux-gnu/SHA256SUMS.part
    224d2b1b2a02ab2fa6c5bc5c1d9ba60a36b96063f4b22f6328f0b7df3093767272  guix-build-4e9d9c4e459f/output/x86_64-linux-gnu/bitcoin-4e9d9c4e459f-x86_64-linux-gnu-debug.tar.gz
    2318b28f3a2bd45e7a19d5293ee13be7499cc7d24d845df0a8b5b30de8b9242b65  guix-build-4e9d9c4e459f/output/x86_64-linux-gnu/bitcoin-4e9d9c4e459f-x86_64-linux-gnu.tar.gz
    2488f331be774b0d3638d08741e173d41b024a62bc1ac5d35303662abd0eba0215  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/SHA256SUMS.part
    25e98101fcc068838e5d996d58466a6b841bce4738239e9bd7a89f0a79efb4c1ad  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/bitcoin-4e9d9c4e459f-win-unsigned.tar.gz
    26105aebefba872790e80c6018d03c5bb90706a4f595dff1c81a72a9b69604ae7e  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/bitcoin-4e9d9c4e459f-win64-debug.zip
    2702317c80923f6b7f8fe65ee78803f205462f92c4fbdac8b3709fe51bc35b1256  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/bitcoin-4e9d9c4e459f-win64-setup-unsigned.exe
    2866978e4431421712acf2bd7d7e34f315b5f3f8ac98a0e9b793cc74033f2115c5  guix-build-4e9d9c4e459f/output/x86_64-w64-mingw32/bitcoin-4e9d9c4e459f-win64.zip
    
  66. fanquake commented at 8:36 am on November 22, 2021: member
    Looks like there is a reproducibility issue with a number of the Linux builds.
  67. hebasto commented at 9:30 am on November 22, 2021: member

    Looks like there is a reproducibility issue with a number of the Linux builds.

    All of the Linux builds (

    It was not the case before the recent push, right?

    Anyway, going to share my builds.

  68. hebasto commented at 12:06 pm on November 22, 2021: member
    FWIW, I got non-determinism for Linux builds on the same machine in consecutive builds.
  69. hebasto commented at 3:53 pm on November 22, 2021: member

    FWIW, tested again on top of the be58159, and was able to build bitcoin-qt and run it successfully.

    After the changes to _dependencies I think you are correct. I cannot recreate the failure that had me add the patch in the first place. I’ve dropped it for now.

    Looks like there is a reproducibility issue with a number of the Linux builds.

    I did some tests, and in my opinion that non-reproducibility was introduced by dropping the missing_xcb_util_pkg_config.patch patch.

    Understanding of that fact is beyond my current knowledge, unfortunately.

  70. DrahtBot commented at 11:19 pm on November 22, 2021: member

    Guix builds

    File commit 368831371d97a642beb54b5c4eb6eb0fedaa16b4(master) commit 73f5846f250b778f3159d1876584079526abaa1f(master and this pull)
    SHA256SUMS.part 5acd741e1500d6dd... 2d478f8030df97ad...
    *-aarch64-linux-gnu-debug.tar.gz 980a4338d1de7e95... 0b37784f29b22911...
    *-aarch64-linux-gnu.tar.gz fb223bceeeeceadb... 2055108997c88b3e...
    *-arm-linux-gnueabihf-debug.tar.gz aa69bdf6f879a5ef... 14436251e0d60152...
    *-arm-linux-gnueabihf.tar.gz 26d2ecac9106d90a... 288d2f5e77c3c3f8...
    *-osx-unsigned.dmg 67d97aa816756cff... eb28f98bf36dba44...
    *-osx-unsigned.tar.gz 0c0b20320b49f297... bdfc7e1dc4c134b1...
    *-osx64.tar.gz f34113289d819e58... b3c932d1f1157bfd...
    *-powerpc64-linux-gnu-debug.tar.gz aeec76815324157d... 40b47be545d4cec6...
    *-powerpc64-linux-gnu.tar.gz 4adaae6d195b09d9... c983312d10cd43b3...
    *-powerpc64le-linux-gnu-debug.tar.gz e2b1496a001d92a9... 3e678ad98ed062e6...
    *-powerpc64le-linux-gnu.tar.gz 26a2ea7eeb60e5de... c7d78c190e35326e...
    *-riscv64-linux-gnu-debug.tar.gz 7d4e22e844bd9fd5... 9e1da762837c8540...
    *-riscv64-linux-gnu.tar.gz a8911556fc597c49... 2f7aa40801294f5c...
    *-win-unsigned.tar.gz 011bba38eca25fee... 5ddf8e4ef98b3ed8...
    *-win64-debug.zip 6402c78f961e219a... 48e4d628e764fb58...
    *-win64-setup-unsigned.exe 59e0c5d11a60fe96... 75d13485d51e77f7...
    *-win64.zip 7b9f4edc908f2f0e... c0e879e6e4e166b1...
    *-x86_64-linux-gnu-debug.tar.gz 6533b8f13b6ab5f4... 7f7a7e1bda9a93c0...
    *-x86_64-linux-gnu.tar.gz 4e95409c75fe289f... 5d6e8a83dedc4c58...
    *.tar.gz b75ef5d49eee9f88... b7585e6abf8ca0e1...
    guix_build.log 27c3f90c968b6f5c... 85c9ccdf3a169c3e...
    guix_build.log.diff 313ef6234a0429bc...
  71. DrahtBot removed the label DrahtBot Guix build requested on Nov 22, 2021
  72. hebasto commented at 4:32 pm on November 24, 2021: member
    As #23580 fixes build for the current Qt 5.12.11, suggesting to rebase this PR on top of it.
  73. DrahtBot added the label Needs rebase on Nov 25, 2021
  74. fanquake force-pushed on Nov 25, 2021
  75. DrahtBot removed the label Needs rebase on Nov 25, 2021
  76. hebasto commented at 8:34 am on November 30, 2021: member

    Guix builds:

     0$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     1fa0409e491622514ad16d59a5ca45ca1fe15b76297a80c6b4ba71f76c7df7f12  guix-build-38c1d8322cb2/output/aarch64-linux-gnu/SHA256SUMS.part
     286aae68c498cb6b08e57d8c0e4a98e51d6306cd39bc0bf216c62075ce05f239d  guix-build-38c1d8322cb2/output/aarch64-linux-gnu/bitcoin-38c1d8322cb2-aarch64-linux-gnu-debug.tar.gz
     30595dc088e5161c44b0ee15cc3659f41f9bffaf8b0ac644df0774eac048fbdca  guix-build-38c1d8322cb2/output/aarch64-linux-gnu/bitcoin-38c1d8322cb2-aarch64-linux-gnu.tar.gz
     46e0cb8dd9e8783a7d1f52d03a61a58f2e458526e485ad36ca634573205da2325  guix-build-38c1d8322cb2/output/arm-linux-gnueabihf/SHA256SUMS.part
     50cc50d044ebe4299e869eb57ffa7477c594a4b7d9d6bbe757f293eaf684376c5  guix-build-38c1d8322cb2/output/arm-linux-gnueabihf/bitcoin-38c1d8322cb2-arm-linux-gnueabihf-debug.tar.gz
     619d34edfeca76b74297829fc37ef01ed27f4d5b447af1158bdf33460d603d410  guix-build-38c1d8322cb2/output/arm-linux-gnueabihf/bitcoin-38c1d8322cb2-arm-linux-gnueabihf.tar.gz
     72d280dbb1592a73be77b0f736203900d0c5f199f62c6db181b8325998475f984  guix-build-38c1d8322cb2/output/dist-archive/bitcoin-38c1d8322cb2.tar.gz
     8ea1d956d787b1dbb6b66b6188de8bb459b936eb3013d6b3a81ae4c37d16f3d63  guix-build-38c1d8322cb2/output/powerpc64-linux-gnu/SHA256SUMS.part
     95786b9b43966cbf7d0141b76622e333b5e0aec3331ae7c710f6ce9b80b797620  guix-build-38c1d8322cb2/output/powerpc64-linux-gnu/bitcoin-38c1d8322cb2-powerpc64-linux-gnu-debug.tar.gz
    105030bf575bf755b6aa9ba877aa87c00e233ca48965a342cb00d0f5227044ab6f  guix-build-38c1d8322cb2/output/powerpc64-linux-gnu/bitcoin-38c1d8322cb2-powerpc64-linux-gnu.tar.gz
    1163ca0c7858a09ca59ab17b5c21bea3ad27ca0e2b13b2cb689b62b85e685b3d0e  guix-build-38c1d8322cb2/output/powerpc64le-linux-gnu/SHA256SUMS.part
    12928363eaa61f7d5a70097b808e16bd2b2229ee5ef3d68624803a62ef864fed7d  guix-build-38c1d8322cb2/output/powerpc64le-linux-gnu/bitcoin-38c1d8322cb2-powerpc64le-linux-gnu-debug.tar.gz
    13ca3a723caa93d3bdbd61b3f5748817688b88af101299d1b3f2a6fba6ec9ddb44  guix-build-38c1d8322cb2/output/powerpc64le-linux-gnu/bitcoin-38c1d8322cb2-powerpc64le-linux-gnu.tar.gz
    149bb3ff443b3c1564faeace9092dd7cd29b812ceb19cf5eb323861c9479edf124  guix-build-38c1d8322cb2/output/riscv64-linux-gnu/SHA256SUMS.part
    15f9076a6316d40c80d4566aad731a58501a991924ab17c76d0b586c905a98ab36  guix-build-38c1d8322cb2/output/riscv64-linux-gnu/bitcoin-38c1d8322cb2-riscv64-linux-gnu-debug.tar.gz
    1608b4281d60644b06192a44acc80635836fced1c0c7f8ec5a08c388691cc18166  guix-build-38c1d8322cb2/output/riscv64-linux-gnu/bitcoin-38c1d8322cb2-riscv64-linux-gnu.tar.gz
    17d7bf680a5f27f8b15c3ab9353c8565b393c72eefe66a96834dc82ac89f415630  guix-build-38c1d8322cb2/output/x86_64-apple-darwin19/SHA256SUMS.part
    18dbd1721646e6181cbedaba2d0e69aa1d806fcf578163535c3c167b4fae939549  guix-build-38c1d8322cb2/output/x86_64-apple-darwin19/bitcoin-38c1d8322cb2-osx-unsigned.dmg
    1998fe1827dd4583efe9a86fc683464d6c5245b1850189d609a1312ef0ec808082  guix-build-38c1d8322cb2/output/x86_64-apple-darwin19/bitcoin-38c1d8322cb2-osx-unsigned.tar.gz
    2057238389e5f984d684ee197fe70bcf4506b20049e2a0cc20ff95c1c55610e127  guix-build-38c1d8322cb2/output/x86_64-apple-darwin19/bitcoin-38c1d8322cb2-osx64.tar.gz
    21e41b2e3a1bcfa4780f54bf16b0cd1a672bd9a5e6421105fed4885b928067d876  guix-build-38c1d8322cb2/output/x86_64-linux-gnu/SHA256SUMS.part
    2295b40196fc5ac399e80e75d135df2ac6c605a881a850dc6128f8b3c88fdff5e2  guix-build-38c1d8322cb2/output/x86_64-linux-gnu/bitcoin-38c1d8322cb2-x86_64-linux-gnu-debug.tar.gz
    236e6269c1a877302d6103c28addeeebc4b83c8c5cc3106e442a796a46a69fa8bd  guix-build-38c1d8322cb2/output/x86_64-linux-gnu/bitcoin-38c1d8322cb2-x86_64-linux-gnu.tar.gz
    247d3a0e3433d8dbc69320f4e2a7a4223df7c2e105be141e85a0e5440af5319e62  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/SHA256SUMS.part
    250ab5b615c1ebb7718960dc0a7259c9d208e9d6b8ce45bf47f9554d5e503086f6  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/bitcoin-38c1d8322cb2-win-unsigned.tar.gz
    26f57477e78651c609242c7452f10aa1df2c8340752387633bc1b7b6f0ce724266  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/bitcoin-38c1d8322cb2-win64-debug.zip
    27f19c8bba17b6f14a331464dcdf62e1370fd4ef745b0622a14236f29c7de47079  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/bitcoin-38c1d8322cb2-win64-setup-unsigned.exe
    28a543b38b36de19843d6368c00a7dba6b0fe5b8cbfd3fa34445ca54bbef5ad7d7  guix-build-38c1d8322cb2/output/x86_64-w64-mingw32/bitcoin-38c1d8322cb2-win64.zip
    
  77. DrahtBot added the label Needs rebase on Nov 30, 2021
  78. hebasto commented at 10:11 am on November 30, 2021: member
    1. From Qt sources I’ve made conclusion that some more modules should be added into bitcoin_qt.m4:
     0--- a/build-aux/m4/bitcoin_qt.m4
     1+++ b/build-aux/m4/bitcoin_qt.m4
     2@@ -352,6 +352,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
     3     PKG_CHECK_MODULES([QT_INPUT], [${qt_lib_prefix}InputSupport], [QT_LIBS="$QT_INPUT_LIBS $QT_LIBS"])
     4     PKG_CHECK_MODULES([QT_SERVICE], [${qt_lib_prefix}ServiceSupport], [QT_LIBS="$QT_SERVICE_LIBS $QT_LIBS"])
     5     PKG_CHECK_MODULES([QT_XCBQPA], [${qt_lib_prefix}XcbQpa], [QT_LIBS="$QT_XCBQPA_LIBS $QT_LIBS"])
     6+    PKG_CHECK_MODULES([QT_XKBCOMMON], [${qt_lib_prefix}XkbCommonSupport], [QT_LIBS="$QT_XKBCOMMON_LIBS $QT_LIBS"])
     7   elif test "x$TARGET_OS" = xdarwin; then
     8     PKG_CHECK_MODULES([QT_CLIPBOARD], [${qt_lib_prefix}ClipboardSupport${qt_lib_suffix}], [QT_LIBS="$QT_CLIPBOARD_LIBS $QT_LIBS"])
     9     PKG_CHECK_MODULES([QT_GRAPHICS], [${qt_lib_prefix}GraphicsSupport${qt_lib_suffix}], [QT_LIBS="$QT_GRAPHICS_LIBS $QT_LIBS"])
    10@@ -360,6 +361,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
    11     PKG_CHECK_MODULES([QT_WINDOWSUIAUTOMATION], [${qt_lib_prefix}WindowsUIAutomationSupport${qt_lib_suffix}], [QT_LIBS="$QT_WINDOWSUIAUTOMATION_LIBS $QT_LIBS"])
    12   elif test "x$TARGET_OS" = xandroid; then
    13     PKG_CHECK_MODULES([QT_EGL], [${qt_lib_prefix}EglSupport${qt_lib_suffix}], [QT_LIBS="$QT_EGL_LIBS $QT_LIBS"])
    14+    PKG_CHECK_MODULES([QT_SERVICE], [${qt_lib_prefix}ServiceSupport${qt_lib_suffix}], [QT_LIBS="$QT_SERVICE_LIBS $QT_LIBS"])
    15   fi
    16 ])
    17 
    
    1. The libxcb_util is, actually, a secondary dependency. No its symbols are exported by bitcoin-qt binary. Therefore, it seems a proper way to build it statically:
     0--- a/depends/packages/libxcb_util.mk
     1+++ b/depends/packages/libxcb_util.mk
     2@@ -6,7 +6,7 @@ $(package)_sha256_hash=46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5
     3 $(package)_dependencies=libxcb
     4 
     5 define $(package)_set_vars
     6-$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
     7+$(package)_config_opts = --disable-shared --disable-devel-docs --without-doxygen
     8 $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
     9 endef
    10 
    
  79. hebasto commented at 10:16 am on November 30, 2021: member

    FWIW, libxcb_util has an unfortunate life in Qt 5.15, for more details see:

    The bug introduced in QTBUG-86287 does not affect us (even in the current state of this PR) because the libxcb-util.so.1 is not among ELF_ALLOWED_LIBRARIES.

  80. fanquake force-pushed on Dec 2, 2021
  81. DrahtBot removed the label Needs rebase on Dec 2, 2021
  82. fanquake commented at 3:28 am on December 2, 2021: member

    The libxcb_util is, actually, a secondary dependency. No its symbols are exported by bitcoin-qt binary. Therefore, it seems a proper way to build it statically:

    As-is, that doesn’t work:

    0  CC       xcb_image.lo
    1  CCLD     libxcb-image.la
    2riscv64-linux-gnu-ld: relocation R_RISCV_CALL against `xcb_get_geometry' can not be used when making a shared object; recompile with -fPIC
    3collect2: error: ld returned 1 exit status
    
  83. hebasto commented at 3:58 pm on December 2, 2021: member

    The libxcb_util is, actually, a secondary dependency. No its symbols are exported by bitcoin-qt binary. Therefore, it seems a proper way to build it statically:

    As-is, that doesn’t work:

    0  CC       xcb_image.lo
    1  CCLD     libxcb-image.la
    2riscv64-linux-gnu-ld: relocation R_RISCV_CALL against `xcb_get_geometry' can not be used when making a shared object; recompile with -fPIC
    3collect2: error: ld returned 1 exit status
    
    0--- a/depends/packages/libxcb_util.mk
    1+++ b/depends/packages/libxcb_util.mk
    2@@ -8,6 +8,7 @@ $(package)_dependencies=libxcb
    3 define $(package)_set_vars
    4 $(package)_config_opts = --disable-shared --disable-devel-docs --without-doxygen
    5 $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
    6+$(package)_cflags += -fPIC
    7 endef
    8 
    9 define $(package)_preprocess_cmds
    

    Sorry for missing this issue.

  84. build: xproto 7.0.31 0697557321
  85. build: libXau 1.0.9 fc65127244
  86. build: xcb_proto 1.14.1 d3d547c545
  87. build: expat 2.4.1 10ac182f4c
  88. build: freetype 2.11.0
    Co-authored-by: mammix2 <mammix2@hotmail.com>
    01544dd78c
  89. build: libxcb 1.14
    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.
    937b36b5f0
  90. build: add libxcb_util 0.4.0 e545b56dc5
  91. build: add libxcb_util_render 0.3.9 b3cfbf5af2
  92. build: add libxcb_util_keysyms 0.4.0 36af9b6c94
  93. build: add libxcb_util_image 0.4.0 0e2ca89a78
  94. build: add libxcb_util_wm 0.4.1
    Required for xcb_icccm.
    904ba2aa40
  95. build: qt 5.15.2 c870027cc2
  96. build, qt: Fix regression in rendering on macOS Big Sur 1732eaba4f
  97. doc: Update `build_msvc/README.md` for Qt 5.15.2 06aca8aacb
  98. ci: Bump Qt to 5.15.2 in the native Windows task c0a1c3ca08
  99. fanquake force-pushed on Dec 3, 2021
  100. fanquake commented at 8:17 am on December 3, 2021: member

    Guix build:

     09bbbec69cc56255fbe0dd6f63d26b6d76ebc071275cd603a2388baf028a2e5fe  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/SHA256SUMS.part
     157aee87dedbf3c41e52e7bb18cb52e96a656696699ce0663a35cf6c030ca048a  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu-debug.tar.gz
     28d2842ff0995bf53f4ed6f67e3db3d33f4cd1d117b15122d750875a3681dba21  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu.tar.gz
     367b342e95d8fa5d897d84e53f5bb5cc8323921d31c51497196b54d2c2d62e915  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/SHA256SUMS.part
     4f52e8b2e28236a7fb0dd26989c39ef18472161a892f90e62cea26ae7c2daadaf  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf-debug.tar.gz
     51dce8e6953e52874b98a0f5dafaebf068584984e2c3cd40d3110dd3c5c0d2f8d  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf.tar.gz
     6f8328d777b0f1be68408c2df5907c4dd890dd0617b1aa747b3bf140f84c0f61d  guix-build-c0a1c3ca0894/output/dist-archive/bitcoin-c0a1c3ca0894.tar.gz
     7b3e71decb914c3be9c88586084853ab086d77929707c1a7649991b75c734f3e2  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/SHA256SUMS.part
     830a8ad718f848297ac1dc8f48eadb37b983d5837f807ecfedb6723932cb5e84a  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu-debug.tar.gz
     9111444d627aa837e8a7f450dfe304ff20139ca018a293c9a5e8c5aec33ab75a9  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu.tar.gz
    10ef815b019722b774995e2a999cdbd79b34b8636f92f62b2f8e6b99b294ad1bc5  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/SHA256SUMS.part
    115521bf88d0febd79301dbed30205c1bef6257eb03ae5d4a5227bac3b66b0b427  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu-debug.tar.gz
    126d2ae36ec34e7b5d3d84d6a50595c39c1d89b2659ed9eba5e7c8b21a9cbb8f04  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu.tar.gz
    138aa9cb8a5585d8b27feafa8403fcba803152fb154d7c308f6759670c11107cfa  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/SHA256SUMS.part
    147abbf8efdc91399ab0d2dde18b3be19734f956a07ed1cc19f8f5178647f9ac94  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu-debug.tar.gz
    151dfd20f75feb316882043dd081f0ee4bd2032481e17d40f7ae9f2b430c316754  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu.tar.gz
    161949530e8e68b68c72f627296995b93e9ec048c2740274a8874fe9565eca4a46  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/SHA256SUMS.part
    17ab2e63f9f58834ddc0fc5f83a2a7938ffcf8057392f0c5ce92a8d456e9b8e4af  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.dmg
    1838958a096117542cde4dcac318d116fdeec3237c95ebf88fff0e76570002109e  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.tar.gz
    198841df372ef1ea670dc8d4f82b007420140a39454371be47193e484a4f95fd76  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx64.tar.gz
    204e0d6b6a715d987ff025e45782dd6a47cfdac904a26d932c9c84de7eb8b699d4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/SHA256SUMS.part
    213ac4c326313650c0d0a35560c4073f0c3fcbf7002c5b5c918e7186627c8ed392  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu-debug.tar.gz
    22fcd45fe54cb86a7e9240a6bbe2170926e6db32ee55b821af332348d4c4e1d3a4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu.tar.gz
    2372deb4fc1c5b70ae329ab04862e822911708f3c4a4d8a0bbb5796d9a64985414  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/SHA256SUMS.part
    2478ae8f495bfb02198b00b7fc72b67fb0595f81dd9e3aef45e5103efea90451d9  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win-unsigned.tar.gz
    25962fcf4ce63e5a89fb1e74e19dbc1aeffc4d5b753ab8e19fcf2249ce21766c5b  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-debug.zip
    263929916755d599b133304acd94462afad1ba73d5516f6f9786aff565c6ac8818  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-setup-unsigned.exe
    2766e2030476de85437e1593b7d2f4efd4a8837de8b2479217f9246d8028256e08  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64.zip
    
  101. hebasto commented at 11:10 am on December 3, 2021: member

    Guix builds:

     0$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     19bbbec69cc56255fbe0dd6f63d26b6d76ebc071275cd603a2388baf028a2e5fe  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/SHA256SUMS.part
     257aee87dedbf3c41e52e7bb18cb52e96a656696699ce0663a35cf6c030ca048a  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu-debug.tar.gz
     38d2842ff0995bf53f4ed6f67e3db3d33f4cd1d117b15122d750875a3681dba21  guix-build-c0a1c3ca0894/output/aarch64-linux-gnu/bitcoin-c0a1c3ca0894-aarch64-linux-gnu.tar.gz
     467b342e95d8fa5d897d84e53f5bb5cc8323921d31c51497196b54d2c2d62e915  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/SHA256SUMS.part
     5f52e8b2e28236a7fb0dd26989c39ef18472161a892f90e62cea26ae7c2daadaf  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf-debug.tar.gz
     61dce8e6953e52874b98a0f5dafaebf068584984e2c3cd40d3110dd3c5c0d2f8d  guix-build-c0a1c3ca0894/output/arm-linux-gnueabihf/bitcoin-c0a1c3ca0894-arm-linux-gnueabihf.tar.gz
     7f8328d777b0f1be68408c2df5907c4dd890dd0617b1aa747b3bf140f84c0f61d  guix-build-c0a1c3ca0894/output/dist-archive/bitcoin-c0a1c3ca0894.tar.gz
     8b3e71decb914c3be9c88586084853ab086d77929707c1a7649991b75c734f3e2  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/SHA256SUMS.part
     930a8ad718f848297ac1dc8f48eadb37b983d5837f807ecfedb6723932cb5e84a  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu-debug.tar.gz
    10111444d627aa837e8a7f450dfe304ff20139ca018a293c9a5e8c5aec33ab75a9  guix-build-c0a1c3ca0894/output/powerpc64-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64-linux-gnu.tar.gz
    11ef815b019722b774995e2a999cdbd79b34b8636f92f62b2f8e6b99b294ad1bc5  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/SHA256SUMS.part
    125521bf88d0febd79301dbed30205c1bef6257eb03ae5d4a5227bac3b66b0b427  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu-debug.tar.gz
    136d2ae36ec34e7b5d3d84d6a50595c39c1d89b2659ed9eba5e7c8b21a9cbb8f04  guix-build-c0a1c3ca0894/output/powerpc64le-linux-gnu/bitcoin-c0a1c3ca0894-powerpc64le-linux-gnu.tar.gz
    148aa9cb8a5585d8b27feafa8403fcba803152fb154d7c308f6759670c11107cfa  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/SHA256SUMS.part
    157abbf8efdc91399ab0d2dde18b3be19734f956a07ed1cc19f8f5178647f9ac94  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu-debug.tar.gz
    161dfd20f75feb316882043dd081f0ee4bd2032481e17d40f7ae9f2b430c316754  guix-build-c0a1c3ca0894/output/riscv64-linux-gnu/bitcoin-c0a1c3ca0894-riscv64-linux-gnu.tar.gz
    171949530e8e68b68c72f627296995b93e9ec048c2740274a8874fe9565eca4a46  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/SHA256SUMS.part
    18ab2e63f9f58834ddc0fc5f83a2a7938ffcf8057392f0c5ce92a8d456e9b8e4af  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.dmg
    1938958a096117542cde4dcac318d116fdeec3237c95ebf88fff0e76570002109e  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx-unsigned.tar.gz
    208841df372ef1ea670dc8d4f82b007420140a39454371be47193e484a4f95fd76  guix-build-c0a1c3ca0894/output/x86_64-apple-darwin19/bitcoin-c0a1c3ca0894-osx64.tar.gz
    214e0d6b6a715d987ff025e45782dd6a47cfdac904a26d932c9c84de7eb8b699d4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/SHA256SUMS.part
    223ac4c326313650c0d0a35560c4073f0c3fcbf7002c5b5c918e7186627c8ed392  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu-debug.tar.gz
    23fcd45fe54cb86a7e9240a6bbe2170926e6db32ee55b821af332348d4c4e1d3a4  guix-build-c0a1c3ca0894/output/x86_64-linux-gnu/bitcoin-c0a1c3ca0894-x86_64-linux-gnu.tar.gz
    2472deb4fc1c5b70ae329ab04862e822911708f3c4a4d8a0bbb5796d9a64985414  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/SHA256SUMS.part
    2578ae8f495bfb02198b00b7fc72b67fb0595f81dd9e3aef45e5103efea90451d9  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win-unsigned.tar.gz
    26962fcf4ce63e5a89fb1e74e19dbc1aeffc4d5b753ab8e19fcf2249ce21766c5b  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-debug.zip
    273929916755d599b133304acd94462afad1ba73d5516f6f9786aff565c6ac8818  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64-setup-unsigned.exe
    2866e2030476de85437e1593b7d2f4efd4a8837de8b2479217f9246d8028256e08  guix-build-c0a1c3ca0894/output/x86_64-w64-mingw32/bitcoin-c0a1c3ca0894-win64.zip
    
  102. hebasto commented at 11:52 am on December 3, 2021: member

    re-ACK c0a1c3ca0894d4bb932bc13c6b92babe6df65030

    Additionally, I’ve made the following tests.

    1. Building with depends on Mac mini(M1, 2020) + Big Sur 12.0.1 (21A559):

    photo_2021-12-03_11-06-46

    1. Building with depends on Fedora 35:

    photo_2021-12-03_12-12-42

    1. Cross-compiling for Windows with DEBUG=1:
    0$ make -C depends HOST=x86_64-w64-mingw32 DEBUG=1
    1$ CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --disable-shared
    2$ make
    

    photo_2021-12-03_13-34-59


    The only problem I faced with was building for the x86_64-linux-android host. A patch is available, but I strongly believe that this issue should be leaved for a follow up along with other Qt+Android issues.

  103. fanquake referenced this in commit c9b63ab61e on Dec 3, 2021
  104. fanquake commented at 1:00 pm on December 3, 2021: member
    This has been merged.
  105. fanquake closed this on Dec 3, 2021

  106. fanquake deleted the branch on Dec 3, 2021
  107. sidhujag referenced this in commit 03b262fec5 on Dec 3, 2021
  108. fanquake referenced this in commit 6db7e43d42 on Dec 7, 2021
  109. fanquake referenced this in commit 0d101050ef on Dec 8, 2021
  110. sidhujag referenced this in commit 4ef1d14f7e on Dec 8, 2021
  111. fanquake referenced this in commit 83f8e6e7a4 on Dec 13, 2021
  112. sidhujag referenced this in commit 8c9e0dd368 on Dec 13, 2021
  113. RandyMcMillan referenced this in commit 54d2e69a76 on Dec 23, 2021
  114. RandyMcMillan referenced this in commit ba6d3b3956 on Dec 23, 2021
  115. RandyMcMillan referenced this in commit e1c7bfbdc0 on Dec 23, 2021
  116. hebasto referenced this in commit d67fc786d9 on Jan 23, 2022
  117. fanquake referenced this in commit 69ef0a107f on Jan 25, 2022
  118. sidhujag referenced this in commit da240244ab on Jan 28, 2022
  119. rebroad referenced this in commit a59fba78b9 on Feb 3, 2022
  120. fanquake referenced this in commit eafdee6e47 on Feb 5, 2022
  121. hebasto referenced this in commit b847abecae on Feb 6, 2022
  122. hebasto referenced this in commit 72f3da5a88 on Feb 6, 2022
  123. fanquake referenced this in commit 4b92a6b42c on Feb 9, 2022
  124. janus referenced this in commit 4eb9d30971 on Jul 17, 2022
  125. DrahtBot locked this on Dec 3, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-26 21:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me